:root{
  --bg-primary:#030a14; --bg-secondary:#050d1a;
  --bg-card:rgba(255,255,255,0.035); --bg-card-hover:rgba(255,255,255,0.06);
  --accent:#4ECDC4; --accent-bright:#5CE0D8;
  --text-primary:#f5f5f5; --text-secondary:#a3a3a3; --text-muted:#7a7a7a;
  --border:rgba(255,255,255,0.07); --border-hover:rgba(255,255,255,0.14);
  --topbar-h:64px; --sidebar-w:230px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--text-secondary);line-height:1.55;-webkit-font-smoothing:antialiased;
  background:radial-gradient(ellipse 1200px 600px at 20% -10%,rgba(78,205,196,0.06),transparent),
    linear-gradient(rgba(78,205,196,0.02) 1px,transparent 1px),linear-gradient(90deg,rgba(78,205,196,0.02) 1px,transparent 1px),var(--bg-primary);
  background-size:auto,48px 48px,48px 48px,auto;background-attachment:fixed}
a{color:inherit;text-decoration:none}

.term-topbar{position:fixed;top:0;left:0;right:0;height:var(--topbar-h);z-index:100;display:flex;align-items:center;gap:1.25rem;padding:0 1.25rem;
  background:rgba(5,13,26,0.92);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-bottom:1px solid var(--border)}
.term-brand{display:flex;align-items:center;gap:.6rem;flex-shrink:0}
.term-brand img{width:30px;height:30px;object-fit:contain}
.term-brand .wm{font-weight:800;font-size:1.1rem;letter-spacing:-.02em;color:var(--text-primary)}
.vswitch{display:flex;gap:.2rem;background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:10px;padding:.22rem}
.vswitch a{padding:.38rem .7rem;border-radius:7px;font-size:.8rem;font-weight:700;color:var(--text-muted)}
.vswitch a:hover{color:var(--text-primary);background:rgba(255,255,255,.05)}
.vswitch a.on{color:#eaf1ff;background:rgba(78,205,196,.22)}
.term-actions{margin-left:auto;display:flex;align-items:center;gap:.8rem}
.term-login-btn{display:inline-flex;align-items:center;padding:.42rem 1rem;border-radius:8px;border:1px solid rgba(92,224,216,.5);color:var(--accent-bright);font-size:.8rem;font-weight:700;white-space:nowrap}
.term-login-btn:hover{background:rgba(92,224,216,.1)}
.term-sidebar{position:fixed;top:var(--topbar-h);left:0;bottom:0;width:var(--sidebar-w);z-index:90;background:rgba(5,13,26,.6);border-right:1px solid var(--border);padding:.85rem .7rem;display:flex;flex-direction:column;gap:2px}
.term-sidebar .grp{font-size:.6rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);padding:.9rem .75rem .35rem}
.term-sidebar a{display:block;padding:.55rem .75rem;border-radius:8px;font-size:.82rem;font-weight:500;color:var(--text-secondary)}
.term-sidebar a:hover{background:var(--bg-card);color:var(--text-primary)}
.term-sidebar a.on{background:rgba(78,205,196,.12);color:var(--accent-bright);font-weight:600}
.term-main{margin-left:var(--sidebar-w);margin-top:var(--topbar-h);padding:1.4rem 1.5rem 5rem;max-width:calc(1180px + var(--sidebar-w))}

.panel{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;padding:1.1rem 1.2rem}
.sf-empty{text-align:center;padding:2.8rem 1.2rem}
.sf-empty-ic{width:44px;height:44px;margin:0 auto .9rem;border-radius:12px;display:flex;align-items:center;justify-content:center;
  background:rgba(78,205,196,.08);border:1px solid rgba(92,224,216,.2);color:var(--accent-bright)}
.sf-empty-t{font-size:1rem;font-weight:600;color:var(--text-primary);max-width:30rem;margin:0 auto}
.sf-state{text-align:center;padding:2.4rem 1.2rem}
.sf-state h2{font-size:1.15rem;font-weight:800;color:var(--text-primary);margin-bottom:.45rem}
.sf-state p{font-size:.9rem;color:var(--text-secondary);max-width:32rem;margin:0 auto}
.btns{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:1.2rem}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:.62rem 1.15rem;border-radius:9px;font-size:.86rem;font-weight:700;border:1px solid transparent}
.btn-primary{background:var(--accent);color:#04150f}
.btn-primary:hover{background:#2f6fe0}
.btn-ghost{border-color:var(--border-hover);color:var(--text-primary)}
.btn-ghost:hover{background:var(--bg-card-hover)}
.sf-skel{height:14px;border-radius:6px;background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.08),rgba(255,255,255,.04));background-size:200% 100%;animation:sk 1.4s infinite}
.sk-a{width:24rem;max-width:100%}.sk-b{width:16rem;max-width:100%;margin-top:.7rem}
@keyframes sk{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* STOCK RANKING. Page-scoped. Built from the signed contract (FIELD_CONTRACT_PHASE1.txt, BN74). */
.sr-kicker{font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-bright)}
.sr-title{font-size:1.65rem;font-weight:800;letter-spacing:-.02em;color:var(--text-primary);line-height:1.2;margin-top:.2rem}
.sr-time{margin-top:.55rem;font-size:.84rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}
.sr-order{margin-top:1.1rem;font-size:.9rem;color:var(--text-primary);font-weight:600}
.sr-note{margin-top:.35rem;font-size:.84rem;color:var(--text-secondary)}
.sr-panel{padding:0}
#srBody > .panel{margin-top:1.1rem}
/* No overflow:hidden here: it makes the panel the sticky header's scroll container, and top:var(--topbar-h) then pushed
   the header 64px down over the first rows (seen in the first 1280 render). The rounded top comes from the corner cells. */
.sr-table thead th:first-child{border-top-left-radius:14px}
.sr-table thead th:last-child{border-top-right-radius:14px}
.sr-table{width:100%;border-collapse:collapse;font-size:.86rem}
.sr-table thead th{position:sticky;top:var(--topbar-h);z-index:2;background:#07111f;text-align:left;font-size:.64rem;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);padding:.75rem .9rem;border-bottom:1px solid var(--border)}
.sr-table td{padding:.72rem .9rem;border-bottom:1px solid var(--border);color:var(--text-secondary);vertical-align:top}
.sr-table tbody tr:last-child td{border-bottom:0}
.sr-table tbody tr:hover td{background:var(--bg-card-hover)}
.sr-rank{width:6.5rem;font-variant-numeric:tabular-nums;font-weight:700;color:var(--text-primary);white-space:nowrap}
.sr-sym{width:7rem;font-weight:800;color:var(--text-primary);letter-spacing:.02em}
.sr-sector{width:10rem}
.sr-outcome{width:14rem;color:var(--text-primary)}
.is-unranked .sr-rank{color:var(--text-muted);font-weight:600}
.is-unranked td{color:var(--text-muted)}
.sr-count{margin-top:1rem;font-size:1.05rem;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}
.sr-held{margin-top:1.2rem;padding:1.6rem 1.2rem;text-align:center;font-size:.95rem;line-height:1.6;color:var(--text-secondary)}
.btn{min-height:44px}
@media (max-width:820px){
  :root{--sidebar-w:0px}
  .term-sidebar,.vswitch{display:none}
  .term-main{padding:1.1rem 1rem 4rem}
  .sr-title{font-size:1.35rem}
  .panel{padding:.9rem 1rem}
  .sr-panel{padding:0}
  .sr-table thead{display:none}
  .sr-table,.sr-table tbody,.sr-table tr,.sr-table td{display:block;width:auto}
  .sr-table tr{padding:.8rem 1rem;border-bottom:1px solid var(--border)}
  .sr-table tbody tr:last-child{border-bottom:0}
  .sr-table td{border:0;padding:0}
  .sr-table td.sr-rank,.sr-table td.sr-sym{display:inline-block;width:auto}
  .sr-table td.sr-rank{margin-right:.6rem}
  .sr-table td.sr-sector{font-size:.78rem;margin-top:.15rem}
  .sr-table td.sr-sector:empty{display:none}
  .sr-table td.sr-outcome{margin-top:.35rem}
  .sr-table td.sr-reason{font-size:.8rem;margin-top:.1rem}
}

/* STOCK SIDEBAR, copied line for line from stock-terminal.html's style block (theme v2). */
.term-sidebar a.navitem {
    display:flex; align-items:center; gap:0.75rem; padding:0.6rem 0.75rem; border-radius:8px;
    font-size:0.82rem; font-weight:500; color:var(--text-secondary); transition:all 0.15s;
}
.term-sidebar a.navitem:hover { background:var(--bg-card); color:var(--text-primary); }
.term-sidebar a.navitem.active { background:rgba(78,205,196,0.12); color:var(--accent-bright); font-weight:600; }
.term-sidebar a.navitem.disabled { color:var(--text-muted); cursor:default; }
.term-sidebar a.navitem.disabled:hover { background:none; color:var(--text-muted); }
.nav-ic { width:18px; height:18px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.soon-badge { margin-left:auto; font-size:0.55rem; text-transform:uppercase; letter-spacing:0.05em;
    color:var(--text-muted); background:var(--bg-card); padding:1px 6px; border-radius:4px; }
