*,:before,:after{box-sizing:border-box}:root{--bg:#111318;--surface:#181b22;--surface-2:#20242d;--border:#2c313b;--text:#eceff4;--text-muted:#9aa3b2;--accent:#5fb3a8;--accent-strong:#287c73;--green:#3fcf8e;--yellow:#f0b84a;--red:#ef6b73;--blue:#6aa9ff;--purple:#b995ff;--sidebar-w:248px;--radius:8px}body{background:var(--bg);color:var(--text);min-height:100vh;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{color:#8bd8ce}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-w);border-right:1px solid var(--border);z-index:10;background:#151820;flex-direction:column;display:flex;position:fixed;inset:0 auto 0 0}.sidebar-header{border-bottom:1px solid var(--border);padding:22px 18px 18px}.sidebar-header h1{color:var(--text);margin:0;font-size:18px;font-weight:700}.sidebar-sub{color:var(--text-muted);margin-top:4px;font-size:12px;display:block}.nav-links{flex:1;margin:0;padding:12px 8px;list-style:none}.nav-links a{border-radius:var(--radius);min-height:38px;color:var(--text-muted);align-items:center;gap:10px;padding:8px 10px;font-size:14px;font-weight:600;display:flex}.nav-links a:hover{background:var(--surface-2);color:var(--text)}.nav-links a.active{color:var(--text);background:#5fb3a829}.nav-mark{border:1px solid var(--border);width:28px;height:24px;color:var(--accent);background:#ffffff08;border-radius:6px;justify-content:center;align-items:center;font-size:10px;display:inline-flex}.sidebar-footer{border-top:1px solid var(--border);padding:12px 18px}.version{color:var(--text-muted);font-size:11px}.content{margin-left:var(--sidebar-w);width:calc(100% - var(--sidebar-w));padding:24px}.page{max-width:1480px;margin:0 auto}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.page-header h2{color:var(--text);margin:0;font-size:26px;font-weight:750;line-height:1.15}.eyebrow{color:var(--text-muted);text-transform:uppercase;margin:0 0 4px;font-size:11px;font-weight:700}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:18px;display:grid}.metric,.panel,.notice{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.metric{min-height:108px;padding:14px}.metric span{color:var(--text-muted);text-transform:uppercase;font-size:12px;font-weight:700;display:block}.metric strong{color:var(--text);word-break:break-word;margin-top:8px;font-size:26px;line-height:1.1;display:block}.metric small{color:var(--text-muted);margin-top:8px;font-size:12px;display:block}.panel{min-width:0;margin-bottom:16px;padding:14px}.table-panel{padding:0;overflow:hidden}.table-wrap{overflow-x:auto}.section-header,.detail-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.section-header h3,.detail-title h3{color:var(--text);margin:0;font-size:16px}.detail-panel{min-height:360px}.split-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.55fr);align-items:start;gap:16px;display:grid}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.toolbar{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}input,select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-height:38px;color:var(--text);font:inherit;padding:8px 10px;font-size:13px}input{flex:1;min-width:min(360px,100%)}select{min-width:140px}.segmented{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius);gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--text-muted);background:0 0;border:0;padding:6px 10px}.segmented button.active{background:var(--surface-2);color:var(--text)}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;color:var(--text-muted);text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap;padding:10px 12px;font-size:11px;font-weight:700}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 12px}tbody tr:hover td,.selected-row td{background:var(--surface-2)}tbody tr:last-child td{border-bottom:0}.muted{color:var(--text-muted)}.compact{word-break:break-word;max-width:360px;font-size:12px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.path-line{color:var(--text-muted);word-break:break-all;margin-top:2px;font-size:11px;display:block}.badge{white-space:nowrap;border-radius:999px;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.badge-green{color:var(--green);background:#3fcf8e21}.badge-yellow{color:var(--yellow);background:#f0b84a21}.badge-red{color:var(--red);background:#ef6b7321}.badge-blue{color:var(--blue);background:#6aa9ff21}.badge-purple{color:var(--purple);background:#b995ff21}button,.btn-primary,.btn-ghost,.btn-danger{border-radius:var(--radius);min-height:34px;font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;padding:7px 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-strong);color:#fff}.btn-primary:hover{background:var(--accent);color:#06110f}.btn-ghost{color:var(--text-muted);border-color:var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{color:var(--red);background:#ef6b731f;border-color:#ef6b7352}.btn-small{min-height:28px;padding:4px 9px;font-size:12px}.button-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.summary-strip{color:var(--text-muted);align-items:center;gap:10px;font-size:13px;display:inline-flex}.notice{color:var(--text-muted);margin-bottom:16px;padding:12px 14px}.cleanup-panel{margin-bottom:14px}.cleanup-cell{flex-wrap:wrap;align-items:flex-start;gap:6px;min-width:170px;display:flex}.loading{min-height:220px;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;display:flex}.loading:before{content:"";border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;margin-right:10px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.error-msg,.error-inline{color:var(--red);border-radius:var(--radius);background:#ef6b731f;border:1px solid #ef6b733d;margin-bottom:14px;padding:10px 12px;font-size:13px}.error-inline{margin:8px 0 0}.empty-state{color:var(--text-muted);text-align:center;padding:18px}.progress-bar{background:var(--border);border-radius:999px;width:100%;height:6px;margin-top:10px;overflow:hidden}.progress-bar-fill{height:100%;transition:width .25s}.progress-bar-fill.green{background:var(--green)}.stat-ok{color:var(--green)!important}.stat-warn{color:var(--yellow)!important}.stat-bad{color:var(--red)!important}.stat-info{color:var(--blue)!important}.session-detail{border:1px solid var(--border);border-radius:var(--radius);background:#101217;max-height:500px;padding:12px;overflow-y:auto}.session-msg{border-bottom:1px solid var(--border);padding:10px 0}.session-msg:last-child{border-bottom:0}.msg-role{text-transform:uppercase;color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:800}.msg-role.user{color:var(--blue)}.msg-role.assistant{color:var(--accent)}.msg-content{color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:180px;overflow-y:auto}.log-output{border:1px solid var(--border);border-radius:var(--radius);color:#cdd5df;white-space:pre-wrap;word-break:break-word;background:#0d0f14;width:100%;min-height:220px;max-height:520px;padding:12px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:auto}.kv-list{grid-template-columns:90px minmax(0,1fr);gap:8px 12px;margin:12px 0 16px;font-size:13px;display:grid}.kv-list dt{color:var(--text-muted);font-weight:700}.kv-list dd{word-break:break-word;margin:0}@media (width<=1050px){.split-layout,.two-col{grid-template-columns:1fr}}@media (width<=760px){:root{--sidebar-w:72px}.sidebar-header{padding:16px 8px}.sidebar-header h1,.sidebar-sub,.nav-label,.version{display:none}.nav-links a{justify-content:center;padding:8px}.nav-mark{width:34px;height:30px}.sidebar-footer{padding:10px 8px}.content{padding:14px}.page-header{flex-direction:column;align-items:flex-start}.page-header h2{font-size:22px}.metric-grid{grid-template-columns:1fr 1fr}table{min-width:680px}.table-panel{overflow-x:auto}}@media (width<=460px){.metric-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar>*{width:100%}.segmented{justify-content:space-between;width:100%}.segmented button{flex:1}}
