:root{color-scheme:dark;--bg: #080c14;--bg-subtle: #0d1322;--panel: #111827;--panel-soft: #162034;--panel-hover: #1b263e;--line: #1e293b;--line-light: #2b3952;--text: #f8fafc;--text-muted: #94a3b8;--text-dim: #64748b;--text-strong: #ffffff;--text-soft: #cbd5e1;--on-accent: #ffffff;--accent: #3b82f6;--accent-hover: #2563eb;--accent-glow: rgba(59, 130, 246, .2);--accent-gradient: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%);--accent-text: #60a5fa;--accent-alt-text: #a5b4fc;--accent-soft-bg: rgba(59, 130, 246, .12);--accent-soft-border: rgba(59, 130, 246, .3);--ok: #10b981;--ok-bg: rgba(16, 185, 129, .12);--ok-border: rgba(16, 185, 129, .35);--ok-text: #34d399;--bad: #f43f5e;--bad-bg: rgba(244, 63, 94, .12);--bad-border: rgba(244, 63, 94, .35);--bad-text: #fb7185;--warn: #f59e0b;--warn-bg: rgba(245, 158, 11, .12);--warn-border: rgba(245, 158, 11, .35);--warn-text: #fbbf24;--info: #0ea5e9;--info-bg: rgba(14, 165, 233, .12);--info-border: rgba(14, 165, 233, .35);--info-text: #38bdf8;--overlay-1: rgba(255, 255, 255, .02);--overlay-2: rgba(255, 255, 255, .05);--overlay-3: rgba(255, 255, 255, .08);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .2);--shadow-inset: inset 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px -2px rgba(0, 0, 0, .35);--shadow-lg: 0 4px 20px -2px rgba(0, 0, 0, .4);--shadow-xl: 0 8px 30px -4px rgba(0, 0, 0, .5);--shadow-dialog: 0 24px 60px rgba(0, 0, 0, .55);--header-bg: rgba(13, 19, 34, .9);--backdrop: rgba(8, 12, 20, .6);--hero-gradient: linear-gradient(135deg, rgba(19, 27, 46, .95) 0%, rgba(13, 19, 34, .95) 100%);--code-bg: #050811;--code-text: #93c5fd;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px}:root[data-theme=light]{color-scheme:light;--bg: #f4f7fb;--bg-subtle: #ffffff;--panel: #ffffff;--panel-soft: #f1f5f9;--panel-hover: #e6edf6;--line: #e4e9f0;--line-light: #cdd7e3;--text: #1e293b;--text-muted: #5b6b80;--text-dim: #748498;--text-strong: #0d1626;--text-soft: #475569;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-glow: rgba(37, 99, 235, .18);--accent-gradient: linear-gradient(135deg, #2563eb 0%, #4f46e5 100%);--accent-text: #1d4ed8;--accent-alt-text: #4338ca;--accent-soft-bg: rgba(37, 99, 235, .07);--accent-soft-border: rgba(37, 99, 235, .22);--ok: #059669;--ok-bg: rgba(5, 150, 105, .1);--ok-border: rgba(5, 150, 105, .28);--ok-text: #047857;--bad: #e11d48;--bad-bg: rgba(225, 29, 72, .08);--bad-border: rgba(225, 29, 72, .26);--bad-text: #be123c;--warn: #d97706;--warn-bg: rgba(217, 119, 6, .1);--warn-border: rgba(217, 119, 6, .28);--warn-text: #b45309;--info: #0284c7;--info-bg: rgba(2, 132, 199, .09);--info-border: rgba(2, 132, 199, .26);--info-text: #0369a1;--overlay-1: rgba(15, 23, 42, .03);--overlay-2: rgba(15, 23, 42, .05);--overlay-3: rgba(15, 23, 42, .08);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .08);--shadow-inset: inset 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 14px -2px rgba(15, 23, 42, .1);--shadow-lg: 0 4px 18px -2px rgba(15, 23, 42, .1);--shadow-xl: 0 8px 26px -4px rgba(15, 23, 42, .14);--shadow-dialog: 0 24px 60px rgba(15, 23, 42, .22);--header-bg: rgba(255, 255, 255, .85);--backdrop: rgba(15, 23, 42, .35);--hero-gradient: linear-gradient(135deg, #ffffff 0%, #eaf0f8 100%);--code-bg: #f7f9fc;--code-text: #1e40af}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,pre,.mono{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-text)}.app-header{position:sticky;top:0;z-index:50;background:var(--header-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav-container{max-width:1440px;margin:0 auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;height:62px}.brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:15px;letter-spacing:-.01em;color:var(--text-strong);text-decoration:none}.brand-icon{width:32px;height:32px;border-radius:9px;background:var(--accent-gradient);display:flex;align-items:center;justify-content:center;color:var(--on-accent);font-weight:800;font-size:15px;box-shadow:0 2px 10px var(--accent-glow)}.brand-badge{font-size:10px;text-transform:uppercase;letter-spacing:.06em;background:var(--overlay-3);padding:2px 7px;border-radius:999px;color:var(--text-muted);font-weight:600;border:1px solid var(--line)}nav.main-nav{display:flex;align-items:center;gap:4px}nav.main-nav a{color:var(--text-muted);padding:8px 14px;border-radius:var(--radius-sm);font-weight:500;font-size:13.5px;transition:all .15s ease;position:relative}nav.main-nav a:hover{color:var(--text);background:var(--overlay-2)}nav.main-nav a.active{color:var(--text-strong);background:var(--panel-soft);font-weight:600;box-shadow:inset 0 0 0 1px var(--line-light)}nav.main-nav a.active:after{content:"";position:absolute;bottom:-11px;left:50%;transform:translate(-50%);width:20px;height:2px;background:var(--accent);border-radius:2px}main{max-width:1440px;margin:0 auto;padding:28px;min-height:calc(100vh - 62px)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.page-title-group{display:flex;flex-direction:column;gap:4px}h1{font-size:22px;font-weight:700;letter-spacing:-.02em;margin:0;color:var(--text-strong);display:flex;align-items:center;gap:12px}h2{font-size:15px;font-weight:600;letter-spacing:-.01em;margin:0 0 12px;color:var(--text)}.breadcrumb{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text-dim);margin-bottom:6px;transition:color .15s}.breadcrumb:hover{color:var(--accent)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:20px;margin-bottom:20px;box-shadow:var(--shadow-lg)}.panel-subtle{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:14px;margin-bottom:14px}.row{display:flex;gap:16px;flex-wrap:wrap}.row>*{flex:1 1 240px}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:20px}.kpi-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:18px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:var(--shadow-md);position:relative;overflow:hidden;transition:border-color .2s}.kpi-card:hover{border-color:var(--line-light)}.kpi-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--line-light)}.kpi-card.ok:before{background:var(--ok)}.kpi-card.bad:before{background:var(--bad)}.kpi-card.warn:before{background:var(--warn)}.kpi-card.info:before{background:var(--accent)}.kpi-label{font-size:11.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between}.kpi-value{font-size:22px;font-weight:700;color:var(--text-strong);line-height:1.2;letter-spacing:-.02em;margin-bottom:6px}.kpi-sub{font-size:12.5px;color:var(--text-muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}.manifest-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.manifest-item{background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 14px;display:flex;flex-direction:column;gap:4px}.manifest-key{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.manifest-val{font-family:JetBrains Mono,monospace;font-size:12.5px;color:var(--text);word-break:break-all}.tag{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:500;border:1px solid var(--line-light);background:var(--overlay-2);color:var(--text-muted);line-height:1.3}.tag.ok{background:var(--ok-bg);color:var(--ok-text);border-color:var(--ok-border)}.tag.bad{background:var(--bad-bg);color:var(--bad-text);border-color:var(--bad-border)}.tag.warn{background:var(--warn-bg);color:var(--warn-text);border-color:var(--warn-border)}.tag.info{background:var(--info-bg);color:var(--info-text);border-color:var(--info-border)}.tag.pulse:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:currentColor;animation:pulse-dot 1.5s infinite ease-in-out}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}.table-container{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;background:var(--panel);margin-top:14px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);vertical-align:middle}th{background:var(--panel-soft);color:var(--text-dim);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}tr:last-child td{border-bottom:none}tbody tr{transition:background-color .15s ease}tbody tr:hover{background:var(--overlay-1)}button,.btn{background:var(--accent);color:var(--on-accent);border:0;border-radius:var(--radius-sm);padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:500;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:all .15s ease;box-shadow:var(--shadow-sm)}button:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(0)}button.ghost{background:var(--overlay-2);border:1px solid var(--line-light);color:var(--text);box-shadow:none}button.ghost:hover:not(:disabled){background:var(--overlay-3);border-color:var(--text-dim);color:var(--text-strong)}button.danger{background:var(--bad)}button.danger:hover:not(:disabled){background:#e11d48}button:disabled{opacity:.45;cursor:not-allowed;transform:none}input,textarea,select{width:100%;background:var(--bg-subtle);color:var(--text);border:1px solid var(--line-light);border-radius:var(--radius-sm);padding:9px 12px;font-family:inherit;font-size:13.5px;box-shadow:var(--shadow-inset);transition:all .15s ease}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}input::placeholder,textarea::placeholder{color:var(--text-dim)}label{display:block;margin-bottom:12px;color:var(--text-muted);font-size:13px;font-weight:500}label>span{display:block;margin-bottom:6px;color:var(--text-soft)}.switch{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input[type=checkbox]{width:auto;cursor:pointer;accent-color:var(--accent)}.chat-stream{display:flex;flex-direction:column;gap:12px;max-height:500px;overflow-y:auto;padding:16px;background:var(--bg-subtle);border:1px solid var(--line);border-radius:var(--radius-md)}.chat-msg{display:flex;flex-direction:column;gap:4px;max-width:82%}.chat-msg.user{align-self:flex-start}.chat-msg.assistant{align-self:flex-end}.chat-bubble{padding:10px 14px;border-radius:var(--radius-md);font-size:13.5px;line-height:1.5;word-break:break-word}.chat-msg.user .chat-bubble{background:var(--panel-soft);border:1px solid var(--line-light);color:var(--text);border-bottom-left-radius:3px}.chat-msg.assistant .chat-bubble{background:var(--accent-soft-bg);border:1px solid var(--accent-soft-border);color:var(--text);border-bottom-right-radius:3px}.chat-bubble-author{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;display:flex;align-items:center;gap:6px}.chat-msg.user .chat-bubble-author{color:var(--accent-text)}.chat-msg.assistant .chat-bubble-author{color:var(--accent-alt-text);justify-content:flex-end}details.logs{margin-top:14px;background:var(--panel-soft);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}details.logs>summary{padding:10px 14px;font-weight:500;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s;background:var(--overlay-1)}details.logs>summary:hover{background:var(--overlay-2);color:var(--text)}details.logs[open]>summary{border-bottom:1px solid var(--line)}.logs-body{padding:14px}.log-turn{border-left:2px solid var(--accent);margin:10px 0;padding-left:12px}.log-turn-title{font-weight:600;font-size:13px;color:var(--text);margin-bottom:6px}.logs pre{background:var(--code-bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px;margin:6px 0;max-height:280px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:12px;color:var(--code-text)}.score-hero{background:var(--hero-gradient);border:1px solid var(--line-light);border-radius:var(--radius-lg);padding:24px;margin-bottom:24px;box-shadow:var(--shadow-xl);position:relative;overflow:hidden}.score-hero:before{content:"";position:absolute;top:0;left:0;bottom:0;width:5px;background:var(--accent-gradient)}.score-hero.ok:before{background:var(--ok)}.score-hero.warn:before{background:var(--warn)}.score-hero.bad:before{background:var(--bad)}.score-display-box{display:flex;align-items:center;gap:20px}.score-number{font-size:44px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--text-strong)}.score-number.ok{color:var(--ok-text)}.score-number.warn{color:var(--warn-text)}.score-number.bad{color:var(--bad-text)}.score-progress-track{width:100%;height:8px;background:var(--overlay-3);border-radius:999px;overflow:hidden;margin-top:10px}.score-progress-fill{height:100%;border-radius:999px;transition:width .4s ease}.score-progress-fill.ok{background:linear-gradient(90deg,#10b981,#34d399)}.score-progress-fill.warn{background:linear-gradient(90deg,#d97706,#fbbf24)}.score-progress-fill.bad{background:linear-gradient(90deg,#e11d48,#fb7185)}.eval-stat-banner{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px}.eval-stat-item{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 18px;display:flex;flex-direction:column;gap:4px}.eval-stat-title{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);font-weight:600}.eval-stat-value{font-size:22px;font-weight:700;color:var(--text-strong)}.muted{color:var(--text-muted)}.dim{color:var(--text-dim)}.error{color:var(--bad);font-size:13px;margin:8px 0}.empty-state{text-align:center;padding:36px 20px;color:var(--text-dim)}.app-dialog{background:var(--panel);border:1px solid var(--line-light);border-radius:var(--radius-lg);color:var(--text);padding:22px 24px;width:min(520px,calc(100vw - 32px));box-shadow:var(--shadow-dialog);animation:dialog-in .14s ease-out}.app-dialog::backdrop{background:var(--backdrop);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.app-dialog h3{margin:0 0 10px;font-size:16px;font-weight:600}.app-dialog p{margin:0 0 16px;font-size:13.5px;line-height:1.6;color:var(--text-muted);white-space:pre-line}.app-dialog textarea{width:100%;margin-bottom:16px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;resize:vertical}.app-dialog-actions{display:flex;justify-content:flex-end;gap:10px}@keyframes dialog-in{0%{opacity:0;transform:translateY(-6px) scale(.98)}}.nav-right{display:flex;align-items:center;gap:10px}.theme-toggle{width:34px;height:34px;padding:0;font-size:15px;line-height:1;flex:none}
