.schedule-indicator[data-v-31051ee4]{position:relative}.indicator-pill[data-v-31051ee4]{border:1px solid var(--border);background:var(--surface-raised);cursor:pointer;color:var(--text-secondary);transition:var(--transition);border-radius:20px;align-items:center;gap:6px;padding:5px 12px;font-size:13px;font-weight:600;line-height:1;display:inline-flex}.indicator-pill[data-v-31051ee4]:hover,.indicator-pill.open[data-v-31051ee4]{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text)}.indicator-dot[data-v-31051ee4]{background:var(--accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:2s ease-in-out infinite pulse-glow-31051ee4}@keyframes pulse-glow-31051ee4{0%,to{opacity:1;box-shadow:0 0 #e85d2666}50%{opacity:.6;box-shadow:0 0 0 4px #e85d2600}}.indicator-text[data-v-31051ee4]{white-space:nowrap}.indicator-panel[data-v-31051ee4]{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-lg);width:320px;box-shadow:var(--shadow-lg);z-index:1000;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.panel-header[data-v-31051ee4]{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;padding:12px 16px 8px;font-size:12px;font-weight:700}.panel-list[data-v-31051ee4]{max-height:280px;overflow-y:auto}.panel-item[data-v-31051ee4]{border-top:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.item-main[data-v-31051ee4]{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.item-name[data-v-31051ee4]{color:var(--text-primary);font-size:13px;font-weight:600;font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.item-site[data-v-31051ee4]{color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.item-meta[data-v-31051ee4]{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;min-width:80px;margin-left:12px;display:flex}.item-progress-bar[data-v-31051ee4]{background:var(--border);border-radius:2px;width:80px;height:4px;overflow:hidden}.item-progress-fill[data-v-31051ee4]{background:var(--accent);border-radius:2px;height:100%;transition:width .3s}.item-progress-text[data-v-31051ee4]{font-size:10px;font-family:var(--font-mono);color:var(--text-tertiary);white-space:nowrap}.done-toast-stack{z-index:2000;flex-direction:column-reverse;gap:8px;width:300px;display:flex;position:fixed;bottom:20px;right:20px}.done-toast{background:var(--surface-raised,#fff);border:1px solid var(--border,#e8e6e1);border-radius:var(--radius,10px);box-shadow:var(--shadow-md,0 4px 16px #0000000f);cursor:pointer;align-items:stretch;transition:box-shadow .15s,transform .15s;animation:.2s doneToastIn;display:flex;overflow:hidden}.done-toast:hover{box-shadow:var(--shadow-lg,0 8px 32px #00000014);transform:translateY(-1px)}@keyframes doneToastIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.done-toast-left{background:var(--success-light,#e6f4ec);flex-shrink:0;justify-content:center;align-items:center;width:36px;display:flex}.done-toast-check{stroke:var(--success,#2d8b55)}.done-toast-left.has-fail{background:var(--danger-light,#fef0f0)}.done-toast-warn{stroke:var(--danger,#d63b3b)}.done-toast-content{flex:1;min-width:0;padding:10px 0 10px 10px}.done-toast-title{color:var(--text-primary,#1a1a18);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:600;line-height:1.3;overflow:hidden}.done-toast-models{font-size:11px;font-family:var(--font-mono,monospace);color:var(--text-secondary,#6b6b65);white-space:nowrap;text-overflow:ellipsis;margin-top:2px;overflow:hidden}.done-toast-meta{color:var(--text-tertiary,#9c9c96);white-space:nowrap;margin-top:2px;font-size:11px}.done-toast-dismiss{color:var(--text-tertiary,#9c9c96);cursor:pointer;background:0 0;border:none;flex-shrink:0;align-self:flex-start;padding:8px 10px;font-size:16px;line-height:1;transition:color .15s}.done-toast-dismiss:hover{color:var(--text-primary,#1a1a18)}.assistant-dock[data-v-0480a5d5]{top:var(--shell-header-h);z-index:900;background:var(--surface);border-left:1px solid var(--border);width:min(430px,92vw);min-height:0;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:fixed;bottom:0;right:0}.assistant-dock-head[data-v-0480a5d5]{border-bottom:1px solid var(--border-subtle);flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.assistant-dock-title[data-v-0480a5d5]{color:var(--text-primary);align-items:center;gap:8px;margin:0;font-size:15px;font-weight:600;display:flex}.assistant-dock-title i[data-v-0480a5d5]{color:var(--accent-text)}.assistant-dock-close[data-v-0480a5d5]{border-radius:var(--radius-control);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:15px;display:inline-flex}.assistant-dock-close[data-v-0480a5d5]:hover{background:var(--control-fill);border-color:var(--control-stroke);color:var(--text-primary)}.assistant-dock-close[data-v-0480a5d5]:focus-visible{box-shadow:var(--focus-ring);outline:none}.dock-enter-active[data-v-0480a5d5],.dock-leave-active[data-v-0480a5d5]{transition:transform var(--transition), opacity var(--transition)}.dock-enter-from[data-v-0480a5d5],.dock-leave-to[data-v-0480a5d5]{opacity:0;transform:translate(16px)}@media (width<=640px){.assistant-dock[data-v-0480a5d5]{width:100vw;top:0}}:root{--bg:#fafaf8;--surface:#fff;--surface-raised:#fff;--bg-secondary:#f5f3ef;--code-bg:#f5f3ef;--text:var(--text-secondary);--text-h:var(--text-primary);--accent-bg:var(--accent-light);--border:#e8e6e1;--border-subtle:#f0eee9;--text-primary:#1a1a18;--text-secondary:#6b6b66;--text-tertiary:#67675f;--accent:#e85d26;--accent-text:#b5420f;--accent-solid:#c0450f;--accent-solid-hover:#a63c0c;--accent-light:#fff0eb;--accent-hover:#d14e1a;--success:#2d8b55;--success-light:#eefbf3;--danger:#d63b3b;--danger-light:#fef0f0;--warning:#c77d15;--warning-light:#fff8eb;--info:#3b7dd6;--info-light:#eef4fe;--success-text:#1f7a4a;--danger-text:#c42b2b;--warning-text:#955f0d;--trend-solid:#2da44e;--trend-good:#4ac26b;--trend-warn:#d4a72c;--trend-bad:#cf222e;--trend-missing:color-mix(in srgb, var(--border) 60%, transparent);--trend-uncovered:color-mix(in srgb, var(--border) 26%, transparent);--chart-1:var(--accent);--chart-2:var(--info);--chart-3:var(--success);--chart-4:var(--warning);--chart-grid:var(--border-subtle);--info-text:#2c66b4;--radius:10px;--radius-lg:16px;--control-h:34px;--control-h-sm:30px;--radius-control:6px;--shell-nav-w:232px;--shell-header-h:64px;--control-stroke:#d8d5cf;--control-stroke-hover:#beb9b0;--control-fill:#f5f3ef;--control-fill-active:#ebe7e0;--control-fill-secondary:#f0eee9;--focus-ring:0 0 0 2px var(--surface), 0 0 0 4px color-mix(in srgb, var(--accent) 55%, transparent);--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 16px #0000000f;--shadow-lg:0 8px 32px #00000014;--font-body:"DM Sans", -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, "Noto Sans Mono CJK SC", monospace;--font-display:"Playfair Display", Georgia, "Songti SC", "SimSun", serif;--transition:.2s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--bg);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.6}html,body{overflow-x:hidden}input[type=checkbox],input[type=radio]{width:16px;height:16px;accent-color:var(--accent-solid);cursor:pointer;flex-shrink:0}input[type=checkbox]:disabled,input[type=radio]:disabled{cursor:not-allowed}.header{border-bottom:1px solid var(--border);height:var(--shell-header-h);top:0;left:var(--shell-nav-w);z-index:200;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:fixed;right:0}.header-left{align-items:center;gap:14px;min-width:0;display:flex}.header-crumb{color:var(--text-tertiary);white-space:nowrap;align-items:center;gap:8px;font-size:12px;display:flex;overflow:hidden}.header-crumb-page{color:var(--text-secondary);font-weight:600}.header-crumb-sep{opacity:.5}.site-category-label{text-overflow:ellipsis;white-space:nowrap;max-width:120px;color:var(--accent-text);align-items:center;font-size:11px;display:inline-flex;overflow:hidden}.logo{font-family:var(--font-display);color:var(--text-primary);letter-spacing:-.5px;font-size:22px;font-weight:800}.logo span{color:var(--accent)}.status-badge{font-size:12px;font-weight:600;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.5px;border-radius:20px;align-items:center;gap:6px;padding:4px 12px;display:inline-flex}.status-badge.idle{background:var(--border-subtle);color:var(--text-tertiary)}.status-badge.running{background:var(--accent-light);color:var(--accent-text)}.status-badge.stopping{background:var(--warning-light);color:var(--warning-text)}.status-badge.active{background:var(--success-light);color:var(--success-text)}.status-badge.paused{background:var(--warning-light);color:var(--warning-text)}.status-badge.active .status-dot{animation:1.5s ease-in-out infinite pulse}.status-dot{background:currentColor;border-radius:50%;width:7px;height:7px}.status-badge.running .status-dot{animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.app-shell{min-height:100vh}.app-shell--bare{--shell-nav-w:0px}.sidebar{width:var(--shell-nav-w);background:var(--surface);border-right:1px solid var(--border);scrollbar-width:thin;z-index:150;flex-direction:column;gap:2px;padding:16px 12px 12px;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.app-column{min-width:0;min-height:100vh;margin-left:var(--shell-nav-w);padding-top:var(--shell-header-h);flex-direction:column;flex:auto;display:flex}.sidebar-brand{font-family:var(--font-display);letter-spacing:-.5px;color:var(--text-primary);white-space:nowrap;padding:4px 10px 14px;font-size:20px;font-weight:800;text-decoration:none}.sidebar-brand span{color:var(--accent)}.sidebar-nav{flex-direction:column;display:flex}.sidebar-dock-launch{width:100%;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0}.sidebar-dock-launch:focus-visible{box-shadow:var(--focus-ring);outline:none}.sidebar-dock-launch[aria-expanded=true]{background:var(--accent-light);color:var(--accent-text)}.nav-group{flex-direction:column;gap:1px;margin-bottom:8px;display:flex}.nav-group-label{letter-spacing:.06em;text-transform:uppercase;color:var(--text-tertiary);white-space:nowrap;padding:8px 10px 4px;font-size:11px;font-weight:600}.nav-item{min-height:var(--control-h-sm);border-radius:var(--radius-control);color:var(--text-secondary);white-space:nowrap;transition:var(--transition);align-items:center;gap:10px;padding:6px 10px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.nav-item i{opacity:.75;flex-shrink:0;font-size:16px}.nav-item:hover{background:var(--control-fill);color:var(--text-primary)}.nav-item.active{background:var(--accent-light);color:var(--accent-text);box-shadow:inset 2px 0 0 var(--accent);font-weight:600}.nav-item.active i{opacity:1}.sidebar-footer{border-top:1px solid var(--border-subtle);align-items:center;gap:8px;margin-top:auto;padding:12px 4px 0;display:flex}.sidebar-user{flex-direction:column;flex:1;min-width:0;display:flex}.sidebar-user-name{color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:600;overflow:hidden}.sidebar-user-role{color:var(--text-tertiary);font-size:11px}.nav-signout{width:var(--control-h-sm);height:var(--control-h-sm);border-radius:var(--radius-control);color:var(--text-tertiary);cursor:pointer;transition:var(--transition);background:0 0;border:1px solid #0000;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.nav-signout:hover{background:var(--danger-light);color:var(--danger-text)}.nav-signout:focus-visible{box-shadow:var(--focus-ring);outline:none}.global-time-range{flex-shrink:0}@media (width<=1080px){:root{--shell-nav-w:60px}.sidebar{padding:16px 8px 12px}.sidebar-brand,.nav-group-label,.nav-item-label,.sidebar-user{display:none}.nav-item{justify-content:center;padding:6px 0}.nav-item i{font-size:18px}.sidebar-footer{justify-content:center}}.main{width:100%;max-width:1400px;margin:0 auto;padding:28px 32px}.tab-content{animation:.25s fadeIn;display:none}.tab-content.active{display:block}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px;overflow:hidden}.card-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;font-size:14px;font-weight:600}.metrics-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-bottom:24px;display:grid}.metric-card{background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:var(--transition);min-width:0;padding:20px;overflow:hidden;container-type:inline-size}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.metric-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.8px;margin-bottom:8px;font-size:12px;font-weight:600}.metric-value{font-family:var(--font-mono);color:var(--text-primary);font-size:28px;font-weight:600;line-height:1.2}.metric-value.success{color:var(--success)}.metric-value.warning{color:var(--warning)}.metric-value.danger{color:var(--danger)}.metric-value.accent{color:var(--accent)}.metric-sub{color:var(--text-tertiary);font-size:12px;font-family:var(--font-mono);word-break:break-word;margin-top:4px}.trend-summary-cards{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.trend-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:14px 16px}.trend-card-label{color:var(--text-tertiary);letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:600}.trend-card-value{font-family:var(--font-mono);color:var(--text-primary);margin-bottom:4px;font-size:20px;font-weight:600;line-height:1.2}.trend-card-delta{font-family:var(--font-mono);font-size:12px;font-weight:600}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}thead th{background:var(--bg);text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.8px;border-bottom:1px solid var(--border);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 16px;font-size:11px;font-weight:600}thead th:hover{color:var(--accent-text)}tbody td{border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);white-space:nowrap;padding:10px 16px;font-size:12.5px}tbody tr:hover,tbody tr.history-row:hover{background:var(--control-fill)}tbody tr.history-row.expanded{background:var(--accent-light)}tbody tr:last-child td{border-bottom:none}.form-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group.full{grid-column:1/-1}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.6px;font-size:12px;font-weight:600}.form-input,.form-select,.form-textarea{min-height:var(--control-h);border:1px solid var(--control-stroke);border-radius:var(--radius-control);font-family:var(--font-body);color:var(--text-primary);background:var(--surface);transition:var(--transition);outline:none;padding:7px 10px;font-size:13px}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--control-stroke-hover)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.form-input::placeholder{color:var(--text-tertiary)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--control-fill);color:var(--text-tertiary);cursor:not-allowed}.form-textarea{font-family:var(--font-mono);resize:vertical;min-height:100px;font-size:13px}.form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none' stroke='%2367675F' stroke-width='1.5'%3E%3Cpath d='M3 4.5l3 3 3-3'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;width:100%;padding-right:32px}.combobox{position:relative}.combobox .form-input{width:100%;padding-right:36px}.combobox-toggle{cursor:pointer;color:var(--text-tertiary);min-width:26px;min-height:26px;transition:var(--transition);background:0 0;border:none;align-items:center;padding:4px;line-height:1;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.combobox-toggle:hover{color:var(--accent-text)}.combobox-dropdown{background:var(--surface);border:1px solid var(--control-stroke);border-radius:var(--radius);width:max-content;min-width:100%;box-shadow:var(--shadow-md);z-index:2200;max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.combobox-option{font-size:13px;font-family:var(--font-mono);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:var(--radius-control);transition:var(--transition);padding:6px 10px}.combobox-option:hover{background:var(--control-fill)}.combobox-option.active{background:var(--accent-light);color:var(--accent-text);font-weight:600}.combobox-empty{color:var(--text-tertiary);text-align:center;padding:10px 14px;font-size:12px}.model-tags-input{border:1px solid var(--control-stroke);border-radius:var(--radius-control);background:var(--surface);cursor:text;width:100%;min-height:38px;transition:var(--transition);flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;display:flex}.model-tags-input:hover{border-color:var(--control-stroke-hover)}.model-tags-input:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.model-tag{background:var(--accent-light);color:var(--accent-text);font-size:12px;font-family:var(--font-mono);white-space:nowrap;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;line-height:1.6;display:inline-flex}.model-tag-remove{color:var(--accent-text);cursor:pointer;min-width:20px;min-height:20px;transition:var(--transition);background:0 0;border:none;justify-content:center;align-items:center;padding:0 3px;font-size:14px;line-height:1;display:inline-flex}.model-tag-remove:hover{color:var(--accent-solid-hover)}.model-tag-search{min-width:80px;font-size:13px;font-family:var(--font-mono);color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:2px 0}.model-tag-search::placeholder{color:var(--text-tertiary)}.btn{background:var(--surface);min-height:var(--control-h);border-radius:var(--radius-control);font-family:var(--font-body);border:1px solid var(--control-stroke);cursor:pointer;transition:var(--transition);white-space:nowrap;letter-spacing:-.01em;justify-content:center;align-items:center;gap:6px;padding:7px 14px;font-size:13px;font-weight:600;display:inline-flex}.btn:hover:not(:disabled){background:var(--control-fill);border-color:var(--control-stroke-hover)}.btn:active:not(:disabled){background:var(--control-fill-active)}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-solid);color:#fff;border-color:#0000}.btn-primary:hover:not(:disabled){background:var(--accent-solid-hover);border-color:#0000}.btn-primary:active:not(:disabled){background:#8e320b}.btn-danger{background:var(--danger-text);color:#fff;border-color:#0000}.btn-danger:hover:not(:disabled){background:#a82424;border-color:#0000}.btn-ghost{background:var(--control-fill-secondary);color:var(--text-primary);border:1px solid #0000}.btn-ghost:hover:not(:disabled){background:var(--control-fill);border-color:var(--control-stroke-hover)}.btn-ghost:active:not(:disabled){background:var(--control-fill-active)}.btn-sm{min-height:var(--control-h-sm);padding:5px 11px;font-size:12px}.btn-group{gap:8px;margin-top:8px;display:flex}.radio-group-inline{gap:8px;display:flex}.radio-pill{cursor:pointer;-webkit-user-select:none;user-select:none}.radio-pill input[type=radio]{display:none}.radio-pill span{min-height:var(--control-h);border:1px solid var(--control-stroke);border-radius:var(--radius-control);color:var(--text-secondary);background:var(--surface);transition:var(--transition);align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:inline-flex}.radio-pill span small{color:var(--text-tertiary);font-size:12px;font-weight:400}.radio-pill:hover span{border-color:var(--control-stroke-hover);background:var(--control-fill)}.radio-pill.active span,.radio-pill input:checked+span{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text)}.radio-pill.active span small,.radio-pill input:checked+span small{color:var(--accent-text)}.search-input-wrap{flex:0 240px;min-width:180px;position:relative}.search-input-wrap svg{color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input-wrap .form-input{width:100%;padding-left:36px}.filter-chips{flex:1;align-items:center;gap:4px;display:flex}.time-range-pills{border:1px solid var(--control-stroke);border-radius:var(--radius-control);background:var(--control-fill-secondary);flex-shrink:0;gap:2px;padding:2px;display:flex}.time-range-pill{min-height:26px;font-family:var(--font-mono);color:var(--text-tertiary);cursor:pointer;transition:var(--transition);background:0 0;border:none;border-radius:4px;padding:4px 10px;font-size:11px;font-weight:500}.time-range-pill:hover{background:var(--surface);color:var(--text-secondary)}.time-range-pill.active{background:var(--surface);color:var(--accent-text);box-shadow:var(--shadow-sm);font-weight:600}.filter-dropdown{position:relative}.filter-dropdown--wide .filter-dropdown-btn{flex-shrink:0;min-width:160px}.filter-dropdown-btn{min-height:var(--control-h-sm);border:1px solid var(--control-stroke);border-radius:var(--radius-control);background:var(--surface);font-family:var(--font-body);color:var(--text-secondary);cursor:pointer;transition:var(--transition);white-space:nowrap;align-items:center;padding:5px 30px 5px 10px;font-size:13px;display:flex;position:relative}.filter-dropdown-btn:hover{border-color:var(--control-stroke-hover);background:var(--control-fill)}.filter-dropdown-btn:focus-visible{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.filter-dropdown-btn svg{opacity:.5;flex-shrink:0;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.filter-dropdown-list{background:var(--surface);border:1px solid var(--control-stroke);border-radius:var(--radius);width:max-content;min-width:max-content;box-shadow:var(--shadow-md);z-index:50;max-height:220px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.filter-chip{min-height:var(--control-h-sm);border-radius:var(--radius-control);background:var(--control-fill-secondary);font-family:var(--font-body);color:var(--text-secondary);cursor:pointer;transition:var(--transition);border:1px solid #0000;padding:5px 10px;font-size:12px;font-weight:500}.filter-chip:hover{background:var(--control-fill);border-color:var(--control-stroke-hover);color:var(--text-primary)}.filter-chip.active{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text);font-weight:600}thead th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}thead th.sortable:hover,thead th.active-sort{color:var(--accent-text)}.sort-arrow{opacity:.5;margin-left:2px;font-size:11px}thead th.active-sort .sort-arrow{opacity:1}.chip-group{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{cursor:pointer;-webkit-user-select:none;user-select:none}.chip span{min-height:var(--control-h);border:1px solid var(--control-stroke);border-radius:var(--radius-control);font-family:var(--font-mono);color:var(--text-secondary);background:var(--surface);transition:var(--transition);align-items:center;padding:7px 14px;font-size:13px;font-weight:500;display:inline-flex}.chip:hover span{border-color:var(--control-stroke-hover);background:var(--control-fill)}.chip.selected span{border-color:var(--accent);background:var(--accent-light);color:var(--accent-text);font-weight:600}.chip-custom{align-items:center;gap:4px;display:flex}.progress-panel{margin-top:24px;display:none}.progress-panel.active{display:block}.progress-bar-wrap{background:var(--border-subtle);border-radius:6px;height:10px;margin:12px 0;overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--accent), #f59e3b);border-radius:6px;width:0%;height:100%;transition:width .3s}.progress-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin:16px 0;display:grid}.progress-stat{background:var(--bg);text-align:center;border-radius:8px;padding:12px}.progress-stat-value{font-family:var(--font-mono);font-size:20px;font-weight:600}.progress-stat-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-size:11px}.progress-log{color:#c8c8c0;border-radius:var(--radius);max-height:200px;font-family:var(--font-mono);word-break:break-word;overflow-wrap:anywhere;white-space:pre-wrap;background:#1a1a18;margin-top:16px;padding:14px;font-size:12px;line-height:1.8;overflow:hidden auto}.progress-log .ok{color:#6bcb77}.progress-log .fail{color:#e85d5d}.progress-log .info{color:#6bb8e8}.history-toolbar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.history-toolbar .form-input{padding:8px 12px;font-size:13px}.history-toolbar .search-input-wrap .form-input{padding-left:36px}.expand-btn{cursor:pointer;color:var(--text-tertiary);transition:var(--transition);background:0 0;border:none;border-radius:4px;min-width:30px;min-height:30px;padding:4px 8px;font-size:16px}.expand-btn:hover{color:var(--accent-text);background:var(--accent-light)}.detail-row{display:none}.detail-row.open{display:table-row}.detail-row td{background:var(--bg);padding:20px;overflow:hidden}.detail-row td>div{word-break:break-word;overflow-wrap:anywhere;max-width:100%}.detail-row .table-wrap{overflow-x:auto}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.chart-card-title{font-family:var(--font-mono);color:var(--text-primary);align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.info-tip{background:var(--border);width:16px;height:16px;color:var(--text-primary);font-size:11px;font-weight:700;font-family:var(--font-body);cursor:help;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;position:relative}.info-tip:hover{background:var(--accent-light);color:var(--accent-text)}#tooltip-float{background:var(--text-primary);color:#fff;font-size:12px;font-weight:400;font-family:var(--font-body);text-align:center;pointer-events:none;z-index:10000;max-width:280px;box-shadow:var(--shadow-lg);border-radius:8px;padding:8px 12px;line-height:1.5;display:none;position:fixed}.matrix-table th{font-size:11px}.matrix-model{color:var(--text-primary);font-weight:600}.rate-badge{font-family:var(--font-mono);border-radius:6px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.rate-badge.success{background:var(--success-light);color:var(--success-text)}.rate-badge.accent{background:var(--warning-light);color:var(--warning-text)}.rate-badge.danger{background:var(--danger-light);color:var(--danger-text)}.empty-state{text-align:center;color:var(--text-tertiary);padding:60px 20px}.empty-state-icon{opacity:.3;margin-bottom:16px;font-size:48px}.empty-state-text{margin-bottom:8px;font-size:15px}.toast-container{z-index:1000;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{border:1px solid var(--control-stroke);border-radius:var(--radius-control);background:var(--surface);color:var(--text-primary);box-shadow:var(--shadow-md);pointer-events:auto;border-left-width:3px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;animation:.3s slideUp;display:flex}.toast.success{border-left-color:var(--success);color:var(--success-text)}.toast.error{border-left-color:var(--danger);color:var(--danger-text)}.toast.info{border-left-color:var(--info);color:var(--info-text)}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.compare-overlay{z-index:2100;visibility:hidden;pointer-events:none;background:#0006;justify-content:center;align-items:center;transition:opacity .15s;display:flex;position:fixed;inset:0}.compare-overlay.open{opacity:1;visibility:visible;pointer-events:auto}.compare-modal{background:var(--surface);border-radius:var(--radius-lg);width:95%;max-width:1200px;max-height:85vh;box-shadow:var(--shadow-lg);flex-direction:column;display:flex;overflow:hidden}.compare-modal>.compare-modal-header{flex-shrink:0;padding:32px 32px 0}.compare-modal>.compare-modal-body{flex:1;min-height:0;padding:20px 32px 32px;overflow:hidden auto}.compare-modal h2{font-family:var(--font-body);color:var(--text-primary);margin-bottom:20px;font-size:22px;font-weight:700}.compare-best{color:var(--success,#2d8b55);font-weight:600}.compare-bar{background:var(--accent-light);border-radius:8px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;display:none}.compare-bar.visible{display:flex}.compare-bar-label{color:var(--accent-text);white-space:nowrap;font-weight:600}.compare-bar-tags{flex-wrap:wrap;gap:4px;display:flex}.compare-tag{background:var(--surface);border:1px solid var(--border);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;align-items:center;gap:4px;max-width:150px;padding:2px 8px;font-size:12px;display:inline-flex;overflow:hidden}.compare-tag-remove{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:14px;line-height:1}.compare-tag-remove:hover{color:var(--danger-text)}.compare-table{border-collapse:collapse;width:100%}.compare-table th,.compare-table td{text-align:left;border-bottom:1px solid var(--border-subtle);white-space:nowrap;padding:10px 14px;font-size:13px}.compare-table thead th{background:var(--bg);z-index:2;font-size:12px;font-weight:600;position:sticky;top:0}.compare-table tbody tr:hover{background:var(--control-fill)}.compare-table .compare-best{color:var(--success-text);font-weight:700}.compare-pct-diff{margin-left:6px;font-size:11px;font-weight:600}.compare-back-link{color:var(--accent-text);font-size:13px;font-weight:500;text-decoration:none}.compare-back-link:hover{text-decoration:underline}.error-row{background:#d63b3b0f!important}.error-row:hover{background:#d63b3b1a!important}@media (width<=768px){.header{padding:0 16px}.main{padding:16px}.form-grid{grid-template-columns:1fr}.metrics-grid{grid-template-columns:repeat(2,1fr)}}.auth-page{justify-content:center;align-items:center;min-height:80vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:400px;padding:40px;box-shadow:0 8px 32px #0000001f}.auth-logo{font-family:var(--font-display);text-align:center;color:var(--text-primary);margin-bottom:28px;font-size:28px;font-weight:800}.auth-logo span{color:var(--accent)}.auth-error{color:var(--danger-text);background:#d63b3b1a;border:1px solid #d63b3b4d;border-radius:8px;margin-bottom:16px;padding:10px 14px;font-size:13px}.auth-form .form-group{margin-bottom:16px}.header-right{align-items:center;gap:10px;display:flex}.header{justify-content:space-between}.user-avatar{background:var(--accent-solid);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;font-size:13px;font-weight:700;display:flex}.sr-only{clip:rect(0, 0, 0, 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.settings-page{flex-direction:column;gap:32px;max-width:760px;display:flex}.settings-section{flex-direction:column;gap:4px;display:flex}.settings-section-head{padding:0 4px 8px}.settings-section-title{color:var(--text-primary);letter-spacing:-.01em;font-size:16px;font-weight:600}.settings-section-hint{color:var(--text-tertiary);max-width:68ch;margin-top:2px;font-size:12px}.settings-section-body{flex-direction:column;gap:6px;display:flex}.settings-subgroup{letter-spacing:.04em;text-transform:uppercase;color:var(--text-tertiary);padding:16px 4px 4px;font-size:12px;font-weight:600}.settings-section-actions{flex-wrap:wrap;align-items:center;gap:8px;padding:10px 4px 0;display:flex}.setting-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:var(--transition);justify-content:space-between;align-items:center;gap:20px;padding:14px 16px;display:flex}.setting-card:hover{border-color:var(--control-stroke-hover)}.setting-card--stack{flex-direction:column;align-items:stretch;gap:10px}.setting-card--disabled{opacity:.6}.setting-info{flex:auto;min-width:0}.setting-title{color:var(--text-primary);cursor:default;font-size:13px;font-weight:600;line-height:1.5;display:block}label.setting-title{cursor:pointer}.setting-required{color:var(--danger-text);margin-left:2px}.setting-hint{color:var(--text-tertiary);max-width:62ch;margin-top:2px;font-size:12px;line-height:1.55}.setting-control{flex:none;align-items:center;gap:8px;min-width:0;display:flex}.setting-card--stack .setting-control{flex-direction:column;align-items:stretch;width:100%}.setting-card--stack .setting-control .form-input{width:100%;max-width:none}.setting-control .form-input,.setting-control .form-select{width:240px;max-width:46vw}.setting-control .form-input[type=number]{width:120px}.settings-page--dialog{gap:8px;max-width:none}.settings-page--dialog .setting-card{padding:11px 14px}.settings-page--dialog .setting-card:hover{border-color:var(--border)}.settings-page--dialog .settings-section-title{font-size:14px}.settings-page--dialog>.btn-group{margin-top:8px}.setting-control .combobox{width:240px;max-width:46vw}.setting-card--stack .setting-control .combobox{width:100%;max-width:none}.switch{min-height:var(--control-h);cursor:pointer;flex-shrink:0;align-items:center;display:inline-flex}.switch-input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.switch-track{border:1px solid var(--control-stroke-hover);width:40px;height:20px;transition:var(--transition);background:0 0;border-radius:10px;flex-shrink:0;position:relative}.switch-track:after{content:"";background:var(--text-secondary);width:12px;height:12px;transition:var(--transition);border-radius:50%;position:absolute;top:3px;left:3px}.switch:hover .switch-track{background:var(--control-fill)}.switch-input:checked+.switch-track{background:var(--accent-solid);border-color:var(--accent-solid)}.switch-input:checked+.switch-track:after{background:#fff;transform:translate(20px)}.switch-input:focus-visible+.switch-track{box-shadow:var(--focus-ring)}.switch-input:disabled+.switch-track{opacity:.45}.switch-input:disabled~*,.switch--disabled{cursor:not-allowed}.models-count{color:var(--text-tertiary);white-space:nowrap;font-size:12px}.btn-ghost.active{background:var(--accent-light);color:var(--accent-text);border-color:var(--accent)}.models-add-panel{background:var(--bg);border:1px solid var(--border-subtle);border-radius:8px;align-items:center;gap:8px;margin-bottom:16px;padding:12px;display:flex}.models-add-panel .form-input{flex:1;min-width:0;padding:7px 12px;font-size:13px}.models-add-panel .form-input:first-child{flex:2}.models-table-wrap{border:1px solid var(--border);border-radius:var(--radius);max-height:60vh;overflow-y:auto}.models-table{border-collapse:collapse;table-layout:fixed;width:100%}.models-table thead{z-index:10;position:sticky;top:0}.models-table thead th{letter-spacing:.6px;padding:8px 12px}.models-table thead th:hover{color:var(--accent-text)}.models-sort-arrow{margin-left:2px;font-size:11px}.models-th-check{width:36px;text-align:center!important;padding:8px 0!important}.models-th-name{width:auto}.models-th-provider{width:120px}.models-th-price{width:120px;text-align:right!important}.models-th-action{width:32px}.models-table tbody td{border-bottom:1px solid var(--border-subtle);font-family:var(--font-mono);white-space:nowrap;padding:7px 12px;font-size:12.5px}.models-table tbody tr:hover{background:var(--control-fill)}.models-table tbody tr:last-child td{border-bottom:none}.models-td-check{text-align:center;padding:7px 0}.models-td-name{font-family:var(--font-mono);text-overflow:ellipsis;font-size:12px;overflow:hidden}.models-td-provider{color:var(--text-secondary);font-size:12px}.models-td-price{text-align:right;font-size:12px}.models-td-action{text-align:center;padding:7px 4px}.models-custom-badge{font-size:11px;font-weight:600;font-family:var(--font-body);background:var(--accent-light);color:var(--accent-text);vertical-align:middle;border-radius:4px;flex-shrink:0;margin-left:6px;padding:1px 6px;display:inline-block}.models-row-custom .models-td-name{color:var(--accent-text)}.models-remove-btn{cursor:pointer;color:var(--text-tertiary);background:0 0;border:none;padding:0 4px;font-size:16px;line-height:1}.models-remove-btn:hover{color:var(--danger-text)}.models-empty{text-align:center;color:var(--text-tertiary);padding:32px 12px!important}.models-loading{text-align:center;color:var(--text-tertiary);padding:40px}.models-save-msg{background:var(--success-light);color:var(--success-text);border-radius:8px;margin:0;padding:6px 14px;font-size:13px;font-weight:500;display:inline-block}.settings-msg{border-radius:8px;margin-top:12px;padding:8px 14px;font-size:13px;font-weight:500}.settings-msg.success{background:var(--success-light);color:var(--success-text)}.settings-msg.error{background:var(--danger-light);color:var(--danger-text)}.sys-admin-hint{color:var(--text-tertiary);font-size:12px}.admin-user-count{font-family:var(--font-mono);color:var(--text-tertiary);font-size:12px}.role-badge{min-height:26px;font-size:11px;font-weight:600;font-family:var(--font-mono);cursor:pointer;border:none;border-radius:6px;align-items:center;gap:4px;padding:4px 10px;transition:opacity .15s;display:inline-flex}.role-badge:hover{opacity:.8}.role-badge.admin{background:var(--accent-light);color:var(--accent-text)}.role-badge.user{background:var(--bg);color:var(--text-tertiary);border:1px solid var(--border)}.role-dropdown{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:90px;padding:4px;position:absolute;top:100%;left:0;box-shadow:0 4px 12px #0000001f}.role-option{cursor:pointer;text-align:left;width:100%;color:var(--text-primary);background:0 0;border:none;border-radius:6px;padding:6px 10px;font-size:12px;display:block}.role-option:hover{background:var(--bg)}.role-option.active{background:var(--accent-light);color:var(--accent-text)}
