:root{--ink:#17131f;--surface:#0e0b14;--surface-alt:#1a1524;--text:#efeaf6;--text-muted:#a79fb8;--gold:#c9a24b;--accent:#7c5cff;--danger:#d4553f;--ok:#4caf7d;--radius:16px;--font:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{background:var(--surface);color:var(--text);font-family:var(--font);margin:0;padding:0;font-size:16px;line-height:1.55}#root{min-height:100vh}a{color:var(--gold);text-decoration:none}button{font:inherit;cursor:pointer;background:var(--accent);color:#fff;border:none;border-radius:12px;padding:12px 20px;transition:opacity .15s}button:hover{opacity:.88}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--surface-alt);color:var(--text)}button.ok{background:var(--ok)}button.danger{background:var(--danger)}input,textarea,select{font:inherit;color:var(--text);background:var(--surface-alt);border:1px solid #2b2438;border-radius:12px;width:100%;padding:12px 14px}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.shell{max-width:860px;margin:0 auto;padding:24px 20px 80px}.header{justify-content:space-between;align-items:center;margin-bottom:32px;display:flex}.brand{letter-spacing:.04em;color:var(--gold);font-size:22px;font-weight:700}.nav{align-items:center;gap:8px;display:flex}.nav a{color:var(--text-muted);border-radius:10px;padding:8px 12px;text-decoration:none}.nav a.active,.nav a:hover{color:var(--text);background:var(--surface-alt)}.card-panel{background:var(--surface-alt);border-radius:var(--radius);margin-bottom:20px;padding:24px}.card-panel h2{color:var(--gold);margin:0 0 12px;font-size:18px}.muted{color:var(--text-muted)}.badge{background:#2b2438;border-radius:999px;margin-right:6px;padding:3px 10px;font-size:13px;display:inline-block}.badge.ok{color:var(--ok);background:#4caf7d2e}.badge.danger{color:var(--danger);background:#d4553f2e}.row{align-items:center;gap:10px;display:flex}.grid{gap:10px;display:grid}.spinner{border:3px solid var(--surface-alt);border-top-color:var(--gold);border-radius:50%;width:28px;height:28px;margin:40px auto;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2s}}.error-box{color:var(--danger);margin-top:10px}.transcript{white-space:pre-wrap;margin:8px 0}.filter-bar{gap:8px;margin-bottom:16px;display:flex}.filter-bar button{padding:8px 14px}.filter-bar button.active{background:var(--gold);color:var(--ink)}
