@font-face{font-family:"Archivo";src:url("/fonts/Archivo-Latin1.woff2") format("woff2");font-weight:400 800;font-stretch:75% 100%;font-display:swap}
/* the same file, pulled narrow: headlines and big figures ask for this family and get Archivo at 82% width */
@font-face{font-family:"Archivo Narrow IB";src:url("/fonts/Archivo-Latin1.woff2") format("woff2");font-weight:400 800;font-stretch:82% 82%;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/fonts/IBMPlexMono-Regular-Latin1.woff2") format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Mono";src:url("/fonts/IBMPlexMono-Medium-Latin1.woff2") format("woff2");font-weight:500 700;font-display:swap}
/* the middle dot that separates facts ("97 filings · Oct 5") comes from Plex Mono, which spaces it better */
@font-face{font-family:"IB Sep";src:url("/fonts/IBMPlexMono-Regular-Latin1.woff2") format("woff2");font-weight:400;unicode-range:U+00B7;font-display:swap}
@font-face{font-family:"IB Sep";src:url("/fonts/IBMPlexMono-Medium-Latin1.woff2") format("woff2");font-weight:500 700;unicode-range:U+00B7;font-display:swap}

/* Look: the website's, run as an instrument panel. Paper white, black ink, the beacon orange for the main action,
   the signal score and the thing that just happened; green and red only for up and down. Light by default; Dark
   (true black, no navy) and Match device in Settings and in the footer (theme.js applies the choice before first
   paint). One typeface, Archivo: narrow and heavy for the wordmark, titles and big figures, normal width for the
   interface; IBM Plex Mono only for tickers, times and data, with tabular figures. On laptops a two-column Home
   (the tiles, and the market summary on the right); on phones one column. Trades, people and settings open as sheets. */
:root{
  --band:#000000; --navy:#0E0F12; --navy-2:#1A1C21; --navy-3:#26292F; --on-navy-2:#D5D8DE; --on-navy-3:#9AA0AA; /* old names, still used by area stylesheets */
  --beacon:#B8F25B; --beacon-hi:#A9E848; --on-beacon:#0A2B21;
  --mint:#B8F25B; --mint-hover:#A9E848; --on-mint:#0A2B21;
  --paper:#FFFFFF; --surface:#FFFFFF; --surface-2:#F3F4F6; --raise:#FFFFFF;
  --ink:#000000; --ink-2:#262A31; --muted:#5F6672; --line:#D9DCE2; --line-2:#B8BDC7; --hair:rgba(0,0,0,.08);
  --accent:#4D9A12; --accent-ink:#FFFFFF; --accent-soft:#EEF9DA; --accent-text:#3F7A0C; --focus:#000000;
  --link:#000000; --info:#000000; --info-soft:#F3F4F6; --info-text:#000000;
  --btn:#B8F25B; --btn-ink:#0A2B21; --btn-hover:#A9E848;
  --sel:#000000; --sel-ink:#FFFFFF; --chip:#F3F4F6; --chip-ink:#000000;
  --track:#E6E8EC; --star:#C98A00;
  --sel-count-bg:rgba(255,255,255,.18); --sel-count-ink:#FFFFFF;
  --amber:#8A5A00; --amber-soft:#FBF1DC; --late:#B42318; --late-soft:#FCE8E9;
  --danger:#C0302A; --danger-ink:#FFFFFF;
  --up:#0A7A48; --up-soft:#E3F3EA; --up-text:#0A7A48; --down:#C0302A;
  --b1:#000000; --b2:#B8BDC7; --grid:#ECEEF1; --axis:#B8BDC7;
  --veil:rgba(0,0,0,.45); --tip:#000000; --tip-ink:#FFFFFF;
  --c1:#0A7A48; --c2:#2F55D4;
  --shadow:0 0 0 1px var(--line);
  --shadow-lift:0 0 0 1px var(--line-2),0 16px 40px -20px rgba(0,0,0,.3);
  --page-glow:linear-gradient(transparent,transparent);
  --hd-bg:#FFFFFF; --hd-ink:#000000; --hd-dim:#5F6672; --hd-line:#D9DCE2; --hd-soft:#F3F4F6;
  --search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235F6672' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%235F6672' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  color-scheme:light;
  --f-display:"Archivo Narrow IB","Archivo",ui-sans-serif,system-ui,sans-serif;
  --f-head:"IB Sep","Archivo",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-body:"IB Sep","Archivo",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --r:12px; --gutter:16px;
}
@media (min-width:720px){:root{--gutter:28px}}
/* dark: chosen in Settings, or the device's choice under Match device */
:root[data-theme="dark"]{--paper:#000000; --surface:#0E0F12; --surface-2:#1A1C21; --raise:#1A1C21;
  --ink:#FFFFFF; --ink-2:#D5D8DE; --muted:#9AA0AA; --line:#26292F; --line-2:#3A3E46; --hair:rgba(255,255,255,.1);
  --accent:#B8F25B; --accent-soft:rgba(184,242,91,.14); --accent-text:#C8F77A; --focus:#FFFFFF;
  --link:#FFFFFF; --info:#FFFFFF; --info-soft:#1A1C21; --info-text:#FFFFFF;
  --sel:#FFFFFF; --sel-ink:#000000; --chip:#1A1C21; --chip-ink:#FFFFFF;
  --track:#2A2C33; --star:#FFC266;
  --sel-count-bg:rgba(0,0,0,.12); --sel-count-ink:#000000;
  --amber:#FFC266; --amber-soft:rgba(255,194,102,.13); --late:#FF8F94; --late-soft:rgba(255,125,131,.14);
  --danger:#FF6B72; --danger-ink:#1A0507;
  --up:#3DD598; --up-soft:rgba(61,213,152,.14); --up-text:#5BE3AB; --down:#FF7D83;
  --b1:#FFFFFF; --b2:#3A3E46; --grid:#1A1C21; --axis:#3A3E46;
  --veil:rgba(0,0,0,.7); --tip:#FFFFFF; --tip-ink:#000000;
  --c1:#3DD598; --c2:#93AAFF;
  --shadow:0 0 0 1px var(--line);
  --shadow-lift:0 0 0 1px var(--line-2),0 16px 40px -20px rgba(0,0,0,.8);
  --hd-bg:#000000; --hd-ink:#FFFFFF; --hd-dim:#9AA0AA; --hd-line:#26292F; --hd-soft:#1A1C21;
  --search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239AA0AA' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%239AA0AA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  color-scheme:dark}
@media (prefers-color-scheme:dark){:root[data-theme="system"]{--paper:#000000; --surface:#0E0F12; --surface-2:#1A1C21; --raise:#1A1C21;
  --ink:#FFFFFF; --ink-2:#D5D8DE; --muted:#9AA0AA; --line:#26292F; --line-2:#3A3E46; --hair:rgba(255,255,255,.1);
  --accent:#B8F25B; --accent-soft:rgba(184,242,91,.14); --accent-text:#C8F77A; --focus:#FFFFFF;
  --link:#FFFFFF; --info:#FFFFFF; --info-soft:#1A1C21; --info-text:#FFFFFF;
  --sel:#FFFFFF; --sel-ink:#000000; --chip:#1A1C21; --chip-ink:#FFFFFF;
  --track:#2A2C33; --star:#FFC266;
  --sel-count-bg:rgba(0,0,0,.12); --sel-count-ink:#000000;
  --amber:#FFC266; --amber-soft:rgba(255,194,102,.13); --late:#FF8F94; --late-soft:rgba(255,125,131,.14);
  --danger:#FF6B72; --danger-ink:#1A0507;
  --up:#3DD598; --up-soft:rgba(61,213,152,.14); --up-text:#5BE3AB; --down:#FF7D83;
  --b1:#FFFFFF; --b2:#3A3E46; --grid:#1A1C21; --axis:#3A3E46;
  --veil:rgba(0,0,0,.7); --tip:#FFFFFF; --tip-ink:#000000;
  --c1:#3DD598; --c2:#93AAFF;
  --shadow:0 0 0 1px var(--line);
  --shadow-lift:0 0 0 1px var(--line-2),0 16px 40px -20px rgba(0,0,0,.8);
  --hd-bg:#000000; --hd-ink:#FFFFFF; --hd-dim:#9AA0AA; --hd-line:#26292F; --hd-soft:#1A1C21;
  --search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239AA0AA' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
  --chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 6l4 4 4-4' fill='none' stroke='%239AA0AA' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  color-scheme:dark}}

/* ---- base ---- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page-glow) no-repeat,var(--paper);color:var(--ink);font:400 16px/1.5 var(--f-body);font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
::selection{background:rgba(184,242,91,.45)}
[hidden]{display:none!important}
button{font:inherit;color:inherit;cursor:pointer}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
a{color:var(--link)}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
h2,h3{text-wrap:balance}
.pos{color:var(--up)} .neg{color:var(--down)}
.pos b,.neg b{color:inherit!important}
.blur{filter:blur(4px);user-select:none}

/* ---- header band ---- */
header.top{position:relative;z-index:16;color:var(--hd-ink);background:var(--hd-bg);border-bottom:1px solid var(--hd-line)} /* above the page, so the phone section bar (fixed, inside it) is too */
.top-in{max-width:1400px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:14px 24px;padding-block:12px;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
.brand{min-width:0;flex:1 1 0;display:flex;align-items:center}
.brand h1{margin:0;font:700 19px/1 var(--f-body);letter-spacing:-.02em;color:var(--hd-ink)}
.home-link{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;border-radius:10px}
.brand h1 .logo{width:30px;height:30px;flex:none;border-radius:8px}
/* the live line: how fresh the feed is, at the top of every view */
.live{justify-self:start;display:inline-flex;align-items:center;gap:9px;font-size:13.5px;line-height:1.35;color:var(--muted);max-width:100%}
.live i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--up)}
@media (prefers-reduced-motion:no-preference){.live:not(.stale) i{animation:live 2.6s ease-out infinite}}
@keyframes live{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--up) 55%,transparent)}75%,100%{box-shadow:0 0 0 7px transparent}}
.live.stale i{background:var(--muted);box-shadow:none}
.live span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:899px){.upsell{padding:12px 14px;gap:10px}.upsell p{font-size:14px}.upsell .btn{padding:8px 14px;font-size:14px}}
.hdr-actions{flex:1 1 0;display:flex;align-items:center;justify-content:flex-end;gap:8px}
.iconbtn{position:relative;border:1px solid var(--hd-line);background:transparent;border-radius:8px;width:40px;height:40px;display:grid;place-items:center;transition:background-color .15s,border-color .15s}
.iconbtn:hover{background:var(--hd-soft);border-color:var(--line-2)}
.iconbtn svg{width:19px;height:19px;stroke:var(--hd-ink);fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.badge{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;border-radius:6px;background:var(--beacon);color:var(--on-beacon);font:600 11px/18px var(--f-mono);font-variant-numeric:tabular-nums;text-align:center;padding:0 5px;box-shadow:0 0 0 2px var(--hd-bg)}
.acct{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;flex:none;border:1px solid transparent;background:var(--beacon);color:var(--on-beacon);border-radius:8px;height:40px;padding:0 15px 0 12px;font-size:15px;font-weight:600;transition:background-color .15s,border-color .15s}
.acct:hover{background:var(--beacon-hi)}
.acct.in{background:transparent;color:var(--hd-ink);border-color:var(--hd-line)}
.acct.in:hover{background:var(--hd-soft)}
.acct.pro{color:var(--hd-ink)}
.acct svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.seg{display:inline-flex;border-radius:8px;padding:3px;background:var(--surface-2);gap:2px}
.seg button{border:0;background:transparent;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:600;color:var(--muted);transition:color .15s,background-color .15s}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{background:var(--sel);color:var(--sel-ink)}
@media (max-width:560px){.brand h1{font-size:19px}.brand h1 .logo{width:30px;height:30px}.acct{height:40px;padding:0 14px 0 11px;font-size:14px}.iconbtn{width:40px;height:40px}}
@media (max-width:420px){.brand h1 .home-link{font-size:0;gap:0}.brand h1 .logo{width:34px;height:34px}}

/* ---- the five sections: in the header on computers, along the bottom on phones ---- */
nav.sections{flex:none;display:flex;gap:2px}
nav.sections button{position:relative;border:0;background:none;display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:8px;color:var(--hd-dim);font:500 15px/1 var(--f-body);transition:color .15s,background-color .15s}
nav.sections svg{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
nav.sections button:hover{color:var(--hd-ink);background:var(--hd-soft)}
nav.sections button[aria-current]{color:var(--hd-ink);font-weight:600}
nav.sections button[aria-current]::after{content:"";position:absolute;left:12px;right:12px;bottom:2px;height:2px;background:var(--accent)}
@media (max-width:899px){
  nav.sections{position:fixed;z-index:15;left:0;right:0;bottom:0;border-radius:0;gap:0;justify-content:space-around;padding:6px max(6px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(6px,env(safe-area-inset-left,0px));
    background:var(--hd-bg);border-top:1px solid var(--hd-line)}
  nav.sections button{flex:1 1 0;flex-direction:column;gap:5px;padding:7px 2px 6px;font-size:11.5px;letter-spacing:.01em;border-radius:12px}
  nav.sections svg{width:22px;height:22px}
  nav.sections button[aria-current]::after{display:none}
  nav.sections button[aria-current]::before{content:"";position:absolute;top:-7px;left:50%;width:22px;height:3px;margin-left:-11px;border-radius:0 0 3px 3px;background:var(--accent)}
  body{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}
  .toast{bottom:calc(84px + env(safe-area-inset-bottom,0px))}
}

/* ---- page layout: one column on phones, feed + summary side by side on laptops ---- */
.wrap{max-width:1400px;margin:0 auto;display:grid;gap:18px;grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side" "foot";padding-block:20px 48px;padding-left:max(var(--gutter),env(safe-area-inset-left,0px));padding-right:max(var(--gutter),env(safe-area-inset-right,0px))}
.side{grid-area:side;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-content:start;min-width:0}
.main{grid-area:main;display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-content:start;min-width:0}
.wrap>footer{grid-area:foot}
/* the market summary (four figures and the 90-day chart) belongs to Home, under the tiles; on laptops side by side */
.wrap:not(.tab-home) .side{display:none}
@media (min-width:1000px){.wrap.tab-home .side{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:16px;align-items:stretch}.wrap.tab-home .side .card{align-content:space-between}}
@media (min-width:1180px){.wrap{padding-top:26px}}

/* ---- summary: stats tiles and the 90-day chart ---- */
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (min-width:760px) and (max-width:1179px){.stats{grid-template-columns:repeat(4,minmax(0,1fr))}}
.stat{background:var(--surface);border-radius:var(--r);padding:16px 18px;display:grid;gap:4px;align-content:start;min-width:0;box-shadow:var(--shadow)}
.stat span{font:500 13px/1.35 var(--f-body);color:var(--muted)}
.stat b{font:700 28px/1.1 var(--f-display);letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat em{font-style:normal;font-size:13px;line-height:1.4;color:var(--muted)}
@media (max-width:560px){.stat{padding:12px 14px}.stat span{font-size:12px}.stat b{font-size:22px}.stat em{font-size:12px}}
.card{background:var(--surface);border-radius:var(--r);padding:18px 20px;display:grid;gap:12px;min-width:0;align-content:start;box-shadow:var(--shadow)}
.chart-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px}
.chart-head h2,.chart-head h3{margin:0;font:650 18px/1.25 var(--f-head);letter-spacing:-.015em}
.chart-head .sub{font-size:13px;color:var(--muted)}
.chart{position:relative;min-height:60px;width:100%}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart text{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:10.5px;font-weight:400;fill:var(--muted)}
.chart .lbl{fill:var(--ink);font-weight:600;paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
.chart .grid{stroke:var(--grid);stroke-width:1}
.chart .axis{stroke:var(--axis);stroke-width:1}
.chart [data-tip]{cursor:default}
.chart [data-tip]:hover{opacity:.8}
.legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}
.legend i.ln{height:3px;border-radius:2px}
.tip{position:fixed;z-index:60;pointer-events:none;background:var(--tip);color:var(--tip-ink);border-radius:10px;padding:8px 11px;font-size:13px;line-height:1.4;white-space:pre-line;max-width:270px;box-shadow:0 0 0 1px var(--hair),0 14px 30px -10px rgba(0,0,0,.55)}
.tip b{font-family:var(--f-mono)}
.chart-note{font-size:13px;color:var(--muted);margin:0}

/* ---- tabs and filters ---- */
.sec-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;min-width:0}
.sec-head h2{margin:0;font:700 clamp(26px,3vw,32px)/1.05 var(--f-display);letter-spacing:-.025em}
.sec-head.one nav.tabs{display:none}
nav.tabs{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
nav.tabs button{flex:none;border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:999px;font:500 14.5px/1.1 var(--f-body);color:var(--ink-2);white-space:nowrap;display:flex;gap:7px;align-items:center;transition:color .15s,background-color .15s,border-color .15s}
nav.tabs button:hover{color:var(--ink);border-color:var(--line-2)}
nav.tabs button[aria-selected="true"]{background:var(--sel);border-color:var(--sel);color:var(--sel-ink);font-weight:600}
nav.tabs .new{display:none}
.count{font:500 11px/1 var(--f-mono);font-variant-numeric:tabular-nums;background:var(--surface-2);color:var(--ink-2);padding:4px 6px;border-radius:6px}
nav.tabs button[aria-selected="true"] .count{background:var(--sel-count-bg);color:var(--sel-count-ink)}
nav.tabs button[aria-selected="true"] .new{background:var(--beacon);color:var(--on-beacon)}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0}
.filters input[type=search],.filters select,.ctl{background-color:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:9px 14px;font:inherit;font-size:15px;line-height:1.3;color:var(--ink)}
.filters select{padding-block:7px;font-size:14px;font-weight:600}
.filters input[type=search]{flex:1 1 100%;min-width:0;padding-left:42px;background-image:var(--search);background-repeat:no-repeat;background-position:15px center;background-size:18px}
.filters select,select.ctl{-webkit-appearance:none;appearance:none;background-image:var(--chev);background-repeat:no-repeat;background-position:right 14px center;background-size:15px;padding-right:38px}
.filters input:focus,.filters select:focus,.ctl:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.chiprow{flex:1 1 100%;min-width:0;display:flex;flex-wrap:wrap;gap:8px;align-items:center}
@media (max-width:720px){.chiprow{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1 * var(--gutter));padding:2px var(--gutter)}.chiprow::-webkit-scrollbar{display:none}.chiprow>*{flex:none}}
.chip{border:1px solid var(--line-2);background:transparent;border-radius:999px;padding:7px 13px;font-size:14px;font-weight:500;line-height:1.3;color:var(--ink);transition:border-color .15s,background-color .15s,color .15s}
.chip:hover{border-color:var(--muted);background:var(--surface)}
.chip[aria-pressed="true"]{background:var(--sel);border-color:var(--sel);color:var(--sel-ink)}
.lk{display:inline-block;margin-left:6px;padding:3px 7px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font:600 11px/1 var(--f-body);vertical-align:1px}
.hint{font-size:15px;color:var(--muted);margin:0}
.hint:empty,#upsellSlot:empty{display:none} /* an empty row would still take a gap in the grid */
.wrap.tab-sig .stamp{font-size:12.5px}
.hint b{color:var(--ink)}
.stamp{margin:6px 0 0;font:400 13px/1.5 var(--f-body);color:var(--muted)}
.stamp b{font-weight:600}.stamp b.delayed{color:var(--warn,#FFC266)}.stamp b.down{color:var(--down)}.stamp a{color:inherit}
.speed{color:var(--muted)}.tbl.speed{min-width:0;table-layout:fixed}.tbl.speed th,.tbl.speed td{white-space:normal;text-align:left;vertical-align:top}.tbl.speed th:first-child{width:38%}.tbl.speed td b{font-family:var(--f-display);font-size:15px}.tbl.speed .dim{color:var(--muted);font-size:12.5px}
@media (max-width:640px){.tbl.speed th:first-child{width:34%}.tbl.speed th,.tbl.speed td{padding:10px 8px}}

/* ---- lists: the feed is a grid of cards ---- */
#view{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-content:start;min-width:0}
.list{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.feed{grid-template-columns:repeat(auto-fill,minmax(min(100%,340px),1fr));gap:16px}
.plist{grid-template-columns:repeat(auto-fill,minmax(min(100%,360px),1fr))}
.cgrid{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:16px}
.feed>.empty,.feed>.more,.plist>.empty,.plist>.more,.cgrid>.callout,.cgrid>.empty{grid-column:1/-1}
.slip{position:relative;background:var(--surface);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;min-width:0}
.slip-top{display:flex;align-items:center;gap:8px;min-width:0}
button.tklink{flex:1 1 auto;border:0;background:none;padding:0;text-align:left;display:flex;gap:10px;align-items:center;min-width:0}
button.tklink:hover .co{text-decoration:underline}
.tk{flex:none;display:inline-flex;align-items:center;gap:7px;font:600 13.5px/1 var(--f-mono);letter-spacing:.02em;background:var(--chip);color:var(--chip-ink);padding:6px 9px 6px 6px;border-radius:6px}
.tk:not(:has(.tklogo)){padding-left:9px}
/* a company's logo (app.js tkLogo): the logo on white, or a letter tile in the ticker's own colour when there's none */
.tklogo{position:relative;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:5px;flex:none;overflow:hidden;background:#fff;vertical-align:middle}
.tklogo>b{font:700 11px/1 var(--f-mono);letter-spacing:0;color:#fff;opacity:0}
.tklogo.letter{background:hsl(var(--h,20) 52% 36%)}
.tklogo.letter>b{opacity:1}
.tklogo img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}
.tklogo.glyph{background:var(--surface-2);color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line)}
.tklogo.glyph svg{width:70%;height:70%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.title-logo .tklogo{width:30px;height:30px;border-radius:7px;margin:-4px 10px 0 0}
.title-logo .tklogo>b{font-size:14px}
td>.tklogo,.sl-meta .tklogo{margin-right:8px;width:20px;height:20px}
.co{color:var(--muted);font-size:14px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.star{flex:none;border:0;background:none;padding:4px;font-size:20px;line-height:1;color:var(--muted)}
.star[aria-pressed="true"]{color:var(--star)}
.score{flex:none;position:relative;width:50px;height:50px;display:grid;place-items:center;border:0;background:none;padding:0;color:var(--ink)}
.score svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.score circle{fill:none;stroke-width:5}
.score .trk{stroke:var(--track)}
.score .val{stroke:var(--accent);stroke-linecap:round}
.score b{position:relative;font:700 15px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.score .lk{position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);margin:0}
.score svg.lock{position:relative;inset:auto;width:18px;height:18px;transform:none;fill:none;stroke:var(--muted);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ins{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:17px;font-weight:600;line-height:1.3}
.role{font:500 13px/1.3 var(--f-body);padding:0;border-radius:0;background:none;color:var(--muted)}
.role.c{background:none;color:var(--ink-2)}
.follow{border:1px solid var(--line-2);background:transparent;border-radius:8px;padding:4px 10px;font-size:13px;font-weight:600;line-height:1.3;color:var(--ink);transition:border-color .15s,background-color .15s,color .15s}
.follow:hover{border-color:var(--muted)}
.follow[aria-pressed="true"]{background:var(--sel);border-color:var(--sel);color:var(--sel-ink)}
.money{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.money b{font:700 26px/1 var(--f-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;margin-right:2px}
.own{font:500 12.5px/1.3 var(--f-body);padding:4px 8px;border-radius:5px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.own.up{background:var(--up-soft);color:var(--up-text)}
.qty{margin:0;font-size:14px;line-height:1.45;color:var(--muted)}
.take{margin:2px 0 0;font-size:14.5px;line-height:1.5;color:var(--ink);padding-left:10px;border-left:2px solid var(--accent)}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font:500 12.5px/1.3 var(--f-body);padding:4px 8px;border-radius:5px}
/* the cluster count as a ticket stub: mono capitals, cut corners, the same shape as the share cards' side tag */
.tag.cl{font:600 12px/1.3 var(--f-body);letter-spacing:0;padding:4px 10px;border-radius:999px;clip-path:none!important;background:var(--amber-soft);color:var(--amber);clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.tag.late{background:var(--late-soft);color:var(--late)}
.tag.fund{background:var(--surface-2);color:var(--muted)}
.tag.res{background:var(--info-soft);color:var(--info-text)}
.tag.plan{background:var(--surface-2);color:var(--amber);display:inline;padding:4px 8px;border:0;border-radius:6px} /* a pill, not the paywall's .plan buttons */
.meta{position:relative;margin-top:auto;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;justify-content:flex-start;border-top:1px solid var(--line);padding-top:10px;font-size:14px;color:var(--muted)}
.meta>a{margin-left:auto} /* Form 4 and More sit on the right, the main action on the left */
.meta a{color:var(--link);text-decoration:none;font-weight:600;font-size:14px}
.meta a:hover{text-decoration:underline}
/* "More" on a card: the card's other links (public page, paper trade, chart, share...) in a small menu */
details.more-x{flex:none}
details.more-x>summary{list-style:none;cursor:pointer;width:34px;height:30px;display:grid;place-items:center;border-radius:9px;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-2);transition:color .15s,background-color .15s}
details.more-x>summary::-webkit-details-marker{display:none}
details.more-x>summary svg{width:18px;height:18px;fill:currentColor}
details.more-x>summary:hover,details.more-x[open]>summary{color:var(--ink);background:var(--surface-2)}
.meta .meta-x{position:absolute;z-index:6;right:0;bottom:calc(100% - 4px);min-width:190px;display:grid;gap:2px;padding:6px;border-radius:10px;background:var(--raise);box-shadow:var(--shadow-lift)}
.meta .meta-x>a,.meta .meta-x>button{display:block;width:100%;text-align:left;border:0;background:none;font-size:14px;line-height:1.3;padding:9px 11px;margin:0;border-radius:9px;color:var(--ink);font-weight:600;text-decoration:none;white-space:nowrap}
.meta .meta-x>a:hover,.meta .meta-x>button:hover{background:var(--surface-2);color:var(--ink)}
.links{margin-left:auto;display:flex;gap:14px;align-items:center}
.links a{color:var(--link);text-decoration:none;font-weight:600;font-size:14px}
.links a:hover{text-decoration:underline}
.ai{border:1px solid var(--line-2);background:transparent;color:var(--ink);font-weight:600;font-size:14px;line-height:1.2;padding:7px 12px;border-radius:8px;transition:background-color .15s,border-color .15s}
.ai:hover{background:var(--surface-2);border-color:var(--ink)}
.slip.locked>:not(.unlock){filter:blur(5px);user-select:none;pointer-events:none}
.unlock{position:absolute;inset:0;z-index:1;display:grid;place-items:center;background:transparent;border:0;border-radius:inherit}
.unlock span{background:var(--btn);color:var(--btn-ink);font-size:14px;font-weight:600;padding:10px 16px;border-radius:8px}
.more{justify-self:center}

/* clusters and people */
.cluster,.person{background:var(--surface);border-radius:var(--r);padding:18px 20px;display:grid;gap:12px;position:relative;min-width:0;box-shadow:var(--shadow);align-content:start}
.cluster h3,.person h3{margin:0;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-weight:500;font-size:15px;color:var(--muted)}
.sum{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:14px;color:var(--muted)}
.sum b{font:700 18px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.mini{margin:0;padding:0;list-style:none;display:grid;gap:6px;font-size:14px}
.mini li{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding-top:6px}
.mini li span:last-child{font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.cluster.locked>*:not(.unlock){filter:blur(5px);user-select:none}
.sec-h{font:700 20px/1.2 var(--f-display);letter-spacing:-.02em;margin:10px 0 0}
.prow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;background:var(--surface);border-radius:16px;padding:14px 18px;box-shadow:var(--shadow);align-content:start}
.prow .nm{border:0;background:none;padding:0;text-align:left;font-weight:700;font-size:16px;color:var(--ink)}
.prow .nm:hover{text-decoration:underline}
.prow .rl{font-size:13px;color:var(--muted);grid-column:1}
.prow .st{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted)}
.prow .st b{font-family:var(--f-mono);font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}
.prow .right{grid-row:1/3;grid-column:2;display:flex;align-items:center;gap:10px}

/* backtest */
.presets{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:thin}
.presets .chip{white-space:nowrap}
.custom{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.custom label{display:grid;gap:6px;font-size:13px;color:var(--muted);font-weight:600}
.custom select{width:100%}
.custom.locked{opacity:.55}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kpi{background:var(--surface);border-radius:var(--r);padding:16px 18px;display:grid;gap:4px;min-width:0;box-shadow:var(--shadow)}
.kpi span{font:500 13px/1.35 var(--f-body);color:var(--muted)}
.kpi b{font:700 26px/1.1 var(--f-display);letter-spacing:-.025em;font-variant-numeric:tabular-nums}
.kpi em{font-style:normal;font-size:13px;color:var(--muted)}
@media (max-width:620px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
@media (max-width:760px){.two{grid-template-columns:minmax(0,1fr)}}
.tblwrap{overflow-x:auto;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}
.tbl{border-collapse:collapse;width:100%;min-width:600px;font-size:14px}
.tbl th,.tbl td{padding:11px 14px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl th{font:500 12.5px/1.3 var(--f-body);color:var(--muted);background:var(--surface-2)}
.tbl td{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-weight:400}
.tbl td:first-child{font-family:var(--f-body)}
.tbl tr:last-child td{border-bottom:0}
.tbl tr.cur td{background:var(--accent-soft)}
.tbl button{border:0;background:none;padding:0;font:inherit;color:var(--link);font-weight:600;text-align:left}
.callout{background:var(--amber-soft);border-radius:14px;padding:14px 18px;font-size:15px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--amber) 22%,transparent)}
.callout b{font-weight:700}

.empty{background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r);padding:30px 28px;text-align:center;color:var(--muted);font-size:15px}
.empty b{display:block;color:var(--ink);font:700 18px/1.3 var(--f-display);letter-spacing:-.02em;margin-bottom:6px}
.upsell{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--surface-2);color:var(--ink);border-left:4px solid var(--accent);border-radius:0 var(--r) var(--r) 0;padding:14px 18px}
.upsell p{margin:0;font-size:15px;min-width:0;flex:1 1 240px;color:var(--ink-2)}
.upsell p b{color:var(--ink)}
.upsell .btn{background:var(--beacon);color:var(--on-beacon)}
.upsell .btn:hover{background:var(--beacon-hi)}
/* early access: the account sheet's card and the paywall sheet in its early-access version */
.ea-card{margin:14px 0 6px;padding:14px 16px 15px;border-radius:14px;background:var(--accent-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent)}
.ea-card p{margin:6px 0 0;font-size:14.5px;line-height:1.5}
.ea-card p b{color:var(--ink)}
.ea-card .fine{margin-top:8px;font-size:13px;color:var(--muted)}
.ea-k{display:flex;align-items:center;gap:8px;margin:0!important;font:600 13px/1 var(--f-body)!important;color:var(--accent-text)}
.ea-k i{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
#paySheet.early .feat li.h span:last-child{color:var(--accent-text)}
.btn{border:1px solid transparent;border-radius:8px;padding:10px 18px;font-weight:600;font-size:15px;line-height:1.2;background:var(--btn);color:var(--btn-ink);transition:background-color .15s,border-color .15s,transform .12s}
.btn:hover{background:var(--btn-hover)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--ink)}
.btn.ghost:hover{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--muted)}
.btn.danger{background:var(--danger);color:var(--danger-ink);box-shadow:none}
.btn:disabled{cursor:default;transform:none;background:var(--surface-2);color:var(--muted);box-shadow:inset 0 0 0 1px var(--hair)}
.btn.ghost:disabled{background:transparent;opacity:.55}

/* ---- sheets ---- */
.veil{position:fixed;inset:0;background:var(--veil);z-index:20;-webkit-backdrop-filter:blur(6px) saturate(1.1);backdrop-filter:blur(6px) saturate(1.1)}
.sheet{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:1000px;z-index:21;background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(22px) saturate(1.4);backdrop-filter:blur(22px) saturate(1.4);border-radius:24px 24px 0 0;max-height:92%;overflow:auto;padding-top:22px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));overscroll-behavior:contain;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 1px var(--hair),0 -30px 80px -30px rgba(0,0,0,.65)}
.sheet-in{max-width:900px;margin:0 auto;display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.sheet h2{font:700 clamp(21px,3vw,26px)/1.12 var(--f-display);letter-spacing:-.02em;margin:0}
.sheet .why{margin:0;color:var(--muted);font-size:15px}
.sheet-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.sheet-top h2 span{font-family:var(--f-body);letter-spacing:-.005em}
.x{border:0;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hair);border-radius:10px;width:36px;height:36px;font-size:20px;line-height:1;flex:none;color:var(--ink)}
.x:hover{background:var(--line-2)}
.plans{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.soon .plans{display:none}
.plan{border:1.5px solid var(--line-2);border-radius:14px;padding:14px 16px;text-align:left;background:var(--surface);display:grid;gap:2px}
.plan[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.plan b{font:700 24px/1.1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.plan small{color:var(--muted);font-size:13px}
.plan .save{font:600 12.5px/1.4 var(--f-body);color:var(--accent-text)}
.feat{margin:0;padding:0;list-style:none;font-size:15px}
.feat li{display:grid;grid-template-columns:1fr 76px 76px;gap:8px;padding:9px 0;border-bottom:1px solid var(--line);align-items:center}
.feat li.h{font:600 13px/1.3 var(--f-body);color:var(--muted)}
.feat li span:nth-child(n+2){text-align:center;font-size:13px}
.feat .y{color:var(--accent-text);font-weight:600}
.fine{font-size:13px;color:var(--muted);margin:0}
.row{display:flex;gap:8px;flex-wrap:wrap}
.row .btn{flex:1}
.toggles{display:grid;border-top:1px solid var(--line)}
.tg{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.tg b{font-size:16px;font-weight:700;display:block}
.tg small{color:var(--muted);font-size:14px;display:block;line-height:1.45}
.sw{position:relative;width:46px;height:28px;border-radius:14px;border:0;background:var(--line-2);padding:0;flex:none;transition:background-color .15s}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:left .18s cubic-bezier(.3,.7,.2,1)}
.sw[aria-checked="true"]{background:var(--accent)}
.sw[aria-checked="true"]::after{left:21px}
.sw:disabled{opacity:.45}
.inbox{margin:0;padding:0;list-style:none;display:grid}
.inbox li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;padding:14px 0;border-bottom:1px solid var(--line)}
.inbox .dot{width:9px;height:9px;border-radius:50%;margin-top:7px;background:transparent}
.inbox .unread .dot{background:var(--accent)}
.inbox p{margin:0;font-size:15px}
.inbox small{color:var(--muted);font-size:13px}
.why-tag{font:600 12.5px/1.4 var(--f-body);color:var(--accent-text)}
.why-tag.h{color:var(--late)}

/* insider sales: an addition to the buys, marked in the app's down colour and kept quieter */
.why-tag.sold,.sale-list .sold{color:var(--down)}
.sale-scroll{overflow-x:auto;margin-inline:-2px}
.tbl.sales{min-width:0}
.tbl.sales th,.tbl.sales td{padding:9px 8px}
.tbl.sales th:first-child,.tbl.sales td:first-child{padding-left:0}
.tbl.sales th:last-child,.tbl.sales td:last-child{padding-right:0}
.tbl.sales th{background:none;white-space:normal;vertical-align:bottom}
.tbl.sales td a{color:var(--ink);font-weight:600;text-decoration:none}
.tbl.sales td a:hover{text-decoration:underline}
.tbl.sales .tag{font-size:11px;padding:3px 8px}
.sale-list{margin:0;padding:0;list-style:none;display:grid}
.sale-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:6px 14px;padding:10px 0;border-top:1px solid var(--line)}
.sale-list li:first-child{border-top:0;padding-top:0}
.sale-list .sl-who{min-width:0;display:grid;justify-items:start;gap:2px}
.sale-list .sl-meta .tag{font-size:11px;padding:2px 8px;margin-left:4px;white-space:nowrap}
.sale-list .linkbtn{color:var(--ink);text-decoration:none;font-size:15px;text-align:left}
.sale-list .linkbtn:hover{text-decoration:underline}
.sale-list .sl-meta{font-size:13px;color:var(--muted)}
.sale-list .sold{font-weight:700}
.sale-list .sl-v{flex:none;display:grid;justify-items:end;gap:1px;text-align:right}
.sale-list .sl-v b{font:700 16px/1.25 var(--f-head);font-variant-numeric:tabular-nums}
.sale-list .sl-v small{font-size:12px;color:var(--muted)}
.sales-card .more{justify-self:start}

/* trade and person sheets */
.head-card{border-radius:14px;padding:14px 16px;display:grid;gap:8px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hair)}
.tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.tiles div{background:var(--surface-2);border-radius:12px;padding:11px 12px;box-shadow:inset 0 0 0 1px var(--hair);display:grid;gap:2px;min-width:0}
.tiles span{font:500 12.5px/1.35 var(--f-body);color:var(--muted)}
.tiles b{font:700 17px/1.2 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
@media (max-width:520px){.tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.section-t{font:700 17px/1.25 var(--f-display);letter-spacing:-.02em;margin:8px 0 -4px}
.notes{margin:0;padding:0;list-style:none;display:grid;gap:10px;font-size:15px}
.notes a{color:var(--link);font-weight:600}
.notes small{color:var(--muted)}
.ai-box{border:1px solid var(--line-2);border-radius:var(--r);padding:18px;display:grid;gap:12px;background:linear-gradient(180deg,var(--info-soft),transparent 120px)}
.ai-out{font-size:16px;line-height:1.6;min-height:2em}
.ai-out h4{font:650 17px/1.3 var(--f-head);margin:16px 0 4px}
.ai-out h4:first-child{margin-top:0}
.ai-out h4.strong{color:var(--up)} .ai-out h4.weak{color:var(--down)} .ai-out h4.moderate{color:var(--amber)}
.ai-out p{margin:0 0 10px}
.ai-out ul{margin:0 0 10px;padding-left:20px}
.ai-out .q{font-weight:700;color:var(--muted);font-size:14px;margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.ask{display:flex;gap:8px}
.ask input{flex:1;min-width:0;background:var(--paper);border:1px solid var(--line-2);border-radius:12px;padding:11px 16px;font:inherit;color:var(--ink)}
.thinking{color:var(--muted);font-style:italic}
.ptrades{width:100%}

.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:30;background:var(--tip);color:var(--tip-ink);padding:11px 18px;border-radius:12px;font-size:14px;font-weight:600;max-width:calc(100% - 32px);text-align:center;box-shadow:0 0 0 1px var(--hair),0 16px 34px -12px rgba(0,0,0,.6)}
footer{font-size:13px;color:var(--muted);display:grid;gap:8px;border-top:1px solid var(--line);padding-top:16px}
footer p{margin:0;max-width:80ch}
footer details.about-data{display:grid;gap:6px}
footer details.about-data>summary{cursor:pointer;font-weight:600;color:var(--ink-2);width:max-content}
footer details.about-data[open]>summary{margin-bottom:6px}
footer details.about-data p+p{margin-top:6px}
/* Appearance: in Settings and at the foot of the page */
.appearance{display:grid;gap:8px;justify-items:start}
.theme-seg button{padding:7px 14px}
footer .foot-theme{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px}
footer .foot-theme>span{font:500 13px/1 var(--f-body);color:var(--muted)}
@media (max-width:480px){.money b{font-size:27px}.slip{padding:16px 16px}}
@media (prefers-reduced-motion:no-preference){.sheet{animation:up .32s cubic-bezier(.16,1,.3,1)}.veil{animation:fade .25s ease-out}@keyframes up{from{transform:translateY(28px);opacity:.4}}@keyframes fade{from{opacity:0}}}

/* accounts, sign-in and notifications */
.sheet-in.narrow{max-width:460px}
.stack{display:grid;gap:12px;margin:0}
.stack label{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--muted)}
.stack input,.stack select{background:var(--paper);border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;font:inherit;font-size:16px;font-weight:400;color:var(--ink);width:100%}
.stack input:focus,.stack select:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.err{color:var(--late);font-size:14px;margin:0}
.ok{color:var(--up-text);font-size:14px;margin:0}
.linkbtn{border:0;background:none;padding:0;color:var(--link);font-weight:600;font-size:inherit;text-decoration:underline;text-underline-offset:2px}
.more-box{border:1px solid var(--line-2);border-radius:14px;padding:12px 16px}
.more-box summary{cursor:pointer;font-weight:700;font-size:15px}
.more-box[open] summary{margin-bottom:10px}
.tg .acts{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.tg .acts .btn{padding:8px 14px;font-size:14px}
/* alert volume and per-follow conditions (Settings) */
.ctl.sm{padding:6px 30px 6px 10px;font-size:13px;border-radius:9px;background-position:right 9px center}
.tg.fr .fr-acts{align-items:center;gap:6px 8px;max-width:60%}
.chk{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted);white-space:nowrap}
.chk input{accent-color:var(--accent)}
#volume input[type=time].ctl{padding:7px 10px;font-size:14px}
#volume .acts .ctl{min-width:0}
#volPreview:empty{display:none}
@media (max-width:560px){.tg.fr{grid-template-columns:1fr}.tg.fr .fr-acts{max-width:none;justify-content:flex-start}}
.empty .btn{margin-top:14px}

/* pre-arranged trading plans, alert rules, Telegram, adding tickers */
.fine .tag.plan{margin-right:4px}
.rule-form{display:grid;gap:12px;border-radius:14px;padding:14px 16px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hair)}
.rule-form .ctl{background-color:var(--surface)}
.tg.rule b{font-size:15px;line-height:1.4}
.tg.rule .acts{align-items:center;flex-wrap:nowrap}
.tg .acts a.btn{text-decoration:none;display:inline-flex;align-items:center}
.addtk{display:flex;gap:8px}
.addtk input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:11px 16px;font:inherit;font-size:16px;color:var(--ink)}
.tkchips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.tkchips .chip{font-family:var(--f-mono);font-size:13px;font-weight:600;letter-spacing:.04em;display:inline-flex;align-items:center;gap:6px}
.tkchips .chip:has(.tklogo){padding-left:6px}
.tkchips .tklogo{width:18px;height:18px;border-radius:4px}
.tkchips .chip span{color:var(--muted);margin-left:2px}

/* owner's setup status */
.setup-list{list-style:none;margin:10px 0 14px;padding:0;display:grid;gap:8px}
.setup-list li{display:flex;gap:12px;align-items:flex-start;background:var(--surface-2);border-radius:12px;padding:12px 14px}
.setup-list li>div{min-width:0;overflow-wrap:anywhere}
.setup-list p{margin:3px 0 0;font-size:14px;line-height:1.45}
.setup-list .fine{color:var(--muted);font-size:13px}
.st-dot{flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:12px;line-height:1;color:var(--surface);background:var(--muted)}
.st-ok .st-dot{background:var(--up)}
.st-warn .st-dot{background:var(--amber)}
.st-error .st-dot{background:var(--late)}
.st-tag{display:inline-block;margin-left:8px;font:500 12px/1.4 var(--f-body);color:var(--muted)}
.st-ok .st-tag{color:var(--up-text)}
.st-warn .st-tag{color:var(--amber)}
.st-error .st-tag{color:var(--late)}

/* cards inside sheets sit on white, so they get a line instead of a shadow */
.sheet .card,.sheet .tblwrap{box-shadow:none;border:1px solid var(--line)}

/* Hyperliquid: followed wallets, top traders, the wallet sheet */
.tag.long{background:var(--up-soft);color:var(--up-text)}
.tag.short{background:var(--late-soft);color:var(--late)}
/* Long / Short as a ticket stub with an arrow, like the share cards */
.tag.side{display:inline-flex;align-items:center;gap:5px;font:600 12px/1.3 var(--f-body);letter-spacing:0;padding:4px 10px 4px 8px;border-radius:999px;clip-path:none!important;clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.tag.side svg{width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wrow .tags{grid-column:1/-1;margin-top:4px}
.wrow .rl .mono{color:var(--ink)}
.tbl.wide{min-width:780px}
.tbl small{color:inherit;opacity:.8;font-size:12px}
.tbl .rank{display:inline-block;min-width:2em;color:var(--muted);font-size:13px;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.tbl.hltop td:first-child{max-width:260px;overflow:hidden;text-overflow:ellipsis}
.tbl .follow{border:1px solid var(--line-2);padding:3px 10px;font:600 13px/1.3 var(--f-body);color:var(--ink)}
.tbl .follow[aria-pressed="true"]{background:var(--sel);border-color:var(--sel);color:var(--sel-ink)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.tblwrap{position:relative} /* keeps visually hidden labels inside the scrolling box */
/* on phones and tablets the stock-market summary would push these views far down */

/* on phones the top traders table keeps trader, mirror score, profit and Follow, and fits the screen;
   the trader's name stays on one line (cut short with … if it must be), the address on the line under it */
@media (max-width:600px){
  .tbl.hltop{min-width:0}
  .hltop th:nth-child(3),.hltop td:nth-child(3),.hltop th:nth-child(5),.hltop td:nth-child(5),
  .hltop th:nth-child(6),.hltop td:nth-child(6),.hltop th:nth-child(7),.hltop td:nth-child(7){display:none}
  .hltop th,.hltop td{padding-inline:6px}
  .hltop th:first-child,.hltop td:first-child{padding-left:2px}
  .tbl.hltop td:first-child{width:100%;max-width:0;white-space:nowrap;overflow:hidden}
  .hltop td:first-child button[data-wallet]{display:inline-block;max-width:calc(100% - 1.8em);padding-right:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;text-align:left}
  .hltop td:first-child .wav{width:24px;height:24px;margin-right:6px;vertical-align:-6px}
  .hltop td:first-child .wav svg{width:17px;height:17px}
  .hltop .addr{display:inline-block;margin-left:1.8em;font-size:12px}
  .hltop .rank{min-width:1.8em;vertical-align:middle}
  .hltop td{font-size:13px}
  .hltop td:first-child button[data-wallet]{font-size:14.5px}
  .hltop .follow{padding:3px 8px;font-size:12.5px}
  .hltop .mscore{padding-inline:6px}
  .hltop th:nth-child(2),.hltop td:nth-child(2){padding-inline:2px}
}
@media (max-width:380px){
  .hltop th,.hltop td{padding-inline:4px}
  .hltop td:first-child .wav{width:22px;height:22px;margin-right:5px}
  .hltop .rank{min-width:1.5em}
  .hltop .addr{margin-left:1.5em}
  .hltop td:first-child button[data-wallet]{max-width:calc(100% - 1.5em);font-size:14px}
}
.whead{gap:12px}
.waddr{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:14px}
.waddr .mono{overflow-wrap:anywhere;font-size:14px}
.waddr a{font-weight:600;text-decoration:none}
.waddr a:hover{text-decoration:underline}
.wfollow{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.follow.big{padding:8px 18px;font-size:15px}
.wname input{background:var(--surface)}
.tiles em{font-style:normal;font-size:12px;color:var(--muted)}
.seg-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center}
.section-t .sub{font:500 14px/1.3 var(--f-body);color:var(--muted);margin-left:6px}
.hl-lines p{margin:3px 0 0;font-size:14px}

/* Signals: insider buys and top-trader moves in one feed */
.kind{display:flex;align-items:center;gap:8px;margin-bottom:-4px;font:500 12.5px/1.3 var(--f-body);color:var(--muted)}
.kind i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--c1)}
.kind.c i{background:var(--c2)}
.tk.coin{background:var(--surface-2);color:var(--ink)}
.nick{font-style:italic}
.addr{font:500 12px/1.3 var(--f-mono);color:var(--muted);font-style:normal}
.tag.top{background:var(--amber-soft);color:var(--amber)}
.tag.coin{background:var(--surface-2);color:var(--ink)}
.more-moves{margin:-4px 0 0;padding-left:18px;font-size:14px;line-height:1.45;color:var(--muted)}
.sig-ctl{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}
.sig-ctl .presets{flex:1 1 auto}
.sig-bar{display:grid;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.sig-ctl.two{gap:8px 10px}
.sig-sep{width:1px;height:22px;background:var(--line);flex:none}
.sig-right{display:flex;gap:8px;align-items:center;flex:none}
.seg button svg{display:block;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.seg button[aria-label]{padding:6px 9px}
.feed-q{flex:1 1 260px;min-width:0;max-width:460px;display:block}
.feed-q input{width:100%;background:var(--surface-2) var(--search) no-repeat 12px center/17px;border:1px solid transparent;border-radius:8px;padding:9px 12px 9px 38px;font:inherit;font-size:14.5px;line-height:1.3;color:var(--ink)}
.feed-q input::placeholder{color:var(--muted)}
.feed-q input:focus{outline:none;background-color:var(--surface);border-color:var(--ink)}
.sig-bar .chip{border-color:transparent;background:transparent;padding:6px 10px;font-size:14px;color:var(--ink-2)}
.sig-bar .chip:hover{background:var(--surface-2);color:var(--ink)}
.sig-bar .chip[aria-pressed="true"]{background:var(--sel);color:var(--sel-ink)}
.sig-bar .presets{gap:4px}
.feed-n{font-size:13px;color:var(--muted);margin-left:auto;white-space:nowrap}
.feed-day{grid-column:1/-1;display:flex;align-items:baseline;gap:8px;margin:8px 0 -6px;font:600 14px/1.3 var(--f-body);color:var(--ink);position:sticky;top:0;z-index:2;background:var(--paper);padding:8px 0 6px}
.feed-day small{font-size:12.5px;font-weight:500;color:var(--muted)}
.feed.rows .feed-day{margin:10px 0 0;padding:10px 0 6px;border-bottom:2px solid var(--ink);font-size:15px}
/* the list: one line per signal. A ledger: thin rules, tabular figures, the score as a number with a
   heat mark, actions that appear on hover, the whole row a target. New filings slide in. */
.feed.rows{display:grid;grid-template-columns:minmax(0,1fr);gap:0;border-top:1px solid var(--ink)}
.feed.rows>.empty,.feed.rows>.more{grid-column:1;margin-top:14px}
.feed.rows .feed-day{margin:0;padding:16px 0 8px;border-bottom:1px solid var(--line);font:600 13px/1 var(--f-body);color:var(--ink-2);display:flex;gap:10px}
.feed.rows .feed-day small{font:inherit;color:var(--muted);opacity:.7}
.sigrow{position:relative;display:grid;grid-template-columns:52px minmax(170px,1fr) minmax(170px,1.05fr) 180px minmax(0,.7fr) 108px 150px;gap:6px 16px;align-items:center;padding:0 10px 0 0;min-height:56px;border-bottom:1px solid var(--line);min-width:0;transition:background-color .15s}
.sigrow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent);opacity:calc(var(--heat,0) / 100);border-radius:0 2px 2px 0}
.sigrow:hover{background:var(--surface-2)}
.sigrow.fresh{animation:rowin .5s cubic-bezier(.2,.8,.2,1) both}
@keyframes rowin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.sc{position:relative;display:grid;place-items:start;padding:0 0 0 14px;border:0;background:none;color:var(--ink)}
.sc b{font:600 15px/1 var(--f-mono);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.sc i{display:block;width:30px;height:3px;margin-top:5px;border-radius:2px;background:var(--chip);overflow:hidden;position:relative}
.sc i::after{content:"";position:absolute;inset:0;width:var(--w,0%);background:var(--accent);border-radius:2px}
.sc.pro b{color:var(--muted)}
.sigrow .tklink{gap:9px;min-width:0}
.sigrow .tk{font-size:12.5px;padding:5px 7px 5px 5px}
.sigrow .tk:not(:has(.tklogo)){padding-left:7px}
.sigrow .tklogo{width:20px;height:20px}
.sigrow .co{font-size:13.5px}
.row-who{display:flex;align-items:center;gap:8px;min-width:0;font-size:14.5px;font-weight:600}
.row-who b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.row-who .role{flex:none;font:500 13px/1.2 var(--f-body);padding:0;border-radius:0;background:none;color:var(--muted)}
.row-who .role.c{background:var(--ink);color:var(--paper)}
.row-amt{display:flex;align-items:baseline;gap:8px;white-space:nowrap}
.row-amt b{font:600 16px/1 var(--f-mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.row-amt .own{font:500 12px/1 var(--f-mono);color:var(--muted);background:none;padding:0}
.row-amt .own.up{color:var(--up)}
.row-tags{display:flex;flex-wrap:wrap;gap:4px;min-width:0}
.row-tags .tag{font:600 11.5px/1 var(--f-body);letter-spacing:0;padding:4px 8px;border-radius:999px}
.row-when{display:flex;align-items:center;justify-content:flex-end;gap:7px;font:500 12.5px/1 var(--f-mono);color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.row-when .live{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 50%,transparent);animation:livedot 1.6s ease-out infinite}
@keyframes livedot{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 45%,transparent)}100%{box-shadow:0 0 0 9px transparent}}
.row-act{display:flex;align-items:center;justify-content:flex-end;gap:4px;white-space:nowrap}
.row-act .follow{padding:4px 9px;font-size:12px;border-color:transparent;background:var(--surface-2);opacity:0;transition:opacity .15s}
.row-act .follow.on{background:var(--sel);color:var(--sel-ink);opacity:1}
.row-act .star{font-size:17px;padding:2px 4px;opacity:0;transition:opacity .15s}
.row-act .star[aria-pressed="true"]{opacity:1}
.sigrow:hover .row-act .follow,.sigrow:hover .row-act .star,.row-act .follow:focus-visible,.row-act .star:focus-visible{opacity:1}
.row-act .open{width:30px;height:30px;border:1px solid var(--line-2);border-radius:8px;background:var(--surface);color:var(--ink);font:500 18px/1 var(--f-body);display:grid;place-items:center;transition:background-color .15s,border-color .15s}
.sigrow:hover .row-act .open{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sigrow.locked>:not(.unlock){filter:blur(4px);user-select:none;pointer-events:none}
.sigrow .unlock span{padding:7px 12px;font-size:13px}
@media (max-width:1180px){.sigrow{grid-template-columns:52px minmax(150px,1fr) minmax(150px,1.05fr) 160px 108px 150px}.row-tags{display:none}}
/* also on laptops up to 1140px wide, where the sidebar leaves the page about as narrow */
@media (max-width:860px),(min-width:900px) and (max-width:1140px){
  .sigrow{grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"s tk when" "s who act" "s amt act";gap:4px 10px;padding:12px 8px 12px 0;min-height:0}
  .sc{grid-area:s;align-self:start;padding-left:12px}.sigrow .tklink{grid-area:tk}.row-who{grid-area:who;font-size:14px}.row-amt{grid-area:amt}
  .row-when{grid-area:when}.row-act{grid-area:act;align-self:center}.row-tags{display:none}
  .row-act .follow{display:none}.row-act .star{opacity:1}
  .sig-bar{padding:10px 12px;gap:8px}.feed-q{max-width:none;flex-basis:100%}.sig-right{margin-left:auto}.feed-n{display:none}
  .sig-ctl.two{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -12px;padding:0 12px}.sig-ctl.two::-webkit-scrollbar{display:none}.sig-ctl.two .presets{flex:none;overflow:visible}.sig-bar .chip{white-space:nowrap}
  .row-amt b{font-size:15px}
}
@media (prefers-reduced-motion:reduce){.sigrow.fresh{animation:none}.row-when .live{animation:none}}
.new{font:600 11px/1 var(--f-body);background:var(--accent-soft);color:var(--accent-text);padding:3px 5px;border-radius:5px}
.slip .meta .mono{font-size:13px}
.note-line{font-size:14px;color:var(--muted);margin:0}
.note-line b{color:var(--ink)}

/* the top traders' positioning */
.posbox{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.pos-list{display:grid;gap:8px}
.pos-row{display:grid;grid-template-columns:70px minmax(0,1fr) minmax(0,1.25fr);gap:14px;align-items:center;border:0;background:var(--surface);border-radius:14px;padding:11px 16px;text-align:left;box-shadow:var(--shadow);color:var(--ink);transition:box-shadow .15s}
.pos-row:hover{box-shadow:inset 0 0 0 1px var(--line-2),var(--shadow)}
.pos-row[aria-pressed="true"]{box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px color-mix(in srgb,var(--accent) 14%,transparent)}
.pos-row .pc{font:600 15px/1 var(--f-mono);letter-spacing:.02em}
.pbar{display:flex;gap:2px;height:10px}
.pbar i{display:block;height:100%;min-width:3px}
.pbar .l{background:var(--up);border-radius:4px 0 0 4px}
.pbar .s{background:var(--down);border-radius:0 4px 4px 0}
.pbar .l:last-child{border-radius:4px}
.pbar .s:first-child{border-radius:4px}
.pv{display:grid;gap:2px;min-width:0}
.pv b{font:700 15px/1.2 var(--f-head);font-variant-numeric:tabular-nums}
.pv small{font-size:12px;line-height:1.35;color:var(--muted)}
.sheet .pos-row{box-shadow:none;border:1px solid var(--line)}
@media (max-width:560px){.pos-row{grid-template-columns:58px minmax(0,1fr);gap:8px 12px}.pos-row .pv{grid-column:1/-1}}
.pos-card .pbar{height:16px}

/* track record */
.tbl td.res{font-weight:600}
.tbl .sub-row td{color:var(--muted)}
.tbl td small.n{display:block;font:500 11px/1.2 var(--f-body);color:var(--muted)}
.tbl.track td:first-child{white-space:normal;min-width:170px}
.tbl.calls td:first-child{min-width:150px}
.tbl.wtrack th:nth-child(2),.tbl.wtrack td:nth-child(2){text-align:left;white-space:normal;min-width:240px}
.tbl.wtrack td:nth-child(2){font-family:var(--f-body)}
.tr-name{display:grid;gap:1px}
.chart-legend{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13px;color:var(--muted)}
.chart-legend span{display:inline-flex;align-items:center;gap:7px}
.chart-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}

/* score v2: the breakdown in the trade sheet, and the card tags for the timing and tradability flags */
.score-why .sc-parts{list-style:none;margin:0;padding:0}
.score-why .sc-parts li{display:grid;grid-template-columns:minmax(0,1fr) 120px 44px;gap:12px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}
.score-why .sc-parts li:last-child{border-bottom:0}
.score-why .sc-parts b{text-align:right;font-variant-numeric:tabular-nums}
.score-why .bar{display:block;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}
.score-why .bar i{display:block;height:100%;width:var(--w);border-radius:3px;background:var(--accent)}
.score-why .bar i.neg{background:var(--down)}
.score-why .sc-flags{margin:12px 0 0;padding:0 0 0 18px;color:var(--muted);font-size:13.5px}
.score-why .sc-flags li{margin:3px 0}
.score-why .sub a{color:var(--link)}
.tag.first{background:var(--accent-soft);color:var(--accent-text)}
.tag.routine{background:var(--surface-2);color:var(--muted)}
.tag.penny{background:var(--late-soft);color:var(--late)}
@media (max-width:520px){.score-why .sc-parts li{grid-template-columns:minmax(0,1fr) 72px 40px}}

/* referrals (account sheet) */
.ref-body{display:grid;gap:10px;padding-top:4px}
.ref-row{display:flex;gap:8px;flex-wrap:wrap;min-width:0}
.ref-row input{flex:1 1 220px;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--ink)}
.ref-row input:focus{outline:none;border-color:var(--focus)}
.ref-stats{font-size:12.5px;color:var(--muted);letter-spacing:.02em}

/* two-step sign-in (account sheet) */
.tfa-on{display:inline-block;margin-left:8px;padding:3px 8px;border-radius:6px;background:var(--up-soft);color:var(--up-text);font:600 11px/1.2 var(--f-mono)}
.tfa-body{display:grid;gap:12px;padding-top:4px}
.tfa-steps{margin:0;padding-left:20px;font-size:14.5px;line-height:1.5}
.tfa-qr{justify-self:start;width:196px;padding:10px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px var(--line)}
.tfa-qr svg{display:block;width:100%;height:auto}
.tfa-key{font-size:14px;letter-spacing:.04em;color:var(--ink);overflow-wrap:anywhere}
.tfa-codes{margin:0;padding:12px 16px 12px 36px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 20px;border-radius:12px;background:var(--surface-2);font-size:14px}
.tfa-sub{border-top:1px solid var(--line);padding-top:10px}
.tfa-sub summary{cursor:pointer;font-weight:600;font-size:14.5px}
.tfa-sub[open] summary{margin-bottom:10px}

/* the owner's active-users box in Setup status */
.active-box{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin:10px 0 14px;background:var(--surface);display:grid;gap:9px}
.active-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.active-top b{font:700 22px/1 var(--f-head);font-stretch:82%;letter-spacing:-.01em}
.active-top span{color:var(--muted);font-size:13.5px}
.active-bar{height:6px;border-radius:3px;background:var(--chip);overflow:hidden}
.active-bar i{display:block;height:100%;background:var(--accent);border-radius:3px;transition:width .4s}
.active-row{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;font-size:13.5px;color:var(--muted)}
.active-row b{color:var(--ink);font-family:var(--f-mono)}
.tg-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid var(--line);padding-top:10px}
.tg-cell{display:grid;gap:3px;min-width:0}
.tg-cell b{font-family:var(--f-mono);color:var(--ink);font-size:16px}
.tg-cell b em{font-style:normal;color:var(--muted);font-size:13px}
.tg-cell small{color:var(--muted);font-size:12px}
.tg-bar{display:block;height:4px;border-radius:2px;background:var(--chip);overflow:hidden}
.tg-bar i{display:block;height:100%;background:var(--accent)}
.tg-funnel{margin:0}
@media (max-width:480px){.tg-row{grid-template-columns:1fr}}
.active-days{display:inline-flex;align-items:flex-end;gap:3px;height:28px;margin-left:auto}
.active-days i{display:block;width:7px;background:var(--line-2);border-radius:2px 2px 0 0}
.active-days i:last-child{background:var(--accent)}

/* copying a trade in your own broker */
.copy-card{border-left:3px solid var(--accent)}
.copy-card .btn{white-space:nowrap}
.copy-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 10px}
.copy-form label{display:grid;gap:5px;font-size:13px;color:var(--muted)}
.copy-form input,.copy-form select{font:500 16px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:9px 10px;width:100%;min-width:0}
.copy-amt{position:relative;display:block}
.copy-amt i{position:absolute;left:10px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted)}
.copy-amt input{padding-left:24px}
/* the top traders list's period and order chips, in two groups */
.hl-presets{flex-wrap:wrap}
.presets-gap{flex:1 1 auto;min-width:8px}
/* the mirror score on the top traders list */
.mscore{display:inline-grid;place-items:center;min-width:34px;height:26px;padding:0 6px;border-radius:8px;font:600 13px var(--f-mono);background:var(--surface-2);color:var(--muted)}
.mscore.hi{background:var(--up-soft);color:var(--up-text)}
.mscore.mid{background:var(--amber-soft);color:var(--amber)}
.mscore.lo{background:var(--late-soft);color:var(--late)}
.mirror-tiles b.pos{color:var(--up-text)}.mirror-tiles b.neg{color:var(--down)}.tiles small{font-size:11.5px;color:var(--muted);line-height:1.35}
.copy-calc{grid-column:1/-1;font-size:14px;color:var(--muted)}
/* "copy every buy": the rule on the insider sheet and under a copied trade */
.copy-rule{display:grid;grid-template-columns:auto 120px;gap:6px 12px;align-items:center;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.copy-rule .chk{font-size:14px;color:var(--ink);font-weight:600}
.copy-rule .copy-amt input{font:500 15px var(--f-body);color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:7px 8px 7px 24px;width:100%}
.copy-rule input:disabled{opacity:.5}
.copy-rule small{grid-column:1/-1;font-size:12.5px;color:var(--muted);line-height:1.45}
.head-card .copy-rule{border-top-color:var(--line-2)}
.copy-card.lit{animation:lit 1.6s ease-out}
@keyframes lit{0%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
.copy-calc b{color:var(--ink)}
.copy-line{margin:0 0 10px;font-size:14.5px;line-height:1.5}
.copy-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.copy-row{display:grid;gap:8px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.copy-row.done{opacity:.7}
.copy-meta{font-size:13.5px;color:var(--muted)}
.copy-meta b{color:var(--ink)}
.copy-h{margin:18px 0 8px;font-size:15px}
@media (max-width:520px){.copy-form{grid-template-columns:1fr}}
/* the password meter (ext/pwstrength.js) */
.pwm{display:grid;gap:6px;margin-top:8px;font-weight:400}
.pwm-bars{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}
.pwm-bars i{height:4px;border-radius:2px;background:var(--track);transition:background-color .2s}
.pwm-bars i.on{background:var(--c,var(--late))}
.pwm-t{font-size:12.5px;line-height:1.4;color:var(--muted)}
.pwm-t b{color:var(--c,var(--ink));font-weight:600}

/* copying a Hyperliquid trader (app.js renderHlCopyPanel) */
.hlcopy-btn{padding:5px 12px;font-size:13px}
.hlcopy-hint{margin-top:8px}
.hl-copy .hl-steps{margin:2px 0 12px;padding-left:20px;font-size:14px;line-height:1.55;color:var(--ink-2,var(--ink))}
.hl-copy .hl-steps li{margin:2px 0}
.copy-amt.lev input{padding-left:10px;padding-right:24px}
.copy-amt i.r{left:auto;right:10px}
.hl-exit{color:var(--down)}
.hl-exit b{color:var(--down)}
.why-tag.down{color:var(--down)}
.copy-row.exit{border-color:var(--down);box-shadow:inset 3px 0 0 var(--down)}
.hl-exit-item p.hl-exit{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:6px 0}
#wCopyPanel:not(:empty){margin-top:12px}
.btn.sm{padding:6px 12px;font-size:13px;min-height:0}
.coin-cell{white-space:nowrap}
.coin-cell .hlcopy-btn{margin-left:6px;vertical-align:middle}
a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.tbl button.hlcopy-btn{border:1px solid transparent;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;background:var(--btn);color:var(--btn-ink);text-align:center}
.tbl button.hlcopy-btn[aria-pressed="true"]{background:transparent;border-color:var(--line-2);color:var(--ink)}

/* ---- computers: the header becomes a sidebar ----
   Search at the top, then the sections (Feed first: the app opens there). Stocks, Crypto and Tools open to list
   their pages under them (app.js fills .subnav); the account, settings and alerts buttons sit at the bottom.
   Phones keep the header and the bar along the bottom. */
.side-q{display:none}
.subnav[hidden]{display:none!important}
.sideflat[hidden]{display:none!important}
nav.sections .chev{display:none}
@media (min-width:900px){
  :root{--sbw:272px}
  body{padding-left:var(--sbw)}
  header.top{position:fixed;left:0;top:0;bottom:0;width:var(--sbw);border-bottom:0;border-right:1px solid var(--hd-line);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  .top-in{max-width:none;margin:0;min-height:100%;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px;padding:18px 16px 16px}
  .brand{flex:none;padding:0 6px 4px}
  .side-q{display:block;position:relative}
  .side-q input{width:100%;height:46px;border-radius:12px;border:1px solid var(--hd-line);background:var(--hd-soft) var(--search) no-repeat 14px center/18px;padding:0 14px 0 42px;font:inherit;font-size:15px;color:var(--hd-ink)}
  .side-q input::placeholder{color:var(--hd-dim)}
  .side-q input:focus{outline:none;border-color:var(--line-2);background-color:var(--hd-bg)}
  nav.sections{flex-direction:column;gap:3px;flex:none}
  nav.sections>button{width:100%;justify-content:flex-start;gap:13px;padding:11px 12px;border-radius:12px;border:1px solid transparent;font-size:15.5px;font-weight:500;color:var(--hd-dim)}
  nav.sections>button svg{width:21px;height:21px}
  nav.sections>button:hover{color:var(--hd-ink);background:var(--hd-soft)}
  nav.sections>button[aria-current]{color:var(--hd-ink);background:var(--hd-soft);border-color:var(--hd-line);font-weight:600}
  nav.sections>button[aria-current]::after{display:none}
  nav.sections .chev{display:block;margin-left:auto;width:8px;height:8px;border-right:1.8px solid currentColor;border-bottom:1.8px solid currentColor;transform:rotate(-45deg);opacity:.7;transition:transform .2s}
  nav.sections>button[aria-expanded="true"] .chev{transform:rotate(45deg) translate(-2px,-2px)}
  .subnav{display:grid;gap:1px;margin:2px 0 8px 22px;padding-left:12px;border-left:1px solid var(--hd-line)}
  .subnav button{display:flex;align-items:center;gap:11px;width:100%;border:0;background:none;padding:8px 10px;border-radius:10px;color:var(--hd-dim);font:500 14.5px/1.2 var(--f-body);text-align:left;transition:color .15s,background-color .15s}
  .subnav button:hover{color:var(--hd-ink);background:var(--hd-soft)}
  .subnav button[aria-current]{color:var(--hd-ink);background:var(--hd-soft);font-weight:600}
  .subnav button[aria-current] svg{stroke:var(--accent)}
  .subnav button::after{display:none!important}
  .subnav svg{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  /* the flat map: groups with a small label, rows filling the column, the current page marked with the lime bar */
  nav.sections>button.side-hide{display:none}
  .sideflat button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sideflat{display:grid;gap:10px}
  .sgroup{display:grid;gap:1px}
  .slabel{margin:6px 0 4px;padding:0 12px;font:600 12.5px/1.4 var(--f-body);color:var(--hd-dim);opacity:.75}
  .sideflat button{position:relative;display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:8px 12px;border-radius:10px;color:var(--hd-dim);font:500 14.5px/1.2 var(--f-body);text-align:left;transition:color .12s,background-color .12s}
  .sideflat button::after{display:none!important}
  .sideflat button:hover{color:var(--hd-ink);background:var(--hd-soft)}
  .sideflat button[aria-current]{color:var(--hd-ink);background:var(--hd-soft);font-weight:600}
  .sideflat button[aria-current]::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--accent)}
  .sideflat svg{width:19px;height:19px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .sideflat button[aria-current] svg{stroke:var(--accent)}
  .hdr-actions{flex:none;margin-top:auto;justify-content:stretch;padding-top:14px;border-top:1px solid var(--hd-line)}
  .hdr-actions .acct{flex:1 1 auto;justify-content:center;height:44px;border-radius:12px}
  .hdr-actions .iconbtn{width:44px;height:44px;border-radius:12px}
  .wrap{padding-left:clamp(24px,3vw,48px);padding-right:clamp(24px,3vw,48px)}
  /* the page's title, big, and its views as one segmented control (like 12 months / 6 months / 30 days) */
  .sec-head{gap:16px 24px}
  .sec-head h2{flex-basis:100%;font:700 clamp(34px,3.2vw,44px)/1.05 var(--f-body);letter-spacing:-.03em}
  nav.tabs{gap:4px;padding:5px;border-radius:14px;background:var(--surface);border:1px solid var(--line)}
  nav.tabs button{border:0;background:transparent;padding:9px 16px;border-radius:10px;font-size:15px;color:var(--muted)}
  nav.tabs button:hover{color:var(--ink);background:var(--surface-2)}
  nav.tabs button[aria-selected="true"]{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}
  nav.tabs button[aria-selected="true"] .count{background:var(--line);color:var(--ink)}
}

/* ---- the Feed's top card: insider buying over the range, a big number and a column per hour or day ---- */
.fhero{position:relative;overflow:hidden;gap:6px;padding:22px 24px 18px;border-radius:20px;
  background:radial-gradient(120% 120% at 72% -10%,color-mix(in srgb,var(--ink) 7%,transparent),transparent 55%),var(--surface)}
.fh-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.fh-k{display:flex;align-items:center;gap:12px;margin:0;font:600 17px/1.2 var(--f-body);color:var(--ink)}
.fh-ic{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:11px;border:1px solid var(--line-2);background:var(--surface-2)}
.fh-ic svg{width:21px;height:21px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.fh-range{border-radius:12px;padding:4px}
.fh-range button{padding:7px 13px;border-radius:9px;font-size:13.5px}
.fh-range button[aria-pressed="true"]{background:var(--raise);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-2)}
.fh-big{margin:14px 0 0;display:flex;align-items:flex-start;gap:6px;font:700 clamp(38px,5vw,58px)/1 var(--f-body);letter-spacing:-.035em;color:var(--ink);font-variant-numeric:tabular-nums}
.fh-big .cur{font-size:.5em;line-height:1.25;color:var(--muted);letter-spacing:0}
.fh-sub{margin:6px 0 0;font-size:14px;color:var(--muted)}
.fh-chart{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;margin-top:64px}
.fh-y{display:flex;flex-direction:column;justify-content:space-between;height:210px;padding-bottom:0;font:500 12.5px/1 var(--f-body);color:var(--muted);text-align:right;transform:translateY(6px)}
.fh-plot{min-width:0}
.fh-bars{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));align-items:end;gap:clamp(3px,1.1vw,14px);height:210px}
.fh-x{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(3px,1.1vw,14px);margin-top:12px;font:600 12px/1 var(--f-body);color:var(--muted);text-align:center;white-space:nowrap}
.fh-x span{overflow:visible;display:flex;justify-content:center}
.fh-x span.hi{color:var(--ink)}
.fb{position:relative;height:max(var(--h),4px);border-radius:7px 7px 3px 3px;background:linear-gradient(180deg,var(--fb1),var(--fb2));transition:filter .15s}
.fb.zero{height:3px;background:var(--fb2)}
.fb.hi{background:linear-gradient(180deg,#C9F77D,#7FC933)}
.fb:hover{filter:brightness(1.25)}
.fb-tip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);z-index:3;display:grid;gap:2px;justify-items:center;padding:7px 11px;border-radius:9px;background:var(--raise);color:var(--ink);border:1px solid var(--line-2);font:600 14px/1.15 var(--f-body);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s;box-shadow:0 10px 24px -12px rgba(0,0,0,.55)}
.fb-tip small{font-size:11.5px;font-weight:500;opacity:.75}
.fb-tip::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:var(--line-2)}
.fb.hi .fb-tip{opacity:1}
.fh-bars:hover .fb.hi:not(:hover) .fb-tip{opacity:0}
.fb:hover .fb-tip{opacity:1}
.fb:first-child .fb-tip,.fb:nth-child(2) .fb-tip{left:0;transform:none}.fb:first-child .fb-tip::after,.fb:nth-child(2) .fb-tip::after{left:14px}
.fb:last-child .fb-tip,.fb:nth-last-child(2) .fb-tip{left:auto;right:0;transform:none}.fb:last-child .fb-tip::after,.fb:nth-last-child(2) .fb-tip::after{left:auto;right:9px}
.fh-none{position:absolute;inset:0 0 30px 60px;display:grid;place-items:center;margin:0;font-size:14px;color:var(--muted)}
:root{--fb1:#E4E7EC;--fb2:#D3D7DE}
:root[data-theme="dark"]{--fb1:#2A2D33;--fb2:#16181C}
@media (prefers-color-scheme:dark){:root[data-theme="system"]{--fb1:#2A2D33;--fb2:#16181C}}
.fsec-h{display:flex;align-items:center;gap:12px;margin:10px 0 -4px;font:600 17px/1.2 var(--f-body);color:var(--ink)}
@media (max-width:640px){
  .fhero{padding:18px 16px 14px;border-radius:16px}
  .fh-range{width:100%}.fh-range button{flex:1 1 0}
  .fh-y,.fh-bars{height:160px}
  .fh-x{font-size:10.5px}
  .fh-chart{gap:8px;margin-top:58px}
}

/* ---- trader avatars: the nickname's animal in its colour, or a letter tile ---- */
.wav{display:inline-grid;place-items:center;vertical-align:-8px;width:28px;height:28px;margin-right:8px;border-radius:8px;flex:none;background:hsl(var(--h) var(--s) 88%);color:hsl(var(--h) var(--s) 30%);font:700 12px/1 var(--f-body)}
.wav svg{width:20px;height:20px;fill:currentColor}
:root[data-theme="dark"] .wav{background:hsl(var(--h) var(--s) 18%);color:hsl(var(--h) calc(var(--s) + 8%) 68%)}
@media (prefers-color-scheme:dark){:root[data-theme="system"] .wav{background:hsl(var(--h) var(--s) 18%);color:hsl(var(--h) calc(var(--s) + 8%) 68%)}}
h2 .wav,#walletTitle .wav{width:34px;height:34px;border-radius:10px;vertical-align:-7px;margin-right:10px}h2 .wav svg,#walletTitle .wav svg{width:24px;height:24px}

/* copied trades: the running result */
.gain{font-weight:700;font-variant-numeric:tabular-nums}.gain.up{color:var(--up-text)}.gain.down{color:var(--down)}.gain.none{color:var(--muted);font-weight:500}.gain small{font-weight:600;font-size:.85em;opacity:.85}
.copy-stats{margin:4px 0 12px}.copy-stats .stat b.up{color:var(--up-text)}.copy-stats .stat b.down{color:var(--down)}
.stylecell{display:inline-flex;flex-wrap:wrap;gap:4px 6px;align-items:center;font-size:12.5px;white-space:nowrap}
.stylechip{padding:2px 7px;border-radius:6px;background:var(--surface-2);color:var(--ink);font-weight:600}
.stylechip.algo{background:var(--amber-soft);color:var(--amber)}
.bias{color:var(--muted)}.bias.up{color:var(--up-text)}.bias.down{color:var(--late)}
.winrate{color:var(--muted)}
.dlv{margin:0 0 14px;padding:12px 14px;border-radius:12px;border:1px solid var(--rule);background:var(--surface-2)}
.dlv-h{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.dlv-h small{color:var(--muted);font-size:12px}
.dlv-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.dlv-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:13.5px}
.dlv-list li small{color:var(--muted);flex:1 1 auto}
.dlv-list .btn{margin-left:auto}
.dlv-ok{color:var(--up-text);font-weight:600}.dlv-bad{color:var(--late);font-weight:600}.dlv-dim{color:var(--muted)}
.feed-caught{display:flex;align-items:center;gap:10px;margin:10px 0 6px;font-size:12.5px;color:var(--muted)}
.feed-caught::before,.feed-caught::after{content:"";flex:1;height:1px;background:var(--rule)}
.feed-caught span{font-weight:600;color:var(--up-text)}
.side-badge{margin-left:auto;padding:1px 7px;border-radius:999px;background:var(--beacon);color:#0A2B21;font:600 11px var(--f-mono);font-style:normal}

/* phones: tapping Tools in the bottom bar opens the tools' names in a row just above it */
.tools-pop{position:fixed;z-index:16;left:0;right:0;bottom:calc(66px + env(safe-area-inset-bottom,0px));padding:10px max(10px,env(safe-area-inset-right,0px)) 10px max(10px,env(safe-area-inset-left,0px));
  background:var(--hd-bg);border-top:1px solid var(--hd-line);box-shadow:0 -12px 28px -14px rgba(0,0,0,.45);opacity:0;transform:translateY(8px);transition:opacity .16s,transform .16s}
.tools-pop.in{opacity:1;transform:none}
.tools-pop-row{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.tools-pop button{border:1px solid var(--hd-line);background:var(--hd-soft);color:var(--hd-ink);font:600 14px/1 var(--f-body);padding:10px 14px;border-radius:999px;white-space:nowrap}
.tools-pop button[aria-current]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink,#0b1a12)}
@media (min-width:900px){.tools-pop{display:none}}
@media (prefers-reduced-motion:reduce){.tools-pop{transition:none}}

/* sign-up: the adults-only confirmation */
.stack label.agecheck,.agecheck{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:500;color:var(--ink);cursor:pointer}
.agecheck input{width:20px;height:20px;accent-color:var(--accent);flex:none}

/* with the sidebar listing every view, the row of view tabs isn't needed (ext: app.js sets .side-on) */
.wrap.side-on nav.tabs{display:none}
.wrap.side-on .sec-head{margin-bottom:4px}
/* the "Updated" line only shows when a feed is late or down */
.stamp:not(:has(b)){display:none}

/* the trade sheet's head: who, the amount, the facts in a grid, the links in one row */
.head-card{gap:12px;padding:18px 20px}
.head-card .ins{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;font:600 17px/1.3 var(--f-body)}
.hc-big{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.hc-v{font:700 clamp(30px,4vw,38px)/1 var(--f-head);font-stretch:85%;letter-spacing:-.02em;color:var(--ink);font-variant-numeric:tabular-nums}
.hc-big span{color:var(--muted);font-size:14px}
.hc-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;margin:0;border-radius:12px;overflow:hidden;background:var(--line)}
.hc-facts>div{background:var(--surface);padding:10px 12px;min-width:0}
.hc-facts dt{font-size:12.5px;color:var(--muted);margin-bottom:3px}
.hc-facts dd{margin:0;font:600 14px/1.3 var(--f-body);font-variant-numeric:tabular-nums;color:var(--ink)}
.hc-facts dd small{font-weight:400;color:var(--muted)}
.hc-acts{display:flex;flex-wrap:wrap;gap:8px}
.an-quick.in-acts{display:contents}
@media (max-width:620px){.hc-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.hc-facts>div:last-child{grid-column:1 / -1}}

/* The truth area's styles: the record sheet, the Truth Scores and the strategy lab. Uses the design
   tokens defined in app.css, so it follows light and dark. */

/* ---- the Record link on cards, and the record sheet ---- */
.meta a.truth-reclink{white-space:nowrap}
.truth-st{display:grid;gap:4px;min-width:0}
.truth-rec{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}
.truth-what{margin:0;font-size:16px;line-height:1.5}
.truth-logged{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:14px;color:var(--muted)}
.truth-tag{display:inline-block;font:500 11.5px/1.3 var(--f-mono);padding:4px 8px;border-radius:6px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.truth-tag.ok{background:var(--up-soft);color:var(--up-text)}
.truth-tag.warn{background:var(--amber-soft);color:var(--amber)}
.truth-tiles em{font-style:normal;font-size:12px;line-height:1.35;color:var(--muted)}
.truth-tiles b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tbl.truth-res{min-width:0}
.tbl.truth-res th{white-space:normal;vertical-align:bottom}
.truth-check{margin:0;font-size:14px;font-weight:600;color:var(--muted)}
.truth-check.ok{color:var(--up)}
.truth-check.bad{color:var(--late)}
.truth-entries{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.truth-entries li{border-top:1px solid var(--line);padding-top:10px;display:grid;gap:4px;min-width:0}
.truth-entries li:first-child{border-top:0;padding-top:0}
.truth-eh{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;font-size:13px}
.truth-eh span{color:var(--muted)}
.truth-entries p{margin:0;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.truth-entries code{font-family:var(--f-mono);font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.truth-links a.btn,.truth-acts a.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;text-align:center}

/* ---- Truth Scores ---- */
.truth-scores{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;min-width:0}
.truth-h3{margin:4px 0 0;font:700 16px/1.25 var(--f-display);letter-spacing:-.02em}
.tbl.truth-sc{min-width:760px}
.tbl.truth-sc td:first-child{white-space:normal;min-width:190px}
.tbl.truth-sc .truth-sub td:first-child{padding-left:30px}
.tbl.truth-sc .truth-sub td:first-child>small.n{display:none}
.tbl.truth-sc td b{font-weight:700}
.truth-sv b{font:700 17px/1 var(--f-display);letter-spacing:-.02em}
.truth-na{color:var(--muted);font-family:var(--f-body);font-weight:600;font-size:13px}
.truth-meter{display:block;position:relative;height:6px;border-radius:3px;background:var(--surface-2);margin:6px 0 2px auto;width:84px}
.truth-meter i{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--accent)}
.truth-meter::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1.5px;background:var(--muted);opacity:.7}

/* ---- the strategy lab ---- */
.truth-lab{min-width:0}
.truth-about{margin:0;font-size:15px;line-height:1.5}
.truth-acts{align-items:center}
.truth-acts .btn{flex:0 1 auto}
.truth-acts2{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.truth-acts2 .truth-save{flex:1 1 320px;max-width:520px}
.truth-incmp{color:var(--accent-text);font-weight:600}
.truth-build .seg{justify-self:start;max-width:100%}
.truth-build .ctl{width:100%;min-width:0}
.truth-build input[type=date].ctl{padding-block:8px}
.truth-build.locked .custom,.truth-build.locked .seg{opacity:.55}
.truth-fs{border:0;margin:0;padding:0;min-width:0}
.truth-fs legend{padding:0;margin-bottom:10px;font:600 13px/1.3 var(--f-body);color:var(--muted)}
.truth-runrow{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.truth-rules{overflow-wrap:anywhere}
.truth-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0}
.truth-stats div{background:var(--surface);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow);min-width:0}
.truth-stats dt{font:500 12.5px/1.35 var(--f-body);color:var(--muted)}
.truth-stats dd{margin:3px 0 0;font:700 17px/1.2 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.legend i.truth-dash{background:repeating-linear-gradient(90deg,var(--b1) 0 5px,transparent 5px 8px)}
.tbl.truth-trades td:first-child{white-space:normal;min-width:150px}
.tbl.truth-trades a{color:var(--link);font-weight:600;text-decoration:none}
.tbl.truth-trades a:hover{text-decoration:underline}
.tbl.truth-trades .tag{font-family:var(--f-body);vertical-align:1px;margin-left:4px}
.truth-hid{font-family:var(--f-body);font-weight:600;color:var(--muted)}
.truth-pills{display:flex;flex-wrap:wrap;gap:8px}
.truth-pill{display:inline-flex;align-items:center;gap:8px;max-width:100%;border:1px solid var(--line-2);border-radius:10px;padding:4px 5px 4px 12px;font-size:14px;font-weight:600}
.truth-pill>i{width:10px;height:10px;border-radius:3px;flex:none}
.truth-pill>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.truth-pill button{border:0;background:var(--surface-2);color:var(--ink);border-radius:7px;width:26px;height:26px;font-size:16px;line-height:1;flex:none}
.truth-pill button:hover{background:var(--line)}
.truth-sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:8px}
.tbl.truth-cmpt{min-width:720px}
.tbl.truth-cmpt td:first-child{white-space:normal;min-width:180px}
.truth-mine{display:grid;gap:8px}
.truth-mrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 18px;align-items:center;background:var(--surface);border-radius:16px;padding:12px 18px;box-shadow:var(--shadow)}
.truth-mtxt{min-width:0}
.truth-mname{border:0;background:none;padding:0;text-align:left;font-weight:700;font-size:16px;color:var(--ink)}
.truth-mname:hover{text-decoration:underline}
.truth-mtxt small{display:block;margin-top:2px;font-size:13px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}
.truth-mnum{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.truth-mnum b{font-size:17px}
.truth-mnum small{display:block;font-size:12px;color:var(--muted)}
.truth-mtag{font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}
.truth-mtag a{color:var(--link);text-decoration:none}
.truth-mtag a:hover{text-decoration:underline}
@media (max-width:620px){.truth-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){
  .tbl.truth-res th,.tbl.truth-res td{padding:10px 8px}
  .truth-acts .btn{flex:1 1 auto}
  .truth-mrow{grid-template-columns:minmax(0,1fr) auto;padding:12px 14px}
  .truth-mtag{grid-column:1/-1}
}

/* The analysis area's styles: the Portfolio tab (risk radar, what if), the Evidence Graph, and the links
   added to cards and sheets. Uses only the design tokens and building blocks defined in app.css. */
.an-pf,.an-ev,.an-onb{display:grid;gap:14px;min-width:0}
.an-center{justify-content:center;margin-top:14px}
.an-center .btn{flex:0 0 auto}
.an-link{border:0;background:none;padding:0;font:inherit;color:var(--link);font-weight:600;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.btn.an-sm{flex:0 0 auto;padding:7px 13px;font-size:14px}
a.btn.an-sm{text-decoration:none;display:inline-flex;align-items:center}

/* actions and onboarding */
.an-actions{align-items:center}
.an-actions .btn{flex:0 0 auto}
.an-export{margin-left:auto;font-size:14px;color:var(--muted)}
.an-export a{color:var(--link);font-weight:600;text-decoration:none}
.an-export a:hover{text-decoration:underline}
@media (max-width:620px){.an-actions .btn{flex:1 1 auto}.an-export{margin-left:0;flex-basis:100%}}
.an-ways{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:760px){.an-ways{grid-template-columns:minmax(0,1fr)}}
.an-way{display:grid;gap:6px;align-content:start;text-align:left;border:0;background:var(--surface);border-radius:var(--r);padding:18px 20px;box-shadow:var(--shadow);color:var(--ink);font:inherit}
.an-way b{font:650 18px/1.25 var(--f-head);letter-spacing:-.015em}
.an-way span{font-size:14px;line-height:1.45;color:var(--muted)}
button.an-way{cursor:pointer}
button.an-way:hover{box-shadow:inset 0 0 0 1px var(--accent),var(--shadow)}

/* key numbers */
.an-kpis .kpi b{font-size:26px}
.an-kpis .kpi[data-tip]{cursor:help}

/* holdings table */
.tbl.an-tbl{min-width:560px}
.tbl.an-hold td:first-child{white-space:normal;min-width:190px}
.tbl.an-tbl small{display:block;font:500 12px/1.3 var(--f-body);color:var(--muted);opacity:1;margin-top:3px}
.tbl.an-tbl td small.an-src{max-width:330px}
.tag.an-k{font-size:11px;padding:2px 8px;background:var(--surface-2);color:var(--muted);vertical-align:1px;white-space:nowrap}
.tag.an-k.perp{background:var(--amber-soft);color:var(--amber)}
.tag.an-k.paused{background:var(--surface-2);color:var(--late)}
.an-paused{margin:0 0 10px}
.an-acts{white-space:nowrap}
.tbl .an-acts button{margin-left:14px}
.tbl.an-prev{min-width:420px}
.an-skip td{color:var(--muted)}
.tbl.an-tbl small.an-qp,.an-acts-m{display:none}
@media (max-width:560px){
  .tbl.an-hold{min-width:0}
  .tbl.an-hold th:nth-child(2),.tbl.an-hold td:nth-child(2),.tbl.an-hold th:nth-child(3),.tbl.an-hold td:nth-child(3),.tbl.an-hold th:nth-child(6),.tbl.an-hold td:nth-child(6){display:none}
  .tbl.an-hold td:first-child{min-width:0}
  .tbl.an-hold th,.tbl.an-hold td{padding:10px 8px}
  .tbl.an-hold th:first-child,.tbl.an-hold td:first-child{padding-left:12px}
  .tbl.an-hold th:nth-child(5),.tbl.an-hold td:nth-child(5){padding-right:12px}
  .tbl.an-tbl small.an-qp{display:block}
  .an-acts-m{display:flex;gap:18px;margin-top:6px}
}

/* bars */
.an-bars{display:grid;gap:11px}
.an-bar{display:grid;grid-template-columns:minmax(0,10em) minmax(0,1fr) auto;gap:3px 10px;align-items:center;font-size:14px}
.an-bl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.an-bt{height:8px;border-radius:4px;background:var(--surface-2);overflow:hidden}
.an-bt i{display:block;height:100%;border-radius:4px;background:var(--info)}
.an-bar b{font:600 14px/1 var(--f-mono);font-variant-numeric:tabular-nums;min-width:3.4em;text-align:right}
.an-bar small{grid-column:2/-1;font-size:12px;color:var(--muted);margin-top:-1px}
@media (max-width:520px){
  .an-bar{grid-template-columns:minmax(0,1fr) auto;row-gap:5px}
  .an-bl{white-space:normal}
  .an-bt{grid-column:1/-1;grid-row:2}
  .an-bar b{grid-column:2;grid-row:1}
  .an-bar small{grid-column:1/-1;margin-top:-2px}
}

/* beta */
.an-betas{gap:12px}
.an-beta{background:var(--surface-2);border-radius:14px;box-shadow:inset 0 0 0 1px var(--hair);padding:14px 16px;display:grid;gap:4px;align-content:start;min-width:0}
.an-beta>span{font:500 12.5px/1.35 var(--f-body);color:var(--muted)}
.an-beta>b{font:700 25px/1.1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.an-beta-txt{margin:0;font-size:14px;line-height:1.45}
.an-details summary{cursor:pointer;font-weight:700;font-size:15px}
.an-details[open]>summary{margin-bottom:10px}
.an-details>.fine{margin-top:8px}
.an-details .row{margin-top:8px}

/* events */
.an-chips .an-n{font:600 12px var(--f-mono);color:var(--muted);margin-left:2px}
.an-events,.an-conns{list-style:none;margin:0;padding:0;display:grid}
.an-events li,.an-conns li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:6px 12px;padding:12px 0;border-top:1px solid var(--line);align-items:start}
.an-events li:first-child,.an-conns li:first-child{border-top:0;padding-top:4px}
.an-events p,.an-conns p{margin:0;line-height:1.4}
.an-d{margin:3px 0 0;font-size:14px;line-height:1.45}
.an-why{margin:3px 0 0;font-size:13px;color:var(--info-text);font-weight:600}
.an-events small,.an-conns small{display:block;margin-top:5px;font-size:13px;color:var(--muted)}
.an-events small a,.an-conns small a,.an-src-a{color:var(--link);font-weight:600;text-decoration:none}
.an-events small a:hover,.an-conns small a:hover,.an-src-a:hover{text-decoration:underline}
.tag.an-et,.tag.an-st{justify-self:start;white-space:nowrap;font-size:11px;padding:3px 9px;margin-top:1px}
.tag.an-et{background:var(--accent-soft);color:var(--accent-text)}
.tag.an-et.f{background:var(--surface-2);color:var(--ink)}
.tag.an-et.t{background:color-mix(in srgb,var(--c2) 16%,transparent);color:var(--c2)}
.tag.an-et.m{background:var(--amber-soft);color:var(--amber)}
.tag.an-st.c{background:var(--sel);color:var(--sel-ink)}
.tag.an-st.p{background:transparent;box-shadow:inset 0 0 0 1px var(--line-2);color:var(--muted)}
@media (max-width:520px){.an-events li,.an-conns li{grid-template-columns:minmax(0,1fr)}}
.an-locked{margin-top:4px}

/* what if */
.an-scform{display:flex;flex-wrap:wrap;gap:10px 12px;align-items:end}
.an-scform label{display:grid;gap:6px;font-size:13px;color:var(--muted);font-weight:600;min-width:0}
.an-scform label:first-child{flex:1 1 230px}
.an-scform select{width:100%}
.an-pctin{position:relative;display:block}
.an-pctin input{width:120px;padding-right:32px}
.an-pctin i{position:absolute;right:15px;top:50%;transform:translateY(-50%);font-style:normal;color:var(--muted);pointer-events:none}
.an-scform .btn{flex:0 0 auto}
.an-sclab{margin:0;font-weight:600}
.an-sctot{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:4px}
.an-sctot b{font:700 27px/1.1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.an-sctot span{font-size:14px;color:var(--muted)}
.an-scbars{display:grid;gap:8px;margin-top:12px}
.an-scrow{display:grid;grid-template-columns:minmax(0,8em) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:14px}
.an-scrow>span:first-child{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.an-scrow small{font:500 12px var(--f-mono);color:var(--muted);margin-left:6px}
.an-sct{position:relative;height:8px;border-radius:4px;background:var(--surface-2)}
.an-sct::after{content:"";position:absolute;left:50%;top:-3px;bottom:-3px;width:1px;background:var(--axis)}
.an-sct i{position:absolute;top:0;bottom:0}
.an-sct i.n{right:50%;background:var(--down);border-radius:4px 0 0 4px}
.an-sct i.p{left:50%;background:var(--up);border-radius:0 4px 4px 0}
.an-scrow>b{font:600 14px/1 var(--f-mono);font-variant-numeric:tabular-nums;min-width:4.6em;text-align:right}
.an-assume{margin:12px 0 0;padding-left:18px;font-size:13px;line-height:1.45;color:var(--muted);display:grid;gap:4px}
.an-earn{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:10px}
.an-earn h4{margin:0;font:650 16px/1.3 var(--f-head)}
.an-earn .row .ctl{flex:0 1 170px;min-width:0}
.an-earn .row .btn{flex:0 0 auto}
.an-earn-sum{margin:0;font-size:15px;line-height:1.5}
.an-earn-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.an-earn-list span{display:inline-flex;gap:8px;align-items:baseline;background:var(--surface-2);border-radius:8px;padding:5px 11px;font-size:13px}
.an-earn-list a{color:var(--muted);text-decoration:none}
.an-earn-list a:hover{text-decoration:underline}
.an-earn-list b{font:600 13px var(--f-mono);font-variant-numeric:tabular-nums}
.an-earn #anEarnOut>.fine{margin-top:8px}

/* linked wallets */
.an-wallets{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.an-wallets li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;background:var(--surface-2);border-radius:14px;padding:12px 14px}
.an-wallets li>div:first-child{min-width:0;flex:1 1 240px;display:grid;gap:2px}
.an-wallets small{display:block;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.an-wt{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.an-wallets .tag.an-k{background:var(--surface);color:var(--ink)}
.an-bad{color:var(--late)}

/* sheets */
.an-file{display:grid;gap:8px;font-size:14px;font-weight:600;color:var(--muted)}
.an-file input{font:inherit;font-size:14px;color:var(--ink);max-width:100%}
.an-file input::file-selector-button{border:0;border-radius:10px;padding:9px 16px;margin-right:12px;font:600 14px var(--f-body);background:var(--btn);color:var(--btn-ink);cursor:pointer}
.an-ta{display:block;width:100%;margin-top:8px;background:var(--paper);border:1px solid var(--line-2);border-radius:12px;padding:12px 14px;font:13px/1.45 var(--f-mono);color:var(--ink);resize:vertical}
.an-ta:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
#anCsvMap{display:grid;gap:12px;min-width:0}
#anCsvMap:empty{display:none}
.an-up{text-transform:uppercase}
.an-up::placeholder{text-transform:none}
.more.an-sm{margin-top:8px}
.seg.an-chains{display:flex;flex-wrap:wrap;border-radius:20px;justify-self:start}
#anHold .seg{justify-self:start}

/* Evidence Graph */
.an-evq{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.an-evq input[type=search]{flex:1 1 220px;min-width:0;background-color:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:10px 16px 10px 42px;font:inherit;font-size:16px;color:var(--ink);background-image:var(--search);background-repeat:no-repeat;background-position:15px center;background-size:18px}
.an-evq input[type=search]:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.an-evq .btn{flex:0 0 auto}
@media (max-width:620px){.an-evq .seg{flex:1 1 100%;display:flex}.an-evq .seg button{flex:1;padding:6px 6px}}
.an-evhead h2 span{font:500 16px/1.3 var(--f-body);color:var(--muted);margin-left:4px}
.an-evhead .sub .an-link{font-weight:600}
.an-evhead .sub a{color:var(--link);font-weight:600;text-decoration:none}
.an-alt{margin-top:-6px}
.an-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted)}
.an-legend span{display:inline-flex;align-items:center;gap:6px}
.an-legend svg{width:16px;height:16px;flex:none}
.an-graph{min-height:120px}
.an-graph svg{touch-action:pan-y}
.chart .an-laneb{fill:var(--surface-2)}
.chart .an-laneb.rel{fill:transparent;stroke:var(--line);stroke-dasharray:4 4}
.chart .an-lanel{font:700 12px var(--f-body);fill:var(--muted)}
.chart .an-lanee{font:500 12px var(--f-body);fill:var(--muted);opacity:.75}
.an-edge{fill:none;stroke-width:1.5;stroke-linecap:round}
.an-edge.c{stroke:var(--ink);stroke-opacity:.5}
.an-edge.p{stroke:var(--muted);stroke-opacity:.75;stroke-dasharray:4 3}
.an-edge.on{stroke:var(--accent);stroke-opacity:1;stroke-width:2.4}
.an-edge.dim{stroke-opacity:.14}
.an-node{cursor:pointer}
.an-node.faint{opacity:.55}
.chart .an-node[data-tip]:hover{opacity:1}
.chart .an-node.faint[data-tip]:hover{opacity:.8}
.an-hit{fill:transparent}
.an-node:focus{outline:none}
.an-node:focus-visible .an-hit{stroke:var(--focus);stroke-width:2.5}
.an-sugg .chiprow.an-wrap{flex-wrap:wrap;overflow:visible;margin-inline:0;padding:0}
.an-nl{text-align:left}
.an-notes{margin:0;padding-left:18px;font-size:13px;line-height:1.45;color:var(--muted);display:grid;gap:4px}

/* links added to cards and sheets */
.an-quick{margin-top:2px}
.an-quick .btn{flex:0 0 auto}
.tbl .an-mini,.an-mini{border:0;background:none;padding:0;margin-left:10px;font:600 12px/1 var(--f-body);color:var(--link);text-decoration:none;cursor:pointer;white-space:nowrap}
.an-mini:hover{text-decoration:underline}
.an-tv{white-space:nowrap}

/* The dev area's styles: the Developers tab, the Discord settings row and the Share sheet.
   Uses the design tokens defined in app.css; every class starts with dev-. */
.dev-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.dev-span{grid-column:1/-1}
@media (max-width:860px){.dev-grid{grid-template-columns:minmax(0,1fr)}}
.dev-hero{background:radial-gradient(520px 220px at 100% 0%,var(--info-soft),transparent 70%),var(--surface)}
.dev-lead{margin:0;color:var(--muted);font-size:15px;line-height:1.55;max-width:70ch}
.dev-links .btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;flex:0 1 auto}
.dev-empty p{margin:0 0 10px;color:var(--muted)}
.dev-sm{padding:7px 13px;font-size:13px;white-space:nowrap}
a.dev-sm{text-decoration:none;display:inline-flex;align-items:center}

.dev-list{list-style:none;margin:0;padding:0;display:grid}
.dev-list li{display:flex;gap:10px 14px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.dev-list li:first-child{padding-top:2px}
.dev-li-main{min-width:0;flex:1 1 220px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.dev-li-main b{font-weight:600}
.dev-li-main small{flex-basis:100%;color:var(--muted);font-size:13px;line-height:1.45}
.dev-prefix{color:var(--muted);font-size:13px}
.tag.dev-paused{background:var(--amber-soft);color:var(--amber)}
.dev-url{font-size:13px;overflow-wrap:anywhere;color:var(--ink);min-width:0}
a.dev-url{color:var(--link);text-decoration:none}
.dev-acts{display:flex;gap:6px;flex-wrap:wrap}
.dev-ok{color:var(--up);font-weight:600}
.dev-bad{color:var(--down);font-weight:600}

.dev-secret{background:var(--accent-soft);border-radius:14px;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent);padding:14px;display:grid;gap:8px}
.dev-secret b{color:var(--accent-text)}
.dev-secret small{color:var(--ink);font-size:13px;line-height:1.45}
.dev-secret .btn.ghost{justify-self:start}
.dev-copyrow{display:flex;gap:8px;min-width:0}
.dev-copyrow input{flex:1 1 auto;min-width:0;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:9px 12px;font-size:13px;color:var(--ink)}
.dev-copyrow input:focus{outline:none;border-color:var(--focus)}

.dev-form{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px 12px;align-items:end}
.dev-form label{display:grid;gap:6px;font-size:13px;color:var(--muted);font-weight:600;min-width:0}
.dev-form input,.dev-form textarea{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:9px 12px;font:inherit;font-size:15px;color:var(--ink);width:100%;min-width:0}
.dev-form textarea{resize:vertical;min-height:58px}
.dev-form input:focus,.dev-form textarea:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.dev-form select.ctl{width:100%}
.dev-form .btn{justify-self:start}
.dev-wide{grid-column:1/-1}
.dev-checks{border:0;margin:0;padding:0;display:flex;gap:6px 16px;flex-wrap:wrap;grid-column:1/-1}
.dev-checks legend{font-size:13px;color:var(--muted);font-weight:600;padding:0;margin-bottom:6px}
.dev-checks label{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--ink);font-weight:500}
.dev-checks input{width:18px;height:18px;accent-color:var(--accent)}

.dev-embed{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:980px){.dev-embed{grid-template-columns:minmax(0,1fr)}}
.dev-embed-ctl{display:grid;gap:12px;min-width:0}
.dev-embed-opts{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.dev-embed-opts input{background:var(--surface);border:1px solid var(--line-2);border-radius:12px;padding:9px 16px;font:inherit;font-size:14px;color:var(--ink);width:100%}
.dev-code{border:1px solid var(--line-2);border-radius:12px;overflow:hidden;min-width:0}
.dev-code-h{display:flex;gap:8px;align-items:center;padding:8px 10px 8px 14px;background:var(--surface-2)}
.dev-code-h b{font-size:13px}
.dev-code-h .btn{margin-left:auto}
.dev-code pre{margin:0;padding:10px 14px;font-size:12px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink)}
.dev-preview{background:var(--surface-2);border-radius:14px;padding:12px;display:grid;gap:8px;min-width:0}
.dev-preview-l{font:500 12.5px/1 var(--f-body);color:var(--muted)}
.dev-frame{display:block;width:100%;height:200px;border:0;background:transparent;color-scheme:normal}

.dev-dc{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}
.dev-dc:last-child{border-bottom:0}
.dev-dc b{display:block}
.dev-dc small{display:block;color:var(--muted);font-size:13px;line-height:1.45}

.dev-tools{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.dev-tools li{display:grid;gap:3px;justify-items:start;padding-bottom:10px;border-bottom:1px solid var(--line)}
.dev-tools a{color:var(--ink);text-decoration:none}
.dev-tools small{color:var(--muted);font-size:13px}
.dev-submit summary{cursor:pointer;font-weight:600;color:var(--link);font-size:14px;padding:4px 0}
.dev-submit[open] summary{margin-bottom:10px}

.dev-dcform{display:grid;gap:10px;padding:10px 0 14px;border-bottom:1px solid var(--line)}
.dev-steps{margin:0;padding-left:20px;color:var(--muted);font-size:14px;line-height:1.55}
.dev-steps b{color:var(--ink)}

.meta .dev-share{background:none;border:0;padding:0;color:var(--link);font:600 14px var(--f-body);cursor:pointer}
.meta .dev-share:hover{text-decoration:underline}
.dev-share-block{display:grid;gap:8px}
.dev-share-block>small{color:var(--muted);font-size:13px;margin-top:-4px}

.dev-card-img{width:100%;height:auto;border-radius:12px;box-shadow:inset 0 0 0 1px var(--hair);background:#04071A}

/* The community area's styles: the Research tab (rooms, public pages, bounties, credits, moderation),
   its sheets, and "Discuss" on signal cards. Uses the design tokens defined in app.css. */
.cm-root{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;min-width:0}
.cm-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;min-width:0}
.cm-head>*{min-width:0}
.cm-seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
.cm-seg::-webkit-scrollbar{display:none}
.cm-seg button{white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.cm-n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:6px;background:var(--beacon);color:var(--on-beacon);font:600 11px/1 var(--f-mono)}
.cm-me{font-size:14px;color:var(--muted);display:flex;gap:6px 12px;flex-wrap:wrap;align-items:center}
.cm-me b{color:var(--ink);font-weight:700}
.cm-bar{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 16px}
.cm-bar .section-t{margin:0 0 4px}
.cm-bar .fine{max-width:62ch}
.cm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.cm-stack{display:grid;gap:12px;min-width:0}
.cm-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* cards you can open: rooms, pages, bounties */
.cm-open{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow);display:grid;gap:6px;min-width:0;color:var(--ink);font-family:var(--f-body)}
.cm-open:hover{box-shadow:var(--shadow-lift)}
.cm-open:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.cm-t{font:650 18px/1.25 var(--f-head);letter-spacing:-.015em;display:flex;align-items:center;gap:8px;min-width:0}
.cm-t>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cm-t.cm-lines{display:block}
.cm-t.cm-lines>span:first-child{white-space:normal;overflow:visible;overflow-wrap:anywhere}
.cm-sub{color:var(--muted);font-size:14px;line-height:1.45;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.cm-meta{color:var(--muted);font-size:13px;line-height:1.4}
.cm-new{background:var(--accent-soft);color:var(--accent-text);font:600 11.5px/1 var(--f-body);padding:4px 6px;border-radius:5px;flex:none}

/* forms */
.cm-in,.cm-ta,.cm-sel{background:var(--paper);border:1px solid var(--line-2);border-radius:12px;padding:11px 14px;font:inherit;font-size:16px;font-weight:400;color:var(--ink);width:100%;min-width:0}
.cm-sel{-webkit-appearance:none;appearance:none;background-image:var(--chev);background-repeat:no-repeat;background-position:right 12px center;background-size:14px;padding-right:34px;width:auto}
.cm-ta{resize:vertical;min-height:96px;line-height:1.5}
.cm-ta.tall{min-height:280px}
.cm-in:focus,.cm-ta:focus,.cm-sel:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.cm-field{display:grid;gap:6px;font-size:14px;font-weight:600;color:var(--muted);min-width:0}
.cm-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center;min-width:0}
.cm-inline .cm-in{flex:1 1 200px}
.cm-inline .btn{flex:none}
.cm-at{font:700 18px var(--f-head);color:var(--muted)}
.cm-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px}
.cm-check{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:var(--ink);font-weight:600}
.cm-radios{display:grid;gap:8px}
.cm-radios label{display:flex;gap:10px;align-items:center;justify-content:flex-start;text-align:left;border:1px solid var(--line-2);border-radius:12px;padding:11px 14px;font-size:15px;font-weight:600;color:var(--ink);cursor:pointer}
/* app.css sizes every input in a .stack form like a text field; not these */
.cm-radios input[type=radio],.cm-check input[type=checkbox]{width:18px;height:18px;flex:none;margin:2px 0 0;padding:0;border:0;background:none;accent-color:var(--accent)}
.cm-radios input[type=radio]{margin:0}
.cm-radios label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}

/* the composer */
.cm-composer{gap:10px}
.cm-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cm-tools .chip{font-size:13px;padding:6px 11px}
.cm-send{margin-left:auto;display:flex;align-items:center;gap:12px}
.cm-count{margin-left:auto;font:500 12px var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums}
.cm-count.over{color:var(--late)}
.cm-att{display:flex;flex-wrap:wrap;gap:6px}
.cm-pill{display:inline-flex;align-items:center;gap:6px;max-width:100%;background:var(--surface-2);color:var(--ink);border-radius:8px;padding:5px 6px 5px 11px;font-size:13px;font-weight:600;min-width:0}
.cm-pill>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cm-pill .k{font-weight:600;color:var(--muted);flex:none}
.cm-x{border:0;background:transparent;color:var(--muted);font-size:17px;line-height:1;width:24px;height:24px;border-radius:50%;flex:none;cursor:pointer}
.cm-x:hover{background:var(--line);color:var(--ink)}

/* posts */
.cm-posts{display:grid;gap:12px}
.cm-post{background:var(--surface);border-radius:16px;padding:16px 18px;box-shadow:var(--shadow);display:grid;gap:10px;min-width:0}
.cm-post.cm-hl{box-shadow:0 0 0 1.5px var(--accent),0 0 0 5px color-mix(in srgb,var(--accent) 14%,transparent)}
.cm-ph{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:14px}
.cm-handle{font-weight:700;color:var(--ink)}
.cm-when{color:var(--muted)}
.cm-text{font-size:15.5px;line-height:1.55;overflow-wrap:anywhere;min-width:0}
.cm-text p{margin:0 0 8px}
.cm-text p:last-child{margin:0}
.cm-text a{color:var(--link)}
.cm-cash{border:0;margin:0;font:700 .92em/1.3 var(--f-mono);color:var(--ink);background:var(--surface-2);border-radius:6px;padding:0 3px;cursor:pointer;vertical-align:baseline}
.cm-cash:hover{background:var(--accent-soft)}
.cm-acts{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:center}
.cm-link{border:0;background:none;padding:2px 0;color:var(--link);font:600 14px var(--f-body);cursor:pointer;text-decoration:none}
.cm-link:hover{text-decoration:underline}
.cm-link.quiet{color:var(--muted);font-weight:600}
.cm-link.danger{color:var(--late)}
.cm-replies{display:grid;gap:10px;border-left:2px solid var(--line-2);padding-left:14px;margin:2px 0 0 2px}
.cm-reply{display:grid;gap:4px;min-width:0}
.cm-reply .cm-text{font-size:15px}
.cm-gone{color:var(--muted);font-style:italic;font-size:14px;margin:0}
.cm-more{justify-self:center}

/* attachments */
.cm-sig{border:1px solid var(--line-2);border-radius:12px;padding:10px 13px;display:grid;gap:4px;font-size:14px;min-width:0}
.cm-sig .k{font:600 12.5px/1.3 var(--f-body);color:var(--accent-text)}
.cm-sig b{font-size:15px;line-height:1.35;overflow-wrap:anywhere}
.cm-sig .l{display:flex;flex-wrap:wrap;gap:4px 14px}
.cm-sig a{color:var(--link);font-weight:600;text-decoration:none}
.cm-sig a:hover{text-decoration:underline}
.cm-sig.locked{border-style:dashed}
.cm-fig{margin:0;display:grid;gap:8px;background:var(--surface-2);border-radius:12px;padding:12px 12px 10px}
.cm-chart{width:100%;min-width:0;container-type:inline-size}
.cm-svg-s{display:none}
@container (max-width:479px){.cm-svg-l{display:none}.cm-svg-s{display:block}}
.cm-chart svg{display:block;width:100%;height:auto;font-family:var(--f-mono);overflow:visible}
.cm-chart.pick svg{cursor:crosshair;touch-action:manipulation}
.cm-notes{margin:0;padding-left:22px;font-size:14px;line-height:1.45;display:grid;gap:2px}
.cm-notes li::marker{color:var(--c2);font-weight:700}
.cm-src{margin:0;padding-left:20px;font-size:14px;display:grid;gap:3px;line-height:1.4}
.cm-src a{color:var(--link);overflow-wrap:anywhere}
.cm-cap{font-size:12px;color:var(--muted)}

/* a room */
.cm-room-top{display:grid;gap:6px}
.cm-room-top h2{font:700 clamp(22px,3.6vw,28px)/1.15 var(--f-display);letter-spacing:-.02em;margin:0;overflow-wrap:anywhere}
.cm-back{border:0;background:none;color:var(--link);font:600 14px var(--f-body);padding:0;cursor:pointer;justify-self:start}
.cm-room-grid{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
@media (min-width:1020px){.cm-room-grid{grid-template-columns:minmax(0,1fr) 330px;align-items:start}}
.cm-main,.cm-side{display:grid;gap:14px;min-width:0;align-content:start}
.cm-chips{display:flex;flex-wrap:wrap;gap:6px}
.cm-side .cm-inline .cm-in{flex-basis:110px}
.cm-feed{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.cm-feed li{display:grid;gap:3px;font-size:14px;line-height:1.4;min-width:0;overflow-wrap:anywhere}
.cm-feed .tk{justify-self:start;font-size:12px;padding:4px 7px;border-radius:8px}
.cm-feed .cm-meta a{color:var(--link);font-weight:600;text-decoration:none}
.cm-people{list-style:none;margin:0;padding:0;display:grid}
.cm-people li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);font-size:15px}
.cm-copy{display:flex;gap:8px;flex-wrap:wrap}
.cm-copy .cm-in{flex:1 1 240px;font:500 14px var(--f-mono)}

/* bounties and credits */
.cm-reward{font:700 24px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.cm-reward small{font:600 13px var(--f-body);color:var(--muted);margin-left:5px;letter-spacing:0}
.cm-open .cm-reward{font-size:22px}
.cm-flags{background:var(--amber-soft);color:var(--amber);border-radius:12px;padding:10px 13px;font-size:14px;line-height:1.45;margin:0}
.cm-flags b{color:inherit}
.cm-rules{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:4px 18px}
.cm-rules summary{cursor:pointer;font:650 16px var(--f-head);padding:12px 0}
.cm-rules ul{margin:0 0 14px;padding-left:20px;display:grid;gap:6px;font-size:14.5px;line-height:1.5}
/* the rules for public pages, next to "Send for review" */
.cm-rules-box{background:var(--surface-2);border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.5}
.cm-rules-box ul{margin:8px 0 0;padding-left:20px;display:grid;gap:5px}
.cm-sub-h{font:650 15px var(--f-head);margin:14px 0 0}
.cm-earlier{justify-self:start;font-size:13px}
.cm-status{font:500 11.5px/1.3 var(--f-mono);padding:3px 8px;border-radius:6px;background:var(--surface-2);color:var(--muted)}
.cm-status.ok{background:var(--up-soft);color:var(--up-text)}
.cm-status.warn{background:var(--amber-soft);color:var(--amber)}
.cm-status.bad{background:var(--late-soft);color:var(--late)}
.cm-table-wrap{overflow-x:auto;min-width:0}
.cm-table{width:100%;border-collapse:collapse;font-size:14px}
.cm-table th,.cm-table td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.cm-table th{color:var(--muted);font:500 12.5px/1.3 var(--f-body)}
.cm-table td.num,.cm-table th.num{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.cm-table td.pos{color:var(--up)}.cm-table td.neg{color:var(--down)}

/* moderation */
.cm-q{display:grid;gap:10px}
.cm-qitem{background:var(--surface);border-radius:16px;padding:14px 16px;box-shadow:var(--shadow);display:grid;gap:8px;min-width:0}
.cm-qitem blockquote{margin:0;padding:8px 12px;border-left:2px solid var(--line-2);color:var(--ink);font-size:14.5px;line-height:1.5;overflow-wrap:anywhere;white-space:pre-wrap}

/* the chart editor */
.cm-notes-edit{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cm-notes-edit li{display:flex;align-items:center;gap:8px;font-size:14px;justify-content:space-between;background:var(--surface-2);border-radius:10px;padding:8px 10px}
.cm-notes-edit li b{color:var(--c2)}
.cm-picked{font-size:13px;color:var(--muted);margin:0}

/* "Discuss" on signal cards */
.cm-discuss{border:0;background:none;padding:0;color:var(--link);font:600 14px var(--f-body);cursor:pointer}
.cm-discuss:hover{text-decoration:underline}

@media (max-width:560px){
  .cm-post,.cm-open{padding:14px 15px}
  .cm-replies{padding-left:10px}
}

/* The paper trading area's styles: the Paper trading tab, the trade sheet and the "Paper trade" links on
   cards. Uses only the design tokens and building blocks defined in app.css, so dark mode follows. */
.pt{display:grid;gap:14px;min-width:0}
.pt-center{justify-content:center}
.pt-center .btn{flex:0 0 auto}
.btn.pt-sm{flex:0 0 auto;padding:7px 13px;font-size:14px}

/* the paper-money note: always on screen */
.pt-paper{margin:0;display:flex;gap:10px;align-items:flex-start;font-size:13px;line-height:1.45;color:var(--muted);background:var(--surface);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow)}
.pt-paper::before{content:"";flex:none;width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--amber)}
.sheet .pt-paper{box-shadow:none;background:var(--surface-2)}

/* key numbers */
.pt-kpis .kpi b{font-size:24px;overflow-wrap:anywhere}
.pt-kpis .kpi em{line-height:1.35}
@media (max-width:420px){.pt-kpis .kpi{padding:12px 13px}.pt-kpis .kpi b{font-size:19px}.pt-kpis .kpi span{font-size:11px;letter-spacing:.06em}.pt-kpis .kpi em{font-size:12px}}
.pt-actions{align-items:center}
.pt-actions .btn{flex:0 0 auto}
.pt-left{font-size:13px;color:var(--muted)}
@media (max-width:480px){.pt-actions .btn{flex:1 1 auto}.pt-left{flex-basis:100%}}

/* the equity curve */
.pt-chart{min-height:120px}
.pt-chart svg{touch-action:pan-y}
.chart-legend i.pt-l-eq{background:var(--accent);height:3px;border-radius:2px}
.chart-legend i.pt-l-spy{height:0;border-radius:0;border-top:2px dashed var(--b1);background:none}

/* positions: Buy and Sell sit under each holding's name, so the table fits beside the summary column */
.tbl.pt-tbl{min-width:600px}
.tbl.pt-tbl td{vertical-align:top}
.tbl.pt-tbl td:first-child{white-space:normal;min-width:170px}
.tbl.pt-tbl small{display:block;font:500 12px/1.3 var(--f-body);color:var(--muted);opacity:1;margin-top:3px}
.tbl.pt-tbl td.pos small,.tbl.pt-tbl td.neg small{color:inherit}
.tag.pt-k{font-size:11px;padding:2px 8px;vertical-align:1px;white-space:nowrap;background:var(--surface-2);color:var(--muted)}
.tag.pt-k.crypto{background:color-mix(in srgb,var(--c2) 16%,transparent);color:var(--c2)}
.tag.pt-k.other{background:var(--amber-soft);color:var(--amber)}
.pt-acts{display:flex;gap:20px;margin-top:7px}
.tbl .pt-acts button{border:0;background:none;padding:0;font:600 14px var(--f-body);color:var(--link)}
.tbl .pt-acts button:hover{text-decoration:underline}
.tbl.pt-tbl small.pt-qp{display:none}
@media (max-width:620px){
  .tbl.pt-tbl{min-width:0}
  .tbl.pt-tbl th:nth-child(2),.tbl.pt-tbl td:nth-child(2),.tbl.pt-tbl th:nth-child(3),.tbl.pt-tbl td:nth-child(3),.tbl.pt-tbl th:nth-child(4),.tbl.pt-tbl td:nth-child(4){display:none}
  .tbl.pt-tbl td:first-child{min-width:0}
  .tbl.pt-tbl th,.tbl.pt-tbl td{padding:10px 8px}
  .tbl.pt-tbl th:first-child,.tbl.pt-tbl td:first-child{padding-left:12px}
  .tbl.pt-tbl th:last-child,.tbl.pt-tbl td:last-child{padding-right:12px}
  .tbl.pt-tbl small.pt-qp{display:block}
}

/* waiting orders and recent orders */
.pt-list{list-style:none;margin:0;padding:0;display:grid}
.pt-list li{display:flex;justify-content:space-between;align-items:center;gap:8px 14px;padding:12px 0;border-top:1px solid var(--line)}
.pt-list li:first-child{border-top:0;padding-top:2px}
.pt-list li>div{min-width:0;flex:1 1 auto}
.pt-list b{font-weight:700}
.pt-list small{display:block;margin-top:3px;font-size:13px;line-height:1.4;color:var(--muted);overflow-wrap:anywhere}
.pt-wait{font-size:13px;color:var(--muted);max-width:220px;text-align:right}
.pt-amt{flex:none;text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.pt-amt small{font-size:12px}
.tag.pt-st{font-size:11px;padding:2px 8px;margin-left:4px;vertical-align:1px;background:var(--surface-2);color:var(--muted)}
.tag.pt-st.bad{background:var(--late-soft);color:var(--late)}
.pt-orders li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
.pt-orders .pt-amt{padding-top:1px}
.pt-amt small{display:block;margin-top:2px}
@media (max-width:480px){.pt-list:not(.pt-orders) li{flex-wrap:wrap}.pt-wait{max-width:none;text-align:left}}
.pt-rules{margin:0;padding-left:18px;display:grid;gap:6px;font-size:14px;line-height:1.5}

/* signed out */
.pt-pitch{gap:14px;padding:24px}
.pt-pitch h2{margin:0;font:700 27px/1.12 var(--f-display);letter-spacing:-.02em;text-wrap:balance}
.pt-lead{margin:0;font-size:16px;color:var(--muted);max-width:60ch}
.pt-badge{justify-self:start;font:500 12.5px/1 var(--f-body);background:var(--accent-soft);color:var(--accent-text);padding:6px 8px;border-radius:6px}
.pt-ways{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.pt-ways li{display:grid;gap:4px;align-content:start;background:var(--surface-2);border-radius:14px;padding:14px 16px;box-shadow:inset 0 0 0 1px var(--hair)}
.pt-ways b{font:650 17px/1.25 var(--f-head);letter-spacing:-.01em}
.pt-ways span{font-size:14px;line-height:1.45;color:var(--muted)}
@media (max-width:760px){.pt-ways{grid-template-columns:minmax(0,1fr)}.pt-pitch{padding:18px}.pt-pitch h2{font-size:22px}}

/* the trade sheet */
.pt-form{gap:14px}
.seg.pt-seg{display:flex;border-radius:14px}
.seg.pt-seg button{flex:1;padding:9px 8px;font-size:14px;border-radius:11px}
.pt-up{text-transform:uppercase}
.pt-up::placeholder{text-transform:none}
.pt-usd{position:relative;display:block}
.pt-usd i{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-style:normal;font-weight:600;color:var(--muted);pointer-events:none}
.stack .pt-usd input{padding-left:28px}
.pt-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:-4px}
.pt-chips .chip{font-size:13px;padding:6px 12px}
#ptAmount{display:grid;gap:12px}
#ptAmount .fine{margin-top:-4px}
.stack input:disabled{opacity:.6}
.pt-quote{background:var(--surface-2);border-radius:14px;box-shadow:inset 0 0 0 1px var(--hair);padding:12px 14px;display:grid;gap:8px;min-height:52px}
.pt-quote .chart-note,.pt-quote .err{margin:0}
.pt-q-top{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.pt-q-top b{font:700 17px/1.2 var(--f-display);letter-spacing:-.02em;overflow-wrap:anywhere}
.pt-q-top span{font-size:14px;color:var(--muted)}
.pt-q{margin:0;display:grid;gap:6px}
.pt-q div{display:grid;grid-template-columns:7.5em minmax(0,1fr);gap:10px;font-size:14px;line-height:1.4}
.pt-q dt{color:var(--muted);font-weight:600}
.pt-q dd{margin:0;font-family:var(--f-mono);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.pt-q dd small{font:500 12px var(--f-body);color:var(--muted);margin-left:4px}
.pt-quote .fine{line-height:1.45}

/* "Paper trade" on insider buy and trader move cards */
.meta .pt-cardlink,.pt-cardlink{border:0;background:none;padding:0;color:var(--link);font:600 14px var(--f-body);cursor:pointer}
.pt-cardlink:hover{text-decoration:underline}

/* The alert set-up guide (ext/onboard.js): a sheet with three drawn steps for iPhone, a one-tap
   screen elsewhere, and Telegram as the channel that works everywhere. Uses app.css's tokens. */
.ob-sheet{max-width:640px}
.ob-steps{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:10px;counter-reset:ob}
.ob-steps li{display:grid;grid-template-columns:84px minmax(0,1fr);gap:14px;align-items:center;padding:12px 14px;border-radius:16px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hair);counter-increment:ob;position:relative}
.ob-steps li::before{content:counter(ob);position:absolute;left:10px;top:8px;width:22px;height:22px;border-radius:50%;background:var(--beacon);color:var(--on-beacon);font:700 12px/22px var(--f-mono);text-align:center}
.ob-steps svg{width:84px;height:84px;display:block}
.ob-steps b{display:block;font-size:16px;font-weight:700;letter-spacing:-.01em}
.ob-steps span{display:block;color:var(--muted);font-size:14px;line-height:1.45;margin-top:2px}
.ob-hero{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;align-items:center}
.ob-hero svg{width:112px;height:112px;display:block}
.ob-hero .why{color:var(--ink)}
.ob-other{display:grid;gap:10px;padding-top:12px;border-top:1px solid var(--line)}
.ob-other .btn{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;text-align:left;padding:10px 14px;height:auto;white-space:normal}
.ob-other .btn svg{width:44px;height:44px;display:block}
.ob-other .btn b{display:block;font-size:15px}
.ob-other .btn small{display:block;color:var(--muted);font-size:13px;line-height:1.4;margin-top:2px}
.ob-ok{color:var(--up-text);font-size:14px;margin:0}
.ob-foot{justify-content:flex-end;padding-top:4px}
.ob-foot .btn{padding:8px 14px;font-size:14px}
/* "Alerts on this device: …" lines in Settings and the account card */
.device-line{font-size:12.5px;color:var(--muted);letter-spacing:.02em}
#acctDevice{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;border-radius:14px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hair)}
#acctDevice .btn.sm{padding:7px 12px;font-size:13px}
@media (max-width:520px){
  .ob-steps li{grid-template-columns:72px minmax(0,1fr);padding:10px 12px}
  .ob-steps svg{width:72px;height:72px}
  .ob-hero{grid-template-columns:84px minmax(0,1fr)}
  .ob-hero svg{width:84px;height:84px}
}

/* The Congress area: the tab's filters, trade cards, a politician's page, and its Signals-feed cards.
   Built on app.css's tokens and classes (.slip, .chip, .card, .tag, .kind). */
.kind.cg i{background:var(--info);box-shadow:0 0 0 3px color-mix(in srgb,var(--info) 22%,transparent)}
.cg-card{gap:10px}
.cg-pols{display:flex;flex-wrap:wrap;gap:8px}
.cg-pols .chip small{color:var(--muted);font-weight:500;margin-left:2px}
.cg-filters{flex-direction:column;align-items:stretch;gap:10px}
.cg-search{display:flex;gap:8px;align-items:center}
.cg-search input{flex:1 1 auto;min-width:0;max-width:220px;padding:8px 12px;border-radius:10px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:inherit;font-size:14px}
.cg-search input:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.cg-note{margin:0}
.cg-trade .cg-name{font-weight:700;color:var(--ink)}
.cg-trade .slip-top .tklink{min-width:0;flex:1 1 auto;flex-direction:column;align-items:flex-start;gap:1px}
.cg-trade .slip-top .tklink .co{display:block;white-space:normal;overflow:visible;overflow-wrap:anywhere}
.cg-trade .slip-top .tklink .co:not(.cg-name){font-size:12.5px}
.cg-trade .slip-top > .tag{flex:none;align-self:flex-start}
.cg-asset{font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.cg-asset .tag{margin-left:6px;vertical-align:middle;white-space:nowrap}
.cg-late{color:var(--late)}
.tag.cg-party.D{background:var(--info-soft);color:var(--info-text)}
.tag.cg-party.R{background:var(--late-soft);color:var(--late)}
.tag.cg-party.I{background:var(--surface-2);color:var(--muted)}
.cg-back{align-self:flex-start;justify-self:start;margin-bottom:0}
.cg-head .chart-head{align-items:center}
.cg-head h2{font:700 24px/1.15 var(--f-display);letter-spacing:-.02em;margin:0}
.cg-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
.cg-kpis>div{background:var(--surface-2);border-radius:12px;padding:12px 14px;display:grid;gap:4px;min-width:0}
.cg-kpis small{font:500 13px/1.35 var(--f-body);color:var(--muted)}
.cg-kpis b{font:700 22px/1.1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.cg-reports{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14px;color:var(--ink-2)}
.cg-reports a{color:var(--link);text-decoration:none;font-weight:600}
@media (min-width:720px){
  .cg-filters{flex-direction:row;align-items:center}
  .cg-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* ---- the Congress tab, rebuilt: a 90-day picture, big trades, top traders, most bought, the list ---- */
:root{--cg-d:#2563EB;--cg-r:#DC2626;--cg-i:#6B7280}
:root[data-theme="dark"]{--cg-d:#60A5FA;--cg-r:#F87171;--cg-i:#9CA3AF}
@media (prefers-color-scheme:dark){:root[data-theme="system"]{--cg-d:#60A5FA;--cg-r:#F87171;--cg-i:#9CA3AF}}
.cg{display:grid;gap:22px;min-width:0}
.cg .up{color:var(--up-text)} .cg .down{color:var(--down)}
.cg-d{color:var(--cg-d);font-weight:600} .cg-r{color:var(--cg-r);font-weight:600}
.cg-sec{display:grid;gap:12px;min-width:0}
.cg-sec.card{padding:16px 18px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);align-content:start}
.cg-sec-h{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 12px}
.cg-sec-h h3{margin:0;font:700 18px/1.2 var(--f-display);letter-spacing:-.02em}
.cg-sec-h .sub{color:var(--muted);font-size:13px}
.cg-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}

/* faces */
.cg-av{--ring:var(--cg-i);position:relative;flex:none;width:40px;height:40px;border-radius:50%;overflow:hidden;display:grid;place-items:center;background:var(--surface-2);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--ring)}
.cg-av.D{--ring:var(--cg-d)} .cg-av.R{--ring:var(--cg-r)} .cg-av.I{--ring:var(--cg-i)}
.cg-av img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.cg-av.ini{font:700 14px/1 var(--f-display);color:var(--ink-2);letter-spacing:.02em}
.cg-av.sm{width:30px;height:30px}.cg-av.sm.ini{font-size:11px}
.cg-av.xs{width:24px;height:24px;box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--ring)}.cg-av.xs.ini{font-size:9px}
.cg-av.lg{width:104px;height:104px;box-shadow:0 0 0 3px var(--surface),0 0 0 6px var(--ring)}.cg-av.lg.ini{font-size:32px}

/* the 90-day picture */
.cg-hero{display:grid;gap:16px;padding:18px 20px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}
.cg-hero-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px 16px}
.cg-hero-h h2{margin:0;font:700 26px/1.1 var(--f-display);letter-spacing:-.025em}
.cg-hero-h p{margin:4px 0 0;color:var(--muted);font-size:14px}
.cg-live{display:inline-flex;align-items:center;gap:8px;font:500 12px/1 var(--f-mono);color:var(--ink-2);background:var(--surface-2);padding:7px 10px;border-radius:999px}
.cg-live i{width:7px;height:7px;border-radius:50%;background:var(--up);box-shadow:0 0 0 0 color-mix(in srgb,var(--up) 50%,transparent);animation:cg-pulse 2s infinite}
@keyframes cg-pulse{70%{box-shadow:0 0 0 7px transparent}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.cg-live i{animation:none}}
.cg-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.cg-stats>div{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:var(--surface-2);min-width:0}
.cg-stats small{font:500 13px/1.3 var(--f-body);color:var(--muted)}
.cg-stats b{font:700 24px/1.1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-stats span{font-size:12.5px;color:var(--muted)}
.cg-split{display:grid;gap:8px}
.cg-pr{display:grid;grid-template-columns:140px minmax(0,1fr) auto;align-items:center;gap:12px;font-size:13.5px}
.cg-pr-l{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--ink)}
.cg-pr-l i{width:10px;height:10px;border-radius:3px;background:var(--cg-i)}
.cg-pr.D .cg-pr-l i{background:var(--cg-d)} .cg-pr.R .cg-pr-l i{background:var(--cg-r)}
.cg-pr-l small{color:var(--muted);font-weight:500}
.cg-pr-n{color:var(--muted);font:500 12.5px/1 var(--f-mono);white-space:nowrap}
.cg-bar{display:block;height:10px;border-radius:999px;background:color-mix(in srgb,var(--down) 70%,var(--surface-2));overflow:hidden}
.cg-bar b{display:block;height:100%;background:var(--up);border-radius:999px 0 0 999px;transition:width .6s cubic-bezier(.22,.8,.2,1)}
.cg-bar.mini{height:5px;width:64px;justify-self:end}

/* big trades */
.cg-bigs{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:10px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory;scrollbar-width:thin}
.cg-bigc{scroll-snap-align:start;display:grid;gap:8px;text-align:left;border:0;padding:14px;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);position:relative;overflow:hidden;transition:box-shadow .15s,transform .15s}
.cg-bigc::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent)}
.cg-bigc:hover{box-shadow:var(--shadow-lift);transform:translateY(-1px)}
.cg-bigc-top{display:flex;align-items:center;gap:10px;min-width:0}
.cg-bigc-top>span:last-child{display:grid;min-width:0}
.cg-bigc-top b{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-bigc-top small{font-size:12px;color:var(--muted)}
.cg-bigc-what{display:flex;align-items:center;gap:8px;font:700 17px/1 var(--f-display)}
.cg-bigc-amt{font:700 22px/1 var(--f-display);letter-spacing:-.02em}
.cg-bigc-d{color:var(--muted);font-size:12px}

/* buy / sell words */
.cg-side{display:inline-block;font:600 12.5px/1 var(--f-body);padding:5px 7px;border-radius:6px;white-space:nowrap}
.cg-side.buy{background:var(--up-soft);color:var(--up-text)}
.cg-side.sell{background:var(--late-soft);color:var(--late)}
.cg-side.oth{background:var(--surface-2);color:var(--muted)}

/* top traders */
.cg-tops,.cg-tks{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.cg-top,.cg-tkr{width:100%;display:grid;align-items:center;gap:12px;border:0;text-align:left;padding:9px 10px;border-radius:10px;background:transparent;color:var(--ink);transition:background-color .15s}
button.cg-top:hover,button.cg-tkr:hover{background:var(--surface-2)}
.cg-top{grid-template-columns:18px auto minmax(0,1fr) auto}
.cg-rank{font:600 12px/1 var(--f-mono);color:var(--muted);text-align:right}
.cg-top-n,.cg-tkr-n{display:grid;gap:2px;min-width:0}
.cg-top-n b,.cg-tkr-n b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-top-n small,.cg-tkr-n small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-top-v,.cg-tkr-v{display:grid;gap:3px;justify-items:end;text-align:right}
.cg-top-v b,.cg-tkr-v b{font:700 15px/1.1 var(--f-display);white-space:nowrap}
.cg-top-v small,.cg-tkr-v small{font-size:12px;color:var(--muted);white-space:nowrap}
.cg-tkr{grid-template-columns:auto minmax(0,1fr) auto auto}
.cg-tkr .tklogo{width:32px;height:32px}
.cg-faces{display:flex;padding-left:6px}
.cg-faces .cg-av{margin-left:-6px}

/* members you follow */
.cg-fols{display:flex;flex-wrap:wrap;gap:8px}
.cg-fol{display:inline-flex;align-items:center;gap:8px;border:0;padding:5px 12px 5px 6px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow);color:var(--ink);font-size:14px;font-weight:600}
.cg-fol small{color:var(--muted);font-weight:500}
.cg-fol:hover{box-shadow:var(--shadow-lift)}

/* the list */
.cg-list{display:grid;gap:8px}
.cg-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;grid-template-areas:"who what amt" "meta meta meta";align-items:center;gap:8px 16px;padding:12px 16px;border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}
.cg-row.big{box-shadow:inset 3px 0 0 var(--accent),var(--shadow)}
.cg-row:not(:has(.cg-who)){grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"what amt" "meta meta"}
.cg-who{grid-area:who;display:flex;align-items:center;gap:10px;border:0;background:none;padding:0;text-align:left;color:var(--ink);min-width:0}
.cg-who>span:last-child{display:grid;gap:2px;min-width:0}
.cg-who b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-who small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cg-who:hover b{text-decoration:underline;text-underline-offset:3px}
.cg-what{grid-area:what;display:flex;align-items:center;gap:8px;min-width:0}
.cg-tk{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0;color:var(--ink);font:700 15px/1 var(--f-display)}
.cg-tk:hover b{text-decoration:underline;text-underline-offset:3px}
.cg-tk-named b{font:600 14.5px/1.25 var(--f-body);white-space:normal}.cg-tk-named:hover b{text-decoration:none}
.cg-asset-n{font-size:13.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.cg-amt{grid-area:amt;display:flex;align-items:center;gap:8px;justify-content:flex-end}
.cg-amt b{font:700 16px/1 var(--f-display);white-space:nowrap;font-variant-numeric:tabular-nums}
.cg-bigtag{font:600 11.5px/1 var(--f-body);color:var(--on-beacon);background:var(--beacon);padding:4px 6px;border-radius:5px}
.cg-meta{grid-area:meta;margin:0;font-size:12.5px;color:var(--muted)}
.cg-list .more{justify-self:center}
.why-tag.cg-big{background:var(--beacon);color:var(--on-beacon)}
.cg-inbox-av{margin-top:2px}
.cg-sigwho{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important}
.cg-sigwho>span:last-child{display:grid;min-width:0}

/* a member's page */
.cg-ph{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;position:relative;overflow:hidden}
.cg-ph::after{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--cg-i)}
.cg-ph.D::after{background:var(--cg-d)} .cg-ph.R::after{background:var(--cg-r)}
.cg-ph-b{display:grid;gap:6px;min-width:0}
.cg-ph-b h2{margin:0;font:700 30px/1.05 var(--f-display);letter-spacing:-.03em}
.cg-ph-b p{margin:0;color:var(--muted);font-size:14.5px}
.cg-ph-a{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.cg-ph-a .btn{padding:8px 14px;font-size:14px;text-decoration:none}
.cg-months{width:100%;height:auto;max-height:200px;display:block}
.cg-months line{stroke:var(--line-2);stroke-width:1}
.cg-months .b{fill:var(--up)} .cg-months .s{fill:var(--down)}
.cg-months text{font:500 9px var(--f-mono);fill:var(--muted);text-anchor:middle}

@media (max-width:899px){
  .cg-2{grid-template-columns:minmax(0,1fr)}
  .cg-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  .cg{gap:18px}
  .cg-hero{padding:14px;gap:12px}
  .cg-hero-h h2{font-size:22px}
  .cg-stats b{font-size:19px}
  .cg-stats>div{padding:10px 12px}
  .cg-pr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"l n" "bar bar";gap:6px 10px}
  .cg-pr-l{grid-area:l}.cg-pr-n{grid-area:n}.cg-pr .cg-bar{grid-area:bar}
  .cg-sec.card{padding:12px}
  .cg-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who amt" "what what" "meta meta";padding:12px}
  .cg-row:not(:has(.cg-who)){grid-template-areas:"what amt" "meta meta"}
  .cg-faces{display:none}
  .cg-tkr{grid-template-columns:auto minmax(0,1fr) auto}
  .cg-bar.mini{display:none}
  .cg-ph{grid-template-columns:minmax(0,1fr);justify-items:start;gap:14px}
  .cg-av.lg{width:84px;height:84px}
  .cg-ph-b h2{font-size:24px}
}

/* the member search at the top of the Congress page */
.cg-find{position:relative;display:grid;gap:8px}
.cg-find .feed-q{max-width:520px}
.cg-find-r{position:absolute;top:calc(100% + 6px);left:0;z-index:5;width:min(520px,100%);background:var(--raise);border:1px solid var(--line-2);border-radius:12px;box-shadow:var(--shadow-lift);padding:6px}
.cg-find-r .note-line{padding:10px 12px}
.cg-find-l{list-style:none;margin:0;padding:0;display:grid}
.cg-find-l button{display:flex;align-items:center;gap:12px;width:100%;border:0;background:none;padding:9px 10px;border-radius:9px;text-align:left;color:var(--ink);font:inherit}
.cg-find-l button:hover{background:var(--surface-2)}
.cg-find-l b{display:block;font-size:15px}
.cg-find-l small{display:block;font-size:12.5px;color:var(--muted);margin-top:1px}
.cg-row .cg-since{grid-column:1/-1;margin:-2px 0 0;font-size:12.5px;color:var(--muted)}
.cg-since .up{color:var(--up-text)}.cg-since .down{color:var(--late)}.cg-since .muted{color:var(--muted)}
.cg-kind{display:inline-flex;align-items:center;padding:2px 7px;border-radius:6px;background:var(--amber-soft);color:var(--amber);font-size:11.5px;font-weight:600;letter-spacing:.02em;white-space:nowrap}
.cg-strat{margin-top:12px}
.cg-strat-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 18px;margin-bottom:10px}
.cg-strat-nums small{display:block;font-size:12px;color:var(--muted)}
.cg-strat-nums b{display:block;font:600 24px/1.1 var(--f-mono);margin-top:2px}
.cg-strat-nums span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.cg-strat-chart svg{display:block;width:100%;height:auto}
.cg-legend{display:flex;gap:16px;margin-top:6px;font-size:12px;color:var(--muted)}
.cg-legend i{display:inline-block;width:14px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}
.cg-legend i.dash{background:repeating-linear-gradient(90deg,var(--muted) 0 4px,transparent 4px 7px)}
.cg-strat .fine{margin-top:10px}

.cg-paused{margin:0 0 12px;padding:12px 14px;border-radius:12px;background:var(--warn-soft, rgba(255,194,102,.12));box-shadow:inset 0 0 0 1px rgba(255,194,102,.4);font-size:14px;line-height:1.5}

/* "Pick 3 to follow" (ext/picks.js) */
.pk-sheet .sheet-in{padding-bottom:0}
.pk-lede{margin:0 0 6px;color:var(--muted);font-size:14.5px;line-height:1.45}
.pk-sec{display:grid;gap:8px;margin-top:16px}
.pk-sec h3{margin:0;font:700 16px/1.2 var(--f-display);letter-spacing:-.01em}
.pk-sub{margin:-4px 0 2px;color:var(--muted);font-size:13px}
.pk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.pk-card{position:relative;display:flex;align-items:center;gap:10px;text-align:left;border:0;padding:11px 36px 11px 12px;border-radius:12px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow);min-width:0;transition:box-shadow .15s,background-color .15s}
.pk-card:hover{box-shadow:var(--shadow-lift)}
.pk-card.on{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}
.pk-card .tklogo{width:30px;height:30px;flex:none}
.pk-t{display:grid;gap:2px;min-width:0}
.pk-t b{font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-t small{font-size:12px;line-height:1.35;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pk-tick{position:absolute;right:10px;top:50%;width:18px;height:18px;margin-top:-9px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--line-2)}
.pk-card.on .pk-tick{background:var(--beacon);box-shadow:none}
.pk-card.on .pk-tick::after{content:"";position:absolute;left:6px;top:3px;width:4px;height:8px;border:solid var(--on-beacon);border-width:0 2px 2px 0;transform:rotate(45deg)}
.pk-foot{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;margin:16px -20px 0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:var(--surface);box-shadow:0 -1px 0 var(--line)}
.pk-dots{display:flex;gap:4px}
.pk-dots i{width:8px;height:8px;border-radius:50%;background:var(--track)}
.pk-dots i.on{background:var(--accent)}
.pk-n{flex:1 1 auto;font-size:13.5px;color:var(--muted)}
.pk-foot .btn[disabled]{opacity:.45;cursor:not-allowed}
@media (max-width:640px){
  .pk-grid{grid-template-columns:minmax(0,1fr)}
  .pk-foot{margin:16px -16px 0;padding-left:16px;padding-right:16px;flex-wrap:wrap}
  .pk-foot .btn{flex:1 1 100%;order:3}
}
.pk-own-f{display:flex;gap:8px;margin-top:2px}
.pk-own-f input{flex:1 1 auto;min-width:0;height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:600 16px/1 var(--f-mono, ui-monospace, monospace);letter-spacing:.04em;text-transform:uppercase}
.pk-own-f input::placeholder{text-transform:none;letter-spacing:0;font-weight:400;color:var(--muted)}
.pk-own-f input:focus{outline:2px solid var(--accent);outline-offset:1px}
.pk-own-f .btn{flex:none;min-width:84px}
.pk-own-f .btn[disabled],.pk-own-f input[disabled]{opacity:.55}
.pk-own-g{grid-template-columns:minmax(0,1fr)}
.pk-own .pk-t small{-webkit-line-clamp:4}
.pk-co{font-weight:400;color:var(--muted);font-size:13px}
.pk-vol{display:grid;gap:10px;margin:14px 0 6px}
@media (min-width:640px){.pk-vol{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pk-volc{all:unset;box-sizing:border-box;display:block;padding:16px 16px 18px;border-radius:14px;border:1px solid var(--rule);background:var(--surface);cursor:pointer;transition:border-color .15s,transform .15s}
.pk-volc:hover,.pk-volc:focus-visible{border-color:var(--beacon);transform:translateY(-1px)}
.pk-volc-def{border-color:var(--rule-2);box-shadow:inset 0 0 0 1px var(--rule-2)}
.pk-volc b{display:block;font-size:17px;margin-bottom:6px}
.pk-volc small{display:block;font-size:13.5px;line-height:1.5;color:var(--muted)}
/* the first question: what to track */
.pk-ask{display:grid;gap:10px;margin:16px 0 4px}
.pk-area{position:relative;display:flex;align-items:center;gap:14px;text-align:left;border:0;padding:16px 44px 16px 16px;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);cursor:pointer;transition:box-shadow .15s,background-color .15s,transform .15s}
.pk-area:hover{box-shadow:inset 0 0 0 1px var(--line-2)}
.pk-area.on{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}
.pk-area .pk-t b{font-size:16px}
.pk-area .pk-t small{font-size:13px;-webkit-line-clamp:3}
.pk-area-ic{display:grid;place-items:center;width:42px;height:42px;flex:none;border-radius:12px;background:var(--surface-2);color:var(--ink)}
.pk-area.on .pk-area-ic{background:var(--beacon);color:var(--on-beacon)}
.pk-area-ic svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.pk-area.on .pk-tick{background:var(--beacon);box-shadow:none}
.pk-area.on .pk-tick::after{content:"";position:absolute;left:6px;top:3px;width:4px;height:8px;border:solid var(--on-beacon);border-width:0 2px 2px 0;transform:rotate(45deg)}
.pk-area .pk-tick{right:14px}
.pk-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.pk-av{display:grid;place-items:center;width:30px;height:30px;flex:none;border-radius:50%;background:var(--surface-2);font:700 13px/1 var(--f-body);color:var(--ink)}
.pk-empty{padding:10px 0}
@media (max-width:760px){.pk-three{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:no-preference){
  .pk-area{animation:pk-in .45s cubic-bezier(.2,.75,.25,1) both;animation-delay:calc(var(--i,0) * 70ms)}
  .pk-area:active{transform:scale(.985)}
  .pk-three .pk-card{animation:pk-in .45s cubic-bezier(.2,.75,.25,1) both}
  .pk-three .pk-card:nth-child(2){animation-delay:.07s}.pk-three .pk-card:nth-child(3){animation-delay:.14s}
  @keyframes pk-in{from{opacity:0;transform:translateY(8px)}}
}

/* Big stakes (13D/13G) and Planned sales (Form 144): ext/filings.js */
.hd{display:grid;gap:18px;min-width:0}
.hd-hero{display:grid;gap:14px;padding:18px 20px;border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}
.hd-hero h2{margin:0;font:700 26px/1.1 var(--f-display);letter-spacing:-.025em}
.hd-hero p{margin:6px 0 0;color:var(--muted);font-size:14.5px;line-height:1.5;max-width:70ch}
.hd-hero .btn{justify-self:start}
.hd-kpis{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:480px}
.hd-kpis>div{display:grid;gap:4px;padding:12px 14px;border-radius:12px;background:var(--surface-2)}
.hd-kpis b{font:700 24px/1.1 var(--f-display);letter-spacing:-.02em}
.hd-kpis small{font-size:12.5px;color:var(--muted)}
.hd-ctl{flex-direction:column;align-items:stretch;gap:10px}
.hd-list{display:grid;gap:10px}
.hd-row{gap:8px}
.hd-row.activist{box-shadow:inset 3px 0 0 var(--accent),var(--shadow)}
.hd-row.hl-focus{box-shadow:0 0 0 2px var(--accent),var(--shadow-lift);transition:box-shadow .3s}
.hd-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.hd-tk{display:flex;align-items:center;gap:10px;min-width:0}
.hd-tk .tklogo{width:34px;height:34px}
.hd-tk>span:last-child{display:grid;gap:2px;min-width:0}
.hd-tk b{font:700 17px/1.1 var(--f-display)}
.hd-tk small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hd-pct{display:grid;justify-items:end;gap:2px;text-align:right;flex:none}
.hd-pct b{font:700 24px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.hd-pct small{font-size:12px;color:var(--muted);white-space:nowrap}
.hd-pct small.up{color:var(--up-text)} .hd-pct small.down{color:var(--down)}
.hd-head{margin:0;font-size:15px;line-height:1.4;font-weight:600}
.hd-seller{font-weight:700;font-size:15px}
.hd-tags{display:flex;flex-wrap:wrap;gap:6px}
.hd-kind{font:600 12px/1 var(--f-body);padding:4px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted)}
.hd-kind.activist{background:var(--accent-soft);color:var(--accent-text)}
.hd-kind.noplan{background:var(--amber-soft);color:var(--amber)}
.hd-why summary{cursor:pointer;font-size:13.5px;font-weight:600;color:var(--ink-2)}
.hd-why p{margin:8px 0 0;font-size:14px;line-height:1.55;color:var(--ink-2);white-space:pre-line}
.hd-meta{margin:0;font-size:12.5px;color:var(--muted);line-height:1.5}
.hd-meta a{color:var(--link)}
@media (min-width:720px){.hd-ctl{flex-direction:row;align-items:center}}
@media (max-width:640px){.hd-hero{padding:14px}.hd-hero h2{font-size:22px}.hd-pct b{font-size:20px}}
.hd-ctl .presets{flex-wrap:wrap}

/* Funds (13F holdings): ext/funds.js */
.fd-search{max-width:520px}
.fd-moves{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fd-move{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:12px 14px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow);border:0;color:inherit;font:inherit;cursor:pointer}
.fd-move:hover{box-shadow:var(--shadow-lift)}
.fd-tk{display:flex;align-items:center;gap:10px;min-width:0;flex:none}
.fd-move .fd-tk{width:92px}
.fd-tk .tklogo,.fd-nologo{width:32px;height:32px;flex:none}
.fd-nologo{display:grid;place-items:center;border-radius:9px;background:var(--surface-2);color:var(--muted);font-weight:700}
.fd-tk b{font:700 15px/1.1 var(--f-display)}
.fd-tk>span{display:grid;gap:2px;min-width:0}
.fd-tk small{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:26ch}
.fd-what{flex:1;min-width:0;font-size:14.5px;line-height:1.4}
.fd-what small{display:block;margin-top:2px;font-size:12.5px;color:var(--muted)}
.fd-ch{flex:none;font:600 12px/1 var(--f-body);padding:5px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);white-space:nowrap}
.fd-ch.c-new,.fd-ch.c-add{background:var(--up-soft,var(--accent-soft));color:var(--up-text)}
.fd-ch.c-exit,.fd-ch.c-cut{background:var(--down-soft,var(--surface-2));color:var(--down)}
.fd-opt{font:600 12px/1 var(--f-body);padding:5px 10px;border-radius:999px;border:1px solid var(--line-2);color:var(--muted)}
.fd-cards{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.fd-card{display:grid;gap:10px;text-align:left;cursor:pointer;border:0;color:inherit;font:inherit}
.fd-card:hover{box-shadow:var(--shadow-lift)}
.fd-name{display:grid;gap:2px}
.fd-name b{font:700 17px/1.15 var(--f-display);letter-spacing:-.01em}
.fd-name small,.fd-num small{font-size:12.5px;color:var(--muted)}
.fd-num{display:flex;align-items:baseline;gap:8px}
.fd-num b{font:700 22px/1 var(--f-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.fd-top{display:flex;flex-wrap:wrap;gap:6px}
.fd-top>span{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 3px;border-radius:999px;background:var(--surface-2);font-size:12px}
.fd-top .tklogo,.fd-top .fd-nologo{width:20px;height:20px;border-radius:6px}
.fd-top i{font-style:normal;font-weight:700}
.fd-top small{color:var(--muted)}
.fd-back{justify-self:start}
.fd-head a{color:var(--link)}
.fd-periods,.fd-filters{display:flex;flex-wrap:wrap;gap:6px}
.fd-holdings{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.fd-h{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tk val" "tags sh";gap:6px 12px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.fd-h .fd-tk{grid-area:tk}
.fd-h .fd-tags{grid-area:tags;display:flex;gap:6px;flex-wrap:wrap}
.fd-h .fd-val{grid-area:val;display:grid;justify-items:end;text-align:right}
.fd-h .fd-val b{font:700 17px/1.1 var(--f-display);font-variant-numeric:tabular-nums}
.fd-h .fd-val small,.fd-h .fd-sh{font-size:12px;color:var(--muted)}
.fd-h .fd-sh{grid-area:sh;text-align:right}
.fd-h.is-exit{opacity:.85}
.fd-sub{margin:14px 0 8px;font:600 14px/1.3 var(--f-body);color:var(--muted)}
.fd-stock{display:grid;gap:8px}
@media (min-width:900px){
  .fd-h{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr) 150px 170px;grid-template-areas:"tk tags val sh"}
  .fd-h .fd-sh{text-align:right}
}
@media (max-width:640px){.fd-move .fd-tk{width:auto}.fd-move .fd-tk b{display:none}}
.fd-search{display:flex;gap:8px;align-items:center}
.fd-search input{flex:1;min-width:0}
.fd-search .btn{white-space:nowrap;flex:none}
/* Government contracts: ext/contracts.js */
.ct-leaders{display:grid;gap:8px}
.ct-leaders small{font-size:12.5px;color:var(--muted)}
.ct-leaders>div{display:flex;flex-wrap:wrap;gap:6px}
.ct-leaders .chip{display:inline-flex;align-items:center;gap:6px}
.ct-leaders .tklogo{width:18px;height:18px;border-radius:5px}
.ct-agency{font-weight:400;color:var(--muted)}
.ct-desc{margin:0;font-size:14px;line-height:1.5;color:var(--ink-2)}
/* White House trades: ext/whitehouse.js */
.wh-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.wh-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"tk amt" "who who" "when when";gap:6px 12px;align-items:center;padding:12px 14px;border-radius:14px;background:var(--surface);box-shadow:var(--shadow)}
.wh-row .fd-tk{grid-area:tk}
.wh-who{grid-area:who;display:grid;gap:1px;min-width:0}
.wh-who .linkbtn{justify-self:start;font-weight:600;text-align:left}
.wh-who small,.wh-amt small,.wh-when small{font-size:12px;color:var(--muted)}
.wh-amt{grid-area:amt;display:grid;justify-items:end;text-align:right}
.wh-amt b{font:700 15px/1.2 var(--f-display);white-space:nowrap}
.wh-amt b.up{color:var(--up-text)} .wh-amt b.dn{color:var(--down)}
.wh-when{grid-area:when;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.wh-when a{font-size:12.5px;color:var(--link)}
@media (min-width:900px){.wh-row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 170px 230px;grid-template-areas:"tk who amt when"}.wh-when{display:grid;justify-items:end;text-align:right;gap:2px}}
.fd-card.is-stale{opacity:.7}
.fd-stale{font-size:12.5px;color:var(--muted);line-height:1.4}

/* "Set up your alerts" on the Feed, and the tour: ext/setup.js */
.su-slot{margin:0 0 18px}
.su{display:grid;gap:14px;padding:20px 22px;border-radius:var(--r,18px);background:var(--panel,var(--surface));box-shadow:inset 0 0 0 1px var(--panel-edge,var(--hair)),var(--shadow)}
.su-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.su h2{margin:0;font:700 22px/1.15 var(--f-display);letter-spacing:-.02em}
.su-head p{margin:6px 0 0;color:var(--muted);font-size:14.5px;line-height:1.5;max-width:64ch}
.su-x{flex:none;width:32px;height:32px;border-radius:10px;border:0;background:var(--surface-2);color:var(--muted);font-size:18px;line-height:1;cursor:pointer}
.su-x:hover{color:var(--ink)}
.su-bar{height:6px;border-radius:99px;background:var(--surface-2);overflow:hidden}
.su-bar i{display:block;height:100%;border-radius:inherit;background:var(--accent);transition:width .5s cubic-bezier(.16,1,.3,1)}
.su-steps{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.su-steps li{display:flex;gap:12px;align-items:flex-start;padding:10px 0}
.su-steps li+li{border-top:1px solid var(--hair)}
.su-n{flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--surface-2);color:var(--muted);font:700 13px/1 var(--f-body)}
.su-steps li.now .su-n{background:var(--accent);color:var(--accent-ink,#0b0b0c)}
.su-steps li.done .su-n{background:var(--up-soft);color:var(--up-text)}
.su-steps li.done b{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}
.su-steps b{display:block;font-size:15.5px;line-height:1.35;padding-top:4px}
.su-steps p{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.5;max-width:60ch}
.su-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.su-foot{display:flex;justify-content:flex-start}
.su-foot .linkbtn,.su-acts .linkbtn{font-size:13.5px;color:var(--ink-2,var(--muted))}
.su-preview{counter-reset:s;display:flex;flex-wrap:wrap;gap:8px}
.su-preview li{counter-increment:s;padding:7px 12px 7px 8px;border:0;border-radius:99px;background:var(--surface-2);gap:8px;align-items:center}
.su-preview li+li{border-top:0}
.su-preview li::before{content:counter(s);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--accent-ink,#0b0b0c);font:700 11.5px/1 var(--f-body)}
.su-preview b{padding:0;font-size:13.5px;font-weight:600}
@media (max-width:640px){.su{padding:16px}.su h2{font-size:20px}}

.tour{position:fixed;inset:0;z-index:40}
.tour-hole{position:fixed;border-radius:14px;box-shadow:0 0 0 2px var(--accent),0 0 0 9999px rgba(0,0,0,.62);transition:top .3s cubic-bezier(.16,1,.3,1),left .3s cubic-bezier(.16,1,.3,1),width .3s,height .3s;pointer-events:none}
.tour-card{position:fixed;padding:18px 18px 14px;border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--hair),0 24px 60px -20px rgba(0,0,0,.7);transition:top .3s cubic-bezier(.16,1,.3,1),left .3s cubic-bezier(.16,1,.3,1)}
.tour-card h2{margin:2px 0 6px;font:700 19px/1.2 var(--f-display);letter-spacing:-.01em}
.tour-card p{margin:0;font-size:14.5px;line-height:1.5;color:var(--ink-2,var(--muted))}
.tour-card .tour-k{font-size:12.5px;color:var(--muted);margin:0}
.tour-acts{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px}
.tour-acts span{display:flex;gap:8px}
@media (prefers-reduced-motion:reduce){.tour-hole,.tour-card,.su-bar i{transition:none}}

/* Home (ext/home.js): "Right now" in a card at the top, then the topics as tiles. Each tile has a small
   screen with a moving picture of what the topic shows; the pictures share one set of colours (below) and only move
   while on screen (.play), never for people who ask for less motion. */
:root{
  --sc-bg:#F3F4F6; --sc-grid:rgba(0,0,0,.04); --sc-line:rgba(0,0,0,.26); --sc-f1:rgba(0,0,0,.09); --sc-f2:rgba(0,0,0,.18); --sc-paper:#FFFFFF;
  --e:cubic-bezier(.22,.8,.2,1);
}
:root[data-theme="dark"]{--sc-bg:#0E0F12; --sc-grid:rgba(255,255,255,.05); --sc-line:rgba(255,255,255,.3); --sc-f1:rgba(255,255,255,.14); --sc-f2:rgba(255,255,255,.28); --sc-paper:#1A1C21}
@media (prefers-color-scheme:dark){:root[data-theme="system"]{--sc-bg:#0E0F12; --sc-grid:rgba(255,255,255,.05); --sc-line:rgba(255,255,255,.3); --sc-f1:rgba(255,255,255,.14); --sc-f2:rgba(255,255,255,.28); --sc-paper:#1A1C21}}

.hub{display:grid;gap:28px;min-width:0}
.hub-h{margin:0 0 12px;font:700 19px/1.2 var(--f-display);letter-spacing:-.02em}

/* ---- Right now ---- */
.hub-now{display:grid;gap:14px;padding:16px 18px 18px;border-radius:var(--r);color:var(--ink);background:var(--surface);box-shadow:var(--shadow)}
.hub-now-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.hub-now-h h2{margin:0;font:700 19px/1.2 var(--f-display);letter-spacing:-.02em}
.now-sub{color:var(--muted);font-size:14px;flex:1 1 auto}
.hub-now .btn.ghost{padding:8px 14px;font-size:14px}
.beacon-mini{width:28px;height:28px;flex:none;overflow:visible}
.beacon-mini .b0{fill:var(--accent)}
.beacon-mini .b1,.beacon-mini .b2{fill:none;stroke:var(--accent);stroke-width:2;transform-box:fill-box;transform-origin:center;opacity:.5}
.now-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.now-row{width:100%;border:0;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;text-align:left;color:var(--ink);
  background:var(--surface-2);transition:background-color .15s}
.now-row:hover{background:var(--track)}
.now-who{display:grid;gap:2px;min-width:0}
.now-who b{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.now-who small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.now-v{font:700 18px/1 var(--f-display);letter-spacing:-.02em}
.now-s{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font:600 12px/1 var(--f-mono);color:var(--ink);box-shadow:inset 0 0 0 2.5px var(--accent)}
.now-empty{margin:0;color:var(--muted);font-size:14px}
@media (max-width:1099px){.now-list{grid-template-columns:minmax(0,1fr)}}

/* ---- the tiles ---- */
.hub-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.hub-tile{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:10px;align-content:start;min-width:0;border:0;text-align:left;color:var(--ink);
  background:var(--surface);border-radius:22px;padding:8px 8px 14px;box-shadow:var(--shadow);transition:transform .2s var(--e),box-shadow .2s}
.hub-tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.hub-tile:active{transform:translateY(0)}
.hub-tile.feat{grid-column:span 2}
.scene{display:block;position:relative;height:124px;border-radius:15px;overflow:hidden;
  background-color:var(--sc-bg);background-image:linear-gradient(var(--sc-grid) 1px,transparent 1px),linear-gradient(90deg,var(--sc-grid) 1px,transparent 1px);background-size:16px 16px;background-position:-1px -1px;
  box-shadow:inset 0 0 0 1px var(--hair)}
.ht-body{display:grid;gap:4px;padding:0 8px;min-width:0}
.ht-body b{font:700 16.5px/1.15 var(--f-display);letter-spacing:-.02em}
.ht-d{font-size:13.5px;line-height:1.4;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ht-n{justify-self:start;margin:0 8px;font:500 12px/1 var(--f-mono);color:var(--ink-2);background:var(--surface-2);padding:6px 9px;border-radius:7px}
@media (max-width:1099px){.hub-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .hub{gap:22px}
  .hub-grid{gap:10px}
  .hub-tile{border-radius:18px;padding:6px 6px 12px;gap:8px}
  .scene{height:90px;border-radius:13px}
  .hub-tile.feat .scene{height:104px}
  .ht-body{padding:0 6px}
  .ht-body b{font-size:15px}
  .ht-d{font-size:12.5px}
  .ht-n{margin:0 6px;font-size:11px}
  .hub-now{padding:14px 14px 16px;border-radius:18px}
  .now-sub{flex-basis:100%;order:3;font-size:13px}
  .hub-now-h .btn{margin-left:auto}
}

/* ---- the tools: smaller, picture beside the words ---- */
.hub-tools{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.hub-tool{display:grid;grid-template-columns:100px minmax(0,1fr);gap:12px;align-items:center;min-width:0;border:0;text-align:left;color:var(--ink);background:var(--surface);border-radius:18px;padding:7px 12px 7px 7px;box-shadow:var(--shadow);transition:transform .2s var(--e),box-shadow .2s}
.hub-tool:hover{transform:translateY(-2px);box-shadow:var(--shadow-lift)}
.hub-tool .scene.sm{height:64px;border-radius:12px;background-size:12px 12px}
.hub-tool .ht-body{padding:0}
.hub-tool .ht-body b{font:650 15.5px/1.2 var(--f-head);letter-spacing:-.01em}
.hub-tool .ht-d{font-size:13px}
@media (max-width:1099px){.hub-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.hub-tools{gap:10px}.hub-tool{grid-template-columns:minmax(0,1fr);gap:8px;padding:6px 6px 12px;align-items:start}.hub-tool .scene.sm{height:58px}.hub-tool .ht-body{padding:0 6px}.hub-tool .ht-body b{font-size:14.5px}}

/* ---- the pictures ---- */
.sc{display:block;width:100%;height:100%;overflow:hidden}
.sc *{transform-box:fill-box}
.sc text{font-family:var(--f-mono)}
.sc .f1{fill:var(--sc-f1)}
.sc .f2{fill:var(--sc-f2)}
.sc .paper{fill:var(--sc-paper);stroke:var(--sc-line);stroke-width:1}
.sc .base{stroke:var(--sc-line);stroke-width:1.5}

/* insider buys: the stamp, the wire, the bars */
.s-buys .stamp circle{fill:color-mix(in srgb,var(--accent) 14%,transparent);stroke:var(--accent);stroke-width:2.2}
.s-buys .stamp text{fill:var(--accent-text);font-size:15px;font-weight:700;text-anchor:middle}
.s-buys .stamp{transform-origin:center;transform:rotate(-8deg)}
.s-buys .wire{fill:none;stroke:var(--sc-line);stroke-width:2;stroke-dasharray:3 7}
.s-buys .bar{fill:var(--up);opacity:.85;transform-origin:50% 100%}
.s-buys .bar.hot{fill:var(--accent);opacity:1}
.s-buys .arrow{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
/* latest filings: a new row on top */
.s-latest .rbg{fill:var(--sc-f1)}
.s-latest .chip{fill:var(--sc-f2)}
.s-latest .row.new .rbg{fill:color-mix(in srgb,var(--accent) 15%,transparent);stroke:color-mix(in srgb,var(--accent) 60%,transparent);stroke-width:1}
.s-latest .dot{fill:var(--accent)}
/* clusters: three insiders meet at one stock */
.s-clusters .link{fill:none;stroke:var(--amber);stroke-width:1.6;stroke-dasharray:1 1}
.s-clusters .pp{fill:var(--sc-paper);stroke:var(--amber);stroke-width:1.6}
.s-clusters .ph{fill:none;stroke:var(--amber);stroke-width:1.6;stroke-linecap:round}
.s-clusters .tkc{fill:var(--sc-paper);stroke:var(--sc-line)}
.s-clusters .candle{stroke:var(--sc-line);stroke-width:1.4}
.s-clusters .cb{fill:var(--down)} .s-clusters .cb.up{fill:var(--up)}
.s-clusters .ring{fill:none;stroke:var(--amber);stroke-width:2;transform-origin:center;opacity:0}
.s-clusters .badge rect{fill:var(--amber)}
.s-clusters .badge text{fill:#1A1204;font-size:10.5px;font-weight:700;text-anchor:middle}
.s-clusters .badge{transform-origin:center}
/* insiders: a fan of profile cards */
.s-people .card{transform-origin:50% 100%}
.s-people .c1{transform:translate(-30px,5px) rotate(-10deg)}
.s-people .c3{transform:translate(30px,5px) rotate(10deg)}
.s-people .av{fill:var(--sc-f2);stroke:var(--c2);stroke-width:1.5}
.s-people .c2 .av{stroke:var(--accent)}
.s-people .rl{fill:var(--info-soft)}
/* Congress: the Capitol, reports flying to the tray, the clock */
.s-congress .cap,.s-congress .col{fill:var(--sc-f2)}
.s-congress .dome{fill:var(--sc-f2);stroke:var(--amber);stroke-width:1.4}
.s-congress .tip{fill:var(--amber)}
.s-congress .docf{opacity:0}
.s-congress .docf rect{fill:var(--sc-paper);stroke:var(--amber);stroke-width:1.2}
.s-congress .docf path{fill:none;stroke:var(--amber);stroke-width:1.2;stroke-linecap:round}
.s-congress .tray{fill:none;stroke:var(--sc-line);stroke-width:1.8;stroke-linecap:round}
.s-congress .clk{fill:none;stroke:var(--amber);stroke-width:1.8}
.s-congress .hand{stroke:var(--amber);stroke-width:2;stroke-linecap:round;transform-origin:50% 100%}
.s-congress .hub0{fill:var(--amber)}
.s-congress .lag{fill:var(--amber);font-size:11px;font-weight:600;text-anchor:middle}
/* top traders: longs and shorts */
.s-traders .axis{stroke:var(--sc-line);stroke-dasharray:3 4}
.s-traders .lbl{fill:var(--muted);font-size:10px;font-weight:600}
.s-traders .long{fill:var(--up);transform-origin:0% 50%}
.s-traders .short{fill:var(--down);transform-origin:100% 50%}
/* following: the phone and the bell */
.s-follow .phone{fill:var(--sc-paper);stroke:var(--sc-line);stroke-width:1.4}
.s-follow .note rect:first-child{fill:color-mix(in srgb,var(--accent) 16%,transparent);stroke:var(--accent);stroke-width:1}
.s-follow .bell path{fill:none;stroke:var(--ink-2);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}
.s-follow .bell{transform-origin:50% 0%}
.s-follow .bd{fill:var(--accent);transform-origin:center}
/* paper trading: the ticket */
.s-paper .slot{fill:var(--sc-f2)}
.s-paper .rcpt{transform-origin:50% 0%}
.s-paper .amt{fill:var(--up);font-size:8.5px;font-weight:700;text-anchor:middle}
/* portfolio: the slices */
.s-pf circle{fill:none;stroke-width:9}
.s-pf .s1{stroke:var(--c2);stroke-dasharray:44 100}
.s-pf .s2{stroke:var(--up);stroke-dasharray:30 100;stroke-dashoffset:-46}
.s-pf .s3{stroke:var(--accent);stroke-dasharray:20 100;stroke-dashoffset:-78}
.s-pf .pie{transform-origin:center}
/* track record: the line and its three marks */
.s-track .trace{fill:none;stroke:var(--up);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 1}
.s-track .mk circle{fill:var(--sc-bg);stroke:var(--up);stroke-width:2}
.s-track .mk{transform-origin:center}
/* backtest: the clock running back */
.s-bt .clk{fill:none;stroke:var(--c2);stroke-width:1.8}
.s-bt .hand{stroke:var(--c2);stroke-width:2;stroke-linecap:round;transform-origin:50% 100%}
.s-bt .rew{fill:none;stroke:var(--c2);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.s-bt .bar{fill:var(--c2);opacity:.8;transform-origin:50% 100%}
/* strategies: the sliders */
.s-lab .trk{stroke:var(--sc-f2);stroke-width:3;stroke-linecap:round}
.s-lab .knob{fill:var(--sc-paper);stroke:var(--c2);stroke-width:2}
/* evidence: the graph */
.s-ev .edge{stroke:var(--c2);stroke-width:1.4;stroke-dasharray:1 1}
.s-ev .node{fill:var(--sc-paper);stroke:var(--c2);stroke-width:1.6}
.s-ev .node.hub1{fill:var(--c2)}
/* research: the magnifier */
.s-rs .hl{fill:rgba(255,194,102,.32);transform-origin:0% 50%}
.s-rs .lens circle{fill:rgba(109,141,255,.12);stroke:var(--c2);stroke-width:2}
.s-rs .lens path{stroke:var(--c2);stroke-width:2.6;stroke-linecap:round}

/* the motion: only when there's no request for less, and only while the picture is on screen */
@media (prefers-reduced-motion:no-preference){
  .beacon-mini .b1,.beacon-mini .b2{animation:ib-wave 2.6s ease-out infinite}
  .beacon-mini .b2{animation-delay:1.3s}
  .s-buys .stamp{animation:ib-stamp 6s var(--e) infinite}
  .s-buys .wire{animation:ib-flow 1.1s linear infinite}
  .s-buys .bar{animation:ib-grow 6s var(--e) infinite;animation-delay:calc(var(--d) + .5s)}
  .s-buys .arrow{animation:ib-rise 6s var(--e) infinite}
  .s-latest .rows{animation:ib-feed 3.6s var(--e) infinite}
  .s-latest .row.new{animation:ib-fade 3.6s var(--e) infinite}
  .s-latest .dot{animation:ib-fade 3.6s var(--e) infinite}
  .s-clusters .in{animation:ib-come 5s var(--e) infinite;animation-delay:var(--d)}
  .s-clusters .link{animation:ib-draw 5s var(--e) infinite;animation-delay:var(--d)}
  .s-clusters .ring{animation:ib-ring 5s ease-out infinite}
  .s-clusters .badge{animation:ib-pop 5s var(--e) infinite}
  .s-people .c1{animation:ib-fanl 5s var(--e) infinite}
  .s-people .c3{animation:ib-fanr 5s var(--e) infinite}
  .s-people .c2{animation:ib-lift 5s var(--e) infinite}
  .s-congress .tip{animation:ib-glow 2.4s ease-in-out infinite}
  .s-congress .docf{animation:ib-fly 3.3s var(--e) infinite;animation-delay:var(--d)}
  .s-congress .hand{animation:ib-spin 3.3s linear infinite}
  .s-traders .long,.s-traders .short{animation:ib-breathe var(--t) ease-in-out infinite;animation-delay:var(--d)}
  .s-follow .note{animation:ib-drop 3.6s var(--e) infinite}
  .s-follow .bell{animation:ib-bell 3.6s ease-in-out infinite}
  .s-follow .bd{animation:ib-pop 3.6s var(--e) infinite}
  .s-paper .rcpt{animation:ib-print 4s var(--e) infinite}
  .s-pf .pie{animation:ib-spin 14s linear infinite}
  .s-pf .s3{animation:ib-slice 3.5s ease-in-out infinite alternate}
  .s-track .trace{animation:ib-trace 4.2s var(--e) infinite}
  .s-track .mk{animation:ib-mark 4.2s var(--e) infinite;animation-delay:var(--d)}
  .s-bt .hand{animation:ib-spin 3s linear infinite reverse}
  .s-bt .bar{animation:ib-grow 3.6s var(--e) infinite;animation-delay:var(--d)}
  .s-lab .knob{animation:ib-slide var(--t) ease-in-out infinite alternate;animation-delay:var(--d)}
  .s-ev .edge{animation:ib-draw 4.6s var(--e) infinite;animation-delay:var(--d)}
  .s-ev .node.hub1{animation:ib-glow 2.4s ease-in-out infinite}
  .s-rs .lens{animation:ib-scan 4.4s ease-in-out infinite}
  .s-rs .hl{animation:ib-mark-hl 4.4s ease-in-out infinite}
  .hub-tile:hover .scene,.hub-tool:hover .scene{box-shadow:inset 0 0 0 1px var(--line-2)}
}
.scene:not(.play) *,.beacon-mini:not(.play) *,.ib-hidden .scene *{animation-play-state:paused!important}

@keyframes ib-wave{0%{transform:scale(.45);opacity:.95}100%{transform:scale(1.2);opacity:0}}
@keyframes ib-stamp{0%,12%{transform:scale(0) rotate(-24deg);opacity:0}18%{transform:scale(1.32) rotate(4deg);opacity:1}24%,88%{transform:scale(1) rotate(-8deg);opacity:1}96%,100%{transform:scale(.6) rotate(-8deg);opacity:0}}
@keyframes ib-flow{to{stroke-dashoffset:-10}}
@keyframes ib-grow{0%,6%{transform:scaleY(0)}30%,84%{transform:scaleY(1)}94%,100%{transform:scaleY(0)}}
@keyframes ib-rise{0%,40%{opacity:0;transform:translateY(8px)}50%,84%{opacity:1;transform:translateY(0)}94%,100%{opacity:0}}
@keyframes ib-feed{0%,45%{transform:translateY(-26px)}62%,100%{transform:translateY(0)}}
@keyframes ib-fade{0%,45%{opacity:0}62%,100%{opacity:1}}
@keyframes ib-come{0%,6%{transform:translate(var(--tx),var(--ty));opacity:0}28%,86%{transform:none;opacity:1}96%,100%{transform:none;opacity:0}}
@keyframes ib-draw{0%,26%{stroke-dashoffset:1}42%,84%{stroke-dashoffset:0}94%,100%{stroke-dashoffset:1}}
@keyframes ib-ring{0%,44%{transform:scale(.7);opacity:0}50%{opacity:.9}74%,100%{transform:scale(1.45);opacity:0}}
@keyframes ib-pop{0%,44%{transform:scale(0)}52%{transform:scale(1.25)}58%,86%{transform:scale(1)}94%,100%{transform:scale(0)}}
@keyframes ib-fanl{0%,12%,88%,100%{transform:translate(-8px,2px) rotate(-3deg)}36%,64%{transform:translate(-40px,7px) rotate(-13deg)}}
@keyframes ib-fanr{0%,12%,88%,100%{transform:translate(8px,2px) rotate(3deg)}36%,64%{transform:translate(40px,7px) rotate(13deg)}}
@keyframes ib-lift{0%,24%,76%,100%{transform:none}40%,60%{transform:translateY(-7px)}}
@keyframes ib-glow{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes ib-fly{0%{transform:translate(0,0) rotate(0);opacity:0}12%{opacity:1}50%{transform:translate(48px,-46px) rotate(-12deg)}84%{transform:translate(96px,6px) rotate(6deg);opacity:1}100%{transform:translate(96px,12px) rotate(6deg);opacity:0}}
@keyframes ib-spin{to{transform:rotate(360deg)}}
@keyframes ib-breathe{0%,100%{transform:scaleX(.5)}50%{transform:scaleX(1)}}
@keyframes ib-drop{0%,14%{transform:translateY(-14px);opacity:0}30%,80%{transform:none;opacity:1}92%,100%{transform:none;opacity:0}}
@keyframes ib-bell{0%,28%,52%,100%{transform:rotate(0)}32%{transform:rotate(16deg)}38%{transform:rotate(-14deg)}44%{transform:rotate(9deg)}48%{transform:rotate(-5deg)}}
@keyframes ib-print{0%,8%{transform:scaleY(0)}45%,86%{transform:scaleY(1)}96%,100%{transform:scaleY(0)}}
@keyframes ib-slice{from{stroke-dasharray:20 100}to{stroke-dasharray:26 100}}
@keyframes ib-trace{0%,6%{stroke-dashoffset:1}52%,86%{stroke-dashoffset:0}96%,100%{stroke-dashoffset:1}}
@keyframes ib-mark{0%,30%{transform:scale(0)}40%{transform:scale(1.3)}46%,86%{transform:scale(1)}96%,100%{transform:scale(0)}}
@keyframes ib-slide{from{transform:translateX(0)}to{transform:translateX(var(--x))}}
@keyframes ib-scan{0%,100%{transform:translate(0,0)}33%{transform:translate(-24px,9px)}66%{transform:translate(-10px,20px)}}
@keyframes ib-mark-hl{0%,100%{transform:scaleX(1)}33%{transform:scaleX(.4)}66%{transform:scaleX(.75)}}

/* the owner's tally across the top of Home */
.hub-tally{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:12px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
.ht-k{color:var(--muted);font-size:13.5px}
.ht-cell{display:flex;align-items:baseline;gap:9px;min-width:0}
.ht-cell>b{font:700 26px/1 var(--f-head);font-stretch:82%;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.ht-cell>b em{font-style:normal;font-size:16px;color:var(--muted);font-weight:600}
.ht-cell>span{display:grid;font-size:13.5px;line-height:1.2;color:var(--ink)}
.ht-cell>span small{font-size:12px;color:var(--muted);white-space:nowrap}
.ht-goal>span{min-width:150px}
.ht-bar{display:block;height:4px;border-radius:2px;background:var(--chip);margin-top:5px;overflow:hidden}
.ht-bar i{display:block;height:100%;background:var(--accent);border-radius:2px}
.ht-days{display:inline-flex;align-items:flex-end;gap:3px;height:22px}
.ht-days i{display:block;width:6px;background:var(--line-2);border-radius:2px 2px 0 0}
.ht-days i:last-child{background:var(--accent)}
.ht-more{margin-left:auto;border:1px solid var(--line-2);background:transparent;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:500;color:var(--ink)}
@media (max-width:640px){.hub-tally{gap:14px 18px;padding:12px 14px}.ht-days{display:none}.ht-more{margin-left:0}}

/* ---- Home: this week in numbers ---- */
.hub-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;border-radius:var(--r);overflow:hidden;background:var(--line);box-shadow:var(--shadow)}
.hs-cell{display:grid;gap:6px;align-content:start;min-width:0;border:0;text-align:left;padding:16px 18px;background:var(--surface);color:var(--ink);transition:background-color .15s}
.hs-cell:hover{background:var(--surface-2)}
.hs-cell b{font:700 30px/1 var(--f-display);font-stretch:82%;letter-spacing:-.025em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hs-cell span{font-size:13px;line-height:1.35;color:var(--muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hub-stats .now-empty{grid-column:1/-1;padding:16px 18px;background:var(--surface)}
@media (max-width:1099px){.hub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.hub-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.hs-cell{padding:14px}.hs-cell b{font-size:24px}.hs-cell:last-child:nth-child(odd){grid-column:1/-1}}

/* ---- Home: two cards side by side on wide screens ---- */
.hub-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start}
.hub-2:empty{display:none}
.hub-2>*:only-child{grid-column:1/-1}
@media (max-width:1099px){.hub-2{grid-template-columns:minmax(0,1fr)}}
.now-list.col{grid-template-columns:minmax(0,1fr);gap:6px}
.now-list.col .now-row{padding:10px 12px}
.now-v.sm{font:600 13px/1.2 var(--f-mono);letter-spacing:0;white-space:nowrap}
/* phones: the name gets the room, the amount and Buy/Sell stay inside the card */
@media (max-width:520px){.now-list.col .now-row{gap:8px;padding:10px}.now-list.col .now-who{min-width:64px}.now-list.col .tk{width:100px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.now-list.col .now-v.sm{text-align:right}}
.hub-now p .btn{margin-top:4px}

/* ---- Home: clusters forming ---- */
.hub-cl{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hcl{width:100%;border:0;display:grid;gap:6px;padding:12px 14px;border-radius:10px;text-align:left;color:var(--ink);background:var(--surface-2);transition:background-color .15s}
.hcl:hover{background:var(--track)}
.hcl .tk{font-weight:700}
.hcl-co{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hcl-n{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 4px}
.hcl-n b{font:600 13px var(--f-mono);color:var(--ink)}
.hcl-n i{width:3px;height:3px;border-radius:50%;background:var(--line-2);margin:0 4px;align-self:center}
.hcl-dots{display:flex;gap:4px}
.hcl-dots i{width:8px;height:8px;border-radius:50%;background:var(--amber);opacity:.85}
@media (max-width:640px){.hub-cl{grid-template-columns:minmax(0,1fr)}}

/* ---- Home: Congress rows ---- */
.pty{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;vertical-align:middle;background:var(--line-2)}
.pty.p-D{background:#60A5FA}.pty.p-R{background:#F87171}
.cg-asset{font:600 12px var(--f-mono);color:var(--ink-2);white-space:nowrap}
.cg-ty{font:600 11.5px/1 var(--f-mono);padding:6px 8px;border-radius:6px;background:var(--surface);color:var(--muted)}
.cg-ty.b{color:var(--up);background:rgba(64,220,155,.12)}
.cg-ty.s{color:var(--down);background:rgba(248,113,113,.12)}

/* ---- section Overviews: the topic tiles ---- */
.hub-grid.few{grid-template-columns:repeat(2,minmax(0,1fr))}
.hub-grid.few .hub-tile.feat{grid-column:auto}
.hub-tools.big{grid-template-columns:repeat(3,minmax(0,1fr))}
.hub-tools.big .hub-tool{grid-template-columns:minmax(0,1fr);gap:10px;padding:8px 8px 14px;border-radius:22px;align-items:start}
.hub-tools.big .hub-tool .scene.sm{height:104px;border-radius:15px;background-size:16px 16px}
.hub-tools.big .hub-tool .ht-body{padding:0 8px}
@media (max-width:1099px){.hub-tools.big{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.hub-grid.few{grid-template-columns:minmax(0,1fr)}.hub-tools.big .hub-tool .scene.sm{height:80px}}

.ht-heard{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;font-size:13px;color:var(--muted)}
.ht-heard b{font:600 13px var(--f-mono);color:var(--ink)}
#authForm .opt{font-weight:400;color:var(--muted);font-size:12.5px;margin-left:4px}
#authForm select{width:100%}

/* The weekly Instagram kit and "Share to story" (ext/kit.js) */
.story-row{margin-top:10px}
.kit-h{margin:18px 0 8px;font:700 15px/1.2 var(--f-display);letter-spacing:-.01em}
.kit-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x mandatory}
.kit-thumb{flex:none;display:block;border-radius:8px;overflow:hidden;box-shadow:var(--shadow);scroll-snap-align:start;background:#080c0a}
.kit-thumb img{display:block;width:108px;height:135px;image-rendering:pixelated}
.kit-thumb.tall img{width:81px;height:144px}
.kit-cap{width:100%;box-sizing:border-box;padding:12px;border-radius:12px;border:1px solid var(--line-2);background:var(--surface);color:var(--ink);font:14px/1.5 var(--f-sans, system-ui);resize:vertical}

/* The insider dashboard at the top of the Feed (ext/dash.js). The app's own look: its surfaces, lines and
   type; lime for the beacon and the notice, green and red only for buying and selling.
   One raised panel, planned sales, carries the page. Its last column is the head start drawn to one shared
   scale: a lime dot for the notice, a line out to where the sale was reported (green) or, while it hasn't
   been, a dashed line to now with the beacon turning at its end. Everything else sits open on the page
   under a hairline. Motion: the planned panel is scanned in once and its lines draw out; the beacon turns;
   the busiest-stocks board flips; new rows get a pass of light. All of it off for reduced motion. */
.dsh{display:grid;gap:20px;margin:0 0 26px;min-width:0}
.dsh .up{color:var(--up)}
.dsh .dn{color:var(--down)}
.dsh .r{text-align:right}
.dsh .mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
/* on the Feed the dashboard says when it's live, so the "Updated" line only shows when something is wrong */
.wrap.tab-sig #stamp:not(:has(b)){display:none}

/* one toolbar: search, filters, range, alerts */
.dsh-bar{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap}
.dsh-q{flex:1 1 260px;min-width:0}
.dsh-q input{width:100%;border:1px solid var(--line);background:var(--surface) var(--search) no-repeat 12px 50%/16px;border-radius:10px;padding:9px 12px 9px 36px;font-size:15px;color:var(--ink);transition:border-color .15s,box-shadow .15s}
.dsh-q input:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px var(--hair)}
.dsh-pills{display:flex;gap:8px;align-items:center;flex-wrap:wrap;order:3;flex:1 1 100%}
.dsh-pill select{appearance:none;-webkit-appearance:none;border:1px solid var(--line);background:var(--surface) var(--chev) no-repeat right 10px center/14px;border-radius:10px;padding:8px 32px 8px 12px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;transition:border-color .15s}
.dsh-pill select:hover,.dsh-pill select:focus{border-color:var(--line-2);outline:none}
.dsh-pill select:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.dsh-bar-r{display:flex;align-items:center;gap:8px;order:2}
.dsh-range button{padding:6px 11px;font-size:13px}
#dashAlerts{display:inline-flex;align-items:center;gap:7px}
#dashAlerts svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dsh-switch{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;padding:4px 2px;position:relative}
.dsh-switch small{color:var(--muted);font:500 11px var(--f-mono);margin-left:2px}
.dsh-switch input{position:absolute;opacity:0;width:1px;height:1px}
.dsh-sw{width:36px;height:20px;border-radius:10px;background:var(--track);position:relative;transition:background-color .2s;flex:none}
.dsh-sw::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgba(0,0,0,.3);transition:transform .2s cubic-bezier(.3,1.4,.5,1)}
.dsh-switch input:checked+.dsh-sw{background:var(--accent)}
.dsh-switch input:checked+.dsh-sw::after{transform:translateX(16px)}
.dsh-switch input:focus-visible+.dsh-sw{outline:2px solid var(--focus);outline-offset:2px}


/* busiest stocks, last three days: a strip of split-flap tiles */
.dsh-tr{display:flex;align-items:center;gap:14px;min-width:0}
.dsh-tr-k{font-size:13px;color:var(--muted);flex:none;white-space:nowrap}
.dsh-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;gap:6px;flex:1;min-width:0}
.dsh-flap{border:0;background:none;padding:0;perspective:420px;min-width:0;color:var(--ink)}
.dsh-flap-in{display:block;position:relative;height:32px;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.45,.05,.3,1.3)}
.dsh-flap-f,.dsh-flap-b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:7px;border-radius:7px;background:var(--surface-2);border:1px solid var(--line);
  font:500 13px/1 var(--f-mono);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;white-space:nowrap}
.dsh-flap-f::after,.dsh-flap-b::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--hair)} /* the hinge */
.dsh-flap-b{transform:rotateX(180deg)}
.dsh-flap.turning .dsh-flap-in{transform:rotateX(-180deg)}
.dsh-flap .tklogo{width:18px;height:18px;flex:none}
.dsh-flap span{font-size:12px}
.dsh-flap:hover .dsh-flap-f{border-color:var(--line-2)}


/* live marks */
.dsh-live{display:inline-flex;align-items:center;gap:7px;font:600 12.5px/1 var(--f-body);color:var(--accent-text);vertical-align:middle;letter-spacing:0}
/* the beacon: a lit core, and a beam turning round it */
.dsh-bcn{position:relative;width:8px;height:8px;border-radius:50%;background:var(--beacon);box-shadow:0 0 6px 1px color-mix(in srgb,var(--beacon) 70%,transparent);flex:none}
.dsh-bcn::before{content:"";position:absolute;left:50%;top:50%;width:26px;height:26px;margin:-13px 0 0 -13px;border-radius:50%;
  background:conic-gradient(from 0deg,color-mix(in srgb,var(--beacon) 70%,transparent) 0deg,transparent 55deg,transparent 360deg);
  -webkit-mask:radial-gradient(circle,transparent 3px,#000 4px,#000 60%,transparent 72%);mask:radial-gradient(circle,transparent 3px,#000 4px,#000 60%,transparent 72%);opacity:.9}


/* the planned-sales panel: the one raised surface on the page */
.dsh-lead{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:calc(var(--r) + 6px);min-width:0;overflow:hidden;
  box-shadow:0 1px 0 var(--hair),0 28px 56px -40px rgba(0,0,0,.55)}
.dsh-lh{display:flex;justify-content:space-between;align-items:flex-start;gap:12px 20px;padding:20px 22px 16px;flex-wrap:wrap}
.dsh-lh h3{margin:0;font:700 24px/1.15 var(--f-head);font-stretch:82%;letter-spacing:-.015em;color:var(--ink);display:flex;align-items:center;gap:12px}
.dsh-lh p{margin:8px 0 0;color:var(--ink-2);font-size:15px;line-height:1.5;max-width:68ch}
.dsh-lh p b{font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
.dsh-n-odd{color:var(--muted)}
.dsh-h-r{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.dsh-seg button{padding:5px 10px;font-size:12.5px}

/* the other sections sit open on the page */
.dsh-sec{min-width:0;border-top:1px solid var(--line);padding-top:4px}
.dsh-h{display:flex;justify-content:space-between;align-items:flex-end;gap:10px 16px;padding:14px 0 12px;flex-wrap:wrap}
.dsh-h h3{margin:0;font:700 18px/1.2 var(--f-head);font-stretch:82%;color:var(--ink);display:flex;align-items:center;gap:10px}
.dsh-h p{margin:3px 0 0;color:var(--muted);font-size:13.5px;max-width:62ch}
.dsh-two{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:28px}
.dsh-empty,.dsh-err,.dsh-held{margin:0;padding:14px 0 18px;color:var(--muted);font-size:14px}
.dsh-lead .dsh-empty{padding:14px 22px 22px;border-top:1px solid var(--line)}
.dsh-held{padding:0 0 10px;color:var(--ink)}

/* tables */
.dsh-tw{overflow-x:auto;max-height:460px;overflow-y:auto;scrollbar-width:thin}
.dsh-lead .dsh-tw{border-top:1px solid var(--line);max-height:560px}
.dsh-t{width:100%;border-collapse:collapse;font-size:14px}
.dsh-t th{position:sticky;top:0;z-index:1;background:var(--paper);text-align:left;font:500 12.5px/1.2 var(--f-body);color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);white-space:nowrap}
.dsh-lead .dsh-t th{background:var(--surface)}
.dsh-sec .dsh-t th:first-child,.dsh-sec .dsh-t td:first-child{padding-left:0}
.dsh-sec .dsh-t th:last-child,.dsh-sec .dsh-t td:last-child{padding-right:0}
.dsh-lead .dsh-t th:first-child,.dsh-lead .dsh-t td:first-child{padding-left:22px}
.dsh-lead .dsh-t th:last-child,.dsh-lead .dsh-t td:last-child{padding-right:22px}
.dsh-t th.r{text-align:right}
.dsh-t td{padding:11px 14px;border-bottom:1px solid var(--hair);white-space:nowrap;color:var(--ink);vertical-align:middle}
.dsh-plan td{padding-top:14px;padding-bottom:14px;vertical-align:top}
.dsh-t tbody tr{cursor:pointer;transition:background-color .15s}
.dsh-t tbody tr:hover,.dsh-t tbody tr:focus-visible{background:var(--surface-2);outline:none}
.dsh-t tbody tr:last-child td{border-bottom:0}
.dsh-t a{color:inherit;text-decoration:none;border-bottom:1px dotted var(--line-2)}
.dsh-t a:hover{border-bottom-color:currentColor}
.dsh-sym{display:inline-flex;align-items:center;gap:10px}
.dsh-sym .tklogo{width:26px;height:26px;flex:none}
.dsh-sym b{font:600 14px/1.2 var(--f-mono)}
.dsh-sym>span{display:grid;gap:2px;min-width:0}
.dsh-sym small{display:block;font:400 12.5px/1.25 var(--f-body);color:var(--muted);max-width:190px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dsh-who{display:flex;align-items:baseline;gap:4px 10px;flex-wrap:wrap}
.dsh-who .linkbtn{text-decoration:none;color:var(--ink);font-weight:600;font-size:14px}
.dsh-who .linkbtn:hover{text-decoration:underline}
.dsh-role{font-size:13px;color:var(--muted)}
.dsh-odd-tag,.dsh-plan-tag{display:inline-block;font:600 11.5px/1 var(--f-body);padding:4px 8px;border-radius:999px;white-space:nowrap}
.dsh-odd-tag{background:var(--beacon);color:var(--on-beacon)}
.dsh-plan-tag{color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);font-weight:500}
.dsh-side+.dsh-plan-tag{margin-left:8px}
.dsh-why{margin:5px 0 0;color:var(--ink-2);font-size:12.5px;line-height:1.4;white-space:normal;max-width:340px}
.dsh-why::first-letter{text-transform:uppercase}
.dsh-ft{margin:4px 0 0;color:var(--muted);font-size:12px;white-space:normal}
.dsh-odd td:first-child{box-shadow:inset 3px 0 0 var(--beacon)}
.dsh-amt{font-weight:500;color:var(--ink)}
.dsh-when{font-size:13px;color:var(--muted)}
.dsh-side{font-weight:600;font-size:13.5px}
.dsh-side.buy{color:var(--up)}
.dsh-side.sell{color:var(--down)}

/* busiest stocks: buys grow left from the middle, sales right */
.dsh-t th.dsh-split-h{text-align:center;padding-left:0;padding-right:0}
.dsh-split-h span{display:inline-block;width:50%;box-sizing:border-box}
.dsh-split-h span:first-child{text-align:right;padding-right:10px}
.dsh-split-h span:last-child{text-align:left;padding-left:10px}
.dsh-board-t td.dsh-split{width:42%;min-width:190px}
.dsh-spl{display:grid;grid-template-columns:2.4em minmax(0,1fr) minmax(0,1fr) 2.4em;align-items:center;column-gap:6px}
.dsh-spl .n{font:500 13px/1 var(--f-mono)}
.dsh-spl .n.b{text-align:right;color:var(--up)}
.dsh-spl .n.s{color:var(--down)}
.dsh-spl .bar{position:relative;height:10px}
.dsh-spl .bar.b{box-shadow:1px 0 0 var(--line)}
.dsh-spl .bar i{position:absolute;top:0;bottom:0;width:calc(var(--w) * 100%);transform-origin:right center}
.dsh-spl .bar.b i{right:1px;background:var(--up);border-radius:5px 1px 1px 5px}
.dsh-spl .bar.s i{left:0;background:var(--down);border-radius:1px 5px 5px 1px;transform-origin:left center}
tr:hover .dsh-spl .bar i{filter:brightness(1.12)}

/* latest trades: how big each trade is, against the biggest in the list */
.dsh-vv{display:inline-grid;justify-items:end;gap:4px}
.dsh-vbar{display:block;height:3px;width:calc(var(--w) * 64px);border-radius:2px;transform-origin:right center}
.dsh-vbar.buy{background:color-mix(in srgb,var(--up) 75%,transparent)}
.dsh-vbar.sell{background:color-mix(in srgb,var(--down) 70%,transparent)}

/* a refresh that brought new trades */
.dsh-newnote{display:inline-flex;align-items:center;gap:9px;margin:0;padding:6px 12px 6px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:13px;font-weight:600;transition:opacity .4s,transform .4s}
.dsh-newnote .dsh-bcn{width:7px;height:7px}
.dsh-newnote.out{opacity:0;transform:translateY(-6px)}

/* biggest trades: the card under the pointer */
.dsh-bubw{position:relative}
.dsh-tip{position:absolute;left:0;top:0;z-index:5;pointer-events:none;min-width:190px;max-width:270px;padding:11px 13px;border-radius:12px;background:var(--surface);border:1px solid var(--line);box-shadow:0 18px 40px -18px rgba(0,0,0,.55);font-size:13px;color:var(--ink);transition:transform .14s cubic-bezier(.2,.7,.2,1)}
.dsh-tip p{margin:8px 0 3px;line-height:1.35}
.dsh-tip>small{color:var(--muted);font-size:12px}
.dsh-tip .dsh-sym small{max-width:180px}
.dsh-bub circle.on{stroke-width:3;transform:scale(1.18);opacity:1}
.dsh-bub:has(circle.on) circle:not(.on):not(.ring){opacity:.4}
.dsh-scan{stroke:var(--beacon);stroke-width:2;opacity:0;pointer-events:none}

/* a new range or filter loading: the old view dims, a line of light runs under the toolbar */
.dsh.busy>:not(.dsh-bar):not(.dsh-tr){opacity:.45;transition:opacity .2s;pointer-events:none}
.dsh-bar{position:relative}
.dsh.busy .dsh-bar::after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:2px;border-radius:1px;background:linear-gradient(90deg,transparent,var(--beacon),transparent) no-repeat;background-size:35% 100%}

/* the head start: one shared three-day scale down the column */
.tl-cell{width:36%;min-width:250px}
.dsh-t th.tl-head{position:sticky;padding-top:0;padding-bottom:0;height:38px}
.tl-head span{position:absolute;top:50%;transform:translate(-50%,-50%);font-size:12px}
.tl-head span:nth-child(1){left:14px;transform:translate(0,-50%)}
.tl-head span:nth-child(2){left:calc(14px + (100% - 36px) / 3)}
.tl-head span:nth-child(3){left:calc(14px + (100% - 36px) * 2 / 3)}
.tl-head span:nth-child(4){left:auto;right:22px;transform:translate(0,-50%)}
.tl{position:relative;height:12px;margin:3px 0 0;
  background:linear-gradient(var(--hair),var(--hair)) 0 50%/100% 1px no-repeat,
    linear-gradient(var(--line),var(--line)) 33.333% 50%/1px 7px no-repeat,
    linear-gradient(var(--line),var(--line)) 66.667% 50%/1px 7px no-repeat,
    linear-gradient(var(--line),var(--line)) 100% 50%/1px 7px no-repeat}
.tl i{position:absolute;display:block}
.tl-line{left:0;top:50%;height:2px;margin-top:-1px;width:var(--x);border-radius:1px;transition:width 1.2s cubic-bezier(.2,.7,.2,1),height .15s,margin .15s}
.dsh-plan tbody tr:hover .tl-line,.dsh-plan tbody tr:focus-visible .tl-line{height:4px;margin-top:-2px}
.tl.done .tl-line{background:linear-gradient(90deg,var(--beacon),var(--up))}
.tl.wait .tl-line{background:repeating-linear-gradient(90deg,var(--amber) 0 5px,transparent 5px 9px);opacity:.85}
.tl.over .tl-line{-webkit-mask:linear-gradient(90deg,#000 80%,transparent);mask:linear-gradient(90deg,#000 80%,transparent)}
.tl-a{left:0;top:50%;width:10px;height:10px;margin:-5px 0 0 -1px;border-radius:50%;background:var(--beacon);box-shadow:0 0 0 3px color-mix(in srgb,var(--beacon) 25%,transparent)}
.tl.done .tl-b{left:var(--x);top:50%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--up);box-shadow:0 0 0 3px color-mix(in srgb,var(--up) 20%,transparent)}
.tl.wait .tl-b{transition:left 1.2s cubic-bezier(.2,.7,.2,1);left:var(--x);top:50%;width:9px;height:9px;margin:-4.5px 0 0 -4.5px;border-radius:50%;background:var(--amber)}
.tl.wait .tl-b::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1.5px solid var(--amber);opacity:0}
.tl.over .tl-b{display:none}
.tl-lab{display:inline-block;margin-top:8px;font-size:12.5px;white-space:normal}
.tl-lab.done{color:var(--ink-2)}
.tl-lab.wait{color:var(--amber)}

/* clusters */
.dsh-cl{list-style:none;margin:0;padding:0;border-top:1px solid var(--line);max-height:440px;overflow-y:auto}
.dsh-cl li+li{border-top:1px solid var(--hair)}
.dsh-cl button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:none;padding:11px 0;text-align:left;color:var(--ink);transition:background-color .15s}
.dsh-cl button:hover{background:var(--surface-2)}
.dsh-cl-n{font-size:13px;font-weight:600;text-align:right;display:grid;justify-items:end;gap:2px;flex:none;min-width:86px}
.dsh-dots{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px;max-width:96px;margin-left:auto}
.dsh-dots i{width:8px;height:8px;border-radius:50%;background:currentColor}
.dsh-dots.buy{color:var(--up)}
.dsh-dots.sell{color:var(--down)}
.dsh-dots em{font:600 11px/8px var(--f-mono);font-style:normal;color:var(--muted)}
.dsh-cl-n>span{white-space:nowrap}
.dsh-cl-n b{font:700 15px var(--f-mono)}
.dsh-cl-n small{color:var(--muted);font:400 12px var(--f-mono)}

/* notable trades */
.dsh-legend{display:flex;gap:14px;font-size:13px;color:var(--muted)}
.dsh-legend span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.dsh-legend .buy::before{background:var(--up)}
.dsh-legend .sell::before{background:var(--down)}
.dsh-bub{display:block;width:100%;height:auto;border-top:1px solid var(--line);padding:6px 0 4px}
.dsh-bub .g{stroke:var(--grid);stroke-width:1;stroke-dasharray:3 5}
.dsh-bub text{font:500 11px var(--f-mono);fill:var(--muted)}
.dsh-bub .xl{text-anchor:middle}
.dsh-bub .xl.first{text-anchor:start}
.dsh-bub circle{stroke-width:1.5;transition:transform .2s,opacity .2s;transform-box:fill-box;transform-origin:center}
.dsh-bub circle.buy{fill:color-mix(in srgb,var(--up) 55%,transparent);stroke:var(--up)}
.dsh-bub circle.sell{fill:color-mix(in srgb,var(--down) 50%,transparent);stroke:var(--down)}
.dsh-bub circle:hover{transform:scale(1.18);opacity:1}
.dsh-bub:hover circle:not(:hover):not(.ring){opacity:.55}
.dsh-bub circle.ring{fill:none;stroke-width:2;opacity:0;pointer-events:none}
.dsh-bub circle.ring.buy{stroke:var(--up)}
.dsh-bub circle.ring.sell{stroke:var(--down)}


/* biggest trades */
.dsh-legend{display:flex;gap:14px;font-size:13px;color:var(--muted)}
.dsh-legend span::before{content:"";display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:0}
.dsh-legend .buy::before{background:var(--up)}
.dsh-legend .sell::before{background:var(--down)}
.dsh-bub{display:block;width:100%;height:auto;padding:6px 0 4px}
.dsh-bub .g{stroke:var(--grid);stroke-width:1;stroke-dasharray:3 5}
.dsh-bub text{font:500 11px var(--f-mono);fill:var(--muted)}
.dsh-bub .xl{text-anchor:middle}
.dsh-bub .xl.first{text-anchor:start}
.dsh-bub circle{stroke-width:1.5;transition:transform .2s,opacity .2s;transform-box:fill-box;transform-origin:center}
.dsh-bub circle.buy{fill:color-mix(in srgb,var(--up) 55%,transparent);stroke:var(--up)}
.dsh-bub circle.sell{fill:color-mix(in srgb,var(--down) 50%,transparent);stroke:var(--down)}
.dsh-bub circle:hover{transform:scale(1.18);opacity:1}
.dsh-bub:hover circle:not(:hover):not(.ring){opacity:.55}
.dsh-bub circle.ring{fill:none;stroke-width:2;opacity:0;pointer-events:none}
.dsh-bub circle.ring.buy{stroke:var(--up)}
.dsh-bub circle.ring.sell{stroke:var(--down)}

/* loading rows */
.dsh-skel{display:grid;gap:10px;padding:14px 0 18px}
.dsh-skel i{height:16px;border-radius:6px;background:linear-gradient(90deg,var(--surface-2) 0%,color-mix(in srgb,var(--beacon) 22%,var(--surface-2)) 50%,var(--surface-2) 100%);background-size:200% 100%}
.dsh-skel.chart i{height:240px}

.dsh-lead .dsh-skel{padding:16px 22px 22px;border-top:1px solid var(--line)}

/* motion */
@media (prefers-reduced-motion:no-preference){
  .dsh-bcn::before{animation:dsh-turn 2.4s linear infinite}
  @keyframes dsh-turn{to{transform:rotate(360deg)}}

  /* the light sweeps over planned sales (on load, and when a new notice arrives) */
  .dsh-lead::after{content:"";position:absolute;top:-20%;bottom:-20%;left:0;width:38%;pointer-events:none;opacity:0;z-index:2;
    background:linear-gradient(100deg,transparent 0%,color-mix(in srgb,var(--beacon) 18%,transparent) 50%,transparent 80%);transform:translateX(-120%) skewX(-12deg)}
  .dsh-lead.sweep::after{animation:dsh-sweep 1.7s cubic-bezier(.5,0,.25,1) both}
  @keyframes dsh-sweep{0%{opacity:0;transform:translateX(-120%) skewX(-12deg)}12%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(320%) skewX(-12deg)}}

  /* a sale not yet reported: the dashes run toward now */
  .tl.wait:not(.over) .tl-line{animation:dsh-dash 1.2s linear infinite}
  @keyframes dsh-dash{to{background-position:9px 0}}
  /* and the mark at now pulses: still watching for the Form 4 */
  .tl.wait:not(.over) .tl-b::after{animation:dsh-ping 2s cubic-bezier(0,.4,.4,1) infinite}
  @keyframes dsh-ping{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.8);opacity:0}}

  /* first draw, once: the planned panel is scanned in, its rows follow, their lines draw out */
  .dsh:not(.settled) .dsh-lead{animation:dsh-reveal .7s cubic-bezier(.2,.7,.2,1) both}
  .dsh:not(.settled) .dsh-lead::before{content:"";position:absolute;left:0;right:0;height:2px;top:0;z-index:3;pointer-events:none;
    background:linear-gradient(90deg,transparent,var(--beacon),transparent);box-shadow:0 0 12px 2px color-mix(in srgb,var(--beacon) 50%,transparent);animation:dsh-line .7s cubic-bezier(.2,.7,.2,1) both}
  @keyframes dsh-reveal{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
  @keyframes dsh-line{0%{top:0;opacity:1}90%{opacity:1}100%{top:100%;opacity:0}}
  .dsh:not(.settled) .dsh-plan tbody tr{animation:dsh-row .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.2s + var(--r,0) * 45ms)}
  @keyframes dsh-row{from{opacity:0;transform:translateY(4px)}}
  .dsh:not(.settled) .tl-line{animation:dsh-draw 1s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.45s + var(--r,0) * 45ms)}
  .dsh:not(.settled) .tl.wait:not(.over) .tl-line{animation:dsh-draw 1s cubic-bezier(.2,.7,.2,1) both,dsh-dash 1.2s linear 1.6s infinite;animation-delay:calc(.45s + var(--r,0) * 45ms),1.6s}
  .dsh:not(.settled) .tl-b,.dsh:not(.settled) .tl-lab{animation:dsh-in .35s ease-out both;animation-delay:calc(1.2s + var(--r,0) * 45ms)}
  @keyframes dsh-draw{from{width:0}}
  @keyframes dsh-in{from{opacity:0}}
  .dsh:not(.settled) .dsh-flap .dsh-flap-in{animation:dsh-flipin .7s cubic-bezier(.45,.05,.3,1.3) both;animation-delay:calc(var(--s,0) * 70ms)}
  @keyframes dsh-flipin{from{transform:rotateX(90deg)}}
  @keyframes dsh-sonar{0%{transform:scale(1);opacity:.85}100%{transform:scale(3.2);opacity:0}}

  /* sections further down: hidden until they scroll into view, then played once (dash.js adds .in .play) */
  .dsh-sec[data-reveal]:not(.in) .dsh-h,.dsh-sec[data-reveal]:not(.in) tbody tr,.dsh-sec[data-reveal]:not(.in) .dsh-cl li{opacity:0}
  .dsh-sec[data-reveal]:not(.in) .dsh-spl .bar i,.dsh-sec[data-reveal]:not(.in) .dsh-vbar{transform:scaleX(0)}
  .dsh-sec[data-reveal]:not(.in) .dsh-dots i,.dsh-sec[data-reveal]:not(.in) .dsh-bub circle:not(.ring){transform:scale(0);opacity:0}
  .dsh-sec.play .dsh-h{animation:dsh-up .5s cubic-bezier(.2,.7,.2,1) both}
  .dsh-sec.play tbody tr,.dsh-sec.play .dsh-cl li{animation:dsh-up .45s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(.08s + var(--r,0) * 38ms)}
  @keyframes dsh-up{from{opacity:0;transform:translateY(8px)}}
  .dsh-sec.play .dsh-spl .bar i{animation:dsh-grow .8s cubic-bezier(.2,.75,.25,1) both;animation-delay:calc(.25s + var(--r,0) * 45ms)}
  .dsh-sec.play .dsh-vbar{animation:dsh-grow .7s cubic-bezier(.2,.75,.25,1) both;animation-delay:calc(.3s + var(--r,0) * 38ms)}
  @keyframes dsh-grow{from{transform:scaleX(0)}}
  .dsh-sec.play .dsh-dots i{animation:dsh-dot .4s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(.3s + var(--r,0) * 45ms + var(--k,0) * 55ms)}
  @keyframes dsh-dot{from{transform:scale(0);opacity:0}}
  /* biggest trades: a line of light crosses the 90 days and the trades appear as it passes them */
  .dsh-sec.play .dsh-scan{animation:dsh-scanx 1.5s cubic-bezier(.45,0,.3,1) .15s both}
  @keyframes dsh-scanx{0%{opacity:0;transform:translateX(0)}8%{opacity:.9}88%{opacity:.9}100%{opacity:0;transform:translateX(var(--sw))}}
  .dsh-sec.play .dsh-bub circle:not(.ring){animation:dsh-pop .55s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(.2s + var(--d,0) * 1.3s)}
  @keyframes dsh-pop{from{transform:scale(0);opacity:0}}
  .dsh-sec.play .dsh-bub circle.ring{animation:dsh-sonar 1.5s cubic-bezier(0,.4,.4,1) 2 both;animation-delay:calc(1.6s + var(--i) * 160ms)}

  /* a new range or filter: the loading line runs, and the new view fades in */
  .dsh.busy .dsh-bar::after{animation:dsh-load 1s linear infinite}
  @keyframes dsh-load{from{background-position:-40% 0}to{background-position:140% 0}}
  .dsh.swap .dsh-tw,.dsh.swap .dsh-cl,.dsh.swap .dsh-bubw,.dsh.swap .dsh-lh p{animation:dsh-fade .35s ease-out both}
  @keyframes dsh-fade{from{opacity:.3;transform:translateY(4px)}}
  .dsh-newnote{animation:dsh-drop .5s cubic-bezier(.2,.8,.2,1.25) both}
  @keyframes dsh-drop{from{opacity:0;transform:translateY(-8px) scale(.96)}}

  /* a new trade or notice on refresh: a pass of light along its row */
  .dsh-new td{background-image:linear-gradient(90deg,transparent,color-mix(in srgb,var(--beacon) 30%,transparent),transparent);background-size:35% 100%;background-repeat:no-repeat;animation:dsh-pass 1.4s cubic-bezier(.5,0,.25,1) both}
  .dsh-new td:first-child{box-shadow:inset 3px 0 0 var(--beacon)}
  @keyframes dsh-pass{from{background-position:-40% 0}to{background-position:140% 0}}

  .dsh-skel i{animation:dsh-shimmer 1.3s ease-in-out infinite}
  @keyframes dsh-shimmer{to{background-position:-200% 0}}
}

/* narrower windows */
@media (max-width:980px){.dsh-two{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .dsh{gap:16px}
  .dsh-lh{padding:16px 16px 12px}
  .dsh-lh h3{font-size:21px}
  .dsh-lh p{font-size:14px}
  .dsh-h p{font-size:13px}
  .dsh-pills{width:100%}
  .dsh-pill{flex:1 1 30%}
  .dsh-pill select{width:100%;padding:8px 26px 8px 10px;font-size:13px;background-position:right 8px center}
  .dsh-bar-r{width:100%;justify-content:space-between}
  .dsh-tr-k{display:none}
  .dsh-t{font-size:13px}
  .dsh-t th,.dsh-t td{padding:9px 10px}
  .dsh-sym .tklogo{width:22px;height:22px}
  .dsh-tw{max-height:400px}
  .dsh-lead .dsh-tw{max-height:520px}
  .dsh-cl{max-height:380px}
  /* planned sales and the latest trades become stacked rows */
  .dsh-plan thead,.dsh-latest thead{display:none}
  .dsh-plan,.dsh-plan tbody,.dsh-latest,.dsh-latest tbody{display:block}
  .dsh-plan tr,.dsh-latest tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:10px;row-gap:6px;align-items:start;padding:13px 16px;border-bottom:1px solid var(--hair)}
  .dsh-latest tr{padding:11px 0}
  .dsh .dsh-plan td,.dsh .dsh-latest td{padding:0!important;border:0;white-space:normal;min-width:0}
  .dsh-plan td:nth-child(1),.dsh-latest td:nth-child(1){grid-column:1;grid-row:1 / span 2}
  .dsh-sym small{display:none}
  .dsh-plan td:nth-child(2){grid-column:2;grid-row:1 / span 2}
  .dsh-latest td:nth-child(2){grid-column:2;grid-row:1}
  .dsh-plan td:nth-child(3){grid-column:3;grid-row:1;text-align:right}
  .dsh-plan td:nth-child(4){grid-column:3;grid-row:2;text-align:right;font-size:12px;align-self:start}
  .dsh-plan td:nth-child(5){grid-column:2 / span 2;grid-row:3;width:auto;min-width:0;margin-top:4px}
  .dsh-latest td:nth-child(4){grid-column:3;grid-row:1;text-align:right}
  .dsh-latest td:nth-child(3){grid-column:2;grid-row:2}
  .dsh-latest td:nth-child(6){grid-column:3;grid-row:2;text-align:right;font-size:12px}
  .dsh-latest td:nth-child(5){display:none}
  .dsh-plan tr:last-child,.dsh-latest tr:last-child{border-bottom:0}
  .dsh-odd td:first-child{box-shadow:none}
  .dsh-odd{box-shadow:inset 3px 0 0 var(--beacon)}
  /* the board: buys, sales and net */
  .dsh-board-t th:nth-child(3),.dsh-board-t td:nth-child(3){display:none}
  .dsh-board-t td.dsh-split{width:58%;min-width:150px}
  .dsh-board-t .dsh-sym small{display:none}
  .dsh-spl{grid-template-columns:1.6em minmax(0,1fr) minmax(0,1fr) 1.6em;column-gap:5px}
  .dsh-dots{max-width:96px;gap:3px}
  .dsh-dots i{width:7px;height:7px}
  .sig-ctl,.sig-ctl .sig-right{flex-wrap:wrap;min-width:0;max-width:100%}
  .sig-ctl .sig-right .seg{flex:0 1 auto}
}

/* The app's motion (ext/motion.js). One entrance per page, figures that count, charts drawn left to right,
   the sidebar marker that slides, pressed buttons that give, follows and stars that land. Off for reduced motion. */

/* the sidebar's marker (desktop): it slides between pages instead of jumping */
@media (min-width:900px){nav.sections{position:relative}}
.side-ind{position:absolute;left:0;top:0;z-index:0;border-radius:10px;background:var(--hd-soft);pointer-events:none;opacity:0;
  transition:transform .42s cubic-bezier(.2,.85,.25,1),height .3s,width .3s,opacity .2s}
.side-ind::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:3px;background:var(--accent)}
nav.sections.has-ind .sideflat button{z-index:1}
nav.sections.has-ind .sideflat button[aria-current]{background:none}
nav.sections.has-ind .sideflat button[aria-current]::before{display:none}
nav.sections.has-ind .sideflat button:hover:not([aria-current]){background:color-mix(in srgb,var(--hd-soft) 60%,transparent)}

@media (prefers-reduced-motion:no-preference){
  /* a page arriving: the title and blocks rise in, lists follow one item after another */
  .pg-in #secHead,.pg-in #filters,.pg-in #hint,.pg-in #upsellSlot>*{animation:mv-rise .5s cubic-bezier(.2,.75,.25,1) both}
  .pg-in #view>*{animation:mv-rise .55s cubic-bezier(.2,.75,.25,1) .06s both}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>*{animation:mv-rise .5s cubic-bezier(.2,.75,.25,1) both}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(1){animation-delay:105ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(2){animation-delay:150ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(3){animation-delay:195ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(4){animation-delay:240ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(5){animation-delay:285ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(6){animation-delay:330ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(7){animation-delay:375ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(8){animation-delay:420ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(9){animation-delay:465ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(10){animation-delay:510ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(11){animation-delay:555ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(12){animation-delay:600ms}
  .pg-in :is(.list,.kpis,.hub-stats,.hub-tools,.an-ways,.hub,.cg-kpis,.truth-stats,.tiles,.two,.feed)>:nth-child(n+13){animation-delay:640ms}
  @keyframes mv-rise{from{opacity:0;transform:translateY(10px)}}

  /* score rings fill to their score */
  .pg-in .score .val{animation:mv-ring 1.1s cubic-bezier(.3,.7,.2,1) .25s both}
  @keyframes mv-ring{from{stroke-dasharray:0 100}}

  /* a chart is drawn left to right as a line of light passes over it */
  svg.mv-sweep{animation:mv-wipe 1.1s cubic-bezier(.45,0,.25,1) .15s both}
  @keyframes mv-wipe{from{clip-path:inset(-4% 100% -4% 0)}to{clip-path:inset(-4% -2% -4% 0)}}

  /* pressed buttons give a little */
  :is(.btn,.chip,.seg button,nav.tabs button,.follow,.star,.iconbtn,.acct):active{transform:scale(.965);transition:transform .08s}

  /* a follow or a star lands */
  .mv-pop{animation:mv-pop .45s cubic-bezier(.3,1.6,.45,1)}
  .star.mv-pop{animation:mv-star .55s cubic-bezier(.3,1.6,.45,1)}
  @keyframes mv-pop{0%{transform:scale(.9)}45%{transform:scale(1.08)}100%{transform:none}}
  @keyframes mv-star{0%{transform:scale(.6) rotate(-25deg)}55%{transform:scale(1.35) rotate(8deg)}100%{transform:none}}

  /* the page title changes with a short fade */
  .pg-in #secTitle{animation:mv-title .45s cubic-bezier(.2,.75,.25,1) both}
  @keyframes mv-title{from{opacity:0;transform:translateY(6px);filter:blur(3px)}}

  /* cards and rows lift a touch under the pointer */
  :is(.slip,.prow,.cluster,.hub-tool,.an-way,.kpi){transition:transform .2s cubic-bezier(.2,.75,.25,1),box-shadow .2s,border-color .2s,background-color .2s}
  @media (hover:hover){:is(.slip,.hub-tool,.prow):hover{transform:translateY(-2px)}}
}
@media (max-width:899px){.side-ind{display:none}}

/* The sleek pass (after ext/motion.css): softer charcoal instead of pure black in the dark theme, panels with
   a faint top light and a hairline edge, a raised pill for whatever is selected, a quieter sidebar with small
   mono group labels and a ⌘K hint. Everything is tokens, so the light theme gets the same shapes in its colours. */
:root{
  --panel:linear-gradient(#fff,#fff);
  --panel-edge:0 0 0 1px var(--line),0 1px 2px rgba(10,20,30,.04);
  --pill:#FFFFFF;
  --pill-edge:inset 0 0 0 1px var(--line-2),0 1px 2px rgba(10,20,30,.08);
}
:root[data-theme="dark"]{--paper:#0C0C0E; --surface:#141417; --surface-2:#1C1C20; --raise:#1F1F23; --chip:#1C1C20; --info-soft:#1C1C20;
  --line:rgba(255,255,255,.075); --line-2:rgba(255,255,255,.14); --hair:rgba(255,255,255,.06); --muted:#8E8E96; --ink-2:#D6D6DB;
  --hd-bg:#0F0F11; --hd-line:rgba(255,255,255,.07); --hd-soft:#1B1B1F; --hd-dim:#8E8E96;
  --grid:rgba(255,255,255,.05); --axis:rgba(255,255,255,.14); --track:#26262B; --b2:rgba(255,255,255,.14);
  --shadow:0 0 0 1px var(--line); --shadow-lift:0 0 0 1px var(--line-2),0 18px 44px -22px rgba(0,0,0,.85);
  --panel:linear-gradient(180deg,rgba(255,255,255,.034),rgba(255,255,255,.01) 60%);
  --panel-edge:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 1px var(--line),0 14px 34px -22px rgba(0,0,0,.85);
  --pill:linear-gradient(180deg,#28282D,#1F1F23);
  --pill-edge:inset 0 0 0 1px rgba(255,255,255,.09),inset 0 1px 0 rgba(255,255,255,.08),0 2px 6px -2px rgba(0,0,0,.7);}
@media (prefers-color-scheme:dark){:root[data-theme="system"]{--paper:#0C0C0E; --surface:#141417; --surface-2:#1C1C20; --raise:#1F1F23; --chip:#1C1C20; --info-soft:#1C1C20;
  --line:rgba(255,255,255,.075); --line-2:rgba(255,255,255,.14); --hair:rgba(255,255,255,.06); --muted:#8E8E96; --ink-2:#D6D6DB;
  --hd-bg:#0F0F11; --hd-line:rgba(255,255,255,.07); --hd-soft:#1B1B1F; --hd-dim:#8E8E96;
  --grid:rgba(255,255,255,.05); --axis:rgba(255,255,255,.14); --track:#26262B; --b2:rgba(255,255,255,.14);
  --shadow:0 0 0 1px var(--line); --shadow-lift:0 0 0 1px var(--line-2),0 18px 44px -22px rgba(0,0,0,.85);
  --panel:linear-gradient(180deg,rgba(255,255,255,.034),rgba(255,255,255,.01) 60%);
  --panel-edge:inset 0 1px 0 rgba(255,255,255,.05),0 0 0 1px var(--line),0 14px 34px -22px rgba(0,0,0,.85);
  --pill:linear-gradient(180deg,#28282D,#1F1F23);
  --pill-edge:inset 0 0 0 1px rgba(255,255,255,.09),inset 0 1px 0 rgba(255,255,255,.08),0 2px 6px -2px rgba(0,0,0,.7);}}

/* ---- selected things are a raised pill, not a white block ---- */
.seg{background:var(--surface);box-shadow:inset 0 0 0 1px var(--line);border-radius:10px}
.seg button{border-radius:7px}
.seg button[aria-pressed="true"],nav.tabs button[aria-selected="true"]{background:var(--pill);color:var(--ink);border-color:transparent;box-shadow:var(--pill-edge)}
nav.tabs button[aria-selected="true"] .count{background:var(--surface-2);color:var(--ink-2)}
.btn.ghost{background:var(--pill);box-shadow:var(--pill-edge)}
.btn.ghost:hover{background:var(--pill);box-shadow:var(--pill-edge),0 0 0 1px var(--line-2)}
.chip[aria-pressed="true"]{box-shadow:var(--pill-edge)}

/* ---- the sidebar ---- */
@media (min-width:900px){
  header.top{background:var(--hd-bg)}
  .side-q input{height:40px;border-radius:10px;background-color:var(--surface);border-color:var(--hd-line);font-size:14.5px;padding-right:58px}
  .side-q kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);display:flex;gap:3px;pointer-events:none}
  .side-q kbd span{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:5px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--hd-line);font:500 11px/1 var(--f-mono);color:var(--hd-dim)}
  .side-q input:focus+kbd{opacity:0}
  .slabel{font:500 12px/1.4 var(--f-mono);letter-spacing:0;opacity:.85;margin:10px 0 6px}
  .sideflat{gap:6px}
  .sideflat button{padding:8px 12px;font-size:14.5px;border-radius:9px}
  .sideflat button[aria-current] svg{stroke:var(--hd-ink)}
  .side-ind{border-radius:9px;background:var(--pill);box-shadow:var(--pill-edge)}
  .side-ind::before{display:none}
  .side-badge{background:transparent;color:var(--hd-dim);font:500 12px var(--f-mono);padding:0}
  .sgroup+.sgroup{padding-top:10px;border-top:1px solid var(--hd-line)}
}

/* ---- the page title: lighter, with today's date beside it in grey (ext/motion.js adds it) ---- */
@media (min-width:900px){
  .sec-head h2{font:500 clamp(30px,2.6vw,38px)/1.1 var(--f-body);font-stretch:100%;letter-spacing:-.025em}
}
.sec-when{color:var(--muted);font-weight:400}

/* ---- panels: a faint top light and a hairline edge ---- */
.card,.kpi,.slip,.hub-tool,.an-way,.prow,.cluster,.hs-cell,.dsh-lead,.dsh-tr .dsh-flap-f,.pk-card,.pk-area{background-image:var(--panel)}
.card,.kpi,.slip,.hub-tool,.an-way,.prow,.cluster,.dsh-lead{box-shadow:var(--panel-edge);border-color:transparent}
.dsh-lead{border-radius:16px}
/* the Feed's other sections become panels too */
.dsh-sec{border-top:0;padding:4px 20px 14px;border-radius:16px;background:var(--panel),var(--surface);box-shadow:var(--panel-edge)}
.dsh-sec .dsh-t th{background:var(--surface)}
.dsh-two{gap:16px}
.dsh{gap:16px}
@media (max-width:640px){.dsh-sec{padding:2px 14px 10px}.dsh-latest tr{padding:11px 0}}
/* the Feed's toolbar: quiet fields on the surface */
.dsh-q input,.dsh-pill select{background-color:var(--surface);border-color:var(--line);border-radius:10px}
.dsh-q input{height:40px;padding-top:0;padding-bottom:0}
.dsh-pill select{height:40px;padding-top:0;padding-bottom:0;font-weight:500}
.dsh-q input:focus{border-color:var(--line-2);box-shadow:0 0 0 3px var(--hair)}
/* small figures beside big ones read in mono, like a ledger */
.dsh-lh p b{font-family:var(--f-mono);font-weight:500;letter-spacing:-.01em}
/* panel headings in the body face, medium weight, like the rest of the interface */
.dsh-lh h3,.dsh-h h3,.chart-head h2,.chart-head h3,.card>h3{font-family:var(--f-body);font-weight:600;font-stretch:100%;letter-spacing:-.015em}
.dsh-lh h3{font-size:21px}
.dsh-h h3{font-size:17px}
/* "Was this alert useful?" under each alert, and once on the screen a phone notification opened */
.fb{display:flex;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;color:var(--muted)}
.fb button{border:0;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font:500 12.5px/1.4 var(--f-body);cursor:pointer;transition:background-color .15s,color .15s}
.fb button:hover{background:var(--track)}
.fb button[aria-pressed="true"]{background:var(--pill);color:var(--ink);box-shadow:var(--pill-edge)}
.fb button[data-fb-v="1"][aria-pressed="true"]{color:var(--up-text,var(--up))}
.fb-ask{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:40;margin:0;padding:8px 8px 8px 16px;border-radius:999px;background:var(--surface);box-shadow:var(--panel-edge),0 18px 40px -16px rgba(0,0,0,.6);font-size:14px;color:var(--ink)}
.fb-ask button{font-size:13.5px;padding:6px 14px}
.fb-ask .fb-x{background:none;color:var(--muted);padding:6px 10px;font-size:16px}
@media (max-width:899px){.fb-ask{bottom:calc(84px + env(safe-area-inset-bottom,0px))}}
@media (prefers-reduced-motion:no-preference){.fb-ask{animation:fb-in .45s cubic-bezier(.2,.8,.2,1.15) both}@keyframes fb-in{from{opacity:0;transform:translate(-50%,12px)}}}
/* With a sheet open, the toast moves to the top so it never covers the sheet's buttons. */
body:has(.sheetRoot:not([hidden])) .toast{bottom:auto;top:calc(16px + env(safe-area-inset-top,0px))}
/* Following: the CSV import line, what to expect, and tickers with no filings on record */
.addtk-more{margin:8px 2px 0;font-size:13px;color:var(--ink-3,var(--muted));line-height:1.5}
.addtk-more .linkbtn{color:var(--ink);font-weight:600}
.expect{margin:12px 2px 4px;font-size:14px;line-height:1.55;color:var(--ink-2,var(--muted));max-width:72ch}
.expect.quiet-note{margin-top:8px;font-size:13px}
.tkchips .chip.quiet{border-style:dashed;opacity:.75}
