/* redesign.css — shared stylesheet for the four redesigned surfaces.
 * Extracted from docs/redesign/prototype (03-DESIGN-SPEC). Page-specific
 * sections follow the shared block, fenced by comments. */

:root.light{--bg-deep:#F8F5EE;--bg-elev:#FFFFFF;--bg-card:#FFFFFF;--bg-card-hi:#F1ECE0;--tx:#0E1112;--tx-muted:#57625E;--tx-faint:#8A938E;--hair:rgba(14,17,18,.10);--hair-hi:rgba(14,17,18,.18);--brand:#0369a1;--brand-soft:rgba(3,105,161,.12);--grad-brand-h:linear-gradient(90deg,#0369a1 0%,#b45309 100%);--calib:#0369a1;--focus-ring:#0284c7;--sh-card:0 1px 0 var(--hair) inset,0 8px 24px -12px rgba(40,30,10,.16);color-scheme:light}
*{box-sizing:border-box}
body{margin:0;min-height:100dvh;font-size:16px;line-height:1.6}
.mono,.tabular{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:var(--f-display);font-weight:600;margin:0;letter-spacing:-.01em;line-height:1.15}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:6px}
@media(min-width:1024px){.wrap{padding:0 var(--s8)}}
.topbar.scrolled{border-bottom:1px solid var(--hair)}
.wordmark{display:inline-flex;align-items:center;font-family:var(--f-sans);font-weight:700;letter-spacing:-.02em;font-size:16px}
.wordmark-dot{width:9px;height:9px;border-radius:50%;margin-right:.55em;background:var(--grad-brand-h);box-shadow:0 0 12px rgba(56,189,248,.7)}
.wordmark .faint{color:var(--tx-faint);font-weight:400;margin-left:.4em}
@media(min-width:640px){.nav{display:flex}}
.nav a{min-height:44px;display:inline-flex;align-items:center;transition:color var(--m-fast);position:relative}
.nav a:hover{color:var(--tx)}
.nav a[aria-current=page]{color:var(--tx)}
.nav a[aria-current=page]::after{content:"";position:absolute;left:0;right:0;bottom:8px;height:2px;background:var(--grad-brand-h);border-radius:2px}
.toggle:hover{color:var(--tx);border-color:var(--hair-hi);background:var(--brand-soft)}
.pill-buy{background:var(--up-soft);color:var(--up);box-shadow:0 0 0 1px color-mix(in srgb,var(--up) 40%,transparent) inset}
.pill-sell{background:var(--down-soft);color:var(--down);box-shadow:0 0 0 1px color-mix(in srgb,var(--down) 45%,transparent) inset}
.label{font-size:12px;color:var(--tx-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:500}
.asof .ts{font-family:var(--f-mono);color:var(--tx)}
.foot .note{max-width:64ch;color:var(--tx-muted);font-size:14px;line-height:1.7}
.foot .meta{margin-top:var(--s6);display:flex;flex-wrap:wrap;gap:var(--s5);font-family:var(--f-mono);font-size:12px;color:var(--tx-faint)}
.foot .meta a{color:var(--brand)}
html{background:var(--bg-deep);color:var(--tx);font-family:var(--f-sans);-webkit-font-smoothing:antialiased}
.bg-mesh{position:fixed;inset:0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse 80% 60% at 10% 0%,rgba(56,189,248,.10) 0%,transparent 50%),radial-gradient(ellipse 60% 50% at 100% 25%,rgba(245,158,11,.05) 0%,transparent 55%)}
.bg-noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.022;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
.skip{position:absolute;left:-999px;top:0;background:var(--bg-card);padding:8px 16px;border-radius:8px;z-index:100}
.skip:focus{left:16px;top:16px}
.topbar{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);background:color-mix(in srgb,var(--bg-deep) 82%,transparent)}
@media(min-width:1024px){.topbar-in{padding:12px 32px}}
.nav{display:none;align-items:center;gap:20px;font-size:14px;color:var(--tx-muted)}
.toggle{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--tx-muted);background:transparent;border:1px solid transparent;cursor:pointer}
.eyebrow{font-family:var(--f-mono);font-size:12px;color:var(--brand);text-transform:uppercase;letter-spacing:.16em}
.foot{border-top:1px solid var(--hair);margin-top:var(--s20);padding:var(--s10) 0 var(--s12)}

/* ── home.html specific ─────────────────────────── */

/* ============================================================
   SHARED DESIGN SYSTEM — Drake / Second Order Stocks (prototype)
   Direction C: "Instrument with an editorial voice"
   Tokens mirror docs/redesign/03-DESIGN-SPEC.md §3
   ============================================================ */
:root{
  /* surfaces */
  --bg-deep:#07090A; --bg-elev:#0E1214; --bg-card:#14191B; --bg-card-hi:#1E2528;
  /* text (contrast-verified, §8) */
  --tx:#F6F7F8; --tx-muted:#9BA39E; --tx-faint:#6B736E;
  --hair:rgba(246,247,248,.08); --hair-hi:rgba(246,247,248,.18);
  /* signal — canonical */
  --up:#00E057; --up-soft:rgba(0,224,87,.16);
  --down:#FF4D3B; --down-soft:rgba(255,77,59,.14);
  --hold:#F5C44A; --hold-soft:rgba(245,196,74,.16);
  --abstain:#7C8A85;
  /* brand spine — SOL blue→amber (replaces iris) */
  --brand:#38BDF8; --brand-2:#0EA5E9; --amber:#F59E0B;
  --brand-soft:rgba(56,189,248,.16); --amber-soft:rgba(245,158,11,.16);
  --grad-brand:linear-gradient(100deg,#38BDF8 0%,#818CF8 45%,#F59E0B 100%);
  --grad-brand-h:linear-gradient(90deg,#38BDF8 0%,#F59E0B 100%);
  --calib:var(--brand);
  /* type */
  --f-display:"Crimson Pro",Georgia,ui-serif,serif;
  --f-sans:"Inter",ui-sans-serif,system-ui,-apple-system,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
  /* spacing 4/8 */
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--s20:80px;
  /* radii */
  --r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;
  /* elevation */
  --sh-card:0 1px 0 var(--hair) inset,0 8px 24px -8px rgba(0,0,0,.55);
  --sh-hero:0 1px 0 var(--hair-hi) inset,0 24px 64px -24px rgba(0,0,0,.75);
  /* motion */
  --m-fast:120ms cubic-bezier(.2,.8,.2,1);
  --m-base:220ms cubic-bezier(.2,.8,.2,1);
  --m-hero:600ms cubic-bezier(.16,.84,.2,1.04);
  color-scheme:dark;--focus-ring:var(--brand);
}
html{background:var(--bg-deep);color:var(--tx);font-family:var(--f-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;scroll-behavior:smooth}
.serif{font-family:var(--f-display)}
img{max-width:100%}
/* ambient bg */
.bg-mesh{position:fixed;inset:0;z-index:-2;pointer-events:none;background:
  radial-gradient(ellipse 80% 60% at 10% 0%,rgba(56,189,248,.10) 0%,transparent 50%),
  radial-gradient(ellipse 60% 50% at 100% 25%,rgba(245,158,11,.05) 0%,transparent 55%),
  radial-gradient(ellipse 100% 50% at 50% 100%,rgba(129,140,248,.05) 0%,transparent 60%);}
.bg-noise{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.022;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");}
/* layout */
.wrap{max-width:1180px;margin:0 auto;width:100%;padding:0 var(--s5)}
.wide{max-width:1320px}
.skip{position:absolute;left:-999px;top:0;background:var(--bg-card);color:var(--tx);padding:var(--s2) var(--s4);border-radius:var(--r-sm);z-index:100}
.skip:focus{left:var(--s4);top:var(--s4)}
/* topbar */
.topbar{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);background:color-mix(in srgb,var(--bg-deep) 82%,transparent)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);padding:var(--s3) 0;max-width:1180px;margin:0 auto;padding-left:var(--s5);padding-right:var(--s5)}
@media(min-width:1024px){.topbar-in{padding-left:var(--s8);padding-right:var(--s8)}}
.nav{display:none;align-items:center;gap:var(--s5);font-size:14px;color:var(--tx-muted)}
.toggle{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:var(--tx-muted);background:transparent;border:1px solid transparent;cursor:pointer;transition:all var(--m-fast)}
.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--r-sm);background:transparent;border:1px solid var(--hair);color:var(--tx-muted);cursor:pointer}
@media(min-width:640px){.menu-btn{display:none}}
/* pills */
.pill{display:inline-flex;align-items:center;gap:.4em;padding:.32em .8em;border-radius:var(--r-pill);font-family:var(--f-sans);font-weight:700;font-size:12px;line-height:1;letter-spacing:.02em}
.pill .gly{font-size:.85em}
.pill-hold{background:var(--hold-soft);color:var(--hold);box-shadow:0 0 0 1px color-mix(in srgb,var(--hold) 38%,transparent) inset}
.pill-lg{font-size:20px;padding:.4em 1em}
.pill-brand{background:var(--brand-soft);color:var(--brand);box-shadow:0 0 0 1px color-mix(in srgb,var(--brand) 40%,transparent) inset;font-weight:600}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:.6em 1.1em;border-radius:var(--r-pill);font-size:14px;font-weight:500;cursor:pointer;transition:all var(--m-fast);border:1px solid var(--hair);background:transparent;color:var(--tx)}
.btn:hover{border-color:var(--brand);background:var(--brand-soft)}
.btn-primary{background:var(--grad-brand-h);color:#04121c;font-weight:600;border:none}
.btn-primary:hover{filter:brightness(1.08);box-shadow:0 0 0 4px var(--brand-soft)}
.btn-ghost{color:var(--tx-muted);border-color:transparent}
.btn-ghost:hover{color:var(--tx);border-color:var(--hair)}
/* cards */
.card{background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card)}
/* eyebrow */
.eyebrow{font-family:var(--f-mono);font-size:12px;color:var(--brand);text-transform:uppercase;letter-spacing:.16em;display:inline-flex;align-items:center;gap:.5em}
.gradient-text{background:var(--grad-brand-h);-webkit-background-clip:text;background-clip:text;color:transparent}
/* as-of stamp */
.asof{display:inline-flex;align-items:center;gap:.5em;font-size:13px;color:var(--tx-muted)}
.asof .dot{width:8px;height:8px;border-radius:50%;background:var(--grad-brand-h);box-shadow:0 0 8px rgba(56,189,248,.8);flex:none}
/* footer */
.foot{border-top:1px solid var(--hair);margin-top:var(--s20);padding:var(--s10) 0 var(--s12)}
/* reveal — gated on .js so a JS-off page never has invisible content
   (the script adds .js to <html> before observing; without JS the
   sections paint fully). P-004: the per-stock page's two content
   sections are [data-fade], so this gate is load-bearing there. */
@media(prefers-reduced-motion:no-preference){
  .js [data-fade]{opacity:0;transform:translateY(12px);transition:opacity .6s cubic-bezier(.16,.84,.2,1),transform .6s cubic-bezier(.16,.84,.2,1)}
  .js [data-fade].in{opacity:1;transform:none}
  .hero-rise{animation:rise var(--m-hero) both}
  @keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
}
@media(prefers-reduced-motion:reduce){[data-fade]{opacity:1}}
/* ===================== HOME-SPECIFIC ===================== */
.hero{margin-top:var(--s12);display:grid;gap:var(--s10);align-items:end}
@media(min-width:1024px){.hero{grid-template-columns:1.4fr 1fr;gap:var(--s16);margin-top:var(--s20)}}
.hero h1{font-size:clamp(2.75rem,6.5vw,4.5rem);line-height:1.0;margin-top:var(--s3)}
.hero .lede{margin-top:var(--s5);font-size:18px;line-height:1.7;color:rgba(246,247,248,.88);max-width:52ch}
.hero .ctas{margin-top:var(--s6);display:flex;flex-wrap:wrap;gap:var(--s3)}
/* scorecard */
.scorecard{display:grid;grid-template-columns:1fr 1fr;gap:var(--s3)}
.sc{padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);position:relative;overflow:hidden}
.sc .label{display:block}
.sc .val{font-family:var(--f-mono);font-size:40px;line-height:1;margin-top:var(--s3);font-weight:500}
.sc .sub{font-size:12px;color:var(--tx-muted);margin-top:var(--s2);display:block}
.sc.resolved .pending-note{font-family:var(--f-display);font-style:italic;color:var(--brand);font-size:15px;margin-top:var(--s2);display:block}
.sc.honesty{grid-column:1 / -1;background:linear-gradient(120deg,var(--brand-soft),transparent 70%),var(--bg-card)}
.sc.honesty .hn{font-family:var(--f-display);font-size:17px;line-height:1.4;color:var(--tx)}
.sc.honesty .hn b{color:var(--brand);font-weight:600;font-style:italic}
.abstain-row{margin-top:var(--s4);display:flex;gap:var(--s5);font-size:13px;color:var(--tx-muted);flex-wrap:wrap}
.abstain-row b{font-family:var(--f-mono);color:var(--tx)}
.abstain-row .infra b{color:var(--down)}
/* section head */
.sec-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:var(--s3);margin-bottom:var(--s5)}
.sec-head h2{font-size:28px}
.sec-head .right{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap}
.linkb{color:var(--brand);font-size:14px;display:inline-flex;align-items:center;gap:.35em;border-bottom:1px solid color-mix(in srgb,var(--brand) 40%,transparent);padding-bottom:1px}
.linkb:hover{border-bottom-color:var(--brand)}
/* tape */
.tape{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s4)}
.tile{position:relative;display:block;padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card);transition:transform var(--m-fast),border-color var(--m-fast),box-shadow var(--m-fast);overflow:hidden}
.tile::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;opacity:.85}
.tile.buy::before{background:linear-gradient(90deg,transparent,var(--up) 25%,var(--up) 75%,transparent)}
.tile.sell::before{background:linear-gradient(90deg,transparent,var(--down) 25%,var(--down) 75%,transparent)}
.tile:hover{transform:translateY(-2px);border-color:var(--hair-hi);box-shadow:var(--sh-card),0 8px 28px -16px rgba(56,189,248,.5)}
.tile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s2)}
.tile-tk{font-family:var(--f-mono);font-size:20px;font-weight:600;line-height:1}
.tile-nm{font-size:12px;color:var(--tx-muted);margin-top:var(--s1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:11ch}
.tile-px{margin-top:var(--s4);display:flex;align-items:baseline;gap:var(--s2)}
.tile-px .p{font-family:var(--f-mono);font-size:24px;font-weight:500}
.tile-px .lvdot{width:7px;height:7px;border-radius:50%;background:var(--grad-brand-h);box-shadow:0 0 6px rgba(56,189,248,.8);align-self:center}
.delta{font-family:var(--f-mono);font-size:13px}
.delta.up{color:var(--up)}
.delta.down{color:var(--down)}
.delta.flat{color:var(--tx-muted)}
.tile-bars{margin-top:var(--s4);display:grid;gap:var(--s2)}
.minibar{display:flex;align-items:center;gap:var(--s2);font-size:11px;color:var(--tx-muted)}
.minibar .track{flex:1;height:4px;background:var(--hair);border-radius:var(--r-pill);overflow:hidden}
.minibar .fill{height:100%;background:var(--calib);border-radius:var(--r-pill)}
.minibar .v{font-family:var(--f-mono);color:var(--tx);min-width:3.2ch;text-align:right}
.tile-unavail{margin-top:var(--s4);color:var(--tx-faint);font-size:13px}
.held{display:inline-flex;align-items:center;gap:.3em;font-size:11px;font-family:var(--f-mono);color:var(--brand);background:var(--brand-soft);padding:.15em .5em;border-radius:var(--r-pill);margin-top:var(--s3)}
/* empty state family */
.empty{text-align:center;padding:var(--s12) var(--s6);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card)}
.empty .ring{width:56px;height:56px;border-radius:50%;background:var(--brand-soft);display:inline-flex;align-items:center;justify-content:center;color:var(--brand);margin-bottom:var(--s4)}
.empty h3{font-size:24px;margin-bottom:var(--s3)}
.empty p{max-width:48ch;margin:0 auto var(--s5);color:var(--tx-muted);line-height:1.6}
/* recent runs preview */
.preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s4)}
.runcard{display:block;padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card);transition:transform var(--m-fast),border-color var(--m-fast)}
.runcard:hover{transform:translateY(-2px);border-color:var(--hair-hi)}
.rc-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.rc-tk{font-family:var(--f-mono);font-size:18px;font-weight:600}
.rc-meta{font-size:12px;color:var(--tx-faint);font-family:var(--f-mono)}
.rc-thesis{margin-top:var(--s3);font-size:14px;color:var(--tx-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gauge{margin-top:var(--s4)}
.gauge .glabel{display:flex;justify-content:space-between;font-size:11px;color:var(--tx-muted);margin-bottom:var(--s1)}
.gauge .glabel .gv{font-family:var(--f-mono);color:var(--tx)}
.gauge .gtrack{position:relative;height:6px;background:var(--hair);border-radius:var(--r-pill);overflow:visible}
.gauge .gfill{height:100%;border-radius:var(--r-pill);background:var(--calib)}
.gauge .gfill.up{background:var(--up)}
.gauge .gfill.down{background:var(--down)}
.gauge .coin{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--tx-faint)}
.gauge .coin::after{content:"50%";position:absolute;top:-14px;left:50%;transform:translateX(-50%);font-size:9px;color:var(--tx-faint);font-family:var(--f-mono)}
.resolve-chip{margin-top:var(--s3);display:inline-flex;align-items:center;gap:.4em;font-size:11px;font-family:var(--f-mono);color:var(--tx-muted);border:1px dashed var(--hair-hi);padding:.25em .6em;border-radius:var(--r-pill)}

/* ── runs.html specific ─────────────────────────── */

/* shared tokens — identical to home.html (see 03-DESIGN-SPEC §3) */
:root{
  --bg-deep:#07090A;--bg-elev:#0E1214;--bg-card:#14191B;--bg-card-hi:#1E2528;
  --tx:#F6F7F8;--tx-muted:#9BA39E;--tx-faint:#6B736E;
  --hair:rgba(246,247,248,.08);--hair-hi:rgba(246,247,248,.18);
  --up:#00E057;--up-soft:rgba(0,224,87,.16);--down:#FF4D3B;--down-soft:rgba(255,77,59,.14);
  --hold:#F5C44A;--hold-soft:rgba(245,196,74,.16);--abstain:#7C8A85;
  --brand:#38BDF8;--brand-2:#0EA5E9;--amber:#F59E0B;--brand-soft:rgba(56,189,248,.16);--amber-soft:rgba(245,158,11,.16);
  --grad-brand-h:linear-gradient(90deg,#38BDF8 0%,#F59E0B 100%);--calib:var(--brand);
  --f-display:"Crimson Pro",Georgia,ui-serif,serif;--f-sans:"Inter",ui-sans-serif,system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--s20:80px;
  --r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;
  --sh-card:0 1px 0 var(--hair) inset,0 8px 24px -8px rgba(0,0,0,.55);
  --m-fast:120ms cubic-bezier(.2,.8,.2,1);--m-base:220ms cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;--focus-ring:var(--brand);
}
.wrap{max-width:1320px;margin:0 auto;width:100%;padding:0 var(--s5)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1320px;margin:0 auto;padding:12px 20px}
.pill{display:inline-flex;align-items:center;gap:.4em;padding:.32em .8em;border-radius:var(--r-pill);font-weight:700;font-size:12px;line-height:1}
.pill .gly{font-size:.85em}
.pill-hold{background:var(--hold-soft);color:var(--hold);box-shadow:0 0 0 1px color-mix(in srgb,var(--hold) 38%,transparent) inset}
.linkb{color:var(--brand);font-size:14px;border-bottom:1px solid color-mix(in srgb,var(--brand) 40%,transparent);padding-bottom:1px}
.asof{display:inline-flex;align-items:center;gap:.5em;font-size:13px;color:var(--tx-muted)}
.asof .dot{width:8px;height:8px;border-radius:50%;background:var(--grad-brand-h);box-shadow:0 0 8px rgba(56,189,248,.8)}
/* ===== RUNS BOARD ===== */
.runs-head{margin-top:var(--s12);margin-bottom:var(--s6)}
.runs-head h1{font-size:clamp(2.25rem,5vw,3.25rem);line-height:1.0}
.runs-head .sub{margin-top:var(--s3);color:var(--tx-muted);font-size:16px;max-width:62ch}
.runs-head .counts{margin-top:var(--s5);display:flex;gap:var(--s5);flex-wrap:wrap;font-size:14px}
.runs-head .counts b{font-family:var(--f-mono);color:var(--tx)}
.cu{color:var(--up)}
.cd{color:var(--down)}
.ch{color:var(--hold)}
/* filter rail */
.rail{position:sticky;top:60px;z-index:30;background:color-mix(in srgb,var(--bg-deep) 88%,transparent);backdrop-filter:blur(10px);padding:var(--s4) 0;margin-bottom:var(--s6);border-bottom:1px solid var(--hair)}
.rail-in{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
.chipset{display:inline-flex;gap:6px;background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-pill);padding:4px}
.chip{min-height:36px;padding:0 14px;border-radius:var(--r-pill);font-size:13px;color:var(--tx-muted);background:transparent;border:none;cursor:pointer;display:inline-flex;align-items:center;transition:all var(--m-fast)}
.chip:hover{color:var(--tx)}
.chip[aria-pressed=true]{background:var(--brand-soft);color:var(--brand);font-weight:600}
.field{min-height:44px;background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-pill);padding:0 16px;color:var(--tx);font-size:14px;font-family:var(--f-sans)}
.field:focus{outline:2px solid var(--focus-ring);outline-offset:2px;border-color:var(--brand)}
select.field{cursor:pointer}
.count-live{font-size:13px;color:var(--tx-muted);margin-left:auto;font-family:var(--f-mono)}
.count-live b{color:var(--tx)}
/* section bands */
.band-head{display:flex;align-items:baseline;gap:var(--s3);margin:var(--s8) 0 var(--s4)}
.band-head h2{font-size:24px}
.band-head .badge{font-family:var(--f-mono);font-size:12px;color:var(--tx-muted);background:var(--bg-card);border:1px solid var(--hair);padding:2px 10px;border-radius:var(--r-pill)}
.band-head .rule{flex:1;height:1px;background:var(--hair)}
/* board grid */
.board{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--s4)}
.rcard{display:block;height:100%;padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card);transition:transform var(--m-fast),border-color var(--m-fast),box-shadow var(--m-fast);position:relative;overflow:hidden}
.rcard::before{content:"";position:absolute;inset:0 0 auto 0;height:2px;opacity:0}
.rcard.buy::before{background:linear-gradient(90deg,transparent,var(--up),transparent);opacity:.6}
.rcard.sell::before{background:linear-gradient(90deg,transparent,var(--down),transparent);opacity:.6}
.rcard:hover{transform:translateY(-2px);border-color:var(--hair-hi);box-shadow:var(--sh-card),0 8px 28px -16px rgba(56,189,248,.5)}
.rcard:hover::before{opacity:1}
.rc-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s2)}
.rc-tk{font-family:var(--f-mono);font-size:20px;font-weight:600;line-height:1}
.rc-nm{font-size:12px;color:var(--tx-muted);margin-top:3px}
.rc-thesis{margin-top:var(--s3);font-size:13.5px;color:var(--tx-muted);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.7em}
.gauge{margin-top:var(--s4)}
.gauge .glabel{display:flex;justify-content:space-between;font-size:11px;color:var(--tx-muted);margin-bottom:4px}
.gauge .glabel .gv{font-family:var(--f-mono);color:var(--tx)}
.gauge .gtrack{position:relative;height:6px;background:var(--hair);border-radius:var(--r-pill);overflow:visible}
.gauge .gfill{height:100%;border-radius:var(--r-pill);background:var(--calib)}
.gauge .gfill.up{background:var(--up)}
.gauge .gfill.down{background:var(--down)}
.gauge .coin{position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--tx-faint)}
.convmeter{margin-top:var(--s3);display:flex;align-items:center;gap:6px}
.convmeter .dots{display:flex;gap:3px}
.convmeter .d{width:7px;height:7px;border-radius:50%;background:var(--hair-hi)}
.convmeter .d.on{background:var(--brand)}
.convmeter .cl{font-size:11px;color:var(--tx-muted);font-family:var(--f-mono)}
.rc-foot{margin-top:var(--s4);display:flex;align-items:center;justify-content:space-between;gap:var(--s2);flex-wrap:wrap}
.sector-tag{font-size:11px;color:var(--tx-faint);font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.04em}
.resolve-chip{display:inline-flex;align-items:center;gap:.4em;font-size:11px;font-family:var(--f-mono);color:var(--tx-muted);border:1px dashed var(--hair-hi);padding:.2em .55em;border-radius:var(--r-pill)}
.recency{font-size:11px;color:var(--tx-faint);font-family:var(--f-mono)}
/* HOLD band — compact chips */
.holdband{margin-top:var(--s4)}
.holds{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}
.holdchip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-pill);font-size:13px;transition:border-color var(--m-fast)}
.holdchip:hover{border-color:var(--hair-hi)}
.holdchip .tk{font-family:var(--f-mono);font-weight:600}
.holdchip .pu{font-family:var(--f-mono);font-size:11px;color:var(--tx-muted)}
.holdchip .dt{width:6px;height:6px;border-radius:50%;background:var(--hold)}
.holdmore{color:var(--tx-muted);font-size:13px;padding:8px 12px}
.noresult{display:none;text-align:center;padding:var(--s16) var(--s6);color:var(--tx-muted)}
.noresult.show{display:block}

/* ─────────────────────────────────────────────────────────────── */
/* P-004 C5 — Home stock-card additions + the per-stock page        */
/* All values trace to the pre-existing token scale; no new brand.  */
/* ─────────────────────────────────────────────────────────────── */

/* §3.2/§3.3 — card prediction-count + confidence "disagreement-adjusted"
   note. .pred-count carries unique info → --tx-muted, not faint (§6.3). */
.pred-count{font-family:var(--f-mono);font-size:11px;color:var(--tx-muted);letter-spacing:.02em}
.conv-note{font-size:10px;color:var(--tx-faint);font-style:italic;font-family:var(--f-display)}
.abstain-note{font-size:11px;color:var(--tx-faint);font-style:italic;margin-top:var(--s2)}
/* the confidence label can wrap below the dots on very narrow cards (§3.3) */
.convmeter{flex-wrap:wrap}

/* §3.6 — resolve-chip flip (dormant today; designed now). Solid result
   chip: word + glyph + sign, never colour alone (WCAG 1.4.1). */
.resolve-chip.hit{border-style:solid;border-color:color-mix(in srgb,var(--up) 45%,transparent);color:var(--up)}
.resolve-chip.miss{border-style:solid;border-color:color-mix(in srgb,var(--down) 45%,transparent);color:var(--down)}

/* §3.7 — HOLD band as full dimmed cards (Maya's call). The band wrapper
   dims until hovered/focus-within so HOLDs don't bury the decisive grid. */
.holdband-cards{opacity:.78;transition:opacity var(--m-base)}
.holdband-cards:hover,.holdband-cards:focus-within{opacity:1}
@media(prefers-reduced-motion:reduce){.holdband-cards{transition:none}}

/* ── Per-stock page (§4) — fixed three-section skeleton ───────────── */
/* §4.1 — the generous section rhythm is what gives a thin/empty page the
   same visual mass as a rich one. Each section always renders full size. */
.stock-section{margin-top:var(--s16)}

/* §4.2 — header (.stock-head): two columns at lg, stacks below. */
.stock-head{margin-top:var(--s12);display:grid;gap:var(--s5);align-items:start}
@media(min-width:1024px){.stock-head{grid-template-columns:1fr auto}}
.stock-head .sh-id h1{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s3)}
.stock-head .sh-id .tk{font-family:var(--f-mono);font-size:36px;font-weight:600;line-height:1}
.stock-head .sh-id .nm{color:var(--tx-muted);font-size:16px;font-family:var(--f-sans);font-weight:400}
.stock-head .sh-id .sec{font-family:var(--f-mono);font-size:11px;color:var(--tx-faint);text-transform:uppercase;letter-spacing:.08em;margin-top:var(--s2)}
.stock-head .sh-px{display:flex;flex-direction:column;gap:var(--s1)}
@media(min-width:1024px){.stock-head .sh-px{align-items:flex-end;text-align:right}}
.stock-head .px{font-family:var(--f-mono);font-size:28px;font-weight:500;display:inline-flex;align-items:center;gap:.5em}
.stock-head .px .lvdot{width:8px;height:8px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px var(--up-soft)}
.stock-head .px-asof{font-size:12px;color:var(--tx-muted)}
.stock-head .px-asof .ts{font-family:var(--f-mono);color:var(--tx)}
.stock-head .tile-unavail{font-family:var(--f-mono);font-size:14px;color:var(--tx-faint)}
.stock-stance{display:flex;align-items:center;gap:var(--s4);flex-wrap:wrap;margin-top:var(--s5)}
.stock-counts{font-size:14px;color:var(--tx-muted);margin-top:var(--s3)}
.stock-counts b{font-family:var(--f-mono);color:var(--tx)}

/* §4.3 — actionMix micro-summary (multi-run only). */
.action-mix{font-size:13px;color:var(--tx-muted);margin:calc(-1*var(--s2)) 0 var(--s4)}
.action-mix .cu{color:var(--up)}
.action-mix .cd{color:var(--down)}
.action-mix .ch{color:var(--hold)}

/* §4.4 — the hit/miss ledger (Tier 1 / Tier 2). Existing tokens only.
   --down is used only as bold ≥13px glyph/word (UI/large rule, §6.3). */
.ledger{list-style:none;margin:0;padding:0;border:1px solid var(--hair);border-radius:var(--r-md);background:var(--bg-card);box-shadow:var(--sh-card);overflow:hidden}
.ledger-head{padding:var(--s4) var(--s5);font-family:var(--f-display);font-size:18px;color:var(--tx);border-bottom:1px solid var(--hair)}
.ledger-head .sub{font-family:var(--f-sans);font-size:13px;color:var(--tx-muted);margin-top:var(--s1)}
.ledger li{margin:0}
.ledger-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s5);min-height:44px;border-bottom:1px solid var(--hair);font-size:14px;color:var(--tx);transition:background var(--m-fast)}
.ledger-row:hover{background:var(--bg-card-hi)}
.ledger-row .res{font-family:var(--f-sans);font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:.35em;min-width:5.5em}
.ledger-row.hit .res{color:var(--up)}
.ledger-row.miss .res{color:var(--down)}
.ledger-row .lr-meta{color:var(--tx-muted);font-size:13px}
.ledger-row .ret{font-family:var(--f-mono);margin-left:auto;font-weight:500}
.ledger-row.hit .ret{color:var(--up)}
.ledger-row.miss .ret{color:var(--down)}
.ledger-note{padding:var(--s3) var(--s5);font-size:12px;color:var(--tx-muted);font-style:italic;border-bottom:1px solid var(--hair)}
.ledger-foot{padding:var(--s3) var(--s5);font-size:13px;color:var(--tx-muted)}

/* §4.4 Tier 2 — the 3-up per-ticker stat strip (renamed from trades .acct). */
.trackstat{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s4);margin-bottom:var(--s4)}
@media(max-width:560px){.trackstat{grid-template-columns:1fr}}
.trackstat .tcard{padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card)}
.trackstat .tcard .l{font-size:12px;color:var(--tx-muted);text-transform:uppercase;letter-spacing:.06em}
.trackstat .tcard .v{font-family:var(--f-mono);font-size:28px;font-weight:600;margin-top:var(--s2)}
.trackstat .tcard .h{font-size:12px;color:var(--tx-faint);margin-top:var(--s1)}
.trackstat-note{font-size:13px;color:var(--tx-muted);margin-top:var(--s4);line-height:1.6}

/* ── about.html specific ─────────────────────────── */

:root{
  --bg-deep:#07090A;--bg-elev:#0E1214;--bg-card:#14191B;--bg-card-hi:#1E2528;
  --tx:#F6F7F8;--tx-muted:#9BA39E;--tx-faint:#6B736E;
  --hair:rgba(246,247,248,.08);--hair-hi:rgba(246,247,248,.18);
  --up:#00E057;--up-soft:rgba(0,224,87,.16);--down:#FF4D3B;--down-soft:rgba(255,77,59,.14);
  --hold:#F5C44A;--hold-soft:rgba(245,196,74,.16);
  --brand:#38BDF8;--brand-2:#0EA5E9;--amber:#F59E0B;--brand-soft:rgba(56,189,248,.16);--amber-soft:rgba(245,158,11,.16);
  --grad-brand-h:linear-gradient(90deg,#38BDF8 0%,#F59E0B 100%);--calib:var(--brand);
  --f-display:"Crimson Pro",Georgia,ui-serif,serif;--f-sans:"Inter",ui-sans-serif,system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--s20:80px;
  --r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;
  --sh-card:0 1px 0 var(--hair) inset,0 8px 24px -8px rgba(0,0,0,.55);
  --m-fast:120ms cubic-bezier(.2,.8,.2,1);--m-base:220ms cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;--focus-ring:var(--brand);
}
.wrap{max-width:1180px;margin:0 auto;width:100%;padding:0 var(--s5)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1180px;margin:0 auto;padding:12px 20px}
.linkb{color:var(--brand);border-bottom:1px solid color-mix(in srgb,var(--brand) 40%,transparent);padding-bottom:1px}
.asof .dot{width:8px;height:8px;border-radius:50%;background:var(--grad-brand-h);display:inline-block}
/* about layout */
.a-head{margin-top:var(--s12);max-width:68ch}
.a-head h1{font-size:clamp(2.25rem,5vw,3.5rem);line-height:1.0}
.a-head .lede{margin-top:var(--s5);font-size:19px;line-height:1.7;color:rgba(246,247,248,.9)}
.a-head .anchor{margin-top:var(--s5);font-family:var(--f-display);font-style:italic;font-size:21px;color:var(--tx);border-left:3px solid var(--brand);padding-left:var(--s4);line-height:1.4}
.prose{max-width:68ch;margin-top:var(--s10)}
.prose h2{font-size:30px;margin-bottom:var(--s4)}
.prose p{color:rgba(246,247,248,.85);line-height:1.75;margin:0 0 var(--s4);font-size:17px}
/* pipeline diagram (full-width breakout) */
.pipe{margin-top:var(--s8);padding:var(--s8) 0}
.pipe-stages{display:grid;gap:var(--s4);align-items:stretch}
@media(min-width:900px){.pipe-stages{grid-template-columns:1.4fr auto 1fr auto 1fr;align-items:center}}
.stage{background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);padding:var(--s5);box-shadow:var(--sh-card)}
.stage .st-label{font-family:var(--f-mono);font-size:11px;color:var(--brand);text-transform:uppercase;letter-spacing:.1em}
.stage h3{font-size:20px;margin:var(--s2) 0 var(--s3)}
.specialists{display:grid;grid-template-columns:1fr 1fr;gap:var(--s2)}
.sp{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tx-muted);padding:6px 8px;background:var(--bg-deep);border:1px solid var(--hair);border-radius:var(--r-sm)}
.sp .ic{color:var(--brand);flex:none}
.arrow{display:flex;align-items:center;justify-content:center;color:var(--tx-faint)}
@media(max-width:899px){.arrow{transform:rotate(90deg);padding:8px 0}}
.stage.adv{border-color:color-mix(in srgb,var(--amber) 30%,var(--hair))}
.stage.adv .st-label{color:var(--amber)}
.advrow{display:flex;gap:var(--s2);margin-top:var(--s2)}
.advrow .b{flex:1;text-align:center;padding:8px;border-radius:var(--r-sm);font-size:13px;font-weight:600}
.advrow .bull{background:var(--up-soft);color:var(--up)}
.advrow .bear{background:var(--down-soft);color:var(--down)}
.stage.adv .note{font-size:12px;color:var(--tx-muted);margin-top:var(--s3);line-height:1.4}
.stage.verdict{background:linear-gradient(135deg,var(--brand-soft),transparent 70%),var(--bg-card)}
.stage.verdict .out{display:flex;gap:6px;margin-top:var(--s2);flex-wrap:wrap}
.stage.verdict .o{font-size:11px;font-weight:700;padding:.25em .6em;border-radius:var(--r-pill)}
.o.b{background:var(--up-soft);color:var(--up)}
.o.s{background:var(--down-soft);color:var(--down)}
.o.h{background:var(--hold-soft);color:var(--hold)}
.o.a{background:rgba(124,138,133,.2);color:var(--tx-muted)}
.stage.verdict .note{font-size:12px;color:var(--tx-muted);margin-top:var(--s3);line-height:1.4}
/* safeguards grid */
.safe{margin-top:var(--s16)}
.safe .sec-head{margin-bottom:var(--s6)}
.safe-grid{display:grid;grid-template-columns:1fr;gap:var(--s3)}
@media(min-width:768px){.safe-grid{grid-template-columns:1fr 1fr}}
.scard{padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card)}
.scard .nm{display:flex;align-items:center;gap:10px;font-size:17px;font-weight:600;font-family:var(--f-display);color:var(--tx)}
.scard .nm .ic{width:30px;height:30px;border-radius:50%;background:var(--brand-soft);color:var(--brand);display:inline-flex;align-items:center;justify-content:center;flex:none}
.scard.key{border-color:color-mix(in srgb,var(--brand) 28%,var(--hair));background:linear-gradient(120deg,var(--brand-soft),transparent 70%),var(--bg-card)}
.scard p{margin:var(--s3) 0 0;color:var(--tx-muted);font-size:14.5px;line-height:1.55}
.scard .pcode{font-family:var(--f-mono);font-size:11px;color:var(--brand);margin-left:auto}
/* not-a / disclaimers */
.nots{margin-top:var(--s16);max-width:68ch}
.nots h2{font-size:30px;margin-bottom:var(--s4)}
.notlist{display:grid;gap:var(--s3)}
.notrow{display:flex;gap:var(--s3);align-items:baseline;font-family:var(--f-display);font-size:20px;color:var(--tx);padding:var(--s3) 0;border-bottom:1px solid var(--hair)}
.notrow .x{color:var(--down);font-family:var(--f-sans);font-weight:700;flex:none}
.notrow span.detail{display:block;font-family:var(--f-sans);font-size:14px;color:var(--tx-muted);margin-top:4px}

/* ── trades.html specific ─────────────────────────── */

:root{
  --bg-deep:#07090A;--bg-elev:#0E1214;--bg-card:#14191B;--bg-card-hi:#1E2528;
  --tx:#F6F7F8;--tx-muted:#9BA39E;--tx-faint:#6B736E;
  --hair:rgba(246,247,248,.08);--hair-hi:rgba(246,247,248,.18);
  --up:#00E057;--up-soft:rgba(0,224,87,.16);--down:#FF4D3B;--down-soft:rgba(255,77,59,.14);
  --hold:#F5C44A;--hold-soft:rgba(245,196,74,.16);--abstain:#7C8A85;
  --brand:#38BDF8;--brand-2:#0EA5E9;--amber:#F59E0B;--brand-soft:rgba(56,189,248,.16);--amber-soft:rgba(245,158,11,.16);
  --grad-brand-h:linear-gradient(90deg,#38BDF8 0%,#F59E0B 100%);--calib:var(--brand);
  --f-display:"Crimson Pro",Georgia,ui-serif,serif;--f-sans:"Inter",ui-sans-serif,system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--s10:40px;--s12:48px;--s16:64px;--s20:80px;
  --r-sm:8px;--r-md:12px;--r-lg:18px;--r-pill:999px;
  --sh-card:0 1px 0 var(--hair) inset,0 8px 24px -8px rgba(0,0,0,.55);
  --m-fast:120ms cubic-bezier(.2,.8,.2,1);--m-base:220ms cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;--focus-ring:var(--brand);
}
.wrap{max-width:1180px;margin:0 auto;width:100%;padding:0 var(--s5)}
.topbar-in{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1180px;margin:0 auto;padding:12px 20px}
.linkb{color:var(--brand);font-size:14px;border-bottom:1px solid color-mix(in srgb,var(--brand) 40%,transparent);padding-bottom:1px}
.pill{display:inline-flex;align-items:center;gap:.4em;padding:.3em .75em;border-radius:var(--r-pill);font-weight:700;font-size:12px;line-height:1}
.asof{display:inline-flex;align-items:center;gap:.5em;font-size:13px;color:var(--tx-muted)}
.asof .dot{width:8px;height:8px;border-radius:50%;background:var(--grad-brand-h);box-shadow:0 0 8px rgba(56,189,248,.8)}
/* trades head */
.t-head{margin-top:var(--s12);margin-bottom:var(--s6)}
.t-head h1{font-size:clamp(2.25rem,5vw,3.25rem);line-height:1.0}
.framing{margin-top:var(--s4);font-family:var(--f-display);font-size:20px;font-style:italic;color:var(--tx);max-width:54ch;line-height:1.4}
.framing b{color:var(--brand);font-style:normal;font-weight:600}
/* account band */
.acct{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s3);margin-top:var(--s6)}
@media(max-width:640px){.acct{grid-template-columns:1fr}}
.acard{padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card)}
.acard .val{font-family:var(--f-mono);font-size:36px;line-height:1;margin-top:var(--s3);font-weight:500}
.acard .sub{font-size:12px;color:var(--tx-muted);margin-top:var(--s2)}
.acard.deployed .val{color:var(--tx-muted)}
/* layout below */
.cols{display:grid;gap:var(--s6);margin-top:var(--s10)}
@media(min-width:1024px){.cols{grid-template-columns:1.6fr 1fr}}
.sec h2{font-size:22px;margin-bottom:var(--s4);display:flex;align-items:center;gap:var(--s3)}
.sec h2 .badge{font-family:var(--f-mono);font-size:12px;color:var(--tx-muted);background:var(--bg-card);border:1px solid var(--hair);padding:2px 10px;border-radius:var(--r-pill);font-weight:400}
/* empty-state family */
.empty{text-align:center;padding:var(--s12) var(--s6);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--sh-card)}
.empty .ring{width:60px;height:60px;border-radius:50%;background:var(--brand-soft);display:inline-flex;align-items:center;justify-content:center;color:var(--brand);margin-bottom:var(--s4)}
.empty h3{font-size:26px;margin-bottom:var(--s3)}
.empty p{max-width:46ch;margin:0 auto var(--s5);color:var(--tx-muted);line-height:1.6}
.empty .btn{display:inline-flex;align-items:center;gap:.5em;min-height:44px;padding:.6em 1.1em;border-radius:var(--r-pill);font-size:14px;font-weight:500;border:1px solid var(--hair);color:var(--tx);transition:all var(--m-fast)}
.empty .btn:hover{border-color:var(--brand);background:var(--brand-soft)}
.empty.small{padding:var(--s8) var(--s5)}
.empty.small h3{font-size:20px}
/* risk controls band */
.risk{margin-top:var(--s6);padding:var(--s6);background:linear-gradient(120deg,var(--brand-soft),transparent 60%),var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md)}
.risk h2{font-size:20px;margin-bottom:var(--s4)}
.risk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s3)}
.rc-item{display:flex;gap:var(--s3);align-items:flex-start}
.rc-item .ic{width:32px;height:32px;border-radius:50%;background:var(--bg-deep);display:inline-flex;align-items:center;justify-content:center;color:var(--brand);flex:none;border:1px solid var(--hair)}
.rc-item .t{font-size:14px;font-weight:600;color:var(--tx)}
.rc-item .d{font-size:12.5px;color:var(--tx-muted);line-height:1.4;margin-top:2px}
/* example (dormant) position card — shown small as design reference */
.proto-note{margin-top:var(--s12);padding-top:var(--s6);border-top:1px dashed var(--hair-hi)}
.proto-note .tag{font-family:var(--f-mono);font-size:11px;color:var(--amber);text-transform:uppercase;letter-spacing:.1em}
.poscard{margin-top:var(--s4);padding:var(--s5);background:var(--bg-card);border:1px solid var(--hair);border-radius:var(--r-md);opacity:.85}
.poscard .top{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3)}
.poscard .tk{font-family:var(--f-mono);font-size:20px;font-weight:600}
.poscard .nm{font-size:12px;color:var(--tx-muted)}
.poscard .pnl{text-align:right}
.poscard .pnl .big{font-family:var(--f-mono);font-size:22px;color:var(--up)}
.poscard .pnl .pct{font-family:var(--f-mono);font-size:13px;color:var(--up)}
.poscard .grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s3);margin-top:var(--s4)}
@media(max-width:640px){.poscard .grid{grid-template-columns:1fr 1fr}}
.poscard .cell .l{font-size:11px;color:var(--tx-muted);text-transform:uppercase;letter-spacing:.05em}
.poscard .cell .v{font-family:var(--f-mono);font-size:15px;margin-top:2px}
.poscard .why{margin-top:var(--s4);display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-top:var(--s3);border-top:1px solid var(--hair);flex-wrap:wrap}
.poscard .why .lnk{color:var(--brand);font-size:13px;display:inline-flex;align-items:center;gap:6px}
.poscard .stopchip{font-family:var(--f-mono);font-size:11px;color:var(--down);background:var(--down-soft);padding:.2em .6em;border-radius:var(--r-pill)}