/* Arda Quant cabinet v2 — one token set (BRIEF.md). Paper & ink, hairlines, Playfair numerals (opsz pinned low → solid hairlines), motion tied to state. */
/* Display face: Playfair (variable opsz 5–1200 / wght, OFL, self-hosted latin + cyrillic). Chosen 02.09 over system Didot: at 44px Didot's
   hairline is 0.5px (the "1" and "$" vanish on paper); Playfair at opsz 12 keeps the Didone silhouette with 1.5–2px hairlines, native Cyrillic
   for RU titles, lining + tabular figures for tickers. Runner-up: Old Standard TT. Research sheets: scratchpad/fonts (2026-09-02). */
@font-face{font-family:"Playfair";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/playfair-cyrillic.woff2) format("woff2");unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116}
@font-face{font-family:"Playfair";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/playfair-latin.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{
  color-scheme:light;
  /* light = warm paper, not screen-white (11.09, Max: «белая ощущается ненатурально, контрастит»): off-white with a hue bias toward the
     ink, ink softened from #121212 to a warm near-black, hairlines a step warmer; greens/reds one step less saturated. Dark is the default. */
  --paper:#faf9f6;--paper-2:#f3f1ec;--paper-3:#ebe8e1;--rule:#e2dfd7;--rule-2:#cfcabf;
  --ink:#1c1b18;--ink-2:#4d4a44;--ink-3:#7b776d;--ink-4:#b3afa5;
  --pos:#2a6a3a;--neg:#973030;--warn:#8a6a1c;--pos-bg:#e9f1ea;--neg-bg:#f6e9e7;--warn-bg:#f5efe0;
  --gold:#b08d2e;--gold-2:#e3c76c;--gold-ink:#7a5f14;
  --scrim:rgba(18,18,18,.28);--shadow:0 24px 60px -24px rgba(18,18,18,.35),0 2px 8px rgba(18,18,18,.06);
  --display:"Playfair","Playfair Display",Georgia,"Times New Roman",serif;
  --ui:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace;
  --ease:cubic-bezier(.16,1,.3,1);--ease-io:cubic-bezier(.77,0,.175,1);--spring:cubic-bezier(.22,1.25,.36,1);
  --t-micro:200ms;--t-scene:420ms;
  --sb:236px;--top:56px;--row:48px;--r:6px;--r-card:10px;--page-max:1320px;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --paper:#131313;--paper-2:#1a1a19;--paper-3:#232322;--rule:#292927;--rule-2:#3a3936;
  --ink:#ebe8e0;--ink-2:#b9b5ab;--ink-3:#9a968d;--ink-4:#5a5751;
  --pos:#74b183;--neg:#d0716b;--warn:#d1a95a;--pos-bg:#1a2a1e;--neg-bg:#2c1c1b;--warn-bg:#2a2418;
  --gold:#c9a44a;--gold-2:#f1d98c;--gold-ink:#e8cf7e;
  --scrim:rgba(0,0,0,.55);--shadow:0 24px 60px -24px rgba(0,0,0,.8),0 2px 8px rgba(0,0,0,.4);
}
html[data-sb="rail"]{--sb:64px}
html[data-density="compact"]{--row:40px}
@media(prefers-reduced-motion:reduce){:root{--t-micro:0ms;--t-scene:0ms}}
html[data-motion="off"]{--t-micro:0ms;--t-scene:0ms}

/* ---------- base ---------- */
*{box-sizing:border-box}html,body{margin:0;height:100%}
body{background:var(--paper);color:var(--ink);font:14px/1.5 var(--ui);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:4px}
::selection{background:var(--ink);color:var(--paper)}
html{font-optical-sizing:none} /* opsz is pinned per display rule via --fvs (font: shorthands reset variation settings) */
h1,h2,h3,h4{margin:0;font-weight:400}
.num,.n,td.n,th.n{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.pos{color:var(--pos)}.neg{color:var(--neg)}.warn{color:var(--warn)}.muted{color:var(--ink-3)}.dim{color:var(--ink-2)}
.small{font-size:12px}.xs{font-size:11px}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.hide{display:none!important}.right{text-align:right}.nowrap{white-space:nowrap}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.eyebrow{font-size:12.5px;letter-spacing:0;color:var(--ink-3);font-weight:500}
.serif{font-family:var(--display)}

/* ---------- icons ---------- */
.i{width:18px;height:18px;flex:none;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;vertical-align:-4px}
.i.sm{width:15px;height:15px}.i.xs{width:13px;height:13px;vertical-align:-2px}

/* ---------- app shell ---------- */
.app{display:grid;grid-template-columns:var(--sb) minmax(0,1fr);min-height:100dvh;transition:grid-template-columns var(--t-scene) var(--ease)}
.app.is-auth{grid-template-columns:1fr}
.sb{position:sticky;top:0;height:100dvh;background:var(--paper-2);border-right:1px solid var(--rule);display:flex;flex-direction:column;padding:14px 10px;gap:6px;overflow:hidden;transition:width var(--t-scene) var(--ease)}
.sb-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px;min-height:44px;text-decoration:none}
.sb-mark{width:28px;height:28px;flex:none;border-radius:7px;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:16px;line-height:1}
.sb-name{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-variation-settings:"opsz" 8;font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:13px;white-space:nowrap;overflow:hidden;transition:opacity var(--t-micro)}
.sb-name small{display:block;font-family:var(--ui);font-size:11px;letter-spacing:0;text-transform:none;color:var(--ink-3);margin-top:2px}
html[data-sb="rail"] .sb-name,html[data-sb="rail"] .sb-lbl,html[data-sb="rail"] .sb-badge,html[data-sb="rail"] .sb-sec,html[data-sb="rail"] .sb-user-txt,html[data-sb="rail"] .sb-kbd{opacity:0;pointer-events:none;width:0;overflow:hidden}
.sb-nav{position:relative;display:flex;flex-direction:column;gap:2px}
.sb-sec{padding:18px 12px 6px;font-size:15px;font-weight:500;letter-spacing:0;color:var(--ink);white-space:nowrap;transition:opacity var(--t-micro)}
.sb-sec:first-of-type{padding-top:8px}
.sb-a{position:relative;display:flex;align-items:center;gap:11px;height:38px;padding:0 11px;border-radius:8px;color:var(--ink-2);text-decoration:none;white-space:nowrap;transition:color var(--t-micro),background var(--t-micro);z-index:1}
.sb-a:hover{background:var(--paper-3);color:var(--ink)}
.sb-a.on{color:var(--paper)}.sb-a.on:hover{background:none}
.sb-a .i{transition:transform var(--t-micro) var(--ease)}.sb-a:hover .i{transform:translateX(1px)}
.sb-ink{position:absolute;left:0;width:100%;height:38px;background:var(--ink);border-radius:8px;z-index:0;top:0;opacity:0;transition:transform var(--t-scene) var(--ease),opacity var(--t-micro)}
.sb-ink.live{opacity:1}
.sb-lbl{flex:1;overflow:hidden;text-overflow:ellipsis;transition:opacity var(--t-micro)}
.sb-badge{font:11px/1 var(--mono);padding:4px 6px;border-radius:999px;background:var(--paper);border:1px solid var(--rule-2);color:var(--ink-2);transition:opacity var(--t-micro)}
.sb-a.on .sb-badge{background:transparent;border-color:rgba(255,255,255,.35);color:var(--paper)}
.sb-kbd{font:10.5px var(--ui);color:var(--ink-3);opacity:0;transition:opacity 80ms}.sb-a:hover .sb-kbd{opacity:1}
.sb-foot{margin-top:auto;display:flex;flex-direction:column;gap:2px}
.sb-user{display:flex;align-items:center;gap:10px;height:44px;padding:0 8px;border-radius:8px;text-align:left;width:100%}
.sb-user:hover{background:var(--paper-3)}
.avatar{width:28px;height:28px;flex:none;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-size:11px;font-weight:600;letter-spacing:.04em}
.avatar.lg{width:40px;height:40px;font-size:14px}
.sb-user-txt{min-width:0;line-height:1.2;transition:opacity var(--t-micro)}.sb-user-txt b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sb-user-txt span{font-size:11px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.sb-toggle{display:flex;align-items:center;justify-content:center;width:100%;height:32px;border-radius:8px;color:var(--ink-3)}
.sb-toggle:hover{background:var(--paper-3);color:var(--ink)}.sb-toggle .i{transition:transform var(--t-scene) var(--ease)}
html[data-sb="rail"] .sb-toggle .i{transform:rotate(180deg)}

.main{min-width:0;display:flex;flex-direction:column}
.top{position:sticky;top:0;z-index:20;height:var(--top);display:flex;align-items:center;gap:10px;padding:0 max(24px,calc((100% - var(--page-max)) / 2 + 28px));background:color-mix(in srgb,var(--paper) 82%,transparent);backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid var(--rule)}
.crumbs{display:flex;align-items:center;gap:6px;min-width:0;font-size:13px;color:var(--ink-3)}
.crumbs a{text-decoration:none;color:var(--ink-3)}.crumbs a:hover{color:var(--ink)}.crumbs b{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumbs .i{width:14px;height:14px;color:var(--ink-4)}
.top-sp{flex:1}
.top-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:32px;min-width:32px;padding:0 9px;border-radius:8px;color:var(--ink-2);border:1px solid transparent;transition:background var(--t-micro),color var(--t-micro),border-color var(--t-micro)}
.top-btn:hover{background:var(--paper-3);color:var(--ink)}.top-btn.b{border-color:var(--rule-2)}
.kbd{font:11px var(--ui);color:var(--ink-3);border:1px solid var(--rule-2);border-radius:4px;padding:1px 5px;line-height:1.2}
.search-btn{display:inline-flex;align-items:center;gap:8px;height:32px;padding:0 10px 0 9px;border-radius:8px;border:1px solid var(--rule-2);color:var(--ink-3);background:var(--paper);min-width:210px;transition:border-color var(--t-micro),color var(--t-micro)}
.search-btn:hover{border-color:var(--ink-3);color:var(--ink-2)}.search-btn span{flex:1;text-align:left;font-size:13px}
.lang{display:inline-flex;border:1px solid var(--rule-2);border-radius:8px;overflow:hidden;height:32px}
.lang button{padding:0 9px;font-size:11px;letter-spacing:.06em;color:var(--ink-3);transition:background var(--t-micro),color var(--t-micro)}
.lang button.on{background:var(--ink);color:var(--paper)}
.theme-btn .i{transition:transform var(--t-scene) var(--ease)}.theme-btn:hover .i{transform:rotate(-20deg)}

/* live island (amicro/dynamic-island → informational pill) */
.island{display:inline-flex;align-items:center;gap:8px;height:30px;padding:0 12px 0 10px;border-radius:999px;background:var(--ink);color:var(--paper);font-size:12px;white-space:nowrap;overflow:hidden;transition:background var(--t-scene) var(--ease)}
.island .dot{width:6px;height:6px;border-radius:50%;background:var(--pos);position:relative;flex:none}
.island[data-mode="live"] .dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--pos);animation:ping 2.4s var(--ease) infinite}
.island[data-mode="stale"]{background:var(--warn-bg);color:var(--warn)}.island[data-mode="stale"] .dot{background:var(--warn)}
.island[data-mode="sync"] .dot{background:var(--ink-3)}
.island .sig{width:12px;height:12px;display:grid;place-items:center;flex:none}.island .sig>*{grid-area:1/1}.island .bars{display:none;gap:2px;align-items:center;height:10px}.island .bars i{width:2px;height:3px;background:var(--paper);border-radius:1px;animation:bar .8s ease-in-out infinite}
.island .bars i:nth-child(2){animation-delay:.15s}.island .bars i:nth-child(3){animation-delay:.3s}
.island.sync .bars{display:inline-flex}.island.sync .dot{display:none}
.island .txt{opacity:.9}
@keyframes ping{0%{transform:scale(.6);opacity:.9}80%{transform:scale(1.6);opacity:0}100%{opacity:0}}
@keyframes bar{0%,100%{height:3px}50%{height:9px}}
@keyframes shimmerTxt{0%,100%{opacity:.55}50%{opacity:1}}
html[data-motion="off"] .island .dot::after,html[data-motion="off"] .island .bars i{animation:none}
@media(prefers-reduced-motion:reduce){.island .dot::after,.island .bars i{animation:none}}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;pointer-events:none;opacity:0;transition:opacity .25s}.progress.on{opacity:1}.progress i{display:block;height:100%;background:var(--ink);transform-origin:0 50%;transform:scaleX(0)}

.page{padding:22px 28px 72px;max-width:var(--page-max);width:100%;margin-inline:auto}   /* desktop: the page column is centred in the main area (11.09 — on 1920/2560 it sat pinned to the sidebar); the top bar's padding follows the same column */
@media(min-width:2000px){:root{--page-max:1440px}.page{padding:28px 36px 80px}}
.ph{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.ph h1{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:28px;letter-spacing:.005em;line-height:1.15;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ph .sub{color:var(--ink-3);font-size:13px;margin-top:4px;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ph .sub .sep{color:var(--ink-4)}
.ph-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.back{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;color:var(--ink-3);text-decoration:none;margin-bottom:8px;transition:color var(--t-micro)}
.back:hover{color:var(--ink)}.back .i{transition:transform var(--t-micro) var(--ease)}.back:hover .i{transform:translateX(-2px)}
h2.sec{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:19px;margin:30px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--rule);display:flex;align-items:baseline;justify-content:space-between;gap:12px}
h2.sec small{font:12px var(--ui);color:var(--ink-3)}
h3.lbl{font-size:12.5px;letter-spacing:0;color:var(--ink-3);font-weight:500;margin:0 0 10px}

/* ---------- buttons (spectrum-ui/morph-button → state machine) ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 14px;border-radius:var(--r);border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-size:13.5px;font-weight:500;white-space:nowrap;text-decoration:none;user-select:none;transition:background var(--t-micro),color var(--t-micro),border-color var(--t-micro),transform var(--t-micro) var(--ease),opacity var(--t-micro),box-shadow var(--t-micro)}
.btn:hover{background:var(--ink-2);border-color:var(--ink-2)}.btn:active{transform:scale(.97)}
.btn.sec{background:var(--paper);color:var(--ink);border-color:var(--rule-2)}.btn.sec:hover{border-color:var(--ink-3);background:var(--paper-2)}
.btn.ghost{background:none;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--paper-3);color:var(--ink)}
.btn.danger{background:var(--paper);color:var(--neg);border-color:var(--rule-2)}.btn.danger:hover{background:var(--neg);color:#fff;border-color:var(--neg)}
.btn.sm{height:30px;padding:0 10px;font-size:12.5px;border-radius:5px}.btn.lg{height:42px;padding:0 18px;font-size:14px}.btn.wide{width:100%}
.btn.icon{width:36px;padding:0}.btn.icon.sm{width:30px}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;pointer-events:none}
.btn .i{width:16px;height:16px}
.btn>.lbl{display:inline-flex;align-items:center;gap:7px;transition:opacity var(--t-micro),transform var(--t-micro) var(--ease)}
.btn>.st{position:absolute;inset:0;display:none;align-items:center;justify-content:center;gap:7px}
.btn[data-state="loading"]>.lbl,.btn[data-state="success"]>.lbl,.btn[data-state="error"]>.lbl{opacity:0;transform:translateY(-6px)}
.btn[data-state]:not([data-state="idle"])>.st{display:inline-flex;animation:stIn .26s var(--ease) both}
@keyframes stIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.btn[data-state="success"]{background:var(--pos);border-color:var(--pos);color:#fff}.btn[data-state="error"]{background:var(--neg);border-color:var(--neg);color:#fff;animation:shake .26s ease-in-out}
.btn.sec[data-state="success"],.btn.ghost[data-state="success"]{background:var(--pos-bg);color:var(--pos);border-color:var(--pos)}
@keyframes shake{0%,100%{transform:none}20%{transform:translateX(-3px)}40%{transform:translateX(3px)}60%{transform:translateX(-2px)}80%{transform:translateX(2px)}}
.spin{width:16px;height:16px;animation:rot .8s linear infinite}.spin circle{stroke:currentColor;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-dasharray:47 63}
@keyframes rot{to{transform:rotate(360deg)}}
.draw path{stroke-dasharray:30;stroke-dashoffset:30;animation:draw .28s var(--ease) forwards}.draw path:nth-child(2){animation-delay:.05s}
@keyframes draw{to{stroke-dashoffset:0}}
.magnet{will-change:transform}

/* ---------- pills / tags / dots ---------- */
.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;letter-spacing:.04em;border:1px solid var(--rule-2);color:var(--ink-2);background:var(--paper);white-space:nowrap;vertical-align:middle}
.pill.ink{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pill.pos{color:var(--pos);border-color:color-mix(in srgb,var(--pos) 40%,transparent);background:var(--pos-bg)}
.pill.neg{color:var(--neg);border-color:color-mix(in srgb,var(--neg) 40%,transparent);background:var(--neg-bg)}
.pill.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-bg)}
.pill.up{text-transform:uppercase}
.tag{display:inline-block;border:1px solid var(--rule-2);border-radius:4px;padding:1px 6px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);vertical-align:middle;line-height:1.5}
.tag.real{border-color:var(--ink);color:var(--ink)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ink-4);position:relative;flex:none}
.dot.live{background:var(--pos)}.dot.live::after{content:"";position:absolute;inset:-3px;border-radius:50%;border:1px solid var(--pos);animation:ping 2.4s var(--ease) infinite}
.dot.warn{background:var(--warn)}.dot.neg{background:var(--neg)}.dot.off{background:var(--ink-4)}
@media(prefers-reduced-motion:reduce){.dot.live::after{animation:none}}html[data-motion="off"] .dot.live::after{animation:none}

/* ---------- cards / tiles ---------- */
.card{background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-card);padding:18px 20px}
.card.tight{padding:14px 16px}.card.flat{background:var(--paper-2);border-color:transparent}
.card-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.card-h h3{font-size:13.5px;font-weight:500}.card-h .r{display:flex;gap:8px;align-items:center}
.grid{display:grid;gap:14px}
.grid>*{min-width:0} /* grid items default to min-width:auto → a wide table inside a card pushed the page wider than the phone */
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-main{grid-template-columns:minmax(0,1fr) 340px}
@media(max-width:1100px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g-main{grid-template-columns:1fr}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.g4,.g3,.g2{grid-template-columns:1fr}}
.kpi{position:relative;display:block;text-decoration:none;color:inherit;background:var(--paper);border:1px solid var(--rule);border-radius:var(--r-card);padding:16px 18px 14px;overflow:hidden;transition:border-color var(--t-micro),transform var(--t-micro) var(--ease)}
a.kpi:hover,.kpi.link:hover{border-color:var(--rule-2);transform:translateY(-1px)}
.kpi::before{content:"";position:absolute;inset:-1px;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--ink) 5%,transparent),transparent 70%);opacity:0;transition:opacity var(--t-scene);pointer-events:none}
.kpi:hover::before{opacity:1}
.kpi .l{font-size:12.5px;letter-spacing:0;color:var(--ink-3);display:flex;justify-content:space-between;align-items:center;gap:8px}
.kpi .v{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:30px;line-height:1.1;margin-top:8px;letter-spacing:-.005em;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.kpi .v.sm{font-size:23px}
.kpi .s{font-size:12px;color:var(--ink-3);margin-top:6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.kpi-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;min-width:0}.kpi-row>div{min-width:0}.kpi .spark{width:96px;height:32px;flex:none;opacity:.9;margin-bottom:2px}
.kpi .cmp{display:inline-flex;align-items:center;gap:3px;font-family:var(--mono);font-size:12px;padding:1px 6px;border-radius:999px}
.cmp.pos{background:var(--pos-bg);color:var(--pos)}.cmp.neg{background:var(--neg-bg);color:var(--neg)}.cmp.flat{background:var(--paper-3);color:var(--ink-3)}
.hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:6px 0 22px}
.hero .big{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-variation-settings:"opsz" 18;font-size:56px;line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.hero .big-sub{margin-top:10px;display:flex;gap:14px;flex-wrap:wrap;font-size:13.5px;color:var(--ink-2)}
@media(max-width:640px){.hero .big{font-size:42px}}

/* ---------- book tiles (02.09): paper cards, one world at a time (real OR demo — the SCOPE switch), no mode tags or glyphs.
   Anatomy: identity (id + ONE status pill; stale folds into it) · label · money (equity + net deposits + 30d sparkline) ·
   ledger strip (result / MTD / drawdown / to stop) · provenance strip (day · since · client). Card-local --c-* tokens stay for reuse. */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:16px;position:relative}
@media(max-width:520px){.tiles{grid-template-columns:1fr}}
.tile{position:relative;display:block;text-decoration:none;color:var(--c-ink);--c-ink:var(--ink);--c-ink-2:var(--ink-2);--c-ink-3:var(--ink-3);--c-rule:var(--rule);background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:20px 22px 16px;overflow:hidden;transition:transform var(--t-scene) var(--ease),border-color var(--t-micro),box-shadow var(--t-scene)}
.tile:hover{transform:translateY(-2px);border-color:var(--rule-2);box-shadow:0 14px 34px -20px rgba(0,0,0,.28)}
.tile::before{content:"";position:absolute;inset:-1px;background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--c-ink) 6%,transparent),transparent 70%);opacity:0;transition:opacity var(--t-scene);pointer-events:none}
.tile:hover::before{opacity:1}
.tile>*{position:relative}
.tile-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tile-h .id{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:22px;line-height:1.1;letter-spacing:.005em;color:var(--c-ink)}
.tile-lbl{font-size:13px;color:var(--c-ink-2);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tile-v{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin-top:18px}
.tile-v .eq{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:34px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:-.005em;color:var(--c-ink)}
.tile-v .eq small{display:flex;align-items:baseline;gap:7px;font:11.5px var(--ui);letter-spacing:0;color:var(--c-ink-3);margin-top:9px}
.tile-v .eq small b{font:500 12.5px var(--mono);letter-spacing:0;text-transform:none;color:var(--c-ink-2);font-variant-numeric:tabular-nums}
.tile .spark{width:160px;height:46px;flex:none;color:var(--c-ink)}
.slot{display:flex;flex-direction:column;gap:3px;min-width:0}
.slot small{font:11.5px var(--ui);letter-spacing:0;color:var(--c-ink-3,var(--ink-3));white-space:nowrap}
.slot b{font:400 13.5px var(--mono);font-variant-numeric:tabular-nums;color:var(--c-ink,var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.slot b .dim{color:var(--c-ink-3,var(--ink-3))}
.slot b a{color:inherit}
.tile-f{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--c-rule)}
.tile-f .slot b{font-size:15px}
.tile-meta{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-top:12px;padding-top:10px;border-top:1px solid var(--c-rule)}
.tile-meta .slots{display:flex;gap:18px;flex-wrap:wrap;min-width:0}
.tile-meta .slot b{font-size:12.5px}
.tile.blank{border-style:dashed}
.tile.blank .eq{color:var(--c-ink-3)}
.tile.blank .eq small{margin-top:6px;letter-spacing:.04em;text-transform:none;font-size:12px}
  border-color:#2a2b2d;
  background:linear-gradient(115deg,rgba(255,255,255,.11) 0%,rgba(255,255,255,0) 30%,rgba(255,255,255,0) 62%,rgba(255,255,255,.06) 100%),repeating-linear-gradient(100deg,rgba(255,255,255,.035) 0 1px,rgba(0,0,0,0) 1px 3px),linear-gradient(160deg,#2f3134 0%,#1d1e20 55%,#27282b 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.55),0 18px 40px -24px rgba(0,0,0,.55)}
/* narrow tiles (phone / 3-up on small laptops): ledger strip 2×2, sparkline shrinks, deposit label never wraps */
@container tile (max-width: 430px){.tile-f{grid-template-columns:repeat(2,1fr);row-gap:12px}.tile .spark{width:36%}}
.tile{container-type:inline-size;container-name:tile}
.tile-v .eq small{white-space:nowrap}
/* ---------- meta strip: page-header facts get their own slots instead of a grey subline ---------- */
.meta{display:inline-flex;flex-wrap:wrap;margin-top:12px;border:1px solid var(--rule);border-radius:10px;background:var(--paper);overflow:hidden;max-width:100%}
.meta .slot{padding:9px 16px 8px;border-right:1px solid var(--rule);flex:0 1 auto}
.meta .slot:last-child{border-right:0}
.meta .slot b{font-size:13.5px;display:inline-flex;align-items:center;gap:8px}
.meta .slot b .warn{color:var(--warn)}

/* ---------- attention list ---------- */
.att{display:flex;flex-direction:column}
.att a,.att .row{display:flex;align-items:flex-start;gap:12px;padding:11px 4px;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;transition:background var(--t-micro);border-radius:6px}
.att a:hover{background:var(--paper-2)}.att a:last-child,.att .row:last-child{border-bottom:0}
.att .ic{width:28px;height:28px;flex:none;border-radius:8px;display:grid;place-items:center;background:var(--paper-3);color:var(--ink-2)}
.att .ic.warn{background:var(--warn-bg);color:var(--warn)}.att .ic.neg{background:var(--neg-bg);color:var(--neg)}.att .ic.pos{background:var(--pos-bg);color:var(--pos)}
.att .tx{flex:1;min-width:0;line-height:1.35}.att .tx b{font-weight:500;display:block}.att .tx span{font-size:12px;color:var(--ink-3)}
.att .go{color:var(--ink-4);align-self:center;transition:transform var(--t-micro) var(--ease),color var(--t-micro)}.att a:hover .go{transform:translateX(2px);color:var(--ink)}

/* ---------- tables ---------- */
.tbl{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--rule);border-radius:var(--r-card);background:var(--paper)}
.tbl.bare{border:0;border-radius:0;background:none}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{font-size:12px;letter-spacing:0;color:var(--ink-3);font-weight:500;text-align:left;padding:0 12px;height:38px;border-bottom:1px solid var(--rule);white-space:nowrap;background:var(--paper);position:sticky;top:0;z-index:1}
th.sort{cursor:pointer;user-select:none}th.sort:hover{color:var(--ink)}th.sort .i{width:12px;height:12px;vertical-align:-1px;opacity:.5}th.sort.on .i{opacity:1}
td{padding:0 12px;height:var(--row);border-bottom:1px solid var(--rule);vertical-align:middle}
tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right}
tr.link{cursor:pointer;transition:background var(--t-micro)}tr.link:hover td{background:var(--paper-2)}
tr.link td:first-child{position:relative}tr.link td:first-child::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:2px;background:var(--ink);border-radius:2px;transform:scaleY(0);transition:transform var(--t-micro) var(--ease)}tr.link:hover td:first-child::before{transform:scaleY(1)}
td .sub{display:block;font-size:11.5px;color:var(--ink-3);line-height:1.2;margin-top:2px}
td.acts{text-align:right;white-space:nowrap}td.acts{white-space:nowrap;text-align:right}
td.acts .btn{margin-left:6px;vertical-align:middle}
.tbl.dense td{height:40px}
.tfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink-3)}
.name-cell{display:flex;align-items:center;gap:10px}.name-cell .avatar{width:26px;height:26px;font-size:10px}

/* ---------- filters / chips / seg / tabs ---------- */
.bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 14px}
.bar .sp{flex:1}
.chips{display:inline-flex;gap:6px;flex-wrap:wrap}
.chip{height:30px;padding:0 11px;border-radius:999px;border:1px solid var(--rule-2);background:var(--paper);color:var(--ink-2);font-size:12.5px;display:inline-flex;align-items:center;gap:6px;transition:background var(--t-micro),color var(--t-micro),border-color var(--t-micro)}
.chip:hover{border-color:var(--ink-3)}.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip .cnt{font-family:var(--mono);font-size:11px;opacity:.7}
.seg{position:relative;display:inline-flex;align-items:center;height:32px;padding:3px;border-radius:8px;background:var(--paper-3);gap:2px}
.seg.sm{height:28px}.seg.wide{display:flex;width:100%}
.seg button{position:relative;z-index:1;height:100%;padding:0 12px;border-radius:6px;font-size:12.5px;color:var(--ink-3);white-space:nowrap;transition:color var(--t-micro);flex:1;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.seg button.on{color:var(--ink)}.seg button:hover:not(.on){color:var(--ink-2)}
.seg .thumb{position:absolute;top:3px;bottom:3px;left:0;width:0;border-radius:6px;background:var(--paper);box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 1px var(--rule);transition:transform var(--t-micro) var(--ease),width var(--t-micro) var(--ease);z-index:0}
html[data-theme="dark"] .seg .thumb{background:var(--paper);box-shadow:0 0 0 1px var(--rule-2)}
.seg.ink button.on{color:var(--paper)}.seg.ink .thumb{background:var(--ink);box-shadow:none}
.tabs{position:relative;display:flex;gap:22px;border-bottom:1px solid var(--rule);margin:22px 0 18px;overflow-x:auto;scrollbar-width:none}
.tabs::-webkit-scrollbar{display:none}
.tabs a,.tabs button{padding:10px 2px;font-size:13.5px;color:var(--ink-3);text-decoration:none;white-space:nowrap;display:inline-flex;gap:7px;align-items:center;transition:color var(--t-micro);position:relative;flex:none}
.tabs a:hover,.tabs button:hover{color:var(--ink-2)}.tabs a.on,.tabs button.on{color:var(--ink)}
.tabs .cnt{font:11px var(--mono);padding:2px 6px;border-radius:999px;background:var(--paper-3);color:var(--ink-3)}
.tabs .tabs-ink{position:absolute;bottom:-1px;height:2px;background:var(--ink);left:0;width:0;transition:transform var(--t-scene) var(--ease),width var(--t-scene) var(--ease);border-radius:2px}
.vtabs{display:flex;flex-direction:column;gap:2px;position:sticky;top:calc(var(--top) + 20px)}
.vtabs a{display:flex;align-items:center;gap:10px;height:38px;padding:0 12px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-size:13.5px;transition:background var(--t-micro),color var(--t-micro)}
.vtabs a:hover{background:var(--paper-3);color:var(--ink)}.vtabs a.on{background:var(--ink);color:var(--paper)}
.settings{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}
@media(max-width:860px){.settings{grid-template-columns:1fr}.vtabs{position:static;flex-direction:row;overflow-x:auto;padding-bottom:4px}.vtabs a{flex:none}}
.srow{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid var(--rule)}
.srow:last-child{border-bottom:0}.srow .tx b{display:block;font-weight:500}.srow .tx span{font-size:12.5px;color:var(--ink-3);display:block;margin-top:2px;max-width:520px}
.srow .ctl{flex:none;display:flex;gap:8px;align-items:center}
.switch{position:relative;width:38px;height:22px;border-radius:999px;background:var(--rule-2);transition:background var(--t-micro);flex:none}
.switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--paper);box-shadow:0 1px 2px rgba(0,0,0,.25);transition:transform var(--t-micro) var(--ease)}
.switch[aria-checked="true"]{background:var(--ink)}.switch[aria-checked="true"]::after{transform:translateX(16px)}
.switch:disabled{opacity:.4;cursor:default}
.swatches{display:flex;gap:10px}
.swatch{width:84px;border-radius:8px;border:1px solid var(--rule-2);padding:4px;background:var(--paper);cursor:pointer;transition:border-color var(--t-micro),transform var(--t-micro) var(--ease)}
.swatch:hover{transform:translateY(-1px)}.swatch.on{border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.swatch .pv{height:46px;border-radius:5px;display:grid;grid-template-columns:14px 1fr;gap:3px;padding:4px;overflow:hidden}
.swatch .pv i{display:block;border-radius:2px}
.swatch span{display:block;font-size:11px;text-align:center;padding:5px 0 2px;color:var(--ink-2)}

/* ---------- forms ---------- */
.field{display:block;margin:0 0 14px;min-width:0}
.field>span{display:block;font-size:12px;color:var(--ink-3);margin-bottom:5px}
.field input,.field select,.field textarea{width:100%;height:38px;padding:0 11px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--paper);transition:border-color var(--t-micro),box-shadow var(--t-micro)}
.field textarea{height:auto;padding:9px 11px;resize:vertical;min-height:70px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 10%,transparent)}
.field input[readonly]{background:var(--paper-2);color:var(--ink-2)}
.field .hint{font-size:11.5px;color:var(--ink-3);margin-top:5px}.field.err input{border-color:var(--neg)}.field .hint.err{color:var(--neg)}
.row{display:flex;gap:12px;flex-wrap:wrap}.row>.field{flex:1 1 180px}
.pw{position:relative}.pw input{padding-right:40px}.pw .eye{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:28px;height:28px;display:grid;place-items:center;color:var(--ink-3);border-radius:5px}.pw .eye:hover{color:var(--ink);background:var(--paper-3)}
.meter{display:flex;gap:4px;margin-top:8px}.meter i{flex:1;height:3px;border-radius:2px;background:var(--rule);transition:background var(--t-micro)}
.meter[data-n="1"] i:nth-child(-n+1),.meter[data-n="2"] i:nth-child(-n+2){background:var(--neg)}.meter[data-n="3"] i:nth-child(-n+3){background:var(--warn)}.meter[data-n="4"] i{background:var(--pos)}
.msg{padding:10px 12px;border:1px solid var(--rule);background:var(--paper-2);border-radius:var(--r);font-size:13px;margin:0 0 14px;display:flex;gap:10px;align-items:flex-start}
.msg.err{border-color:color-mix(in srgb,var(--neg) 40%,transparent);color:var(--neg);background:var(--neg-bg)}.msg.ok{border-color:color-mix(in srgb,var(--pos) 40%,transparent);color:var(--pos);background:var(--pos-bg)}.msg.warn{border-color:color-mix(in srgb,var(--warn) 45%,transparent);background:var(--warn-bg)}
.fset{margin:0 0 6px;padding:0 0 16px;border-bottom:1px solid var(--rule)}.fset:last-of-type{border:0}.fset h4{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-weight:500;margin:16px 0 12px}
.copy{display:flex;align-items:center;gap:8px;padding:8px 8px 8px 12px;border:1px solid var(--rule-2);border-radius:var(--r);background:var(--paper-2);font-family:var(--mono);font-size:12px;word-break:break-all}
.copy span{flex:1}

/* ---------- chart ---------- */
.chart-wrap{position:relative}
.chart{display:block;width:100%;height:280px}
.chart.sm{height:200px}
.chart-ro{position:absolute;top:8px;left:12px;pointer-events:none;display:none;background:var(--paper);border:1px solid var(--rule-2);border-radius:8px;padding:8px 10px;font-size:12px;box-shadow:var(--shadow);min-width:150px;z-index:2}
.chart-ro.on{display:block}.chart-ro b{display:block;font-family:var(--mono);font-size:14px;font-weight:500}.chart-ro span{display:block;color:var(--ink-3)}
.chart-legend{display:flex;gap:16px;font-size:12px;color:var(--ink-3);margin-top:8px;flex-wrap:wrap}
.chart-legend i{display:inline-block;width:14px;height:0;border-top:2px solid var(--ink);vertical-align:middle;margin-right:6px}.chart-legend i.dash{border-top-style:dashed;border-color:var(--ink-3)}
.spark{display:block}

/* ---------- overlays: dialog, sheet, palette, menu, toast ---------- */
#layer{position:relative;z-index:50}
.scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(6px) saturate(120%);-webkit-backdrop-filter:blur(6px) saturate(120%);opacity:0;transition:opacity var(--t-micro);z-index:60}
.scrim.on{opacity:1}
.dlg{position:fixed;inset:0;display:grid;place-items:center;padding:16px;z-index:61;pointer-events:none}
.dlg .panel{pointer-events:auto;width:100%;max-width:440px;background:var(--paper);border:1px solid var(--rule);border-radius:14px;box-shadow:var(--shadow);padding:22px 22px 18px;transform:translateY(14px) scale(.97);opacity:0;transition:transform .34s var(--spring),opacity var(--t-micro),height .3s var(--ease);overflow:hidden}
.dlg.on .panel{transform:none;opacity:1}.dlg .panel.wide{max-width:560px}
.dlg h3{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:20px;line-height:1.2;margin-bottom:6px}
.dlg p{margin:0 0 14px;color:var(--ink-2);font-size:13.5px}
.dlg .acts{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;flex-wrap:wrap}.dlg .acts .left{margin-right:auto}
.dlg .step{animation:stepIn .26s var(--ease) both}
@keyframes stepIn{from{opacity:0;transform:translateY(8px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
.dlg .icon-h{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;margin-bottom:12px;background:var(--paper-3);color:var(--ink)}
.dlg .icon-h.neg{background:var(--neg-bg);color:var(--neg)}.dlg .icon-h.pos{background:var(--pos-bg);color:var(--pos)}
.steps{display:flex;gap:6px;margin:0 0 16px}.steps i{flex:1;height:2px;background:var(--rule);border-radius:2px;transition:background var(--t-micro)}.steps i.on{background:var(--ink)}
.done-check{width:64px;height:64px;border-radius:50%;background:var(--pos-bg);color:var(--pos);display:grid;place-items:center;margin:8px auto 14px}.done-check .i{width:30px;height:30px;stroke-width:2}
.sheet{position:fixed;top:0;right:0;bottom:0;width:min(460px,100%);background:var(--paper);border-left:1px solid var(--rule);box-shadow:var(--shadow);z-index:61;transform:translateX(100%);transition:transform .38s var(--ease);display:flex;flex-direction:column}
.sheet.on{transform:none}
.sheet-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:18px 20px 14px;border-bottom:1px solid var(--rule)}
.sheet-h h3{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:20px}
.sheet-b{padding:18px 20px 40px;overflow:auto;flex:1}
.sheet-f{padding:12px 20px;border-top:1px solid var(--rule);display:flex;gap:8px;justify-content:flex-end;background:var(--paper)}
.menu{position:fixed;min-width:200px;background:var(--paper);border:1px solid var(--rule-2);border-radius:10px;box-shadow:var(--shadow);padding:6px;z-index:62;transform-origin:top right;transform:scale(.96) translateY(-4px);opacity:0;transition:transform .2s var(--spring),opacity var(--t-micro)}
.menu.on{transform:none;opacity:1}
.menu a,.menu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:6px;text-decoration:none;font-size:13.5px;color:var(--ink);text-align:left;transition:background var(--t-micro)}
.menu a:hover,.menu button:hover{background:var(--paper-3)}.menu .sep{height:1px;background:var(--rule);margin:6px 4px}.menu .hd{padding:8px 10px 6px;font-size:12px;color:var(--ink-3);line-height:1.3}.menu .hd b{display:block;color:var(--ink);font-weight:500}
.menu .danger{color:var(--neg)}.menu .danger:hover{background:var(--neg-bg)}
.palette{position:fixed;left:50%;top:14vh;width:min(600px,calc(100% - 32px));transform:translateX(-50%) translateY(8px) scale(.98);opacity:0;background:var(--paper);border:1px solid var(--rule-2);border-radius:14px;box-shadow:var(--shadow);z-index:62;overflow:hidden;transition:transform .3s var(--spring),opacity var(--t-micro)}
.palette.on{transform:translateX(-50%);opacity:1}
.palette input{width:100%;height:52px;border:0;border-bottom:1px solid var(--rule);background:none;padding:0 18px 0 46px;font-size:15px;outline:none}
.palette .pi{position:absolute;left:16px;top:17px;color:var(--ink-3)}
.palette .list{max-height:52vh;overflow:auto;padding:6px}
.palette .grp{padding:10px 12px 4px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.palette .it{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:8px;cursor:pointer;font-size:13.5px}
.palette .it.on{background:var(--ink);color:var(--paper)}.palette .it .i{color:var(--ink-3)}.palette .it.on .i{color:var(--paper)}
.palette .it .r{margin-left:auto;font-size:12px;color:var(--ink-3)}.palette .it.on .r{color:var(--paper);opacity:.8}
.palette .it b{font-weight:500}.palette .it span{color:var(--ink-3);font-size:12px}.palette .it.on span{color:var(--paper);opacity:.8}
.palette .empty{padding:24px;text-align:center;color:var(--ink-3);font-size:13px}
.palette .foot{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--rule);font-size:11px;color:var(--ink-3)}
.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:70;pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:center;gap:10px;min-width:240px;max-width:380px;padding:11px 14px;border-radius:10px;background:var(--ink);color:var(--paper);font-size:13px;box-shadow:var(--shadow);transform:translateY(12px);opacity:0;transition:transform .3s var(--spring),opacity var(--t-micro)}
.toast.on{transform:none;opacity:1}.toast.err{background:var(--neg);color:#fff}.toast.ok .i{color:var(--pos)}html[data-theme="dark"] .toast.ok .i{color:var(--pos)}
.toast .x{margin-left:auto;opacity:.6}.toast .x:hover{opacity:1}

/* ---------- skeleton (amicro/skeleton) ---------- */
.skel{position:relative;overflow:hidden;background:var(--paper-3);border-radius:6px;color:transparent!important}
.skel::after{content:"";position:absolute;inset:0;width:60%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--paper) 55%,transparent),transparent);animation:sweep 1.5s var(--ease-io) infinite}
@keyframes sweep{from{transform:translateX(-160%)}to{transform:translateX(280%)}}
.skel-line{height:12px;margin:6px 0}.skel-line.w40{width:40%}.skel-line.w60{width:60%}.skel-line.w80{width:80%}
.skel-tile{height:150px;border-radius:var(--r-card)}.skel-chart{height:280px;border-radius:var(--r-card)}.skel-row{height:var(--row);border-radius:0}
@media(prefers-reduced-motion:reduce){.skel::after{animation:none}}

/* ---------- number ticker (beui/number-ticker) ---------- */
.tk{display:inline-flex;align-items:baseline;white-space:nowrap}
.tk .d{display:inline-block;position:relative;height:1em;overflow:hidden;line-height:1;text-align:center;vertical-align:baseline}
.tk .d>span{display:block;transform:translateY(calc(var(--n,0) * -1em));transition:transform .9s var(--ease)}
.tk .d>span i{display:block;height:1em;font-style:normal;line-height:1}
.tk .c{display:inline-block;line-height:1}

/* ---------- misc ---------- */
.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 20px;color:var(--ink-3);gap:8px}
.empty .ic{width:44px;height:44px;border-radius:12px;background:var(--paper-3);display:grid;place-items:center;color:var(--ink-2);margin-bottom:4px}
.empty b{color:var(--ink);font-weight:500}.empty p{margin:0;font-size:13px;max-width:360px}
.timeline{position:relative;padding-left:22px}.timeline::before{content:"";position:absolute;left:6px;top:8px;bottom:8px;width:1px;background:var(--rule)}
.tl-day{position:sticky;top:var(--top);background:var(--paper);padding:10px 0 6px;margin-left:-22px;padding-left:22px;font-size:12.5px;font-weight:500;letter-spacing:0;color:var(--ink-3);z-index:1}
.tl-it{position:relative;display:grid;grid-template-columns:56px 1fr;gap:12px;padding:8px 0;font-size:13px;align-items:start}
.tl-it::before{content:"";position:absolute;left:-19px;top:14px;width:7px;height:7px;border-radius:50%;background:var(--paper);border:1.5px solid var(--ink-3)}
.tl-it.sys::before{border-color:var(--ink-4);background:var(--paper-3)}.tl-it.neg::before{border-color:var(--neg);background:var(--neg)}
.tl-it .t{font-family:var(--mono);font-size:12px;color:var(--ink-3);padding-top:1px}
.tl-it .b{min-width:0}.tl-it .b b{font-weight:500}.tl-it .b .who{color:var(--ink-3)}.tl-it .b .det{font-family:var(--mono);font-size:11.5px;color:var(--ink-3);margin-top:3px;word-break:break-all}
.tl-it.sys .b{color:var(--ink-2)}
.legs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.leg{border:1px solid var(--rule);border-radius:8px;padding:9px 11px;font-size:12.5px;transition:border-color var(--t-micro)}.leg:hover{border-color:var(--rule-2)}
.leg b{font-weight:500;display:flex;justify-content:space-between;align-items:center}.leg b .tag{font-size:9.5px}.leg .n{display:block;font-size:12px;color:var(--ink-3);margin-top:3px}
.stat{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--rule);font-size:13px}.stat:last-child{border:0}.stat b{font-weight:500;font-family:var(--mono);font-variant-numeric:tabular-nums}
.stat span{color:var(--ink-3)}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:13px}.kv dt{color:var(--ink-3);margin:0}.kv dd{margin:0;font-family:var(--mono);font-variant-numeric:tabular-nums}
details.x summary{cursor:pointer;font-size:13px;color:var(--ink-2);list-style:none;display:flex;align-items:center;gap:6px;padding:6px 0}
details.x summary::-webkit-details-marker{display:none}details.x summary .i{transition:transform var(--t-micro) var(--ease)}details.x[open] summary .i{transform:rotate(90deg)}
pre.code{font:12px/1.45 var(--mono);white-space:pre-wrap;word-break:break-word;background:var(--paper-2);padding:12px 14px;border:1px solid var(--rule);border-radius:8px;margin:0;color:var(--ink-2)}
.docs{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}
.doc{display:flex;gap:12px;align-items:center;padding:14px 16px;border:1px solid var(--rule);border-radius:var(--r-card);text-decoration:none;color:inherit;transition:border-color var(--t-micro),transform var(--t-scene) var(--ease)}
.doc:hover{border-color:var(--rule-2);transform:translateY(-1px)}.doc .ic{width:40px;height:40px;flex:none;border-radius:9px;background:var(--paper-3);display:grid;place-items:center;color:var(--ink-2)}
.doc b{display:block;font-weight:500;font-size:13.5px;line-height:1.3}.doc span{font-size:12px;color:var(--ink-3)}
.foot{margin-top:56px;padding-top:14px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink-3);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
.viewas{display:flex;align-items:center;gap:10px;background:var(--ink);color:var(--paper);padding:8px 24px;font-size:12.5px}
.viewas b{font-weight:500}.viewas .sp{flex:1}.viewas button{color:inherit;text-decoration:underline;text-underline-offset:3px}
.callout{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:var(--r-card);border:1px solid var(--rule);background:var(--paper-2);font-size:13px}
.callout.warn{background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 40%,transparent)}.callout.neg{background:var(--neg-bg);border-color:color-mix(in srgb,var(--neg) 40%,transparent)}
.callout .i{flex:none;margin-top:1px}.callout b{font-weight:500}
.preview-tag{font-size:10px;letter-spacing:.1em;text-transform:uppercase;border:1px dashed var(--rule-2);color:var(--ink-3);padding:1px 6px;border-radius:4px;vertical-align:middle;margin-left:6px}
.stack{display:flex;flex-direction:column;gap:14px}

/* ---------- auth ---------- */
.auth-wrap{min-height:100dvh;display:grid;grid-template-columns:1fr;place-items:center;padding:24px;background:var(--paper)}
.auth{width:100%;max-width:380px}
.auth .brand{display:flex;align-items:center;gap:12px;margin-bottom:32px;text-decoration:none}
.auth .brand .sb-mark{width:36px;height:36px;font-size:20px;border-radius:9px}
.auth .brand .sb-name{font-size:15px}
.auth h1{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:30px;margin-bottom:6px}.auth .sub{color:var(--ink-3);font-size:13.5px;margin-bottom:26px}
.auth .quick{margin-top:20px;padding-top:16px;border-top:1px dashed var(--rule-2)}
.auth .quick .eyebrow{margin-bottom:8px}.auth .quick .chips .chip{height:28px}
.auth-side{display:none}
@media(min-width:1000px){.auth-wrap{grid-template-columns:1fr 1fr}.auth-side{display:block;height:100%;width:100%;background:var(--paper-2);border-left:1px solid var(--rule);position:relative;overflow:hidden}.auth-side canvas{position:absolute;inset:0;width:100%;height:100%}.auth-side .cap{position:absolute;left:40px;bottom:36px;max-width:360px;font-size:13px;color:var(--ink-3);line-height:1.5}.auth-side .cap b{display:block;font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:22px;color:var(--ink);margin-bottom:6px;font-weight:400}}

/* ---------- mobile ---------- */
.mob-top{display:none}
.tabbar{display:none}
@media(max-width:860px){
  .app{grid-template-columns:1fr}.sb{display:none}
  .top{padding:0 12px;gap:6px}.search-btn{min-width:0;width:32px;padding:0;justify-content:center}.search-btn span,.search-btn .kbd{display:none}.top .lang{display:none}.crumbs{font-size:12.5px}.island{padding:0 10px}.island .txt{display:none}
  .page{padding:16px 16px 96px}.ph h1{font-size:24px}
  .tabbar{display:grid;grid-template-columns:repeat(var(--tabs,4),1fr);position:fixed;left:0;right:0;bottom:0;height:calc(58px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--rule);z-index:30}
  .tabbar a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;color:var(--ink-3);text-decoration:none;transition:color var(--t-micro)}
  .tabbar a.on{color:var(--ink)}.tabbar a .i{width:20px;height:20px}
  .mob-top{display:inline-flex}
  .hero .big{font-size:40px}
  .g-main{grid-template-columns:1fr}
  .kpi .v{font-size:26px}
  .sheet{width:100%}
}

/* refresh-mode: no page-enter animation, tickers land instantly (only value changes roll) */
html.norise .page>*{animation:none}

/* ---------- scope switch (Real | Demo): sidebar segment, topbar tag while demo is on ---------- */
.sb-scope{padding:0 8px 8px}
.sb-scope .seg{height:30px}
html[data-sb="rail"] .sb-scope{display:none}
.scope-tag{display:none;align-items:center;height:30px;padding:0 10px;border-radius:999px;border:1px dashed var(--ink-3);color:var(--ink-2);font-size:12px;white-space:nowrap}
html[data-scope="demo"] .scope-tag{display:inline-flex}
html[data-scope="demo"] .sb-brand .sb-mark{background:var(--paper);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
/* footers: cancel sits at the left edge, the primary action at the right edge, equal paddings */
.sheet-f{justify-content:flex-start}
.sheet-f>.btn:last-child{margin-left:auto}
.dlg .acts{justify-content:flex-start}
.dlg .acts>.btn:last-child{margin-left:auto}
/* the vertical scrollbar no longer shifts the layout between scrolling and non-scrolling pages */
html{scrollbar-gutter:stable}

html[data-theme="dark"] .seg.ink .thumb{background:var(--ink);box-shadow:none}
.scope-tag .short{display:none}
@media(max-width:760px){.scope-tag .full{display:none}.scope-tag .short{display:inline}.scope-tag{padding:0 8px;height:28px}}

/* ---------- client overview: plaques (≥2 accounts) + account toggles in the chart legend ---------- */
.plaques{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:18px}
.plaque{display:block;padding:14px 16px 12px;border:1px solid var(--rule);border-radius:12px;background:var(--paper);text-decoration:none;color:inherit;transition:transform var(--t-scene) var(--ease),border-color var(--t-micro),box-shadow var(--t-scene)}
.plaque:hover{transform:translateY(-2px);border-color:var(--rule-2);box-shadow:0 12px 30px -20px rgba(0,0,0,.25)}
.plaque-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.plaque-h .lbl{font-size:13px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.plaque-v{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:24px;line-height:1.05;margin-top:10px}
.plaque-s{display:flex;gap:6px;align-items:baseline;margin-top:6px;font:500 12px var(--mono);font-variant-numeric:tabular-nums}
.plaque-s .dim{font:12px var(--ui);color:var(--ink-3)}
.chart-legend .sp{flex:1}
.togs{display:inline-flex;gap:6px;flex-wrap:wrap}
.tog{display:inline-flex;align-items:center;gap:7px;height:26px;padding:0 10px 0 8px;border:1px solid var(--rule-2);border-radius:999px;font-size:12px;color:var(--ink-3);cursor:pointer;user-select:none;transition:border-color var(--t-micro),color var(--t-micro),background var(--t-micro)}
.tog input{display:none}
.tog .sw{width:12px;height:12px;border-radius:50%;border:1px solid var(--rule-2);display:grid;place-items:center;transition:background var(--t-micro),border-color var(--t-micro)}
.tog.on{border-color:var(--ink);color:var(--ink)}
.tog.on .sw{background:var(--ink);border-color:var(--ink)}
.tog.on .sw::after{content:"";width:4px;height:4px;border-radius:50%;background:var(--paper)}
.tog:hover{border-color:var(--ink-3)}

/* the freshness pill keeps one width in both states (Live / Stale, RU / EN) so the topbar never shifts when the word changes */
.island .txt{display:inline-block;min-width:42px}

@media(max-width:640px){h2.sec small{display:none}h2.sec{display:block}}

/* ---------- the glance (03.09, Max): greeting + calendar leaf · balance · change pill · curve · period control · story line.
   The home is a glance, not a dashboard: one number, one change, one curve, one control. Nothing else above the fold. ---------- */
.gl{position:relative;padding:2px 0 0}
.gl-head{display:flex;align-items:stretch;justify-content:space-between;gap:16px;margin-bottom:26px}
.gl-hi{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:30px;line-height:1.15;letter-spacing:.005em;font-weight:400;margin:0;display:flex;flex-direction:column;justify-content:center;min-height:72px;min-width:0}
.gl-hi .sal{color:var(--ink)}.gl-hi .nm{color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leaf{flex:none;width:70px;height:72px;display:flex;flex-direction:column;border:1px solid var(--rule-2);border-radius:12px;background:var(--paper);overflow:hidden;text-align:center;box-shadow:0 1px 0 var(--rule)}
.leaf .wd{display:block;flex:none;background:var(--ink);color:var(--paper);font-size:10px;line-height:1;padding:5px 4px 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.leaf .dn{display:block;flex:1;min-height:0;font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:27px;line-height:1;padding-top:6px;font-weight:400;color:var(--ink)}
.leaf .mo{display:block;flex:none;font-size:10.5px;line-height:1;color:var(--ink);padding:0 3px 7px;white-space:nowrap}
.gl-lbl{font-size:13px;color:var(--ink-3)}
.gl-bal{font-family:var(--display);font-variation-settings:"opsz" 18;font-variant-numeric:lining-nums tabular-nums;font-size:84px;line-height:1;letter-spacing:-.018em;margin-top:6px;display:flex;align-items:baseline;white-space:nowrap;color:var(--ink);transition:color var(--t-micro)}
.gl-bal .hc{font-size:.46em;margin-left:2px}
.gl-bal.scrub{color:var(--ink-2)}
.gl-bal .tk .d>span{transition-duration:1.3s}
.gl.blank .gl-bal{color:var(--ink-4)}
.gl-delta{margin-top:12px;min-height:30px;display:flex;align-items:center}
.gl-pop{display:inline-flex;align-items:center;gap:10px;transition:opacity .18s var(--ease),transform .18s var(--ease)}
.gl-pop.out{opacity:0;transform:translateY(-6px) scale(.96)}
.gl-pop.in{opacity:0;transform:translateY(6px) scale(.96)}
.gl-pill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px 0 9px;border-radius:999px;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:14px;letter-spacing:-.01em;background:var(--paper-3);color:var(--ink-2)}
.gl-pill b{font-weight:500}
.gl-pill .pc{opacity:.75;font-size:13px}
.gl-pill.pos{background:var(--pos-bg);color:var(--pos)}.gl-pill.neg{background:var(--neg-bg);color:var(--neg)}.gl-pill.flat{color:var(--ink-3)}
.gl-pill .i{width:14px;height:14px}
.gl-pw{font-size:13.5px;color:var(--ink-3)}
.gl-chart{margin:18px 0 0;position:relative}
.gl-chart canvas{display:block;width:100%;height:280px;touch-action:pan-y;cursor:crosshair}
.gl-per{margin-top:14px;height:38px;border-radius:10px;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.gl-per button{font-size:13px;border-radius:8px;cursor:pointer;padding:0 16px}
.gl-per button.on{cursor:grab}
.gl-per .thumb{border-radius:8px;transition:none}
.gl-story{margin-top:12px;font-size:12.5px;color:var(--ink-3)}
.gl-story .sep{color:var(--ink-4);margin:0 8px}
@media(min-width:861px){.gl-per{display:flex;width:max-content;margin-left:auto;margin-right:auto}.gl-head{margin-bottom:30px}.gl-hi{font-size:32px}}   /* the period control sits centred under the curve — glued to the left it read as a stray on a 21:9 monitor (Max, 16.09) */
/* accounts under the glance (client with ≥2): name + balance on the left, the period result on the right — sorted by return */
.acc{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:var(--r-card);background:var(--paper);overflow:hidden}
.acc-r{display:flex;align-items:center;gap:12px;padding:14px 12px 14px 16px;text-decoration:none;color:inherit;border-bottom:1px solid var(--rule);transition:background var(--t-micro)}
.acc-r:last-child{border-bottom:0}.acc-r:hover{background:var(--paper-2)}
.acc-n{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.acc-n b{font-weight:500;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acc-n small{font:13px var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-3)}
.acc-v{display:flex;flex-direction:column;align-items:flex-end;gap:2px;white-space:nowrap}.acc-v b{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:22px;line-height:1;font-weight:400}.acc-v small{font:12px var(--mono);font-variant-numeric:tabular-nums;opacity:.85}
.acc-r .go{color:var(--ink-4);transition:transform var(--t-micro) var(--ease),color var(--t-micro)}.acc-r:hover .go{transform:translateX(2px);color:var(--ink)}
.top-brand{display:none;font-family:var(--display);font-variation-settings:"opsz" 8;font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:12.5px;color:var(--ink);white-space:nowrap}
.sec-act{display:flex;gap:8px;align-items:center}
h2.sec .sec-act .btn.sm{height:28px}
@media(max-width:860px){
  .gl-hi{font-size:27px}
  .gl-head{margin-bottom:22px}
  #mob-menu{display:none}
  .crumbs>a,.crumbs>.i{display:none} /* phone: the crumb strip is just the page name */
  html[data-role="client"] .search-btn{display:none}
  .vtabs{scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;mask-image:linear-gradient(90deg,#000 88%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:24px}.vtabs::-webkit-scrollbar{display:none}.vtabs a{scroll-snap-align:start}
  .gl-bal{font-size:54px;margin-top:4px}
  .gl-delta{margin-top:10px}
  .gl-chart{margin:12px -4px 0}
  .gl-chart canvas{height:200px}
  .gl-per{display:flex;width:100%;height:44px;margin-top:12px}
  .gl-per button{font-size:13.5px;padding:0}
  html[data-role="client"] #main[data-view="overview"] .crumbs,html[data-role="client"] #main[data-view="overview"] .search-btn{display:none}
  html[data-role="client"] #main[data-view="overview"] .top-brand{display:inline-flex}
}

/* leaderboard: rank · name · 30-day shape · return (Playfair) · $ · equity. The tinted bar behind each row = |return| vs the best row,
   so the sorted list reads as a chart without being one. Waiting books sit last, unranked. */
.lb{display:flex;flex-direction:column;border:1px solid var(--rule);border-radius:var(--r-card);background:var(--paper);overflow:hidden}
.lb-r{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) 128px 118px 104px 104px 18px;align-items:center;gap:14px;padding:0 12px 0 10px;height:66px;text-decoration:none;color:inherit;border-bottom:1px solid var(--rule);transition:background var(--t-micro)}
.lb-r:last-child{border-bottom:0}
.lb-r::before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);background:linear-gradient(90deg,color-mix(in srgb,var(--tone,var(--ink)) 9%,transparent),color-mix(in srgb,var(--tone,var(--ink)) 2%,transparent));pointer-events:none;transition:width var(--t-scene) var(--ease)}
.lb-r:hover{background:var(--paper-2)}
.lb-r>*{position:relative;min-width:0}
.lb-i{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:21px;color:var(--ink-3);text-align:center}
.lb-r:first-child .lb-i{color:var(--ink)}
.lb-n{display:flex;flex-direction:column;gap:1px}
.lb-n b{font-weight:500;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-n small{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lb-s .spark{width:120px;height:34px;display:block}
.lb-p{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:25px;text-align:right;letter-spacing:-.005em;white-space:nowrap}
.lb-u{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px;text-align:right;white-space:nowrap}
.lb-e{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink-3);text-align:right;white-space:nowrap}
.lb-r .go{color:var(--ink-4);transition:transform var(--t-micro) var(--ease),color var(--t-micro)}.lb-r:hover .go{transform:translateX(2px);color:var(--ink)}
.lb-r.wait{color:var(--ink-3)}.lb-r.wait .lb-p{font:13px var(--ui);color:var(--ink-3)}.lb-r.wait .lb-i{color:var(--ink-4)}
.lb-more{display:flex;justify-content:flex-end;margin-top:10px;font-size:13px}
.lb-more a{color:var(--ink-3);text-decoration:none;display:inline-flex;align-items:center;gap:4px;transition:color var(--t-micro)}.lb-more a:hover{color:var(--ink)}
@media(max-width:760px){
  .lb-r{grid-template-columns:26px minmax(0,1fr) auto 16px;grid-template-rows:auto auto;height:auto;padding:12px 8px 12px 6px;gap:2px 10px}
  .lb-s,.lb-e{display:none}
  .lb-i{grid-row:1/3;font-size:18px}.lb-n{grid-row:1/3}.lb-p{grid-column:3;grid-row:1;font-size:22px}.lb-u{grid-column:3;grid-row:2;font-size:12px}.lb-r .go{grid-column:4;grid-row:1/3}
  .lb-r.wait .lb-p{grid-row:1/3}
}

/* ---------- phone: tables keep three columns, never a side scroll (Max, 03.09). Each table names what survives. ---------- */
@media(max-width:860px){
  .t-books th:nth-child(2),.t-books td:nth-child(2),.t-books th:nth-child(n+5),.t-books td:nth-child(n+5){display:none}
  .t-months th:nth-child(2),.t-months td:nth-child(2),.t-months th:nth-child(3),.t-months td:nth-child(3),.t-months th:nth-child(4),.t-months td:nth-child(4),.t-months th:nth-child(n+7),.t-months td:nth-child(n+7){display:none}
  .t-clients th:nth-child(2),.t-clients td:nth-child(2),.t-clients th:nth-child(3),.t-clients td:nth-child(3),.t-clients th:nth-child(n+6),.t-clients td:nth-child(n+6){display:none}
  .t-users th:nth-child(3),.t-users td:nth-child(3),.t-users th:nth-child(4),.t-users td:nth-child(4){display:none}
  .t-flows th:nth-child(n+4),.t-flows td:nth-child(n+4){display:none}
  .t-stmts th:nth-child(2),.t-stmts td:nth-child(2){display:none}
  .tbl td,.tbl th{padding-left:10px;padding-right:10px}
}

/* ======================= PHONE SHELL (09.09, Max): an app, not a CRM — mobile.js ======================= */
/* Desktop is untouched: everything below lives behind the one phone breakpoint shared with mobile.js (isPhone). */
.isl-wrap,.mob-bar,.gl-live,.gl-sep,.subseg,.tabbar{display:none}
@media(max-width:860px){
  .top,#page .back,.tabbar{display:none}                      /* no top bar; pushed screens get the glass bar below instead of the in-page «back» link */
  .page{padding:12px 16px calc(112px + env(safe-area-inset-bottom))}
  .main.has-bar .page{padding-top:10px}
  .viewas{padding:8px 16px}

  /* ---- the island: a floating glass pill, a spring in, a slide out; the admin's search sits beside it (Telegram) ---- */
  .isl-wrap{position:fixed;left:0;right:0;bottom:calc(12px + env(safe-area-inset-bottom));z-index:30;display:flex;justify-content:center;align-items:center;gap:10px;padding:0 16px;pointer-events:none;transition:transform .55s var(--spring),opacity .3s var(--ease)}
  .isl-wrap.hid{transform:translateY(calc(100% + 28px + env(safe-area-inset-bottom)));transition:transform .34s cubic-bezier(.4,0,.7,1)}
  .isl,.isl-fab{pointer-events:auto;background:color-mix(in srgb,var(--paper-2) 74%,transparent);backdrop-filter:blur(26px) saturate(180%);-webkit-backdrop-filter:blur(26px) saturate(180%);border:1px solid color-mix(in srgb,var(--rule-2) 55%,transparent);box-shadow:0 14px 34px -14px rgba(0,0,0,.42),0 1px 0 color-mix(in srgb,var(--paper) 55%,transparent) inset}
  html[data-theme="dark"] .isl,html[data-theme="dark"] .isl-fab{background:color-mix(in srgb,var(--paper-3) 72%,transparent);border-color:color-mix(in srgb,var(--rule-2) 70%,transparent);box-shadow:0 16px 40px -14px rgba(0,0,0,.85),0 1px 0 rgba(255,255,255,.05) inset}
  .isl{position:relative;flex:1 1 auto;max-width:400px;height:62px;padding:5px;display:grid;grid-template-columns:repeat(var(--n,4),1fr);border-radius:999px}
  .isl-thumb{position:absolute;top:5px;bottom:5px;left:5px;width:calc((100% - 10px) / var(--n,4));border-radius:999px;background:color-mix(in srgb,var(--ink) 9%,transparent);opacity:0;transition:transform .5s var(--spring),opacity .2s}
  html[data-theme="dark"] .isl-thumb{background:color-mix(in srgb,var(--ink) 13%,transparent)}
  .isl-thumb.live{opacity:1}
  .isl a{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink-3);-webkit-tap-highlight-color:transparent;touch-action:manipulation;user-select:none;-webkit-user-select:none;transition:color .2s}
  .isl a.on{color:var(--ink)}
  .isl-a{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:10.5px;font-weight:500;line-height:1;letter-spacing:.01em;transition:transform .34s var(--spring)}
  .isl a.press .isl-a{transform:scale(.86);transition:transform .1s ease}
  .isl .i{width:22px;height:22px;stroke-width:1.7}
  .isl a.on .i{animation:islBump .48s var(--spring)}
  @keyframes islBump{0%{transform:scale(1)}38%{transform:scale(1.16)}100%{transform:scale(1)}}
  .isl-fab{flex:none;width:62px;height:62px;border-radius:50%;display:grid;place-items:center;color:var(--ink);transition:transform .34s var(--spring)}
  .isl-fab.press{transform:scale(.88);transition:transform .1s ease}
  .isl-fab .i{width:24px;height:24px;stroke-width:1.7}
  html[data-motion="off"] .isl-wrap,html[data-motion="off"] .isl-thumb,html[data-motion="off"] .isl-a,html[data-motion="off"] .isl-fab{transition:none}
  html[data-motion="off"] .isl a.on .i{animation:none}

  /* ---- pushed screens: 44px glass bar under the notch, «‹ parent» on the left, the title arrives when the heading has gone ---- */
  .mob-bar{position:sticky;top:0;z-index:20;display:flex;align-items:center;height:calc(44px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 8px 0;background:color-mix(in srgb,var(--paper) 84%,transparent);backdrop-filter:blur(16px) saturate(140%);-webkit-backdrop-filter:blur(16px) saturate(140%)}
  .mob-bar::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--rule);opacity:0;transition:opacity .2s}
  .mob-bar.titled::after{opacity:1}
  .mob-back{display:inline-flex;align-items:center;gap:1px;height:44px;padding:0 12px 0 2px;color:var(--ink);text-decoration:none;font-size:15px;-webkit-tap-highlight-color:transparent;transition:opacity .15s}
  .mob-back:active{opacity:.5}
  .mob-back .i{width:24px;height:24px;stroke-width:1.9}
  .mob-title{position:absolute;left:104px;right:104px;top:env(safe-area-inset-top);height:44px;line-height:44px;text-align:center;font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translateY(6px);transition:opacity .22s var(--ease),transform .22s var(--ease);pointer-events:none}
  .mob-bar.titled .mob-title{opacity:1;transform:none}

  /* ---- home = one screen: the number in the middle, the curve, the period pill, the story line; the list begins one screen down ---- */
  .gl-head{display:none}
  .gl{min-height:calc(100dvh - 12px);padding:0 0 74px;display:flex;flex-direction:column;justify-content:center;text-align:center}   /* exactly one screen; centred in the space above the island; the list starts at the fold */
  .foot{display:none}
  .bar{flex-wrap:nowrap}.bar .field{display:none}                       /* lists: the island's search button replaces the inline field; chips scroll in one row */
  .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}.chips.ovf{padding-right:24px;mask-image:linear-gradient(90deg,#000 90%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 90%,transparent)}.chips::-webkit-scrollbar{display:none}.chips .chip{flex:none}   /* the fade only where something is hidden (11.09) */
  .gl-lbl{font-size:13px}
  .gl-bal{justify-content:center;font-size:58px;margin-top:6px}
  .gl-delta{justify-content:center;margin-top:10px}
  .gl-chart{margin:16px -16px 0}
  .gl-chart canvas{height:clamp(180px,33dvh,300px)}
  .gl-per{margin-top:16px}
  .gl-story{margin-top:16px;display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;font-size:12.5px}
  .gl-live{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2)}.gl-sep{display:inline}.gl-lv{white-space:nowrap;display:inline-flex;align-items:center}
  .gl-live i{width:6px;height:6px;border-radius:50%;background:var(--pos);position:relative}
  .gl-live[data-mode="live"] i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--pos);animation:ping 2.4s var(--ease) infinite}
  .gl-live[data-mode="stale"] i{background:var(--warn)}
  .gl-live .dim{color:var(--ink-3)}
  html[data-motion="off"] .gl-live i::after{animation:none}
  .sec-act{display:none}                                       /* «New book» lives on the Books screen, not on the glance */
  .gl+h2.sec{margin-top:10px}
  html[data-role="client"] .gl-lbl{margin-top:0}

  /* ---- sub-navigation inside a tab (Clients | Users) ---- */
  .subseg{display:flex;height:40px;margin:-4px 0 14px;border-radius:10px}
  .subseg a{flex:1;display:flex;align-items:center;justify-content:center;border-radius:8px;text-decoration:none;font-size:13.5px;color:var(--ink-3);transition:color .2s}
  .subseg a.on{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12),0 0 0 1px var(--rule)}
  .settings .vtabs{display:none}                              /* the Profile hub replaces the section tabs */
  .settings{grid-template-columns:1fr}
}
@media(max-width:860px) and (max-height:640px){.gl-bal{font-size:50px}.gl-chart canvas{height:180px}}

/* ---- Profile hub: grouped list (phone only — it is only ever rendered there) ---- */
.hub-h{display:flex;align-items:center;gap:14px;padding:6px 2px 16px}
.hub-h .avatar.lg{width:52px;height:52px;font-size:17px}
.hub-n{flex:1;min-width:0}
.hub-n b{display:block;font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:25px;line-height:1.1;font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-n span{display:block;font-size:12.5px;color:var(--ink-3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hub-g{margin-top:16px}
.hub-g h3{font-size:12.5px;color:var(--ink-3);font-weight:500;padding:0 14px 6px}
.hub-l{border:1px solid var(--rule);border-radius:14px;background:var(--paper);overflow:hidden}
.prow{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:8px 12px 8px 14px;border-bottom:1px solid var(--rule);text-decoration:none;color:inherit;text-align:left;-webkit-tap-highlight-color:transparent;transition:background .15s}
.prow:last-child{border-bottom:0}
a.prow:active,button.prow:active{background:var(--paper-2)}
.prow .pi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--paper-3);color:var(--ink-2);flex:none}
.prow .pt{flex:1;min-width:0}
.prow .pt b{display:block;font-weight:500;font-size:14.5px;line-height:1.25}
.prow .pt span{display:block;font-size:12px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prow .pc{flex:none;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink-2)}
.prow .go{color:var(--ink-4);flex:none}
.prow.danger{color:var(--neg)}.prow.danger .pi{background:var(--neg-bg);color:var(--neg)}
.prow .seg.sm{height:32px}
.prow .seg.sm button{padding:0 11px;font-size:12.5px}
.hub-foot{margin-top:24px;text-align:center;font-size:11.5px;color:var(--ink-4)}

/* ======================= PHONE HOME v2 — the audit pass (09.09, «мобильная конфета»): wallet anatomy on our tokens ======================= */
/* Read against Phantom / TG Wallet / Coinbase: hero anchored to the top under a slim identity row, the list peeks at the fold, one fact per line,
   the change pill in the UI face, solid segmented thumb, rows = avatar · name · fact · result. Everything phone-only; desktop keeps the glance as is. */
@media(max-width:860px){
  .gl{min-height:0;padding:0 0 4px;justify-content:flex-start;text-align:center}
  .m-hd{display:flex;align-items:center;justify-content:space-between;height:40px;margin:0 0 22px}
  .m-brand{font-family:var(--display);font-variation-settings:"opsz" 8;font-weight:500;letter-spacing:.14em;text-transform:uppercase;font-size:12px;color:var(--ink-2)}
  .m-hd .gl-live{height:28px;padding:0 10px 0 9px;border-radius:999px;background:var(--paper-2);font-size:12px;color:var(--ink-2)}
  .m-hd .gl-live .dim{color:var(--ink-3)}
  .gl-lbl{font-size:13.5px;color:var(--ink-3)}
  .gl-bal{font-size:clamp(64px,20.5vw,84px);letter-spacing:-.024em;margin-top:8px;max-width:100%}   /* 11.09 Max: the balance owns the screen — fluid to the width, fitBal() in home.js shrinks it only if a long number would clip */
  .gl-bal .hc{font-size:.44em;margin-left:3px;color:var(--ink-2)}
  .gl-delta{margin-top:12px;min-height:32px}
  .gl-pop{gap:8px}
  .gl-pill{height:32px;padding:0 12px;gap:6px;font:600 14px/1 var(--ui);font-variant-numeric:tabular-nums;letter-spacing:-.01em;border-radius:999px}
  .gl-pill .i{display:none}
  .gl-pill .pc{font-weight:500;font-size:13.5px;opacity:.78}
  .gl-pill.pos{background:color-mix(in srgb,var(--pos) 16%,transparent)}.gl-pill.neg{background:color-mix(in srgb,var(--neg) 16%,transparent)}
  .gl-pw{font-size:13.5px}
  .gl-chart{margin:12px -16px 0}
  .gl-chart canvas{height:clamp(170px,30dvh,260px)}
  .gl-per{margin-top:10px;height:40px;border-radius:12px;background:var(--paper-2);padding:3px}
  .gl-per button{font-size:13px;font-weight:500;border-radius:9px}
  .gl-per .thumb{border-radius:9px;background:var(--paper-3);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--paper) 60%,transparent),0 1px 2px rgba(0,0,0,.18)}
  html[data-theme="dark"] .gl-per .thumb{background:color-mix(in srgb,var(--ink) 12%,var(--paper-2));box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 1px 3px rgba(0,0,0,.4)}
  .gl-story{margin-top:14px;font-size:12.5px;color:var(--ink-3)}
  .gl-story .sep{margin:0 6px}

  /* section heads: app titles, not document headings */
  .gl~h2.sec,.gl~.card~h2.sec,#page .gl~*+h2.sec{font:600 17px/1.2 var(--ui);letter-spacing:-.01em;border-bottom:0;padding-bottom:0;margin:28px 0 10px;display:flex;align-items:center;gap:8px}
  h2.sec .cnt{font:500 12px/1 var(--mono);padding:4px 7px;border-radius:999px;background:var(--paper-3);color:var(--ink-3)}
  h2.sec .cnt.neg{background:var(--neg-bg);color:var(--neg)}

  /* wallet rows */
  .m-list{display:flex;flex-direction:column;border-radius:16px;background:var(--paper-2);overflow:hidden}
  .mrow{position:relative;display:flex;align-items:center;gap:12px;padding:12px 14px 12px 12px;text-decoration:none;color:inherit;border-bottom:1px solid color-mix(in srgb,var(--rule) 70%,transparent);-webkit-tap-highlight-color:transparent;transition:background .15s,transform .15s var(--ease)}
  .mrow:last-child{border-bottom:0}
  .mrow:active{background:var(--paper-3);transform:scale(.985)}
  .mrow::before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w,0%);background:linear-gradient(90deg,color-mix(in srgb,var(--tone,var(--ink)) 10%,transparent),transparent);pointer-events:none;transition:width .6s var(--ease)}
  .mrow>*{position:relative}
  .mrow .avatar{width:38px;height:38px;font-size:13px;background:var(--paper-3);color:var(--ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tone,var(--ink)) 35%,transparent)}
  .mrow.wait .avatar{color:var(--ink-3);box-shadow:inset 0 0 0 1px var(--rule-2)}
  .mr-n{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
  .mr-n b{font-weight:500;font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mr-n small{font:12.5px var(--ui);font-variant-numeric:tabular-nums;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mr-v{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
  .mr-v .gl-pill{height:26px;padding:0 9px;font-size:13.5px;border-radius:999px}
  .mr-v small{font:12px var(--ui);font-variant-numeric:tabular-nums;color:var(--ink-3)}
  .mr-v small.pos,.mr-v small.neg{color:var(--ink-3)}
  .mrow.wait .mr-v small{font-size:13px}
  .m-list.enter .mrow{animation:mrowIn .55s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms + 120ms)}
  @keyframes mrowIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  .m-list.enter .mrow::before{animation:mrowBar .8s var(--ease) both;animation-delay:calc(var(--i,0) * 45ms + 260ms)}
  @keyframes mrowBar{from{width:0}}
  html[data-motion="off"] .m-list.enter .mrow,html[data-motion="off"] .m-list.enter .mrow::before{animation:none}

  /* attention as a soft list, same surface as the rows */
  .att-card{padding:4px 6px;border-radius:16px;background:var(--paper-2);border-color:transparent}
  .att-card .att a{padding:12px 8px;border-radius:12px}
  .att-card .att a:active{background:var(--paper-3)}
  .att-card .att .ic{width:34px;height:34px;border-radius:10px}
  .att-card .att .tx b{font-size:14.5px}
  .lb-more{margin-top:12px;justify-content:center}
  .page{padding-bottom:calc(100px + env(safe-area-inset-bottom))}
}

/* ======================= PHONE DEEP SCREENS (audit 09.09): lists, book / account, sheets, settings, docs, log ======================= */
@media(max-width:860px){
  /* page header = app title: sans, the primary action folds into a round button */
  .ph{align-items:center;margin-bottom:14px;gap:12px;flex-wrap:nowrap}
  .ph>div:first-child{min-width:0;flex:1}
  .ph .sub{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ph .sub span{display:inline}.ph .sub .sep{margin:0 6px}
  .ph h1{font:600 26px/1.15 var(--ui);letter-spacing:-.02em;gap:8px}
  .ph .sub{font-size:13px;margin-top:3px}
  .ph-act .btn.magnet{width:44px;height:44px;padding:0;border-radius:50%;font-size:0;gap:0;flex:none}
  .ph-act .btn.magnet .i{width:22px;height:22px}
  .ph-act .btn.sec{height:40px;border-radius:12px}
  .btn{height:44px;border-radius:12px;padding:0 16px;font-size:14.5px}
  .btn.sm{height:34px;border-radius:9px;padding:0 12px;font-size:13px}
  .btn.icon{width:44px;padding:0}
  .field input,.field select{height:44px;border-radius:10px;font-size:15px}
  .field textarea{border-radius:10px;font-size:15px}
  .chip{height:34px;padding:0 13px;font-size:13px}
  .mr-eq{font:500 15px var(--ui);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
  .mrow .pill{height:20px;font-size:10.5px;padding:0 7px;vertical-align:middle}
  .mr-n small .pill{margin-left:4px}
  .mr-n small{display:flex;align-items:center;gap:6px;min-width:0}.mr-n small .tx{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  /* book / account hero */
  .m-hero{padding:6px 0 4px;text-align:center}
  .m-hero-t{display:flex;align-items:center;justify-content:center;gap:10px;font:600 17px/1.2 var(--ui);letter-spacing:-.01em}
  .m-hero-v{font-family:var(--display);font-variation-settings:"opsz" 18;font-variant-numeric:lining-nums tabular-nums;font-size:52px;line-height:1;letter-spacing:-.02em;margin-top:12px}
  .m-hero-d{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;min-height:32px}
  .m-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:16px -16px 0;padding:0 16px 2px;scroll-snap-type:x proximity}
  .m-chips::-webkit-scrollbar{display:none}
  .m-chips.ovf{mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
  button.mrow{text-align:left;width:100%;font:inherit}
  .m-chip{flex:none;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 12px 0 10px;border-radius:999px;background:var(--paper-2);font-size:12.5px;color:var(--ink-2);white-space:nowrap;scroll-snap-align:start}
  .m-chip a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:5px}
  .m-chip .i{width:13px;height:13px;color:var(--ink-3)}
  .m-chip .warn{color:var(--warn)}
  .m-acts{display:flex;gap:8px;margin-top:14px}
  .m-acts .btn{flex:1}.m-acts .btn.icon{flex:none;width:44px}
  .m-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:16px}
  .m-stat{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:14px;background:var(--paper-2)}
  .m-stat small{font-size:12px;color:var(--ink-3)}
  .m-stat b{font:500 17px var(--ui);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
  .m-stat span{font-size:11.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .m-chart{margin-top:16px}
  .m-chart-h{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--ink-3);margin-bottom:4px}
  .m-chart-h .seg.sm{height:30px}
  .m-chart .chart-legend{margin-top:6px;flex-wrap:wrap;font-size:11.5px}
  #main[data-view^="account:"] .back,#main[data-view^="account:"] .ph,#main[data-view^="account:"] .page>.grid.g4{display:none}   /* the phone hero + stat grid carry title, status, facts and the four numbers */
  #main[data-view^="account:"] .m-hero+.m-stats{margin-bottom:4px}

  /* book tabs → segmented */
  .tabs{display:flex;gap:2px;padding:3px;margin:20px 0 14px;border:0;border-radius:12px;background:var(--paper-2);overflow-x:auto}
  .tabs a,.tabs button{flex:1;justify-content:center;padding:9px 4px;border-radius:9px;font-size:12.5px;gap:4px;min-width:0;transition:background .2s,color .2s}
  .tabs a.on,.tabs button.on{background:var(--paper-3);color:var(--ink)}
  .tabs .i{display:none}.tabs .tabs-ink{display:none}
  .tabs .cnt{padding:1px 5px;font-size:10px}

  /* cards flatten into surfaces; grids go single/two columns */
  .page .card{background:var(--paper-2);border-color:transparent;border-radius:16px;padding:16px}
  .page .card .card{background:var(--paper-3)}
  .card-h h3{font-size:14.5px}
  .card-h .btn.sm{height:32px}
  .grid.g4{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .kpi{padding:12px 14px;border-radius:14px;background:var(--paper-2);border-color:transparent}
  .kpi .v{font:500 18px var(--ui);font-variant-numeric:tabular-nums;margin-top:6px;letter-spacing:-.01em}
  .kpi .v.sm{font-size:17px}.kpi .l{font-size:12px}.kpi .s{font-size:11.5px;margin-top:4px}
  .tbl{border-radius:14px;background:var(--paper-2);border-color:transparent}
  .tbl.bare{background:none}
  .tbl th{font-size:11.5px}
  .tfoot{font-size:11.5px}
  h2.sec{font:600 17px/1.2 var(--ui);letter-spacing:-.01em;border-bottom:0;padding-bottom:0;margin:24px 0 10px}
  .legs{grid-template-columns:repeat(2,minmax(0,1fr))}
  .leg{background:var(--paper-3);border-color:transparent;border-radius:10px}
  #tab-xray .grid.g4{gap:6px}
  .kv{font-size:13px}
  .stat{font-size:13px}
  .callout{border-radius:14px}
  .msg{border-radius:12px}
  .code{font-size:11px}

  /* sheets rise from the bottom (beui/bottom-sheet): grip, rounded top, safe-area, drag to dismiss */
  .sheet{top:auto;bottom:0;left:0;right:0;width:100%;max-height:calc(100dvh - 44px - env(safe-area-inset-top));border-left:0;border-top:1px solid var(--rule);border-radius:22px 22px 0 0;transform:translateY(100%);transition:transform .46s cubic-bezier(.32,.72,0,1);box-shadow:0 -20px 60px -20px rgba(0,0,0,.6)}
  .sheet.on{transform:none}
  .sheet::before{content:"";display:block;flex:none;width:36px;height:5px;border-radius:3px;background:var(--rule-2);margin:8px auto 0}
  .sheet-h{padding:10px 16px 12px;border-bottom:0;cursor:grab}
  .sheet-h h3{font:600 18px/1.2 var(--ui);letter-spacing:-.01em}
  .sheet-b{padding:4px 16px calc(24px + env(safe-area-inset-bottom));overscroll-behavior:contain}
  .sheet-f{padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--rule)}
  .sheet-f .btn{flex:1}
  .sheet-b>div[style*="flex-wrap:wrap"]{flex-direction:column;align-items:stretch}.sheet-b>div[style*="flex-wrap:wrap"] .btn{width:100%;height:44px;border-radius:12px}.sheet-b>div[style*="flex-wrap:wrap"] span[style*="flex:1"]{display:none}
  .sheet .tile{background:var(--paper-2);border-color:transparent;border-radius:14px}
  .sheet .att .row{padding:10px 0}
  .sheet .btn.sm{height:40px;border-radius:11px}
  .dlg .panel{border-radius:20px}
  .dlg .acts .btn{flex:1}
  .palette{top:auto;bottom:0;left:0;width:100%;max-height:80dvh;border-radius:22px 22px 0 0;transform:translateY(100%);transition:transform .42s cubic-bezier(.32,.72,0,1),opacity .2s}
  .palette.on{transform:none}
  .palette .list{max-height:56dvh}.palette .foot{display:none}
  .palette input{height:56px;font-size:16px}

  /* settings sections: the bar names the section, the card becomes a grouped list */
  #settings-body>.card:first-child>.card-h:first-child h3,#settings-body>.stack>.card:first-child>.card-h:first-child h3{display:none}   /* the bar already names the section; other cards keep their titles */
  #settings-body>.card:first-child>.card-h:first-child,#settings-body>.stack>.card:first-child>.card-h:first-child{margin-bottom:0}
  .srow{padding:14px 0}
  .srow .tx b{font-size:14.5px}
  .swatches{gap:8px}.swatch{width:74px}
  .settings .seg{height:36px}

  /* documents: rows, not cards */
  .docs{display:flex;flex-direction:column;gap:0;background:var(--paper-2);border-radius:16px;overflow:hidden}
  .doc{border:0;border-radius:0;border-bottom:1px solid color-mix(in srgb,var(--rule) 70%,transparent);padding:13px 14px}
  .doc:last-child{border-bottom:0}.doc:hover{transform:none}
  .doc .ic{width:38px;height:38px;border-radius:10px}

  /* log: chips in one row, timeline without the card frame, day headers stick under the bar */
  #main[data-view="log"] .card{background:none;padding:0 4px}
  .tl-day{top:calc(44px + env(safe-area-inset-top));font-size:13px;font-weight:600;color:var(--ink)}
  .tl-it .det{font-size:11px}

  /* new book form */
  .fs-h{font-size:13px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--ink)}
}
/* second audit pass (09.09): touch targets ≥36px on every control, badges ≥11px, no capitalised form headers */
@media(max-width:860px){
  .chip{height:36px}
  .btn.sm,.card-h .btn.sm{height:36px}
  .m-chart-h .seg.sm,.card-h .seg.sm{height:34px}
  .prow .seg.sm{height:36px}.prow .seg.sm button{padding:0 12px}
  .settings .seg{height:38px}
  .switch{width:46px;height:27px}.switch::after{width:21px;height:21px}.switch[aria-checked="true"]::after{transform:translateX(19px)}
  .mrow .pill{font-size:11px;height:21px}
  .fset h4{text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600;color:var(--ink)}
  .flow-kind,.st-status{height:34px!important;border-radius:9px!important}
}
@media(max-width:860px){.preview-tag{display:inline-block;width:auto;text-transform:none;letter-spacing:0;font-size:11px;margin-left:6px;vertical-align:middle}}
/* observed flows (both layouts): quiet notes for the expected, rows for the unbooked */
.obs-note{display:flex;align-items:center;gap:6px;margin:10px 0 0;font-size:12.5px;color:var(--ink-3)}.obs-note .i{color:var(--pos)}
.obs-warn{margin-bottom:14px}
.obs{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.obs-r{display:grid;grid-template-columns:auto 1fr auto;gap:2px 10px;align-items:center;padding:8px 10px;border-radius:10px;background:color-mix(in srgb,var(--paper) 55%,transparent);font-size:12.5px}
.obs-r .d{color:var(--ink-3);font-family:var(--mono);font-size:11.5px;grid-column:1}.obs-r b{font-weight:500;grid-column:2}.obs-r .n{font-family:var(--mono);grid-column:3}.obs-r .w{grid-column:1/-1;color:var(--ink-3)}
@media(max-width:860px){
  .m-months .mrow,.m-flows .mrow,.m-stmts .mrow{padding:12px 14px 12px 12px}   /* 14.09: numbers on the 363px column like every other row (was 12px right → 365) */
  .m-flows .fic{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--paper-3)}
  .m-flows .fic.pos{color:var(--pos)}.m-flows .fic.neg{color:var(--neg)}
  .m-flows .mr-v .btn.icon,.m-stmts .btn.icon{width:32px;height:32px;border-radius:8px}
  .m-stmts .mrow{gap:8px}
  .m-list select.flow-kind,.m-list select.st-status{height:30px!important;font-size:12.5px;border:1px solid var(--rule-2);border-radius:8px!important;background:var(--paper);padding:0 6px;color:inherit}
  .m-list .mr-n b select{margin:-4px 0}
  #tab-money .card .m-list,#main[data-view^="account:"] .card .m-list{background:var(--paper-3)}
  #tab-money .card .m-list .mrow{border-color:color-mix(in srgb,var(--rule-2) 60%,transparent)}
  .card .obs-note{margin-top:12px}
  #tab-xray .card.flat.tight{padding:10px 12px;border-radius:12px;background:var(--paper-3)}
  #tab-xray .card.flat.tight .eyebrow{font-size:11.5px}#tab-xray .card.flat.tight .num{font-size:15px!important}
  #tab-xray .tbl.dense{border:0;background:none}#tab-xray .tbl.dense thead{display:none}#tab-xray .tbl.dense table,#tab-xray .tbl.dense tbody,#tab-xray .tbl.dense tr,#tab-xray .tbl.dense td{display:block;width:100%;height:auto;padding:0}
  #tab-xray .tbl.dense tr{padding:10px 0;border-bottom:1px solid var(--rule)}#tab-xray .tbl.dense td+td{margin-top:4px}#tab-xray .tbl.dense td.mono{white-space:normal;word-break:break-all;font-size:11px}
  h3.lbl{font-size:13px;font-weight:600;margin:14px 0 8px}   /* h3 only: the bare class collided with the button label .btn>.lbl (14px top margin pushed every primary button text 3px down, 11.09) */
}
/* ---- wallet-grade extras on the phone: privacy blur, pull-to-refresh, form steps, control buttons ---- */
@media(max-width:860px){
  html[data-privacy] .gl-bal,html[data-privacy] .gl-pill,html[data-privacy] .mr-eq,html[data-privacy] .mr-v small,html[data-privacy] .m-hero-v,html[data-privacy] .m-stat b,html[data-privacy] .kpi .v,html[data-privacy] .tbl td.n{filter:blur(9px);transition:filter .3s var(--ease)}
  .gl-bal,.gl-pill,.mr-eq,.m-hero-v,.m-stat b{transition:filter .3s var(--ease)}
  .gl-bal{cursor:pointer;-webkit-tap-highlight-color:transparent}
  .ptr{position:fixed;left:0;right:0;top:env(safe-area-inset-top);z-index:25;display:flex;justify-content:center;align-items:center;gap:8px;height:44px;pointer-events:none;color:var(--ink-3);font-size:12.5px;opacity:var(--p,0);transform:translateY(calc(-44px + var(--p,0) * 56px));transition:opacity .15s,transform .15s}
  .ptr .i{width:18px;height:18px;transform:rotate(calc(var(--p,0) * 270deg));transition:transform .1s}
  .ptr.arm{color:var(--ink)}
  .ptr.go{opacity:1;transform:translateY(12px)}.ptr.go .i{animation:ptrSpin .8s linear infinite}
  @keyframes ptrSpin{to{transform:rotate(360deg)}}
  #tab-control .card>div[style*="flex-wrap:wrap"]{flex-direction:column}#tab-control .card>div[style*="flex-wrap:wrap"] .btn{width:100%;height:44px;border-radius:12px}
  .slots-d{margin-bottom:14px}.slots-d summary{font-size:14px;color:var(--ink);padding:10px 0}.slots-d summary .cnt{font:500 12px var(--mono);padding:3px 7px;border-radius:999px;background:var(--paper-3);color:var(--ink-3);margin-left:4px}
  .slots-d .card.tight{margin-top:6px}
  form.fsteps .fset{border:0;border-radius:14px;background:var(--paper-3);margin:0 0 8px;padding:0;overflow:hidden}
  form.fsteps .step-h{display:flex;align-items:center;gap:12px;width:100%;padding:14px 14px;text-align:left;color:var(--ink);font:500 15px var(--ui)}
  form.fsteps .step-n{width:26px;height:26px;border-radius:50%;background:var(--paper);color:var(--ink);display:grid;place-items:center;font:500 12.5px var(--mono);flex:none}
  form.fsteps .fset.ok .step-n{background:var(--pos);color:var(--paper)}
  form.fsteps .step-t{flex:1}form.fsteps .step-s{display:none;color:var(--pos)}form.fsteps .fset.ok .step-s{display:inline-flex}
  form.fsteps .step-h .go{color:var(--ink-4);transition:transform .25s var(--ease)}form.fsteps .fset.open .step-h .go{transform:rotate(90deg)}
  form.fsteps .step-b{display:none;padding:2px 14px 14px}form.fsteps .fset.open .step-b{display:block}
  form.fsteps .step-b .row{display:block}form.fsteps .step-b .field{flex:none!important;width:100%}
  form.fsteps .step-b .field{margin-bottom:12px}
  form.fsteps .step-next{width:100%;margin-top:4px}
  form.fsteps>div:last-child{position:sticky;bottom:calc(88px + env(safe-area-inset-bottom));padding:10px 0 0;background:linear-gradient(180deg,transparent,var(--paper-2) 30%)}form.fsteps>div:last-child .btn{width:100%}
}
@media(max-width:860px){.toasts{left:14px;right:14px;bottom:calc(92px + env(safe-area-inset-bottom));align-items:center}.toast{max-width:100%;border-radius:14px;padding:12px 16px}
  form.fsteps>div:last-child{position:static;padding:6px 0 0;background:none}}

/* ---------- phone = an app, not a web page (11.09): one axis, one gesture at a time — THE TOUCH LAYERS ----------
   L0 page     : vertical pan only, no sideways rubber-band, nothing selectable, no long-press callouts, no grey tap flash (iOS selected the
                 balance pill while a finger scrubbed the curve — text selection is a desktop affordance, the phone gets none outside inputs).
   L1 controls : taps; touch-action:manipulation removes the double-tap-zoom wait; every control paints its own :active state.
   L2 gestures : the chart scrub, the pill fling, the sheet drag OWN the finger once engaged (moved sideways or held 140 ms) and lock the page
                 scroll under it with a non-passive touchmove (home.js, mobile.js); a vertical-first move hands the finger back to the page.
   L3 overlays : the page behind a sheet / dialog / search is frozen (html.lock — body fixed at the current scroll, restored on close);
                 sheet bodies scroll inside themselves and never chain to the page. */
@media(max-width:860px){
  html{overflow-x:hidden;overscroll-behavior-x:none}
  body{touch-action:pan-y;overscroll-behavior-x:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}
  #app{overflow-x:clip}
  input,textarea,select,[contenteditable="true"],.selectable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
  a,button,label,.chip,.mrow,.row,.tile,.att a,.seg{touch-action:manipulation}
  .gl-per,.isl,.isl a{touch-action:pan-y}
  .gl-chart canvas{touch-action:pan-y;cursor:default}.gl-chart canvas.scrub{cursor:crosshair}
  html.lock{overflow:hidden}html.lock body{position:fixed;left:0;right:0;width:100%;top:calc(var(--lock-y,0) * -1px);overflow:hidden}
  .sheet-b,.dlg .panel,.pal-list,.ms-list{overscroll-behavior:contain}
}
/* landscape on a phone: the app is portrait-only (manifest orientation: portrait; iOS ignores it, so the shell is covered) */
#rotate{display:none}
@media(pointer:coarse) and (orientation:landscape) and (max-height:520px){
  #app,#layer,.ptr,.toasts{display:none!important}
  #rotate{display:flex;position:fixed;inset:0;z-index:1000;background:var(--paper);color:var(--ink);flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:24px}
  #rotate .rt-mark{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:22px;letter-spacing:.01em}
  #rotate .rt-ic{width:40px;height:40px;border:1.5px solid var(--ink);border-radius:8px;transform:rotate(90deg);animation:rt-turn 2.4s var(--ease) infinite}
  #rotate p{margin:0;font-size:14px;color:var(--ink-2);max-width:280px}
  @keyframes rt-turn{0%,35%{transform:rotate(90deg)}65%,100%{transform:rotate(0deg)}}
  html[data-motion="off"] #rotate .rt-ic{animation:none}
}

/* ---------- the fee plaque (admin home, 11.09): the space between the curve and the books carries the one number that is ours —
   the fee accrued across all books for the chosen period. Premium without noise: paper surface, a hairline of gold that runs
   around the edge, a faint gold glow inside; the value in Playfair. Never for clients. ---------- */
.gl-fee{position:relative;width:100%;margin:18px 0 0;display:flex;align-items:center;justify-content:center;padding:14px 18px;border-radius:14px;
  border:1px solid transparent;background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(120deg,var(--gold) 0%,var(--gold-2) 38%,var(--gold) 62%,var(--gold-2) 100%) border-box;
  box-shadow:inset 0 0 28px -14px color-mix(in srgb,var(--gold) 55%,transparent),0 1px 0 color-mix(in srgb,var(--gold-2) 30%,transparent)}
.gl-fee .gf-v{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:28px;line-height:1;color:var(--gold-ink);white-space:nowrap}
.gl-fee .gf-v .tk{color:inherit}
html[data-theme="dark"] .gl-fee{background:linear-gradient(color-mix(in srgb,var(--paper-2) 70%,var(--paper)),var(--paper)) padding-box,linear-gradient(120deg,var(--gold) 0%,var(--gold-2) 38%,var(--gold) 62%,var(--gold-2) 100%) border-box}
@media(max-width:860px){.gl-story{display:block}.gl-fee{margin:14px 0 0;padding:14px 16px;min-height:60px}.gl-fee .gf-v{font-size:26px}}   /* the phone story line is a flex row that centred its child — the plaque must span the column like the segment and the list */
/* island tabs: the same fling physics as the period segment (home.js flingSeg); the pill is driven per frame, so no CSS transition on it */
@media(max-width:860px){
  .isl-thumb{left:0;transition:opacity .2s;transform-origin:center}
  .isl.grab .isl-thumb{background:color-mix(in srgb,var(--ink) 14%,transparent)}
  html[data-theme="dark"] .isl.grab .isl-thumb{background:color-mix(in srgb,var(--ink) 19%,transparent)}
  .gl-per.grab .thumb{box-shadow:inset 0 1px 0 color-mix(in srgb,var(--paper) 60%,transparent),0 3px 8px rgba(0,0,0,.22)}
}
/* ---------- phone search mode (11.09, Max: «поиск — десктопный элемент, нужна облегчённая версия»; idiom: zyeon/mobile-search-bar —
   the screen turns into search: a field with Cancel at the top, a scope row, recent + results as the app's own wallet rows) ---------- */
.msearch{position:fixed;inset:0;z-index:64;background:var(--paper);display:flex;flex-direction:column;opacity:0;transform:translateY(-8px);transition:opacity .22s var(--ease),transform .32s var(--ease);padding-top:env(safe-area-inset-top)}
.msearch.on{opacity:1;transform:none}
.ms-top{display:flex;align-items:center;gap:10px;padding:10px 16px 8px}
.ms-field{flex:1;display:flex;align-items:center;gap:8px;height:40px;padding:0 12px;border-radius:12px;background:var(--paper-2);color:var(--ink-3)}
.ms-field input{flex:1;min-width:0;border:0;background:none;font-size:16px;color:var(--ink);outline:none;padding:0}
.ms-field .ms-clear{display:none;width:22px;height:22px;border-radius:50%;background:var(--ink-4);color:var(--paper);border:0;place-items:center;padding:0}
.ms-field.has .ms-clear{display:grid}
.ms-cancel{border:0;background:none;color:var(--ink);font-size:15px;padding:0 2px;height:40px}
.ms-scope{display:flex;gap:6px;padding:2px 16px 10px;overflow-x:auto;scrollbar-width:none}.ms-scope::-webkit-scrollbar{display:none}
.ms-scope button{flex:none;height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--rule);background:var(--paper);color:var(--ink-2);font-size:13px}
.ms-scope button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.ms-list{flex:1;overflow-y:auto;padding:0 16px calc(24px + env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch}
.ms-list h2{font-size:15px;font-weight:600;margin:14px 0 6px;color:var(--ink)}
.ms-list .mrow{padding:10px 0}
.ms-empty{padding:40px 0;text-align:center;color:var(--ink-3);font-size:14px}
html[data-motion="off"] .msearch{transition:none}
/* touch targets on the phone (audit 11.09, HIG 44pt): every segmented control is at least 40px tall — period, chart range, theme/language */
@media(max-width:860px){
  .seg{height:42px;border-radius:11px}.seg.sm{height:42px}.seg button{font-size:13.5px}   /* 11.09: every segment button = 36px touch target (audit-touch); one height, no "small" variant on the phone */
  .prow .seg.sm{height:42px}.m-chart .seg.sm,.card-h .seg.sm{height:42px}
  .gl-per{height:46px}
}

/* ======================= FLEET GROUPS — client → accounts (11.09, radar.js fleetGroupsHTML; the Clients screen, both layouts) ======================= */
.fg{display:flex;flex-direction:column;gap:12px}
.fg-g{border-radius:16px;background:var(--paper-2);overflow:hidden}
.fg-h{display:flex;align-items:center;gap:12px;width:100%;padding:13px 14px 11px 12px;text-align:left;color:inherit;font:inherit;background:none;border:0;appearance:none;-webkit-tap-highlight-color:transparent;transition:background .15s}
.fg-h[data-id]{cursor:pointer}.fg-h[data-id]:active,.fg-h[data-id]:hover{background:var(--paper-3)}
.fg-h .avatar{width:40px;height:40px;font-size:13px;box-shadow:0 0 0 2px var(--paper-2),0 0 0 3.5px color-mix(in srgb,var(--tone) 55%,transparent)}
.fg-orphan .avatar{background:var(--paper-3);color:var(--ink-3)}
.fg-n{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.fg-n b{font-size:16px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fg-n small{font-size:12.5px;color:var(--ink-3)}
.fg-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:none}
.fg-r .mr-eq{font:500 15px var(--ui);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.fg-h .fg-r .gl-pill{height:24px;font-size:12.5px;padding:0 9px}
.fg-b{position:relative;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 12px;text-decoration:none;color:inherit;border-top:1px solid color-mix(in srgb,var(--rule) 70%,transparent);-webkit-tap-highlight-color:transparent;transition:background .15s}
.fg-b:active,.fg-b:hover{background:var(--paper-3)}
.fg-tree{position:relative;width:40px;height:24px;flex:none}
.fg-tree::before{content:"";position:absolute;left:19.5px;top:-11px;bottom:12px;width:1px;background:var(--rule-2)}   /* the guide drops from the avatar's centre line */
.fg-tree::after{content:"";position:absolute;left:19.5px;top:11.5px;width:11px;height:1px;background:var(--rule-2)}
.fg-b:last-child .fg-tree::before{bottom:12px}
.fg-id{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.fg-id b{font:500 14px var(--mono);letter-spacing:0}.fg-id small{font-size:12px;color:var(--ink-3)}
.fg-b .pill{flex:none;height:20px;font-size:10.5px;padding:0 7px}
.fg-b .fg-r small{font:500 12.5px var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-3)}.fg-b .fg-r small.pos{color:var(--pos)}.fg-b .fg-r small.neg{color:var(--neg)}
@media(min-width:861px){.fg{max-width:820px}.fg-h{padding:14px 18px 12px 16px}.fg-b{padding:11px 18px 11px 16px}}

/* ======================= RADAR (11.09, radar.js): cards = one word · one number · one state; the details are a sheet ======================= */
.rd{display:grid;grid-template-columns:1fr;gap:12px}
.rd-card{position:relative;display:flex;flex-direction:column;gap:10px;padding:16px;border-radius:16px;background:var(--paper-2);border:0;color:inherit;font:inherit;text-align:left;width:100%;appearance:none;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s var(--ease),background .15s}
.rd-card:active{transform:scale(.985);background:var(--paper-3)}
.rd-h{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:24px}
.rd-l{font-size:13.5px;font-weight:500;color:var(--ink-2)}
.rd-state{height:24px;padding:0 9px;border-radius:999px;font:600 11.5px/24px var(--ui);letter-spacing:.06em;background:var(--paper-3);color:var(--ink-2);white-space:nowrap}
.rd-state.pos{background:var(--pos-bg);color:var(--pos)}.rd-state.neg{background:var(--neg-bg);color:var(--neg)}
.rd-big{display:flex;align-items:baseline;gap:16px}
.rd-n{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-variant-numeric:lining-nums tabular-nums;font-size:56px;line-height:1;letter-spacing:-.02em}
.rd-now{display:inline-flex;align-items:baseline;gap:6px;font-size:13px;color:var(--ink-3)}.rd-now i{font-style:normal}
.rd-now b{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:24px;line-height:1;font-variant-numeric:lining-nums tabular-nums}.rd-now b.pos{color:var(--pos)}.rd-now b.neg{color:var(--neg)}
.rd-bars{display:block;width:100%;height:44px;margin-top:2px}
.rd-bars rect.go{fill:var(--pos);opacity:.5}.rd-bars rect.stop{fill:var(--neg);opacity:.45}.rd-bars rect.today{fill:var(--ink)}
.rd-bars rect.now{fill:none;stroke:var(--ink-2);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:2 2}
.rd-bars line.thr{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3}
.rd-meters{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:2px}
.rd-m{display:flex;flex-direction:column;gap:2px;min-width:0}.rd-ml{font-size:11.5px;color:var(--ink-3)}.rd-mv{font:500 13.5px var(--mono);font-variant-numeric:tabular-nums}
.rd-m svg{display:block;width:100%;height:4px;margin-top:4px}.rd-m line.rest{stroke:var(--rule-2);stroke-width:1;stroke-dasharray:2 3}.rd-m line.used{stroke:var(--ink);stroke-width:2}
.rd-m.pos line.used{stroke:var(--pos)}.rd-m.neg line.used{stroke:var(--neg)}
.rd-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.rd-sm{gap:6px;padding:14px 14px 12px;min-width:0}
.rd-sm .rd-l{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-v{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:26px;line-height:1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:-.01em;margin-top:2px}
.rd-v.pos{color:var(--pos)}.rd-v.neg{color:var(--neg)}.rd-v.warn{color:var(--warn)}.rd-v.ink3{color:var(--ink-3)}
.rd-sub{font:500 12px var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-rule{display:block;width:100%;height:4px;margin-top:4px}.rd-rule line.rest{stroke:var(--rule-2);stroke-width:1;stroke-dasharray:2 3}.rd-rule line.used{stroke:var(--ink);stroke-width:2}
.rd-rule.pos line.used{stroke:var(--pos)}.rd-rule.neg line.used{stroke:var(--neg)}.rd-rule.warn line.used{stroke:var(--warn)}
.rd-btc-b{display:flex;align-items:center;gap:18px}.rd-btc .rd-n{font-size:44px;flex:none}.rd-btc-line{flex:1;min-width:0;display:flex}
.rd-scale{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.rd-scale-h{display:flex;align-items:baseline;justify-content:space-between;font-size:13.5px;color:var(--ink-2)}
.rd-scale-h b{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:26px;line-height:1;color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
.rd-level{flex:none;width:100%;height:64px;margin-top:6px}.rd-level line.thr{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3}
.rd-ch{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.rd-ch-b{position:relative}.rd-ch-b svg{display:block;width:100%;height:132px;overflow:visible}
.rd-ch path{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linejoin:round}.rd-ch path.aux{stroke:var(--ink-3);stroke-width:1.2;stroke-dasharray:4 3}
.rd-ch.pos path:not(.aux){stroke:var(--pos)}.rd-ch.neg path:not(.aux){stroke:var(--neg)}.rd-ch.warn path:not(.aux){stroke:var(--warn)}
.rd-ch line.thr{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3}.rd-ch rect.pos{fill:var(--pos);opacity:.75}.rd-ch rect.neg{fill:var(--neg);opacity:.75}
.rd-ch-y{position:absolute;inset:0 0 0 auto;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;pointer-events:none;font:500 11px var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums}
.rd-ch-y span{background:var(--paper);padding:0 0 0 4px;border-radius:3px}.rd-ch-x{display:flex;justify-content:space-between;font:500 11px var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums}
.rd-fng-b{display:flex;align-items:center;gap:18px}
.rd-gw{position:relative;flex:none;line-height:0}.rd-gauge path{fill:none;stroke-linecap:round}.rd-gauge .track{stroke:var(--paper-3)}.rd-gauge .fill{stroke:var(--ink-3);transition:stroke-dashoffset .6s var(--ease)}
.rd-gauge.pos .fill{stroke:var(--pos)}.rd-gauge.neg .fill{stroke:var(--neg)}
.rd-gn{position:absolute;left:0;right:0;bottom:0;text-align:center;font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:34px;line-height:1;font-variant-numeric:lining-nums tabular-nums}
.rd-spark{flex:1;height:44px;min-width:0}.rd-spark path{fill:none;stroke:var(--ink-3);stroke-width:1.5}.rd-spark.pos path{stroke:var(--pos)}.rd-spark.neg path{stroke:var(--neg)}
.rd-empty{font-size:13px;color:var(--ink-3);padding:6px 0}
.rd-sheet .lbl{margin-top:0}.rd-sheet h3.lbl+.rd-tbl{margin-bottom:18px}
.rd-tbl{display:flex;flex-direction:column}.rd-tr{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--rule);font-size:13.5px;font-variant-numeric:tabular-nums}
.rd-tr span{white-space:nowrap}.rd-tr span:first-child{flex:1;text-align:left;color:var(--ink-2)}.rd-tr span:not(:first-child){min-width:44px;text-align:right}.rd-tr span:last-child{display:inline-flex;justify-content:flex-end}
.rd-th{font-size:11.5px;color:var(--ink-3);padding:2px 0 6px}.rd-th span:first-child{color:var(--ink-3)}.rd-tr:last-child{border-bottom:0}
/* events (14.09): a word · a moment · the market's odds · the scythe in this class — rows, no explanations; the sheet holds the tables */
.rd-el{display:flex;flex-direction:column}
.rd-er{display:grid;grid-template-columns:minmax(52px,auto) 1fr auto minmax(54px,auto);align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--rule);font-variant-numeric:tabular-nums}
.rd-er:first-child{border-top:0;padding-top:2px}.rd-er:last-child{padding-bottom:0}
.rd-ew{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:22px;line-height:1;letter-spacing:-.01em;white-space:nowrap}
.rd-et{font-size:12.5px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rd-eo{font:500 12.5px var(--mono);color:var(--ink-2);white-space:nowrap}
.rd-eh{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:18px;line-height:1;text-align:right;white-space:nowrap}.rd-eh.pos{color:var(--pos)}.rd-eh.neg{color:var(--neg)}.rd-eh.ink3{color:var(--ink-3)}
.rd-tr span small{display:block;font-size:11px;color:var(--ink-3);font-variant-numeric:tabular-nums}.rd-tr span small.pos{color:var(--pos)}.rd-tr span small.neg{color:var(--neg)}
@media(min-width:861px){.rd{grid-template-columns:repeat(12,1fr);max-width:980px;align-items:start}.rd-gate{grid-column:span 7}.rd-fng{grid-column:span 5;order:2}.rd-ev{grid-column:span 7;order:4}.rd-btc{grid-column:span 5;order:5}.rd-row{grid-column:span 12;order:3;grid-template-columns:repeat(3,1fr)}.rd-fng-b{flex-direction:column;align-items:stretch;gap:10px}.rd-fng .rd-gw{align-self:center}}
@media(max-width:860px){.rd-card:hover{background:var(--paper-2)}}

/* ======================= ACCOUNT v3 · INSIDE · PLAQUE (14.09, account.js) =======================
   Three tiers of attention on the account page: the glance (the home's own anatomy) → what is inside (admin: the basket as an
   oscillogram around zero — equal bars in weight order, amplitude = |move|, up = profit, down = loss, gold = the rider's long) →
   the ledger as rows. Data on the page, actions in the sheet behind «…». A client never gets the middle tier (Max, 14.09). */
.gl.ac{min-height:0;padding:0;text-align:center}
.gl.ac .m-hd{display:flex;align-items:center;justify-content:space-between;height:40px;margin:0 0 18px}
.ac-name{display:flex;align-items:center;gap:8px;min-width:0}.ac-name b{font-size:17px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ac-name small{font-size:12.5px;color:var(--ink-3);white-space:nowrap}.ac-name .pill{height:20px;font-size:10.5px;padding:0 7px}
.ac-hd-r{display:flex;align-items:center;gap:8px;flex:none}
.ac-more{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--paper-2);color:var(--ink);border:0;appearance:none;-webkit-tap-highlight-color:transparent;transition:background .15s,transform .15s var(--ease)}
.ac-more:active{background:var(--paper-3);transform:scale(.94)}.ac-more .i{width:18px;height:18px}
.gl.ac .gl-story{margin-top:12px}
.gl-bal.sm{font-size:48px}.gl-bal.sm.pos{color:var(--pos)}.gl-bal.sm.neg{color:var(--neg)}
/* sections: title 17/600 + a count, a quiet «All ›» on the right */
.ac-sec{margin-top:28px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 10px;padding:0}   /* headings on the page column (16px), like h2.sec on the home */
.sec-h h3{margin:0;font-size:17px;font-weight:600;letter-spacing:-.01em}.sec-h h3 .cnt{margin-left:8px;font:500 14px var(--ui);color:var(--ink-3);font-variant-numeric:tabular-nums;background:none;padding:0}
.sec-h a{display:inline-flex;align-items:center;gap:2px;min-height:36px;padding:0 0 0 8px;margin:-8px 0;font-size:14px;color:var(--ink-3);text-decoration:none}.sec-h a .i{width:16px;height:16px}
/* key-value and ledger rows on the wallet anatomy */
.mrow.kv{min-height:46px;padding:9px 14px 9px 12px}   /* label ink on 28px, numbers on 363px — the same columns as every other row */.mrow.kv .mr-n b{font-weight:500;color:var(--ink-2);font-size:14.5px}.mrow.kv .mr-v b{font:600 15px var(--ui);font-variant-numeric:tabular-nums}.mrow.kv .mr-v b.pos{color:var(--pos)}.mrow.kv .mr-v b.neg{color:var(--neg)}
.mrow.ldg .mr-v b{font:600 15px var(--ui);font-variant-numeric:tabular-nums}   /* no chevron: the number keeps the 363px column; a row in a list is tappable by convention (Phantom, TG Wallet) */
/* the stop gauge (admin): stop → peak, the marker = equity now */
.gauge{margin-top:16px;text-align:left}
.gauge .t{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-3);margin-bottom:7px;font-variant-numeric:tabular-nums}.gauge .t b{color:var(--ink);font-weight:500}.gauge .t b.neg{color:var(--neg)}
.gauge .g{position:relative;height:6px;border-radius:3px;background:linear-gradient(90deg,var(--neg-bg),var(--paper-3) 40%,var(--paper-3))}
.gauge .g i{position:absolute;top:-4px;width:14px;height:14px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px var(--paper);transform:translateX(-50%);transition:left .6s var(--ease)}
.gauge .g em{position:absolute;left:0;top:-3px;bottom:-3px;width:2px;background:var(--neg);border-radius:1px}
/* the oscillogram */
.rib{position:relative;height:60px;display:flex;align-items:center;gap:3px;touch-action:pan-y;cursor:crosshair;user-select:none;-webkit-user-select:none}
.rib.big{height:96px;gap:4px;margin-top:8px}
.rib::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--rule-2)}
.rib b{position:relative;flex:1;min-width:0;height:100%;display:block}
.rib b::after{content:"";position:absolute;left:0;right:0;border-radius:2px;background:var(--pos);transition:opacity .2s,height .5s var(--ease)}
.rib b.pos::after{bottom:50%;height:var(--h)}.rib b.neg::after{top:50%;height:var(--h);background:var(--neg)}.rib b.long::after{background:var(--gold)}
.rib b.long.neg::after{background:var(--gold);opacity:.55}
.rib.dim b:not(.hi)::after{opacity:.26}.rib b.hi::after{outline:1px solid var(--ink);outline-offset:1px}
.rib-tip{position:absolute;top:-32px;left:0;transform:translateX(-50%);white-space:nowrap;font:600 12px/1 var(--ui);font-variant-numeric:tabular-nums;padding:7px 9px;border-radius:8px;background:var(--ink);color:var(--paper);opacity:0;transition:opacity .15s;pointer-events:none;z-index:2}
.rib-tip.on{opacity:1}
.ac-inside .ac-tap{display:block;margin:0 -12px;padding:10px 12px 12px;border-radius:16px;text-decoration:none;color:inherit;-webkit-tap-highlight-color:transparent;transition:background .2s}
.ac-inside .ac-tap:active{background:var(--paper-2)}.ac-inside .rib{margin-top:26px}
.rib-line{display:flex;justify-content:space-between;margin-top:10px;font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}.rib-line b{color:var(--ink);font-weight:500}.rib-line b.pos{color:var(--pos)}.rib-line b.neg{color:var(--neg)}
/* leg rows: monogram with the tone ring · symbol + side · weight/age · move % + $ */
.lg-av{font-size:11px!important;letter-spacing:.02em;color:var(--ink-2)!important;background:var(--paper-3)!important;box-shadow:0 0 0 2px var(--paper-2),0 0 0 3.5px var(--rule-2)!important}
.lg-av.pos{box-shadow:0 0 0 2px var(--paper-2),0 0 0 3.5px var(--pos)!important}.lg-av.neg{box-shadow:0 0 0 2px var(--paper-2),0 0 0 3.5px var(--neg)!important}.lg-av.long{box-shadow:0 0 0 2px var(--paper-2),0 0 0 3.5px var(--gold)!important}
.lg-side{display:inline-block;font:600 11px/1 var(--ui);padding:3px 5px;border-radius:4px;background:var(--paper-3);color:var(--ink-3);margin-left:7px;vertical-align:2px;letter-spacing:.04em}
.mrow.lg .mr-v b.lg-p{font:600 15px var(--ui);font-variant-numeric:tabular-nums}.mrow.lg .mr-v b.pos{color:var(--pos)}.mrow.lg .mr-v b.neg{color:var(--neg)}
.mrow.lg .mr-v small.pos{color:var(--pos)}.mrow.lg .mr-v small.neg{color:var(--neg)}
.mrow.lg.hi{background:var(--paper-3)}
.gh{display:flex;justify-content:space-between;align-items:baseline;padding:22px 0 8px;font-size:13px;color:var(--ink-3);font-variant-numeric:tabular-nums}.gh b{color:var(--ink);font-weight:600;font-size:15px}.gh .pos{color:var(--pos)}.gh .neg{color:var(--neg)}
/* the «Inside» screen */
.in-page{max-width:720px}.in-hero{text-align:center;padding-top:4px}.in-hero .gl-delta{justify-content:center}
.in-sort{margin-top:18px}
/* the actions sheet */
.act-list{display:flex;flex-direction:column}
.act{display:flex;align-items:center;gap:12px;min-height:50px;padding:0 2px;font:500 16px var(--ui);color:var(--ink);text-decoration:none;background:none;border:0;border-top:1px solid var(--rule);text-align:left;appearance:none;-webkit-tap-highlight-color:transparent;cursor:pointer}
.act:first-child{border-top:0}.act .i{width:20px;height:20px;color:var(--ink-3);flex:none}.act.quiet{color:var(--ink-2);font-weight:400}.act.danger{color:var(--neg)}.act.danger .i{color:var(--neg)}
.act:active{background:var(--paper-3)}
/* the Clients plaque: the row is a button, the fold underneath grows on a spring */
.fg-b{cursor:pointer;-webkit-user-select:none;user-select:none}
.fg-b.open{background:var(--paper-3)}
.fg-x{display:grid;grid-template-rows:0fr;transition:grid-template-rows .46s var(--ease)}.fg-b.open+.fg-x{grid-template-rows:1fr}
.fg-x>div{overflow:hidden;min-height:0}
.fg-in{padding:4px 14px 12px 12px;opacity:0;transform:translateY(-6px);transition:opacity .3s .08s,transform .42s var(--ease) .04s;background:var(--paper-3)}
.fg-b.open+.fg-x .fg-in{opacity:1;transform:none}
.fg-in .rib{height:44px;margin:30px 0 8px}   /* 4px pad + 30px = room for the 26px loupe at top:-32px: the fold clips overflow (it animates), so the loupe needs real space above the bars */
.fg-in .m-list{background:none;border-radius:0;overflow:visible}.fg-in .mrow{padding-left:0;padding-right:0;gap:12px}.fg-in .mrow .avatar{width:40px;height:40px}   /* the monogram column = the head avatar column (12px), its ring needs the list unclipped; name column = 12+40+12 = 80px on the page, the same as the head's name */
.fg-in .fg-quiet{margin:8px 0 10px}
.fg-open{display:flex;align-items:center;justify-content:center;gap:2px;height:44px;margin-top:10px;border-radius:12px;background:var(--paper-2);font-weight:600;font-size:14px;color:var(--ink);text-decoration:none;-webkit-tap-highlight-color:transparent}
.fg-open:active{background:var(--paper)}.fg-open .i{width:16px;height:16px}
/* desktop: the wallet-row anatomy only exists inside the phone media — the Inside screen and the plaque need it on both layouts */
@media(min-width:861px){
  .in-list,.fg-top{display:flex;flex-direction:column;border-radius:16px;background:var(--paper-2);overflow:hidden}
  .in-list .mrow,.fg-top .mrow{position:relative;display:flex;align-items:center;gap:12px;padding:10px 14px 10px 12px;text-decoration:none;color:inherit;border-bottom:1px solid color-mix(in srgb,var(--rule) 70%,transparent)}
  .in-list .mrow:last-child,.fg-top .mrow:last-child{border-bottom:0}
  .in-list .mrow .avatar,.fg-top .mrow .avatar{width:36px;height:36px}
  .in-list .mr-n,.fg-top .mr-n{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.in-list .mr-n b,.fg-top .mr-n b{font-weight:500;font-size:15px}.in-list .mr-n small,.fg-top .mr-n small{font-size:12.5px;color:var(--ink-3)}
  .in-list .mr-v,.fg-top .mr-v{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex:none}.in-list .mr-v small,.fg-top .mr-v small{font-size:12px;font-variant-numeric:tabular-nums}
  .fg-top .mrow{padding-left:0;padding-right:0}
  .in-page .gl-bal{justify-content:center}
}

/* ======================= EVENTS (15.09 rewrite, radar.js): date · name · one number ======================= */
.ev-list{display:flex;flex-direction:column}.rd-sheet .ev-list+.lbl{margin-top:22px}
.ev-r{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;width:100%;padding:10px 0;border-top:1px solid var(--rule);background:none;border-left:0;border-right:0;border-bottom:0;color:inherit;font:inherit;text-align:left;appearance:none;-webkit-tap-highlight-color:transparent;font-variant-numeric:tabular-nums}
.ev-r:first-child{border-top:0;padding-top:2px}.ev-list .ev-r:last-child{padding-bottom:2px}
button.ev-r{cursor:pointer}button.ev-r:active{background:var(--paper-3)}
.ev-d{display:flex;flex-direction:column;gap:2px}.ev-d b{font:600 15px var(--ui);letter-spacing:-.01em}.ev-d small{font-size:11.5px;color:var(--ink-3);white-space:nowrap}
.ev-n{display:flex;flex-direction:column;gap:2px;min-width:0}.ev-n b{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:21px;line-height:1.05;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-n small{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ev-p{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex:none;text-align:right}
.ev-p b{font-family:var(--display);font-variation-settings:var(--fvs,"opsz" 12);font-size:22px;line-height:1;letter-spacing:-.01em;white-space:nowrap}.ev-p b.pos{color:var(--pos)}.ev-p b.neg{color:var(--neg)}.ev-p b.ink3{color:var(--ink-3)}
.ev-p small{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;color:var(--ink-3);white-space:nowrap}.ev-p small.pos{color:var(--pos)}.ev-p small.neg{color:var(--neg)}.ev-p small .i{width:11px;height:11px}
/* the event card in the sheet */
.ev-card{display:flex;flex-direction:column}
.ev-back{display:inline-flex;align-items:center;gap:2px;align-self:flex-start;height:32px;margin:-6px 0 8px -6px;padding:0 8px 0 4px;border:0;border-radius:8px;background:none;color:var(--ink-3);font:13.5px var(--ui);cursor:pointer;-webkit-tap-highlight-color:transparent}.ev-back:active{background:var(--paper-3)}.ev-back .i{width:16px;height:16px}
.ev-hd{display:grid;grid-template-columns:52px 1fr;gap:12px;align-items:center}.ev-hd .ev-n small{white-space:normal;line-height:1.3}
.ev-big{display:flex;align-items:baseline;flex-wrap:wrap;gap:0 10px;margin:18px 0 4px}
.ev-big b{font-family:var(--display);font-variation-settings:"opsz" 18;font-variant-numeric:lining-nums tabular-nums;font-size:56px;line-height:1;letter-spacing:-.02em}
.ev-big span{font-size:17px;font-weight:500;color:var(--ink-2)}.ev-big small{width:100%;margin-top:6px;font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums}.ev-big small .pos{color:var(--pos)}.ev-big small .neg{color:var(--neg)}
.ev-curve{margin:14px 0 6px}.ev-curve svg{display:block;width:100%;height:64px;overflow:visible}.ev-curve path{fill:none;stroke:var(--ink);stroke-width:1.5;stroke-linejoin:round}.ev-curve circle{fill:var(--ink);stroke:var(--paper-2);stroke-width:1.5}
.ev-ax{display:flex;justify-content:space-between;margin-top:6px;font:11px var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums}
.ev-outs{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.ev-o{display:grid;grid-template-columns:minmax(64px,auto) 1fr 44px;align-items:center;gap:10px;font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.ev-o i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--ink-4) var(--w),transparent var(--w))}.ev-o.on{color:var(--ink)}.ev-o.on i{background:linear-gradient(90deg,var(--ink) var(--w),transparent var(--w))}
.ev-o b{text-align:right;font-weight:500}.ev-o.on b{font-weight:600}
.ev-facts .rd-tr span:first-child{color:var(--ink-3)}.ev-facts .rd-tr span:last-child{margin-left:auto;text-align:right}.ev-facts .rd-tr small{display:inline;margin-left:6px;font-size:11.5px;color:var(--ink-3)}
