:root{--bg: #f2f3fa;--surface: #ffffff;--surface-2: #f6f6fc;--input-bg: #ffffff;--border: #e5e6f1;--border-strong: #d3d5e8;--text: #21243a;--text-2: #5b5f7c;--text-3: #8c8fa9;--accent: #4f46e5;--accent-hover: #4338ca;--accent-2: #7c3aed;--accent-soft: rgba(79, 70, 229, .09);--on-accent: #ffffff;--danger: #d92d20;--danger-bg: #fdeceb;--danger-text: #b42318;--success-bg: #e4f3e9;--success-text: #1a7f4b;--warning-bg: #fbf2d9;--warning-text: #a15c07;--sidebar-bg: #181a34;--sidebar-text: #a4a7cc;--sidebar-hover: rgba(255, 255, 255, .06);--sidebar-active: rgba(129, 140, 248, .16);--sidebar-active-text: #cdd3ff;--sidebar-border: rgba(255, 255, 255, .08);--mark-bg: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--mark-text: #ffffff;--mark-glow: rgba(99, 102, 241, .38);--chart-input: #6366f1;--chart-output: #38bdf8;--overlay: rgba(24, 26, 52, .45);--shadow-sm: 0 1px 2px rgba(30, 27, 75, .05);--shadow-md: 0 1px 2px rgba(30, 27, 75, .06), 0 8px 24px rgba(30, 27, 75, .08);--shadow-lg: 0 24px 70px rgba(23, 20, 60, .24);--primary-shadow: 0 1px 2px rgba(30, 27, 75, .16), 0 5px 16px rgba(79, 70, 229, .28);--primary-shadow-hover: 0 2px 4px rgba(30, 27, 75, .16), 0 8px 22px rgba(79, 70, 229, .36);--scrollbar-thumb: #c0c3de;--scrollbar-thumb-hover: #9ea2c8;--r-sm: 7px;--r-md: 10px;--r-lg: 14px;color-scheme:light}:root[data-theme=dark]{--bg: #0c0e1b;--surface: #161932;--surface-2: #1d2040;--input-bg: #11132a;--border: #292d4e;--border-strong: #3b4068;--text: #e8eaf8;--text-2: #a3a7cb;--text-3: #72769d;--accent: #818cf8;--accent-hover: #a5b4fc;--accent-2: #a78bfa;--accent-soft: rgba(129, 140, 248, .14);--on-accent: #1e1b4b;--danger: #f97066;--danger-bg: rgba(249, 112, 102, .12);--danger-text: #fda29b;--success-bg: rgba(74, 222, 128, .12);--success-text: #5eeaa6;--warning-bg: rgba(251, 191, 36, .12);--warning-text: #fcd34d;--sidebar-bg: #090a16;--sidebar-text: #9094bb;--sidebar-hover: rgba(255, 255, 255, .05);--sidebar-active: rgba(129, 140, 248, .14);--sidebar-active-text: #a5b4fc;--sidebar-border: rgba(255, 255, 255, .07);--mark-glow: rgba(129, 140, 248, .32);--chart-input: #818cf8;--chart-output: #38bdf8;--overlay: rgba(2, 4, 18, .62);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 1px 2px rgba(0, 0, 0, .4), 0 10px 28px rgba(0, 0, 0, .35);--shadow-lg: 0 24px 70px rgba(0, 0, 0, .6);--primary-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 5px 16px rgba(129, 140, 248, .25);--primary-shadow-hover: 0 2px 4px rgba(0, 0, 0, .3), 0 8px 22px rgba(129, 140, 248, .34);--scrollbar-thumb: #3b4068;--scrollbar-thumb-hover: #50558a;color-scheme:dark}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:14px;font-synthesis:none;color:var(--text);background:var(--bg);scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}*{box-sizing:border-box}body{margin:0;background:var(--bg);transition:background-color .25s ease,color .25s ease}::selection{background:var(--accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:content-box}::-webkit-scrollbar-corner{background:transparent}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:8px 14px;background:var(--surface);color:var(--text);font-weight:500;white-space:nowrap;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease,filter .15s ease}button:hover{background:var(--surface-2)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button:disabled:active{transform:none}.primary{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);border-color:transparent;color:var(--on-accent);font-weight:600;box-shadow:var(--primary-shadow)}.primary:hover{background:linear-gradient(135deg,var(--accent-hover) 0%,var(--accent-2) 100%);box-shadow:var(--primary-shadow-hover)}.danger{color:var(--danger)}.danger:hover{background:var(--danger-bg);border-color:var(--danger)}.icon-btn{border:0;background:transparent;color:var(--text-3);padding:5px;border-radius:var(--r-sm)}.icon-btn:hover{background:var(--surface-2);color:var(--text)}.link{border:0;padding:0;background:none;color:var(--accent);font-weight:600;white-space:normal;text-align:left;display:inline}.link:hover{text-decoration:underline;background:none}input,select,textarea{border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:9px 11px;background:var(--input-bg);color:var(--text);min-width:0;width:100%;transition:border-color .15s ease,box-shadow .15s ease,background-color .25s ease}input::placeholder,textarea::placeholder{color:var(--text-3)}textarea{resize:vertical;font-family:ui-monospace,SF Mono,Cascadia Mono,Consolas,monospace;font-size:12.5px;line-height:1.7}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{display:flex;flex-direction:column;gap:7px;font-size:12.5px;font-weight:600;color:var(--text-2);margin-bottom:15px}label>input,label>select,label>textarea{font-weight:400;color:var(--text);font-size:13.5px}small,.muted{color:var(--text-3);font-weight:400;font-size:12px;line-height:1.7}.sub{display:block;margin-top:5px;overflow-wrap:anywhere}h1{font-size:25px;letter-spacing:-.5px;margin:8px 0;font-weight:700}h2{font-size:15.5px;margin:0;padding:20px 22px 14px;font-weight:600}h2 small{margin-left:8px}code{font-family:ui-monospace,SF Mono,Cascadia Mono,Consolas,monospace;font-size:12px;background:var(--surface-2);border:1px solid var(--border);padding:1px 6px;border-radius:5px}fieldset{padding:0;border:0;margin:0;min-width:0}.check{flex-direction:row;align-items:center;font-weight:500;line-height:1.7;color:var(--text)}.check input{width:15px;height:15px;accent-color:var(--accent);flex-shrink:0}summary{cursor:pointer;color:var(--accent);font-weight:500;font-size:12.5px}details p{white-space:pre-wrap;min-width:160px;margin:8px 0 0;color:var(--text-2)}.model-id{display:inline-flex;align-items:center;gap:6px}.copy-btn{padding:3px;opacity:.4;transition:opacity .12s ease,background-color .15s ease,color .15s ease}tr:hover .copy-btn,.copy-btn:hover,.copy-btn:focus-visible{opacity:1}.copy-btn svg{width:13px;height:13px}.panel-foot{margin:0;padding:12px 22px 16px;border-top:1px dashed var(--border)}.shell{display:flex;min-height:100vh}aside{width:230px;flex-shrink:0;background:var(--sidebar-bg);background-image:linear-gradient(180deg,color-mix(in srgb,var(--accent) 16%,var(--sidebar-bg)) 0%,var(--sidebar-bg) 460px);color:#edf0fb;display:flex;flex-direction:column;padding:26px 16px 20px;position:sticky;top:0;height:100vh;transition:background-color .25s ease}.brand{display:flex;align-items:center;gap:12px;font-size:17.5px;font-weight:700;padding:0 6px;margin-bottom:36px}.brand small{display:block;color:var(--sidebar-text);font-size:11px;font-weight:400;letter-spacing:.8px;margin-top:3px}.mark{display:grid;place-items:center;background:var(--mark-bg);color:var(--mark-text);border-radius:11px;width:40px;height:40px;flex-shrink:0;box-shadow:0 4px 14px var(--mark-glow),inset 0 1px #ffffff38}nav{display:grid;gap:4px}nav button{justify-content:flex-start;border:0;background:transparent;color:var(--sidebar-text);padding:10px 12px 10px 15px;border-radius:9px;font-weight:500;position:relative}nav button svg{opacity:.75}nav button:hover{background:var(--sidebar-hover);color:#fff}nav button.active{background:var(--sidebar-active);color:var(--sidebar-active-text);font-weight:600}nav button.active:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:3px;height:17px;border-radius:2px;background:var(--sidebar-active-text)}nav button.active svg{opacity:1}.aside-bottom{margin-top:auto;padding-top:16px;border-top:1px solid var(--sidebar-border);display:grid;gap:8px}.aside-bottom button{width:100%;justify-content:flex-start;background:transparent;color:var(--sidebar-text);border-color:var(--sidebar-border)}.aside-bottom button:hover{background:var(--sidebar-hover);color:#fff}.theme-seg{display:flex;gap:2px;padding:3px;background:#ffffff0f;border:1px solid var(--sidebar-border);border-radius:11px}.aside-bottom .theme-seg button{flex:1;justify-content:center;border:0;padding:6px 0;border-radius:8px;background:transparent;color:var(--sidebar-text)}.aside-bottom .theme-seg button:hover{background:var(--sidebar-hover);color:#fff}.aside-bottom .theme-seg button.active{background:var(--sidebar-active);color:var(--sidebar-active-text)}.theme-seg button svg{width:15px;height:15px}main{padding:30px 40px 40px;min-width:0;flex:1;width:100%;max-width:1400px;margin:0 auto}header{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:22px}header>button{margin-top:6px}header h1{margin-top:0}header .muted{margin:0}.tz-hint{display:inline-flex;align-items:center;gap:5px}.tz-hint svg{opacity:.7;flex-shrink:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:22px;overflow:hidden;box-shadow:var(--shadow-sm);transition:background-color .25s ease,border-color .25s ease}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-right:22px;flex-wrap:wrap}.section-head>small{padding-bottom:6px}.empty{text-align:center;padding:52px 20px;color:var(--text-3)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px}.metric{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:10px 12px;padding:18px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);transition:transform .18s ease,box-shadow .18s ease,background-color .25s ease,border-color .25s ease}.metric:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.metric>span{color:var(--text-2);font-size:12.5px}.metric>.metric-icon{grid-column:2;grid-row:1 / 3;align-self:center;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--accent-soft);color:var(--accent)}.metric>.metric-icon svg{width:18px;height:18px}.metric strong{grid-column:1;display:block;font-size:27px;font-weight:650;font-variant-numeric:tabular-nums;letter-spacing:-.5px;line-height:1.15}.metric.alert{border-color:var(--danger)}.metric.alert strong{color:var(--danger)}.metric.alert>.metric-icon{background:var(--danger-bg);color:var(--danger-text)}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}th{font-weight:600;font-size:12px;letter-spacing:.3px;color:var(--text-3);background:var(--surface-2);white-space:nowrap;transition:background-color .25s ease}th,td{padding:13px 22px;border-top:1px solid var(--border);vertical-align:top}thead th{border-top:0}tbody tr{transition:background-color .12s ease}tbody tr:hover{background:var(--surface-2)}td{max-width:320px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}td strong{font-weight:600}td.empty:hover{background:transparent}.nowrap{white-space:nowrap}.actions{display:flex;gap:7px}.actions button{padding:5px 10px;font-size:12.5px;font-weight:500}.badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;white-space:nowrap;font-size:11.5px;font-weight:600;background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.badge i{width:6px;height:6px;border-radius:50%;background:currentColor}.badge.good{background:var(--success-bg);color:var(--success-text);border-color:transparent}.badge.warn{background:var(--warning-bg);color:var(--warning-text);border-color:transparent}.badge.danger{background:var(--danger-bg);color:var(--danger-text);border-color:transparent}.alert{padding:12px 15px;border-radius:var(--r-md);margin-bottom:16px;line-height:1.6;overflow-wrap:anywhere;font-size:13px;border:1px solid color-mix(in srgb,currentColor 22%,transparent)}.alert.error{background:var(--danger-bg);color:var(--danger-text)}.alert.success{background:var(--success-bg);color:var(--success-text)}.alert.warning{background:var(--warning-bg);color:var(--warning-text)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:20;display:flex;justify-content:center;align-items:center;padding:20px;animation:fade-in .15s ease}.dialog{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px 26px;width:560px;max-width:100%;max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg);animation:slide-up .18s ease}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.dialog-head h2{padding:0;font-size:18px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}@keyframes fade-in{0%{opacity:0}}@keyframes slide-up{0%{opacity:0;transform:translateY(10px) scale(.985)}}.channel-models{margin:20px 0}.channel-models .section-head{flex-wrap:wrap;gap:10px}.channel-model-list{max-height:320px;overflow-y:auto;margin:12px 0}.channel-model-row{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr) auto;align-items:end;gap:8px;padding:10px 0;border-bottom:1px solid var(--border)}.channel-model-row label{margin:0;min-width:0}.channel-model-row .check{align-self:center}@media(max-width:600px){.channel-model-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.channel-model-row .check{grid-column:1 / -1}}.channel-options{background:var(--surface-2);border:1px solid var(--border);padding:13px 15px;border-radius:var(--r-md);max-height:220px;overflow:auto;margin-bottom:15px;transition:background-color .25s ease}.channel-options p{margin:0 0 8px;font-size:12.5px;color:var(--text-2)}.channel-options .check{margin-bottom:8px}.channel-options .check:last-child{margin-bottom:0}.filters{padding:18px 20px 14px;display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}.filters label{margin:0;flex:1;min-width:170px}.filters-actions{display:flex;gap:8px}.quick{display:flex;gap:8px;align-items:center;width:100%;border-top:1px dashed var(--border);padding-top:12px;margin-top:2px}.quick button{padding:5px 14px;font-size:12px;border-radius:999px}.quick small{margin-left:auto}.chart{padding:0 22px 6px}.chart-empty{padding:36px 0 30px;text-align:center;color:var(--text-3);font-size:12.5px}.chart-plot{position:relative;height:220px;margin-left:42px}.chart-grid{position:absolute;left:0;right:0;border-top:1px dashed var(--border)}.chart-grid span{position:absolute;right:100%;margin-right:8px;top:-7px;font-size:11px;color:var(--text-3);font-variant-numeric:tabular-nums}.chart-bars{position:absolute;left:0;right:0;top:0;bottom:26px;display:flex;gap:2px;border-bottom:1px solid var(--border)}.chart-col{flex:1;position:relative;display:flex;min-width:0}.chart-bar{flex:1;max-width:46px;margin:0 auto;display:flex;flex-direction:column;justify-content:flex-end}.chart-bar i{display:block;width:100%;opacity:.92;transition:opacity .12s ease}.chart-col:hover .chart-bar i{opacity:1}.chart-bar .seg-input{background:linear-gradient(180deg,color-mix(in srgb,var(--chart-input) 76%,#ffffff),var(--chart-input));border-radius:4px 4px 0 0;margin-top:-4px}.chart-bar .seg-output{background:linear-gradient(180deg,color-mix(in srgb,var(--chart-output) 76%,#ffffff),var(--chart-output));border-radius:4px 4px 0 0}.chart-x{position:absolute;top:100%;margin-top:8px;left:-14px;right:-14px;text-align:center;font-size:11px;color:var(--text-3);white-space:nowrap}.chart-legend{display:flex;gap:18px;padding:34px 0 8px;font-size:12px;color:var(--text-2)}.chart-legend span{display:inline-flex;align-items:center;gap:7px}.chart-legend i{width:10px;height:10px;border-radius:3px}.seg-input{background:var(--chart-input)}.seg-output{background:var(--chart-output)}.login{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1000px 500px at 15% -10%,var(--accent-soft),transparent 60%),radial-gradient(800px 400px at 100% 110%,var(--accent-soft),transparent 55%),var(--bg);transition:background-color .25s ease}.login-card{background:var(--surface);width:400px;max-width:100%;padding:40px 38px 34px;border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-md);transition:background-color .25s ease,border-color .25s ease}.login-card .mark{margin-bottom:22px;width:46px;height:46px;border-radius:13px}.login-card h1{margin:0 0 6px;font-size:23px}.login-card>.muted{margin:0 0 22px}.login-card .primary{width:100%;margin-top:6px;padding:10px}@media(max-width:1100px){main{padding:24px 22px 32px}aside{width:198px;padding:22px 12px 16px}.metrics{gap:10px}.metric{padding:15px 16px}.metric strong{font-size:23px}th,td{padding:11px 14px}.filters label{min-width:150px}}@media(max-width:760px){.shell{display:block}aside{position:static;width:100%;height:auto;padding:16px;background-image:none}.brand{margin-bottom:14px;font-size:16px}.brand small{display:none}.mark{width:34px;height:34px;border-radius:9px}nav{display:flex;gap:6px}nav button{flex:1;justify-content:center;padding:9px 6px}nav button.active:before{display:none}.aside-bottom{margin-top:12px;display:flex;gap:8px;border-top:0;padding-top:0}.aside-bottom button{flex:1;justify-content:center;padding:7px 8px;font-size:12.5px}.aside-bottom .theme-seg{flex:1}main{padding:20px 14px 28px}h1{font-size:22px}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{padding:14px;gap:10px}.filters label{min-width:100%}.filters-actions{width:100%}.filters-actions button{flex:1}.section-head{padding-right:14px}.models-head>small{order:3;width:100%}.models-head .actions{margin-left:auto}.table-wrap table{min-width:620px}.cell-id{display:inline-block;max-width:148px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}th,td{padding:11px 16px}h2{padding:16px 14px 12px}.chart{padding:0 14px 4px}.chart-plot{margin-left:34px;height:180px}.dialog{padding:20px}.overlay{padding:12px}.login-card{padding:30px 24px 26px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
