/* ============================================================
   T&G // TERMINAL — CRT / IBM-terminal design system
   Green-phosphor morning brief. Monospace, scanlines, glow.
   Class names preserved from the previous system — this is a reskin.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600;700&family=VT323&display=swap');

:root{
  --bg:#060d0a; --panel:#0c1712; --panel2:#0a140f; --border:#173528;
  --hair:rgba(255,255,255,.055); --line:rgba(120,200,160,.14);
  --amber:#ffc24a; --green:#3ef08e; --red:#ff6b6b; --cyan:#63d3ff; --violet:#b79bff;
  --txt:#e7f2ec; --dim:#8aa89a; --faint:#5c7568;
  --radius:13px; --radius-sm:8px; --maxw:1180px;
  --glass:linear-gradient(180deg,rgba(255,255,255,.022),rgba(255,255,255,.004));
  --shadow:0 20px 48px -30px rgba(0,0,0,.75);
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:ui-sans-serif,-apple-system,"Segoe UI",Roboto,sans-serif;
  --disp:var(--mono);
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0}
html{background:var(--bg);overflow-x:hidden}
body{background:transparent;color:var(--txt);
  font:14px/1.62 var(--mono);
  font-feature-settings:"tnum" 1,"ss01" 1;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;max-width:100vw}
/* mobile bleed guards: nothing overflows the viewport; media/tables stay inside their box */
img,svg,canvas,video{max-width:100%}
.container{box-sizing:border-box}
@media(max-width:640px){
  .container{overflow-x:hidden}
  .tablewrap{max-width:100%}
}
/* living 3D background — drifting aurora + perspective floor grid, behind everything */
html::before{content:"";position:fixed;inset:-12%;z-index:-2;pointer-events:none;
  background:
    radial-gradient(38% 48% at 22% 26%, rgba(56,240,138,.13), transparent 60%),
    radial-gradient(42% 52% at 80% 20%, rgba(95,210,255,.10), transparent 62%),
    radial-gradient(52% 60% at 60% 90%, rgba(56,240,138,.09), transparent 60%);
  animation:aurora 24s ease-in-out infinite alternate;will-change:transform}
html::after{content:none}   /* retired the retro perspective floor-grid for a cleaner premium surface */
@keyframes aurora{0%{transform:translate3d(-2.5%,-2%,0) scale(1.05)}50%{transform:translate3d(3%,2%,0) scale(1.13)}100%{transform:translate3d(-1.5%,3%,0) scale(1.06)}}
@keyframes gridflow{from{background-position:0 0}to{background-position:0 46px}}
@media(prefers-reduced-motion:reduce){html::before,html::after{animation:none}}
/* CRT overlays */
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:9997;
  background:radial-gradient(130% 130% at 50% 45%,transparent 52%,rgba(0,0,0,.6) 100%)}
body::after{content:none}   /* retired CRT scanlines + flicker */
@keyframes flick{0%,100%{opacity:.55}48%{opacity:.5}50%{opacity:.7}52%{opacity:.5}}
a{color:inherit;text-decoration:none}
.mono{font-family:var(--mono)}
::selection{background:var(--green);color:#04140a}
.blink{animation:blink 1.05s steps(1) infinite}@keyframes blink{50%{opacity:0}}

/* layout */
.container{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding:26px 0}
.section-head{display:flex;align-items:baseline;gap:12px;margin-bottom:16px;
  border-bottom:1px solid var(--hair);padding-bottom:11px}
.section-head h2{font-size:13px;margin:0;letter-spacing:2.5px;text-transform:uppercase;color:var(--txt);font-weight:700}
.section-head h2::before{content:"";display:inline-block;width:3px;height:12px;background:var(--amber);
  border-radius:2px;margin-right:9px;vertical-align:-1px}
.section-head .note{color:var(--dim);font-size:12px;letter-spacing:.5px}
.spacer{flex:1}

/* top nav — terminal command bar */
.nav{position:sticky;top:0;z-index:50;background:rgba(4,10,7,.96);border-bottom:1px solid var(--border);
  box-shadow:0 1px 0 rgba(56,240,138,.15)}
.nav-in{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;gap:20px;padding:0 22px;height:54px}
.brand{font-family:var(--mono);font-weight:700;letter-spacing:1px;font-size:15px;color:var(--green);
  white-space:nowrap;text-shadow:0 0 9px rgba(56,240,138,.5)}
.brand .dot{color:var(--amber)}
.nav-tabs{display:flex;gap:2px;flex-wrap:wrap}
.nav-tab{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;color:var(--dim);
  font-size:13px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;border:1px solid transparent}
.nav-tab:hover{color:var(--txt);background:#0e1a12;border-color:var(--border)}
.nav-tab.on{color:#04140a;background:var(--amber);font-weight:700;text-shadow:none}
.nav-tab.soon{color:var(--faint);cursor:default}
.nav-tab.soon em{font-style:normal;font-size:10px;border:1px solid var(--border);padding:1px 5px;margin-left:3px}
.nav-right{margin-left:auto;color:var(--dim);font-size:12px;display:flex;align-items:center;gap:8px;letter-spacing:.5px}
.livedot{width:8px;height:8px;border-radius:50%;background:var(--green);display:inline-block;
  box-shadow:0 0 7px var(--green);animation:pulse 2.2s infinite}
.kbd{background:#0e1a12;border:1px solid var(--border);padding:0 5px;font-size:11px;font-family:var(--mono)}
@media(max-width:720px){.nav-right{display:none}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}

/* left sidebar nav (replaces the top command bar) */
body{padding-left:214px}
.sidebar{position:fixed;left:0;top:0;bottom:0;width:214px;background:#060d08;border-right:1px solid var(--border);
  display:flex;flex-direction:column;padding:16px 12px;z-index:60;overflow-y:auto}
.sb-brand{font-weight:800;letter-spacing:1px;color:var(--green);font-size:15px;padding:6px 10px 16px;
  text-shadow:0 0 9px rgba(56,240,138,.5);line-height:1.2}
.sb-brand span{display:block;color:var(--dim);font-size:10.5px;font-weight:600;letter-spacing:1px;margin-top:3px}
.sb-tabs{display:flex;flex-direction:column;gap:2px;flex:1}
.sb-tab{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:8px;color:var(--dim);font-size:14px;font-weight:600;letter-spacing:.3px}
.sb-tab:hover{color:var(--txt);background:#0e1a12}
.sb-tab.on{color:var(--amber);background:#1c1a12}
.sb-tab .ic{width:18px;text-align:center;font-size:15px}
.sb-tab.soon{color:var(--faint);cursor:default}
.sb-tab.soon em{font-style:normal;font-size:9px;border:1px solid var(--border);border-radius:4px;padding:1px 5px;margin-left:auto}
.sb-foot{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--border)}
.sb-foot .kpill{width:100%;text-align:center;background:transparent}
.sb-alerts{display:flex;align-items:center;gap:9px;width:100%;padding:9px 12px;border:1px solid var(--border);border-radius:8px;
  background:transparent;color:var(--txt);font-weight:700;font-size:13px;cursor:pointer}
.sb-alerts:hover{border-color:var(--amber);color:var(--amber)}
.sb-alerts .ic{font-size:14px}
.sb-alertct{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--red);color:#fff;
  font-size:11px;font-weight:800;display:none;align-items:center;justify-content:center}
.al-bg{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:80;opacity:0;pointer-events:none;transition:opacity .15s}
.al-bg.on{opacity:1;pointer-events:auto}
.al-panel{position:fixed;left:220px;bottom:16px;width:380px;max-width:92vw;max-height:70vh;overflow:auto;z-index:81;
  background:var(--panel);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.6);
  transform:translateY(8px);opacity:0;pointer-events:none;transition:transform .15s,opacity .15s}
.al-panel.on{transform:none;opacity:1;pointer-events:auto}
@media(max-width:900px){.al-panel{left:12px;right:12px;width:auto}}
.al-head{padding:13px 15px;border-bottom:1px solid var(--border);font-weight:800;letter-spacing:.5px;display:flex;justify-content:space-between;align-items:baseline}
.al-head .dim{font-size:12px;font-weight:600}
.al-row{display:flex;align-items:center;gap:8px;padding:11px 15px;border-bottom:1px solid var(--border);text-decoration:none;color:var(--txt);font-size:13px}
.al-row:hover{background:var(--panel2)}
.al-row.new{background:rgba(255,194,74,.06)}
.al-sym{font-weight:800;color:var(--green);min-width:38px}
.al-tx{flex:1;color:var(--dim)}
.al-tag{font-size:9px;font-weight:800;letter-spacing:.5px;border:1px solid var(--border);border-radius:4px;padding:1px 5px;white-space:nowrap}
.al-tag.a,.al-tag.amber{color:var(--amber)} .al-tag.up{color:var(--green)} .al-tag.down{color:var(--red)}
.al-tag.red{color:#fff;background:var(--red);border-color:var(--red)}
.al-new{font-size:9px;font-weight:800;color:var(--red);letter-spacing:.5px}
.al-empty{padding:20px 15px;font-size:13px;line-height:1.6}
.al-foot{padding:10px 15px;font-size:11px;border-top:1px solid var(--border)}
.al-push{width:100%;background:rgba(56,240,138,.1);border:1px solid var(--green);color:var(--green);font-weight:800;font-size:12.5px;padding:9px;border-radius:8px;cursor:pointer}
.al-push:hover{background:rgba(56,240,138,.2)}

/* ===== mobile pass ===== */
@media(max-width:640px){
  .container{padding:0 14px}
  .hero{padding:22px 0 14px}
  .hero h1{font-size:30px;line-height:1.05}
  .hero p,.hero .lead{font-size:13px}
  .section-head{flex-wrap:wrap;gap:4px}
  .section-head h2{font-size:16px}
  .section-head .note{font-size:11.5px}
  /* home masthead */
  .brief-head .mast{font-size:32px;letter-spacing:1px}
  .brief-head .meta{font-size:10.5px;gap:8px 12px;letter-spacing:.5px}
  .lead-story .body{column-count:1}
  /* tables: tighter, still horizontally scrollable */
  table{min-width:560px;font-size:12.5px}
  th,td{padding:9px 10px}
  /* metrics + cards */
  .metric .v{font-size:19px}
  .card{padding:14px}
  /* wider, comfier nav drawer + bigger tap targets */
  .sidebar{width:74vw;max-width:280px;padding:18px 14px}
  .sb-tab{padding:12px 12px;font-size:15px}
  .sb-brand{font-size:17px}
  /* terminal */
  .gexmacro{font-size:12px;gap:11px;padding:9px 12px}
  .gx-tk{font-size:20px}
  .gx-read{font-size:13px}
  /* desk notes */
  .brief{padding:16px}
  .brief-h{font-size:17px}
  /* charts: a touch shorter so a stacked pair isn't a mile of scroll */
  .chartbox{height:230px}
  /* per-ticker header: let price/score wrap cleanly, no forced right-push */
  #view .section [id="score"]{font-size:26px}
  .playgrid{grid-template-columns:1fr 1fr}
}
/* per-ticker: stack the price/profile charts on tablets & phones so each gets full width */
@media(max-width:820px){ body[data-page="ticker"] .grid.cols-2{grid-template-columns:1fr} }
@media(max-width:400px){
  .brief-head .mast{font-size:26px}
  .hero h1{font-size:26px}
}
.al-grp{padding:9px 15px 5px;font-size:10.5px;font-weight:800;letter-spacing:1px;color:var(--amber);
  display:flex;justify-content:space-between;background:var(--panel2);border-bottom:1px solid var(--border)}
.al-grp .dim{font-weight:600}
.al-go{color:var(--dim);font-weight:800;margin-left:2px}
.al-row:hover .al-go{color:var(--green)}
/* pulsing badge when something unseen is firing */
.sb-alerts.has-new{border-color:var(--amber);color:var(--amber)}
.sb-alerts.has-new .sb-alertct{animation:alpulse 1.6s ease-in-out infinite}
@keyframes alpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,91,91,.55)}50%{box-shadow:0 0 0 5px rgba(255,91,91,0)}}
/* slide-in toast when a new alert fires */
.al-toasts{position:fixed;left:230px;bottom:18px;z-index:90;display:flex;flex-direction:column;gap:9px;max-width:340px}
@media(max-width:900px){.al-toasts{left:12px;right:12px;max-width:none}}
.al-toast{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--txt);background:var(--panel);
  border:1px solid var(--amber);border-left:3px solid var(--amber);border-radius:10px;padding:11px 13px;font-size:13px;
  box-shadow:0 10px 30px rgba(0,0,0,.55);transform:translateX(-16px);opacity:0;transition:transform .3s,opacity .3s}
.al-toast.on{transform:none;opacity:1}
.al-toast-b{line-height:1.4}
.al-toast-b b{color:var(--green)}
/* membership gate (Discord login wall) */
#sfl-gate,#tg-whop-gate{position:fixed;inset:0;z-index:9999;background:var(--bg);display:flex;align-items:center;justify-content:center;padding:24px}
.gate-link{display:inline-block;margin-top:14px;color:var(--dim);font-size:12.5px;text-decoration:none;cursor:pointer;background:none;border:0}
.gate-link:hover{color:var(--green)}
.gate-card{max-width:380px;text-align:center;border:1px solid var(--border);border-radius:14px;background:var(--panel);padding:34px 28px}
.gate-brand{font-family:var(--disp);font-size:26px;font-weight:800;color:var(--green);letter-spacing:1px;text-shadow:0 0 12px rgba(56,240,138,.4);margin-bottom:14px}
.gate-brand span{color:var(--dim);font-size:15px}
.gate-card p{color:var(--dim);font-size:14px;line-height:1.6;margin:0 0 20px}
.gate-btn{display:inline-block;width:100%;padding:12px 16px;border-radius:9px;border:1px solid var(--green);background:rgba(56,240,138,.1);color:var(--green);font-weight:800;font-size:14px;cursor:pointer;text-decoration:none;letter-spacing:.5px}
.gate-btn:hover{background:rgba(56,240,138,.2)}
.gate-btn.amber{border-color:var(--amber);background:rgba(255,194,74,.1);color:var(--amber)}
.gate-btn.amber:hover{background:rgba(255,194,74,.2)}
.gate-link{display:block;margin-top:14px;background:none;border:0;color:var(--dim);font-size:12px;cursor:pointer;text-decoration:underline}
.sb-topbar,.sb-scrim{display:none}
@media(max-width:900px){
  body{padding-left:0}
  .sidebar{top:calc(52px + env(safe-area-inset-top,0px));transform:translateX(-100%);transition:transform .2s ease}
  body.sb-open .sidebar{transform:none;box-shadow:0 0 50px rgba(0,0,0,.7)}
  /* fixed top bar holds the menu button so it never floats over content; fills the notch/safe area */
  .sb-topbar{display:flex;align-items:center;gap:12px;position:fixed;top:0;left:0;right:0;height:52px;z-index:63;
    padding:0 12px;padding-top:env(safe-area-inset-top,0px);box-sizing:content-box;background:var(--bg);border-bottom:1px solid var(--border)}
  .sb-toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;width:40px;height:38px;
    background:var(--panel);border:1px solid var(--border);color:var(--amber);border-radius:8px;font-size:18px;cursor:pointer}
  .sb-topbrand{color:var(--green);font-weight:800;letter-spacing:1px;font-size:15px;text-decoration:none}
  .sb-topbrand span{color:var(--dim);font-size:10.5px}
  body.sb-open .sb-scrim{display:block;position:fixed;inset:0;top:calc(52px + env(safe-area-inset-top,0px));z-index:59;background:rgba(0,0,0,.5)}
  .container{padding-top:calc(52px + env(safe-area-inset-top,0px));padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
  /* bottom-tab bar: the 5 core actions, always a thumb-tap away on mobile */
  .sb-bottombar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:64;background:#060d08;
    border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0px)}
  .bb-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;height:56px;
    color:var(--dim);text-decoration:none;font-size:10px;font-weight:700;letter-spacing:.3px}
  .bb-item.on{color:var(--green)}
  .bb-ic{font-size:18px;line-height:1}
}
.sb-bottombar{display:none}

/* masthead (morning-brief header) */
.brief-head{padding:22px 0 12px;border-bottom:1px double var(--border);margin-bottom:6px}
.brief-head .mast{font-family:var(--disp);font-size:52px;line-height:.9;color:var(--green);letter-spacing:2px;
  text-shadow:0 0 14px rgba(56,240,138,.45)}
.brief-head .meta{display:flex;gap:18px;flex-wrap:wrap;margin-top:8px;color:var(--dim);font-size:13px;letter-spacing:1px;text-transform:uppercase}
.brief-head .meta b{color:var(--amber)}

/* lead story — the written morning read, newspaper style */
.lead-story{border-top:2px solid var(--green);border-bottom:1px solid var(--border);padding:14px 0 18px;margin-bottom:10px}
.lead-story .kicker{color:var(--amber);font-size:12px;letter-spacing:3px;text-transform:uppercase;margin-bottom:9px;
  display:flex;align-items:center;gap:10px}
.lead-story .kicker::after{content:"";flex:1;height:1px;background:var(--border)}
.lead-story .body{font-size:15px;line-height:1.75;color:var(--txt)}
.lead-story .body .dl{color:var(--green);font-weight:700;letter-spacing:1px;text-shadow:0 0 8px rgba(56,240,138,.35)}
.lead-story .body::first-letter{float:left;font-family:var(--disp);font-size:52px;line-height:.8;padding:4px 10px 0 0;color:var(--amber);text-shadow:0 0 12px rgba(255,194,74,.4)}
@media(min-width:780px){ .lead-story .body{column-count:2;column-gap:34px} }

/* options-flow alert board */
.alert{display:flex;align-items:center;gap:13px;padding:12px 16px;border-left:3px solid var(--border);transition:.1s}
.alert+.alert{border-top:1px solid var(--border)}
.alert:hover{background:#0e1a12}
.alert .atk{min-width:46px;font-weight:800;letter-spacing:1px;font-size:14px}
.alert .atag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;letter-spacing:1px;text-transform:uppercase;
  padding:3px 8px;border:1px solid var(--border);border-radius:5px;color:var(--dim);white-space:nowrap;min-width:118px;justify-content:center}
.alert .atxt{flex:1;font-size:13.5px;color:var(--txt);opacity:.92}
.alert .alvl{font-weight:800;font-size:15px;white-space:nowrap;font-family:var(--mono)}
.alert.sev-hi{border-left-color:var(--amber)} .alert.sev-hi .atag{border-color:rgba(255,194,74,.5);color:var(--amber)}
.alert.sev-up{border-left-color:var(--green)}
.alert.sev-dn{border-left-color:var(--red)}
.alert.sev-neu{border-left-color:var(--cyan)}
@media(max-width:620px){.alert{flex-wrap:wrap;gap:5px 10px}.alert .atk{min-width:0}.alert .atxt{flex:1 1 100%;font-size:12.5px;opacity:1}}

/* economic calendar with market-impact context */
.econ-lbl{padding:9px 16px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--amber);
  background:#0a0f0a;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.econ-lbl:first-child{border-top:0}
.econ-ev{padding:12px 16px;border-bottom:1px solid var(--border)}
.econ-ev:last-child{border-bottom:0}
.econ-hd{display:flex;align-items:center;gap:11px;margin-bottom:5px;flex-wrap:wrap}
.econ-hd .when{min-width:66px;font-weight:800;letter-spacing:.5px}
.econ-name{font-weight:700;color:var(--txt)}
.econ-ctx{color:var(--dim);font-size:12.5px;line-height:1.6;padding-left:77px}
@media(max-width:620px){.econ-ctx{padding-left:0}}
.imp{font-size:10px;letter-spacing:1px;padding:2px 7px;border-radius:4px;font-weight:800}
.imp-hi{background:rgba(255,91,91,.15);color:var(--red);border:1px solid rgba(255,91,91,.4)}
.imp-med{background:rgba(255,194,74,.12);color:var(--amber);border:1px solid rgba(255,194,74,.3)}
.econ-nums{margin-left:auto;display:flex;gap:16px;align-items:center}
.econ-nums .en{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.econ-nums .en i{font-style:normal;font-size:9px;letter-spacing:1px;color:var(--faint)}
.econ-nums .en b{font-size:14px;font-weight:800}
@media(max-width:680px){.econ-nums{margin-left:0;width:100%;justify-content:flex-start;gap:26px;padding-top:7px}.econ-hd{align-items:flex-start}}
/* desk notes — session recap cards + briefings page */
.lnk{color:var(--cyan);text-decoration:none;border-bottom:1px dotted var(--border)}
.lnk:hover{color:var(--green)}
.dnote{display:block;text-decoration:none;color:inherit;padding:15px 16px;transition:border-color .15s,transform .15s}
.dnote:hover{border-color:var(--green);transform:translateY(-2px)}
.dn-top{display:flex;align-items:center;gap:9px;margin-bottom:8px}
.dn-k{font-size:11px;font-weight:800;letter-spacing:1.5px;color:var(--amber);text-transform:uppercase}
.dn-h{font-size:15px;font-weight:700;line-height:1.35;color:var(--txt);margin-bottom:7px}
.dn-b{font-size:12.5px;line-height:1.55}
.brief-day{font-family:var(--disp);font-size:21px;color:var(--amber);letter-spacing:1px;margin:26px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--border);text-shadow:0 0 8px rgba(255,194,74,.25)}
.brief-day:first-child{margin-top:2px}
.brief{border:1px solid var(--border);border-radius:10px;background:var(--panel);padding:20px 22px;margin-bottom:16px}
.brief-hd{display:flex;align-items:center;gap:12px;margin-bottom:6px;flex-wrap:wrap}
.brief-slot{font-size:12px;font-weight:800;letter-spacing:1.5px;color:var(--amber);text-transform:uppercase}
.brief-date{color:var(--dim);font-size:12px;margin-left:auto}
.brief-h{font-size:19px;font-weight:800;line-height:1.3;color:var(--green);margin:4px 0 12px;text-shadow:0 0 8px rgba(56,240,138,.25)}
.brief-body{font-size:14.5px;color:var(--txt)}
.brief-body p{margin:0 0 12px;line-height:1.8}
.brief-body p:last-child{margin-bottom:0}
.brief-body p.lead{font-size:15.5px;font-weight:700;color:#daffe9;border-left:2px solid var(--green);padding-left:13px;margin-bottom:15px}
.brief-lvwrap{margin-top:15px;padding-top:13px;border-top:1px solid var(--border)}
.brief-lvlbl{font-size:10px;font-weight:800;letter-spacing:1.5px;color:var(--dim);margin-bottom:9px}
.brief-lv{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px;padding-top:13px;border-top:1px solid var(--border)}
.brief-lv .lv{border:1px solid var(--border);border-radius:7px;padding:6px 11px;font-size:12px}
.brief-lv .lv b{color:var(--cyan);font-weight:800;margin-left:6px}

/* ⌘K universal ticker read */
.kpill{cursor:pointer;border:1px solid var(--border);border-radius:6px;padding:3px 9px;color:var(--dim);font-size:11.5px}
.kpill:hover{color:var(--amber);border-color:var(--amber)}
.cmdk-bg{position:fixed;inset:0;background:rgba(2,6,4,.72);backdrop-filter:blur(3px);z-index:200;display:none}
.cmdk-bg.on{display:block}
.cmdk{position:fixed;left:50%;top:11%;transform:translateX(-50%);width:min(700px,93vw);z-index:201;display:none;
  background:var(--panel);border:1px solid var(--green);border-radius:12px;overflow:hidden;
  box-shadow:0 0 0 1px rgba(56,240,138,.25),0 24px 70px rgba(0,0,0,.65)}
.cmdk.on{display:block}
.cmdk-in{display:flex;align-items:center;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border)}
.cmdk-in .k{color:var(--amber);font-weight:800}
.cmdk-in input{flex:1;background:transparent;border:0;color:var(--txt);font:inherit;font-size:18px;outline:none;text-transform:uppercase;letter-spacing:1px}
.cmdk-body{max-height:60vh;overflow:auto}
.cmdk-read{padding:16px 18px}
.cmdk-lvls{display:flex;gap:12px;flex-wrap:wrap;margin-top:12px}
.cmdk-sec{font-size:9.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--faint);font-weight:800;padding:12px 18px 4px}
.cmdk-row{display:flex;align-items:center;gap:11px;padding:10px 18px;color:var(--txt);text-decoration:none;font-size:14px;text-transform:none;letter-spacing:0}
.cmdk-row .ic{width:20px;text-align:center;color:var(--dim)}
.cmdk-row:hover,.cmdk-row.on{background:rgba(56,240,138,.10)}
.cmdk-row.on{box-shadow:inset 2px 0 0 var(--green)}
.cmdk-lvls .lv{border:1px solid var(--border);border-radius:8px;padding:8px 13px;min-width:96px}
.cmdk-lvls .lv .k{font-size:10px;letter-spacing:1px;color:var(--dim);text-transform:uppercase}
.cmdk-lvls .lv .v{font-size:17px;font-weight:800}
.cmdk-hint{padding:11px 18px;color:var(--faint);font-size:11.5px;border-top:1px solid var(--border)}

/* hero / page masthead — one shared size for every app page (no per-page overrides) */
.hero{padding:28px 0 14px;border-bottom:1px solid var(--border)}
.hero h1{font-family:var(--disp);font-size:26px;margin:0 0 8px;letter-spacing:1px;color:var(--green);
  text-shadow:0 0 12px rgba(56,240,138,.4);line-height:1.05}
.hero p,.hero .lead{color:var(--dim);font-size:14px;max-width:760px;margin:0;line-height:1.6}
.hero p b,.hero .lead b{color:var(--txt);font-weight:700}
/* consistent vertical rhythm: tight gap under the masthead, stacked sections don't double-gap */
.hero + .section{padding-top:12px}
.section + .section{padding-top:0}

/* shared loading / empty state — replaces ad-hoc 'card dim' blocks */
.state{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);
  padding:22px;text-align:center;color:var(--dim);font-size:13px;line-height:1.6}
.state.pulse{animation:pulse 1.6s ease-in-out infinite}

/* ticker tape */
.tape{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  background:#060f09;white-space:nowrap;position:relative}
.tape-in{display:inline-block;padding:8px 0;animation:tape 62s linear infinite}
.tape:hover .tape-in{animation-play-state:paused}
@keyframes tape{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.tape a{display:inline-flex;gap:7px;align-items:center;margin:0 16px;font-size:13px;font-weight:700;letter-spacing:.5px}
.tape a .sc{color:var(--amber)}
.tape a:hover{color:var(--amber)}

/* market pulse */
.pulse{display:flex;gap:20px;align-items:center;flex-wrap:wrap;background:var(--panel);
  border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-top:14px;font-size:13px}
.pulse .lbl{color:var(--amber);font-size:11px;letter-spacing:2px;font-weight:700;text-transform:uppercase}
.pulse .split{display:inline-flex;height:9px;width:130px;overflow:hidden;vertical-align:middle;border:1px solid var(--border)}
.pulse .split i{display:block;height:100%}

/* sparkline */
.spark{display:block;width:100%;height:36px;margin:2px 0 8px}
.spark polyline{fill:none;stroke-width:1.6}

/* pocket proximity mini-bar */
.pbar{display:inline-block;width:44px;height:6px;background:#0e1a12;overflow:hidden;vertical-align:middle;margin-left:6px;border:1px solid var(--border)}
.pbar i{display:block;height:100%}

/* cards */
.grid{display:grid;gap:14px}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
@media(max-width:860px){.grid.cols-3{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}}
.card{background:var(--glass),var(--panel);border:1px solid var(--hair);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}
.card h3{margin:0 0 4px;font-size:14px;letter-spacing:.5px;color:var(--txt)}
.card .sub{color:var(--dim);font-size:12.5px;margin-bottom:14px;line-height:1.5}
.tool-card{display:block;transition:.12s}
.tool-card:hover{border-color:var(--green);box-shadow:0 0 0 1px rgba(56,240,138,.25),0 0 18px rgba(56,240,138,.08)}
.tool-card .ic{font-size:20px;margin-bottom:8px;color:var(--amber)}
.tool-card .arrow{color:var(--amber);font-size:13px;margin-top:10px;display:inline-block}

/* setup card (home) */
.setup{display:block;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  padding:15px 16px;transition:.12s}
.setup:hover{border-color:var(--amber);box-shadow:0 0 0 1px rgba(255,194,74,.3),0 0 20px rgba(255,194,74,.07)}
.setup .row1{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.setup .tk{font-weight:700;font-size:18px;letter-spacing:1px;color:var(--txt)}
.setup .name{color:var(--dim);font-size:12px}
.setup .score{margin-left:auto;text-align:right}
.setup .score b{font-size:22px;color:var(--amber);font-weight:700;display:block;line-height:1;text-shadow:0 0 8px rgba(255,194,74,.4)}
.setup .score span{font-size:10px;color:var(--faint);letter-spacing:.5px}
.setup .say{color:var(--txt);font-size:13px;line-height:1.55;margin:8px 0 12px;opacity:.92}
.setup .foot{display:flex;gap:16px;font-size:12px;color:var(--dim);flex-wrap:wrap}

/* badges */
.badge{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:var(--radius);font-size:11.5px;font-weight:700;letter-spacing:.6px;border:1px solid transparent;text-transform:uppercase}
.badge.bull{background:rgba(56,240,138,.12);color:var(--green);border-color:rgba(56,240,138,.35)}
.badge.bear{background:rgba(255,91,91,.12);color:var(--red);border-color:rgba(255,91,91,.35)}
.badge.none{background:#0e1a12;color:var(--dim);border-color:var(--border)}
.badge.neg{background:rgba(56,240,138,.1);color:var(--green);border-color:rgba(56,240,138,.3)}
.badge.pos{background:rgba(95,210,255,.1);color:var(--cyan);border-color:rgba(95,210,255,.3)}

/* game plan cards */
.gp-card{border-left:3px solid var(--amber)}
.gp-nums{display:flex;gap:18px;margin-top:10px}
.gp-nums span{display:flex;flex-direction:column}
.gp-nums i{font-style:normal;font-size:9.5px;letter-spacing:1.5px;color:var(--dim);font-weight:700;text-transform:uppercase}
.gp-nums b{font-size:17px;font-weight:700}

/* structure play card */
.playcard{margin-top:14px;background:var(--panel2);border:1px solid var(--border);
  border-left:3px solid var(--amber);border-radius:var(--radius);padding:14px 16px}
.playhead{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:12px;letter-spacing:1px;font-size:13px;text-transform:uppercase}
.playgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.pcell{background:#0b140d;border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px}
.pcell .k{font-size:10px;letter-spacing:1.5px;color:var(--dim);font-weight:700;text-transform:uppercase}
.pcell .v{font-size:20px;font-weight:700;margin:3px 0 2px}
.pcell .e{font-size:11.5px;color:var(--dim);line-height:1.4}
.playsay{margin-top:12px;font-size:13px;color:var(--txt);line-height:1.6;opacity:.92}

/* letter grades */
.grade{display:inline-block;min-width:26px;text-align:center;padding:2px 6px;border-radius:var(--radius);
  font-size:12px;font-weight:700;letter-spacing:.3px;border:1px solid transparent}
.grade.gA{background:rgba(56,240,138,.14);color:var(--green);border-color:rgba(56,240,138,.35)}
.grade.gB{background:rgba(255,194,74,.14);color:var(--amber);border-color:rgba(255,194,74,.35)}
.grade.gC{background:#0e1a12;color:var(--faint);border-color:var(--border)}

/* track record strip */
.track{display:flex;gap:18px;align-items:center;flex-wrap:wrap;background:var(--glass),var(--panel);
  border:1px solid var(--hair);border-radius:12px;padding:14px 18px;font-size:13px;margin-top:14px;box-shadow:var(--shadow)}
.track .lbl{color:var(--amber);font-size:11px;letter-spacing:2px;font-weight:700;text-transform:uppercase}
.track b{font-size:16px}

/* score bar */
.bar{position:relative;height:8px;background:#0e1a12;overflow:hidden;border:1px solid var(--border)}
.bar>span{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,rgba(255,194,74,.35),var(--amber));box-shadow:0 0 8px rgba(255,194,74,.5)}

/* metrics */
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.metric{position:relative;background:var(--glass);border:1px solid var(--hair);border-radius:12px;padding:13px 15px 14px;overflow:hidden}
.metric::before{content:"";position:absolute;left:0;top:11px;bottom:11px;width:2.5px;border-radius:2px;background:var(--dim);opacity:.45}
.metric .k{color:var(--dim);font-size:10px;letter-spacing:1.6px;text-transform:uppercase;font-weight:700}
.metric .v{font-size:21px;font-weight:800;margin:5px 0 4px;letter-spacing:-.3px}
.metric .explain{color:var(--dim);font-size:11.5px;line-height:1.5}

/* shared dealer-gamma visuals: bespoke SVG chart + vertical price map */
.gexsvg{width:100%;height:auto;display:block}
.map{position:relative;padding-left:26px}
.map .spine{position:absolute;left:9px;top:6px;bottom:6px;width:2px;border-radius:2px;background:linear-gradient(180deg,var(--green),var(--amber) 45%,var(--red))}
.map .zone{font-size:9px;letter-spacing:1.5px;font-weight:800;color:var(--dim);margin:2px 0 7px 2px}
.map .node{position:relative;margin:0 0 9px;padding:10px 12px;border:1px solid var(--hair);border-radius:12px;background:rgba(255,255,255,.015);transition:transform .15s,background .15s}
.map .node:hover{transform:translateX(3px);background:rgba(255,255,255,.045)}
.map .node .pip{position:absolute;left:-21px;top:50%;transform:translateY(-50%);width:11px;height:11px;border-radius:50%;border:2px solid var(--bg)}
.map .node.c .pip{background:var(--green);box-shadow:0 0 10px var(--green)}
.map .node.f .pip{background:var(--amber)}
.map .node.s .pip{background:var(--cyan);box-shadow:0 0 12px var(--cyan);width:13px;height:13px;left:-22px}
.map .node.p .pip{background:var(--red);box-shadow:0 0 10px rgba(255,107,107,.8)}
.map .node.s{border-color:rgba(99,211,255,.4);background:linear-gradient(90deg,rgba(99,211,255,.09),transparent)}
.map .ntop{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.map .ntag{font-size:9.5px;letter-spacing:1.1px;font-weight:800}
.map .nprice{font-weight:800;font-size:15px}
.map .ndist{font-size:10px;color:var(--dim);font-weight:700}
.map .nmean{font-size:11px;color:#a6bbb0;line-height:1.4;margin-top:3px}

/* table */
.tablewrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius)}
table{border-collapse:collapse;width:100%;min-width:820px;font-size:13.5px}
th,td{padding:11px 15px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--border)}
th:first-child,td:first-child,th.l,td.l{text-align:left}
thead th{position:sticky;top:0;background:var(--panel2);color:var(--amber);font-weight:600;font-size:11px;
  letter-spacing:1px;text-transform:uppercase;cursor:pointer;user-select:none}
thead th:hover{color:var(--green)}
tbody tr{transition:.1s}
tbody tr:hover{background:#0e1a12}
tbody td .tk{font-weight:700;letter-spacing:.6px;color:var(--txt)}

/* ticker picker */
.tickbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.tsearch{position:relative}
.tsearch input{width:220px}
.tdrop{position:absolute;top:110%;left:0;z-index:40;background:var(--panel);border:1px solid var(--border);
  border-radius:var(--radius);min-width:220px;max-height:300px;overflow:auto;box-shadow:0 10px 28px rgba(0,0,0,.6)}
.tdrop:empty{display:none}
.topt{display:flex;align-items:center;gap:10px;padding:8px 13px;cursor:pointer;font-size:13px}
.topt b{font-weight:700;letter-spacing:.5px;flex:1}
.topt:hover{background:#0e1a12;color:var(--green)}
.chipscore{margin-left:7px;color:var(--amber);font-weight:700;font-size:11px}
.chip.on .chipscore{color:#04140a}

/* chips */
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{padding:6px 13px;border:1px solid var(--border);border-radius:var(--radius);color:var(--dim);cursor:pointer;
  font-weight:700;font-size:13px;letter-spacing:.6px;transition:.1s}
.chip:hover{color:var(--txt);border-color:var(--green)}
.chip.on{background:var(--amber);color:#04140a;border-color:var(--amber)}

/* callout / plain-english */
.plain{background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--amber);
  border-radius:var(--radius);padding:15px 17px;color:var(--txt);font-size:14.5px;line-height:1.65;opacity:.95}
.plain b.up{color:var(--green)} .plain b.dn{color:var(--red)} .plain b.a{color:var(--amber)} .plain b.c{color:var(--cyan)}

/* toolbar */
.toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.seg{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.seg button{background:transparent;color:var(--dim);border:0;padding:7px 13px;cursor:pointer;font:inherit;font-weight:600;letter-spacing:.5px}
.seg button.on{background:var(--amber);color:#04140a;font-weight:700}
input[type=search],input[type=text]{background:var(--panel2);border:1px solid var(--border);color:var(--txt);
  padding:8px 12px;border-radius:var(--radius);font:inherit;font-size:13.5px}
input:focus{outline:none;border-color:var(--amber);box-shadow:0 0 0 1px rgba(255,194,74,.3)}
input[type=checkbox]{accent-color:var(--amber)}
label.lbl{color:var(--dim);font-size:12.5px;margin-right:6px;letter-spacing:.5px;text-transform:uppercase}

/* misc */
.up{color:var(--green)} .down{color:var(--red)} .amber{color:var(--amber)} .cyan{color:var(--cyan)} .dim{color:var(--dim)}
b.up{color:var(--green)} b.dn,.dn{color:var(--red)} b.a,.a{color:var(--amber)} b.c,.c{color:var(--cyan)}
.chartbox{position:relative;height:280px}
footer{border-top:1px solid var(--border);margin-top:20px;padding:20px 0;color:var(--faint);font-size:12px;letter-spacing:.5px}
.err{margin:16px 0;padding:12px 14px;border:1px solid var(--red);border-radius:var(--radius);color:var(--red);background:rgba(255,91,91,.06);display:none}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* legal / long-form text pages */
.legal{max-width:820px;margin:0 auto;padding:6px 20px 64px}
.legal .backbar{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border);margin-bottom:26px}
.legal .backbar .brand{font-family:var(--disp);font-weight:800;font-size:18px;letter-spacing:1px;color:var(--green);text-decoration:none;text-shadow:0 0 10px rgba(56,240,138,.35)}
.legal .backbar .brand span{color:var(--dim);font-size:12px}
.legal .backbar a.home{color:var(--dim);font-size:12.5px;text-decoration:none}
.legal .backbar a.home:hover{color:var(--green)}
.legal h1{font-family:var(--disp);font-size:30px;color:var(--green);letter-spacing:1px;margin:0 0 6px}
.legal h2{font-family:var(--disp);font-size:17px;color:var(--txt);letter-spacing:1px;margin:30px 0 10px;text-transform:uppercase}
.legal p,.legal li{color:var(--txt);font-size:14px;line-height:1.75}
.legal p{margin:0 0 12px}
.legal ul{margin:0 0 14px;padding-left:20px}
.legal li{margin-bottom:6px}
.legal a{color:var(--cyan)}
.legal .updated{color:var(--dim);font-size:12px;letter-spacing:.5px;margin-bottom:8px}
.legal .callout{border:1px solid var(--amber);border-left:3px solid var(--amber);border-radius:8px;
  background:rgba(255,194,74,.06);padding:14px 16px;margin:0 0 18px;color:var(--txt);font-size:13.5px;line-height:1.7}
.legal .callout b{color:var(--amber)}
.legal .fill{color:var(--amber);background:rgba(255,194,74,.1);padding:0 4px;border-radius:3px}
.legal .legal-foot{border-top:1px solid var(--border);margin-top:36px;padding-top:16px;color:var(--dim);font-size:12px;display:flex;gap:16px;flex-wrap:wrap}
.legal .legal-foot a{color:var(--dim);text-decoration:none}
