/* BrainPremium BETA terminal — design tokens and layout. 1.0.0
   1.31.4 (2026-10-20): the Positions row's coin line never wraps on the desktop (min-width 0 + nowrap; the second grid column is as wide as the buttons row).
   1.31.3 (2026-10-20): the Positions row's size @ entry · mark beside the coin (.pos-sz, panels.js 1.12.3).
   1.31.2 (2026-10-20): the resize cursor over a draggable TP / SL line in a chart window (.cw-chart.grab-line, chartwin.js 1.4.0).
   1.31.1 (2026-10-20): the chart window row's leverage picker (.cwq-lev).
   1.31.0 (2026-10-20): a chart window's one-tap BUY / SELL row (.cw-quick, chartwin.js 1.2.0), the #quick colours in miniature.
   1.29.0 (2026-10-19): the Feed column's News section is the wire's compact view (.nts*): tabs, search, Flagged, "2m ago".
   1.28.0 (2026-10-19): the News Terminal window (newsterm.js, .nt*) -- a dense wire in the terminal's own tokens, amber source
   codes, FLASH / HOT flags, a new row flashes once; phone: time + headline on two lines, coins under them.
   1.24.0 (2026-10-19): the Assistant Trade window's NOW strip, universe tiles (pulse / dashed / dim), feed slide-in, sparkline.
   1.22.0 (2026-10-14): the Economic Calendar's History line (the release ledger) and BTC 1h column.
   1.20.0 (2026-10-12): the drawing tool bar (draw.js) -- grip, scroll, the text tool's box.
   Dark-only, one surface, one accent. Desktop >= 1200, tablet 800–1199, phone < 800 (real viewport).
   1.13.0 (2026-10-06): chart windows (.cw, chartwin.js) and the Markets row's "open in a new window" cell.
   1.19.0 (2026-10-09): Meme Hunter 1.4 -- the position card, the Holdings grid.
   1.18.2 (2026-10-09): the row's token cell is a row again (a 1.16 column rule had survived: the logo sat above the symbol); phone price column 62 px.
   1.18.1 (2026-10-09): phone: the Trending / Signals token column keeps 118 px (the logo had wrapped above the symbol), rank hidden.
   1.18.0 (2026-10-09): Meme Hunter 1.3 -- chain badges and chips, one window per list, Trending / Signals grids.
   1.17.1 (2026-10-09): the token column's stat tiles two across (four cut their labels); on a phone the mode is one
   scrolling page (chart 230 px, ticket, column) -- the open quote panel had squeezed the chart to 120 px and overlapped the column.
   1.17.0 (2026-10-09): Meme Hunter 1.2 -- logos, the ticket on the stage, the wallet, the token column with badges and icons.
   1.16.1 (2026-10-09): Meme Hunter also hides the command bar (perp orders) while the mode is on.
   1.16.0 (2026-10-09): MEME HUNTER (memehunter.js): the header mode switch, the stage that covers the chart while the mode
   is on, the Launches and Trade windows.
   1.15.1 (2026-10-09): on a phone an open window also hides the side sheet (trade tape / sentiment / news, z-index 9) that drew over it.
   1.15.0 (2026-10-09): Settings = a labelled gear pill in the header + a gear in the dock on phones (the header nav is hidden there).
   1.14.1 (2026-10-09): the stage pinned to grid row 4 (the hidden account-mode bar is not a grid item: the stage collapsed to 0 height).
   1.14.0 (2026-10-08): the OKX account-mode bar (.acctbar, auth.js 1.4): its own grid row between the menu and the
   chart (0 high while hidden), the ticket's refusal line (#composer .oc-err). */
:root{
  --ground:#0A0D12; --surface:#0F131A; --lift:#151B23; --lift-2:#1B2330;
  --hair:rgba(255,255,255,.07); --hair-2:rgba(255,255,255,.12);
  --text:#EEF1F5; --text-2:#AEB7C2; --muted:#6F7A87; --faint:#414B57;
  --signal:#3DDCEF; --signal-ink:#04161B;
  --up:#34D399; --up-ink:#04160C; --down:#FB7185; --down-ink:#1B040A; --warn:#FBBF24; --wave:#A78BFA;
  --ui:"Instrument Sans","Segoe UI",system-ui,sans-serif;
  --mono:"Fragment Mono","SFMono-Regular",Menlo,Consolas,monospace;
  color-scheme:dark;
}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--ground);color:var(--text);font:14px/1.45 var(--ui);-webkit-font-smoothing:antialiased;overflow:hidden}
/* the page is an app and never zooms (operator, 2026-09-23: on phones tapping a text field or pinching
   blew the page past the screen and it never came back). pan-x pan-y = scrolling only, no pinch or
   double-tap zoom; the chart handles its own pinch in JS, which this does not touch. The viewport meta
   (maximum-scale=1) stops iOS zooming into a focused field; core.js blocks Safari's pinch gesture. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;max-width:100vw;overflow-x:hidden}
body{touch-action:pan-x pan-y;max-width:100vw;overflow-x:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none;padding:0}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--signal);outline-offset:3px;border-radius:4px}
a{color:inherit}
[hidden]{display:none!important}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums}
.up{color:var(--up)} .down{color:var(--down)} .muted{color:var(--muted)} .warn{color:var(--warn)} .wave{color:var(--wave)} .sig{color:var(--signal)}

/* shell */
.app{position:relative;height:100%;display:grid;grid-template-rows:52px 34px auto 1fr;background:var(--ground);overflow:hidden}
/* the OKX account-mode bar (auth.js 1.4): the account is in Spot mode, every perpetual order is refused (51010).
   A grid row of its own under the menu -- it pushes the chart down instead of covering it; [hidden] makes the row 0 */
.acctbar{grid-row:3;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:8px 22px;border-bottom:1px solid rgba(251,191,36,.35);background:rgba(251,191,36,.1);color:var(--text);font-size:12.5px;line-height:1.45;z-index:3}
.acctbar .ab-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.acctbar b{color:var(--warn);font-weight:600} .acctbar span{color:var(--text-2)} .acctbar .ab-note{color:var(--warn);font-size:12px}
.acctbar .acts{display:flex;align-items:center;gap:8px;flex:0 0 auto}
.acctbar .ab-x{width:28px;height:28px;border-radius:8px;color:var(--muted);font-size:18px;line-height:1}
.acctbar .ab-x:hover{color:var(--text);background:var(--lift)}
.acct-mode.bad{font-weight:600}
.top{display:flex;align-items:center;gap:22px;padding:0 22px;z-index:3}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;white-space:nowrap}
.brand{cursor:pointer} .brand .logo{height:34px;width:auto;display:block}
.dock{display:flex;gap:2px;align-items:center;padding:0 16px;border-bottom:1px solid var(--hair);font-size:12.5px;color:var(--muted);overflow:auto;scrollbar-width:none;z-index:3;background:var(--ground)}
.dock a{text-decoration:none;padding:5px 10px;border-radius:8px;white-space:nowrap;line-height:1}
.dock a:hover{color:var(--text);background:var(--lift)}
.dock a[aria-current="page"]{color:var(--text);background:var(--lift);box-shadow:inset 0 -2px 0 var(--signal)}
.dock .sep{width:1px;height:16px;background:var(--hair-2);margin:0 8px;flex:0 0 auto}
.dock .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warn);margin-left:6px;vertical-align:middle}
/* unread counters on the dock, like the assistant's badge; '@n' when you were mentioned (panels.js 1.6) */
.dock .cnt{display:inline-block;min-width:16px;height:16px;padding:0 4px;margin-left:6px;border-radius:999px;background:var(--down);color:var(--down-ink);font-size:10px;font-weight:700;line-height:16px;text-align:center;font-variant-numeric:tabular-nums;vertical-align:1px}
.dock .cnt.at{background:var(--warn);color:#111}
.dock-more{position:sticky;right:0;flex:0 0 auto;margin-left:auto;height:22px;padding:0 9px;border:0;border-radius:999px;background:var(--down);color:var(--down-ink);font-size:11px;font-weight:700;cursor:pointer;box-shadow:-12px 0 10px var(--ground)}
.dock-more.at{background:var(--warn);color:#111}
/* someone wrote @you in the chat */
.mpop{position:fixed;top:64px;right:16px;z-index:20001;width:340px;max-width:calc(100% - 32px);display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:14px;background:rgba(19,25,33,.97);border:1px solid var(--warn);box-shadow:0 12px 40px rgba(0,0,0,.5);font-size:13px;color:var(--text)}
.mpop .mp-h{display:flex;align-items:baseline;gap:8px;font-size:12px} .mpop .mp-h b{color:hsl(var(--nc,208) 78% 70%);font-size:13px} .mpop .mp-h span{color:var(--muted);flex:1}
.mpop .mp-x{width:24px;height:24px;border:0;background:none;border-radius:8px;color:var(--muted);font-size:17px;line-height:1;cursor:pointer}
.mpop .mp-t{white-space:pre-wrap;word-break:break-word;line-height:1.45} .mpop .acts{display:flex;gap:8px}
@media (max-width:799px){ .mpop{top:10px;left:12px;right:12px;width:auto;max-width:none} }
.ann{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-bottom:1px solid var(--hair)}
.ann .t{font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center}
.ann img{max-width:100%;border-radius:10px;display:block;background:var(--lift)}
.ann .b{color:var(--text-2);font-size:13px;line-height:1.5;white-space:pre-wrap}
.ann .m{font-size:11px;color:var(--faint);display:flex;gap:12px;align-items:center}
.ann .lnk{color:var(--signal);font-size:12.5px;font-weight:500}
.ann .ann-more{align-self:flex-start;height:28px}
.user{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 12px 0 3px;border-radius:999px;background:var(--lift);font-size:12.5px;color:var(--text-2);max-width:220px}
.user:hover{color:var(--text);background:var(--lift-2)}
.user .uname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}
.sym{display:flex;align-items:baseline;gap:12px;min-width:0}
.sym button{display:flex;align-items:baseline;gap:8px;font-weight:600;font-size:15px;letter-spacing:-.01em;white-space:nowrap}
.sym button span{color:var(--muted);font-weight:400;font-size:12px}
.sym .px{font-size:22px;letter-spacing:-.02em}
.sym .chg{font-size:13px}
/* the market strip (macro.js): USDT.D BTC.D VIX TOTAL DXY between the market and the account menu */
/* items that do not fit are hidden whole by macro.js (never a half-cut number); the account menu never shrinks for it */
/* contain:inline-size: its width never comes from its content (a grid track sized to the header's content pushed the
   menu off a 1024 px screen); it takes the room between the market and the menu */
.macro{display:flex;align-items:baseline;gap:16px;min-width:0;flex:1 1 0;contain:inline-size;overflow:hidden;white-space:nowrap;font-size:12px}
.macro .mi[data-fit="0"]{display:none}
.macro .mi{display:inline-flex;align-items:baseline;gap:5px;flex:0 0 auto;cursor:default}
.macro .k{color:var(--muted);font-size:11px;letter-spacing:.02em}
.macro .v{color:var(--text)}
.macro .c{font-size:11px}
.macro .a{display:none;font-style:normal;font-size:8px;margin-left:-1px}
.macro .dl{font-size:9px;color:var(--muted);border:1px solid var(--hair-2);border-radius:4px;padding:0 3px;line-height:13px}
.nav{flex-shrink:0;margin-left:auto;display:flex;gap:20px;font-size:13px;color:var(--muted);align-items:center;flex-wrap:nowrap;min-width:0}
.nav a{text-decoration:none;position:relative;padding:6px 0;white-space:nowrap}
.nav a[aria-current="page"]{color:var(--text)}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;border-radius:2px;background:var(--signal)}
.kbd{font-family:var(--mono);font-size:10.5px;color:var(--muted);border:1px solid var(--hair-2);border-radius:4px;padding:1px 5px}
/* 1.15.0: Settings is a labelled pill in the header (the bare 16px icon read as nothing) and a gear in the dock on phones (.dset) */
.setbtn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 12px 0 10px;border-radius:999px;background:var(--lift);color:var(--text-2);font-size:12.5px;font-weight:500;text-decoration:none;white-space:nowrap}
.setbtn:hover{color:var(--text);background:var(--lift-2)} .setbtn svg{flex:0 0 auto}
.dock .dset{display:none;align-items:center;gap:6px;margin-left:auto;padding:5px 10px;color:var(--text-2);background:var(--lift);border-radius:999px}
.icon{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;color:var(--muted);position:relative}
.icon:hover{color:var(--text)}
.icon .dot{position:absolute;top:6px;right:6px;width:6px;height:6px;border-radius:50%;background:var(--warn)}
.avatar{width:26px;height:26px;border-radius:50%;background:var(--lift-2);display:grid;place-items:center;font-size:10px;font-weight:600;color:var(--text);flex:0 0 auto}
.tourbtn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--hair-2);color:var(--text-2);font-size:12px;font-weight:500;white-space:nowrap}
.tourbtn:hover{color:var(--text);border-color:rgba(61,220,239,.5);background:rgba(61,220,239,.08)}
.cta{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 14px;border-radius:999px;background:var(--signal);color:var(--signal-ink);font-weight:600;font-size:13px;white-space:nowrap}
.cta:hover{filter:brightness(1.08)}
.ribbon{position:absolute;top:64px;left:0;right:0;display:flex;justify-content:center;pointer-events:none;z-index:4}
.ribbon span{pointer-events:auto;display:inline-flex;align-items:center;gap:10px;font-size:12px;color:var(--text-2);padding:6px 12px;border-radius:999px;background:rgba(15,19,26,.9);border:1px solid var(--hair-2)}
.ribbon i{width:6px;height:6px;border-radius:50%;background:var(--warn)}
.ribbon button{color:var(--signal);font-weight:600}
.conn{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;color:var(--muted);white-space:nowrap}
.conn i{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.conn[data-state="live"] i{background:var(--up);box-shadow:0 0 0 3px rgba(52,211,153,.15)}
.conn[data-state="stale"] i{background:var(--warn)}
.conn[data-state="down"] i{background:var(--down)}

/* chart stage */
.stagearea{position:relative;min-height:0;grid-row:4}   /* 1.14.1: a hidden bar is not a grid item -- without this the stage fell into the bar's auto row and had 0 height */
/* candles always on top: the chart is transparent and sits above every overlay canvas (heat 1, drawings 2, chart 3) */
.chartwrap{position:absolute;inset:0;z-index:0;background:var(--ground)}
.chartwrap .lw{position:absolute;inset:0;z-index:3}
/* 1.30.3 (2026-10-20): the Panic close button at the right of the Positions page's tab row */
.ptabs .pt-panic{margin-left:auto}
/* 1.27.5 (2026-10-20): the PA layer's key = clickable chips over the chart (structure.js 1.8.0) */
.pa-key{position:absolute;left:70px;top:82px;z-index:4;display:flex;flex-wrap:wrap;gap:4px;max-width:calc(100% - 170px);pointer-events:auto}
.pa-k{font:600 9px var(--mono);letter-spacing:.02em;color:var(--text-2);background:rgba(10,13,18,.78);border:1px solid var(--hair);border-radius:4px;padding:2px 6px 2px 5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;line-height:1.2}
.pa-k i{display:inline-block;width:8px;height:6px;border-radius:1px}
.pa-k:hover{border-color:var(--hair-2);color:var(--text)}
.pa-k.off{opacity:.42;text-decoration:line-through} .pa-k.off i{opacity:.5}
@media (max-width:799px){.pa-key{left:8px;top:96px;max-width:calc(100% - 70px);gap:3px} .pa-k{padding:2px 5px;font-size:8.5px}}
/* 1.27.4 (2026-10-19): the logo watermark behind the candles (the chart's own background is transparent, its grid is off) */
.chartwrap .wm{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:min(34%,420px);max-height:38%;object-fit:contain;opacity:.07;pointer-events:none;user-select:none;z-index:0;filter:grayscale(1) brightness(1.6)}
@media (max-width:799px){.chartwrap .wm{width:min(55%,260px);top:40%}}
.lw.grab-line,.lw.grab-line *,.cw-chart.grab-line,.cw-chart.grab-line *{cursor:ns-resize!important}   /* trade.js 1.6.1 / chartwin.js 1.4.0: a TP / SL / entry line under the pointer */
.chartwrap canvas.ov{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.chartwrap .liq-heatmap-canvas,.chartwrap .depth-overlay-canvas{z-index:1!important}
.lg{position:absolute;top:14px;left:64px;right:410px;display:flex;gap:14px;align-items:center;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);overflow:auto;scrollbar-width:none;z-index:2}
.lg button{display:inline-flex;align-items:center;gap:7px;color:var(--faint);letter-spacing:inherit;text-transform:inherit;font-size:inherit;font-weight:500;white-space:nowrap}
.lg button i{width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.5}
.lg button[aria-pressed="true"]{color:var(--c,var(--text-2))}
.lg button[aria-pressed="true"] i{opacity:1}
.lg button[data-locked="true"]{color:var(--faint);opacity:.75} .lg button[data-locked="true"] svg{margin-left:-2px;opacity:.9}
.tf{position:absolute;top:10px;right:28px;display:flex;gap:2px;font-size:12px;color:var(--muted);z-index:3;padding:3px;border-radius:999px;background:rgba(15,19,26,.92);border:1px solid var(--hair-2)}
.tf button{color:inherit;font-family:var(--mono);font-size:12px;padding:3px 7px;border-radius:999px;line-height:1.2}
.tf button:hover{color:var(--text);background:var(--lift)}
.tf button[aria-pressed="true"]{color:var(--signal-ink);background:var(--signal);font-weight:600}
.ohlcrow{position:absolute;top:36px;left:64px;display:flex;gap:16px;align-items:baseline;font-size:11.5px;color:var(--muted);z-index:2;pointer-events:none}
.ohlc{display:flex;gap:14px}
.cdline b{color:var(--warn);font-weight:500}
.ohlc b{color:var(--text-2);font-weight:400}
.layoutsrow{position:absolute;right:28px;top:36px;font-size:11.5px;color:var(--muted);display:flex;gap:14px;z-index:2}
.layouts{display:inline-flex;gap:8px;font-family:var(--mono);color:var(--faint)}
.layouts button[aria-pressed="true"]{color:var(--text)}
/* 1.20.0 (draw.js): the tool bar moves by its grip, scrolls when the chart is shorter than the tools, never spills */
.tools{position:absolute;left:14px;top:14px;display:flex;flex-direction:column;gap:2px;padding:4px;border-radius:12px;background:rgba(15,19,26,.86);border:1px solid var(--hair);z-index:3;max-height:calc(100% - 28px);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;backdrop-filter:blur(6px)}
.tools::-webkit-scrollbar{display:none}
.tools .grip{height:12px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;gap:2px;cursor:grab;color:var(--faint);margin-bottom:2px;touch-action:none}
.tools .grip i{width:3px;height:3px;border-radius:50%;background:currentColor;opacity:.7}
.tools.moving{opacity:.9;box-shadow:0 8px 24px rgba(0,0,0,.4)} .tools.moving .grip{cursor:grabbing}
.tools button{width:32px;height:32px;flex:0 0 auto;border-radius:8px;color:var(--muted);display:grid;place-items:center}
.chartwrap .dtext{position:absolute;z-index:4;width:160px;height:22px;padding:0 6px;font:500 11px var(--mono);color:var(--text);background:rgba(10,13,18,.95);border:1px solid var(--signal);border-radius:4px;outline:0}
.tools button:hover{color:var(--text);background:var(--lift)}
.tools button[aria-pressed="true"]{color:var(--signal);background:rgba(61,220,239,.12)}
.tools hr{width:18px;border:0;border-top:1px solid var(--hair-2);margin:3px auto}
.chartwrap.drawing .lw{cursor:crosshair}
.badge-ew{position:absolute;left:64px;top:58px;font-size:11px;color:var(--wave);z-index:2;display:flex;gap:10px}
.badge-ew span{color:var(--muted)}
.pos{position:absolute;left:64px;bottom:104px;display:flex;align-items:center;gap:14px;padding:10px 14px;border-radius:12px;background:rgba(15,19,26,.85);backdrop-filter:blur(10px);border:1px solid var(--hair);font-size:12.5px;z-index:2;flex-wrap:wrap}
.pos b{font-weight:600}
.pos .sep{width:1px;height:14px;background:var(--hair-2)}
.pos button{color:var(--muted)} .pos button:hover{color:var(--text)}
.pos .row{display:flex;align-items:center;gap:14px}
.pos .acts{display:flex;align-items:center;gap:14px}
.empty-chart{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:13px;z-index:1;pointer-events:none}

/* command bar + composer */
.cmd{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:min(720px,calc(100% - 56px));display:flex;flex-direction:column;gap:10px;align-items:stretch;z-index:12}
.cmd.moved{transform:none}
.cmd.moved .sheetcard,.cmd.moved .hints{max-height:var(--sheet-max,calc(100vh - 140px))}
.grip{cursor:grab;color:var(--faint);font-size:15px;letter-spacing:-4px;padding:0 6px 0 0;user-select:none;-webkit-user-select:none;touch-action:none;line-height:1;flex:0 0 auto}
.grip:hover{color:var(--muted)} .grip:active{cursor:grabbing}
.sheetcard{display:none;flex-direction:column;gap:14px;padding:18px 18px 16px;border-radius:18px;background:rgba(19,25,33,.96);backdrop-filter:blur(16px);border:1px solid var(--hair-2);box-shadow:0 24px 60px rgba(0,0,0,.55);max-height:calc(100vh - 140px);overflow:auto}
.sheetcard.show{display:flex}
.q{display:flex;flex-direction:column;gap:8px}
.q .lab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:space-between}
.q .lab span{letter-spacing:0;text-transform:none;color:var(--faint)}
.opts{display:flex;gap:6px;flex-wrap:wrap}
.opt{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:40px;padding:6px 12px;border-radius:10px;border:1px solid var(--hair);color:var(--text-2);font-size:13px;font-weight:500;flex:1 1 auto}
.opt small{font-size:11px;color:var(--muted);font-family:var(--mono)}
.opt:hover{border-color:var(--hair-2);color:var(--text)}
.opt[aria-pressed="true"]{border-color:var(--c,var(--text));color:var(--c,var(--text));background:color-mix(in oklab,var(--c,var(--text)) 10%,transparent)}
.opt.side{justify-content:center;align-items:center;font-size:15px;font-weight:600;min-height:44px}
.opt.custom{flex:0 1 130px}
.opt.custom input{width:100%;background:none;border:0;outline:0;font-family:var(--mono);font-size:13px;color:var(--text)}
.say{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;background:var(--ground);border:1px solid var(--hair)}
.say .main{font-size:15px;line-height:1.5} .say .main b{font-weight:600}
.say .sub{font-size:12.5px;color:var(--muted);line-height:1.5}
.meter{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted)}
.meter .track{flex:1;height:6px;border-radius:3px;background:var(--lift-2);overflow:hidden}
.meter .track i{display:block;height:100%;border-radius:3px;background:var(--up);width:10%}
.meter.amber .track i{background:var(--warn)} .meter.red .track i{background:var(--down)}
.meter b{color:var(--text-2);font-weight:500;min-width:90px;text-align:right}
/* the order ticket, compact (beta.css 1.12.5 + trade.js 1.7.0; operator 2026-10-02: "çok büyük ve geniş ... seçenekleri yan yana"):
   one row per question -- its name and what the CHOSEN option means on the left, every choice in one segmented strip
   (each choice's meaning is its tooltip); the summary is two lines, the risk bar and one small note */
#composer{gap:8px;padding:12px 14px;border-radius:16px;width:min(100%,580px);align-self:flex-start}
#composer .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
#composer .q{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:center;gap:8px}
#composer .q .lab{display:flex;flex-direction:column;justify-content:center;gap:1px;line-height:1.25;min-width:0;letter-spacing:0;text-transform:none}
#composer .q .lab .lt{font-size:10.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
#composer .q .lab .ls{font-size:11.5px;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#composer .q .lab .ls.down{color:var(--down)} #composer .q .lab .ls.up{color:var(--up)} #composer .q .lab .ls.warn{color:var(--warn)}
#composer .opts{gap:2px;padding:2px;border-radius:10px;background:var(--ground);border:1px solid var(--hair);flex-wrap:wrap;min-width:0}
#composer .opt{flex:1 1 0;min-width:max-content;flex-direction:row;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:0 7px;border:0;border-radius:8px;font-size:12.5px;font-weight:500;color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap}
#composer .opt:hover{background:var(--lift);color:var(--text)}
#composer .opt[aria-pressed="true"],#composer .opt.custom.on{background:color-mix(in oklab,var(--c,var(--text)) 16%,transparent);color:var(--c,var(--text));box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--c,var(--text)) 55%,transparent)}
#composer .opt:focus-visible{outline:2px solid var(--signal);outline-offset:1px;border-radius:8px;position:relative;z-index:1}
#composer .opt.custom{flex:0 0 68px;min-width:0;padding:0 6px;cursor:text}
#composer .opt.custom.price{flex:1 0 92px}
#composer .opt.custom.lvl{flex:0 0 86px}
#composer [data-q="lev"] .opt{padding:0 5px} #composer [data-q="lev"] .opt.custom{flex-basis:60px}
#composer .opt.custom input{font-size:12.5px;text-align:center;padding:0;min-width:0}
#composer .opt.custom input::placeholder{color:var(--muted)}
#composer .opt.custom:focus-within{box-shadow:inset 0 0 0 2px var(--signal)}
#composer .oc-head{display:flex;align-items:center;gap:10px}
#composer .oc-head .opts{flex:1}
#composer .opt.side{min-height:34px;font-size:14px;font-weight:600;gap:7px}
#composer .opt.side small{font-size:11px;font-weight:400;font-family:var(--ui);color:var(--muted)}
#composer .opt.side[aria-pressed="true"] small{color:inherit;opacity:.75}
#composer .oc-free{font-size:11.5px;color:var(--muted);white-space:nowrap} #composer .oc-free b{color:var(--text-2);font-weight:500}
#composer #c-close{width:30px;height:30px;flex:0 0 30px;padding:0;font-size:18px;font-weight:400}
#composer .say{gap:5px;padding:9px 11px;border-radius:10px}
#composer .say .main{font-size:13.5px;line-height:1.4}
#composer .say .sub{font-size:12px;line-height:1.4;color:var(--text-2)}
#composer .say .dot{color:var(--muted)}
#composer .meter{gap:8px;font-size:11px}
#composer .meter .track{height:4px}
#composer .meter b{min-width:0;font-size:11.5px}
#composer .say .warn{font-size:12px}
#composer .say .oc-err{font-size:12px;line-height:1.4;color:var(--down);padding:6px 8px;border-radius:8px;background:rgba(248,113,113,.1)} #composer .say .oc-err b{color:var(--text)}
#composer .say .note{font-size:10.5px;line-height:1.35;color:var(--muted)}
#composer .acts{gap:6px}
#composer .acts .btn{height:38px;font-size:13px;border-radius:10px}
@media (max-width:799px){
  #composer{width:100%;padding:9px 10px 10px;gap:5px}
  #composer .q{grid-template-columns:minmax(0,1fr);gap:2px}
  #composer .q .lab{flex-direction:row;justify-content:space-between;align-items:baseline;gap:10px;padding:0 2px}
  #composer .opt{min-height:32px}
  #composer .opt.side{min-height:36px}
  /* leverage wraps on a phone: an even grid (6 a row, "other" two cells) instead of a stretched last chip */
  #composer [data-q="lev"] .opts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
  #composer [data-q="lev"] .opt{min-width:0}
  #composer [data-q="lev"] .opt.custom{grid-column:span 2}
  #composer .say{padding:7px 9px;gap:3px}
  #composer .say .main{font-size:13px;line-height:1.35} #composer .say .sub{font-size:11.5px;line-height:1.35}
  #composer .say .note{font-size:10px;line-height:1.3}
  #composer .acts .btn{height:40px}
}
@media (max-width:430px){ #composer .opt.side small{display:none} }
.acts{display:flex;gap:10px;align-items:center}
.hold{position:relative;flex:1;height:48px;border-radius:12px;overflow:hidden;font-weight:600;font-size:14px;color:var(--text);background:var(--lift);display:grid;place-items:center;user-select:none;-webkit-user-select:none;touch-action:none}
.hold i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--c,var(--up));opacity:.9}
.hold span{position:relative}
.hold.long{--c:var(--up)} .hold.short{--c:var(--down)} .hold.sig{--c:var(--signal)} .hold.danger{--c:var(--down)}
.hold.done{background:var(--c);color:#06131a}
.hold[aria-disabled="true"]{opacity:.5;pointer-events:none}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:10px;font-weight:600;font-size:13px;color:var(--text);background:var(--lift);white-space:nowrap}
.btn:hover{background:var(--lift-2)}
.btn.quiet{background:transparent;color:var(--muted)} .btn.quiet:hover{color:var(--text)}
.btn.buy{background:var(--up);color:var(--up-ink)} .btn.sell{background:var(--down);color:var(--down-ink)}
.btn.primary{background:var(--signal);color:var(--signal-ink)}
.btn.round{height:36px;border-radius:999px;padding:0 14px}
.btn.act{flex:1;height:48px;font-size:14px;border-radius:12px}
.btn.sm{height:32px;padding:0 12px;font-size:12.5px}
.btn.danger{background:transparent;color:var(--down);border:1px solid color-mix(in oklab,var(--down) 40%,transparent)}
.btn[disabled]{opacity:.5;cursor:default}
.bar{display:flex;align-items:center;gap:10px;height:56px;padding:0 10px 0 12px;border-radius:18px;background:rgba(15,19,26,.92);backdrop-filter:blur(14px);border:1px solid var(--hair-2);box-shadow:0 20px 50px rgba(0,0,0,.45)}
.bar:focus-within{border-color:rgba(61,220,239,.5)}
.bar input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:14px;color:var(--text)}
.bar input::placeholder{color:var(--muted)}
.bar .mic{width:36px;height:36px;border-radius:999px;color:var(--muted);display:grid;place-items:center;border:1px solid var(--hair);flex:0 0 auto}
.bar .mic:hover{color:var(--text);border-color:var(--hair-2)}
.bar .mic.live{color:var(--signal-ink);background:var(--signal);border-color:var(--signal);animation:micpulse 1.2s ease-in-out infinite}
@keyframes micpulse{0%,100%{box-shadow:0 0 0 0 rgba(61,220,239,.45)}50%{box-shadow:0 0 0 7px rgba(61,220,239,0)}}
.bar .help{width:36px;height:36px;border-radius:999px;color:var(--muted);display:grid;place-items:center;border:1px solid var(--hair)}
.bar .asst{width:36px;height:36px;border-radius:999px;color:var(--muted);display:grid;place-items:center;border:1px solid var(--hair);flex:0 0 auto}
.bar .asst:hover{color:var(--text);border-color:var(--hair-2)}
/* the assistant panel (assist.js): the voice analyst as a typed conversation */
.as{flex:1 1 auto;display:flex;flex-direction:column;min-height:0}
.as-log{flex:1 1 auto;overflow:auto;padding:14px 16px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;overscroll-behavior:contain}
.as-msg{max-width:88%;padding:9px 12px;border-radius:12px;font-size:13.5px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.as-msg.bot{align-self:flex-start;background:var(--lift);color:var(--text);border-top-left-radius:4px}
.as-msg.me{align-self:flex-end;background:rgba(61,220,239,.12);color:var(--text);border:1px solid rgba(61,220,239,.25);border-top-right-radius:4px}
.as-msg.pending{color:var(--muted)}
.as-msg.alert{border-left:3px solid var(--signal)}
.as-t{display:block;margin-top:3px;font-size:10.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.as-msg.me .as-t{text-align:right}
/* unread alerts in the assistant's history (assist.js 1.1) */
.bar .asst{position:relative}
.as-badge{position:absolute;top:-5px;right:-6px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--down);color:var(--down-ink);font-size:10.5px;font-weight:700;line-height:17px;text-align:center;font-variant-numeric:tabular-nums;pointer-events:none;box-shadow:0 0 0 2px var(--ground)}
/* "new version available" (app.js watchForUpdate) */
.upd{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:20000;display:flex;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:8px 10px 8px 16px;border-radius:12px;background:rgba(19,25,33,.97);border:1px solid var(--signal);box-shadow:0 12px 40px rgba(0,0,0,.5);font-size:13px;color:var(--text)}
.upd-x{width:26px;height:26px;border-radius:8px;color:var(--muted);font-size:17px}
.upd-x:hover{color:var(--text);background:var(--lift)}
.as-chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 16px 0;border-top:1px solid var(--hair)}
.as-chip{min-height:28px;padding:0 11px;border-radius:999px;border:1px solid var(--hair-2);color:var(--text-2);font-size:12px;font-weight:500}
.as-chip:hover{color:var(--text);border-color:var(--signal)}
.as-foot{padding:8px 16px 12px;font-size:11px;color:var(--muted)}
.hints{display:none;flex-direction:column;border-radius:14px;background:rgba(19,25,33,.96);border:1px solid var(--hair-2);box-shadow:0 20px 50px rgba(0,0,0,.5);overflow:hidden}
.hints.show{display:flex}
.hint{display:flex;align-items:center;gap:12px;padding:12px 14px;text-align:left;border-bottom:1px solid var(--hair)}
.hint:last-child{border-bottom:0}
.hint:hover,.hint[aria-selected="true"]{background:var(--lift)}
.hint .ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--lift-2);color:var(--text-2);flex:0 0 auto}
.hint .t{font-weight:600;font-size:13.5px} .hint .s{font-size:12px;color:var(--muted)} .hint .go{margin-left:auto;font-size:11px;color:var(--faint)}
.helpcard{display:none;flex-direction:column;gap:10px;padding:16px 18px;border-radius:16px;background:rgba(19,25,33,.96);border:1px solid var(--hair-2);box-shadow:0 20px 50px rgba(0,0,0,.5);font-size:13px;max-height:min(62vh,460px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
.helpcard.show{display:flex}
.helpcard h4{margin:0;font-size:13px;font-weight:600}
.helpcard .ex{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;color:var(--muted)}
.helpcard code{font-family:var(--mono);color:var(--text);font-size:12px}
.helpcard h4.vh{padding-top:9px;border-top:1px solid var(--hair-2)}
/* one row per spoken example: the phrases are long, so they wrap inline instead of fighting
   the two-track grid the typed examples use */
.helpcard .vx{display:flex;flex-direction:column;gap:5px;color:var(--muted);line-height:1.5}
.helpcard .vx code{display:inline-block;max-width:100%;margin-right:6px;white-space:nowrap}   /* inline-block: a row of examples wraps between them (1.10.1: the 2026-09-26 card overflowed sideways) */
.helpcard .vx b{display:block;margin:10px 0 2px;color:var(--text);font-weight:600;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
.helpcard .vx b:first-child{margin-top:0}
/* one-tap market orders (under the bar): each click sends immediately at the account's leverage */
.quick{display:flex;flex-direction:column;gap:5px}
.qrow{display:flex;gap:5px;align-items:center}
.qrow .ql{flex:0 0 34px;font-size:9.5px;font-weight:700;letter-spacing:.09em;color:var(--muted)}
.qrow.buy .ql{color:var(--up)} .qrow.sell .ql{color:var(--down)}
.qrow button{flex:1 1 0;min-width:0;height:30px;border-radius:9px;font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text-2);border:1px solid var(--hair);background:rgba(15,19,26,.92);backdrop-filter:blur(10px)}
/* solid green / solid red at rest, the same colours as the main Buy / Sell buttons: on a phone the
   BUY / SELL labels are hidden, and grey rows that only coloured on hover looked identical */
.qrow.buy button{color:var(--up-ink);background:var(--up);border-color:var(--up)}
.qrow.sell button{color:var(--down-ink);background:var(--down);border-color:var(--down)}
.qrow.buy button:hover,.qrow.sell button:hover{filter:brightness(1.12)}
.qrow button:active{transform:translateY(1px)}
.undo{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:12px;background:var(--lift);border:1px solid var(--hair-2);font-size:13px}
.undo .btn{height:32px;padding:0 12px} .undo .t{flex:1}

/* visitor gate */
.gate{position:absolute;right:28px;bottom:104px;width:400px;display:flex;flex-direction:column;gap:14px;padding:22px;border-radius:20px;background:rgba(15,19,26,.94);backdrop-filter:blur(16px);border:1px solid var(--hair-2);box-shadow:0 30px 70px rgba(0,0,0,.6);z-index:11;transition:transform .2s,box-shadow .2s;max-height:calc(100% - 140px);overflow:auto}
.gate.pulse{transform:translateY(-4px);box-shadow:0 0 0 2px var(--signal),0 30px 70px rgba(0,0,0,.6)}
.gate h2{margin:0;font-size:22px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
.gate p{margin:0;font-size:13px;color:var(--muted);line-height:1.5}
.gate .okx{height:48px;border-radius:12px;background:var(--text);color:#0A0D12;font-weight:600;font-size:14px;display:flex;align-items:center;justify-content:center;gap:10px}
.gate .okx:hover{filter:brightness(.94)}
.gate .okx[disabled]{opacity:.5;filter:none}
.gate .row{display:flex;gap:8px}
.gate .row .btn{flex:1;height:44px}
.gate .fine{font-size:11.5px;color:var(--faint);line-height:1.5}
.gate form{display:flex;flex-direction:column;gap:8px}
.gate input{height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--hair-2);background:var(--ground);color:var(--text);font-size:13px;outline:0}
.gate input:focus{border-color:var(--signal)}
.gate .err{font-size:12px;color:var(--down)}
.gate .row .btn{flex:1}
.gate .mini{display:none}
.gate.min > *:not(.mini){display:none!important}
.gate.min{padding:12px 16px;width:auto;max-height:none}
.gate.min .mini{display:flex;align-items:center;gap:12px;font-size:13px}
.gate.min .mini .cta{margin-left:auto}
.gate .explore{align-self:flex-start;font-size:12.5px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.gate .explore:hover{color:var(--text)}
.feat{display:flex;flex-wrap:wrap;gap:6px}
.feat button{font-size:11.5px;color:var(--text-2);padding:5px 10px;border-radius:999px;border:1px solid var(--hair);display:inline-flex;gap:6px;align-items:center}
.feat button:hover{border-color:var(--signal);color:var(--text)}
.feat i{width:6px;height:6px;border-radius:50%;background:var(--c,var(--signal))}

/* floating windows */
.win{position:absolute;display:flex;flex-direction:column;min-width:320px;min-height:160px;background:rgba(15,19,26,.97);backdrop-filter:blur(14px);border:1px solid var(--hair-2);border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.6);z-index:6;resize:both;overflow:hidden}
.win.front{border-color:rgba(61,220,239,.35)}
.win-h{display:flex;align-items:center;gap:10px;padding:9px 10px 9px 16px;border-bottom:1px solid var(--hair);cursor:move;user-select:none;-webkit-user-select:none;touch-action:none;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;flex:0 0 auto}
.win.front .win-h{color:var(--text-2)}
.win-h .win-sp{flex:1}
.win-x{width:26px;height:26px;border-radius:8px;color:var(--muted);font-size:17px;display:grid;place-items:center}
.win-x:hover{background:var(--lift);color:var(--text)}
.win-b{flex:1 1 auto;overflow:auto;min-height:0;display:flex;flex-direction:column;scrollbar-width:thin}
.win-b .inner{width:auto;margin:0;padding:6px 18px 24px}
.win-b .pbody{padding:6px 18px 20px}
.win h1{font-size:19px;margin-top:6px}
.win .big{font-size:30px}
.pbody{display:flex;flex-direction:column}
.rowx{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:13px 0;border-bottom:1px solid var(--hair);font-size:13px;align-items:center}
.rowx .t{font-weight:600;min-width:0;white-space:nowrap} .rowx .t .pos-sz{font-weight:500;font-size:12px;margin-left:6px}
@media (max-width:799px){.rowx .t{white-space:normal} .rowx .t .pos-sz{display:block;margin:2px 0 0}} .rowx .s{color:var(--muted);font-size:12px;grid-column:1} .rowx .v{text-align:right} .rowx .v2{text-align:right;color:var(--muted);font-size:12px;display:flex;gap:6px;justify-content:flex-end;align-items:center}
.tag{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500}
.tag.up{color:var(--up)}.tag.down{color:var(--down)}.tag.warn{color:var(--warn)}.tag.wave{color:var(--wave)}.tag.sig{color:var(--signal)}
.stripe{display:flex;gap:18px;font-size:12px;color:var(--muted);padding:14px 0 6px;flex-wrap:wrap}
.stripe b{color:var(--text);font-weight:500}
.chips{display:flex;gap:6px;flex-wrap:wrap;padding:10px 0 4px}
.chip{font-size:12px;color:var(--muted);padding:5px 10px;border-radius:999px;border:1px solid var(--hair)}
.chip[aria-pressed="true"]{color:var(--text);border-color:var(--hair-2);background:var(--lift)}
/* 1.26.0 (2026-10-19): the Markets category chips, the kind tags, the (i) button and its card; 1.26.1: the card under its row */
#m-list .m-info{margin:6px 0 10px}
.chips.kinds{padding-top:0}
.tag.k-stock{color:var(--signal)}.tag.k-etf{color:var(--wave)}.tag.k-index{color:var(--warn)}.tag.k-commodity{color:var(--up)}
.ibtn{all:unset;box-sizing:border-box;width:18px;height:18px;border-radius:50%;border:1px solid var(--hair-2);color:var(--muted);font:600 10px/1 var(--ui);margin-left:4px;display:inline-grid;place-items:center;cursor:pointer;vertical-align:middle}
.ibtn:hover,.ibtn:focus-visible{color:var(--text);border-color:var(--text-2)}
.m-info{position:relative;margin:4px 0 10px;padding:14px 16px 12px;border:1px solid var(--hair-2);border-radius:12px;background:var(--lift)}
.m-info[hidden]{display:none}
.m-info h3{margin:0 28px 6px 0;font-size:15px;font-weight:600}
.m-info h3 .tag{margin-left:4px}
.m-info p{margin:0 0 8px;color:var(--text-2);line-height:1.5;font-size:13px}
.m-info p.meta{font-size:12px}
.m-info a{color:var(--signal)}
.m-info .facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px 14px;margin:8px 0 8px}
.m-info .facts div{font-size:12.5px;font-family:var(--mono);font-variant-numeric:tabular-nums}
.m-info .facts b{display:block;font-family:var(--ui);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:500;margin-bottom:2px}
.m-info .x{position:absolute;top:8px;right:8px;padding:2px 9px}
.m-info .src{font-size:11px;color:var(--muted)}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.field input,.field select{height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--hair-2);background:var(--ground);color:var(--text);font-size:13px;outline:0;font-family:var(--mono)}
.field input:focus,.field select:focus{border-color:var(--signal)}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.switch{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--hair);font-size:13px}
.switch .d{font-size:12px;color:var(--muted)}
.sw{width:38px;height:22px;border-radius:11px;background:var(--lift-2);position:relative;flex:0 0 auto}
.sw::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--muted);transition:.15s}
.sw[aria-checked="true"]{background:var(--signal)} .sw[aria-checked="true"]::after{left:18px;background:var(--signal-ink)}
.tapebox{font-family:var(--mono);font-size:12px;display:flex;flex-direction:column}
.tapebox div{display:grid;grid-template-columns:72px 1fr auto;gap:10px;padding:5px 8px;border-radius:6px}
.tapebox .big{background:rgba(52,211,153,.12)} .tapebox .big.s{background:rgba(251,113,133,.12)}
.heat{display:grid;grid-template-columns:repeat(18,1fr);gap:2px}
.heat i{aspect-ratio:1;border-radius:2px;background:var(--down);opacity:var(--o,.2)} .heat i.g{background:var(--up)}
/* chat authors in their own colours, consecutive lines grouped (panels.js 1.6) */
.chatmsg{display:flex;flex-direction:column;gap:2px;margin-top:8px;padding:6px 10px;border-left:3px solid hsl(var(--nc,208) 70% 60%);border-radius:0 8px 8px 0;font-size:13px}
.chatmsg.cont{margin-top:1px;padding-top:3px}
.chatmsg.mine{background:var(--lift)}
.chatmsg.tome{background:rgba(245,166,35,.1);background:color-mix(in srgb,var(--warn) 12%,transparent);border-left-color:var(--warn)}
.chatmsg .txt{white-space:pre-wrap;word-break:break-word;color:var(--text)}
.chatmsg .who i{font-style:normal;font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--faint)}
.chatmsg .who b{color:hsl(var(--nc,208) 78% 70%)} .chatmsg .who b[data-mention]{cursor:pointer} .chatmsg .who b[data-mention]:hover{text-decoration:underline}
.ment{color:hsl(var(--nc,208) 78% 70%);font-weight:600} .ment.me{background:var(--warn);color:#111;border-radius:4px;padding:0 3px}
.chatmsg .who{font-size:11px;font-weight:600;display:flex;align-items:baseline;gap:8px} .chatmsg .who span{color:var(--faint);font-weight:400}
.hm-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--muted);padding:8px 0 6px}
.hm-win{display:inline-flex;gap:4px}
.hm{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;padding:4px 0 12px;align-content:start}
.hm-cell{display:flex;flex-direction:column;gap:3px;min-height:48px;padding:8px 10px;border-radius:3px;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.02);text-align:left;transition:transform .15s,border-color .15s}
.hm-cell:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.18)}
.hm-sym{font-size:11px;font-weight:700;color:#fff;letter-spacing:.3px}
.hm-meta{font-size:9px;font-family:var(--mono);color:#888;display:flex;justify-content:space-between;gap:4px}
.hm-pill{font-size:8px;font-weight:700;padding:1px 4px;border-radius:2px;letter-spacing:.3px}
.hm-pill.long{background:rgba(0,230,118,.2);color:#00e676} .hm-pill.short{background:rgba(255,23,68,.2);color:#ff1744} .hm-pill.neutral{background:rgba(255,255,255,.06);color:#777}
.hm-cell.bull-strong{background:rgba(0,230,118,.18);border-color:rgba(0,230,118,.4)} .hm-cell.bull-mid{background:rgba(0,230,118,.1);border-color:rgba(0,230,118,.22)}
.hm-cell.bear-strong{background:rgba(255,23,68,.18);border-color:rgba(255,23,68,.4)} .hm-cell.bear-mid{background:rgba(255,23,68,.1);border-color:rgba(255,23,68,.22)}
.mg{display:flex;flex-direction:column;gap:6px;padding:12px;border-radius:12px;background:var(--ground);border:1px solid var(--hair)}
.mg-l{font-size:11.5px;color:var(--muted)} .mg-l b{color:var(--text-2)}
.mg-row{display:flex;gap:8px;align-items:center}
.mg-row code{flex:1;font-family:var(--mono);font-size:12px;color:var(--text);padding:8px 10px;border-radius:8px;background:var(--lift);word-break:break-word;line-height:1.4}
.modal .box{max-height:calc(100% - 32px);overflow:auto}
.alertform{display:grid;grid-template-columns:1fr 1.2fr auto;gap:8px;padding-top:8px}
.alertform input{height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--hair-2);background:var(--ground);color:var(--text);outline:0;min-width:0}
.alertcard{display:flex;flex-direction:column;gap:6px;padding:12px 14px;border-radius:12px;background:var(--lift);border-left:3px solid var(--up)}
.alertcard.down{border-left-color:var(--down)}
.alertcard .t{font-size:14px} .alertcard .s{font-size:12.5px;color:var(--muted)} .alertcard .acts{padding-top:2px}
.chatwrap{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
.chatlist{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin}
.chatwrap .chatin{flex:0 0 auto;padding-bottom:4px}
.chatin{display:flex;gap:8px;padding-top:12px}
.chatin input{flex:1;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--hair-2);background:var(--ground);color:var(--text);outline:0}
.logline{display:grid;grid-template-columns:auto auto 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--hair);font-size:12.5px;align-items:start}
.logline .tm{font-family:var(--mono);color:var(--faint);font-size:11.5px}
.logline .act{color:var(--muted);font-size:12px;grid-column:3}

/* window content */
.inner{width:min(900px,100%);margin:0 auto;padding:16px 28px 140px;display:flex;flex-direction:column;gap:8px}
.inner h1{margin:0;font-size:30px;font-weight:600;letter-spacing:-.02em;display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.inner h1 small{font-size:13px;color:var(--muted);font-weight:400;letter-spacing:0}
.inner h3{margin:22px 0 4px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;display:flex;align-items:center;gap:10px}
.inner .big{font-size:40px;letter-spacing:-.03em;line-height:1.1}
.card{display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:14px;border:1px solid var(--hair);background:var(--surface)}
.scr{display:grid;grid-template-columns:1.2fr .9fr .7fr 1fr 1.2fr 28px;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid var(--hair);font-size:13px}
/* the row's last cell (screens.js 1.13): the coin in its own chart window; quiet until the row is hovered */
.scr .cw-cell{display:flex;justify-content:flex-end}
.scr .cw-open{width:24px;height:24px;border-radius:7px;color:var(--faint);display:grid;place-items:center;font-size:13px;line-height:1}
.scr.row:hover .cw-open{color:var(--muted)} .scr .cw-open:hover{color:var(--text);background:var(--lift)}
.scr.head{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 0}
/* sortable column titles (screens.js 1.10) */
.scr.head .th{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;white-space:nowrap;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit}
.scr.head .th i{font-style:normal;font-size:9px;opacity:.4;letter-spacing:0}
.scr.head .th:hover{color:var(--text)} .scr.head .th:hover i{opacity:.8}
.scr.head .th.on{color:var(--text)} .scr.head .th.on i{opacity:1;color:var(--signal)}
.scr.head .th:focus-visible{outline:1px solid var(--signal);outline-offset:2px;border-radius:3px}
.scr.row:hover{background:var(--surface);cursor:pointer}
.scr .bar2{height:5px;border-radius:3px;background:var(--lift-2);overflow:hidden} .scr .bar2 i{display:block;height:100%;background:var(--signal)}
.scr .volcell{display:flex;flex-direction:column;gap:3px;font-size:10.5px}
.gauge{display:grid;place-items:center;position:relative;width:200px;margin:0 auto}
.gauge b{position:absolute;bottom:8px;font-family:var(--mono);font-size:26px}
.news a{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:start;padding:10px 0;border-bottom:1px solid var(--hair);text-decoration:none;font-size:13px;line-height:1.35}
.news i{width:8px;height:8px;border-radius:50%;margin-top:5px} .news .t{font-size:11px;color:var(--muted);white-space:nowrap}
.toast{position:absolute;left:50%;top:80px;transform:translate(-50%,-6px);opacity:0;transition:.18s;font-size:12.5px;color:var(--text-2);padding:8px 14px;border-radius:999px;background:var(--lift);border:1px solid var(--hair-2);pointer-events:none;z-index:200;white-space:nowrap;max-width:90%;overflow:hidden;text-overflow:ellipsis}
.toast.show{opacity:1;transform:translate(-50%,0)}
.toast.err{border-color:var(--down);color:var(--down)}
.tabs-m{display:none} .dock .m-only{display:none}
.skel{height:12px;border-radius:6px;background:var(--lift);margin:8px 0}
.modal{position:absolute;inset:0;background:rgba(4,8,12,.6);display:none;place-items:center;z-index:150}
.modal.show{display:grid}
.modal .box{width:min(440px,calc(100% - 32px));display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:18px;background:var(--surface);border:1px solid var(--hair-2);box-shadow:0 30px 70px rgba(0,0,0,.6)}
.modal h3{margin:0;font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text)}

@media (max-width:1500px){ .nav{gap:12px} #conn-text{display:none} .sym .px{font-size:20px} .user{max-width:150px} }
@media (max-width:1599px){ .macro{gap:12px} .macro .c{display:none} .macro .a{display:inline} }
@media (max-width:1199px){
  .top{gap:16px;padding:0 20px} .nav{gap:14px} .nav .hint{display:none}
  .lg{left:56px;right:390px} .tf{right:20px} .ohlcrow{left:56px} .layoutsrow{right:20px} .pos{left:56px} .badge-ew{left:56px}
  .gate{right:20px;width:360px}
  .inner{padding:16px 20px 140px}
}
@media (max-width:799px){
  .app{grid-template-rows:auto auto auto 1fr}
  .acctbar{flex-direction:column;align-items:stretch;gap:8px;padding:8px 14px;font-size:12px}
  .acctbar .acts{justify-content:flex-end}
  .top{flex-direction:column;align-items:stretch;gap:2px;padding:9px 14px 6px}
  .brand,.nav{display:none}
  /* the dock stays on phones: without it Setups / Heatmap / Logs / Chat / Alerts had NO entry point */
  .dock{display:flex;padding:0 10px;gap:0;font-size:12px;-webkit-overflow-scrolling:touch}
  .dock a{padding:6px 9px} .dock .sep{margin:0 5px}
  .dock::-webkit-scrollbar{display:none}
  .sym{flex-direction:row;align-items:baseline;gap:9px;flex-wrap:nowrap;overflow:hidden}
  .sym button{font-size:13px} .sym .px{font-size:21px} .sym .chg{font-size:12px}
  /* phone: the market strip is its own thin row under the price, scrolled sideways when it does not fit */
  .macro{flex:0 0 auto;gap:9px;font-size:10.5px;padding:2px 0 1px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .macro::-webkit-scrollbar{display:none} .macro .k{font-size:9.5px} .macro .dl,.macro .a{display:none} .macro .mi{gap:4px}
  .macro .mi.up .v{color:var(--up)} .macro .mi.down .v{color:var(--down)}   /* no room for arrows: the value takes the colour */
  .quick .ql{display:none} .qrow{gap:4px} .qrow button{height:28px;font-size:11px;border-radius:8px}
  /* the expanded sign-in sheet owns the screen on a phone: the order bar must not float over it */
  .stagearea:has(> .gate:not(.min):not([hidden])) .cmd{display:none!important}
  .ribbon{top:8px;justify-content:flex-end;right:16px;left:auto} .ribbon span{padding:5px 10px;font-size:11px}
  .tools{left:12px;right:12px;top:auto;bottom:196px;flex-direction:row;max-height:none;max-width:none;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
  .tools .grip{display:none} .tools hr{width:0;height:18px;border-top:0;border-left:1px solid var(--hair-2);margin:auto 3px}
  .lg{top:10px;left:16px;right:16px}
  /* timeframes directly under the layer row, like on the web (operator 2026-09-25: at bottom:140px they
     sat under the order bar and the Feed tab and could not be seen) -- one small scrollable pill */
  .tf{position:absolute;top:34px;bottom:auto;left:16px;right:auto;gap:0;padding:2px;overflow-x:auto;overflow-y:hidden;max-width:calc(100% - 32px);scrollbar-width:none;-webkit-overflow-scrolling:touch;flex-wrap:nowrap}
  .tf::-webkit-scrollbar{display:none}
  .tf button{font-size:11px;padding:3px 7px;flex:0 0 auto}
  .ohlcrow,.layoutsrow,.teach,.badge-ew,.grip{display:none!important}
  /* one line per position on any phone: trade.js fitPos picks --pos-fs (12 px down to 9.5) and, only when even
     that is too wide, drops the entry, then the size, then the percent (.noentry / .noqty / .noroe) */
  /* bottom is set by trade.js stackPhone (8 px above the command bar); 172 px until then */
  .pos{left:16px;right:16px;bottom:172px;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:4px;padding:8px 8px 8px 12px} .pos .sep{display:none}
  .pos .row{font-size:var(--pos-fs,12px);gap:calc(var(--pos-fs,12px) * .55);flex-wrap:nowrap;white-space:nowrap;min-width:0;min-height:38px}
  .pos .row>*{flex:0 0 auto}
  .pos .tag{font-size:calc(var(--pos-fs,12px) * .88);letter-spacing:.02em}
  .pos .coin,.pos .full,.pos.noentry .entry,.pos.noqty .qty,.pos.noroe .roe{display:none}
  .pos .pnl{margin-left:auto}
  .pos .acts{gap:3px}
  .pos .acts button{font-size:inherit;min-height:36px;padding:0 calc(var(--pos-fs,12px) * .5);border-radius:9px;background:var(--lift);color:var(--text-2)}
  .pos .acts button.sig{color:var(--signal)}
  .cmd{bottom:64px;width:calc(100% - 32px)}
  .bar{height:52px;border-radius:16px;padding-left:8px}
  /* the ? is the only place that explains the voice commands, so keep it on phones too */
  .bar .help{width:28px;height:28px;flex:0 0 28px;font-size:12px}
  .bar .asst{width:28px;height:28px;flex:0 0 28px}
  /* the assistant is typed to from the command bar (assist.js 1.2): over its window the bar stays, the one-tap
     order rows do not, and the conversation ends above the bar */
  .app.has-win.asst-front #cmd{display:flex!important}   /* an id: the expanded sign-in sheet rule above is (0,5,0) */
  .app.asst-front .cmd .quick{display:none!important}
  #win-assistant .as{padding-bottom:calc(128px + env(safe-area-inset-bottom,0px))}
  .helpcard{max-height:52vh;padding:14px} .helpcard .vx code{white-space:normal}
  /* 375px leaves the description track ~113px wide, so the typed examples stack instead */
  .helpcard .ex{grid-template-columns:1fr;gap:1px 0} .helpcard .ex span{padding:0 0 6px 2px}
  .sheetcard{max-height:70vh} .opt.custom{flex:1 1 100%}
  .gate{left:0;right:0;bottom:0;width:auto;border-radius:24px 24px 0 0;padding:20px 20px calc(20px + env(safe-area-inset-bottom,0px));max-height:80%}
  .gate.min{bottom:calc(56px + env(safe-area-inset-bottom,0px));border-radius:14px;left:12px;right:12px;padding:10px 14px}
  /* the bottom tab bar repeated the dock above it (Radar, Markets, Portfolio all twice), so on a
     phone the dock is the single menu — and it takes over the one entry only the tab bar had. */
  .dock .m-only{display:block} .dock .dset{display:inline-flex;position:sticky;right:0;flex:0 0 auto}
  .tabs-m a{display:grid;place-items:center;text-decoration:none;position:relative}
  .tabs-m a[aria-current="page"]{color:var(--text)}
  .tabs-m a[aria-current="page"]::after{content:"";position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--signal)}
  .win{inset:0!important;width:auto!important;height:auto!important;border-radius:0;border:0;resize:none;z-index:8!important;min-width:0}
  .app.has-win .cmd,.app.has-win .gate,.app.has-win .side-tab,.app.has-win .side,.app.has-win .tools,.app.has-win .pos,.app.has-win .tf,.app.has-win .lg,.app.has-win .okx-badge{display:none!important}
  .tabs-m{z-index:9}
  .win-h{cursor:default;padding-top:14px}
  .win-b .inner{padding:8px 16px 150px} .win-b .pbody{padding:6px 16px 150px}
  .grid2{grid-template-columns:1fr}
  .scr{grid-template-columns:1fr auto auto} .scr .hide-m{display:none}
}

/* feed column (tape / sentiment / news) */
.side-tab{position:absolute;right:0;top:50%;transform:translateY(-50%);width:20px;height:76px;border-radius:10px 0 0 10px;background:var(--lift);border:1px solid var(--hair-2);border-right:0;color:var(--muted);display:grid;place-items:center;z-index:4;transition:right .22s cubic-bezier(.2,.8,.2,1)}
.side-tab:hover{color:var(--text);background:var(--lift-2)}
.side-tab svg{transition:transform .2s}
.side-tab-t{display:none}
.app.side-open .side-tab{right:340px} .app.side-open .side-tab svg{transform:rotate(180deg)}
aside.side{position:absolute;top:0;right:0;bottom:0;width:340px;display:none;flex-direction:column;background:var(--surface);border-left:1px solid var(--hair);z-index:3}
.app.side-open aside.side{display:flex}
.app.side-open .chartwrap,.app.side-open .ribbon{right:340px}
.app.side-open .tf,.app.side-open .layoutsrow,.app.side-open .gate,.app.side-open .teach{right:368px}
.app.side-open .lg{right:750px}
.app.side-open .cmd{left:calc(50% - 170px);width:min(680px,calc(100% - 396px))}
.side-sec{display:flex;flex-direction:column;min-height:0;border-bottom:1px solid var(--hair)}
.side-sec-tape{flex:0 0 34%}
.side-sec-sent{flex:0 0 auto}
.side-sec-news{flex:1 1 auto;border-bottom:0}
.side-h{display:flex;align-items:center;gap:8px;padding:12px 14px 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600;flex:0 0 auto}
.side-h .side-meta{margin-left:auto;font-weight:400;letter-spacing:0;text-transform:none;color:var(--faint);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px}
.side-chip{padding:2px 8px;font-size:10.5px;letter-spacing:0;text-transform:none;font-weight:500}
.side-x{margin-left:4px;color:var(--muted);font-size:16px;line-height:1}
.side-more{margin-left:auto;font-size:11px;letter-spacing:0;text-transform:none;color:var(--signal);font-weight:500}
.side-body{overflow:auto;padding:0 14px 10px;min-height:0;scrollbar-width:thin}
.side-empty{font-size:12px;color:var(--faint);padding:8px 0}
.side-body.tape{font-family:var(--mono);font-size:11.5px}
/* 1.27.0 (2026-10-19): the tape's tug-of-war (tug.js): the canvas with the bull, the bear and the bar, the window row under it */
.tug{flex:0 0 auto;padding:2px 14px 6px;border-bottom:1px solid var(--hair)}
.tug canvas{display:block;width:100%;height:110px}
/* 1.27.1: the 3D meter's label row above the canvas */
.tug-top{display:flex;justify-content:space-between;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.02em;padding:2px 2px 0;min-height:14px}
.tug-top .tb{color:var(--up)} .tug-top .ts{color:var(--down)}
.tug-win{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:4px}
.tw{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.tw-k{color:var(--faint)} .tw-v{color:var(--text-2);min-width:30px;text-align:right}
.tw-bar{height:5px;border-radius:3px;background:var(--down);overflow:hidden} .tw-bar i{display:block;height:100%;background:var(--up);transition:width .6s}
.tw.bulls .tw-v{color:var(--up)} .tw.bears .tw-v{color:var(--down)}
/* 1.27.2: (the models' CC-BY line under the row was removed on the operator's instruction; the attribution lives in the GLBs' asset.extras and docs/memory/trade-tape-model.md) */
.tp{display:grid;grid-template-columns:64px 1fr auto;gap:8px;padding:3px 6px;border-radius:5px}
.tp.big{font-size:inherit;line-height:inherit;letter-spacing:0;font-weight:inherit;background:rgba(52,211,153,.10)} .tp.big.t2{background:rgba(52,211,153,.20)} .tp.big.t3{background:rgba(52,211,153,.34);color:var(--text)}
.tp.big.s{background:rgba(251,113,133,.10)} .tp.big.s.t2{background:rgba(251,113,133,.20)} .tp.big.s.t3{background:rgba(251,113,133,.34);color:var(--text)}
.sent-bar{height:6px;border-radius:3px;background:var(--down);overflow:hidden;margin:4px 0 6px} .sent-bar i{display:block;height:100%;background:var(--up)}
.sent-row{display:flex;justify-content:space-between;font-size:12px;font-weight:600}
.sent-kv{display:flex;gap:16px;font-size:12px;color:var(--muted);padding:8px 0 4px} .sent-kv b{color:var(--text);font-weight:500}
.sent-ex{display:grid;grid-template-columns:1fr auto auto;gap:10px;font-size:12px;color:var(--text-2);padding:4px 0;border-top:1px solid var(--hair)}
.nw{display:flex;flex-direction:column;gap:3px;padding:9px 0;border-bottom:1px solid var(--hair);text-decoration:none;font-size:12.5px;line-height:1.35}
.nw .t{color:var(--text-2)} .nw.mine .t{color:var(--text)} .nw:hover .t{color:var(--text)}
.nw .b{color:var(--muted);font-size:12px;line-height:1.4;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.nw .m{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--faint)} .nw .c{color:var(--signal)}
@media (max-width:1199px){
  .app.side-open .chartwrap,.app.side-open .ribbon{right:0}
  .app.side-open .tf,.app.side-open .layoutsrow,.app.side-open .gate,.app.side-open .teach{right:20px}
  .app.side-open .side-tab{right:min(360px,92%)}
  .app.side-open .lg{right:390px}
  .app.side-open .cmd{left:50%;width:min(720px,calc(100% - 56px))}
  aside.side{width:min(360px,92%);box-shadow:0 30px 70px rgba(0,0,0,.6);z-index:9}
}
@media (max-width:799px){
  aside.side{top:auto;left:0;right:0;bottom:0;width:100%;height:78%;border-left:0;border-top:1px solid var(--hair-2);border-radius:22px 22px 0 0;z-index:9}
  .side-sec-tape{flex:0 0 30%}
  .side-tab{top:auto;bottom:140px;right:16px;transform:none;width:auto;height:auto;padding:5px 10px;border-radius:999px;border:1px solid var(--hair);font-size:11.5px;background:var(--surface);display:inline-flex;gap:6px}
  .side-tab svg{display:none} .side-tab-t{display:inline}
  .app.side-open .side-tab{right:16px;z-index:10}
  .app.side-open .pos{display:none}
}
#liq-heatmap-toggle,#depth-overlay-toggle{display:none!important}
.okx-badge{position:absolute;left:16px;bottom:22px;z-index:4;opacity:.8;transition:opacity .15s}
.okx-badge:hover{opacity:1}
.okx-badge img{height:28px;display:block}
.nw .coins{display:flex;gap:4px;flex-wrap:wrap}
.nw .coins button{font-size:10.5px;color:var(--signal);padding:1px 7px;border-radius:999px;border:1px solid rgba(61,220,239,.35)}
.nw .coins button:hover{background:rgba(61,220,239,.12)}
.sent-list{display:flex;flex-direction:column}
.sent-ex{grid-template-columns:1fr 46px 72px 72px} .sent-ex span:not(:first-child){text-align:right}
@media (max-width:799px){ .okx-badge{left:auto;right:16px;bottom:126px;opacity:.7} .okx-badge img{height:22px} }
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* grid bot chooser (2026-09-25): Brain Grid Bot | Trend Grid Bot, each with a small animated mark.
   Brain: price oscillating between the BRAIN range edges, the fills lighting up in turn.
   Trend: a stepping trend line drawing itself, pullback buys lighting up, the trailing floor moving up. */
.gpick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}
.gopt{display:grid;grid-template-columns:48px 1fr;gap:12px;align-items:center;text-align:left;padding:12px 14px;border-radius:14px;border:1px solid var(--hair);background:var(--surface);color:var(--text);cursor:pointer;font:inherit;transition:border-color .2s,background .2s,box-shadow .2s,transform .2s}
.gopt:hover{border-color:var(--hair-2);background:var(--lift);transform:translateY(-1px)}
.gopt:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.gopt.on{background:var(--lift)}
.gopt.brain.on{border-color:rgba(61,220,239,.55);box-shadow:0 0 0 3px rgba(61,220,239,.08)}
.gopt.trend.on{border-color:rgba(52,211,153,.55);box-shadow:0 0 0 3px rgba(52,211,153,.08)}
.gopt .gtx{display:flex;flex-direction:column;gap:3px;min-width:0}
.gopt .gtx b{font-size:14.5px;font-weight:600;letter-spacing:-.01em}
.gopt .gtx small{font-size:12px;color:var(--muted);line-height:1.35}
.gico,.gico svg{width:48px;height:48px;display:block}
.gico{transition:opacity .2s,filter .2s}
.gopt:not(.on) .gico{opacity:.5;filter:saturate(.5)}
.gopt:not(.on):hover .gico{opacity:.85;filter:none}
.gico .gbg{fill:var(--ground);stroke:var(--hair-2)}
.gico .gl{stroke:var(--faint);stroke-width:1;stroke-dasharray:2 3}
.gico .gl.top{stroke:rgba(251,113,133,.75)} .gico .gl.bot{stroke:rgba(52,211,153,.75)}
.gico .gl.floor{stroke:rgba(52,211,153,.6);animation:gfloor 3.6s ease-in-out infinite}
.gico .trace{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100;animation:gdraw 3.6s ease-in-out infinite}
.gico .arrow{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;opacity:0;animation:garrow 3.6s ease-in-out infinite}
.gico .blip{opacity:0;transform-box:fill-box;transform-origin:center;animation:gblip 3.6s ease-out infinite}
.gico .b2{animation-delay:.45s} .gico .b3{animation-delay:.9s} .gico .b4{animation-delay:1.35s}
.gopt.brain .trace{stroke:var(--signal)} .gopt.brain .blip{fill:var(--signal)}
.gopt.trend .trace,.gopt.trend .arrow{stroke:var(--up)} .gopt.trend .blip{fill:var(--up)}
@keyframes gdraw{0%{stroke-dashoffset:100}50%,78%{stroke-dashoffset:0}100%{stroke-dashoffset:-100}}
@keyframes gblip{0%,12%{opacity:0;transform:scale(.3)}22%{opacity:1;transform:scale(1.35)}40%,70%{opacity:.9;transform:scale(1)}90%,100%{opacity:0;transform:scale(1)}}
@keyframes garrow{0%,42%{opacity:0}55%,80%{opacity:1}100%{opacity:0}}
@keyframes gfloor{0%,20%{transform:translateY(0)}60%,85%{transform:translateY(-5px)}100%{transform:translateY(0)}}
.gdetail{animation:gin .28s cubic-bezier(.2,.8,.2,1)}
.gdetail .gdesc{font-size:13px;color:var(--text-2);line-height:1.55}
.gdetail .gdesc b{color:var(--text);font-weight:600}
.gdetail.brain{border-color:rgba(61,220,239,.18)} .gdetail.trend{border-color:rgba(52,211,153,.18)}
.gnote{font-size:12px;color:var(--muted);line-height:1.45}
@keyframes gin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:799px){
  .gopt{grid-template-columns:1fr;gap:8px;padding:12px}
  .gopt .gtx b{font-size:13.5px} .gopt .gtx small{font-size:11.5px}
  .gico,.gico svg{width:40px;height:40px}
}
@media (prefers-reduced-motion:reduce){
  .gico *,.gdetail{animation:none!important}
  .gico .trace{stroke-dashoffset:0} .gico .blip,.gico .arrow{opacity:1}
}

/* the chart's WHALES layer (overlays.js 1.7): a small tooltip over a whale's circle */
.whtip{position:absolute;z-index:7;pointer-events:none;min-width:176px;max-width:250px;padding:7px 9px 6px;border-radius:9px;background:rgba(15,19,26,.96);border:1px solid var(--hair-2);box-shadow:0 12px 32px rgba(0,0,0,.55);font-size:11px;line-height:1.5;color:var(--text-2)}
.whtip b{color:var(--text);font-weight:600}
.whtip .wt-h{font-size:10.5px;letter-spacing:.02em;margin-bottom:2px;color:var(--muted)}
.whtip .wt-h b{font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
.whtip .wt-h b.up{color:var(--up)} .whtip .wt-h b.down{color:var(--down)}
.whtip .wt-who{color:var(--muted);margin-top:2px}
.whtip .wt-more{color:var(--faint);font-size:10px;margin-top:3px}
#lw.wh-hover{cursor:pointer}

/* Whales window (whales.js 1.0): the largest perp positions on Hyperliquid and trade.xyz. The layout follows the
   WINDOW's width (a container query), not the screen's: a narrow window on a big screen gets the compact rows too. */
.wh{container-type:inline-size;display:flex;flex-direction:column;gap:12px;padding:4px 18px 22px}
.wh h1{margin-bottom:0} .wh h1 small{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px;letter-spacing:0}
.wh-lede{margin:2px 0 0;font-size:12.5px;color:var(--muted);max-width:760px}
.wh-sum{display:grid;grid-template-columns:1fr 1.7fr 1fr 1fr;gap:10px}
.wh-card{display:flex;flex-direction:column;gap:4px;min-width:0;padding:12px 14px;border-radius:12px;border:1px solid var(--hair);background:linear-gradient(180deg,var(--surface),rgba(15,19,26,.35))}
.wh-card>b{font-size:18px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wh-k{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wh-sub{font-size:11.5px;color:var(--muted);display:flex;gap:10px;justify-content:space-between;min-width:0}
.wh-card .wh-sub b{color:var(--text);font-weight:500}
.wh-split{height:8px;border-radius:5px;background:var(--down);overflow:hidden;margin:7px 0 3px}
.wh-split i{display:block;height:100%;background:var(--up);box-shadow:2px 0 0 var(--ground)}
.wh-bar{display:flex;flex-wrap:wrap;align-items:center;gap:2px 16px}
.wh-bar .chips{padding:2px 0}
.wh-q{flex:1 1 180px;min-width:160px;height:32px;padding:0 14px;border-radius:999px;border:1px solid var(--hair-2);background:var(--ground);color:var(--text);font-size:12.5px;outline:0}
.wh-q:focus{border-color:var(--signal)}
.wh-tabs{display:flex;gap:2px;border-bottom:1px solid var(--hair)}
.wh-tabs button{padding:9px 12px;margin-bottom:-1px;font-size:12.5px;color:var(--muted);border-bottom:2px solid transparent}
.wh-tabs button:hover{color:var(--text)}
.wh-tabs button[aria-selected="true"]{color:var(--text);border-bottom-color:var(--signal)}
.wh-tabs b{margin-left:4px;font-size:11.5px;font-weight:500;color:var(--text-2)}
.wh-list{display:flex;flex-direction:column}
.wh-row{display:grid;grid-template-columns:22px minmax(150px,1.5fr) minmax(100px,1fr) minmax(128px,1.15fr) minmax(106px,1fr) minmax(96px,.95fr) minmax(78px,.75fr) minmax(118px,1.15fr);gap:12px;align-items:center;padding:10px 10px 10px 8px;border-bottom:1px solid var(--hair);border-left:3px solid transparent;font-size:13px}
.wh-row>span{display:flex;flex-direction:column;gap:2px;min-width:0}
.wh-row.long{border-left-color:rgba(52,211,153,.6)} .wh-row.short{border-left-color:rgba(251,113,133,.6)}
.wh-row:not(.head){cursor:pointer;transition:background .12s}
.wh-row:not(.head):hover,.wh-row.open{background:var(--surface)}
.wh-row:not(.head):focus-visible{outline:1px solid var(--signal);outline-offset:-1px}
.wh-row.head{position:sticky;top:0;z-index:1;padding-top:7px;padding-bottom:7px;background:rgba(15,19,26,.98);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.wh-row.head .th{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}
.wh-row.head .th i{font-style:normal;font-size:9px;opacity:.45;letter-spacing:0}
.wh-row.head .th:hover{color:var(--text)} .wh-row.head .th.on{color:var(--text)} .wh-row.head .th.on i{opacity:1;color:var(--signal)}
.wh-row.head .th:focus-visible{outline:1px solid var(--signal);outline-offset:2px;border-radius:3px}
.wh-row .c-rank{font-size:11px;color:var(--faint)}
.wh-row .c-pos{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px}
.wh-coin{font-size:14px;font-weight:600;letter-spacing:.01em}
.wh-side{padding:2px 6px;border-radius:5px;font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.long .wh-side{color:var(--up);background:rgba(52,211,153,.12)} .short .wh-side{color:var(--down);background:rgba(251,113,133,.12)}
.wh-lev{font-size:11.5px;color:var(--text-2)}
.wh-dex{padding:1px 5px;border-radius:4px;border:1px solid var(--hair-2);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wh-dex.b{color:var(--wave);border-color:rgba(167,139,250,.35)}
.wh-row .c-size b{font-size:14px}
.wh-meter{height:3px;margin-top:3px;border-radius:2px;background:var(--lift-2);overflow:hidden}
.wh-meter i{display:block;height:100%;background:var(--signal);opacity:.75}
.wh-row .c-px{flex-direction:row;align-items:baseline;white-space:nowrap;font-size:12.5px}
.wh-to{margin:0 5px;color:var(--faint)}
.wh-row .c-liq{flex-direction:row;align-items:center;gap:6px;white-space:nowrap;font-size:12.5px}
.wh-dist{padding:1px 6px;border-radius:999px;font-size:10.5px;color:var(--muted);background:var(--lift)}
.wh-dist.warm{color:var(--warn);background:rgba(251,191,36,.12)} .wh-dist.hot{color:var(--down);background:rgba(251,113,133,.15)}
.wh-row .c-pnl b,.wh-row .c-pnl{font-size:13px}
.wh-row .c-age{font-size:12.5px;color:var(--text-2);white-space:nowrap}
.wh-row .c-who{font-size:12.5px}
.wh-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wh-sortm{display:none}
.wh-detail{display:flex;flex-direction:column;gap:14px;padding:12px 14px 16px 33px;border-bottom:1px solid var(--hair);background:var(--surface)}
.wh-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px}
.wh-kv>div{display:flex;flex-direction:column;gap:3px;min-width:0;font-size:12.5px}
.wh-kv .wh-k{font-size:10px}
.wh-small{display:block;font-size:11px}
.wh-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.wh-acts a{text-decoration:none}
.wh-addr{font-size:11.5px;color:var(--text-2);word-break:break-all;margin-right:4px}
.wh-chain{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px dashed var(--hair)}
.wh-chain>.wh-k{font-size:10px}
.wh-acct{display:flex;flex-direction:column;gap:12px;margin:10px 0 14px;padding:14px 16px;border-radius:12px;border:1px solid rgba(56,189,248,.35);background:linear-gradient(180deg,rgba(56,189,248,.07),var(--surface))}
.wh-acct-h{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.wh-acct-h b{font-size:15px}
.wh-acct-h .num{font-size:11px;word-break:break-all}
.wh-acct-pos{display:flex;flex-wrap:wrap;gap:6px}
.wh-chip{padding:3px 8px;border-radius:999px;font-size:11.5px;border:1px solid var(--hair-2);color:var(--text-2);white-space:nowrap}
.wh-chip.long{border-color:rgba(52,211,153,.4)} .wh-chip.short{border-color:rgba(251,113,133,.4)}
.wh-chip b{color:var(--text)}
.wh-ev{display:grid;grid-template-columns:76px minmax(0,1.6fr) minmax(0,1.3fr) minmax(0,1fr);gap:12px;align-items:center;padding:10px 6px 10px 10px;border-bottom:1px solid var(--hair);border-left:3px solid transparent;font-size:12.5px}
.wh-ev.long{border-left-color:rgba(52,211,153,.5)} .wh-ev.short{border-left-color:rgba(251,113,133,.5)}
.wh-ev-t{font-size:11.5px;color:var(--muted)}
.wh-ev-w{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}
.wh-ev.close .wh-ev-w b,.wh-ev.flip .wh-ev-w b{color:var(--warn)}
.wh-ev-who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right;color:var(--text-2)}
.wh-empty{padding:30px 8px;text-align:center;font-size:13px;color:var(--muted)}
.wh-foot{margin:4px 0 0;font-size:11.5px;line-height:1.55;color:var(--muted)}
.wh-foot b{color:var(--text-2);font-weight:500}
@container (max-width:919px){
  .wh-sum{grid-template-columns:1fr 1fr}
  .wh-row.head{display:none} .wh-sortm{display:flex;padding:8px 0 6px}
  .wh-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"pos pos size" "px liq pnl" "who who age";gap:5px 12px;padding:11px 8px 11px 10px}
  .wh-row .c-rank{display:none}
  .wh-row .c-pos{grid-area:pos} .wh-row .c-size{grid-area:size;align-items:flex-end;text-align:right}
  .wh-row .c-px{grid-area:px} .wh-row .c-liq{grid-area:liq} .wh-row .c-pnl{grid-area:pnl;align-items:flex-end;text-align:right}
  .wh-row .c-who{grid-area:who;flex-direction:row;gap:8px;align-items:baseline} .wh-row .c-age{grid-area:age;text-align:right;color:var(--muted);font-size:12px}
  .wh-row .c-size .wh-sub{display:none} .wh-meter{width:84px}
  .wh-detail{padding-left:14px} .wh-kv{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wh-ev{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"w v" "who t"} .wh-ev-w{grid-area:w} .wh-ev-v{grid-area:v;text-align:right} .wh-ev-who{grid-area:who;text-align:left} .wh-ev-t{grid-area:t;text-align:right}
}
@container (max-width:520px){
  .wh{padding:4px 12px 18px}
  .wh h1 small{display:block;margin:6px 0 0} .wh-lede{display:none}
  .wh-sum{grid-template-columns:1fr} .wh-sum .wh-card:nth-child(n+3){display:none}
  .wh-row{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"pos size" "px pnl" "liq age" "who who"}
  .wh-kv{grid-template-columns:1fr}
}

/* Chart windows (chartwin.js 1.0): a coin's candles in their own floating window beside the main chart. A column that
   fills the window body: the bar (market, price, day change, timeframe pills, Make main), then the chart. */
.cw{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;position:relative}
.cw-bar{display:flex;align-items:center;gap:10px;padding:7px 12px;border-bottom:1px solid var(--hair);flex:0 0 auto;flex-wrap:wrap;font-size:12.5px}
.cw-sym{font-weight:600;font-size:13.5px;letter-spacing:-.01em;white-space:nowrap} .cw-sym small{color:var(--muted);font-weight:400;font-size:11px}
.cw-px{font-size:15px;letter-spacing:-.01em} .cw-chg{font-size:12px}
.cw-sp{flex:1 1 0;min-width:0}
.cw-tfs{padding:0;gap:2px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none} .cw-tfs::-webkit-scrollbar{display:none}
.cw-tfs .chip{font-family:var(--mono);font-size:11px;padding:3px 7px;border-color:transparent;flex:0 0 auto}
.cw-tfs .chip:hover{color:var(--text);background:var(--lift)}
.cw-tfs .chip[aria-pressed="true"]{color:var(--signal-ink);background:var(--signal);border-color:var(--signal);font-weight:600}
.cw-main{height:26px;padding:0 9px;font-size:11.5px;border:1px solid var(--hair);color:var(--text-2);border-radius:999px}
.cw-main:hover{color:var(--text);border-color:var(--hair-2)}
.cw-chart{flex:1 1 auto;min-height:180px;position:relative}
.cw-quick{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:6px 10px;border-top:1px solid var(--hair);flex:0 0 auto}
.cwq-g{display:flex;gap:4px;align-items:center}
.cwq-l{font-size:9.5px;font-weight:700;letter-spacing:.09em;margin-right:2px} .cwq-l.b{color:var(--up)} .cwq-l.s{color:var(--down)}
.cw-quick button{height:24px;padding:0 8px;border-radius:7px;font-family:var(--mono);font-size:11px;font-weight:600;border:1px solid}
.cw-quick button.b{color:var(--up-ink);background:var(--up);border-color:var(--up)}
.cw-quick button.s{color:var(--down-ink);background:var(--down);border-color:var(--down)}
.cw-quick button:hover{filter:brightness(1.08)}
.cwq-lev{height:24px;padding:0 6px;border-radius:7px;font-family:var(--mono);font-size:11px;font-weight:600;color:var(--text);background:var(--lift);border:1px solid var(--hair-2);cursor:pointer}
.cwq-lev:disabled{color:var(--faint);cursor:default} .cwq-lev:focus-visible{outline:1px solid var(--signal)}
.cw-note{position:absolute;left:12px;bottom:10px;max-width:calc(100% - 24px);padding:4px 9px;border-radius:999px;background:rgba(15,19,26,.92);border:1px solid var(--hair-2);font-size:11.5px;color:var(--muted);pointer-events:none;z-index:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Portfolio balance card (equity.js 1.0): the balance since the user started, the P&L in it, a line that draws
   itself in and a live dot that breathes. Green while the P&L since the start is positive, red when negative. */
.pf-body{display:contents}
.eqc{--c:var(--up);--c-soft:rgba(52,211,153,.13);--c-wash:rgba(52,211,153,.07);position:relative;display:flex;flex-direction:column;gap:3px;padding:16px 16px 12px;margin-top:4px;border-radius:14px;border:1px solid var(--hair);background:radial-gradient(120% 100% at 100% 0%,var(--c-wash),transparent 62%),var(--surface);overflow:hidden;transition:background .6s}
.eqc[data-dir="down"]{--c:var(--down);--c-soft:rgba(251,113,133,.13);--c-wash:rgba(251,113,133,.07)}
.eqc-lab{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.eqc-live{display:inline-flex;align-items:center;gap:5px;color:var(--c);letter-spacing:.06em;font-weight:500;transition:color .6s}
.eqc-live i{width:6px;height:6px;border-radius:50%;background:currentColor;animation:eqbeat 1.8s ease-in-out infinite}
.eqc-big{font-size:34px;letter-spacing:-.03em;line-height:1.15;font-weight:500;transition:color .9s}
.eqc-big.flash-up{color:var(--up);transition:color .12s} .eqc-big.flash-down{color:var(--down);transition:color .12s}
.eqc-pnl{font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-height:22px}
.eqc-pnl b{color:var(--c);font-weight:600;transition:color .6s}
.eqc-pnl .pc{color:var(--c);padding:1px 8px;border-radius:999px;background:var(--c-soft);font-size:12px;transition:color .6s,background .6s}
.eqc-ctl{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:8px}
.eqc-ctl .chips{padding:0}
.eqc-plot{position:relative;height:150px;margin-top:6px;color:var(--c);touch-action:pan-y;transition:color .6s}
.eqc-svg,.eqc-svg svg{display:block;width:100%;height:100%}
.eqc-svg svg{overflow:visible}
.eq-line{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.eq-glow{fill:none;stroke:currentColor;stroke-width:7;stroke-linejoin:round;stroke-linecap:round;opacity:.13}
.eq-area{stroke:none}
.eq-base{stroke:var(--hair-2);stroke-width:1;stroke-dasharray:3 4}
.eq-yl{font:10px var(--mono);fill:var(--faint)}
.eq-dot{opacity:0;transition:transform .8s cubic-bezier(.2,.8,.2,1),opacity .35s}
.eq-dot.on{opacity:1}
.eq-dot .core{fill:currentColor;stroke:var(--surface);stroke-width:2}
.eq-dot .ring{fill:currentColor;opacity:0;transform-box:fill-box;transform-origin:center}
.eq-dot.on .ring{animation:eqring 2.2s ease-out infinite}
.eq-dot.drawing{transition:opacity .2s}
.eq-dot.drawing .ring{animation:none;opacity:0}
.eq-mark{fill:var(--surface);stroke:var(--signal);stroke-width:1.5}
.eq-mark.out{stroke:var(--warn)}
.eq-hx{stroke:var(--hair-2);stroke-width:1;opacity:0}
.eq-hc{fill:currentColor;stroke:var(--surface);stroke-width:2;opacity:0}
.eqc-plot.hov .eq-hx,.eqc-plot.hov .eq-hc{opacity:1}
.eqc-tip{position:absolute;top:-6px;left:0;pointer-events:none;background:var(--lift-2);border:1px solid var(--hair-2);border-radius:8px;padding:6px 9px;font-size:11.5px;line-height:1.5;white-space:nowrap;color:var(--text);opacity:0;transition:opacity .15s;z-index:2}
.eqc-plot.hov .eqc-tip{opacity:1}
.eqc-tip .d{color:var(--muted);font-size:10.5px}
.eqc-tip b{font-weight:500}
.eqc-tip .up{color:var(--up)} .eqc-tip .down{color:var(--down)}
.eqc-wait{position:absolute;inset:0;display:none;place-items:center;text-align:center;padding:0 24px;font-size:12.5px;color:var(--muted)}
.eqc.waiting .eqc-wait{display:grid}
.eqc.waiting .eqc-ctl,.eqc.waiting .eqc-axis,.eqc.waiting .eqc-foot{visibility:hidden}
.eq-skel{fill:none;stroke:var(--hair-2);stroke-width:1.6;stroke-dasharray:6 8;animation:eqflow 1.1s linear infinite}
.eqc-axis{display:flex;justify-content:space-between;font:10.5px var(--mono);color:var(--faint);padding:2px 0 0}
.eqc-foot{font-size:12px;color:var(--muted);display:flex;gap:4px 14px;flex-wrap:wrap;padding-top:9px;margin-top:6px;border-top:1px solid var(--hair)}
.eqc-foot b{color:var(--text-2);font-weight:500}
@keyframes eqbeat{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@keyframes eqring{0%{opacity:.5;transform:scale(.6)}80%,100%{opacity:0;transform:scale(3)}}
@keyframes eqflow{to{stroke-dashoffset:-28}}
@media (max-width:799px){.eqc-big{font-size:30px}.eqc-plot{height:130px}}
@media (prefers-reduced-motion:reduce){.eqc-live i,.eq-dot.on .ring,.eq-skel{animation:none}.eq-dot{transition:none}}

/* ── dock groups (2026-09-27): account & trading · strategies · inbox, no titles (operator: "başlık koymanı istemedim").
   Each group opens with a small animated tile in the Grid Bots icons' language (.gico: dashed levels, a trace that
   draws itself, blips popping along it): a position from its entry to the take profit (green), the Brain range with
   the price bouncing inside it (cyan), two messages arriving with a notification dot (violet). The open window is
   underlined in its group's colour. Reduced motion stops them (the .gico rule further up). */
.dgroup{--g:var(--signal);display:flex;align-items:center;gap:2px;flex:0 0 auto}
.dgroup[data-g="trade"]{--g:var(--up)} .dgroup[data-g="inbox"]{--g:var(--wave)}
.dhead{display:inline-flex;align-items:center;padding:0 6px 0 2px;flex:0 0 auto}
.dock .gico,.dock .gico svg{width:26px;height:26px;display:block}
.dico .gl{stroke-width:1.6}
.dico .gl.tp{stroke:rgba(52,211,153,.8)}
.dico .trace{stroke:var(--g);stroke-width:3}
.dico .blip{fill:var(--g)}
.dico .t2{animation-delay:.6s}
.dico .bub{fill:none;stroke:var(--g);stroke-width:2;opacity:0;transform-box:fill-box;transform-origin:center;animation:dbub 3.6s ease-in-out infinite}
.dico .bub2{animation-delay:.6s}
.dgroup:hover .dico .gbg{stroke:var(--g)}
.dgroup a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--g)}
@keyframes dbub{0%{opacity:0;transform:translateY(3px)}14%,82%{opacity:.9;transform:none}100%{opacity:0;transform:none}}
@media (max-width:799px){ .dock .gico,.dock .gico svg{width:24px;height:24px} .dhead{padding:0 4px 0 6px} }
@media (prefers-reduced-motion:reduce){ .dico .bub{opacity:.9} }
/* the Positions window's tabs (panels.js 1.7) */
.ptabs{padding:2px 0 10px}
.ptabs .pn{display:inline-block;min-width:16px;padding:0 5px;margin-left:4px;border-radius:999px;background:var(--lift-2);color:var(--text-2);font-size:10.5px;line-height:16px;text-align:center}
.ptabs .chip[aria-pressed="true"] .pn{background:var(--signal);color:var(--signal-ink)}

/* ── the 3-day referral trial (auth.js 1.3): the badge in the header, the reminder card every 6 h ── */
.trialbadge{height:28px;padding:0 12px;border-radius:999px;border:1px solid rgba(251,191,36,.45);background:rgba(251,191,36,.1);color:var(--warn);font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}
.trialbadge:hover{background:rgba(251,191,36,.18)}
.trialbadge.over{border-color:rgba(61,220,239,.5);background:rgba(61,220,239,.1);color:var(--signal)}
.trialcard{position:fixed;top:118px;right:20px;z-index:60;width:min(360px,calc(100vw - 32px));display:flex;flex-direction:column;gap:8px;padding:14px 16px;border-radius:14px;background:var(--lift);border:1px solid rgba(251,191,36,.4);box-shadow:0 18px 50px rgba(0,0,0,.5);font-size:13px;line-height:1.45;animation:gin .28s cubic-bezier(.2,.8,.2,1)}
.trialcard b{color:var(--warn);font-weight:600} .trialcard span{color:var(--text-2)}
.trialcard .acts{display:flex;gap:8px;margin-top:2px}
@media (max-width:799px){ .trialbadge{height:26px;padding:0 9px;font-size:11px} .trialcard{top:auto;bottom:196px;left:16px;right:16px;width:auto} }

/* MEME HUNTER (memehunter.js 1.0): the terminal's second mode. The header switch, the stage (chart + token column) that
   covers the main chart while the mode is on (the main chart keeps running underneath, untouched), the Launches window
   (three lists) and the Trade window. Same tokens, same chips, same window chrome as the rest of the terminal. */
.modesw{display:inline-flex;align-items:center;gap:2px;padding:3px;border-radius:999px;background:var(--lift);flex:0 0 auto}
.modesw button{height:26px;padding:0 11px;border-radius:999px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.modesw button:hover{color:var(--text)}
.modesw button[aria-pressed="true"]{color:var(--signal-ink);background:var(--signal)}
.mh-stage{position:absolute;inset:0;display:flex;z-index:5;background:var(--ground)}
.app.meme .chartwrap,.app.meme .tools,.app.meme .lg,.app.meme .ohlcrow,.app.meme .tf,.app.meme .side-tab,.app.meme .pos,.app.meme .ribbon,.app.meme .badge-ew,.app.meme aside.side,.app.meme .layoutsrow,.app.meme .teach{display:none!important}
.app.meme .cmd{display:none!important}   /* 1.16.1: the perp ticket and one-click sizes act on the main chart's coin */
.mh-main{flex:1 1 auto;display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}   /* 1.16.1: min-height 0, or the chart's canvas height kept the column from shrinking on a phone and pushed the token column below the fold */
.mh-bar{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--hair);flex-wrap:wrap;font-size:12.5px;flex:0 0 auto}
.mh-sym{font-weight:600;font-size:14px;white-space:nowrap} .mh-sym small{color:var(--muted);font-weight:400;font-size:11px}
.mh-px{font-size:16px;letter-spacing:-.01em} .mh-chg{font-size:12px}
.mh-kv{display:flex;gap:12px;color:var(--muted);flex-wrap:wrap} .mh-kv b{color:var(--text);font-weight:500}
.mh-sp{flex:1 1 0;min-width:0}
.mh-tfs{padding:0;gap:2px;flex-wrap:nowrap} .mh-tfs .chip{font-family:var(--mono);font-size:11px;padding:3px 7px;border-color:transparent;flex:0 0 auto}
.mh-tfs .chip:hover{color:var(--text);background:var(--lift)}
.mh-tfs .chip[aria-pressed="true"]{color:var(--signal-ink);background:var(--signal);border-color:var(--signal);font-weight:600}
.mh-bar .btn.quiet{height:28px;padding:0 10px;font-size:12px;border:1px solid var(--hair);background:transparent;color:var(--text-2);border-radius:999px} .mh-bar .btn.quiet:hover{color:var(--text);border-color:var(--hair-2)}
.mh-chart{flex:1 1 auto;min-height:160px;position:relative}
.mh-note{position:absolute;left:14px;bottom:12px;max-width:calc(100% - 28px);padding:4px 9px;border-radius:999px;background:rgba(15,19,26,.92);border:1px solid var(--hair-2);font-size:11.5px;color:var(--muted);z-index:2;pointer-events:none}
.mh-side{flex:0 0 340px;display:flex;flex-direction:column;overflow:auto;border-left:1px solid var(--hair);background:var(--surface);scrollbar-width:thin}
.mh-sec{border-bottom:1px solid var(--hair);flex:0 0 auto} .mh-sec .side-body{padding-bottom:8px}
.mh-empty{padding:30px 16px;color:var(--muted);font-size:13px}
.mh-kvr{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:12.5px} .mh-kvr span{color:var(--muted)} .mh-kvr b{font-weight:500}
.mh-tags{display:flex;flex-wrap:wrap;gap:6px;padding:6px 0}
.mh-links{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px} .mh-links a{color:var(--text)} .mh-flags{display:flex;gap:8px;flex-wrap:wrap;padding-top:6px;width:100%}
.mh-tr{display:grid;grid-template-columns:38px 1fr 1fr auto;gap:8px;font-size:12px;padding:3px 0;border-bottom:1px solid var(--hair)}
.mh-foot{font-size:11px;padding:10px 14px;line-height:1.4}
.mh-lists{display:flex;flex-direction:column;min-height:0;height:100%}
.mh-tabs{padding:8px 12px;align-items:center;gap:6px;flex-wrap:nowrap;border-bottom:1px solid var(--hair)} .mh-tabs .chip small{color:var(--muted);font-weight:400}
.mh-tabs .chip[aria-pressed="true"]{color:var(--text);border-color:var(--hair-2);background:var(--lift)} .mh-age{margin-left:auto;font-size:11px;white-space:nowrap}
.mh-head,.mh-row{display:grid;grid-template-columns:1.4fr .5fr 1fr .6fr .8fr .5fr .5fr .5fr 1fr;gap:8px;padding:6px 12px;align-items:center;font-size:12px}
.mh-head{color:var(--muted);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid var(--hair);flex:0 0 auto}
.mh-body{overflow:auto;min-height:0;flex:1 1 auto;scrollbar-width:thin}
.mh-row{border-bottom:1px solid var(--hair);cursor:pointer} .mh-row:hover{background:var(--lift)} .mh-row.sel{background:var(--lift-2)}
.mh-row .t{display:flex;flex-direction:column;min-width:0} .mh-row .t small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mh-row .bond{position:relative;display:block;height:14px;border-radius:7px;background:var(--lift);overflow:hidden} .mh-row .bond i{position:absolute;left:0;top:0;bottom:0;background:var(--signal);opacity:.5} .mh-row .bond em{position:relative;font-style:normal;font-size:10.5px;padding-left:6px;line-height:14px}
.mh-row .risk{font-size:11px;white-space:nowrap}
.mh-trade{display:flex;flex-direction:column;gap:12px;padding:14px} .mh-trade-sym{font-weight:600;font-size:14px} .mh-trade-sym small{color:var(--muted);font-weight:400}
.mh-side-sw{padding:0} .mh-side-sw .chip[aria-pressed="true"]{color:var(--signal-ink);background:var(--signal);border-color:var(--signal)}
.mh-amt{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)} .mh-amt input{flex:1 1 auto;height:36px;padding:0 10px;border-radius:10px;border:1px solid var(--hair);background:var(--lift);color:var(--text);font-family:var(--mono)}
@media (max-width:799px){
  .modesw{align-self:flex-start;margin:4px 0 2px} .modesw button{height:24px;padding:0 9px;font-size:11.5px}
  .mh-stage{flex-direction:column} .mh-side{flex:0 0 46%;border-left:0;border-top:1px solid var(--hair)}
  .mh-head .hide-m,.mh-row .hide-m{display:none} .mh-head,.mh-row{grid-template-columns:1.4fr .5fr 1fr .6fr .8fr 1fr;padding:6px 10px}
  .mh-bar{padding:6px 10px;gap:8px} .mh-kv{display:none} .mh-chart{min-height:120px} .app.meme .tabs-m{z-index:6}
}

/* MEME HUNTER 1.2 (memehunter.js 1.2.0): token logos, the ticket on the stage (Buy / Sell, amount, quick sizes,
   slippage, quote, the wallet pill), the wallet menu, and the token column redesigned: header card with stage badge
   and icon links, bonding bar, stat tiles, sections with icons, readable flags, holder bars, the buy / sell split. */
.mh-logo{display:inline-block;width:22px;height:22px;border-radius:50%;object-fit:cover;vertical-align:middle;margin-right:7px;background:var(--lift);flex:0 0 auto}
.mh-logo-x{display:inline-flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--muted);letter-spacing:.04em}
.mh-ic{display:inline-flex;width:14px;height:14px;vertical-align:-2px;margin-right:6px;color:var(--muted)} .mh-ic svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mh-badge{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;font-size:10.5px;font-weight:600;letter-spacing:.02em;color:var(--text-2);background:var(--lift);border:1px solid var(--hair);white-space:nowrap}
.mh-badge.good{color:var(--up);background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.35)}
.mh-badge.warn{color:var(--warn);background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.35)}
.mh-badge.bad{color:var(--down);background:rgba(251,113,133,.12);border-color:rgba(251,113,133,.4)}
.mh-badge.sig{color:var(--signal);background:rgba(34,211,238,.1);border-color:rgba(34,211,238,.35)}
.mh-badges{display:flex;flex-wrap:wrap;gap:5px;padding:4px 0 8px}
.mh-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--muted);margin-right:6px;vertical-align:1px} .mh-dot.live{background:var(--up);box-shadow:0 0 0 3px rgba(52,211,153,.18)}
.mh-row .t{display:flex;flex-direction:row;align-items:center;gap:0;min-width:0} .mh-row .tt{display:flex;flex-direction:column;min-width:0} .mh-row .tt small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mh-row .risk{display:flex;gap:4px;flex-wrap:wrap}
.mh-sym .mh-logo{margin-right:6px}
/* the token column */
.mh-tok{display:flex;align-items:center;gap:10px;padding:14px 14px 8px} .mh-tok .mh-logo{width:44px;height:44px;margin:0}
.mh-tok-t{display:flex;flex-direction:column;min-width:0;flex:1 1 auto} .mh-tok-t b{font-size:16px;letter-spacing:-.01em} .mh-tok-t small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mh-stg{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;vertical-align:2px;color:var(--text-2);background:var(--lift)}
.mh-stg.new{color:var(--signal);background:rgba(34,211,238,.12)} .mh-stg.mig{color:var(--warn);background:rgba(251,191,36,.12)} .mh-stg.done{color:var(--up);background:rgba(52,211,153,.12)}
.mh-tok-l{display:flex;gap:4px;flex:0 0 auto}
.mh-il{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:8px;color:var(--text-2);background:var(--lift);border:1px solid transparent;font-size:14px} .mh-il .mh-ic{margin:0;color:inherit}
.mh-il:hover{color:var(--text);border-color:var(--hair-2)} .mh-il.off{opacity:.35;cursor:default}
.mh-prog{display:flex;align-items:center;gap:10px;padding:2px 14px 10px;font-size:11.5px;color:var(--muted)} .mh-prog-b{flex:1 1 auto;height:8px;border-radius:4px;background:var(--lift);overflow:hidden} .mh-prog-b i{display:block;height:100%;background:linear-gradient(90deg,var(--signal),var(--up));border-radius:4px}
.mh-tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:0 14px 10px} .mh-tiles.c3{grid-template-columns:repeat(3,1fr)}   /* 1.17.1: four across cut the labels in the 340 px column */
.mh-tile{display:flex;flex-direction:column;gap:2px;padding:7px 9px;border-radius:10px;background:var(--lift);border:1px solid var(--hair);min-width:0}
.mh-tile small{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .mh-tile b{font-size:13px;font-weight:600;white-space:nowrap}
.mh-tile.bad{border-color:rgba(251,113,133,.45)} .mh-tile.bad b{color:var(--down)}
.mh-sec{padding:4px 14px 10px;border-top:1px solid var(--hair)}
.mh-sec h4{display:flex;align-items:center;gap:6px;margin:0;padding:10px 0 6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600} .mh-sec h4 b{color:var(--text);font-size:12px} .mh-sec h4 small{margin-left:auto;font-weight:400;letter-spacing:0;text-transform:none;font-size:11px}
.mh-kvr{display:flex;justify-content:space-between;gap:10px;padding:4px 0;font-size:12.5px} .mh-kvr span{color:var(--muted)} .mh-kvr b{font-weight:500} .mh-kvr .bad{color:var(--down)} .mh-kvr .warn{color:var(--warn)} .mh-kvr .good{color:var(--up)}
.mh-hb{display:grid;grid-template-columns:118px 1fr 44px;align-items:center;gap:8px;padding:3px 0;font-size:12px} .mh-hb .l{color:var(--muted)} .mh-hb .b{height:6px;border-radius:3px;background:var(--lift);overflow:hidden} .mh-hb .b i{display:block;height:100%;border-radius:3px;background:var(--up)} .mh-hb b{text-align:right;font-weight:500}
.mh-hb.warn .b i{background:var(--warn)} .mh-hb.warn b{color:var(--warn)} .mh-hb.bad .b i{background:var(--down)} .mh-hb.bad b{color:var(--down)}
.mh-split{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;font-size:12px;padding:2px 0 8px} .mh-split .b{height:8px;border-radius:4px;background:var(--down);overflow:hidden} .mh-split .b i{display:block;height:100%;background:var(--up)}
.mh-fn{font-size:11px;line-height:1.4;padding-top:4px} .mh-none{font-size:12px;padding:4px 0}
.mh-tr{display:grid;grid-template-columns:44px 1fr 1fr auto;gap:8px;align-items:center;font-size:12px;padding:3px 0;border-bottom:1px solid var(--hair)}
.mh-pill{display:inline-flex;justify-content:center;padding:1px 0;border-radius:999px;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;background:var(--lift)} .mh-pill.up{color:var(--up);background:rgba(52,211,153,.12)} .mh-pill.down{color:var(--down);background:rgba(251,113,133,.12)}
/* the ticket */
.mh-cmd{flex:0 0 auto;display:flex;flex-direction:column;gap:8px;padding:10px 14px;border-top:1px solid var(--hair);background:var(--surface);position:relative}
.mh-cmd-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mh-sides{display:inline-flex;gap:4px;padding:3px;border-radius:999px;background:var(--lift)}
.mh-sbtn{height:30px;padding:0 14px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--muted)} .mh-sbtn[aria-pressed="true"].buy{color:var(--up-ink);background:var(--up)} .mh-sbtn[aria-pressed="true"].sell{color:var(--down-ink);background:var(--down)}
.mh-amt{display:flex;align-items:center;gap:6px;height:36px;padding:0 10px;border-radius:10px;border:1px solid var(--hair);background:var(--lift);font-size:12px;color:var(--muted);flex:0 1 190px;min-width:150px} .mh-amt input{flex:1 1 auto;min-width:0;height:100%;background:transparent;border:0;color:var(--text);font-family:var(--mono);font-size:14px} .mh-amt input:focus{outline:none}
.mh-quick{display:flex;gap:4px} .mh-quick .chip{font-family:var(--mono);font-size:11px;padding:4px 8px} .mh-quick .chip:hover{color:var(--text);background:var(--lift)} .mh-quick .chip[disabled]{opacity:.4}
.mh-slip{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--muted)} .mh-slip select{height:30px;padding:0 6px;border-radius:8px;border:1px solid var(--hair);background:var(--lift);color:var(--text);font-family:var(--mono);font-size:12px}
.mh-go{height:36px;padding:0 18px;border-radius:10px;font-weight:700} .mh-go.buy{color:var(--up-ink);background:var(--up)} .mh-go.sell{color:var(--down-ink);background:var(--down)} .mh-go:hover{filter:brightness(1.1)} .mh-go[disabled]{opacity:.45;filter:none}
.mh-wallet{margin-left:auto}
.mh-wpill{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:999px;border:1px solid var(--hair);background:var(--lift);color:var(--text-2);font-size:12px;font-weight:600} .mh-wpill .mh-ic{margin:0} .mh-wpill:hover{color:var(--text);border-color:var(--hair-2)}
.mh-wpill.on{border-color:rgba(52,211,153,.4)} .mh-wpill.on b{color:var(--text)} .mh-wpill .tok{color:var(--signal)}
.mh-quote{border-top:1px solid var(--hair);padding-top:8px}
.mh-q{display:flex;flex-direction:column;gap:6px;font-size:12.5px} .mh-q-main b{font-size:14px} .mh-q-kv{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--muted)} .mh-q-kv b{color:var(--text);font-weight:500} .mh-q-kv .warn{color:var(--warn)}
.mh-q-act{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:4px} .mh-q-act .muted{font-size:11.5px;max-width:520px}
.mh-confirm{height:36px;padding:0 18px;border-radius:10px;font-weight:700} .mh-confirm.buy{color:var(--up-ink);background:var(--up)} .mh-confirm.sell{color:var(--down-ink);background:var(--down)}
.mh-q.sent a{color:var(--signal)}
.mh-wmenu{position:absolute;right:14px;bottom:calc(100% + 8px);width:280px;padding:10px;border-radius:14px;background:rgba(15,19,26,.98);border:1px solid var(--hair-2);box-shadow:0 20px 50px rgba(0,0,0,.5);z-index:7;display:flex;flex-direction:column;gap:6px}
.mh-wm-h{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:var(--muted);padding:0 2px 4px}
.mh-wm-i{display:flex;align-items:center;gap:10px;height:40px;padding:0 10px;border-radius:10px;background:var(--lift);color:var(--text);font-size:13px;font-weight:600;text-align:left} .mh-wm-i:hover{background:var(--lift-2)} .mh-wm-i img{border-radius:6px}
@media (max-width:799px){
  .mh-cmd{padding:8px 10px} .mh-amt{flex:1 1 140px} .mh-wallet{margin-left:0;width:100%} .mh-wpill{width:100%;justify-content:center} .mh-quick{order:5;width:100%} .mh-wmenu{left:10px;right:10px;width:auto}
  .mh-hb{grid-template-columns:100px 1fr 44px} .mh-tok{padding:10px 10px 6px} .mh-sec,.mh-tiles,.mh-prog{padding-left:10px;padding-right:10px}
  .mh-stage{display:block;overflow:auto;-webkit-overflow-scrolling:touch} .mh-main{height:auto;min-height:0} .mh-chart{height:230px;min-height:230px;flex:0 0 auto} .mh-side{height:auto;max-height:none;overflow:visible;flex:0 0 auto}
}

/* MEME HUNTER 1.3 (memehunter.js 1.3.0): the chain on every row (badge + filter chips), one window per list (the
   buttons row in the bar), the Trending and Signals grids. */
.mh-chain{display:inline-block;margin-left:6px;padding:0 5px;border-radius:5px;font-size:9.5px;font-weight:700;letter-spacing:.06em;vertical-align:1px;color:var(--text-2);background:var(--lift);border:1px solid var(--hair);line-height:15px}
.mh-chain.sol{color:#9b8cff;border-color:rgba(155,140,255,.35)} .mh-chain.rh{color:#ff6b3d;border-color:rgba(255,107,61,.35)} .mh-chain.base{color:#5b8cff;border-color:rgba(91,140,255,.35)}
.mh-chain.bnb{color:#f3ba2f;border-color:rgba(243,186,47,.35)} .mh-chain.xl{color:var(--text);border-color:var(--hair-2)} .mh-chain.arc{color:#7dd3fc;border-color:rgba(125,211,252,.35)} .mh-chain.trx{color:#ff4d4d;border-color:rgba(255,77,77,.35)} .mh-chain.eth{color:#8aa4ff;border-color:rgba(138,164,255,.35)}
.mh-chains{padding:0;gap:4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none} .mh-chains::-webkit-scrollbar{display:none}
.mh-chains .chip{font-size:11px;padding:3px 9px;flex:0 0 auto} .mh-chains .chip[aria-pressed="true"]{color:var(--text);border-color:var(--hair-2);background:var(--lift)}
.mh-sub{padding:0;gap:4px;flex-wrap:nowrap} .mh-sub .chip{font-size:11px;padding:3px 9px} .mh-sub .chip[aria-pressed="true"]{color:var(--signal-ink);background:var(--signal);border-color:var(--signal);font-weight:600}
.mh-tabs{flex-wrap:wrap;gap:8px}
.mh-wins{display:flex;gap:4px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none} .mh-wins::-webkit-scrollbar{display:none}
.mh-wins .btn.quiet[aria-pressed="true"]{color:var(--text);border-color:var(--signal);background:rgba(34,211,238,.08)}
.mh-row .tt b{display:flex;align-items:center;gap:0}
.mh-head.hot,.mh-row.hot{grid-template-columns:26px 1.5fr .9fr .55fr .75fr .8fr .6fr .8fr .7fr .9fr}
.mh-row .rk{color:var(--muted);font-size:11px}
.mh-head.sig,.mh-row.sig{grid-template-columns:1.5fr .9fr .7fr .55fr .55fr .75fr .6fr .55fr .7fr}
.mh-row.sig .mh-badge{height:18px;font-size:10px}
@media (max-width:799px){
  .mh-head.hot,.mh-row.hot{grid-template-columns:minmax(112px,1.5fr) minmax(62px,.9fr) .55fr .75fr .6fr .8fr;gap:6px} .mh-row.hot .num,.mh-row.sig .num{font-size:10.5px} .mh-row.hot .rk,.mh-head.hot > span:first-child{display:none}
  .mh-head.sig,.mh-row.sig{grid-template-columns:minmax(110px,1.4fr) .85fr .6fr .5fr .5fr .7fr;gap:6px}
  .mh-row > *{min-width:0} .mh-row .num{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mh-wins{width:100%;order:9} .mh-wins .btn.quiet{flex:0 0 auto}
}

/* MEME HUNTER 1.4 (memehunter.js 1.4.0): the position card above the ticket, the Holdings grid. */
.mh-pos{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 10px;margin-bottom:8px;border-radius:12px;border:1px solid var(--hair-2);background:var(--lift)}
.mh-pos-l{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)} .mh-pos-l b{color:var(--text);font-weight:600} .mh-pos-l .mh-ic{margin:0;color:var(--signal)}
.mh-pnl{font-family:var(--mono);font-weight:600;padding:2px 9px;border-radius:999px;background:var(--surface)} .mh-pnl.up{color:var(--up)} .mh-pnl.down{color:var(--down)}
.mh-pos-r{display:flex;gap:4px;flex-wrap:wrap} .mh-pos-r .chip{font-size:11.5px;padding:4px 9px} .mh-pos-r .chip.sell{color:var(--down);border-color:rgba(251,113,133,.35)} .mh-pos-r .chip:hover{background:var(--lift-2);color:var(--text)}
.mh-head.hold,.mh-row.hold{grid-template-columns:1.6fr .9fr .9fr .8fr .6fr}
@media (max-width:799px){ .mh-pos{padding:8px} .mh-pos-l{gap:8px;font-size:12px} .mh-head.hold,.mh-row.hold{grid-template-columns:minmax(110px,1.5fr) .9fr .9fr .8fr} .mh-row.hold > span:last-child,.mh-head.hold > span:last-child{display:none} }

/* ── Economic Calendar (calendar.js 1.0.0, 2026-10-14) ── */
.ec{display:flex;flex-direction:column;gap:10px;font-size:13px}
.ec-bar,.ec-al{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.ec-seg{display:inline-flex;border:1px solid var(--hair-2);border-radius:8px;overflow:hidden}
.ec-b{background:none;border:0;color:var(--text-2);padding:5px 10px;font:inherit;font-size:12px;cursor:pointer;white-space:nowrap}
.ec-b+.ec-b{border-left:1px solid var(--hair-2)}
.ec-b[aria-pressed="true"]{background:color-mix(in oklab,var(--signal) 16%,transparent);color:var(--signal)}
.ec-b:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}
.ec-k{color:var(--muted);font-size:11.5px}
.ec-next{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;padding:8px 10px;border:1px solid var(--hair-2);border-radius:10px;background:color-mix(in oklab,var(--signal) 6%,transparent)}
.ec-next b{font-weight:600}
.ec-cd{color:var(--signal);font-family:var(--mono);font-size:11.5px}
.ec-wrap{overflow-x:auto}
.ec-t{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.ec-t th{position:sticky;top:0;background:var(--panel,var(--bg,#0B0F14));text-align:left;font-weight:500;color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:6px 8px;border-bottom:1px solid var(--hair-2)}
.ec-t td{padding:7px 8px;border-bottom:1px solid var(--hair);vertical-align:middle}
.ec-t .num{text-align:right;font-family:var(--mono);font-size:12.5px;white-space:nowrap}
.ec-t .t{font-family:var(--mono);color:var(--text-2);white-space:nowrap}
.ec-t .ev{color:var(--text)}
.ec-t .ev small{margin-left:6px}
.ec-day td{padding:12px 8px 6px;color:var(--text);font-weight:600;font-size:12.5px;border-bottom:1px solid var(--hair-2);background:none}
.ec-r.past td{color:var(--muted)}
.ec-r.past .ev{color:var(--text-2)}
.ec-r.next td{background:color-mix(in oklab,var(--signal) 7%,transparent)}
.ec-r.soon .ev{color:var(--signal)}
.ec-cc{display:inline-block;min-width:34px;text-align:center;font-family:var(--mono);font-size:11px;padding:1px 5px;border:1px solid var(--hair-2);border-radius:5px;color:var(--text-2)}
.ec-imp{display:inline-block;font-size:10.5px;padding:1px 7px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}
.ec-imp.hi{color:var(--down)}
.ec-imp.md{color:var(--warn)}
.ec-imp.lo{color:var(--muted)}
.ec-imp.hol{color:var(--wave)}
.ec-t .act{color:var(--text);font-weight:600}
.ec-t .act.above{color:var(--signal)}
.ec-t .act.below{color:var(--warn)}
.ec-src{color:var(--muted);font-size:11.5px;line-height:1.5}
.ec-hist{flex:1 1 100%;color:var(--text-2);font-size:12px;line-height:1.5}
.ec-t td.mv{white-space:nowrap;font-variant-numeric:tabular-nums}
.ec-t td.mv small{color:var(--muted);font-size:10.5px}
@media (max-width:620px){
  .ec-t thead{display:none}
  .ec-t tr.ec-r{display:grid;grid-template-columns:52px 1fr auto;gap:2px 8px;padding:7px 0;border-bottom:1px solid var(--hair)}
  .ec-t tr.ec-r td{border:0;padding:0}
  .ec-t tr.ec-r td:nth-child(2),.ec-t tr.ec-r td:nth-child(3){grid-row:1}
  .ec-t tr.ec-r td.ev{grid-column:1/-1}
  .ec-t tr.ec-r td.num{grid-row:auto;text-align:left}
  .ec-t tr.ec-r td.mv:empty{display:none}
  .ec-t tr.ec-day{display:block}
}
/* ── Assistant Trade window (atrade.js 0.1.0, 1.23.0): the settings row, the strategy list, the mirror column ── */
.at-head{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:8px 0 4px;font-size:12px;color:var(--muted)}
.at-head b{color:var(--text);font-weight:500}
.at-set{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:flex-end;padding:8px 0}
.at-set label{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:11.5px}
.at-set input[type=number]{width:88px;height:34px;padding:0 10px;border-radius:9px;border:1px solid var(--hair-2);background:var(--ground);color:var(--text);font-family:var(--mono);font-size:12.5px;outline:0}
.at-set input[type=number]:focus-visible{border-color:var(--signal)}
.at-str{display:grid;grid-template-columns:auto 1fr;gap:3px 10px;padding:8px 0;border-bottom:1px solid var(--hair);font-size:12.5px;align-items:start}
.at-str input{margin-top:3px}
.at-str .ref{grid-column:2;color:var(--muted);font-size:11.5px;line-height:1.45}
.at-t td.mir{color:var(--text-2);white-space:nowrap}
.at-t td.note{color:var(--muted);font-size:11.5px;line-height:1.4;white-space:normal;min-width:180px}
.at-t .btn.sm{height:26px;padding:0 9px;font-size:11.5px}
.at-h{padding:14px 0 4px;font-size:12px;color:var(--text);font-weight:600;letter-spacing:.02em}
/* 0.3.0: the now strip, the universe, the feed (no prefers-reduced-motion rule on purpose: the operator's Windows has animations off) */
.at-now{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:6px 0 2px;font-size:11.5px;color:var(--muted)}
.at-clk{display:inline-flex;gap:5px;align-items:center;padding:2px 8px;border:1px solid var(--hair-2);border-radius:999px;font-family:var(--mono);font-size:11px;color:var(--text-2)}
.at-clk b{color:var(--text);font-weight:500;min-width:4ch;text-align:right;font-variant-numeric:tabular-nums}
.at-clk.soon{border-color:var(--signal)}.at-clk.soon b{color:var(--signal)}
.at-ticker{display:flex;flex-direction:column;gap:2px;padding:4px 0 0;font-size:11.5px;color:var(--text-2);max-height:96px;overflow:hidden}
.at-ticker .tk{display:flex;gap:8px;align-items:baseline;animation:atIn .5s ease-out;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.at-ticker .tk .tm{color:var(--muted);font-family:var(--mono);font-size:10.5px;flex:0 0 auto}
.at-ticker .tk .tag{flex:0 0 auto}
.at-uni{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;padding:6px 0 2px}
.at-tile{position:relative;display:flex;flex-direction:column;gap:4px;padding:9px 10px;border:1px solid var(--hair-2);border-radius:12px;background:var(--ground);text-align:left;cursor:pointer;color:var(--text);font:inherit;overflow:hidden;min-width:0}
.at-tile:hover{border-color:var(--text-2)}
/* 0.5.0: the tile is a div -- its body (.go) is the chart link, the Close / Cancel button sits in its corner */
.at-tile .go{all:unset;display:flex;flex-direction:column;gap:4px;min-width:0;cursor:pointer;color:inherit;font:inherit}
.at-tile .go:focus-visible{outline:2px solid var(--signal);outline-offset:2px;border-radius:8px}
.at-tile .x{position:absolute;top:7px;right:8px;height:20px;padding:0 7px;font-size:10.5px}
.at-tile .hd{padding-right:54px}
.at-tile .legs{display:flex;flex-wrap:wrap;gap:3px 8px;font-size:10.5px;color:var(--muted)}
.at-tile .legs .tag{font-size:10px;padding:0 5px}
.at-pager{display:flex;justify-content:center;padding:6px 0 2px}
.at-tile .hd{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.at-tile .hd b{font-size:13px}
.at-tile .st{font-size:10.5px;color:var(--muted);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.at-tile .r{font-family:var(--mono);font-size:15px;font-weight:600;font-variant-numeric:tabular-nums}
.at-tile .bar{height:4px;border-radius:2px;background:var(--hair);overflow:hidden}
.at-tile .bar i{display:block;height:100%;width:0;background:var(--text-2);transition:width .6s ease}
.at-tile.up .bar i{background:var(--up)}.at-tile.down .bar i{background:var(--down)}
.at-tile .act{font-size:10.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.at-tile.open{animation:atPulse 2.4s ease-in-out infinite}
.at-tile.pending{border-style:dashed}
.at-tile.closed{opacity:.72}
.at-spark{display:inline-block;vertical-align:middle;margin-left:6px}
.logline .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--muted);margin-right:6px;vertical-align:middle;flex:0 0 auto}
.logline .dot.up{background:var(--up)}.logline .dot.down{background:var(--down)}.logline .dot.sig{background:var(--signal)}
.logline[data-new]{animation:atIn .6s ease-out;background:rgba(61,220,239,.06)}
@keyframes atPulse{0%,100%{box-shadow:0 0 0 0 rgba(61,220,239,0)}50%{box-shadow:0 0 0 3px rgba(61,220,239,.18)}}
@keyframes atIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
/* ── News Terminal (newsterm.js 1.0.0, 2026-10-19) ── */
.win-b .pbody:has(> .nt){padding:0;flex:1 1 auto;min-height:0}
.nt{--amber:#FFA028;--amber-ink:#1E1203;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;height:100%;position:relative;outline:none;font-size:12.5px}
.nt-top{display:flex;align-items:center;gap:12px;padding:8px 14px;border-bottom:1px solid var(--hair);flex:0 0 auto}
.nt-k{color:var(--muted);font-size:11px}
.nt-sp{flex:1}
.nt-live{display:inline-flex;align-items:center;gap:6px;font:600 10.5px/1 var(--mono);letter-spacing:.12em;color:var(--up)}
.nt-live i{width:7px;height:7px;border-radius:50%;background:var(--up);animation:ntBeat 2s ease-in-out infinite}
.nt-live.off{color:var(--down)} .nt-live.off i{background:var(--down);animation:none}
.nt-q{width:220px;max-width:40vw;background:var(--ground);border:1px solid var(--hair-2);border-radius:8px;color:var(--text);padding:6px 10px;font:12px var(--ui)}
.nt-q:focus{outline:none;border-color:var(--amber)}
.nt-tg{font:600 11px var(--ui);color:var(--muted);border:1px solid var(--hair-2);border-radius:999px;padding:5px 11px;background:transparent;cursor:pointer}
.nt-tg[aria-pressed="true"]{color:var(--amber-ink);background:var(--amber);border-color:var(--amber)}
.nt-tabs{display:flex;gap:2px;padding:6px 10px 0;border-bottom:1px solid var(--hair);flex:0 0 auto;overflow-x:auto;scrollbar-width:none}
.nt-tab{font:600 11px/1 var(--mono);letter-spacing:.06em;color:var(--muted);background:transparent;border:0;border-bottom:2px solid transparent;padding:7px 10px 8px;cursor:pointer;white-space:nowrap}
.nt-tab .num{color:var(--faint);font-weight:400;margin-left:3px}
.nt-tab:hover{color:var(--text-2)}
.nt-tab[aria-selected="true"]{color:var(--amber);border-bottom-color:var(--amber)} .nt-tab[aria-selected="true"] .num{color:var(--text-2)}
.nt-cal{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 14px;border-bottom:1px solid var(--hair);font-size:12px;color:var(--text-2);flex:0 0 auto}
.nt-cal b{color:var(--text);font-weight:600}
.nt-cal.soon{background:rgba(255,160,40,.08)} .nt-cal.soon .nt-cd{color:var(--amber);font-weight:600}
.nt-cd{color:var(--text)}
.nt-lnk{margin-left:auto;font:11px var(--ui);color:var(--signal);background:transparent;border:0;cursor:pointer;padding:2px 4px}
.nt-head,.nt-r{display:grid;grid-template-columns:76px 46px 50px minmax(0,1fr) auto;column-gap:10px;align-items:baseline}
.nt-head{padding:6px 14px 5px;font:600 10px var(--mono);letter-spacing:.1em;color:var(--faint);border-bottom:1px solid var(--hair);flex:0 0 auto}
.nt-list{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin;position:relative}
.nt-r{padding:5px 14px;border-bottom:1px solid rgba(255,255,255,.035);cursor:pointer;line-height:1.35}
.nt-r:hover{background:rgba(255,255,255,.025)}
.nt-r.sel{background:rgba(255,160,40,.07);box-shadow:inset 2px 0 0 var(--amber)}
.nt-t{color:var(--muted);font-size:11.5px;white-space:nowrap}
.nt-src{font:600 11px var(--mono);color:var(--amber);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nt-fl{font:700 9.5px/1 var(--mono);letter-spacing:.08em;justify-self:start;align-self:center}
.nt-fl.flash{color:#fff;background:var(--down);padding:3px 5px;border-radius:3px}
.nt-fl.hot{color:var(--amber-ink);background:var(--amber);padding:3px 5px;border-radius:3px}
.nt-h{color:var(--text-2);min-width:0;overflow-wrap:anywhere}
.nt-r:not(.open) .nt-h{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}   /* one line per story, the whole text when opened */
.nt-r.hot .nt-h{color:var(--text)} .nt-r.flash .nt-h{color:var(--text);font-weight:600}
.nt-dir{font-style:normal;font-size:9px;margin-right:5px;vertical-align:1px} .nt-dir.up{color:var(--up)} .nt-dir.down{color:var(--down)}
.nt-n{color:var(--muted);font-size:10.5px;margin-left:4px;white-space:nowrap}
.nt-c{display:flex;gap:4px;justify-content:flex-end}
.nt-coin{font:600 10.5px var(--mono);color:var(--signal);background:rgba(61,220,239,.07);border:1px solid rgba(61,220,239,.2);border-radius:5px;padding:2px 6px;cursor:pointer}
.nt-coin:hover{background:rgba(61,220,239,.16)} .nt-coin.cur{color:var(--signal-ink);background:var(--signal)}
.nt-coin.nl{color:var(--muted);background:transparent;border-color:var(--hair);cursor:default}
.nt-d{grid-column:2 / -1;padding:6px 0 4px;cursor:auto}
.nt-d p{margin:0 0 6px;color:var(--text-2);font-size:12.5px;line-height:1.5}
.nt-dm{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted);font-size:11px}
.nt-dm a{color:var(--signal);text-decoration:none} .nt-dm a:hover{text-decoration:underline}
.nt-dm b{color:var(--text-2);font-weight:600}
.nt-r.nt-new{animation:ntIn 9s ease-out 1}
.nt-r.flash.nt-new{animation:ntInFlash 9s ease-out 1}
.nt-empty{padding:28px 16px;color:var(--muted);font-size:12px;text-align:center}
.nt-pill{position:absolute;left:50%;top:150px;transform:translateX(-50%);z-index:3;font:600 11px var(--ui);color:var(--amber-ink);background:var(--amber);border:0;border-radius:999px;padding:5px 12px;cursor:pointer;box-shadow:0 6px 18px rgba(0,0,0,.45)}
.nt-foot{display:flex;align-items:center;gap:12px;padding:6px 14px;border-top:1px solid var(--hair);flex:0 0 auto;min-width:0}
.nt-srcs{display:flex;gap:8px;flex-wrap:wrap;flex:1;min-width:0}
.nt-s{display:inline-flex;align-items:center;gap:4px;font:10px var(--mono);color:var(--muted)}
.nt-s i{width:5px;height:5px;border-radius:50%;background:var(--faint)}
.nt-s.ok i{background:var(--up)} .nt-s.bad i{background:var(--down)} .nt-s.stale i{background:var(--warn)} .nt-s.bad{color:var(--down)}
.nt-keys{color:var(--faint);font-size:10.5px;white-space:nowrap}
@keyframes ntBeat{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes ntIn{0%{background:rgba(255,160,40,.28)}100%{background:transparent}}
@keyframes ntInFlash{0%{background:rgba(251,113,133,.35)}100%{background:transparent}}
@media (max-width: 799px){
  .nt-top{flex-wrap:wrap;gap:8px;padding:8px 12px} .nt-q{width:auto;flex:1;max-width:none} .nt-sp{display:none}
  .nt-head{display:none}
  .nt-r{grid-template-columns:auto auto 1fr;row-gap:2px;padding:7px 12px}
  .nt-h{grid-column:1 / -1} .nt-r:not(.open) .nt-h{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical} .nt-c{grid-column:1 / -1;justify-content:flex-start} .nt-c:empty{display:none}
  .nt-fl{justify-self:end} .nt-d{grid-column:1 / -1}
  .nt-keys{display:none} .nt-pill{top:170px}
}
/* ── the News Terminal in the Feed column (newsterm.js 1.1.0 BP.newsterm.side, feed.js 1.4.0) ── */
.side-body.nts-host{padding:0;display:flex;flex-direction:column;overflow:hidden;min-height:0;flex:1 1 auto}
.nts{--amber:#FFA028;--amber-ink:#1E1203;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;position:relative}
.nts-bar{display:flex;align-items:center;gap:8px;padding:2px 14px 6px;flex:0 0 auto}
.nts-q{flex:1;min-width:0;background:var(--ground);border:1px solid var(--hair-2);border-radius:7px;color:var(--text);padding:4px 8px;font:11.5px var(--ui)}
.nts-q:focus{outline:none;border-color:var(--amber)}
.nts .nt-tg{padding:4px 9px;font-size:10.5px}
.nts-x{background:transparent;border:1px solid var(--hair-2);border-radius:7px;color:var(--muted);font-size:12px;line-height:1;padding:4px 7px;cursor:pointer}
.nts-x:hover{color:var(--text);border-color:var(--amber)}
.nts-tabs{padding:0 8px;gap:0}
.nts-tabs .nt-tab{padding:6px 7px 7px;font-size:10.5px} .nts-tabs .nt-tab .num{display:none}   /* 340 px: the six tabs fit without their counts */
.nts-list{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin;position:relative}
.nts-r{padding:7px 14px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer}
.nts-r:hover{background:rgba(255,255,255,.025)}
.nts-r.mine{box-shadow:inset 2px 0 0 var(--signal)}
.nts-h{font-size:12.5px;line-height:1.38;color:var(--text-2);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.nts-r.open .nts-h{display:block}
.nts-r.hot .nts-h{color:var(--text)} .nts-r.flash .nts-h{color:var(--text);font-weight:600}
.nts-h .nt-fl{display:inline-block;vertical-align:1px;margin-right:2px}
.nts-m{display:flex;align-items:center;gap:6px;margin-top:4px;font-size:11px;color:var(--faint)}
.nts-ago{font-family:var(--mono);font-size:10.5px;white-space:nowrap}
.nts-r.nt-new .nts-ago{color:var(--amber)}
.nts-m .nt-c{margin-left:auto}
.nts-d{padding-top:6px;cursor:auto}
.nts-d p{margin:0 0 6px;color:var(--muted);font-size:12px;line-height:1.45}
.nts-d .nt-dm{gap:10px;font-size:10.5px}
.nts-r.nt-new{animation:ntIn 9s ease-out 1} .nts-r.flash.nt-new{animation:ntInFlash 9s ease-out 1}
.nts-pill{top:76px}
.nts .side-empty{padding:16px 14px}

/* 1.30.0 (2026-10-19): BIST -- the operator's view-only Borsa Istanbul charts (bist.js). No order path on a BIST chart: Buy / Sell
   and the quick-order row are hidden; the tape and sentiment blocks (OKX's) too. The header's tag reads "BIST · 15m delayed". */
body.bist-mode #b-buy, body.bist-mode #b-sell, body.bist-mode #quick, body.bist-mode .side-sec-tape, body.bist-mode .side-sec-sent { display: none !important; }
body.bist-mode #symbtn span::after { content: ' \00b7 15m delayed'; }
.bist-kinds { align-items: center; margin: 2px 0 6px; }
.bist-kinds .bist-note { font-size: 11px; margin-left: auto; }
/* 1.30.1: every cell may shrink (a grid cell is min-content wide by default, so a long company name pushed its row's
   columns right); the name gets its own line, cut with an ellipsis */
.scr.bist-row > span, .scr.bist-head > span { min-width: 0; }
.scr.bist-row > span:first-child { overflow: hidden; }
.scr.bist-row .bist-name { display: block; font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tag.k-fund { color: var(--text-2); }
