:root{--ink: #11151c;--panel: #171c26;--panel-2: #1e2531;--line: #28303d;--text: #e6eaf0;--muted: #8a94a6;--gold: #e8b84b;--teal: #46c2b6;--coral: #e1675c;--radius: 10px;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--display: "Space Grotesk", system-ui, sans-serif;--body: "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ink);color:var(--text);font-family:var(--body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.app{display:grid;grid-template-columns:280px 1fr;height:100vh}.sidebar{background:var(--panel);border-right:1px solid var(--line);padding:18px 16px;overflow-y:auto}.brand{font-family:var(--display);font-weight:700;font-size:16px;letter-spacing:.06em;display:flex;align-items:center;gap:8px;margin-bottom:4px}.brand .dot{width:8px;height:8px;border-radius:50%;background:var(--gold);box-shadow:0 0 12px var(--gold)}.brand-sub{color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:22px}.field{margin-bottom:16px}.field label{display:block;color:var(--muted);font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}select,input[type=text]{width:100%;background:var(--panel-2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-family:var(--body);font-size:13px}select:focus,input:focus{outline:2px solid var(--gold);outline-offset:0}.tree-item{padding:7px 10px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--text);border:1px solid transparent}.tree-item:hover{background:var(--panel-2)}.tree-item.active{background:var(--panel-2);border-color:var(--gold)}.tree-item .meta{color:var(--muted);font-size:11px;font-family:var(--mono)}.main{overflow-y:auto;padding:22px 26px}.h1{font-family:var(--display);font-weight:600;font-size:20px;margin:0 0 2px}.sub{color:var(--muted);font-size:12px;margin-bottom:20px}.cards{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;min-width:132px;flex:1}.card .k{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.card .v{font-family:var(--mono);font-size:22px;font-weight:500;margin-top:4px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:20px}.panel h2{font-family:var(--display);font-weight:600;font-size:14px;margin:0 0 14px;letter-spacing:.02em}.toggle-row{display:flex;gap:6px;margin-bottom:12px}.toggle{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:7px;padding:5px 12px;cursor:pointer;font-size:12px;font-family:var(--mono)}.toggle.active{color:var(--ink);background:var(--gold);border-color:var(--gold);font-weight:600}.timeline{display:flex;gap:3px;flex-wrap:wrap}.cell{width:26px;height:38px;border-radius:5px;cursor:pointer;border:1px solid transparent;position:relative;transition:transform .08s ease}.cell:hover{transform:translateY(-2px)}.cell.selected{outline:2px solid var(--gold);outline-offset:1px}.cell .lab{position:absolute;bottom:-16px;left:0;right:0;text-align:center;font-size:9px;color:var(--muted);font-family:var(--mono)}.legend{display:flex;gap:16px;margin-top:26px;color:var(--muted);font-size:11px;align-items:center}.legend .sw{width:12px;height:12px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-2px}.diag .row{margin-bottom:10px}.diag .lab{color:var(--muted);font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px}.diag .conf{font-family:var(--mono)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:3px 9px;font-size:12px}.actions li{margin-bottom:4px}.missing-note{color:var(--coral);font-family:var(--mono);font-size:12px}.empty{color:var(--muted);font-size:13px;padding:8px 0}.error{color:var(--coral);font-size:13px}.hint{color:var(--muted);font-size:12px}.topnav{display:flex;gap:4px;margin-bottom:18px;border-bottom:1px solid var(--line)}.navtab{background:none;border:none;color:var(--muted);cursor:pointer;font-family:var(--display);font-size:14px;font-weight:600;letter-spacing:.02em;padding:8px 14px;border-bottom:2px solid transparent;margin-bottom:-1px}.navtab:hover{color:var(--text)}.navtab.active{color:var(--text);border-bottom-color:var(--gold)}.cap-start{display:flex;gap:8px;flex-wrap:wrap}.cap-start input[type=text]{flex:1;min-width:260px}.cap-start select{width:auto}.btn-primary{background:var(--gold);color:var(--ink);border:1px solid var(--gold);border-radius:8px;padding:8px 18px;font-weight:600;cursor:pointer;font-size:13px}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.cap-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.cap-card{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;position:relative;overflow:hidden}.cap-card.st-recording{border-color:#e8b84b80}.cap-card.st-completed{border-color:#46c2b666}.cap-card.st-failed{border-color:#e1675c73}.cap-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.cap-room{font-family:var(--mono);font-size:12px;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.cap-plat{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:1px 6px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;border-radius:6px;padding:3px 9px;letter-spacing:.04em}.badge.st-pending{background:#8a94a626;color:var(--muted)}.badge.st-recording{background:#e8b84b29;color:var(--gold)}.badge.st-completed{background:#46c2b629;color:var(--teal)}.badge.st-failed{background:#e1675c29;color:var(--coral)}.pulse{width:7px;height:7px;border-radius:50%;background:var(--gold);animation:pulse 1.3s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;box-shadow:0 0 #e8b84b99}50%{opacity:.5;box-shadow:0 0 0 6px #e8b84b00}}.cap-metrics{display:flex;gap:18px;margin-bottom:12px}.cap-metric .k{color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.cap-metric .v{font-family:var(--mono);font-size:18px;margin-top:2px}.cap-metric .v.sm{font-size:14px}.mono{font-family:var(--mono)}.seg-strip{display:flex;align-items:center;gap:2px;flex-wrap:wrap;min-height:16px;margin-bottom:10px}.seg-tick{width:4px;height:14px;border-radius:2px;background:var(--teal);opacity:.8}.seg-tick.live{background:var(--gold);animation:pulse 1.3s ease-in-out infinite}.seg-more{font-family:var(--mono);font-size:11px;color:var(--muted);margin-left:4px}.seg-empty{font-size:11px;color:var(--muted)}.cap-err{color:var(--coral);font-size:12px;margin-bottom:10px;font-family:var(--mono)}.cap-actions{display:flex;gap:8px}.btn-stop{background:#e1675c24;color:var(--coral);border:1px solid rgba(225,103,92,.4);border-radius:7px;padding:5px 14px;cursor:pointer;font-size:12px;font-weight:600}.btn-stop:hover{background:#e1675c3d}.btn-ghost{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:7px;padding:5px 14px;cursor:pointer;font-size:12px}.btn-ghost:hover{border-color:var(--gold)}.hamburger{display:none;background:none;border:1px solid var(--line);color:var(--text);border-radius:7px;font-size:16px;cursor:pointer;padding:4px 10px;margin-right:6px;margin-bottom:-1px}.backdrop{display:none}@media (max-width: 820px){.app{grid-template-columns:1fr}.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;z-index:60;transform:translate(-100%);transition:transform .2s ease}.app.menu-open .sidebar{transform:none;box-shadow:4px 0 24px #0006}.backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:55}.hamburger{display:inline-block}.main{padding:16px 14px}.cap-metrics{gap:12px}.drawer-meta{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion: reduce){.sidebar{transition:none}}.seg-table{display:block;overflow-x:auto}.cap-card.st-analyzed{border-color:#46c2b68c}.badge.st-analyzed{background:#46c2b633;color:var(--teal)}.cap-listhead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:8px}.cap-counts{display:flex;gap:12px;align-items:center;font-size:12px;font-family:var(--mono)}.cnt{padding:2px 8px;border-radius:6px}.cnt.st-recording{color:var(--gold);background:#e8b84b1f}.cnt.st-completed{color:var(--teal);background:#46c2b61f}.cnt.st-failed{color:var(--coral);background:#e1675c1f}.recon{font-family:var(--mono);font-size:11px;color:var(--gold);border:1px solid rgba(232,184,75,.4);border-radius:5px;padding:1px 6px}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;justify-content:flex-end;z-index:50}.drawer{width:min(440px,92vw);height:100%;background:var(--panel);border-left:1px solid var(--line);padding:20px 22px;overflow-y:auto;animation:slidein .16s ease}@keyframes slidein{0%{transform:translate(20px);opacity:.6}to{transform:none;opacity:1}}.drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.drawer-title{font-family:var(--mono);font-size:13px;margin-left:10px}.drawer-x{background:none;border:none;color:var(--muted);font-size:24px;cursor:pointer;line-height:1}.drawer-x:hover{color:var(--text)}.drawer-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin-bottom:14px}.drawer-meta .k{display:block;color:var(--muted);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.drawer-meta .v{font-size:14px;margin-top:2px}.drawer-sub{font-family:var(--display);font-size:13px;margin:18px 0 10px}.seg-table{width:100%;border-collapse:collapse;font-size:12px}.seg-table th{text-align:left;color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:6px 8px;border-bottom:1px solid var(--line)}.seg-table td{padding:7px 8px;border-bottom:1px solid var(--line)}.btn-ghost.sm{padding:3px 10px;font-size:11px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:360px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px 26px}.login-card .field{margin-bottom:14px}.login-card code{font-family:var(--mono);font-size:11px;background:var(--panel-2);padding:1px 5px;border-radius:4px}.topnav{align-items:center}.topnav-right{margin-left:auto;display:flex;align-items:center;gap:10px}.who{color:var(--muted);font-size:12px;font-family:var(--mono);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 820px){.who{display:none}}
