/* Sentro v5 «premium» — the whole interface (24.10). Replaces components.css, layouts.css, app.css and v4.css.
   Spec research/design-v5.md, mocks design/premium/{token,board,sheet}.html (research/shots/design-v5/*.png), tokens in tokens.css only.
   Lock: Hyperliquid /trade discipline (research/ref-hyperliquid/measure.md): one working size 13/18, hierarchy by colour (label t-2 / value t-1),
   panels r6 on a 4 px gutter, one inner edge (--pad 12) shared by every panel, bars of one height (nav 56 · instrument 64 · tabs 40 · rows 28).
   Borrowed: Kraken Pro 240a832f (label over value, panel tabs), Wealthsimple 064981bd (order rows), Fey 08ae8676 (preview shadow),
   Revolut dc61e2d1 (asset row → board card). Naming: block__element--modifier, states is-*. */

/* ================= base ================= */
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--n-0);color:var(--t-1)}
body{font:var(--w-r) var(--fs-ui)/var(--lh-ui) var(--f);letter-spacing:var(--tr);font-feature-settings:"tnum" 1,"cv11" 1;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overflow:hidden}
button,input{font:inherit;color:inherit;background:none;border:0;outline:0;letter-spacing:inherit}
h1,h2,h3,h4,p,dl,dd{font:inherit}
button{cursor:pointer}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}
:focus-visible{outline:none;box-shadow:var(--focus);border-radius:var(--r-1)}
input:focus-visible{box-shadow:none}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
details:not([open])>:not(summary){display:none}
summary{list-style:none;cursor:pointer}summary::-webkit-details-marker{display:none}

/* icons (Lucide sprite): 14 px, 12 px in number rows */
.ico{width:var(--ico);height:var(--ico);flex:none;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.ico--1{width:var(--ico-s);height:var(--ico-s)}.ico--3{width:var(--s-4);height:var(--s-4)}
.ico--spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}

/* token / company icon: square r6 (r4 at 16–20 px); initials on a neutral tile under the image, the slot never collapses */
.tk{position:relative;flex:none;width:var(--tk-m);height:var(--tk-m);border-radius:var(--r-1);background:var(--n-3);overflow:hidden;display:inline-grid;place-items:center}
.tk b{font:var(--w-r) var(--fs-12)/var(--lh-12) var(--f);letter-spacing:0;color:var(--t-2)}
.tk img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tk--1{width:var(--tk-s);height:var(--tk-s)}.tk--1 b{font-size:0;line-height:0}
.tk--3{width:var(--tk-l);height:var(--tk-l);border-radius:var(--r-2)}
.tk__svg{width:70%;height:70%;color:var(--t-2)}
.tk:has(.tk__svg){background:none}
.mk{display:inline-grid;place-items:center;width:var(--ico);height:var(--ico);flex:none}.mk svg{width:100%;height:100%}.mk--1{width:var(--ico-s);height:var(--ico-s)}

/* text roles: one size, colour carries the hierarchy */
.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.up{color:var(--up)}.down{color:var(--down)}.flat{color:var(--t-2)}.na{color:var(--t-3)}
.t1{color:var(--t-1)}.dim,.mut,.lbl,.t-label{color:var(--t-2)}.warn{color:var(--down)}
.sym{font-weight:var(--w-m);color:var(--t-1);white-space:nowrap}
.code,.mono{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0}
.ell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.t-data,.t-prose{color:var(--t-1);text-wrap:pretty}
.t-stat,.kv__v{color:var(--t-1);white-space:nowrap}
.t-title{font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1)}
.t-display{color:var(--t-1)}
.is-stale{color:var(--t-3)}
.zn{white-space:nowrap}
/* subscript zeros $0.0₅866: 0.7 em, line-height 0, +0.18 em, same colour — the line never grows (§1.3 #13) */
sub.z{font-size:.7em;line-height:0;position:relative;top:.18em;vertical-align:baseline;margin:0 .02em;letter-spacing:0;color:inherit}
.dot-u{text-decoration:underline dotted var(--t-3);text-underline-offset:3px;text-decoration-thickness:1px}
kbd,.kbd{display:inline-flex;align-items:center;height:var(--s-5);padding:0 var(--s-1);border-radius:var(--r-1);background:var(--n-2);font:var(--w-r) var(--fs-12)/var(--lh-12) var(--f);letter-spacing:0;color:var(--t-2)}

/* brand C «Pixel grid» (owner 25.10, research/brand-c/…/Sentro Identity Board C.dc.html): the duty-terminal mark on its own 28 grid + «sentro» Geist Mono 500,
   −0.02em, gap 8, no glow, no cursor, no prompt sign. Word 20/28 (the v8 scale). */
.logo{display:inline-flex;align-items:center;gap:var(--s-2);font:var(--w-m) var(--fs-20)/var(--lh-20) var(--f-mono);letter-spacing:var(--tr-xl);color:var(--t-1);white-space:nowrap;flex:none}
.logo__m{width:28px;height:28px;flex:none}
@keyframes logo-blink{50%{opacity:0}}
/* the mascot: state files /brand/states/*.svg (16 grid, drawn at 64; shown at 32 · 64 · 128 only). Reading = 3 frames, 900 ms ease-in-out (the
   steps land early-late like the easing), whole-cell positions; found = one 240 ms change, then hold; warning = one 2-frame flicker of 120 ms. */
.msc{position:relative;display:inline-block;flex:none;width:var(--msc,64px);height:var(--msc,64px)}
.msc>img{position:absolute;inset:0;width:100%;height:100%}
.msc--read>img{opacity:0;animation:msc-r1 900ms step-end infinite}
.msc--read>img:nth-child(2){animation-name:msc-r2}.msc--read>img:nth-child(3){animation-name:msc-r3}.msc--read>.msc__i{animation:none}
@keyframes msc-r1{0%{opacity:1}38%,100%{opacity:0}}
@keyframes msc-r2{0%{opacity:0}38%{opacity:1}62%,100%{opacity:0}}
@keyframes msc-r3{0%,38%{opacity:0}62%{opacity:1}100%{opacity:1}}
.msc--found>img+img{animation:msc-in 240ms step-end both}
.msc--warn>img+img{opacity:0;animation:msc-flick 240ms step-end 1}
@keyframes msc-in{from{opacity:0}to{opacity:1}}
@keyframes msc-flick{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
.msc--32{--msc:32px}.msc--128{--msc:128px}
@media (prefers-reduced-motion:reduce){.msc--read>img{animation:none;opacity:0}.msc--read>.msc__i{opacity:1}.msc--found>img+img,.msc--warn>img+img{animation:none}}

/* ================= controls ================= */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);height:var(--h-ctl);padding:0 var(--s-4);border-radius:var(--r-2);font-weight:var(--w-m);white-space:nowrap;flex:none;color:var(--t-1);transition:background-color var(--d-1) var(--e-std),color var(--d-1) var(--e-std)}
.btn--buy{background:var(--a);color:var(--on-a)}.btn--buy:hover{background:var(--a-hover)}.btn--buy:active{background:var(--a-press)}
.btn--sell{background:var(--down);color:var(--on-a)}.btn--sell:hover{background:var(--down);filter:brightness(1.06)}
.btn--warn{background:var(--down);color:var(--on-a)}
.btn--sec{background:var(--n-2);color:var(--t-1);font-weight:var(--w-r)}.btn--sec:hover{background:var(--n-3)}
.btn--ghost{color:var(--t-2);font-weight:var(--w-r);padding:0 var(--s-2)}.btn--ghost:hover{color:var(--t-1);background:var(--n-2)}
.btn--icon{width:var(--h-ctl);padding:0;color:var(--t-2);font-weight:var(--w-r)}.btn--icon:hover{color:var(--t-1);background:var(--n-2)}
.btn--l{height:var(--h-cta)}
.btn--s{height:var(--h-ctl-s);padding:0 var(--s-2);border-radius:var(--r-1)}
.btn--block{width:100%}
.btn--link{height:auto;padding:0;border-radius:0;color:var(--t-1);font-weight:var(--w-r);text-decoration:underline;text-decoration-color:var(--t-3);text-underline-offset:3px}
.btn--link:hover{text-decoration-color:var(--t-1)}
.btn:disabled,.btn.is-disabled{background:var(--n-2);color:var(--t-3);cursor:not-allowed;filter:none}
.btn--ghost:disabled,.btn--icon:disabled{background:none}
.btn.is-loading{color:transparent;position:relative}.btn.is-loading .ico--spin{position:absolute;color:var(--on-a)}
.btn .ico{flex:none}
.link{color:var(--t-1);display:inline-flex;align-items:center;gap:var(--s-1);text-decoration:underline;text-decoration-color:var(--t-3);text-underline-offset:3px}
.link:hover{text-decoration-color:var(--t-1)}
.lk{color:var(--t-2)}.lk:hover{color:var(--t-1)}
/* icon button 32 / 24 (t-2 → t-1 + n-2 on hover), no outlines */
.ib{display:inline-grid;place-items:center;width:var(--h-ctl);height:var(--h-ctl);border-radius:var(--r-2);color:var(--t-2);flex:none;transition:background-color var(--d-1) var(--e-std),color var(--d-1) var(--e-std)}
.ib:hover,.ib[aria-expanded=true]{color:var(--t-1);background:var(--n-2)}
.ib.is-on,#watchB.is-on{color:var(--a)}
/* chips: 20 px, r4, n-2, t-2 — one per line at most, never coloured by status */
.chip{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-ctl-s);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-2);color:var(--t-2);white-space:nowrap;cursor:pointer}
.chip:hover{color:var(--t-1)}
.chip.is-on{background:var(--n-4);color:var(--t-1)}
.chip img{width:var(--tk-s);height:var(--tk-s);border-radius:var(--r-1)}
.chips{display:flex;flex-wrap:wrap;gap:var(--s-1)}
.chips--2{display:grid;grid-template-columns:1fr 1fr}.chips--2 .chip{justify-content:center}
.pill,.badge{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-chip);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-2);color:var(--t-2);white-space:nowrap;flex:none;font-size:var(--fs-12);line-height:var(--lh-12)}
.badge--warn,.badge--risk{color:var(--down)}.badge--ok{color:var(--t-2)}.badge--new{color:var(--t-1)}
.badge--copy{height:var(--lh-12);padding:0 var(--s-1);text-transform:lowercase;flex:none;margin-left:var(--s-1)}
.badge--ico{width:var(--h-chip);justify-content:center;padding:0}
/* fields: 40, n-2, r6, no border at rest; focus 1 px amber; error 1 px red */
.fld{display:flex;align-items:center;gap:var(--s-2);height:var(--h-input);padding:0 var(--s-3);border-radius:var(--r-2);background:var(--n-2);color:var(--t-2);box-shadow:inset 0 0 0 1px transparent;transition:box-shadow var(--d-1) var(--e-std)}
.fld:focus-within{box-shadow:inset 0 0 0 1px var(--a)}
.fld.is-error{box-shadow:inset 0 0 0 1px var(--down)}
.fld input{flex:1;min-width:0;text-align:right;color:var(--t-1)}
.fld__l{color:var(--t-2);white-space:nowrap}
.fld__msg{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--down)}
.fld .btn--ghost{height:var(--h-ctl-s);padding:0 var(--s-1);color:var(--t-2)}
.fld--s{height:var(--h-ctl)}
.fld--addr input{text-align:left}
input::placeholder{color:var(--t-3)}
/* segmented control: track n-2 r6 inset 2 → thumb r4 */
.seg{display:inline-flex;gap:0;padding:var(--s-half);border-radius:var(--r-2);background:var(--n-2)}
.seg button{height:calc(var(--h-ctl) - var(--s-1));padding:0 var(--s-3);border-radius:var(--r-1);color:var(--t-2);transition:background-color var(--d-2) var(--e-out),color var(--d-2) var(--e-out)}
.seg button:hover{color:var(--t-1)}
.seg button.is-on{background:var(--n-4);color:var(--t-1)}
.seg--side{display:grid;grid-template-columns:1fr 1fr;height:var(--h-ctl)}
.seg--side button{height:auto}
.seg--side button.is-buy{background:var(--a);color:var(--on-a);font-weight:var(--w-m)}
.seg--side button.is-sell{background:var(--down);color:var(--on-a);font-weight:var(--w-m)}
/* tabs: t-2, active t-1 + a 2 px amber rule on the bar's bottom edge; counter t-2 */
.tabs{display:flex;align-self:stretch;gap:var(--s-6);min-width:0;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs button{position:relative;display:inline-flex;align-items:center;gap:var(--s-2);flex:none;height:100%;color:var(--t-2);white-space:nowrap}
.tabs button:hover{color:var(--t-1)}
.tabs button.is-on{color:var(--t-1)}
.tabs button .ico{color:var(--t-2)}.tabs button.is-on .ico{color:var(--a)}
@media (max-width:1439px){.pn--act .tabs button .ico{display:none}}
.tabs button.is-on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--s-half);background:var(--a);border-radius:1px 1px 0 0}
.tabs__n,.pn__n{color:var(--t-2)}
/* text toggles Price / MC: active t-1, inactive t-2, the slash t-3 */
.tog{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-3)}
.tog button{color:var(--t-2)}.tog button:hover,.tog button.is-on{color:var(--t-1)}
.vsep{width:1px;height:var(--s-4);background:var(--line-strong);flex:none}
.ck{width:var(--s-3);height:var(--s-3);border-radius:var(--r-1);background:var(--n-3);flex:none;display:grid;place-items:center}
.ck.is-on{background:var(--a)}.ck .ico{color:var(--on-a)}

/* skeleton: a grey bar the size of the value, the label stays */
.sk{display:block;height:var(--s-2);border-radius:var(--s-half);background:var(--n-2);animation:sk 1.2s var(--e-std) infinite}
.sk--num{display:inline-block;width:var(--s-10);height:var(--s-3);vertical-align:middle;background:var(--n-3)}
@keyframes sk{50%{opacity:.5}}
.flash-up{animation:flu var(--d-flash) var(--e-std)}@keyframes flu{from{background:var(--up-tint)}}
.flash-down{animation:fld var(--d-flash) var(--e-std)}@keyframes fld{from{background:var(--down-tint)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ================= app frame: nav 56 · panels · status 24 ================= */
.app{height:100vh;height:100dvh;max-width:var(--w-max);margin:0 auto;display:grid;grid-template-rows:var(--h-nav) minmax(0,1fr) var(--h-status);overflow:hidden}
.top{display:grid;grid-template-columns:minmax(0,max-content) minmax(var(--w-cmd-min),1fr) auto;align-items:center;column-gap:var(--s-6);padding:0 var(--s-4);background:var(--n-0);position:relative;z-index:var(--z-top);min-width:0}
.top__l{display:flex;align-items:center;gap:var(--s-6);min-width:0;height:100%}
.top__r{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2);min-width:0}
/* v8 nav (owner 25.10 «я не вижу иконок»; research/side-panel-v2/system.md §3, Mutexa rows): every item = Lucide 16 + label, gap 8, a 32 row in the
   64 bar; icon and label t-2 → t-1 on hover; active = the warm tint --nav-on, label t-1, icon gold (replaces the 2 px amber rule) */
.nav{display:flex;align-items:center;align-self:stretch;gap:var(--s-1);min-width:0;overflow:hidden}
.nav__a{position:relative;display:flex;align-items:center;gap:var(--s-2);height:var(--s-8);padding:0 var(--s-3);border-radius:var(--r-ctl);color:var(--t-2);white-space:nowrap;flex:none;transition:color var(--d-1) var(--e-std),background-color var(--d-1) var(--e-std)}
.nav__a .ico{color:var(--t-2)}
.nav__a:hover .ico{color:var(--t-1)}
.nav__a.is-on{background:var(--nav-on)}
.nav__a.is-on .ico{color:var(--a)}
.nav__a:focus-visible{box-shadow:inset 0 0 0 1px var(--a);border-radius:var(--r-1)}
.nav__a[hidden]{display:none!important}
.nav__more{position:relative;display:flex;flex:none}
.nav__more .ico--1{color:var(--t-3)}
.nav__more .wm{top:calc(100% - var(--s-1))}
.nav__a:hover,.nav__a.is-on{color:var(--t-1)}
/* 25.10 (owner): Perps — inactive, last in the nav and in the phone «More» sheet: muted, no hover or active state, a small «Soon» chip */
.nav__a.nav__a--off,.nav__a.nav__a--off:hover,.nav__a.nav__a--off .ico{color:var(--t-3);cursor:default;background:none}
.nav__soon{display:inline-flex;align-items:center;height:var(--s-4);padding:0 var(--s-1);border-radius:var(--r-1);background:var(--n-2);color:var(--t-2);font-size:var(--fs-12);line-height:var(--lh-12)}
.wm__it.wm__it--off,.wm__it.wm__it--off:hover{color:var(--t-3);background:none;cursor:default}.wm__it--off .nav__soon{margin-left:auto}
/* search (25.10, owner «форму поиска больше сделай»): 520×40 (was 400×32), centred in the space between the nav and the account; ⌘K; results drop with token rows */
.cmdw{position:relative;display:flex;min-width:0;width:min(100%,var(--w-cmd));justify-self:center}
.cmd{flex:1;min-width:0;display:flex;align-items:center;gap:var(--s-2);height:var(--h-input);padding:0 var(--s-2) 0 var(--s-3);border-radius:var(--r-2);background:var(--n-1);box-shadow:inset 0 0 0 1px var(--line);color:var(--t-2)}
.cmd:focus-within{box-shadow:inset 0 0 0 1px var(--a)}
.cmd__p{display:none}
.cmd input{flex:1;min-width:0;color:var(--t-1)}
.cmd input::placeholder{color:var(--t-2)}
.acct{position:relative;flex:none}
.acct__chip{gap:var(--s-2)}
.acct__chip .num{color:var(--t-1)}
#topDep{display:none!important}
/* status bar 24: 12 px, t-2 */
.status{display:flex;align-items:center;gap:var(--s-4);padding:0 var(--s-3);background:var(--n-0);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);white-space:nowrap;overflow:visible;min-width:0}
.status__i{display:inline-flex;align-items:center;gap:var(--s-1)}
.status__i.up,.status__i.mut,.status__i.down{color:var(--t-1)}
.status__sp{margin-left:auto}
.status .t-fee{color:var(--t-2)}
.status__help{position:relative;display:inline-flex;align-items:center;gap:var(--s-4)}
.status__q{display:grid;place-items:center;width:var(--h-chip);height:var(--h-chip);border-radius:var(--r-1);background:var(--n-2);color:var(--t-2);font-size:var(--fs-12);line-height:var(--lh-12)}
.status__q:hover,.status__q[aria-expanded=true]{color:var(--t-1)}
.status__a{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-2)}.status__a:hover{color:var(--t-1)}
.dot{width:6px;height:6px;border-radius:var(--r-round);background:currentColor;flex:none}
.dot--live{color:var(--up)}.dot--warm{color:var(--t-2)}.dot--off{color:var(--down)}
.live{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-2)}
.live.up{color:var(--t-2)}

/* ================= panels ================= */
.main{display:grid;min-height:0;min-width:0;padding:0 var(--gutter) var(--gutter)}
.main>.scr{grid-area:1/1;min-height:0;min-width:0}
body:not([data-page=board]) .l-board,body:not([data-page=token]) .l-token,body:not([data-page=page]) .pg{display:none}
.pn{position:relative;display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--n-1);border-radius:var(--r-2);overflow:hidden;container-type:inline-size}
/* bar 40: inner edge 12, hairline under */
.pn__h,.ctb{flex:none;display:flex;align-items:center;gap:var(--s-4);height:var(--h-bar);padding:0 var(--pad);box-shadow:inset 0 -1px 0 var(--line);white-space:nowrap;min-width:0}
.pn__t{display:flex;align-items:center;gap:var(--s-2);font-weight:var(--w-m);color:var(--t-1)}
.pn__x{margin-left:auto;display:flex;align-items:center;gap:var(--s-2);min-width:0}
.pn__b{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--n-4) transparent}
.sp{flex:1}

/* ================= token page: 64 / chart / table on the left, one 320 sidebar on the same horizontals ================= */
.l-token{display:grid;grid-template-columns:minmax(0,1fr) var(--w-tside);grid-template-rows:var(--h-inst) minmax(0,440fr) minmax(0,304fr);gap:var(--gutter)}
.l-token>.th{grid-column:1;grid-row:1}
.l-token>.pn--chart{grid-column:1;grid-row:2}
.l-token>.pn--act{grid-column:1;grid-row:3}
.l-token>.side{grid-column:2;grid-row:1/4}
/* instrument header 64: icon 32 · ticker 20 · name · stage chip · label/value columns on two shared baselines, step 32 · CA, links, star */
.th{flex-direction:row;align-items:center;gap:var(--s-8);height:var(--h-inst);padding:0 var(--pad)}
.th__id{display:flex;align-items:center;gap:var(--s-3);min-width:0;flex:0 1 auto;padding-right:var(--s-2)}
.th__id>.tk,.th__id>.chip{flex:none}
/* 25.10 fix (MEMESTOCK at 1728: the stage chip ran over «Price»): the name goes first, then the ticker ellipsizes; the chip never shrinks and the
   block clips instead of overlapping the stats */
.th__id{overflow:hidden}
.th__id>.th__sym{flex:0 0 auto;max-width:10ch;overflow:hidden;text-overflow:ellipsis}
@media (max-width:1599px){.th__id>.th__nm{display:none}}
.th__sym{font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1);white-space:nowrap}
.th__nm{color:var(--t-2);min-width:0;flex:0 100 auto}
/* 26.10 (live audit): the ticker is never cut, the name gives way only down to 120px (was «M…» beside free space) */
.th__id{min-width:min-content}
.th__id>.th__nm{min-width:120px;max-width:24ch}
.th__kv{display:flex;gap:var(--s-6);align-items:stretch;flex:none}
.kv{display:flex;flex-direction:column;min-width:0}
.kv__k{color:var(--t-2);white-space:nowrap}
.kv__v{color:var(--t-1);white-space:nowrap}
.kv__s{color:var(--t-2);white-space:nowrap}
.th__nb{margin-left:auto;display:flex;align-items:center;gap:var(--s-1);flex:none}
.th__ca{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-ctl-s);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-2);color:var(--t-2);margin-right:var(--s-1)}
.th__ca:hover{color:var(--t-1)}
/* polish 24.10 (owner: «иконки должны быть крупные»): header actions are 36 boxes with 20 icons (one stroke weight, the X glyph 18 — filled, it reads
   larger), no gap between boxes, so icon-to-icon is an even 16 and the CA chip (36, same height) ends 16 before the first icon. The 36 boxes stand
   exactly on the label/value group of the header columns (70 … 106 in a 64 bar). */
.th__nb{gap:0}
.th__nb .ib{width:var(--h-cta);height:var(--h-cta)}
.th__nb .ib .ico{width:var(--ico-h);height:var(--ico-h)}
.th__nb .ib[aria-label=X] .ico{width:var(--ico-h);height:var(--ico-h)}
.th__nb .th__ca{height:var(--h-cta);gap:var(--s-2);padding:0 var(--s-3);border-radius:var(--r-2);margin-right:var(--s-2)}
.th__nb .th__ca .ico{width:var(--s-4);height:var(--s-4)}
.th__nf{display:flex;flex-direction:column;min-width:0}
@container (max-width:1099px){.th .kv--p2,.th .kv--p1,.th [data-ext]{display:none}.th,.th__kv{gap:var(--s-6)}}
/* under 1100 (1280 window) the CA chip folds to its copy icon, a 36 box like the rest (the address stays in its title and in the sidebar), so the
   identity never runs under «Price» */
@container (max-width:1099px){.th__nb .th__ca{width:var(--h-cta);padding:0;justify-content:center;background:none;margin-right:0}.th__nb .th__ca .code{display:none}.th__nb .th__ca .ico{width:var(--ico-h);height:var(--ico-h)}.th__nb .th__ca:hover{background:var(--n-2)}}
@container (max-width:899px){.th .kv--p3{display:none}}
/* chart toolbar: timeframes are text (active amber), the group is moved −8 so «1m» stands on the panel edge */
.ctb{gap:var(--s-3)}
.tf{display:flex;gap:0;margin-left:calc(-1 * var(--s-2))}
.tf button{height:var(--h-ctl-s);padding:0 var(--s-2);border-radius:var(--r-1);color:var(--t-2)}
.tf button:hover{color:var(--t-1)}
.tf button.is-on{color:var(--a)}
.ctb__r{margin-left:auto;display:flex;align-items:center;gap:var(--s-3)}
.ctb .btn--ghost{height:var(--h-ctl-s);gap:var(--s-2);padding:0 var(--s-1);margin-left:calc(-1 * var(--s-1))}
.chart{position:relative;flex:1;min-height:0}
.chart__host{position:absolute;inset:0}
.chart__note{position:absolute;inset:0;display:grid;place-items:center;color:var(--t-2);pointer-events:none;z-index:var(--z-sticky)}
.chart__note:empty{display:none}
/* legend: «DGRH · 5m · Sentro  O … H … L … C …», 12 px, on the panel's inner edge */
.chart__lg{position:absolute;left:var(--pad);top:var(--s-2);z-index:var(--z-sticky);display:flex;gap:var(--s-3);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);pointer-events:none;white-space:nowrap}
.chart__lg b{font-weight:var(--w-r);color:var(--t-1);margin-left:var(--s-1)}
.chart__ohlc{display:flex;gap:var(--s-3)}
.chart__leg{position:absolute;left:var(--pad);top:calc(var(--s-2) + var(--lh-12) + var(--s-1));display:flex;gap:var(--s-3);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);pointer-events:none;z-index:var(--z-sticky)}
.chart__leg i{display:inline-block;width:var(--s-3);height:var(--s-half);vertical-align:middle;margin-right:var(--s-1)}
.chart__leg b{font-weight:var(--w-r);color:var(--t-1);margin-left:var(--s-1)}
.sw-ma{background:var(--t-1)}.sw-ema{background:var(--t-2)}.sw-vwap{background:var(--a)}
/* activity panel */
.pn--act .pn__h{gap:var(--s-6)}
.pn--act .pn__x{flex:none}
/* tables: head 28 t-2, rows 28 without lines (rhythm + hover), numbers right under right heads, text and addresses left */
.tbl{width:100%;min-width:0}
.tbl__h,.row{display:grid;grid-template-columns:var(--cols);column-gap:var(--s-4);align-items:center;padding:0 var(--pad)}
.tbl__h{position:sticky;top:0;z-index:var(--z-sticky);height:var(--h-row);background:var(--n-1);color:var(--t-2)}
.tbl__h>span{display:flex;align-items:center;gap:var(--s-1);min-width:0;white-space:nowrap}
.tbl__h>.num{justify-content:flex-end}
.tbl__h [data-sort]{cursor:pointer}.tbl__h .is-sort{color:var(--t-1)}
.row{height:var(--h-row);color:var(--t-1);position:relative;transition:background-color var(--d-1) var(--e-std)}
.row:hover{background:var(--n-2)}
.row.is-new{animation:flu var(--d-flash) var(--e-std)}
.row .num{text-align:right;justify-self:stretch}
.row>a.c-tok,.c-tok{display:flex;align-items:center;gap:var(--s-2);min-width:0;overflow:hidden}
.tbl[aria-busy] .row{display:flex;gap:var(--s-4)}.tbl[aria-busy] .row>span{flex:1}
.tbl--tab .row{cursor:default}
/* trades: Age · Side · Value · ETH · token · Price | Wallet · link (mock a-token: wallet column 32 px off the numbers) */
.tbl--trades{--cols:68px 68px minmax(64px,1fr) minmax(64px,1fr) minmax(64px,1fr) minmax(88px,1fr) 200px var(--h-ctl-s)}
.tbl--trades .c-wal{padding-left:var(--s-6)}
.tbl--holders{--cols:40px minmax(160px,1.4fr) minmax(96px,1fr) minmax(160px,1.2fr) var(--h-ctl-s)}
.tbl--traders{--cols:40px minmax(160px,1.4fr) minmax(80px,1fr) minmax(80px,1fr) minmax(88px,1fr) minmax(56px,.6fr) var(--h-ctl-s)}
.tbl--snipers{--cols:56px minmax(160px,1.6fr) minmax(80px,1fr) minmax(88px,1fr) var(--h-ctl-s)}
.tbl--bundles{--cols:40px minmax(160px,1fr) var(--h-ctl-s)}
.wal{display:flex;align-items:center;gap:var(--s-1);min-width:0;white-space:nowrap}
.wal__a{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0;color:var(--t-2)}
.wal__a:hover{color:var(--t-1)}
.wal__c{display:inline-grid;place-items:center;width:var(--h-ctl-s);height:var(--h-ctl-s);border-radius:var(--r-1);color:var(--t-3);flex:none}
.wal__c:hover{color:var(--t-1);background:var(--n-3)}
.tag,.wal .badge{height:var(--lh-12);padding:0 var(--s-1);border-radius:var(--r-1);background:var(--n-3);color:var(--t-2);font-size:var(--fs-12);line-height:var(--lh-12)}
.c-tx{display:inline-grid;place-items:center;width:var(--h-ctl-s);height:var(--h-ctl-s);justify-self:end;color:var(--t-2)}
a.c-tx:hover{color:var(--t-1)}
.share{display:flex;align-items:center;gap:var(--s-2);justify-content:flex-end}
.share i{flex:1;height:var(--s-half);background:var(--n-3);position:relative;max-width:96px;border-radius:1px}
.share i b{position:absolute;inset:0 auto 0 0;background:var(--t-2)}
.bar{display:inline-flex;align-items:center;gap:var(--s-1)}
/* tab summaries and portfolio totals: label over value, no boxes */
.kvs{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-8);padding:var(--s-3) var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.kvs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,220px));align-items:start}.kvs .kv__k{white-space:normal}  /* 26.10 owner: «текст плывет» — stat rows on one grid */
.kv__v.up{color:var(--up)}.kv__v.down,.kv__v.warn{color:var(--down)}
.crc{margin:var(--pad);border-radius:var(--r-2);background:var(--n-2)}
.crc__h{display:flex;align-items:center;gap:var(--s-2);height:var(--h-bar);padding:0 var(--pad);box-shadow:inset 0 -1px 0 var(--line);color:var(--t-2)}
.crc__h .side__h{margin:0}
.crc__w{margin-left:auto}
.crc__g{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:var(--s-3) var(--s-4);padding:var(--pad)}
.crc__g dt{color:var(--t-2)}.crc__g dd{color:var(--t-1)}.crc__g dd.up{color:var(--up)}.crc__g dd.down,.crc__g dd.warn{color:var(--down)}
/* empty / loading / error: icon + one line */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-2);padding:var(--s-6) var(--s-4);text-align:center;color:var(--t-2);text-wrap:pretty}
.empty .ico{color:var(--t-2)}
.empty--row{flex-direction:row;justify-content:flex-start;padding:0 var(--pad);height:var(--h-row);text-align:left}

/* ---- sidebar: windows (64, = header) · flow + order (ends on the chart's bottom line) · security · score · AI read · pool ---- */
.side{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--n-4) transparent;display:block}
/* polish 24.10 (owner: «нету вертикали и горизонтали с нижними блоками»): windows, flow and security are ONE grid — 4 equal columns with an 8 gap
   between the panel's inner edges (12 … w−12); the active rule is the full column, so the 24h rule ends on the order's right edge and the
   Buy/Sell split falls in the middle of the 2|3 gap. Every row: label 14 below its top line, lines of 18. Hairlines run edge to edge. */
.g4,.sgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:var(--s-2)}
.g4>*{min-width:0}
.side__win{height:var(--h-inst);padding:0 var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.side__cap{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);white-space:nowrap}
.side__win button{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;height:100%;text-align:left}
.side__wk{color:var(--t-2);white-space:nowrap}
.side__win button:hover .side__wk,.side__win button.is-on .side__wk{color:var(--t-1)}
.side__win button.is-on::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:var(--s-half);background:var(--a);border-radius:1px 1px 0 0}
.side__s2{display:flex;flex-direction:column;min-height:var(--h-s2,calc((100dvh - 168px) * 440 / 744 + 8px));box-shadow:inset 0 -1px 0 var(--line)}
/* v8 side panel (owner 25.10, research/side-panel-v2/notes.md, variant A). Windows: ONE segmented control in the 64 bar (8 · 48 · 8), track n-2 r6,
   segments r4, label 12 mono caps over the change 14 mono; active = n-4 + gold label (the one gold here). Refs: chargetrip 4abd4a1b, GMGN active tile. */
.swin{height:var(--h-inst);padding:var(--s-2) var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.swin__seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-half);height:100%;padding:var(--s-half);background:var(--n-2);border-radius:var(--r-2)}
.swin__seg button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-half);min-width:0;border-radius:var(--r-ctl);transition:background-color var(--d-2) var(--e-out)}
.swin__k{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);text-transform:uppercase;letter-spacing:.06em;color:var(--t-2);white-space:nowrap}
.swin__v{font-size:var(--fs-14);line-height:var(--lh-14)}
.swin__seg button:hover{background:var(--hover)}
.swin__seg button:hover .swin__k{color:var(--t-1)}
.swin__seg button[aria-checked="true"]{background:var(--n-4)}
.swin__seg button[aria-checked="true"] .swin__k{color:var(--a)}
.swin__seg button[aria-checked="true"] .na{color:var(--t-2)}
.swin__seg button:disabled{cursor:default;background:none}
.swin__seg button:disabled .swin__k,.swin__seg button:disabled .swin__v{color:var(--t-3)}
/* activity: eyebrow → 8 → one strip of three numbers (Coinbase Advanced 10b9ce87, Kraken Pro 240a832f) → 16 → % over the bar ends → 4 → bar 8 → 4 →
   each side's sum and trades (Stocktwits 53e0b955). min-height = the filled height, so the order below never jumps when the numbers arrive. */
.sflow{min-height:180px;padding:var(--s-3) var(--pad) var(--s-4)}
.sflow__kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:var(--s-2);border:1px solid var(--line);border-radius:var(--r-2)}
.sflow__kv>div{display:flex;flex-direction:column;gap:var(--s-half);min-width:0;padding:var(--s-2) var(--s-3)}
.sflow__kv>div+div{box-shadow:inset 1px 0 0 var(--line)}
.sflow__kv dt{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.sflow__kv dd{font-size:var(--fs-14);line-height:var(--lh-14);color:var(--t-1);overflow:hidden;text-overflow:ellipsis}
.sflow__p{margin-top:var(--s-4)}
.sflow__ends{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-2);white-space:nowrap}
.sflow__ends>div{display:flex;align-items:baseline;gap:var(--s-1)}
.sflow__ends span{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.sflow__ends b{font-weight:var(--w-r);font-size:var(--fs-14);line-height:var(--lh-14);color:var(--t-1)}
.sflow__ends b.up{color:var(--up)}.sflow__ends b.down{color:var(--down)}.sflow__ends b.flat{color:var(--t-2)}
.sflow__ends small{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.sflow__ends .na{color:var(--t-3)}
.sflow__bar{display:flex;gap:var(--s-half);height:var(--s-2);margin:var(--s-1) 0}
.sflow__bar i{flex:1 1 0;min-width:var(--s-1);border-radius:var(--s-half)}
.sflow__bar .b{background:var(--up)}.sflow__bar .s{background:var(--down)}
.sflow__bar.is-na{background:var(--n-3);border-radius:var(--s-half)}
.sflow__empty{display:flex;align-items:center;gap:var(--s-2);height:var(--h-row-l);margin-top:var(--s-2);padding:0 var(--s-3);border:1px dashed var(--line-strong);border-radius:var(--r-2);color:var(--t-2)}
@media (max-width:767px){.swin{height:auto;padding:var(--s-2) var(--s-4)}.swin__seg{height:var(--s-12)}.sflow{padding:var(--s-3) var(--s-4) var(--s-4)}}
.side__sec{padding:var(--s-3) var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.side__s2 .side__sec{box-shadow:none}
.side__h{display:flex;align-items:center;justify-content:flex-start;gap:var(--s-2);height:var(--h-ctl-s);font-weight:var(--w-m);color:var(--t-1)}
.side__hx{margin-left:auto;font-weight:var(--w-r);color:var(--t-2)}
.sgrid>div{display:flex;flex-direction:column;padding:var(--s-2) 0}
.sgrid dt{color:var(--t-2);white-space:nowrap}
.sgrid dd{color:var(--t-1);white-space:nowrap}
.sgrid dd.down{color:var(--down)}
/* order */
.tkt{display:flex;flex-direction:column}
.rows>div,.tkt__row{height:var(--h-kv);display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
.rows>div>:first-child,.tkt__row>:first-child{color:var(--t-2)}
.tkt__bal{height:var(--h-kv);display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-top:var(--s-2);color:var(--t-2)}
.tkt__bal b{font-weight:var(--w-r);color:var(--t-1);display:inline-flex;align-items:center;gap:var(--s-1)}
.tkt__bal em{font-style:normal;color:var(--t-2)}
.tkt .fld{margin-top:var(--s-1)}
.tkt .fld input{color:var(--t-1)}
#amtUnit{color:var(--t-2);padding:0}
#amtUnit:not(:disabled):hover{color:var(--t-1);background:none}
.tkt__q{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-1);margin-top:var(--s-2)}
.tkt__q button{height:28px;border-radius:var(--r-1);background:var(--n-2);color:var(--t-1)}
.tkt__q button:hover{background:var(--n-3)}
.tkt__q button.is-on{background:var(--n-4)}
.tkt__q--3{grid-template-columns:repeat(3,1fr)}
.tkt__qw{display:flex;align-items:center;gap:var(--s-1);margin-top:var(--s-2)}.tkt__qw .tkt__q{flex:1;min-width:0;margin-top:0}
.tkt__qb{display:flex;gap:var(--s-1)}.tkt__qb .btn--icon{width:var(--h-ctl-s);height:var(--h-ctl-s)}
.tkt__q input{min-width:0;width:100%;height:calc(var(--h-ctl) - var(--s-1));padding:0 var(--s-1);border-radius:var(--r-1);background:var(--n-2);color:var(--t-1);text-align:center;box-shadow:inset 0 0 0 1px transparent;font-variant-numeric:tabular-nums}
.tkt__q input:focus-visible{box-shadow:inset 0 0 0 1px var(--a);outline:none}.tkt__q input[aria-invalid=true]{box-shadow:inset 0 0 0 1px var(--down)}
.tkt__qerr{display:block;margin-top:var(--s-1)}.tkt__qerr:empty{display:none}
.dl{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--s-3);row-gap:0}
.dl dt{height:var(--h-kv);display:flex;align-items:center;gap:var(--s-1);color:var(--t-2);white-space:nowrap}
.dl dd{min-height:var(--h-kv);display:flex;justify-content:flex-end;align-items:center;gap:var(--s-1);color:var(--t-1);white-space:nowrap;text-align:right}
.dl dd.warn{color:var(--down)}
.dl dd .dim{color:var(--t-2)}
.dl .is-sub{grid-column:1/-1;color:var(--t-2);font-size:var(--fs-12);line-height:var(--lh-12);min-height:0}
#route{margin-top:var(--s-2)}
#route:empty{margin-top:0}
#route dd .btn--ghost,#routeX dd .btn--ghost{height:var(--h-kv);padding:0;gap:var(--s-1);color:var(--t-1)}
#route dd .btn--ghost:hover,#routeX dd .btn--ghost:hover{background:none}
#route dd .btn--ghost .ico{color:var(--t-2)}
.tkt__det>summary{height:var(--h-kv);display:flex;align-items:center;justify-content:space-between;color:var(--t-2)}
.tkt__det>summary:hover{color:var(--t-1)}
.tkt__det>summary .ico{transition:transform var(--d-3) var(--e-std)}
.tkt__det[open]>summary .ico{transform:rotate(180deg)}
.tkt__det .tkt__rules{margin-top:var(--s-2)}
#tktRules:empty{display:none}
#cta{margin-top:var(--s-2)}
.tkt__msg{margin-top:var(--s-2);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.tkt__msg:empty{display:none}
.tkt__msg.is-err,.tkt__msg.is-warn{color:var(--down)}.tkt__msg.is-ok{color:var(--t-1)}
.tkt__msg .ico{margin-right:var(--s-1)}
.steps{list-style:none;display:flex;flex-direction:column;gap:var(--s-1);margin-top:var(--s-2);font-size:var(--fs-12);line-height:var(--lh-12)}
.steps:empty{display:none}
.steps li{display:flex;justify-content:space-between;gap:var(--s-2);color:var(--t-2)}
.steps li.done em{color:var(--up)}.steps li.failed em{color:var(--down)}
.steps em{font-style:normal}
.tkt__warn{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-2);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.tkt__warn.is-stk #tWarnT{color:var(--t-1)}
.tkt__i{margin-left:auto;display:inline-grid;place-items:center;width:var(--s-4);height:var(--s-4);border-radius:var(--r-1);color:var(--t-2);flex:none}
.tkt__i:hover,.tkt__i[aria-expanded=true]{color:var(--t-1);background:var(--n-2)}
.tkt__rules{display:flex;flex-direction:column;gap:var(--s-2)}
.tkt__rh{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}
/* notes: one line of t-2 on n-2, no coloured rules */
.note{display:flex;gap:var(--s-2);align-items:flex-start;padding:var(--s-2) var(--s-3);border-radius:var(--r-2);background:var(--n-2);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.note .ico{color:var(--t-2);margin-top:var(--s-half)}
.note--err,.note--err .ico{color:var(--down)}
.side .note{margin-top:var(--s-2)}
/* score scale: 4 px, segments 0–40 / 40–70 / 70–100 with a 2 px gap, fill in the band colour, marker 2×12 (§1.3 #12) */
.sc{display:flex;flex-direction:column}
.sc__h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;column-gap:var(--s-3);min-height:var(--h-ctl-s)}
.sc__t,.sc__v{white-space:nowrap}
.sc__h .sc__t{display:inline-flex;align-items:center;gap:var(--s-2);font-weight:var(--w-m)}
.side__h>.ico,.sc__t>.ico{color:var(--t-2)}
.sc__v .t2{color:var(--t-2)}
.scale{position:relative;height:var(--s-1);display:grid;grid-template-columns:40fr 30fr 30fr;gap:var(--s-half);margin:var(--s-2) 0 var(--s-1)}
.scale>i{position:relative;overflow:hidden;background:var(--n-3);border-radius:1px}
.scale>i>b{position:absolute;inset:0 auto 0 0;background:currentColor}
.scale .mk2{position:absolute;top:calc(-1 * var(--s-1));width:var(--s-half);height:var(--s-3);margin-left:-1px;background:var(--t-1);border-radius:1px}
.scale.is-partial>i{opacity:.7}
.scale-ax{position:relative;height:var(--lh-12);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-3)}
.scale-ax span{position:absolute;transform:translateX(-50%)}
.scale-ax span:first-child{transform:none}.scale-ax span:last-child{transform:translateX(-100%)}
.b-strong{color:var(--up)}.b-fair,.b-weak{color:var(--t-1)}.b-risky{color:var(--down)}
.scale.b-fair,.scale.b-weak{color:var(--t-2)}
.fac{list-style:none;display:flex;flex-direction:column;margin-top:var(--s-2)}
.fac li{height:var(--h-kv);display:grid;grid-template-columns:minmax(0,1fr) 48px 40px;align-items:center;column-gap:var(--s-3)}
.fac li>span:first-child{color:var(--t-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fac li>span:last-child{text-align:right}
.mbar{position:relative;height:3px;background:var(--n-3);border-radius:var(--s-half);overflow:hidden}
.mbar>b{position:absolute;inset:0 auto 0 0;background:var(--t-2)}
.mbar.is-full>b{background:var(--up)}.mbar.is-low>b{background:var(--down)}
.side__more{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-kv);color:var(--t-2)}
.side__more:hover{color:var(--t-1)}
/* AI read, collapsed */
.side__ai>summary{display:flex;align-items:center;gap:var(--s-2);height:var(--h-ctl-s);color:var(--t-2)}
.side__ai>summary .side__h{margin:0}
.side__ai>summary .via{margin-left:auto;min-width:0}
.side__ai[open]>summary{margin-bottom:var(--s-2)}
.side__ai .side__chev{transition:transform var(--d-3) var(--e-std)}
.side__ai[open] .side__chev{transform:rotate(180deg)}
.ai{display:flex;flex-direction:column;gap:var(--s-3)}
.prose{color:var(--t-1);text-wrap:pretty;white-space:pre-wrap}
.prose:empty{display:none}
.prose.is-wait{color:var(--t-2)}.prose.is-err{color:var(--down)}
.prose.is-typing::after{content:"";display:inline-block;width:.6em;height:1em;margin-left:var(--s-half);vertical-align:-2px;background:var(--a);animation:logo-blink var(--d-blink) step-end infinite}
#aiQ{color:var(--t-2)}
.via{display:inline-flex;align-items:center;gap:var(--s-1);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);white-space:nowrap;min-width:0}
.via #mdlName,.via #dwModelName{overflow:hidden;text-overflow:ellipsis;max-width:16ch}
.sugg{display:flex;flex-wrap:wrap;gap:var(--s-1)}
.ask{display:flex;align-items:center;gap:var(--s-2);height:var(--h-input);padding:0 var(--s-3);border-radius:var(--r-2);background:var(--n-2);color:var(--t-2);flex:none}
.ask:focus-within{box-shadow:inset 0 0 0 1px var(--a)}
.ask b{display:none}
.ask input{flex:1;min-width:0;color:var(--t-1)}
.ai__note{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.pos{display:flex;gap:var(--s-8)}
.side__dl dd .lk{color:var(--t-1)}

/* ================= board: three columns, cards 84 ================= */
.l-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:minmax(0,1fr);gap:var(--gutter);min-height:0}
body[data-page=board] .main{padding:0 var(--gutter) var(--gutter)}
.btabs{display:none}
.col{display:flex;flex-direction:column;min-height:0;min-width:0;background:var(--n-1);border-radius:var(--r-2);overflow:hidden;container-type:inline-size;position:relative}
/* board G (owner 24.10 «бери его, но исправь — у migrated нету полосы»): a hairline around each column and a 2 px stage line on its top,
   one explicit class per column (no :nth-child — the phone tabs are the board's first child, so nth-child missed Migrated) */
.col::after{content:"";position:absolute;inset:0;border:1px solid var(--line-col);border-top:2px solid var(--stage,transparent);border-radius:inherit;pointer-events:none;z-index:1}
.col--new{--stage:var(--stage-new)}.col--bond{--stage:var(--stage-bond)}.col--mig{--stage:var(--stage-mig)}
.col__h{flex:none;display:flex;align-items:center;gap:var(--s-2);height:var(--h-bar);padding:0 var(--pad);box-shadow:inset 0 -1px 0 var(--line);white-space:nowrap;min-width:0}
.col__t{display:flex;align-items:center;gap:var(--s-2);font-weight:var(--w-m);color:var(--t-1)}
.col__n{font-weight:var(--w-r);color:var(--t-2)}
.col__n:empty{display:none}
.col__x{margin-left:auto;display:flex;align-items:center;gap:var(--s-1)}
.col__qb{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-ctl-s);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-2);color:var(--t-1);margin-right:var(--s-1)}
.col__qb .ico{color:var(--a)}
.col__qb:hover,.col__qb[aria-expanded=true]{background:var(--n-3)}
.col__qb .dim{color:var(--t-2)}
.col__ib{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-1);min-width:var(--h-ctl-s);height:var(--h-ctl-s);padding:0 var(--s-1);border-radius:var(--r-1);color:var(--t-2)}
.col__ib:hover,.col__ib[aria-expanded=true]{color:var(--t-1);background:var(--n-2)}
.col__ib.is-on{color:var(--t-1)}
.col__ib:last-child{margin-right:calc(-1 * var(--s-1))}
.col__fn{color:var(--t-1)}.col__fn:empty{display:none}
.newpill{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-ctl-s);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-2);color:var(--t-1)}
.col__b{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--n-4) transparent;position:relative}
.col__more{display:flex;align-items:center;justify-content:center;gap:var(--s-2);height:var(--s-12);color:var(--t-2)}
.col__empty{height:auto}
/* card 84: icon 56 · three rows of 20 · right column on the edge; curve progress 2 px under the icon; hairlines inset 12 */
.cd{position:relative;display:grid;grid-template-columns:var(--tk-card) minmax(0,1fr) auto;column-gap:var(--s-3);height:var(--h-card);padding:var(--s-3) var(--pad);cursor:pointer;content-visibility:auto;contain-intrinsic-size:auto 84px;transition:background-color var(--d-1) var(--e-std)}
.cd+.cd::before{content:"";position:absolute;left:var(--pad);right:var(--pad);top:0;height:1px;background:var(--line)}
.cd:hover,.cd.is-pv,.cd.is-sel{background:var(--n-2)}
.cd:hover::before,.cd.is-pv::before,.cd.is-sel::before,.cd:hover+.cd::before,.cd.is-pv+.cd::before,.cd.is-sel+.cd::before{opacity:0}
.cd.is-new{animation:cdnew 1.6s var(--e-std)}@keyframes cdnew{from{background:var(--a-tint)}}
.cd:focus-visible{border-radius:0}
.cd__av{display:block;width:var(--tk-card);height:var(--tk-card)}
.tk--av{width:var(--tk-card);height:var(--tk-card);border-radius:var(--r-2)}
.tk--av b{font-size:var(--fs-ui);line-height:var(--lh-ui)}
.cd__pb{position:absolute;left:var(--pad);top:72px;width:var(--tk-card);height:var(--s-half);border-radius:1px;background:var(--n-4);overflow:hidden}
.cd__pb>b{display:block;height:100%;background:var(--t-2)}
.cd__pb:empty{display:none}
.cd__l2,.cd__l4{flex-wrap:wrap;row-gap:var(--s-8)!important;align-content:flex-start;overflow:hidden}
.cd__l2{column-gap:var(--s-1)!important}
.cd__meta{display:contents}
.mi{display:inline-flex;align-items:center;gap:var(--s-1);flex:none;height:var(--s-5)}
.mi .sep{color:var(--t-2)}
.cd__m{display:flex;flex-direction:column;min-width:0}
.cd__m>div,.cd__r>div{height:var(--s-5);display:flex;align-items:center;gap:var(--s-2);white-space:nowrap;min-width:0}
.cd__sym{display:inline-flex;color:var(--t-1);flex:none}
.cd__nm{color:var(--t-2);overflow:hidden;text-overflow:ellipsis;min-width:0;flex:0 1 auto}
.cd__b{display:inline-grid;place-items:center;width:var(--s-4);height:var(--s-4);border-radius:var(--r-1);color:var(--t-3);flex:none}
.cd__b:hover{color:var(--t-1)}
.cd__l2{color:var(--t-2);overflow:hidden}
.cd__l2>*{flex:none}
.cd__l2 .sep{color:var(--t-3)}
.cd__l2 .tk--1{width:var(--ico-s);height:var(--ico-s)}
.cd__x{color:var(--t-2)}
.cd__x:hover{color:var(--t-1)}
.cd__l4{column-gap:var(--s-3)!important}
.cd__l4>*{flex:none}
.cm{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-1)}
.cm .ico{color:var(--t-2)}
.cm.down .num{color:var(--down)}
.cs{display:inline-flex;align-items:center;gap:var(--s-2)}
.cs i{position:relative;display:block;width:var(--s-8);height:3px;border-radius:var(--s-half);background:var(--n-4);overflow:hidden}
.cs u{position:absolute;inset:0 auto 0 0;background:currentColor}
.cs b{font-weight:var(--w-r);color:var(--t-1)}
.cs,.cs.b-fair,.cs.b-weak{color:var(--t-2)}.cs.b-strong{color:var(--up)}.cs.b-risky{color:var(--down)}
.cs.is-unknown{color:var(--t-3)}.cs.is-unknown b{color:var(--t-3)}
.cd__r{display:flex;flex-direction:column;align-items:flex-end;min-width:0}
.cd__r>div{justify-content:flex-end}
.cd__r .dim{color:var(--t-2)}
.qb{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-1);height:var(--h-ctl-s);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-2);color:var(--t-1);white-space:nowrap;transition:background-color var(--d-1) var(--e-std),color var(--d-1) var(--e-std)}
.qb .ico{color:var(--a)}
.qb:hover{background:var(--a);color:var(--on-a)}.qb:hover .ico{color:var(--on-a)}
/* card quick buy (polish 24.10, owner: «кнопка покупки на главной сильно мелкая … наляписто»; GMGN pattern): a 32 button «⚡ 0.01 ◆ ETH», solid amber,
   on its own layer over the right column — hidden at rest (the card reads clean), shown on hover and on keyboard focus, always shown on touch.
   Variants kept for the owner (research/shots/v5-impl/card-*): :root[data-qb=always] — a fixed 4th column, neutral at rest; :root[data-qb=off] — none. */
.cd__q{position:absolute;top:0;bottom:0;right:0;display:flex;align-items:center;padding:0 var(--pad) 0 var(--s-8);background:linear-gradient(to right,transparent,var(--n-2) var(--s-6));opacity:0;visibility:hidden;transition:opacity var(--d-1) var(--e-std),visibility 0s linear var(--d-1)}
.cd:hover .cd__q,.cd:focus-within .cd__q,.cd.is-pv .cd__q,.cd__q:has(.is-confirm,.is-busy){opacity:1;visibility:visible;transition-delay:0s}
.cd .qb{height:var(--h-ctl);padding:0 var(--s-3);gap:var(--s-1);border-radius:var(--r-2);background:var(--a);color:var(--on-a);font-weight:var(--w-m)}
.cd .qb .ico{color:var(--on-a)}
.cd .qb:hover{background:var(--a-hover)}
.cd .qb .qb__a{margin-right:var(--s-1)}
.cd .qb.is-locked{background:var(--n-3);color:var(--t-2);font-weight:var(--w-r)}.cd .qb.is-locked .ico{color:var(--t-2)}
:root[data-qb=always] .cd{grid-template-columns:var(--tk-card) minmax(0,1fr) auto auto}
:root[data-qb=always] .cd__q{position:static;opacity:1;visibility:visible;background:none;padding:0;align-self:center}
:root[data-qb=always] .cd .qb:not(.is-confirm):not(:hover){background:var(--n-3);color:var(--t-1);font-weight:var(--w-r)}
:root[data-qb=always] .cd .qb:not(.is-confirm):not(:hover) .ico{color:var(--a)}
:root[data-qb=off] .cd__q{display:none}
@media (hover:none){.cd{height:auto;min-height:var(--h-card)}.cd__q{position:static;opacity:1;visibility:visible;background:none;padding:0;grid-column:3;justify-self:end;margin-top:var(--s-1)}
  .cd .qb:not(.is-confirm){background:var(--n-3);color:var(--t-1);font-weight:var(--w-r)}.cd .qb:not(.is-confirm) .ico{color:var(--a)}}   /* touch: neutral, a list of amber buttons shouts */
.qb.is-confirm{background:var(--a);color:var(--on-a)}.qb.is-confirm .ico{color:var(--on-a)}
.qb.is-locked,.qb.is-busy{background:var(--n-2);color:var(--t-3)}.qb.is-locked .ico,.qb.is-busy .ico{color:var(--t-3)}
.qb.is-busy{pointer-events:none}
@container (max-width:459px){.cd__l4 .cs i{display:none}.cd__l4{column-gap:var(--s-2)!important}}
/* column popover (preset / filters) */
.colpop{width:320px;z-index:var(--z-drop)}
.colpop .wm__b{gap:var(--s-3)}
.colpop .pop__x{margin-left:auto}
.flt__g{display:flex;flex-direction:column;gap:var(--s-2)}
.flt__g .t-label{display:flex;align-items:baseline;gap:var(--s-2);color:var(--t-2)}
.flt__hint{color:var(--t-3)}
.qbe{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-2) var(--pad) var(--s-3)}
.qbe__x{display:flex;justify-content:flex-end;gap:var(--s-2)}

/* ---- hover preview: 320, r8, the popover shadow; the same blocks as the sidebar ---- */
/* polish 24.10 (owner: «всплывающее окно опять же сливается… пусть дизайнер решает»): the preview is a raised layer, not another panel —
   surface n-raise (clearly above the n-1 columns and the n-2 hovered card it belongs to) + a solid 1 px amber hairline + a deep drop.
   Variants at 1728: research/shots/v5-impl/preview-var-*.png — dashed amber read as a marquee / drop zone, the neutral edge still blended;
   the solid amber line marks the preview as the layer of the hovered card at a glance. Inside, the fills step up one (n-2 → n-3, n-3 → n-4) so chips, tracks and tiles keep their contrast. */
.pv{position:fixed;z-index:var(--z-tip);width:var(--w-side);background:var(--n-raise);border-radius:var(--r-3);box-shadow:var(--shadow-raise);overflow:hidden;pointer-events:none;animation:pvin var(--d-2) var(--e-out)}
@keyframes pvin{from{opacity:0;transform:translateY(4px)}}
.pv__h{display:grid;grid-template-columns:var(--tk-pv) minmax(0,1fr) auto;column-gap:var(--s-3);align-items:center;padding:var(--s-3) var(--pad)}
.tk--pv{width:var(--tk-pv);height:var(--tk-pv);border-radius:var(--r-2)}
.pv__id{min-width:0;color:var(--t-2)}
.pv__id>div{display:flex;align-items:baseline;gap:var(--s-2);min-width:0;white-space:nowrap}
.pv__sp{padding:0 var(--pad)}
.pv__chart{display:block;width:100%;height:96px}
.pv__line{fill:none;stroke-width:1.25;vector-effect:non-scaling-stroke}
.pv__chart.up{color:var(--up)}.pv__chart.down{color:var(--down)}
.pv__line{stroke:currentColor}
.pv__nochart{display:grid;place-items:center;height:96px;color:var(--t-2)}
.pv .side__win{height:56px;margin-top:var(--s-2);box-shadow:inset 0 -1px 0 var(--line),inset 0 1px 0 var(--line)}
.pv .side__sec:last-child{box-shadow:none}
.pv .sgrid{padding:var(--s-1) 0}
.pv__f .dl dd{gap:var(--s-2)}
.pv__f .dl dd .num{color:var(--t-1)}
.pv .chip,.pv .sk{background:var(--n-3)}
.pv .sk--num,.pv .scale>i,.pv .mbar,.pv .tk{background:var(--n-4)}
.pv:is([data-stage=new],[data-stage=bonding],[data-stage=migrated]){box-shadow:0 0 0 1px var(--pv-edge),var(--shadow-drop)}.pv[data-stage=new]{--pv-edge:var(--stage-new)}.pv[data-stage=bonding]{--pv-edge:var(--stage-bond)}.pv[data-stage=migrated]{--pv-edge:var(--stage-mig)}
@media (hover:none){.pv{display:none!important}}

/* ================= floating layers ================= */
.pop{position:absolute;top:calc(100% + var(--s-1));right:0;z-index:var(--z-drop)}
.pop--l{left:0;right:auto}
.pop--up{top:auto;bottom:calc(100% + var(--s-2));right:0}
.wm{width:var(--w-menu);padding:var(--s-1) 0;background:var(--n-1);border-radius:var(--r-3);box-shadow:var(--shadow-pop)}
.wm--fixed{position:fixed;right:auto;width:min(var(--w-menu),calc(100vw - var(--s-4)))}
.wm__dom{display:flex;align-items:center;gap:var(--s-2);height:var(--h-ctl);padding:0 var(--pad);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.wm__dom .ico{color:var(--up)}
.wm__bal{display:flex;flex-direction:column;padding:var(--s-2) var(--pad) var(--s-3);box-shadow:inset 0 -1px 0 var(--line);margin-bottom:var(--s-1)}
.wm__bal .t-stat{color:var(--t-1)}
.wm__bal .dim{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0}
.wm__it,.wm__ck{display:flex;align-items:center;gap:var(--s-2);width:100%;height:var(--h-ctl);padding:0 var(--pad);color:var(--t-1);text-align:left}
.wm__it .ico,.wm__ck .ico{color:var(--t-2)}
.wm__it:hover,.wm__ck:hover{background:var(--n-2)}
.wm__it kbd,.wm__st{margin-left:auto;color:var(--t-2)}
.wm__it--danger{color:var(--down)}.wm__it--danger .ico{color:var(--down)}
.wm__h{display:flex;align-items:center;gap:var(--s-2);height:var(--h-ctl);padding:0 var(--pad);box-shadow:inset 0 -1px 0 var(--line);color:var(--t-2)}
.wm__b{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3) var(--pad)}
.wm__f{padding:var(--s-2) var(--pad);box-shadow:inset 0 1px 0 var(--line);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.wm__ck{position:relative}
.wm__ck input{position:absolute;opacity:0;pointer-events:none}
.wm__ck i{display:inline-block;width:var(--s-3);height:var(--s-half)}
.wm__ck::after{content:"";margin-left:auto;width:var(--s-3);height:var(--s-3);border-radius:var(--r-1);background:var(--n-3)}
.wm__ck:has(input:checked)::after{background:var(--a)}
.wm__ck:has(input:focus-visible){box-shadow:inset 0 0 0 1px var(--a)}
.wm__ck .num{margin-left:auto;color:var(--t-2)}
/* ⌘K drop: groups t-2, rows 32, hover n-2 */
.drop{position:absolute;left:0;right:0;top:calc(100% + var(--s-1));z-index:var(--z-drop);max-height:min(480px,70vh);overflow:auto;padding:var(--s-1) 0;background:var(--n-1);border-radius:var(--r-3);box-shadow:var(--shadow-pop)}
.drop__g{padding:var(--s-2) var(--pad) var(--s-1);color:var(--t-2)}
.drop__it{display:flex;align-items:center;gap:var(--s-2);height:var(--h-ctl);padding:0 var(--pad);color:var(--t-1);cursor:pointer;min-width:0}
.drop__it.is-on,.drop__it:hover{background:var(--n-2)}
.drop__it .nm{color:var(--t-2)}
.drop__it .num{margin-left:auto}
.drop__it .ico{color:var(--t-2)}
.drop__f{display:flex;align-items:center;gap:var(--s-3);height:var(--h-ctl);margin-top:var(--s-1);padding:0 var(--pad);box-shadow:inset 0 1px 0 var(--line);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
/* «?» shortcuts */
#helpPop{width:280px;z-index:var(--z-drop);white-space:normal}
.keys{display:flex;flex-direction:column;padding:var(--s-1) var(--pad)}
.keys__r{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);height:var(--h-ctl);color:var(--t-1);font-size:var(--fs-ui);line-height:var(--lh-ui)}
.keys__k{display:inline-flex;gap:var(--s-1)}
.keys__pages{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);padding:var(--s-2) var(--pad) var(--s-3);box-shadow:inset 0 1px 0 var(--line);font-size:var(--fs-ui);line-height:var(--lh-ui)}
.keys__pages a{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-2)}.keys__pages a:hover,.keys__pages a[aria-current]{color:var(--t-1)}
/* dialogs: deposit, withdraw, slippage, TP/SL */
.ovl{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:var(--s-4);background:var(--scrim)}
.modal{width:min(var(--w-dlg),100%);max-height:calc(100dvh - var(--s-8));display:flex;flex-direction:column;background:var(--n-1);border-radius:var(--r-3);box-shadow:var(--shadow-pop);overflow:hidden}
.modal__h{flex:none;display:flex;align-items:center;gap:var(--s-2);height:var(--s-12);padding:0 var(--s-2) 0 var(--s-4);font-weight:var(--w-m);color:var(--t-1)}
.modal__h>.ico{color:var(--t-2)}
.modal__h .btn--icon{margin-left:auto}
.modal__h>#rulesT{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.modal__b{padding:var(--s-1) var(--s-4) var(--s-4);display:flex;flex-direction:column;gap:var(--s-3);overflow:auto;min-height:0}
.modal>.tabs{flex:none;height:var(--h-bar);padding:0 var(--s-4);box-shadow:inset 0 -1px 0 var(--line);margin-bottom:var(--s-3)}
.modal .seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr}
.qr{width:var(--w-qr);height:var(--w-qr);padding:var(--s-2);border-radius:var(--r-2);background:var(--t-1);align-self:center;display:grid;place-items:center}
.qr svg{width:100%;height:100%;display:block}
.addr{display:flex;align-items:center;gap:var(--s-2);min-height:var(--h-input);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);border-radius:var(--r-2);background:var(--n-2);color:var(--t-1);word-break:break-all}
.addr code{flex:1;min-width:0;font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0}
.addr--full code{word-break:break-all}
.rules{list-style:none;display:flex;flex-direction:column}
.rules li{display:flex;align-items:center;gap:var(--s-2);min-height:var(--h-ctl);box-shadow:inset 0 -1px 0 var(--line);color:var(--t-1)}
.rules__k{display:flex;align-items:center;gap:var(--s-1);flex:1;min-width:0;overflow:hidden}
.rules__k .ico{color:var(--t-2)}
.rules__s{display:flex;align-items:center;gap:var(--s-2)}
.rules .btn--icon,.pf-act .btn--icon{width:var(--h-ctl-s)}
.wd-x{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}
#rulesT{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1) var(--s-2);min-width:0}
/* the Ask drawer */
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(var(--w-dlg),100%);z-index:var(--z-modal);background:var(--n-1);box-shadow:var(--shadow-pop);display:flex;flex-direction:column;visibility:hidden;opacity:0;transition:opacity var(--d-2) var(--e-out),visibility var(--d-2)}
.drawer.is-open{visibility:visible;opacity:1}
.drawer>.pn__h{height:var(--s-12)}
.drawer__q{padding:var(--s-3) var(--pad);color:var(--t-2);box-shadow:inset 0 -1px 0 var(--line)}
.drawer__o{flex:1;min-height:0;overflow:auto;padding:var(--s-3) var(--pad)}
.drawer>.sugg{padding:0 var(--pad) var(--s-2)}
.drawer>.ask{margin:0 var(--pad) var(--pad)}
/* toasts: bottom right, above the status bar */
.toasts{position:fixed;right:var(--s-4);bottom:calc(var(--h-status) + var(--s-4));z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--s-2);align-items:flex-end;pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);background:var(--n-1);border-radius:var(--r-3);box-shadow:var(--shadow-pop);color:var(--t-1);max-width:var(--w-dlg)}
.toast--ok>.ico{color:var(--up)}.toast--err>.ico{color:var(--down)}
.toast a{color:var(--t-1);display:inline-flex;align-items:center;gap:var(--s-1);text-decoration:underline;text-decoration-color:var(--t-3);text-underline-offset:3px}
.toast b{font-weight:var(--w-m)}
.tip{display:inline-block;padding:var(--s-1) var(--s-2);background:var(--n-1);border-radius:var(--r-1);box-shadow:var(--shadow-pop);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-1);white-space:nowrap}

/* ================= pages: portfolio, documents ================= */
.pg{display:flex;flex-direction:column;min-height:0;background:var(--n-1);border-radius:var(--r-2);overflow:hidden}
.pg__h{flex:none;display:flex;align-items:center;gap:var(--s-4);min-height:var(--h-inst);padding:var(--s-3) var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.pg__h h1{font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1)}
.pg__sub{display:flex;align-items:center;gap:var(--s-2);color:var(--t-2);flex-wrap:wrap}
.pg__x{margin-left:auto;display:flex;gap:var(--s-2)}
.pg__b{flex:1;min-height:0;overflow:auto;container-type:inline-size}
.pg .pn__h{flex:none}
.pg__form{display:flex;flex-direction:column;gap:var(--s-2);width:min(var(--w-dlg),100%)}
.pg__form .fld input{text-align:left}
.pg__foot{padding:var(--s-3) var(--pad);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.pg__links{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.pg .kvs{gap:var(--s-3) var(--s-8)}
.tbl--pf{--cols:minmax(200px,2fr) minmax(80px,1fr) minmax(80px,1fr) minmax(96px,1fr) minmax(160px,1.2fr) 112px}
.tbl--pf-ro{--cols:minmax(200px,2fr) minmax(80px,1fr) minmax(80px,1fr) minmax(96px,1fr) minmax(160px,1.2fr)}
.tbl--hist{--cols:48px 48px minmax(180px,2fr) minmax(80px,1fr) minmax(160px,1.2fr) minmax(80px,1fr) var(--h-ctl-s)}
.tbl--pf .row,.tbl--pf-ro .row,.tbl--hist .row{height:var(--h-input)}
.tbl--hist .bar.num{justify-content:flex-end}
.pnl{display:flex;align-items:baseline;justify-content:flex-end;gap:var(--s-2);white-space:nowrap}
.pnl small{font-size:var(--fs-ui)}
.pf-act{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2)}
.closed>summary{display:flex;align-items:center;gap:var(--s-2);height:var(--h-ctl);padding:0 var(--pad);color:var(--t-2);box-shadow:inset 0 -1px 0 var(--line)}
@container (max-width:839px){.tbl--pf{--cols:minmax(130px,1fr) 80px 128px 112px}.tbl--pf-ro{--cols:minmax(130px,1fr) 80px 128px}.tbl--hist{--cols:40px 40px minmax(96px,1fr) 72px 64px}.c-hide{display:none!important}}
.doc{display:grid;grid-template-columns:var(--w-doc-nav) minmax(0,var(--w-read));justify-content:center;align-content:start;gap:var(--s-8);padding:var(--s-6) var(--s-4)}
.doc__nav{display:flex;flex-direction:column;gap:var(--s-1);position:sticky;top:0;align-self:start}
.doc__nav .nav__a{height:var(--h-ctl)}
.doc__nav .nav__a.is-on{color:var(--t-1);background:var(--nav-on)}
.doc__nav .nav__a.is-on .ico{color:var(--a)}
.doc__a{color:var(--t-1);text-wrap:pretty}
.doc__a .doc__h1{margin-bottom:var(--s-4);font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l)}
.doc__a h2{margin:var(--s-8) 0 var(--s-3);font-weight:var(--w-m)}
.doc__a h3,.doc__a h4{margin:var(--s-6) 0 var(--s-2);font-weight:var(--w-m)}
.doc__a p,.doc__a ul,.doc__a ol,.doc__a blockquote,.doc__tw{margin:0 0 var(--s-3);color:var(--t-2)}
.doc__a ul,.doc__a ol{padding-left:var(--s-5)}
.doc__a ul{list-style:disc}.doc__a ol{list-style:decimal}
.doc__a li{margin-bottom:var(--s-1)}
.doc__a b{font-weight:var(--w-m);color:var(--t-1)}
.doc__a a{color:var(--t-1);text-decoration:underline;text-decoration-color:var(--t-3);text-underline-offset:3px}
.doc__a code{padding:0 var(--s-1);border-radius:var(--r-1);background:var(--n-2);font-family:var(--f-mono);font-size:var(--fs-12);letter-spacing:0;color:var(--t-1)}
.doc__a blockquote{padding-left:var(--s-3);box-shadow:inset 2px 0 0 var(--line-strong)}
.doc__a hr{margin:var(--s-6) 0;border:0;border-top:1px solid var(--line)}
.doc__tw{overflow-x:auto}
.doc__t{width:100%;border-collapse:collapse}
.doc__t th,.doc__t td{padding:var(--s-1) var(--s-3) var(--s-1) 0;text-align:left;vertical-align:top;color:var(--t-1)}
.doc__t thead th{font-weight:var(--w-r);color:var(--t-2)}
.doc__t tbody th{font-weight:var(--w-m)}
mark.gap{padding:0 var(--s-1);border-radius:var(--r-1);background:var(--n-2);color:var(--t-1)}
.doc__foot{margin-top:var(--s-8);padding-top:var(--s-3);box-shadow:inset 0 1px 0 var(--line);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.p404{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3);padding:var(--s-10) var(--s-6)}
.p404 h1{font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1)}
.p404 p{color:var(--t-2)}
.p404 .btn{margin-top:var(--s-2)}

/* bottom nav and the order bar: phone only */
.bnav{display:none;position:fixed;left:0;right:0;bottom:0;grid-template-columns:repeat(4,1fr);height:calc(var(--h-bnav) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--n-0);box-shadow:inset 0 1px 0 var(--line);z-index:var(--z-top)}
.bnav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-1);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.bnav a.is-on{color:var(--t-1)}
.bnav a.is-on .ico,#bnMore.is-on .ico{color:var(--a)}
.tkt-bar{display:none;position:fixed;left:0;right:0;bottom:calc(var(--h-bnav) + env(safe-area-inset-bottom));grid-template-columns:1fr 1fr;gap:var(--s-2);padding:var(--s-2) var(--s-4);background:var(--n-0);box-shadow:inset 0 1px 0 var(--line);z-index:var(--z-top)}
.tkt-bar .btn{height:var(--h-touch)}

/* ================= below 1440 / tablet ================= */
@media (max-width:1439px){.th .kv--p1,.th .kv--p2{display:none}}
@media (max-width:1023px){
  .l-board{display:flex;flex-direction:column;gap:var(--gutter)}
  .btabs{display:flex;flex:none;gap:var(--s-6);height:var(--h-bar);padding:0 var(--pad);background:var(--n-1);border-radius:var(--r-2)}
  .btabs button{position:relative;display:inline-flex;align-items:center;gap:var(--s-2);font-size:var(--fs-14);line-height:var(--lh-14);color:var(--t-2)}
  .btabs button .num{color:var(--t-2)}
  .btabs button.is-on{color:var(--t-1)}
  .btabs{box-shadow:inset 0 0 0 1px var(--line-col)}
  .btabs button.is-on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:var(--s-half);background:var(--stage,var(--a))}   /* board G: the active tab carries its column's stage colour */
  .btabs [data-col=new]{--stage:var(--stage-new)}.btabs [data-col=bonding]{--stage:var(--stage-bond)}.btabs [data-col=migrated]{--stage:var(--stage-mig)}
  .l-board .col{flex:1;min-height:0}
  .l-board .col .col__t{display:none}
  body:not([data-col=new]) #col-new,body:not([data-col=bonding]) #col-bonding,body:not([data-col=migrated]) #col-migrated{display:none}
  .l-token{grid-template-columns:minmax(0,1fr) 320px}
}
@media (min-width:768px) and (max-width:1279px){.top .cmd kbd{display:none}}

/* ================= phone ================= */
@media (max-width:767px){
  body{overflow:auto}
  .app{height:auto;min-height:100dvh;grid-template-rows:var(--h-nav) auto;padding-bottom:calc(var(--h-bnav) + env(safe-area-inset-bottom))}
  .top{grid-template-columns:auto minmax(0,1fr);padding:0 var(--s-4)}
  .top .nav,.top .cmdw,.status{display:none}
  body.cmd-open .top .cmdw{display:flex;position:fixed;left:0;right:0;top:0;height:var(--h-nav);padding:var(--s-3) var(--s-4);background:var(--n-0);z-index:var(--z-modal)}
  .bnav{display:grid}
  body[data-page=token] .tkt-bar{display:grid}
  body[data-page=token] .app{padding-bottom:calc(var(--h-bnav) + 60px + env(safe-area-inset-bottom))}
  .main{padding:0 var(--gutter) var(--gutter)}
  .l-token{display:flex;flex-direction:column;gap:var(--gutter)}
  .th{flex-wrap:wrap;height:auto;row-gap:var(--s-3);column-gap:var(--s-6);padding:var(--s-3) var(--pad)}
  .th__id{flex:1 1 100%;padding-right:0}
  .th__kv{flex:1 1 100%;flex-wrap:wrap;gap:var(--s-3) var(--s-6)}
  .th .kv--p1,.th .kv--p2,.th .kv--p3{display:flex}
  .th__nb{position:absolute;top:var(--s-3);right:var(--s-2)}
  .th__nb .th__ca,.th__nb [data-ext],.th__nb a.ib{display:none}
  .th__id{padding-right:calc(2 * var(--h-touch))}
  .th__nm{display:none}
  .pn--chart{min-height:360px}
  .pn--act{min-height:420px}
  .ctb .btn--ghost>span{display:none}
  .side{overflow:visible}
  .g4,.sgrid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .l-board{display:block}
  .btabs{position:sticky;top:0;z-index:var(--z-sticky);overflow-x:auto;scrollbar-width:none;margin-bottom:var(--gutter);height:var(--h-touch)}   /* 44 = the buttons' touch height: at 40 the scroller clipped the active rule */
  .btabs button{flex:none;min-height:var(--h-touch)}
  .l-board .col{display:flex}
  .col__b{overflow:visible}
  .toasts{left:var(--s-3);right:var(--s-3);bottom:calc(var(--h-bnav) + env(safe-area-inset-bottom) + var(--s-3));align-items:stretch}
  body[data-page=token] .toasts{bottom:calc(var(--h-bnav) + 60px + env(safe-area-inset-bottom) + var(--s-3))}
  .drawer{width:100%}
  .pg__h{flex-wrap:wrap}.pg__x{margin-left:0}
  .kvs{display:grid;grid-template-columns:1fr 1fr}
  .kvs .kv{min-width:0}.kvs .kv__k{white-space:normal}
  .doc{grid-template-columns:minmax(0,1fr);gap:var(--s-4);padding:var(--s-4)}
  .doc__nav{position:static;flex-direction:row;flex-wrap:wrap}
  .tbl--trades{--cols:40px 40px minmax(56px,1fr) minmax(108px,1.4fr) var(--h-touch)}
  .tbl--trades .c-eth,.tbl--trades .c-amt,.tbl--trades .c-px{display:none}
  .tbl--trades .c-wal{padding-left:0}
  .tbl--holders{--cols:24px minmax(108px,1fr) 72px}.tbl--holders .c-lbl,.tbl--holders .c-tx{display:none}.tbl--holders .share i{display:none}
  .tbl--traders{--cols:24px minmax(108px,1fr) 72px}.tbl--traders .c-hide,.tbl--traders .c-tx,.tbl--traders .c-bought{display:none}
  .tbl--snipers{--cols:32px minmax(108px,1fr) 72px}.tbl--snipers .c-amt,.tbl--snipers .c-tx{display:none}
  .tbl--bundles{--cols:24px minmax(108px,1fr)}.tbl--bundles .c-tx{display:none}
  .tbl--pf{--cols:minmax(104px,1fr) 64px 72px 64px}.tbl--pf-ro{--cols:minmax(104px,1fr) 64px 72px}
  .tbl__h,.row{column-gap:var(--s-2)}
  .pf-act [data-pf-rules],.pnl small{display:none}
  /* touch targets ≥ 44 */
  .btn,.seg button,.tabs button,.qb,.logo,.nav__a,.ib,button.chip,.drop__it,.wm__it,.wm__ck,.closed>summary,.tf button,.tog button,.side__win button,.tkt__i,.tkt__det>summary,.side__more,.side__ai>summary,.col__qb,.col__ib,.wal__c,.c-tx,.th__ca,.cd__b,.status__q,.fld,.ask,.pg__links a,.wal__a,.doc__a a{min-height:var(--h-touch)}
  .btn--icon,.ib,.wal__c,.c-tx,.tkt__i,.col__ib,.tog button,button.chip,.pg__links a,.tf button,.tabs button,#indBtn,.pf-act .btn,.tbl__h>.c-tx,.fld .btn{min-width:var(--h-touch)}
  .pg__sub a{display:inline-flex;align-items:center;min-height:var(--h-touch)}
  .cd__b{display:none}
  .col__h{height:auto;min-height:var(--h-bar);padding-block:var(--s-1)}
  .ctb{flex-wrap:wrap;height:auto;row-gap:0;padding:var(--s-1) var(--s-2) var(--s-1) var(--pad)}
  .ctb .vsep{display:none}
  .ctb__r{margin-left:0}
  .chart__ohlc{display:none}
  .wal__a,.pg__links a,.doc__a a{display:inline-flex;align-items:center}
  button.chip{justify-content:center}
  .cd{height:auto;min-height:var(--h-card);grid-template-rows:auto}
  .cd .qb{min-width:var(--h-touch)}
}

/* reserved heights: the sidebar's first paint already has its final size (CLS) */
#tkFlow{min-height:188px}
#tkSec{min-height:calc(2 * (var(--s-2) * 2 + var(--lh-ui) * 2))}
#tbal{min-height:var(--h-kv)}
#aiScore{min-height:calc(var(--h-ctl-s) + var(--s-2) + var(--s-1) + var(--s-1) + var(--lh-12))}
#aiFac:empty{min-height:calc(var(--s-2) + 3 * var(--h-kv))}
#tkPool{min-height:calc(7 * var(--h-kv))}
#route{min-height:calc(4 * var(--h-kv))}
#route.qstale dd:nth-of-type(-n+3),#routeX.qstale dd{opacity:.4;transition:opacity .12s}   /* 26.10 (audit S2): numbers priced for the previous amount */
/* weights 400/500 only: <b>/<strong> are 500, never bold */
b,strong{font-weight:var(--w-m)}
/* compact score in lists (⌘K, tables): the number in its band colour */
.sm{display:inline-flex;align-items:center;gap:var(--s-2);white-space:nowrap}
.sm b{font-weight:var(--w-r);color:var(--t-1);min-width:2ch;text-align:right}
.sm--strong b{color:var(--up)}.sm--risky b{color:var(--down)}.sm.is-unknown b{color:var(--t-3)}
.sm__t{display:none}
.pg__b>.note,#tabBody>.note{margin:var(--s-2) var(--pad) 0}

/* ================= 25.10: header search results, the new pages (Trending, Tracker, Ask AI, Docs, Extension; the leaderboard was cancelled by the owner the same day) =================
   Refs (Refero): search drop with column heads — Kraken select market c7c156f4, Stocktwits search 47c6ce10; ranked market tables — Kraken markets
   692dc0f8 / 0bfeff29, Stocktwits trending 7e48ec24, Coinbase trending window filter 7c50574f; tracker — Stocktwits watchlist rail 20e72451 (list left,
   table right), Family saved wallets 120d0b42 (name + short address rows, paste field), Kraken empty ledger 421b82f6 (one line + one action);
   Ask — Claude 4e0e28f9 (empty: title, composer, example prompts),
   n8n 9806e063 / Meta AI d0b29c42 (thread: stacked turns, composer at the bottom); Extension — Savee 7217b42a (dark product page: claim + demo +
   install button), Wiza 2db227a4 (Add to Chrome + trust points), Loom 08ec0c2d (three numbered install steps). */

/* search drop: token rows 40 on one grid with column heads (icon · ticker / name · MC · change · stage) */
.drop{padding:var(--s-1) 0 0}
.drop__g{display:grid;grid-template-columns:var(--tk-m) minmax(0,1fr) 72px 64px 80px;column-gap:var(--s-3);align-items:center;height:var(--h-ctl);padding:0 var(--pad);color:var(--t-2)}
.drop__g>span:first-child{grid-column:1/3}
.drop__g>.num{text-align:right}
.drop__g--a{display:flex}
.drop__it--tok{display:grid;grid-template-columns:var(--tk-m) minmax(0,1fr) 72px 64px 80px;column-gap:var(--s-3);height:var(--h-input)}
.drop__it--tok .drop__id{display:flex;align-items:baseline;gap:var(--s-2);min-width:0}
.drop__it--tok .num{margin-left:0;text-align:right}
.drop__it--tok .chip{justify-self:end;cursor:inherit}
.drop__it--tok .chip:hover{color:var(--t-2)}
.drop__empty{display:flex;align-items:center;gap:var(--s-2);height:var(--h-input);padding:0 var(--pad);color:var(--t-2)}

/* pages: one panel by default; Tracker is two panels on the base (list 320 + feed) */
#scrPage.pg--split{display:grid;grid-template-columns:var(--w-side) minmax(0,1fr);gap:var(--gutter);background:none;border-radius:0;overflow:visible}
.pg__bar{flex:none;display:flex;align-items:center;gap:var(--s-6);height:var(--h-bar);padding:0 var(--pad);box-shadow:inset 0 -1px 0 var(--line);min-width:0}
.pg__bar .tabs{height:100%}
.pg__bar .seg{flex:none}
.pg__bar .pg__x{display:flex;align-items:center;gap:var(--s-3);margin-left:auto}
.pg__note{flex:none;display:flex;align-items:center;gap:var(--s-2);min-height:var(--h-ctl);padding:var(--s-2) var(--pad);box-shadow:inset 0 -1px 0 var(--line);color:var(--t-2)}
.pg__note .ico{color:var(--t-2)}
.stub{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-chip);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-2);color:var(--t-2);font-size:var(--fs-12);line-height:var(--lh-12);white-space:nowrap}
.tgl{display:inline-flex;align-items:center;gap:var(--s-2);height:var(--h-ctl);color:var(--t-2);cursor:pointer;white-space:nowrap}
.tgl:hover{color:var(--t-1)}
.tgl input{position:absolute;opacity:0;pointer-events:none}
.tgl i{position:relative;width:28px;height:var(--s-4);border-radius:var(--s-2);background:var(--n-3);transition:background-color var(--d-1) var(--e-std)}
.tgl i::after{content:"";position:absolute;top:var(--s-half);left:var(--s-half);width:var(--s-3);height:var(--s-3);border-radius:var(--r-round);background:var(--t-2);transition:transform var(--d-2) var(--e-out),background-color var(--d-1) var(--e-std)}
.tgl:has(input:checked){color:var(--t-1)}
.tgl:has(input:checked) i{background:var(--a)}.tgl:has(input:checked) i::after{transform:translateX(var(--s-3));background:var(--on-a)}
.tgl:has(input:focus-visible) i{box-shadow:var(--focus)}

/* token tables (Trending, Tracker feed): rows 40, numbers right under right heads, hover n-2; the quick buy sits on the row's right edge */
.tt .row{height:var(--h-input);cursor:pointer}
.tt .row.is-off{cursor:default}
.tt .c-rank{color:var(--t-2)}
.tt .c-tok{gap:var(--s-2)}
.tt .c-tok .nm{color:var(--t-2);min-width:0}
.tt .row .qb{height:var(--h-ctl);padding:0 var(--s-3);border-radius:var(--r-2);background:var(--a);color:var(--on-a);font-weight:var(--w-m);visibility:hidden;justify-self:stretch}
.tt .c-sc{display:flex;justify-content:flex-end}
.tt .row .qb .ico{color:var(--on-a)}.tt .row .qb:hover{background:var(--a-hover)}
.tt .row .qb .qb__a{margin-right:var(--s-1)}
.tt .row:hover .qb,.tt .row:focus-within .qb,.tt .row .qb.is-confirm{visibility:visible}
@media (hover:none){.tt .row .qb{visibility:visible;background:var(--n-3);color:var(--t-1);font-weight:var(--w-r)}.tt .row .qb .ico{color:var(--a)}}
.tt .row .qb.is-confirm{background:var(--a);color:var(--on-a)}
.tbl--trend{--cols:24px minmax(180px,2fr) minmax(80px,1fr) minmax(64px,.8fr) minmax(80px,1fr) minmax(136px,1.3fr) minmax(80px,1fr) minmax(64px,.8fr) 72px 120px}
.tbl--feed{--cols:56px minmax(120px,1fr) 48px minmax(160px,1.5fr) minmax(96px,1fr) minmax(80px,.9fr) minmax(80px,.9fr) var(--h-ctl-s)}
/* buys / sells: one 4 px two-part bar (green | red by count, gap 2) and the counts — the flow bar of the token page (Stocktwits 53e0b955) */
.bsr{display:flex;align-items:center;justify-content:flex-end;gap:var(--s-2);white-space:nowrap}
.bsr i{display:flex;gap:var(--s-half);width:var(--s-12);height:var(--s-1);flex:none}
.bsr i b{display:block;height:100%;border-radius:1px;background:var(--up)}.bsr i b+b{background:var(--down)}
.bsr i.is-none{background:var(--n-3);border-radius:1px}
.bsr .num{min-width:9ch;text-align:right}
.tt .wal{gap:var(--s-2)}
.wal__l{color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}

/* Tracker: the wallet rail (add field, rows 48: tile · label / address · remove) and the feed panel (summary + live table) */
.trk{display:flex;flex-direction:column;min-height:0}
.trk__add{flex:none;display:flex;flex-direction:column;gap:var(--s-2);padding:var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.trk__add .fld input{text-align:left}
.trk__add .fld__msg:empty{display:none}
.trk__row2{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-2)}
.trk__list{flex:1;min-height:0;overflow:auto;padding:var(--s-1) 0;scrollbar-width:thin;scrollbar-color:var(--n-4) transparent}
.wr{display:grid;grid-template-columns:var(--tk-l) minmax(0,1fr) var(--h-ctl-s);column-gap:var(--s-3);align-items:center;height:var(--s-12);padding:0 var(--pad);cursor:pointer;transition:background-color var(--d-1) var(--e-std)}
.wr:hover{background:var(--n-2)}
.wr.is-on{background:var(--n-2);box-shadow:inset 2px 0 0 var(--a)}
.wr__t{display:grid;place-items:center;width:var(--tk-l);height:var(--tk-l);border-radius:var(--r-2);background:var(--n-3);color:var(--t-2);font-size:var(--fs-12);line-height:var(--lh-12)}
.wr__n{display:flex;flex-direction:column;min-width:0}
.wr__n b{font-weight:var(--w-r);color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wr__n>span{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0;color:var(--t-2)}
.wr .wal__c{visibility:hidden}.wr:hover .wal__c,.wr:focus-within .wal__c{visibility:visible}
@media (hover:none){.wr .wal__c{visibility:visible}}
.wr--all .wr__t{color:var(--t-1)}
.trk__foot{flex:none;padding:var(--s-2) var(--pad) var(--s-3);box-shadow:inset 0 1px 0 var(--line);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.trk__sum{flex:none;display:flex;align-items:center;gap:var(--s-8);min-height:var(--h-inst);padding:var(--s-3) var(--pad);box-shadow:inset 0 -1px 0 var(--line);overflow-x:auto;scrollbar-width:none}
.trk__sum .kv{flex:none}
.trk__who{display:flex;align-items:center;gap:var(--s-3);flex:none}
.trk__who .wr__n b{font-weight:var(--w-m)}
.trk__sum .pg__x{margin-left:auto;flex:none}
.live-dot{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-2)}
.empty--big{flex:1;gap:var(--s-3);padding:var(--s-10) var(--s-6)}
.empty--big h2{font-weight:var(--w-m);color:var(--t-1)}
.empty--big p{max-width:44ch}
.empty__a{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2);margin-top:var(--s-1)}
.empty__ico{display:grid;place-items:center;width:var(--s-10);height:var(--s-10);border-radius:var(--r-2);background:var(--n-2)}
.empty__ico .ico{color:var(--t-1)}

/* Ask AI: one column 72ch inside the panel; turns stacked, the user's in an n-2 block, Sentro's as prose; composer pinned to the bottom */
.chat{flex:1;min-height:0;display:flex;flex-direction:column}
.chat__o{flex:1;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--n-4) transparent}
.chat__col{width:min(72ch,100%);margin:0 auto;padding:var(--s-6) var(--s-4);display:flex;flex-direction:column;gap:var(--s-6)}
.chat__hi{display:flex;flex-direction:column;align-items:center;gap:var(--s-3);padding-top:var(--s-12);text-align:center}
.chat__hi h1{font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1)}
.chat__hi p{color:var(--t-2);max-width:52ch}
.turn{display:flex;flex-direction:column;gap:var(--s-2)}
.turn--u{align-items:flex-end}
.turn--u .turn__b{max-width:85%;padding:var(--s-2) var(--s-3);border-radius:var(--r-2);background:var(--n-2);color:var(--t-1);white-space:pre-wrap;text-wrap:pretty}
.turn__h{display:flex;align-items:center;gap:var(--s-2);color:var(--t-2)}
.turn__h{min-height:var(--s-8)}
.turn__b.prose{color:var(--t-1)}
.chat__in{flex:none;width:min(72ch,100%);margin:0 auto;padding:0 var(--s-4) var(--s-3);display:flex;flex-direction:column;gap:var(--s-2)}
.chat__in .sugg{justify-content:flex-start}
.chat__ctx{display:flex;align-items:center;gap:var(--s-2);color:var(--t-2)}
.chat__ctx .chip{cursor:default;color:var(--t-1)}
.chat__ctx .chip button{display:inline-grid;place-items:center;color:var(--t-2)}.chat__ctx .chip button:hover{color:var(--t-1)}
.chat__f{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.chat .ask{height:var(--s-12)}
.chat .ask button{display:inline-grid;place-items:center;width:var(--h-ctl);height:var(--h-ctl);border-radius:var(--r-2);background:var(--a);color:var(--on-a)}
.chat .ask button:disabled{background:var(--n-3);color:var(--t-3);cursor:not-allowed}

/* Docs: the doc nav gets the guide's sections under «Guide» and the extension page */
.doc__nav .doc__sub{display:flex;flex-direction:column;margin:0 0 var(--s-2) var(--s-3);box-shadow:inset 1px 0 0 var(--line)}
.doc__nav .doc__sub a{display:flex;align-items:center;min-height:var(--h-ctl-s);padding:var(--s-half) var(--s-3);color:var(--t-2)}
.doc__nav .doc__sub a:hover{color:var(--t-1)}
.doc__nav .doc__g{padding:var(--s-3) var(--s-2) var(--s-1);color:var(--t-3);font-size:var(--fs-12);line-height:var(--lh-12)}

/* Extension: a product page inside the panel — claim + install on the left, the real card on the right; what it shows (3); install (3 steps) */
.xp{width:min(1040px,100%);margin:0 auto;padding:var(--s-10) var(--s-6) var(--s-8);display:flex;flex-direction:column;gap:var(--s-12)}
.xp__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-10);align-items:center}
.xp__l{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-4)}
.xp__l h1{font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1)}
.xp__l p{color:var(--t-2);max-width:48ch;text-wrap:pretty}
.xp__cta{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}
.xp__trust{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-6);color:var(--t-2)}
.xp__trust span{display:inline-flex;align-items:center;gap:var(--s-2)}
.xp__trust .ico{color:var(--t-2)}
.xp__shot{position:relative;border-radius:var(--r-3);background:var(--n-0);box-shadow:0 0 0 1px var(--line-strong);overflow:hidden;aspect-ratio:656/560}
.xp__shot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.xp__h2{font-weight:var(--w-m);color:var(--t-1);margin-bottom:var(--s-4)}
.xp__g3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
.xp__it{display:flex;flex-direction:column;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-2);background:var(--n-2)}
.xp__it h3{font-weight:var(--w-m);color:var(--t-1)}
.xp__it p{color:var(--t-2);text-wrap:pretty}
.xp__demo{display:flex;align-items:center;gap:var(--s-2);height:var(--s-12);padding:0 var(--s-3);border-radius:var(--r-2);background:var(--n-1);color:var(--t-2);min-width:0}
.xp__demo .code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.xchip{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-chip);padding:0 var(--s-2);border-radius:var(--r-1);background:var(--n-3);color:var(--t-1);white-space:nowrap;flex:none}
.xchip .down{color:var(--down)}
.xp__steps{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);counter-reset:st}
.xp__steps li{display:flex;gap:var(--s-3);color:var(--t-2);counter-increment:st}
.xp__steps li::before{content:counter(st);flex:none;display:grid;place-items:center;width:var(--s-6);height:var(--s-6);border-radius:var(--r-1);background:var(--n-2);color:var(--t-1);font-size:var(--fs-12);line-height:var(--lh-12)}
.xp__steps b{display:block;color:var(--t-1);font-weight:var(--w-m);margin-bottom:var(--s-1)}
.xp__fine{color:var(--t-2);font-size:var(--fs-12);line-height:var(--lh-12);max-width:72ch}

/* phone: bottom nav of 5 (Board · Trending · Tracker · Portfolio · More), the rest in a sheet; search is a button in the top bar */
.top__search{display:none}
.bsheet{position:fixed;left:var(--s-2);right:var(--s-2);bottom:calc(var(--h-bnav) + env(safe-area-inset-bottom) + var(--s-2));width:auto;z-index:var(--z-drop)}
.bnav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-1);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.bnav button.is-on,.bnav button[aria-expanded=true]{color:var(--t-1)}
.bsheet .wm__it.is-on{color:var(--t-1);box-shadow:inset 2px 0 0 var(--a)}
@media (max-width:1279px){.tbl--trend{--cols:24px minmax(160px,2fr) minmax(80px,1fr) minmax(64px,.8fr) minmax(80px,1fr) minmax(120px,1.2fr) minmax(80px,1fr) 72px 112px}.tbl--trend .c-hold{display:none}}
@media (max-width:1023px){
  #scrPage.pg--split{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
  .xp__hero{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:767px){
  .bnav{grid-template-columns:repeat(5,1fr)}
  .top__search{display:inline-grid;min-width:var(--h-touch);min-height:var(--h-touch)}
  #scrPage.pg--split{display:flex;flex-direction:column}
  .pg__bar{height:auto;min-height:var(--h-touch);flex-wrap:wrap;row-gap:0;padding-block:var(--s-1)}
  .pg__bar .tabs{height:var(--h-touch)}
  .pg__bar .pg__x{margin-left:0}
  .tbl--trend{--cols:minmax(120px,1fr) 80px 64px}
  .tbl--trend .c-rank,.tbl--trend .c-px,.tbl--trend .c-vol,.tbl--trend .c-bs,.tbl--trend .c-hold,.tbl--trend .c-sc,.tbl--trend .c-qb{display:none}
  .tbl--feed{--cols:40px minmax(120px,1fr) 72px}.tbl--feed .c-wal,.tbl--feed .c-side,.tbl--feed .c-amt,.tbl--feed .c-mc,.tbl--feed .c-tx{display:none}
  .tt .row{height:var(--s-12)}
  .trk__list{max-height:none;overflow:visible}
  .trk__sum{flex-wrap:wrap;gap:var(--s-3) var(--s-6)}
  .chat__col{padding:var(--s-4) var(--s-3)}
  .chat__in{padding:0 var(--s-3) var(--s-3)}
  .chat__hi{padding-top:var(--s-6)}
  .xp{padding:var(--s-6) var(--s-4);gap:var(--s-8)}
  .xp__g3,.xp__steps{grid-template-columns:minmax(0,1fr)}
  .drop__g,.drop__it--tok{grid-template-columns:var(--tk-m) minmax(0,1fr) 72px 64px}
  .drop__g>:last-child,.drop__it--tok>:last-child{display:none}
  .wr{height:var(--s-12)}
  .bnav button{min-height:var(--h-touch)}
  .tgl{min-height:var(--h-touch)}
  .wr .wal__c,.chat .ask button{min-width:var(--h-touch);min-height:var(--h-touch)}
}
.empty__hint{display:flex;align-items:center;gap:var(--s-2);margin-top:var(--s-2);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);max-width:56ch;text-align:left}
.empty--big .empty__hint{max-width:56ch}
.empty .btn .ico{color:inherit}
.wr__n>.wr__s{font-family:var(--f);font-size:var(--fs-ui);line-height:var(--lh-ui);letter-spacing:var(--tr)}
.chat__f{flex-wrap:wrap;row-gap:var(--s-1)}
@media (max-width:767px){.chat__f .via .ell,.chat__f .via .mk:first-child{display:none}}
@media (max-width:767px){
  .pg__bar .seg button{min-width:var(--h-touch)}
  .doc__nav .doc__sub{display:none}
  .wr{grid-template-columns:var(--tk-l) minmax(0,1fr) var(--h-touch)}
}
.chat .ask input{align-self:stretch}
.trk__best{display:inline-flex;align-items:center;gap:var(--s-1)}
/* the tracker summary drops the least-needed facts as the feed panel narrows (1280: Trades 24h and First seen go; the strip never scrolls) */
#tkMain{container-type:inline-size}
@container (max-width:1199px){.trk__sum{gap:var(--s-6)}.trk__sum .kv--tk-s-t24,.trk__sum .kv--tk-s-first{display:none}}
@container (max-width:899px){.trk__sum .kv--tk-s-best{display:none}}
@media (max-width:767px){.trk__best{min-height:var(--h-touch)}}

/* ---- chart events (owner 25.10): X posts, burns, dev trades over the plot — js/chartev.js.
   Cluster + count + hover list: Luma map 67058fb3; post card: Typefully 4f93e885 + Threads 568e9deb; rows: Mercury 33237f10; owner's Motion shots
   (research/ref-motion/x-post-card.png; burn chips: dark round chip, red flame, grey count). v5: one shadow (--shadow-pop), r8 floating layer, 12/13 type. */
.chart__ev{position:absolute;left:0;top:0;z-index:var(--z-sticky);pointer-events:none}
.ev{position:absolute;left:0;top:0;display:grid;place-items:center;width:var(--s-6);height:var(--s-6);padding:0;border-radius:var(--r-round);pointer-events:auto;cursor:pointer;color:var(--t-1);will-change:transform;transition:filter var(--d-1) var(--e-std)}
.ev__c{display:grid;place-items:center;width:100%;height:100%;border-radius:var(--r-round);overflow:hidden;background:var(--n-2);box-shadow:0 0 0 1px var(--n-1),0 0 0 2px var(--line-strong);transition:box-shadow var(--d-1) var(--e-std)}
.ev:hover .ev__c,.ev[aria-expanded] .ev__c{box-shadow:0 0 0 1px var(--n-1),0 0 0 2px var(--t-2)}
.ev:focus-visible{outline:none}.ev:focus-visible .ev__c{box-shadow:var(--focus)}
.ev__c img{width:100%;height:100%;object-fit:cover;display:block}
.ev__ini{font-size:var(--fs-12);line-height:var(--lh-12);font-weight:var(--w-m);color:var(--t-2)}
.ev--x.is-promo .ev__c{box-shadow:0 0 0 1px var(--n-1),0 0 0 2px var(--down)}
.ev__x{position:absolute;right:-2px;bottom:-2px;display:grid;place-items:center;width:var(--s-3);height:var(--s-3);border-radius:var(--r-round);background:var(--n-0);color:var(--t-1);box-shadow:0 0 0 1px var(--n-1)}
.ev__x .ico{width:var(--s-2);height:var(--s-2)}
.ev__n{position:absolute;top:-6px;right:-10px;min-width:var(--s-4);height:var(--s-4);padding:0 var(--s-1);border-radius:var(--s-2);background:var(--n-4);color:var(--t-1);font-size:var(--fs-12);line-height:var(--lh-12);font-variant-numeric:tabular-nums;text-align:center;box-shadow:0 0 0 1px var(--n-1)}
.ev--burn .ev__c{background:var(--n-0);color:var(--down)}
.ev--burn .ev__c .ico{width:var(--ico);height:var(--ico)}
.ev--dev{width:var(--h-chip);height:var(--h-chip)}
.ev--dev .ev__c{font-size:var(--fs-12);line-height:var(--lh-12);font-weight:var(--w-m);background:var(--n-1)}
.ev--dev.is-buy .ev__c{color:var(--up);box-shadow:0 0 0 1px var(--n-1),0 0 0 2px var(--up-vol)}
.ev--dev.is-sell .ev__c{color:var(--down);box-shadow:0 0 0 1px var(--n-1),0 0 0 2px var(--down-vol)}
.ev--dev.is-buy:hover .ev__c,.ev--dev.is-buy[aria-expanded] .ev__c{box-shadow:0 0 0 1px var(--n-1),0 0 0 2px var(--up)}
.ev--dev.is-sell:hover .ev__c,.ev--dev.is-sell[aria-expanded] .ev__c{box-shadow:0 0 0 1px var(--n-1),0 0 0 2px var(--down)}
@media (max-width:767px){                                   /* 44 touch targets, the chip keeps its size in the middle */
  .ev,.ev--dev{width:var(--h-touch);height:var(--h-touch)}
  .ev .ev__c{width:var(--s-6);height:var(--s-6)}.ev--dev .ev__c{width:var(--h-chip);height:var(--h-chip)}
  .ev__x{right:8px;bottom:8px}.ev__n{top:4px;right:0}
}
/* the card: one fixed layer, placed by js under/over the marker and kept on screen */
.evtip{position:fixed;left:0;top:0;z-index:var(--z-tip);width:var(--w-side);max-width:calc(100vw - var(--s-4));background:var(--n-1);border-radius:var(--r-3);box-shadow:var(--shadow-pop);overflow:hidden}
.evtip--rows{width:auto;min-width:var(--w-menu)}
.evtip__l{max-height:min(360px,calc(100vh - var(--s-8)));overflow-y:auto;overscroll-behavior:contain;padding:var(--s-1) 0}
.evp{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3) var(--pad);color:var(--t-1)}
a.evp:hover{background:var(--n-2)}
.evtip__l .evp+.evp{box-shadow:inset 0 1px 0 var(--line)}
.evp__h{display:flex;align-items:center;gap:var(--s-2);min-width:0}
.evp__av{display:grid;place-items:center;flex:none;width:var(--tk-m);height:var(--tk-m);border-radius:var(--r-round);overflow:hidden;background:var(--n-3)}
.evp--full .evp__av{width:var(--tk-pv);height:var(--tk-pv)}
.evp__av img{width:100%;height:100%;object-fit:cover;display:block}
.evp__id{display:flex;flex-direction:column;min-width:0;flex:1}
.evp__nm{display:flex;align-items:center;gap:var(--s-1);min-width:0;font-size:var(--fs-ui);line-height:var(--lh-ui)}
.evp__nm b{font-weight:var(--w-m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.evp__ok{flex:none;color:var(--t-1)}
.evp__promo{flex:none;height:var(--s-4);padding:0 var(--s-1);border-radius:var(--r-1);background:var(--down-tint);color:var(--down);font-size:var(--fs-12);line-height:var(--lh-12)}
.evp__m{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.evp__xb{flex:none;align-self:flex-start;color:var(--t-2)}
.evp__t{font-size:var(--fs-ui);line-height:var(--lh-ui);white-space:pre-line;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.evp--full .evp__t{-webkit-line-clamp:10}
.evp__s{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-3);font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.evp__s b{font-weight:var(--w-r);color:var(--t-1);font-variant-numeric:tabular-nums}
.evr{display:grid;grid-template-columns:auto auto 1fr auto auto;align-items:center;gap:var(--s-2);height:var(--h-row);padding:0 var(--pad);white-space:nowrap;font-size:var(--fs-ui);line-height:var(--lh-ui)}
.evr+.evr{box-shadow:inset 0 1px 0 var(--line)}
.evr__i{display:grid;place-items:center;width:var(--s-4);height:var(--s-4);border-radius:var(--r-round);background:var(--n-0);font-size:var(--fs-12);line-height:var(--lh-12);font-weight:var(--w-m)}
.evr__i.is-burn{color:var(--down)}.evr__i.is-buy{color:var(--up);background:var(--up-tint)}.evr__i.is-sell{color:var(--down);background:var(--down-tint)}
.evr__k{color:var(--t-1)}
.evr__v{color:var(--t-2);font-variant-numeric:tabular-nums;text-align:right}
.evr__a{color:var(--t-2);font-variant-numeric:tabular-nums;min-width:3ch;text-align:right}
.evr__tx{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-2)}
.evr__tx:hover{color:var(--t-1)}
@media (max-width:767px){.evr{height:var(--h-touch)}.evr__tx{min-height:var(--h-touch);min-width:var(--h-touch);justify-content:flex-end}}
/* the Display menu: a hairline between indicators and events; each event line wears its marker */
.wm__sep{height:1px;margin:var(--s-1) 0;background:var(--line)}
.wm__ck .wm__ei{width:var(--s-3);height:var(--s-3);color:var(--t-1)}.wm__ck .wm__ei.is-burn{color:var(--down)}
.wm__eb{display:grid;place-items:center;width:var(--s-3);height:var(--s-4);font-size:var(--fs-12);line-height:var(--lh-12);font-weight:var(--w-m);color:var(--up)}
/* Trending (engine 25.10): «Low liquidity» on a thin row is the system .badge; on a phone the token cell is narrow, so only its icon stays */
@media (max-width:767px){.tbl--trend .c-tok .badge{padding:0 var(--s-1)}.tbl--trend .c-tok .badge__t{display:none}}

/* ---- API keys (25.10, /api-keys): Factory ab2fc32f keys table, Steel 764f128f / Cursor 653c2245 created-key dialog, Anthropic 66b461a6 signed-out card.
   One column 960, sections 32 apart; a section = title row 32 + its panel; the keys panel is a hairline box (r6), rows 40, numbers right. ---- */
.ak{width:min(960px,100%);margin:0 auto;padding:var(--s-6) var(--s-4) var(--s-8);display:flex;flex-direction:column;gap:var(--s-8)}
.ak__s{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}
.ak__h{display:flex;align-items:center;gap:var(--s-2);min-height:var(--h-ctl)}
.ak__h h2{font-weight:var(--w-m);color:var(--t-1)}
.ak__sp{flex:1}
.ak__p{border-radius:var(--r-2);box-shadow:inset 0 0 0 1px var(--line-strong);overflow:hidden;min-height:var(--s-12)}
.ak__p .empty--big{padding:var(--s-8) var(--s-6)}
.tbl--ak{--cols:minmax(120px,1.2fr) minmax(176px,1.3fr) 88px 88px 112px 112px var(--h-ctl-s)}
.tbl--ak .tbl__h{background:none;box-shadow:inset 0 -1px 0 var(--line)}
.tbl--ak .row{height:var(--s-10)}
.tbl--ak code,.ak__mono{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0;color:var(--t-2);white-space:nowrap}
.ak__nm{display:flex;flex-direction:column;min-width:0}
.ak__nm b{font-weight:var(--w-r);color:var(--t-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ak__ph{display:none}
.tbl--ak .row>span:last-child{display:flex;justify-content:flex-end}

.ak__g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}
.ak__plan{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-4);border-radius:var(--r-2);background:var(--n-2)}
.ak__plan .sk{background:var(--n-3)}
.ak__plan .chip{background:var(--n-3);cursor:default}
.ak__ph2{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);min-height:var(--h-ctl-s)}
.ak__ph2 b{font-weight:var(--w-m);color:var(--t-1)}
.ak__fine{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);text-wrap:pretty}
.ak__code{display:flex;align-items:flex-start;gap:var(--s-3);padding:var(--s-3);border-radius:var(--r-2);background:var(--n-2)}
.ak__code pre{flex:1;min-width:0;white-space:pre-wrap;overflow-wrap:anywhere}
.ak__code code{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0;color:var(--t-1)}
@media (max-width:1023px){.tbl--ak{--cols:minmax(120px,1fr) minmax(176px,1.2fr) 88px 104px var(--h-ctl-s)}.tbl--ak .c-cr,.tbl--ak .c-ai{display:none}}
@media (max-width:767px){
  .ak{padding:var(--s-4) var(--pad) var(--s-6);gap:var(--s-6)}
  .tbl--ak{--cols:minmax(0,1fr) 72px var(--h-touch)}
  .tbl--ak .c-key,.tbl--ak .c-cr,.tbl--ak .c-used,.tbl--ak .c-ai{display:none}
  .tbl--ak .row{height:auto;min-height:var(--s-12);padding-block:var(--s-1)}
  .ak__ph{display:block}
  .tbl--ak .btn--icon{width:var(--h-touch);height:var(--h-touch)}
  .ak__g{grid-template-columns:minmax(0,1fr)}
  .ak__code{flex-direction:column;align-items:stretch}
  .ak__h .btn{min-height:var(--h-touch)}
}
#akPlans{display:flex;flex-direction:column;gap:var(--s-3)}
.tbl--ak[aria-busy] .row{height:var(--s-10);padding-block:0;align-items:center}
.ak__price{color:var(--t-2)}
.tkt__bv{display:inline-flex;align-items:center;gap:var(--s-1);min-width:0}
.tkt__dep{color:var(--t-2)}
@media (max-width:767px){.tkt__dep{min-height:var(--h-touch)}}

/* ---- bridge (25.10, js/bridge.js): Copperx bridge flow 8894 (bb22ea58 form + best return, a7adaca8 steps, eb79095c done); v5 rows 24, selects 56,
   one amber action. Chain marks are square brand tiles (r4); provider logos 16 r4. ---- */
.br{display:flex;flex-direction:column;gap:var(--s-3)}
.br__pair{position:relative;display:flex;flex-direction:column;border-radius:var(--r-2);background:var(--n-2)}
.br__sel{display:flex;align-items:center;gap:var(--s-3);min-height:var(--s-12);padding:var(--s-2) var(--s-3);border-radius:var(--r-2);color:var(--t-1);text-align:left;width:100%}
button.br__sel:hover{background:var(--n-3)}
.br__sel+.br__sel{box-shadow:inset 0 1px 0 var(--line)}
.br__arr{position:absolute;left:calc(var(--s-3) + var(--tk-l) / 2);top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:var(--s-6);height:var(--s-6);border-radius:var(--r-1);background:var(--n-1);color:var(--t-2);box-shadow:0 0 0 1px var(--line-strong);z-index:1}
.br__st{display:flex;flex-direction:column;min-width:0;flex:1}
.br__l{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.br__st b{font-weight:var(--w-m);font-size:var(--fs-14);line-height:var(--lh-14);color:var(--t-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.br__sv{color:var(--t-2);white-space:nowrap;display:inline-flex;align-items:center;gap:var(--s-1)}
.br__sv .mono{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0}
.br__sel>.ico{color:var(--t-2)}
.br__ci{width:var(--tk-s);height:var(--tk-s);border-radius:var(--r-1);flex:none;display:block}
.br__sel>.br__ci{width:var(--tk-l);height:var(--tk-l);border-radius:var(--r-2)}
.br__ci--l{width:var(--tk-m);height:var(--tk-m)}
.br__hint{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);min-height:var(--lh-12)}
.br .fld__msg{min-height:var(--lh-12)}
[data-testid="br-review-step"] .fld__msg:empty{display:none}
.br .fld input{text-align:left}
.br__rc{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-2)}
.br__rc .fld{align-self:stretch}
.br__rc .fld__msg:empty{display:none}
.br__q{display:flex;flex-direction:column;gap:var(--s-2);padding-top:var(--s-1);box-shadow:inset 0 1px 0 var(--line)}
.br__lh{display:flex;align-items:center;gap:var(--s-2);height:var(--h-ctl);color:var(--t-1);font-weight:var(--w-m)}
.br__list{display:flex;flex-direction:column;max-height:min(420px,60vh);overflow-y:auto;margin:0 calc(var(--s-4) * -1);scrollbar-width:thin;scrollbar-color:var(--n-4) transparent}
.br__it{display:flex;align-items:center;gap:var(--s-3);min-height:var(--s-12);padding:0 var(--s-4);color:var(--t-1);text-align:left}
.br__it:hover,.br__it.is-on{background:var(--n-2)}
.br__in{flex:1;min-width:0}
.br__it>.ico{color:var(--t-1)}
.br__sum{position:relative;display:flex;flex-direction:column;border-radius:var(--r-2);background:var(--n-2)}
.br__sl{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:var(--s-3);align-items:center;padding:var(--s-3)}
.br__sl+.br__sl{box-shadow:inset 0 1px 0 var(--line)}
.br__sl>.dim{grid-column:1/-1;font-size:var(--fs-12);line-height:var(--lh-12)}
.br__sl b{display:inline-flex;align-items:center;gap:var(--s-1);font-weight:var(--w-m);color:var(--t-1)}
.br__on{justify-self:end;display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-2)}
.br__steps{list-style:none;display:flex;flex-direction:column;border-radius:var(--r-2);background:var(--n-2);padding:var(--s-1) 0}
.br__steps li{display:flex;align-items:center;gap:var(--s-3);min-height:var(--s-10);padding:0 var(--s-3);color:var(--t-2)}
.br__steps li+li{box-shadow:inset 0 1px 0 var(--line)}
.br__steps li.is-done,.br__steps li.is-run{color:var(--t-1)}
.br__sn{flex:1;min-width:0}
.br__sx{display:inline-flex;align-items:center;gap:var(--s-1)}
.br__ok{color:var(--up)}.br__bad{color:var(--down)}
.br__dot{width:var(--ico-s);height:var(--ico-s);border-radius:var(--r-round);box-shadow:inset 0 0 0 1px var(--t-3);flex:none}
.dep-alt{align-self:center;margin-top:var(--s-1)}
@media (max-width:767px){
  .br__it{min-height:var(--h-touch)}
  .br__sel{min-height:var(--s-12)}
  .br .btn--ghost.btn--s,.dep-alt{min-height:var(--h-touch)}
  .br__list{max-height:none}
}
.br__fin{padding-block:var(--s-4)}
#depBr:has([data-testid="br-chains"])+.dep-alt,#depBr:has([data-testid="br-track"])+.dep-alt,#depBr:has([data-testid="br-review-step"])+.dep-alt{display:none}
.tkt__dep{margin-right:calc(var(--s-2) * -1)}
.dep-alt{white-space:normal;height:auto;min-height:var(--h-ctl-s);text-align:center}
.br__lh .btn--ghost,.br__rc>.btn--ghost{margin-left:calc(var(--s-2) * -1)}
.addr--full code.br__addr{word-break:normal;overflow-wrap:normal}
/* 26.10 deposit window: one address on every network, and the one-tap «move to Robinhood Chain» rows */
.dpns{display:flex;flex-direction:column;border-radius:var(--r-2);background:var(--n-2)}
.dpn{display:flex;align-items:center;gap:var(--s-3);min-height:var(--s-12);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);color:var(--t-1)}
.dpn+.dpn{box-shadow:inset 0 1px 0 var(--line)}
.dpn__i{width:var(--tk-l);height:var(--tk-l);border-radius:var(--r-2);flex:none;display:block}
.dpn__t{display:flex;flex-direction:column;min-width:0;flex:1}
.dpn__t b{font-weight:var(--w-m);font-size:var(--fs-14);line-height:var(--lh-14);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dpn__t .dim{font-size:var(--fs-12);line-height:var(--lh-12);overflow:hidden;text-overflow:ellipsis}
.dpn__b:not(:empty)::before{content:" · ";color:var(--t-3)}.dpn__b{color:var(--up)}
.dpn__a{font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12);letter-spacing:0;color:var(--t-2);flex:none}
@media (max-width:480px){.dpn__a{display:none}.dpn [data-copy] span{display:none}}
.mvs:empty{display:none}.mvs{display:flex;flex-direction:column;gap:var(--s-2)}
.mv{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-3);border-radius:var(--r-2);background:var(--n-2);box-shadow:inset 0 0 0 1px var(--a)}
.mv__t{flex:1;min-width:0;font-size:var(--fs-14);line-height:var(--lh-14)}
.mv__t b{font-weight:var(--w-m);color:var(--t-1)}
.mv .btn--buy{flex:none}
.mvb{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--h-status) + var(--s-4));z-index:var(--z-toast);display:flex;flex-direction:column;gap:var(--s-2);width:min(var(--w-dlg),calc(100% - var(--s-8)))}
.mvb[hidden]{display:none}
.mvb .mv{background:var(--n-1);box-shadow:var(--shadow-pop),inset 0 0 0 1px var(--a)}
@media (max-width:767px){.mvb{bottom:calc(var(--h-bnav) + env(safe-area-inset-bottom) + var(--s-3));width:calc(100% - var(--s-6))}.mv{flex-wrap:wrap}.mv__t{flex-basis:calc(100% - var(--tk-m) - var(--s-3))}.mv .btn--buy{flex:1}}

@media (max-width:767px){.dep-alt{min-height:var(--h-touch)}.doc__nav .nav__a{min-width:var(--h-touch);justify-content:center}}
/* 25.10 sign-in gate (owner: Ask AI and Tracker only for signed-in users): one card, one action; the token page's own question asks for sign-in in place */
.pg__b--gate{display:grid;place-items:center;min-height:100%}
#scrPage.pg--split>.pg__b--gate{grid-column:1/-1;grid-row:1/-1}      /* 25.10 owner: the gate card sits in the middle of the content area, not in the thesis column */
.ai-gate{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);color:var(--t-2)}

/* ===================================================================================================================================
   v6 scale (25.10, research/design-v6-scale.md; owner: «хедер увеличить», «доки очень мелкий шрифт», «где аи тоже мелко»).
   Steps by surface: dense data 13 · interface 14 (the body, via --fs-m) · header and AI 15 · reading 16 · titles 18 / 24 / 32.
   What must not grow (§4.1) is named here with --fs-data: board cards, token-page tables, timeframes, small buttons, chips.
   =================================================================================================================================== */
/* §4.1 — stays 13 (the alias moved --fs-m to 14) */
.cd,.l-token .tbl,.tbl--tab,.evr__a{font-size:var(--fs-14);line-height:var(--lh-14)}
.col__qb,.newpill,.tf button,.btn--s,.chip,.side__cap,.chat__ctx .chip,.tip{font-size:var(--fs-12);line-height:var(--lh-12)}
.cd__sym{font-size:var(--fs-ui);line-height:var(--lh-ui);font-weight:var(--w-m)}
.cd__nm{font-size:var(--fs-ui);line-height:var(--lh-ui)}
/* §3.1 header */
.nav__a,.nav__more>.nav__a{font-size:var(--fs-14);line-height:var(--lh-14);padding:0 var(--s-2)}
@media (max-width:1023px){.nav .nav__a>.ico{display:none}}   /* tablet: labels only in the bar, the «More» menu keeps the icons */

.nav__a.nav__a--off{gap:var(--s-2)}
.nav__soon{height:var(--h-chip);align-self:center}
.nav__more .ico{width:var(--ico);height:var(--ico)}
.cmd{height:var(--h-search)}
.cmd input{font-size:var(--fs-input);line-height:var(--lh-16)}
.top__r .btn{font-size:var(--fs-14);line-height:var(--lh-14);padding:0 var(--s-4)}
.top__r .ib .ico{width:var(--ico);height:var(--ico)}
@media (min-width:768px){.top{padding:0 var(--s-5);column-gap:var(--s-8)}.top__l{gap:var(--s-8)}}
/* §3.2 board */
.col__t{font-size:var(--fs-16);line-height:var(--lh-16)}
/* §3.3 token page */
.ctb .btn--ghost,.ctb .tog button,.pg__bar .seg button{height:var(--h-ctl-m)}
.tkt .fld input,.ask input,#brAmt,.pg__form .fld input,.trk__add input,.fld--addr input{font-size:var(--fs-input)}
.btn--l{font-size:var(--fs-14);line-height:var(--lh-14)}
.sc__h,.side__h,.pn__t,.modal__h{font-size:var(--fs-16);line-height:var(--lh-16)}
.tkt__q button{height:calc(var(--h-ctl) - var(--s-1))}
/* §3.4 page tables */
.pg__h{min-height:80px;padding:var(--s-4) var(--pad)}
@media (min-width:768px){.tbl--pf .row,.tbl--pf-ro .row,.tbl--hist .row,.tt .row{height:var(--h-row-l)}}
.pg .tbl__h{height:var(--s-8)}
.tbl--ak code,.ak__mono,.ak__code code,.addr code{font-size:var(--fs-12);line-height:var(--lh-12)}
.empty__hint{font-size:var(--fs-ui);line-height:var(--lh-ui)}
/* §3.5 Ask AI */
.chat__col,.chat__in{width:min(var(--w-read),100%)}
.chat__col{gap:var(--s-8)}
.chat__hi p{font-size:var(--fs-16);line-height:var(--lh-16)}
.turn{gap:var(--s-3)}
.turn__b.prose,.turn--u .turn__b{font-size:var(--fs-16);line-height:var(--lh-16)}
.turn--u .turn__b{padding:var(--s-3) var(--s-4)}
.chat__in .sugg .chip{height:calc(var(--h-ctl) - var(--s-1));padding:0 var(--s-3);border-radius:var(--r-2);font-size:var(--fs-ui);line-height:var(--lh-ui)}
.chat .ask{height:var(--h-chat);border-radius:var(--r-3)}
.chat .ask input{font-size:var(--fs-input)}
/* §3.6 docs: a reading column */
@media (min-width:768px){.doc{grid-template-columns:var(--w-doc-nav) minmax(0,var(--w-read));gap:var(--s-12);padding:var(--s-10) var(--s-6)}}
.doc__nav .doc__sub a{min-height:calc(var(--h-ctl) - var(--s-1))}
.doc__a .doc__h1{margin-bottom:var(--s-6);font-size:var(--fs-32);line-height:var(--lh-32);letter-spacing:var(--tr-xl)}
.doc__a h2{margin:var(--s-12) 0 var(--s-4);font-size:var(--fs-24);line-height:var(--lh-24);letter-spacing:var(--tr-l)}
.doc__a h3,.doc__a h4{margin:var(--s-8) 0 var(--s-2);font-size:var(--fs-20);line-height:var(--lh-20);letter-spacing:var(--tr-l)}
.doc__a p,.doc__a ul,.doc__a ol,.doc__a blockquote{margin:0 0 var(--s-4);font-size:var(--fs-16);line-height:var(--lh-16)}
.doc__a li{margin-bottom:var(--s-2)}
.doc__a code{font-size:var(--fs-ui)}
.doc__tw{margin-bottom:var(--s-4)}
.doc__t th,.doc__t td{font-size:var(--fs-ui);line-height:var(--lh-ui)}
.doc__foot{font-size:var(--fs-ui);line-height:var(--lh-ui)}
/* §3.7 Extension */
.xp__l h1{font-size:var(--fs-32);line-height:var(--lh-32);letter-spacing:var(--tr-xl)}
.xp__l p{font-size:var(--fs-16);line-height:var(--lh-16)}
.xp__h2{font-size:var(--fs-24);line-height:var(--lh-24);letter-spacing:var(--tr-l)}
.xp__it h3,.xp__steps b{font-size:var(--fs-20);line-height:var(--lh-20);letter-spacing:var(--tr-l)}
.xp__it p,.xp__steps li{font-size:var(--fs-16);line-height:var(--lh-16)}
.xp__steps li::before{width:var(--h-ctl-m);height:var(--h-ctl-m);font-size:var(--fs-ui);line-height:var(--lh-ui)}
.xp__demo .code{font-size:var(--fs-12);line-height:var(--lh-12)}
/* §3.8 dialogs */
.br__l{font-size:var(--fs-ui);line-height:var(--lh-ui)}
/* §4.2 phone */
@media (max-width:767px){
  .turn__b.prose,.turn--u .turn__b{font-size:var(--fs-16);line-height:var(--lh-16)}
  .chat__in .sugg .chip{height:var(--h-touch);font-size:var(--fs-14)}
  .doc{padding:var(--s-6) var(--s-4)}
  .doc__a .doc__h1{font-size:var(--fs-24);line-height:var(--lh-24)}
  .doc__a h2{font-size:var(--fs-20);line-height:var(--lh-20)}
  .cmd input,.fld input,.ask input,input{font-size:var(--fs-input)}
}
.chat__hi p{max-width:60ch;text-wrap:balance}
.doc__t tbody th{white-space:nowrap}
/* v6 §4.1.7: the order rows grew (28) and the header +8 — the chart takes the height of the flow + order block (it ends where the order
   ends, the lint's edge rule) and the table keeps the rest (4+ rows at 1440×900) */
/* 25.10 owner «график можно крупнее сделать?»: the chart takes every pixel the panel has; the activity table keeps a fixed 196 (bar + head + 4 rows) */
/* 25.10 owner «мало места для нижней панели»: chart 60 / panel 40 of the height by default (chart ≥ 280, panel ≥ 196; a short window keeps the old 196), a drag handle between them
   (js: --act-h in px, kept in localStorage, double-click resets) */
@media (max-width:767px){.l-token>.rs{display:none}}
@media (min-width:768px){
  .l-token{grid-template-rows:var(--h-inst) minmax(280px,1fr) var(--act-h,minmax(196px,40%))}
  .l-token>.rs{display:block;grid-column:1;grid-row:2;align-self:end;height:4px;margin-bottom:-4px;z-index:6;cursor:row-resize;touch-action:none;position:relative}
  .l-token>.rs::before{content:"";position:absolute;left:0;right:0;top:-4px;bottom:-4px}
  .l-token>.rs::after{content:"";position:absolute;left:50%;top:1px;width:32px;height:2px;margin-left:-16px;border-radius:1px;background:var(--n-4);opacity:0;transition:opacity .15s}
  .l-token>.rs:hover::after,.l-token>.rs.is-drag::after{opacity:1}
}
.doc__a{min-width:0}
@media (max-width:767px){.btabs{gap:var(--s-4)}}

/* ================= 25.10 Security (trust pages, js/trust.js): the docs grid with a wider column for tables; v6 sizes (lead 16, h2 24, rows 14 in 40, hashes mono 12) =================
   Refs: Vercel security ab9e4aee, Slab security 871395f7, Zendesk status 7957c520, Vercel deployments 8c510eb3, GitHub Actions 6a2ab671 */
@media (min-width:768px){.doc.ts{grid-template-columns:var(--w-doc-nav) minmax(0,880px)}}
.ts__art>h2:first-of-type{margin-top:var(--s-10)}
.ts .doc__a .ts__lead{max-width:var(--w-read);margin-bottom:var(--s-8)}
.ts__strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}
.ts__tile{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4);border-radius:var(--r-2);background:var(--n-2);color:var(--t-1);min-width:0;transition:background-color var(--d-1) var(--e-std)}
a.ts__tile:hover{background:var(--n-3)}
.ts__tk{color:var(--t-2)}
.ts__tv{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-16);line-height:var(--lh-16);font-weight:var(--w-m);white-space:nowrap;overflow:hidden}
.ts__ts{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.ts__dot{display:inline-block;width:var(--s-2);height:var(--s-2);border-radius:var(--r-round);background:var(--t-3);flex:none}
.ts__dot.is-ok{background:var(--up)}.ts__dot.is-bad{background:var(--down)}
.ts__claims{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}
.ts__claim{display:flex;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-2);background:var(--n-2)}
.ts .doc__a .ts__claim h3{margin:0 0 var(--s-1)}
.ts .doc__a .ts__claim p{margin:0;font-size:var(--fs-16);line-height:var(--lh-16)}
.ts__ci2{display:grid;place-items:center;width:var(--h-ctl);height:var(--h-ctl);border-radius:var(--r-2);background:var(--n-3);color:var(--t-1);flex:none}
.ts .doc__a .ts__can{margin-top:var(--s-4)}
.ts__panel{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3)}
.ts .doc__a .ts__panel>p{margin:0}
.ts__t{border-radius:var(--r-2);box-shadow:inset 0 0 0 1px var(--line);margin-bottom:var(--s-4);--cols:minmax(0,1.4fr) minmax(0,1fr) 112px var(--h-ctl-s)}
.ts__t .tbl__h{height:var(--s-8);background:none;position:static}
.ts__t .row{height:auto;min-height:var(--h-row-l);padding-top:var(--s-2);padding-bottom:var(--s-2);box-shadow:inset 0 1px 0 var(--line)}
.ts__t .row.is-bad{background:var(--down-tint)}
.ts__c{display:flex;align-items:center;gap:var(--s-2);min-width:0;flex-wrap:wrap}
.ts__a{display:flex;align-items:center;gap:var(--s-2);min-width:0}
.ts__xc{display:flex;justify-content:flex-end}
.ts__x{display:inline-grid;place-items:center;width:var(--h-ctl-s);height:var(--h-ctl-s)}
.ts__ci{width:var(--tk-s);height:var(--tk-s);border-radius:var(--r-1);flex:none}
.ts__st{display:inline-flex;align-items:center;gap:var(--s-1);color:var(--t-2);white-space:nowrap}
.ts__st.is-ok{color:var(--t-1)}.ts__st.is-ok .ico{color:var(--up)}
.ts__st.is-bad,.ts__st.is-bad .ico{color:var(--down)}
.ts__t--fee{--cols:minmax(0,1.3fr) minmax(0,1.3fr) 88px minmax(0,1fr)}
.ts__t--code{--cols:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 96px}
.ts__t--rel{--cols:minmax(0,1fr) 80px minmax(0,2.4fr) var(--h-ctl-s)}
.ts__h{white-space:normal;word-break:break-all;color:var(--t-2)}
.ts__p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ts__ok{display:flex;align-items:center;gap:var(--s-2);color:var(--t-1)}.ts__ok .ico{color:var(--up)}
.ts__banner{display:flex;gap:var(--s-3);padding:var(--s-4);border-radius:var(--r-2);background:var(--n-2);margin-bottom:var(--s-4)}
.ts__banner b{font-size:var(--fs-16);line-height:var(--lh-16);font-weight:var(--w-m);color:var(--t-1)}
.ts .doc__a .ts__banner p{margin:var(--s-1) 0 0;font-size:var(--fs-ui);line-height:var(--lh-ui)}
.ts__bi{display:grid;place-items:center;width:var(--h-ctl);height:var(--h-ctl);border-radius:var(--r-round);flex:none;background:var(--n-3);color:var(--t-2)}
.ts__banner.is-ok .ts__bi{color:var(--up);background:var(--up-tint)}
.ts__banner.is-alert{background:var(--down-tint);box-shadow:inset 0 0 0 1px var(--down)}.ts__banner.is-alert .ts__bi{color:var(--down);background:var(--down-tint)}
.ts__kvs{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s-4) var(--s-8);margin-bottom:var(--s-4)}
.ts__kvs .kv{gap:var(--s-1)}.ts__kvs .kv--btn{margin-left:auto}
.ts__line{display:flex;align-items:center;gap:var(--s-2);color:var(--t-1)}
.ts__line.is-ok .ico{color:var(--up)}.ts__line.is-bad,.ts__line.is-bad .ico{color:var(--down)}
.ts__run{display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-3)}
.ts__sum{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--t-1)}.ts__sum.is-ok .ico{color:var(--up)}.ts__sum.is-bad,.ts__sum.is-bad .ico{color:var(--down)}
.ts .doc__a .ts__acct{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2)}
.ts__steps{list-style:none;padding:0;margin:var(--s-4) 0 0;border-radius:var(--r-2);box-shadow:inset 0 0 0 1px var(--line)}
.ts .doc__a .ts__steps li{display:grid;grid-template-columns:var(--s-6) minmax(0,1fr) auto;align-items:start;gap:var(--s-3);margin:0;padding:var(--s-3) var(--s-4);font-size:var(--fs-ui);line-height:var(--lh-ui)}
.ts__steps li+li{box-shadow:inset 0 1px 0 var(--line)}
.ts__steps b{font-weight:var(--w-m);color:var(--t-1)}
.ts .doc__a .ts__steps p{margin:var(--s-1) 0 0;font-size:var(--fs-ui);line-height:var(--lh-ui);color:var(--t-2);overflow-wrap:anywhere}
.ts__si{display:grid;place-items:center;height:var(--lh-ui);color:var(--t-3)}
.ts__steps li.is-pass .ts__si{color:var(--up)}.ts__steps li.is-fail .ts__si,.ts__steps li.is-fail .ts__sw{color:var(--down)}
.ts__sw{color:var(--t-2);white-space:nowrap}.ts__steps li.is-pass .ts__sw{color:var(--t-1)}
.ts__cmd{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4);border-radius:var(--r-2);background:var(--n-2);margin-bottom:var(--s-4)}
.ts__cmd pre{flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}
.ts .doc__a .ts__cmd code{background:none;padding:0;font-size:var(--fs-12)}
.ts__f{max-width:320px;margin-bottom:var(--s-2)}
@media (max-width:1023px){.ts__claims,.ts__strip{grid-template-columns:minmax(0,1fr)}}
@media (max-width:767px){
  .ts__t{--cols:minmax(0,1fr) 96px var(--h-ctl-s)}.ts__t .row>:nth-child(2),.ts__t .tbl__h>:nth-child(2){display:none}
  .ts__t--code{--cols:minmax(0,1fr) 96px}.ts__t--code .row>:nth-child(n+2):nth-child(-n+4),.ts__t--code .tbl__h>:nth-child(n+2):nth-child(-n+4){display:none}
  .ts__t--fee{--cols:minmax(0,1fr) 72px}.ts__t--fee .row>:nth-child(2),.ts__t--fee .row>:nth-child(4),.ts__t--fee .tbl__h>:nth-child(2),.ts__t--fee .tbl__h>:nth-child(4){display:none}
  .ts__t--rel{--cols:minmax(0,1fr) var(--h-touch)}.ts__t--rel .row>:nth-child(2),.ts__t--rel .tbl__h>:nth-child(2),.ts__t--rel .row>:nth-child(3),.ts__t--rel .tbl__h>:nth-child(3){display:none}
  .ts__kvs .kv--btn{margin-left:0}
}
.ts .doc__a a.ts__tile,.ts .doc__a a.ts__tile *{text-decoration:none}
.ts .doc__a .ts__steps{padding:0;list-style:none}
.ts .doc__a a.ts__tile{display:flex;flex-direction:column;align-items:stretch;text-align:left}
.ts__f input{text-align:left}
.ts__kvs{align-items:flex-start}.ts__kvs .kv--btn{align-self:center}
.ts__kvs .kv__v.mono,.ts__tv.mono{font-size:var(--fs-14);line-height:var(--lh-14)}
.ts .doc__a a.btn{text-decoration:none}
@media (max-width:767px){.ts__cmd{flex-direction:column;align-items:stretch;padding:var(--s-3)}.ts__cmd pre{white-space:pre-wrap;word-break:break-all}}
.xp__demo .logo{font-size:var(--fs-16);line-height:var(--lh-16)}.xp__trust{font-size:var(--fs-ui);line-height:var(--lh-ui)}
.ts__pc{display:flex;flex-direction:column;min-width:0}
.ts__hp{display:none;font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-2);word-break:break-all}
@media (max-width:767px){.ts__hp{display:block}}
@media (max-width:767px){.pn--chart #indMenu{max-height:296px;overflow-y:auto;overscroll-behavior:contain}.evr{column-gap:var(--s-1);font-size:var(--fs-14);line-height:var(--lh-14)}}
@media (max-width:767px){.pn--chart #indMenu{left:auto;right:0}}

/* ===================================================================================================================================
   v7 (25.10, owner: «шрифты, фон и иконки как у dapp.mutexa.io», recommendations A–F in research/ref-mutexa/recommendations.md; the accent stays our gold)
   Public Sans interface · Geist titles · Geist Mono numbers and labels · chroma-0 greys · no shadows · radii 6 / 4 / 3 · Lucide 16 / 1.75
   =================================================================================================================================== */
/* type families */
.doc__h1,.doc__a h2,.doc__a h3,.doc__a h4,.pg__h h1,.chat__hi h1,.xp h1,.xp__h2,.xp__it h3,.xp__steps b,.th__sym,.t-title,.p404 h1,.thesis__t,.nf__t,.empty--big h2{font-family:var(--f-head)}
.num,.kv__v,.thesis__s .kv__v,.chart__lg,.tf button,.eyebrow,.badge,.nav__soon,.live__ago,.cd__r,.tabs__n,.pn__n{font-family:var(--f-mono);letter-spacing:0}
.doc__a p,.doc__a li,.doc__a blockquote,.thesis__b,.xp__l p,.xp__it p,.xp__steps li,.chat__hi p,.empty--big p{color:var(--t-body)}
/* eyebrow: Geist Mono caps over a block title (A1) */
.eyebrow{display:block;font-size:var(--fs-12);line-height:var(--lh-12);font-weight:var(--w-m);text-transform:uppercase;letter-spacing:.12em;color:var(--t-3)}
/* surfaces: panels are a 1 px line on the canvas, no shadow (B5) */
.pn{box-shadow:inset 0 0 0 1px var(--line)}
body[data-page=board] .col{box-shadow:inset 0 0 0 1px var(--line)}
.top{background:rgba(5,5,5,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:inset 0 -1px 0 var(--line)}
.status{background:var(--n-hdr);box-shadow:inset 0 1px 0 var(--line)}
/* radii: buttons and fields 4, chips and segment thumbs 3 (B6) */
.btn,.fld,.cmd,.ask,.addr,.ib,.qb,.drop,.wm,.pop,.evtip,.pv{border-radius:var(--r-ctl)}
.btn--s,.chip,.seg button,.tf button,.tog button,.stub,.badge{border-radius:var(--r-1)}
.pv,.modal,.drop,.wm,.evtip{box-shadow:0 0 0 1px var(--line-strong)}
/* rows: hover white 2.5 %, a new row fades in over 200 ms, nothing moves (B8, F18) */
.row:hover,.drop__it:hover,.wm__it:hover,.wm__ck:hover,.cd:hover{background:var(--hover)}
.row.is-new,.cd.is-new{animation:v7in .2s var(--e-out)}
@keyframes v7in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.is-hidden *,.is-hidden *::before,.is-hidden *::after{animation-play-state:paused!important}
/* segmented controls: timeframes, Price / MC, USD / ETH (C9) — a lined track, the active segment raised */
.tf,.tog{display:inline-flex;align-items:center;gap:0;padding:var(--s-half);border-radius:var(--r-ctl);box-shadow:inset 0 0 0 1px var(--line)}
.tf button,.tog button{height:var(--s-6);padding:0 var(--s-2);color:var(--t-2)}
.tf button.is-on,.tog button.is-on{background:var(--n-2);color:var(--t-1)}
.tog>.sep,.tog>span:not([class]){display:none}
/* status badges: mono caps in a line (C10) */
.badge,.nav__soon{display:inline-flex;align-items:center;gap:var(--s-1);height:var(--h-chip);padding:0 var(--s-1);background:none;box-shadow:inset 0 0 0 1px var(--line-strong);font-size:var(--fs-12);line-height:var(--lh-12);text-transform:uppercase;letter-spacing:.08em;color:var(--t-2)}
.live.badge{color:var(--t-2)}.live.badge.up{color:var(--t-1);box-shadow:inset 0 0 0 1px rgba(61,190,139,.45)}
.live .dot--live{position:relative}
.live .dot--live::after{content:"";position:absolute;inset:0;border-radius:var(--r-round);background:currentColor;animation:v7ping 1.6s var(--e-std) infinite}
@keyframes v7ping{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(2.6);opacity:0}}
.live__ago{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-3);white-space:nowrap}
.live__pause[hidden]{display:none}
/* empty states: an icon in a lined 32 box, a title, one line, one action (C11) */
.empty:not(.empty--row)>.ico:first-child,.empty__ico{box-sizing:content-box;display:inline-grid;place-items:center;padding:7px;border-radius:var(--r-2);box-shadow:inset 0 0 0 1px var(--line);background:none;color:var(--t-2)}
.empty__ico .ico{width:var(--ico);height:var(--ico)}
/* chart: a dotted grid behind the transparent chart (D13); legend in mono */
.chart__host{background-image:radial-gradient(circle,var(--grid) 1px,transparent 1.2px);background-size:12px 12px;background-position:6px 6px}
/* page thesis (E16, copy v1.4): eyebrow · Geist 24 · 1–2 lines · figures on the right */
.thesis{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:var(--s-4) var(--s-10);padding:var(--s-6) var(--pad) var(--s-5);box-shadow:inset 0 -1px 0 var(--line)}
.thesis__l{display:flex;flex-direction:column;min-width:0}
.thesis__t{margin:var(--s-2) 0 var(--s-2);font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1);text-wrap:balance}
.thesis__b{max-width:68ch;font-size:var(--fs-ui);line-height:var(--lh-ui);text-wrap:pretty}
.thesis__x{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-3)}
.thesis__s{display:flex;align-items:flex-start;gap:var(--s-8);margin:0}
.thesis__s .kv{gap:var(--s-1);min-width:0}
.thesis__s .kv__k{color:var(--t-2)}
.thesis__s .kv__v{font-size:var(--fs-16);line-height:var(--lh-16);color:var(--t-1);display:flex;align-items:center;gap:var(--s-2)}
.thesis__s .kv__s{font-size:var(--fs-12);line-height:var(--lh-12);color:var(--t-3);margin:0}
.thesis__s dd{margin:0}
.thesis--doc{padding:0 0 var(--s-6);margin-bottom:var(--s-6)}
.ts__sv{display:inline-flex;align-items:center;gap:var(--s-2);color:var(--t-1)}.ts .doc__a a.ts__sv{text-decoration:none}
.chat__hi .thesis{text-align:left;box-shadow:none;padding:0;width:100%}
.chat__hi{align-items:stretch;text-align:left}
#tkMain>.thesis{flex:none}
@media (max-width:1023px){.thesis{grid-template-columns:minmax(0,1fr);align-items:start}.thesis__s{flex-wrap:wrap;gap:var(--s-4) var(--s-6)}}
/* 404 and the loading screen (F20, copy v1.4): «> sentro_» types itself */
.nf{display:grid;place-items:center;padding:var(--s-10) var(--s-6)}
.nf__c{display:flex;flex-direction:column;align-items:flex-start;gap:var(--s-3);max-width:560px}
.nf__term{display:flex;flex-direction:column;gap:var(--s-1);font:var(--w-m) var(--fs-16)/var(--lh-16) var(--f-mono);color:var(--t-1)}
.nf__l2{color:var(--t-2);overflow:hidden;white-space:nowrap;max-width:0;animation:v7reveal 1s steps(28,end) .7s forwards}
@keyframes v7type{to{width:10ch}}@keyframes v7reveal{to{max-width:48ch}}
.nf__t{font-size:var(--fs-24);line-height:var(--lh-24);font-weight:var(--w-m);letter-spacing:var(--tr-l);color:var(--t-1);margin-top:var(--s-3)}
.nf p{color:var(--t-body)}
.boot{position:fixed;inset:0;z-index:var(--z-modal);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s-3);background:var(--n-0);pointer-events:none;transition:opacity var(--d-3) var(--e-std)}
.boot.is-out{opacity:0}.boot #bootR{pointer-events:auto}
@keyframes v7type6{to{width:6ch}}
.boot__l{font:var(--fs-12)/var(--lh-12) var(--f-mono);color:var(--t-3)}
@media (prefers-reduced-motion:reduce){.nf__l2{max-width:none;animation:none}.live .dot--live::after{animation:none;display:none}}
.tt .c-tok .badge{text-transform:none;letter-spacing:0;font-family:var(--f)}
.thesis__s.kvs{padding:0;box-shadow:none;background:none;grid-template-columns:none}
.chat__hi .thesis{grid-template-columns:minmax(0,1fr);align-items:start}
.tf{padding:0;box-shadow:none}.tf button{padding:0 var(--s-2)}   /* the timeframes keep the panel's inner edge («1m» at x = pad): no track outline, the active one raised */
.empty:not(.empty--row)>.ico:first-child,.empty__ico{padding:var(--s-2)}
.ev__n{border-radius:var(--r-2)}
@media (max-width:767px){.thesis__x a{min-height:var(--h-touch);display:inline-flex;align-items:center}.live__ago{display:none}}
@media (max-width:767px){.pn--act .live__pause{display:none}}
@media (max-width:767px){.evtip--rows{min-width:0}.evr{grid-template-columns:auto 1fr auto auto}.evr__k{display:none}}
.tbl__h .num,.tbl__h>.num{font-family:var(--f)}

/* 25.10 owner «текст мелкий»: ONE gate hero for Tracker, Ask AI, Portfolio and API keys when signed out — icon box 48 (icon 24), eyebrow mono 12 caps,
   title 24/32 500, body 16/24 in t-2, ≤ 440 wide, button 40 / 15; 16 / 8 / 16 / 24 between the groups; centred in the content area */
.empty.gate{flex:none;width:100%;max-width:440px;margin-inline:auto;gap:0;padding:var(--s-10) var(--s-4);align-items:center;text-align:center}
.empty.gate .empty__ico{box-sizing:border-box;width:48px;height:48px;padding:0}
.empty.gate .empty__ico .ico{width:24px;height:24px}
.empty.gate .eyebrow{margin-top:var(--s-4);font-family:var(--f-mono);font-size:var(--fs-12);line-height:var(--lh-12)}
.empty.gate h2{margin-top:var(--s-2);font-family:var(--f-head);font-weight:var(--w-m);font-size:var(--fs-24);line-height:var(--lh-24);letter-spacing:var(--tr-l);color:var(--t-1);text-wrap:balance}
.empty.gate .empty__ico+h2{margin-top:var(--s-4)}
.empty.gate p{margin-top:var(--s-4);max-width:440px;font-size:var(--fs-16);line-height:var(--lh-16);color:var(--t-2)}
.empty.gate .empty__a{margin-top:var(--s-6)}
.empty.gate .btn{height:var(--h-cta);padding:0 var(--s-6);font-size:var(--fs-14);line-height:var(--lh-14)}
.empty.gate .empty__hint{margin-top:var(--s-4);justify-content:center;text-align:center}

/* owner 25.10 «убрать надо»: theses and page subtitles are gone; every page header is the title row (+ its actions). Trust pages: the title inside the
   reading column; Ask AI: the title over the empty chat; Portfolio: the totals strip under the title row (data, not a thesis). */
.pg__h--doc{min-height:0;padding:0 0 var(--s-4);margin-bottom:var(--s-6)}
.chat__hi .pg__h{min-height:0;padding:0;box-shadow:none}
#tkMain>.pg__h{flex:none}
.pg__tot{flex:none;display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-8);padding:var(--s-3) var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.pg__tot{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:start}  /* 26.10 owner: «плывет текст» — equal columns, one baseline */
.pg__tot .kv__v{display:flex;align-items:center;gap:var(--s-1);min-height:var(--lh-16)}
.pg__tot .kv__v .bar{display:inline-flex;align-items:center;gap:var(--s-1)}
.pg__tot .kv__v .flat,.pg__tot .kv__v .bar{color:var(--t-1)}  /* 26.10 audit: a zero is white like «Value», not grey; the ETH glyph follows the number so the 0 sits under its label */
@media (max-width:767px){.pg__tot{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* 27.10 other assets in the wallet, with «Convert to ETH» (js/app.js loadOther / oaAct) */
.stuck{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3);margin-bottom:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--n-2);font-size:var(--fs-12);line-height:var(--lh-12)}
.stuck+.stuck{margin-top:calc(var(--s-2) * -1)}
.stuck__h{display:flex;align-items:center;gap:var(--s-1);color:var(--t-1)}.stuck__h b{font-weight:var(--w-m)}
.stuck__s,.stuck__m{margin:0;color:var(--t-2)}.stuck__m.is-err{color:var(--down)}
.stuck__a{display:flex;flex-wrap:wrap;gap:var(--s-2)}
.stuck .steps{margin-top:0}
[data-testid="other-assets"] .stuck__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2)}
[data-testid="other-assets"] .stuck__row .stuck__h{gap:var(--s-2)}
#stuckPf:not([hidden]){margin:var(--s-3) 0}

/* 26.10 owner: AI brief above the price-change windows */
.side__brief{display:flex;flex-direction:column;gap:var(--s-2);padding:var(--s-3) var(--pad);box-shadow:inset 0 -1px 0 var(--line)}
.side__brief .eyebrow{display:flex;align-items:center;gap:var(--s-1)}
.side__brief .prose{margin:0;color:var(--t-1)}.side__brief .prose.is-wait{color:var(--t-3)}

/* 26.10 Ask AI: tickers in an answer link to the token page (owner: «ссылки на токены… сразу перейти и купить») */
.prose a.as-tk{color:var(--a);text-decoration:none;font-weight:var(--w-m);border-bottom:1px solid rgba(202,177,106,.35)}
.prose a.as-tk:hover{color:var(--a-hover);border-bottom-color:var(--a-hover)}
