/* Stashik app, design system 2 (2026-10-11): clean, calm, professional. Light and dark themes from one set of tokens.
   One accent (ink), the critter yellow only for money set aside, coins and the brand. Motion: transform and opacity only. */

:root{
  --bg:#f6f6f3;--surface:#ffffff;--surface-2:#fafaf8;--sunken:#f0f0ec;--hover:rgba(20,24,40,.045);
  --border:rgba(20,24,40,.09);--border-strong:rgba(20,24,40,.17);
  --text:#14161d;--text-2:#4a4f5c;--text-3:#7a7f8b;
  --brand:#2340b3;--brand-hover:#1b3392;--brand-soft:rgba(35,64,179,.08);--on-brand:#ffffff;
  --accent:#ffd23f;--accent-deep:#f0b21a;--accent-soft:#fff6d9;--coin:#e8930c;--critter-ink:#1b2559;
  --pos:#15803d;--pos-soft:#eaf7ee;--neg:#cc2f27;--neg-soft:#fdeeed;--warn:#b45309;--warn-soft:#fff4e2;
  --c1:#2340b3;--c2:#d4831f;--c3:#8a4fc9;--c4:#11876e;--track:rgba(20,24,40,.07);
  --shadow-sm:0 1px 2px rgba(16,24,40,.05);
  --shadow:0 1px 2px rgba(16,24,40,.04),0 10px 30px -16px rgba(16,24,40,.2);
  --shadow-lg:0 2px 6px rgba(16,24,40,.06),0 28px 60px -24px rgba(16,24,40,.38);
  --r-sm:8px;--r:12px;--r-lg:16px;--r-xl:22px;
  --ease-out:cubic-bezier(0.23, 1, 0.32, 1);--ease-io:cubic-bezier(0.77, 0, 0.175, 1);
  --side-w:252px;--u:24px;
  --f-ui:"Funnel Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--f-display:"Funnel Display","Funnel Sans",ui-sans-serif,system-ui,sans-serif;
  --f-voice:Recursive,"Funnel Sans",ui-sans-serif,sans-serif;--f-mono:Recursive,ui-monospace,"Cascadia Mono",monospace;
  --print:"CASL" 0,"CRSV" 0,"MONO" 0;--mono:"CASL" 0,"CRSV" 0,"MONO" 1;--hand:"CASL" 1,"CRSV" 1,"MONO" 0;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#0c0e12;--surface:#14171d;--surface-2:#181c23;--sunken:#101216;--hover:rgba(255,255,255,.05);
  --border:rgba(255,255,255,.08);--border-strong:rgba(255,255,255,.15);
  --text:#eceef2;--text-2:#b3b8c3;--text-3:#808694;
  --brand:#8c9cff;--brand-hover:#a6b2ff;--brand-soft:rgba(140,156,255,.13);--on-brand:#0c0e12;
  --accent-soft:rgba(255,210,63,.12);
  --pos:#4ade80;--pos-soft:rgba(74,222,128,.1);--neg:#f87171;--neg-soft:rgba(248,113,113,.1);--warn:#fbbf24;--warn-soft:rgba(251,191,36,.1);
  --c1:#6f80f2;--c2:#be7d2c;--c3:#9c76e3;--c4:#25a580;--track:rgba(255,255,255,.07);
  --shadow-sm:0 0 0 1px rgba(255,255,255,.02);--shadow:0 0 0 1px rgba(255,255,255,.03),0 16px 40px -20px rgba(0,0,0,.7);--shadow-lg:0 0 0 1px rgba(255,255,255,.05),0 30px 70px -20px rgba(0,0,0,.8);
  color-scheme:dark;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scrollbar-color:var(--border-strong) transparent;scrollbar-width:thin}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--f-ui);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overflow-x:clip}
html.theme-anim body,html.theme-anim .side,html.theme-anim .card,html.theme-anim .panel{transition:background-color .25s ease,color .25s ease,border-color .25s ease}
::selection{background:var(--accent);color:#14161d}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}
[hidden]{display:none!important}
h1,h2,h3{margin:0;letter-spacing:-.022em;font-weight:650;color:var(--text)}
/* display voice: page titles, section heads and the numbers a person reads first */
h1,h2,.page-title,.spend-num,.jar-total,.kpi .v,.big-hours,.sim-inv,.dn-v,.pot-v,.tax-lede b,.regime .rg-v,.rate-big,.onb-q,.gate-h,.sch-k,.ls-q,.iv-kpis dd,.pf-big,.rg-row-v,.sum-grid dd,.inv-table tfoot td,.big-input input{font-family:var(--f-display)}
h2{font-size:1.06rem;line-height:1.3}
h3{font-size:.98rem}
p{margin:0}
button{font:inherit;color:inherit}
.num{font-variant-numeric:tabular-nums;letter-spacing:-.005em}
.mono{font-family:var(--f-mono);font-variation-settings:var(--mono)}
.hand{font-family:var(--f-voice);font-variation-settings:var(--hand)}
.soft{color:var(--text-2)}.muted{color:var(--text-3)}.small{font-size:.86rem}.red,.neg{color:var(--neg)}.pos{color:var(--pos)}
.mt{margin-top:var(--u)}
.skeleton{border-radius:var(--r);background:linear-gradient(90deg,var(--sunken) 0%,var(--hover) 50%,var(--sunken) 100%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}

/* ---------- shell ---------- */
.app{display:grid;grid-template-columns:var(--side-w) minmax(0,1fr);min-height:100svh}
.side{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;gap:4px;padding:18px 14px 14px;border-right:1px solid var(--border);background:var(--surface-2);overflow-y:auto;scrollbar-width:none}
.brand{font-family:var(--f-voice);display:flex;align-items:center;gap:10px;padding:2px 8px 12px;color:var(--text);font-weight:700;font-size:1.32rem;font-variation-settings:var(--hand);letter-spacing:-.02em;text-decoration:none!important}
.brand-ham{width:32px;height:32px;display:block;transition:transform .4s var(--ease-out)}
.brand-ham svg{width:100%;height:100%}
.cmd-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;margin-bottom:6px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text-3);font-size:.88rem;cursor:pointer;box-shadow:var(--shadow-sm);transition:border-color .15s ease,color .15s ease}
.cmd-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.cmd-btn kbd{margin-left:auto}
kbd{font:550 .72rem/1 var(--f-mono);font-variation-settings:var(--mono);padding:3px 6px;border-radius:5px;border:1px solid var(--border);background:var(--sunken);color:var(--text-3)}
.nav-group{margin-top:12px}
.nav-label{padding:0 10px 4px;font-size:.78rem;font-weight:500;color:var(--text-3)}
.toc-list{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.toc-list a{position:relative;display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-sm);color:var(--text-2);font-weight:500;font-size:.93rem;text-decoration:none!important;transition:background-color .15s ease,color .15s ease}
.toc-list svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.toc-list .lbl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.toc-list a[aria-current="page"]{background:var(--surface);color:var(--text);font-weight:600;box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}
.toc-list a[aria-current="page"]::before{content:"";position:absolute;left:-14px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}
.toc-badge{font-size:.7rem;font-weight:650;color:var(--text-3);background:var(--sunken);border-radius:999px;padding:1px 7px}
.side-foot{margin-top:auto;display:grid;gap:10px;padding-top:14px}
.side-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.demo-pill{display:inline-flex;align-items:center;gap:6px;font-size:.76rem;font-weight:600;color:var(--warn);background:var(--warn-soft);border-radius:999px;padding:3px 9px;cursor:help}
.demo-pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.lang-seg{display:inline-flex;padding:2px;border:1px solid var(--border);border-radius:999px;background:var(--surface);cursor:pointer;font-size:.74rem;font-weight:650;letter-spacing:.04em;color:var(--text-3)}
.lang-seg span{padding:3px 8px;border-radius:999px}
.lang-seg span.on{background:var(--text);color:var(--bg)}
.theme-btn{width:30px;height:30px}
.content{min-width:0;padding:0 clamp(18px,3.4vw,48px) 96px}
.content > *{max-width:1120px}
.bar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:10px;min-height:76px;padding:14px 0 10px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.title-block{margin-right:auto;min-width:0}
.page-title{font-size:clamp(1.45rem,2.3vw,1.85rem);line-height:1.15;font-weight:680;letter-spacing:-.03em}
.page-sub{color:var(--text-3);font-size:.9rem;margin-top:2px}
.month-nav{display:flex;align-items:center;gap:2px;padding:3px;border-radius:999px;border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-sm)}
.month-nav span{min-width:8.5em;text-align:center;font-weight:600;font-size:.92rem}
.icon-btn{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--text-2);cursor:pointer;transition:background-color .15s ease,color .15s ease,transform .12s var(--ease-out)}
.icon-btn:active{transform:scale(.94)}
.icon-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.icon-btn.solo{border-color:var(--border);background:var(--surface);box-shadow:var(--shadow-sm);width:38px;height:38px}
.mob-only{display:none}
#view{outline:none}
.tabbar,.more-sheet{display:none}

/* ---------- buttons ---------- */
.hl,.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border:1px solid transparent;border-radius:var(--r-sm);background:var(--brand);color:var(--on-brand);font-weight:600;font-size:.93rem;cursor:pointer;text-decoration:none!important;white-space:nowrap;box-shadow:var(--shadow-sm);transition:background-color .15s ease,transform .12s var(--ease-out)}
.hl:active,.btn:active{transform:scale(.97)}
.hl[disabled]{opacity:.5;cursor:not-allowed}
.hl.small,.ghost.small{height:32px;padding:0 12px;font-size:.86rem}
.hl.big{height:46px;padding:0 22px;font-size:1rem}
.hl svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.hl.done{background:var(--pos);color:#fff}
.ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);font-weight:550;font-size:.93rem;cursor:pointer;text-decoration:none!important;white-space:nowrap;transition:background-color .15s ease,transform .12s var(--ease-out),border-color .15s ease}
.ghost:active{transform:scale(.97)}
.ghost svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ghost.danger{color:var(--neg)}
.link-btn{background:none;border:0;padding:0;color:var(--brand);font-weight:550;cursor:pointer}
.btns{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin-top:14px}
.x{width:30px;height:30px;border:0;background:none;color:var(--text-3);cursor:pointer;border-radius:8px;display:grid;place-items:center;flex:0 0 auto;transition:color .15s ease,background-color .15s ease}
.x svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.x.big{width:36px;height:36px}.x.big svg{width:15px;height:15px}

/* ---------- forms ---------- */
label.f,div.f{display:block;margin-bottom:16px}
label.f > span:first-child,.f-l{display:block;font-weight:550;font-size:.88rem;margin-bottom:6px;color:var(--text)}
label.f small{display:block;color:var(--text-3);font-size:.82rem;margin-top:5px}
input,select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:9px 12px;width:100%;transition:border-color .15s ease,box-shadow .15s ease}
input[type=checkbox],input[type=radio]{width:auto}
input::placeholder,textarea::placeholder{color:var(--text-3)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
input.bad{border-color:var(--neg)}
input.code{font-family:var(--f-mono);font-variation-settings:var(--mono);font-size:1.8rem;letter-spacing:.35em;text-align:center;max-width:12ch;padding:10px}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 16px}
.f.wide{grid-column:span 2}
.err{color:var(--neg);font-weight:550;font-size:.9rem;min-height:20px;margin-top:8px}
.affix{position:relative;display:block}
.affix input{padding-right:64px}
.affix b{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-weight:500;font-size:.85rem;color:var(--text-3);pointer-events:none}
.affix.iban input{font-family:var(--f-mono);font-variation-settings:var(--mono);letter-spacing:.02em}
.ok-mark{width:20px;height:20px;border-radius:50%;background:var(--pos);opacity:0;transform:translateY(-50%) scale(.6)!important;transition:opacity .2s ease,transform .3s var(--ease-out)!important}
.ok-mark::after{content:"";position:absolute;left:7px;top:4px;width:5px;height:10px;border:solid #fff;border-width:0 2.2px 2.2px 0;transform:rotate(45deg)}
.ok-mark.on{opacity:1;transform:translateY(-50%) scale(1)!important}
.seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border-radius:10px;background:var(--sunken);border:1px solid var(--border)}
.seg label{position:relative;cursor:pointer}
.seg input{position:absolute;opacity:0;pointer-events:none}
.seg span{display:block;padding:6px 12px;border-radius:7px;font-weight:550;font-size:.88rem;color:var(--text-2);transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}
.seg input:checked + span{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm),0 0 0 1px var(--border)}
.seg input:focus-visible + span{outline:2px solid var(--brand);outline-offset:1px}
.seg.small span{padding:4px 10px;font-size:.82rem}
.switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;font-weight:550;margin:4px 0 14px}
.switch input{position:absolute;opacity:0;pointer-events:none}
.sw-track{position:relative;width:42px;height:24px;border-radius:999px;background:var(--border-strong);transition:background-color .2s ease;flex:0 0 auto}
.sw-knob{position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .25s var(--ease-out)}
.switch input:checked + .sw-track{background:var(--brand)}
.switch input:checked + .sw-track .sw-knob{transform:translateX(18px)}
.switch input:focus-visible + .sw-track{outline:2px solid var(--brand);outline-offset:3px}
.switch input:disabled + .sw-track{opacity:.45}
.switch:has(input:disabled){cursor:not-allowed}
.ruler-wrap{position:relative;padding-top:4px}
.ruler-wrap input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;border:0;padding:0;cursor:pointer;box-shadow:none}
.ruler-wrap input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:9px;background:linear-gradient(90deg,var(--brand) var(--p,50%),var(--track) var(--p,50%))}
.ruler-wrap input[type=range]::-moz-range-track{height:6px;border-radius:9px;background:var(--track)}
.ruler-wrap input[type=range]::-moz-range-progress{height:6px;border-radius:9px;background:var(--brand)}
.ruler-wrap input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;margin-top:-8px;border-radius:50%;background:var(--surface);border:2px solid var(--brand);box-shadow:0 2px 6px rgba(16,24,40,.25);transition:transform .15s var(--ease-out)}
.ruler-wrap input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--surface);border:2px solid var(--brand)}
.ruler-wrap input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}
.ruler-wrap input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--brand-soft)}
.ruler{display:flex;justify-content:space-between;padding:0 10px}
.ruler i{width:1px;height:6px;background:var(--border-strong)}.ruler i.big{height:11px}
.sim-r{display:block;margin-bottom:14px}
label.f .sim-l,.sim-l{display:flex;justify-content:space-between;align-items:baseline;font-weight:550;font-size:.9rem;margin-bottom:2px}
.sim-l output{font-weight:650;color:var(--text);font-variant-numeric:tabular-nums}
.sim-r.over .sim-l output{color:var(--neg)}
.sim-r.over input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--neg) var(--p,50%),var(--track) var(--p,50%))}
details.fold{margin-top:12px}
details.fold summary{cursor:pointer;font-weight:550;color:var(--brand);list-style:none;display:inline-flex;align-items:center;gap:8px}
details.fold summary::-webkit-details-marker{display:none}
details.fold summary::before{content:"+";display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:var(--brand-soft);font-size:15px;line-height:1;transition:transform .25s var(--ease-out)}
details.fold[open] summary::before{transform:rotate(45deg)}
.fold-body{margin-top:14px;padding:18px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);animation:enter .22s var(--ease-out)}
.presets{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 16px}
.chip{font:inherit;font-size:.84rem;font-weight:500;color:var(--text-2);background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;padding:4px 11px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .12s var(--ease-out)}
.chip:active{transform:scale(.96)}
.prov-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.prov{position:relative}
.prov input{position:absolute;opacity:0;pointer-events:none}
.prov-c{display:grid;grid-template-columns:32px 1fr;column-gap:10px;align-items:center;padding:10px 12px;border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .12s var(--ease-out)}
.prov-c b{font-size:.92rem}
.prov-c small{grid-column:2;color:var(--text-3);font-size:.76rem}
.prov-i{grid-row:1 / span 2;width:32px;height:32px;border-radius:9px;display:grid;place-items:center;font-style:normal;font-weight:700;color:#fff;background:hsl(var(--h) 50% 46%)}
.prov input:checked + .prov-c{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.prov input:focus-visible + .prov-c{outline:2px solid var(--brand);outline-offset:2px}
.copy-row{display:flex;gap:8px}
.copy-row input{font-family:var(--f-mono);font-variation-settings:var(--mono);font-size:.88rem;background:var(--sunken)}

/* ---------- surfaces ---------- */
.card,.panel,.spend,.invoice,.tax-card,.sim-grid,.lim,.drop,.mini-inv,.ls-doc,.regime{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.panel{padding:20px 22px}
.panel + .panel{margin-top:16px}
.settings{max-width:860px}
.sec{margin-top:32px}
.sec-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.sec-head h2{font-size:1.06rem}
.sub-h{font-size:.95rem;margin:18px 0 8px}
.lede-p{max-width:46em;margin-bottom:14px}
.empty-page{display:flex;flex-direction:column;align-items:flex-start;gap:14px;max-width:560px;padding:32px;border:1px dashed var(--border-strong);border-radius:var(--r-lg)}
.ham-stage{width:100%;max-width:300px}
.ham-mini{width:120px;flex:0 0 auto}
.ham-stage svg,.ham-mini svg{cursor:pointer}
:root[data-theme="dark"] .critter [data-role="shadow"]{fill:rgba(0,0,0,.45)}

/* lists */
.list{list-style:none;margin:0;padding:0}
.list li{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:8px 2px;border-bottom:1px solid var(--border)}
.list li:last-child{border-bottom:0}
.list li .meta{font-size:.84rem;color:var(--text-3)}
.list li .when{color:var(--text-3)}
.list li.soon .when{color:var(--neg);font-weight:600}
.li-right{display:flex;align-items:center;gap:6px}
.list .r{text-align:right}
.card-list{padding:4px 18px}

/* ---------- home ---------- */
.home-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:16px;align-items:stretch}
.spend{display:flex;flex-direction:column;padding:22px 24px}
.eyebrowless{font-size:.88rem;color:var(--text-2);font-weight:500}
.spend-num{font-size:clamp(2.4rem,5vw,3.6rem);line-height:1.05;font-weight:680;color:var(--text);letter-spacing:-.035em;margin:6px 0 4px}
.spend-num small{display:block;margin-top:6px;font-size:.9rem;font-weight:500;color:var(--text-3);letter-spacing:0}
.forecast{margin-top:10px;font-size:.9rem;color:var(--text-2);display:flex;gap:8px;align-items:flex-start}
.forecast::before{content:"";flex:0 0 auto;width:6px;height:6px;margin-top:8px;border-radius:50%;background:var(--brand)}
.spend-flow{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.flow-h{font-size:.88rem;font-weight:550;color:var(--text-2);margin-bottom:2px}
.jar-card{display:flex;flex-direction:column;padding:20px 22px;position:relative;overflow:hidden}
.jar-card .ham-stage{max-width:140px;margin:4px auto 0}
.jar-total{font-size:1.8rem;font-weight:680;letter-spacing:-.03em;margin-top:2px}
.pots-mini{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:9px}
.pots-mini li{display:grid;grid-template-columns:1fr auto;gap:3px 10px;font-size:.88rem}
.pots-mini .pbar{grid-column:1 / -1;height:5px;border-radius:9px;background:var(--track);overflow:hidden}
.pots-mini .pbar i{display:block;height:100%;width:var(--w);background:var(--pc,var(--accent-deep));border-radius:9px;transform-origin:left;animation:grow .8s var(--ease-out) both}
.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}
.kpi{display:flex;flex-direction:column;gap:2px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);color:var(--text);text-decoration:none!important;box-shadow:var(--shadow-sm);transition:border-color .15s ease,transform .15s var(--ease-out)}
.kpi .k{font-size:.8rem;color:var(--text-3);font-weight:500}
.kpi .v{font-size:1.25rem;font-weight:650;letter-spacing:-.02em}
.kpi .v small{font-size:.8rem;color:var(--text-3);font-weight:500}
.kpi .s{font-size:.8rem;color:var(--text-3)}
.kpi .s.neg{color:var(--neg)}.kpi .s.pos{color:var(--pos)}
.kpi .tm{margin-top:8px}
.banner{display:flex;align-items:center;gap:16px;padding:14px 18px;margin-bottom:16px;border-radius:var(--r-lg);border:1px solid color-mix(in srgb,var(--brand) 28%,transparent);background:var(--brand-soft)}
.banner > svg{width:22px;height:22px;flex:0 0 auto;fill:none;stroke:var(--brand);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.banner div{flex:1;min-width:0}
.banner b{display:block}
.banner p{font-size:.88rem;color:var(--text-2)}
.today-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow:hidden;box-shadow:var(--shadow-sm)}
.today-list li + li{border-top:1px solid var(--border)}
.today-list a{display:grid;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:10px 16px;color:var(--text);text-decoration:none!important;transition:background-color .15s ease}
.today-list .dot{width:8px;height:8px;border-radius:50%;background:var(--text-3);justify-self:center}
.today-list li.red .dot{background:var(--neg)}.today-list li.amber .dot{background:var(--warn)}.today-list li.ink .dot{background:var(--brand)}
.today-list .tv{display:flex;flex-direction:column;min-width:0}
.today-list .tv b{font-weight:550}
.today-list .tv small{color:var(--text-3)}
.today-list .tm{color:var(--text-3);font-size:.86rem}
.lv-chip{display:inline-flex;align-items:center;gap:6px;font-weight:650;font-size:.88rem;color:var(--text)}
.coin-i{width:14px;height:14px;border-radius:50%;background:var(--accent);box-shadow:inset 0 0 0 2px var(--coin)}
.fly-coin{position:fixed;z-index:90;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe58a,var(--accent) 55%,var(--coin));box-shadow:inset 0 0 0 2px var(--coin),0 4px 10px -4px rgba(140,90,0,.6);pointer-events:none;will-change:transform}

/* meter */
.meter{position:relative;height:6px;border-radius:9px;background:var(--track);overflow:visible}
.meter .mfill{position:absolute;inset:0 auto 0 0;width:var(--p);max-width:100%;border-radius:9px;background:var(--brand);transform-origin:left;animation:grow .7s var(--ease-out) both}
.meter .mcap{position:absolute;right:0;top:-4px;bottom:-4px;width:2px;background:var(--neg);border-radius:1px}
.meter.over .mfill{background:var(--neg)}
@keyframes grow{from{transform:scaleX(0)}to{transform:none}}
.meter-wrap{margin:12px 0 6px;max-width:520px}
.warn-line{color:var(--neg);font-weight:550;margin-top:6px;font-size:.92rem}

/* ---------- hours ---------- */
.hours-top,.invest-top,.subs-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.ht-main{flex:1;min-width:260px}
.big-hours{font-size:clamp(2.4rem,5.2vw,3.6rem);line-height:1.05;font-weight:680;letter-spacing:-.035em;color:var(--text)}
.big-hours small{font-size:.4em;color:var(--text-3);font-weight:550;letter-spacing:0}
.big-ch{margin-top:6px;font-weight:600}
.pouch-sum{display:flex;flex-wrap:wrap;gap:8px 32px;margin:14px 0 0}
.pouch-sum div{min-width:110px}
.pouch-sum dt{font-size:.8rem;color:var(--text-3)}
.pouch-sum dd{margin:0;font-weight:650;font-size:1.15rem;font-variant-numeric:tabular-nums}
.pouch-sum.wide dd{font-size:1.7rem;letter-spacing:-.03em}
.chart-box{min-height:200px}
.card-pad{padding:18px 20px}
.rows{display:grid;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:6px 10px;box-shadow:var(--shadow-sm)}
.drow{display:grid;grid-template-columns:76px minmax(0,1fr) 64px;align-items:center;min-height:32px;border-radius:6px;padding:0 6px}
.drow .d{font-size:.84rem;color:var(--text-3);white-space:nowrap}
.drow .h{text-align:right;font-size:.86rem;font-weight:550;white-space:nowrap;font-variant-numeric:tabular-nums}
.qs{display:flex;flex-wrap:wrap;gap:2px;align-items:center;padding:4px 0}
.q{width:8px;height:12px;border-radius:2px;background:var(--brand);opacity:.85;animation:pop .4s var(--ease-out) both;animation-delay:var(--qd,0s)}
.q.mv{background:var(--warn)}
.drow .note{font-size:.76rem;color:var(--warn);margin-left:6px}
@keyframes pop{from{transform:scale(.6);opacity:0}to{transform:none;opacity:.85}}
.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr)) 64px;gap:6px}
.cal-h{font-size:.72rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;padding:0 4px}
.cal-d{--a:0;position:relative;min-height:60px;border-radius:10px;border:1px solid var(--border);background:var(--surface);padding:6px 8px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;overflow:hidden;animation:enter .35s var(--ease-out) both;animation-delay:calc(var(--i) * 10ms)}
.cal-d::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c1);opacity:var(--a)}
.cal-d b{font-size:.78rem;font-weight:550;color:var(--text-3)}
.cal-d.on b,.cal-d.on em{color:#fff}
.cal-d.on em{font-style:normal;font-weight:650;font-size:.98rem}
.cal-d.we{background:repeating-linear-gradient(-45deg,var(--surface) 0 6px,var(--sunken) 6px 8px)}
.cal-d.hol b{color:var(--neg)}
.cal-d.fut{opacity:.45}
.cal-d.mv::after{content:"";position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 2px var(--surface)}
.cal-d.pad{border:0;background:none;animation:none}
.cal-d.pad::before{display:none}
.cal-w{align-self:center;font-size:.8rem;color:var(--text-3);text-align:right;font-variant-numeric:tabular-nums}
@keyframes enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

/* ---------- invoices ---------- */
.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:start}
.col{background:var(--sunken);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px;min-height:120px}
.col-h{display:flex;align-items:center;gap:8px;padding:2px 4px 10px;font-weight:600;font-size:.88rem}
.col-h i{width:8px;height:8px;border-radius:50%;background:var(--sc,var(--text-3))}
.col-h span{margin-left:auto;color:var(--text-3);font-weight:500;font-size:.8rem}
.icard{display:block;width:100%;text-align:left;padding:12px 12px 10px;margin-bottom:8px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm);cursor:pointer;transition:border-color .15s ease,transform .15s var(--ease-out),box-shadow .15s ease}
.icard:last-child{margin-bottom:0}
.icard .ic-top{display:flex;justify-content:space-between;gap:8px;font-size:.78rem;color:var(--text-3)}
.icard b{display:block;font-size:1.05rem;font-weight:650;margin:4px 0 2px;font-variant-numeric:tabular-nums}
.icard .ic-c{font-size:.84rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.icard .ic-due{font-size:.78rem;color:var(--text-3);margin-top:6px}
.icard.late .ic-due{color:var(--neg);font-weight:600}
.icard[aria-pressed="true"]{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.col-empty{padding:16px 6px;text-align:center;color:var(--text-3);font-size:.84rem}
.inv-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;margin-top:16px}
.invoice{padding:28px 30px 24px;position:relative}
.invoice header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.invoice h2{font-size:1.3rem}
.stamp{font-weight:650;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--sc,var(--text-3));border:1.5px solid currentColor;border-radius:6px;padding:2px 8px}
.inv-parties{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 16px}
.inv-parties dt{font-size:.78rem;color:var(--text-3)}
.inv-parties dd{margin:0;font-weight:550}
.inv-table{width:100%;border-collapse:collapse;font-size:.93rem}
.inv-table th{font-size:.76rem;color:var(--text-3);font-weight:550;text-align:left;border-bottom:1px solid var(--border-strong);padding:6px 0}
.inv-table th.num,.inv-table td.num{text-align:right}
.inv-table td{padding:10px 0;border-bottom:1px solid var(--border)}
.inv-table tfoot td{font-weight:680;font-size:1.08rem;border-bottom:0;padding-top:12px}
.inv-foot{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;margin-top:16px}
.inv-meta{display:grid;grid-template-columns:repeat(2,auto);gap:8px 28px;margin:0}
.inv-meta dt{font-size:.76rem;color:var(--text-3)}
.inv-meta dd{margin:0;font-weight:550;font-size:.9rem}
.inv-meta div:nth-child(4){grid-column:1 / -1}
.inv-qr{margin:0;text-align:center}
.inv-qr #qrBox{background:#fff;padding:6px;border-radius:8px;display:inline-block}
.inv-qr #qrBox svg{width:108px;height:108px;display:block}
.inv-legal{margin-top:14px;border-top:1px solid var(--border);padding-top:10px}
.inv-side{display:grid;gap:12px}
.inv-side .card{padding:16px 18px}
.inv-side h3{margin-bottom:8px}
.timeline-i{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.timeline-i li{display:grid;grid-template-columns:14px 1fr;gap:10px;font-size:.88rem;color:var(--text-2)}
.timeline-i li i{width:10px;height:10px;margin-top:5px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface)}
.timeline-i li.on i{background:var(--pos);border-color:var(--pos)}
.remind{white-space:pre-wrap;font-size:.86rem;line-height:1.55;padding:12px 14px;border-radius:var(--r);background:var(--sunken);border:1px solid var(--border);max-height:260px;overflow:auto}

/* ---------- simulator, waterfall, charts ---------- */
.sim-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(20px,4vw,48px);align-items:start;margin-top:12px;padding:22px 24px}
.sim-inv{font-size:clamp(1.9rem,3.6vw,2.5rem);font-weight:680;letter-spacing:-.035em;line-height:1.1}
.sim .warn-line{min-height:22px}
.chart{display:block;overflow:visible;font-family:var(--f-ui)}
.chart .cg{stroke:var(--border);stroke-width:1}
.chart .ca{font-size:11px;fill:var(--text-3);font-variant-numeric:tabular-nums}
.chart .cl{font-size:12.5px;font-weight:650;fill:var(--text);font-variant-numeric:tabular-nums}
.chart .cx{stroke:var(--text-3);stroke-width:1;stroke-dasharray:3 4}
.chart .ccol{animation:col .5s var(--ease-out) both;animation-delay:var(--d,0ms);transform-box:fill-box;transform-origin:bottom}
@keyframes col{from{transform:scaleY(0)}to{transform:none}}
.chart.focus .wf-g:not(.hot),.chart.focus .cgrp:not(.hot){opacity:.35}
.wf-g,.cgrp{transition:opacity .2s ease}
.wf-base{stroke:var(--border-strong);stroke-width:1}
.wf-link{stroke:var(--border-strong);stroke-width:1;stroke-dasharray:3 4}
.wf-bar{animation:wfgrow .7s var(--ease-out) both;animation-delay:var(--d)}
@keyframes wfgrow{from{transform:scaleY(0)}to{transform:none}}
.wf-v{font-size:12.5px;font-weight:650;fill:var(--text);font-variant-numeric:tabular-nums}
.wf-v.sm{font-size:10.5px;letter-spacing:-.01em}
.wf-l{font-weight:550;fill:var(--text-2)}
.pace .p-cap{stroke:var(--neg);stroke-width:1.2;stroke-dasharray:5 5}
.pace .p-capl{font-size:11.5px;font-weight:650;fill:var(--neg)}
.pace .p-ideal{fill:none;stroke:var(--text-3);stroke-width:1.4;stroke-dasharray:2 5;stroke-linecap:round;opacity:.7}
.pace .p-line{fill:none;stroke:var(--c1);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.pace .p-fc{fill:none;stroke:var(--c1);stroke-width:1.8;stroke-dasharray:5 5;opacity:.7}
.pace .p-fcdot{fill:var(--surface);stroke:var(--c1);stroke-width:2}
.pace .p-fcl{font-size:12px;font-weight:650;fill:var(--c1)}
.pace .p-now{fill:var(--accent);stroke:var(--critter-ink);stroke-width:2}
.parts-bar{display:flex;gap:2px;height:22px}
.pseg{flex-basis:0;min-width:6px;border-radius:5px;background:var(--c);transform-origin:left;animation:grow .6s var(--ease-out) both}
.legend{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;font-size:.88rem}
.legend li{display:grid;grid-template-columns:12px 1fr auto auto;gap:10px;align-items:center}
.legend.inline{display:flex;flex-wrap:wrap;gap:6px 16px}
.legend.inline li{display:flex;gap:7px}
.legend.small{font-size:.8rem;color:var(--text-3);margin-top:8px}
.legend i,.sw{width:10px;height:10px;border-radius:3px;background:var(--c);display:inline-block}
.legend i.dash{height:0;border-top:2px dashed var(--text-3);border-radius:0;background:none;width:16px}
.legend i.dash.ink{border-top-color:var(--c1)}
.sw{margin-right:6px;vertical-align:-1px}
.div{display:grid;gap:8px}
.drow2{display:grid;grid-template-columns:70px minmax(0,1fr) 110px;align-items:center;gap:10px}
.drow2 .dn{font-weight:550;font-size:.88rem}
.dtrack{position:relative;height:14px}
.dtrack::after{content:"";position:absolute;left:50%;top:-4px;bottom:-4px;width:1px;background:var(--border-strong)}
.dtrack i{position:absolute;top:0;bottom:0;width:var(--w);background:var(--c);border-radius:4px;animation:grow .5s var(--ease-out) both}
.drow2 b{text-align:right;font-size:.88rem}
.hb{display:grid;gap:6px}
.hb-row{display:grid;grid-template-columns:150px minmax(0,1fr) 110px;align-items:center;gap:12px;padding:4px 6px;border-radius:8px;transition:background-color .15s ease}
.hb-n{font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-t{height:10px;border-radius:9px;background:var(--track);overflow:hidden}
.hb-t i{display:block;height:100%;width:var(--w);background:var(--c);border-radius:9px;transform-origin:left;animation:grow .7s var(--ease-out) both;animation-delay:var(--d)}
.hb-row b{text-align:right;font-weight:650;font-variant-numeric:tabular-nums}
.hb-row.hot .hb-n,.hb-row.hot b{color:var(--neg)}
.ctip,.tip{position:fixed;z-index:80;pointer-events:none;background:var(--text);color:var(--bg);border-radius:8px;padding:7px 10px;font-size:.84rem;line-height:1.35;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(4px);transition:opacity .12s ease,transform .15s var(--ease-out);white-space:nowrap}
.tip{white-space:normal;max-width:320px}
.ctip.on,.tip.on{opacity:1;transform:none}
.ctip .soft,.tip .soft{opacity:.7;color:inherit}
.ctip .neg{color:#fca5a5}.ctip .pos{color:#86efac}
:root[data-theme="dark"] .ctip .neg{color:#b91c1c}:root[data-theme="dark"] .ctip .pos{color:#15803d}
.tip .red{color:#fdba74}
.two-col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.two-col > .sec{margin-top:0}
.donut{width:100%;max-width:220px;display:block;margin:0 auto}
.dn-seg{animation:dn .9s var(--ease-out) both;animation-delay:var(--d)}
@keyframes dn{from{stroke-dasharray:0 999}}
.dn-v{font-size:16px;font-weight:680;fill:var(--text);font-variant-numeric:tabular-nums}
.dn-l{font-size:10.5px;fill:var(--text-3)}

/* ---------- subscriptions ---------- */
.timeline{position:relative;height:130px;margin:10px 8px 34px;border-bottom:1px solid var(--border-strong)}
.tl-axis span{position:absolute;bottom:-24px;transform:translateX(-50%);font-size:.76rem;color:var(--text-3);font-variant-numeric:tabular-nums}
.tl-axis span::before{content:"";position:absolute;left:50%;top:-6px;width:1px;height:6px;background:var(--border-strong)}
.tl-dot{position:absolute;bottom:calc(var(--row) * 36px + 4px);transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:3px;font-size:.8rem;font-weight:550;white-space:nowrap}
.tl-dot i{order:2;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2.5px solid var(--c1)}
.tl-dot.soon i{border-color:var(--neg);background:var(--neg)}
.tl-dot.soon{color:var(--neg)}
.bank .drop{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:start;padding:20px 22px;border-style:dashed;border-width:1.5px;border-color:var(--border-strong);box-shadow:none;transition:border-color .15s ease,background-color .15s ease}
.drop > svg{width:48px;height:48px;fill:none;stroke:var(--brand);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;background:var(--brand-soft);border-radius:12px;padding:10px}
.drop h2{margin-bottom:4px}
.drop.over{border-color:var(--brand);background:var(--brand-soft)}
.drop-hint{position:absolute;inset:0;display:grid;place-items:center;font-weight:650;font-size:1.1rem;color:var(--brand);background:color-mix(in srgb,var(--surface) 92%,transparent);border-radius:var(--r-lg);opacity:0;pointer-events:none;transition:opacity .15s ease}
.drop.over .drop-hint{opacity:1}
.file-btn{cursor:pointer;position:relative}.file-btn input{position:absolute;width:1px;height:1px;opacity:0}
.file-btn:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.bank-sum{margin:16px 0 8px;font-weight:550}
.bank-sum.ok{color:var(--pos)}
.bank-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.bank-list li{animation:enter .3s var(--ease-out) both;animation-delay:var(--d)}
.bank-list label{display:grid;grid-template-columns:22px minmax(0,1fr) auto 26px;gap:12px;align-items:center;padding:10px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);cursor:pointer;transition:border-color .15s ease,background-color .15s ease}
.bank-list input,.mod input{position:absolute;opacity:0;pointer-events:none}
.cbox{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border-strong);display:grid;place-items:center;flex:0 0 auto;transition:background-color .15s ease,border-color .15s ease}
.cbox::after{content:"";width:5px;height:10px;border:solid var(--on-brand);border-width:0 2.2px 2.2px 0;transform:rotate(45deg) scale(0);margin-top:-3px;transition:transform .2s var(--ease-out)}
input:checked + .cbox{background:var(--brand);border-color:var(--brand)}
input:checked + .cbox::after{transform:rotate(45deg) scale(1)}
input:focus-visible + .cbox{outline:2px solid var(--brand);outline-offset:2px}
.bank-list label:has(input:checked){border-color:color-mix(in srgb,var(--brand) 45%,transparent);background:var(--brand-soft)}
.bank-list li.dup label{opacity:.5;cursor:default}
.bl-main{display:flex;flex-direction:column;min-width:0}
.bl-main small{color:var(--text-3)}
.bl-amt{font-weight:650}
.conf{display:flex;gap:2px;align-items:flex-end;height:14px}
.conf i{width:4px;border-radius:2px;background:var(--track)}
.conf i:nth-child(1){height:5px}.conf i:nth-child(2){height:9px}.conf i:nth-child(3){height:14px}
.conf.c1 i:nth-child(1),.conf.c2 i:nth-child(-n+2),.conf.c3 i{background:var(--pos)}

/* ---------- investments: accounts ---------- */
.acct-groups{display:grid;gap:12px}
.acct-g{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.acct-gh{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border)}
.acct-gh .prov-i{grid-row:auto}
.acct-gh b{flex:1}
.acct-gh .num{font-weight:650}
.acct-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border)}
.acct-row:last-child{border-bottom:0}
.acct-row small{display:block;color:var(--text-3);font-size:.8rem}
.acct-row .r{text-align:right}
.acct-add{display:flex;align-items:center;gap:8px;padding:10px 16px;color:var(--brand);font-weight:550;font-size:.88rem;background:none;border:0;cursor:pointer;width:100%}
.alloc-tabs{margin-bottom:12px}

/* ---------- pots ---------- */
.pots-top{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:24px;align-items:center;padding:22px 24px}
.pots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.pot{position:relative;display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.pot-h{display:flex;align-items:center;gap:10px}
.pot-i{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:color-mix(in srgb,var(--pc) 16%,transparent);color:var(--pc)}
.pot-i svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pot-h b{flex:1;font-size:.98rem}
.pot-v{font-size:1.5rem;font-weight:680;letter-spacing:-.03em}
.pot-v small{font-size:.8rem;color:var(--text-3);font-weight:500;letter-spacing:0}
.pot-bar{height:8px;border-radius:9px;background:var(--track);overflow:hidden}
.pot-bar i{display:block;height:100%;width:var(--w);background:var(--pc);border-radius:9px;transform-origin:left;transition:width .6s var(--ease-out)}
.pot-meta{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-3)}
.pot-act{display:flex;gap:6px}
.pot-act .ghost{flex:1;height:34px}
.pot.new{align-items:center;justify-content:center;border-style:dashed;box-shadow:none;color:var(--text-2);cursor:pointer;min-height:180px;font-weight:550;background:transparent;font:inherit}
.pot.new svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.pot-move{display:flex;gap:6px;align-items:center}
.pot-move input{height:34px;padding:6px 10px}
.colors{display:flex;gap:8px;flex-wrap:wrap}
.colors label{position:relative;cursor:pointer}
.colors input{position:absolute;opacity:0}
.colors span{display:block;width:26px;height:26px;border-radius:50%;background:var(--pc);box-shadow:inset 0 0 0 2px var(--surface);border:2px solid transparent;transition:border-color .15s ease}
.colors input:checked + span{border-color:var(--text)}
.colors input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}

/* ---------- taxes ---------- */
.tax-card{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:clamp(20px,4vw,48px);align-items:center;padding:22px 24px}
.tax-lede{font-size:.95rem;margin-top:2px;color:var(--text-2)}
.tax-lede b{display:block;font-size:clamp(2rem,4.2vw,2.9rem);font-weight:680;letter-spacing:-.035em;color:var(--text);line-height:1.1;margin:4px 0}
.tax-opts{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:14px 0 16px}
.tax-flat{display:flex;align-items:center;gap:8px}
.tax-ledger{margin:0;display:grid;max-width:440px}
.tax-ledger div{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border)}
.tax-ledger dt{display:flex;align-items:center;gap:9px;color:var(--text-2)}
.tax-ledger dt i{width:10px;height:10px;border-radius:3px;background:var(--c)}
.tax-ledger dd{margin:0;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.tax-ledger .tot{border-bottom:0;border-top:1px solid var(--border-strong);margin-top:2px}
.tax-ledger .tot dt{color:var(--text);font-weight:600}
.tax-ledger .tot dd{font-size:1.1rem}
.tax-rec,.rules-preview,.tip-box{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:16px;padding:12px 14px;border-radius:var(--r);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent-deep) 35%,transparent);font-weight:500}
.rules-preview{margin:-4px 0 18px}
.regimes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.regime{position:relative;padding:18px 18px 16px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px}
.regime.best{border-color:color-mix(in srgb,var(--pos) 55%,transparent);box-shadow:0 0 0 3px var(--pos-soft)}
.regime .rg-tag{position:absolute;top:-10px;left:16px;font-size:.7rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:var(--pos);border-radius:999px;padding:2px 9px}
.regime h3{font-size:1rem}
.regime .rg-v{font-size:1.6rem;font-weight:680;letter-spacing:-.03em}
.regime .rg-v small{font-size:.78rem;color:var(--text-3);font-weight:500;letter-spacing:0}
.regime ul{margin:6px 0 0;padding-left:18px;font-size:.86rem;color:var(--text-2);display:grid;gap:3px}
.regime.na{opacity:.6}
.regime.mine{border-color:var(--accent-deep)}
.regime .rg-mine{display:flex;align-items:center;gap:6px;margin-top:auto;padding-top:8px;font-size:.86rem;font-weight:650;color:var(--text)}
.regime .rg-mine svg{width:16px;height:16px;padding:2px;border-radius:50%;background:var(--accent);color:var(--critter-ink)}
.regime .rg-use{margin-top:auto;align-self:flex-start}
.regime .rg-na{font-size:.82rem;color:var(--warn);font-weight:550}
.law{display:grid;gap:8px}
.law details{border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
.law summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;font-weight:600}
.law summary::-webkit-details-marker{display:none}
.law summary::after{content:"";width:8px;height:8px;border-right:2px solid var(--text-3);border-bottom:2px solid var(--text-3);transform:rotate(45deg);transition:transform .2s var(--ease-out);flex:0 0 auto}
.law details[open] summary::after{transform:rotate(-135deg)}
.law .law-b{padding:0 16px 16px;color:var(--text-2);font-size:.92rem;line-height:1.6}
.law .law-b p + p{margin-top:8px}
.law .law-b ul{margin:6px 0;padding-left:18px}
.law .src{font-size:.8rem;color:var(--text-3);margin-top:8px}
.limits{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:12px}
.lim{padding:18px 20px;box-shadow:var(--shadow-sm)}
.lim header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.lim h3{font-size:1rem}
.lim-tag{font-size:.72rem;font-weight:600;color:var(--text-3);background:var(--sunken);border-radius:999px;padding:2px 9px}
.lim p{color:var(--text-2);font-size:.9rem;line-height:1.5;margin-top:10px}
.lim-bar{position:relative;height:10px;border-radius:9px;background:var(--track);margin:30px 0 8px}
.lim-bar i{position:absolute;left:0;top:0;bottom:0;width:var(--w);border-radius:9px;transform-origin:left;animation:grow .9s var(--ease-out) both}
.lim-proj{background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--brand) 32%,transparent) 0 4px,color-mix(in srgb,var(--brand) 14%,transparent) 4px 8px)}
.lim-now{background:var(--brand)}
.lim.near .lim-now{background:var(--warn)}.lim.over .lim-now{background:var(--neg)}
.lim.near{border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.lim.over{border-color:color-mix(in srgb,var(--neg) 45%,transparent)}
.lim-mark{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--text);transform:translateX(-1px)}
.lim-mark span{position:absolute;bottom:calc(100% + 3px);left:50%;transform:translateX(-50%);font-size:.7rem;font-weight:650;white-space:nowrap}
.lim-legend{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--text-3)}
.lim-legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.lim-legend i.now{background:var(--brand)}.lim-legend i.proj{background:color-mix(in srgb,var(--brand) 32%,transparent)}

/* ---------- contract ---------- */
.contract-page{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:16px;align-items:start}
.contract textarea{min-height:200px;line-height:1.6;padding:14px 16px;border-radius:var(--r);resize:vertical}
.read-out{white-space:pre-wrap;line-height:1.75;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);cursor:text}
.mk{background:linear-gradient(var(--accent-soft),var(--accent-soft)) no-repeat 0 100%/0% 100%;border-bottom:2px solid var(--accent-deep);color:inherit;padding:0 1px;border-radius:2px;transition:background-size .5s var(--ease-out);transition-delay:var(--d,0ms)}
.mk.on{background-size:100% 100%}
.mk.risk{border-bottom-color:var(--neg);background-image:linear-gradient(var(--neg-soft),var(--neg-soft))}
.rule-chips{display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;margin-top:12px}
.rchip{display:inline-flex;align-items:center;gap:6px;padding:4px 11px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);font-size:.86rem;animation:chip .3s var(--ease-out) both;animation-delay:var(--d,0ms)}
.rule-chips.static .rchip{animation:none}
.rchip b{color:var(--text-2);font-weight:550}
.rchip svg{width:13px;height:13px;fill:none;stroke:var(--pos);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
@keyframes chip{from{opacity:0;transform:translateY(6px) scale(.97)}to{opacity:1;transform:none}}
.risk-card{margin-top:16px;padding:18px 20px}
.risk-score{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.risks{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.risks li{padding:12px 14px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface-2);animation:enter .3s var(--ease-out) both;animation-delay:var(--d)}
.risks li header{display:flex;align-items:center;gap:8px;font-weight:600}
.sev{font-size:.7rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 8px}
.sev.high{color:var(--neg);background:var(--neg-soft)}.sev.mid{color:var(--warn);background:var(--warn-soft)}.sev.ok{color:var(--pos);background:var(--pos-soft)}
.risks p{font-size:.9rem;color:var(--text-2);margin-top:6px}
.risks blockquote{margin:8px 0 0;padding:8px 12px;border-left:3px solid var(--pos);background:var(--pos-soft);border-radius:0 8px 8px 0;font-size:.88rem}
.risks .q-src{font-size:.82rem;color:var(--text-3);margin-top:6px;font-style:italic}
.steps-ol{margin:10px 0 16px;padding-left:20px;display:grid;gap:4px;color:var(--text-2)}

/* ---------- settings ---------- */
.ai-mark{color:#d97757;font-size:1.2rem;line-height:1}
.claude-panel .sec-head{justify-content:flex-start;gap:10px}
.install-row{display:flex;gap:16px;align-items:flex-start}
.install-row img{border-radius:14px;box-shadow:var(--shadow);flex:0 0 auto}
.notif-form .f{margin-bottom:8px}
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.mod{position:relative}
.mod > span{display:grid;grid-template-columns:20px 34px minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;height:100%;transition:border-color .15s ease,background-color .15s ease}
.mod .mi{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--sunken);color:var(--text-2)}
.mod .mi svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mod b{display:block;font-size:.93rem}
.mod small{display:block;font-size:.8rem;color:var(--text-3);line-height:1.35}
.mod input:checked ~ span,.mod:has(input:checked) > span{border-color:color-mix(in srgb,var(--brand) 50%,transparent);background:var(--brand-soft)}
.mod:has(input:checked) .mi{background:var(--surface);color:var(--brand)}
.mod.locked > span{cursor:default;opacity:.75}

/* ---------- tools: rate calculator, closing, wrapped, onboarding ---------- */
.tool-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:16px;align-items:start}
.tool-card{padding:22px 24px}
.rate-out{position:sticky;top:96px}
.rate-big{font-size:clamp(2.6rem,5.4vw,3.8rem);font-weight:700;letter-spacing:-.04em;line-height:1}
.rate-big small{font-size:.32em;font-weight:550;color:var(--text-3);letter-spacing:0}
.rate-cmp{margin-top:10px;font-size:.92rem;color:var(--text-2)}
.rate-cmp b{color:var(--text)}
.stack{display:flex;height:14px;border-radius:9px;overflow:hidden;gap:2px;margin:18px 0 10px}
.stack i{display:block;height:100%;background:var(--c);flex-basis:0;transition:flex-grow .4s var(--ease-out)}
.stepper{display:flex;gap:6px;margin-bottom:20px}
.stepper button{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:0;border:0;background:none;cursor:pointer;text-align:left;color:var(--text-3);font-size:.8rem;font-weight:550}
.stepper button::before{content:"";display:block;width:100%;height:4px;border-radius:9px;background:var(--track);transition:background-color .3s ease}
.stepper button.done::before{background:var(--pos)}
.stepper button.cur{color:var(--text)}
.stepper button.cur::before{background:var(--brand)}
.close-step{padding:24px 26px;min-height:340px}
.close-step h2{font-size:1.4rem;letter-spacing:-.025em;margin-bottom:6px}
.close-grid{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:16px;align-items:start}
.close-side{position:sticky;top:96px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.close-side .ham-stage{max-width:160px}
.gap-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px}
.gap-list li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--r);border:1px solid var(--border);background:var(--surface-2);flex-wrap:wrap}
.gap-list li b{min-width:90px}
.gap-list li .ghost{margin-left:auto}
.gap-list li.filled{border-color:color-mix(in srgb,var(--pos) 40%,transparent);background:var(--pos-soft)}
.big-check{width:72px;height:72px;border-radius:50%;background:var(--pos);display:grid;place-items:center;margin-bottom:12px;animation:stampIn .5s var(--ease-out) both}
.big-check svg{width:34px;height:34px;fill:none;stroke:#fff;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
@keyframes stampIn{from{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}
.sum-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:16px 0}
.sum-grid div{padding:12px 14px;border-radius:var(--r);background:var(--sunken)}
.sum-grid dt{font-size:.78rem;color:var(--text-3)}
.sum-grid dd{margin:2px 0 0;font-weight:650;font-size:1.15rem;font-variant-numeric:tabular-nums}
.onb{max-width:780px;margin:0 auto}
.onb-card{padding:30px 32px;min-height:440px;display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow)}
.onb-top{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.onb-top .ham-mini{width:64px}
.onb-q{font-size:clamp(1.35rem,2.6vw,1.85rem);line-height:1.2;letter-spacing:-.03em;font-weight:680;margin-bottom:6px}
.onb-body{flex:1;margin-top:18px}
.onb-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:24px}
.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.choice{position:relative}
.choice input{position:absolute;opacity:0;pointer-events:none}
.choice > span{display:flex;flex-direction:column;gap:4px;height:100%;padding:16px;border-radius:var(--r);border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .12s var(--ease-out)}
.choice b{font-size:1rem}
.choice small{color:var(--text-3);font-size:.84rem;line-height:1.4}
.choice input:checked + span{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);background:color-mix(in srgb,var(--brand) 7%,var(--surface))}
.choice input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.choice > span:active{transform:scale(.98)}
.choice input[type=checkbox] + span{position:relative;padding-right:44px}
.choice input[type=checkbox] + span::after{content:"";position:absolute;top:14px;right:14px;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--border-strong);background:var(--surface) center/14px no-repeat;transition:background-color .15s ease,border-color .15s ease}
.choice input[type=checkbox]:checked + span::after{border-color:var(--brand);background-color:var(--brand);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E")}
.cap-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.cap-in{width:120px}
.cap-in input{padding-right:34px}
.onb-help{margin-top:18px;padding:18px;border-radius:var(--r-lg);background:var(--sunken);display:grid;gap:10px;animation:enter .3s var(--ease-out)}
.onb-help h3{font-size:1rem;margin-top:4px}
.onb-help h3 + .muted{margin-top:-6px}
.onb-verdict{margin:14px 0 6px;padding:12px 14px;border-radius:var(--r);background:var(--brand-soft);color:var(--text);font-weight:500;line-height:1.45}
.onb-verdict.ok{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent-deep)}
.onb-cmp{margin-top:18px}
.onb-cmp-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px}
.onb-cmp-h h3{font-size:1.05rem}
.onb-cmp-h .f{margin:0;width:220px}
.rg-rows{display:grid;gap:8px}
.rg-row > span{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 16px;padding:12px 16px}
.rg-row-h{display:flex;align-items:center;gap:10px}
.rg-row-h em{font-style:normal;font-size:.7rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--critter-ink);background:var(--accent);border-radius:999px;padding:2px 9px}
.rg-row-v{font-weight:680;font-size:1.1rem}
.rg-row-v small{font-weight:500;font-size:.78rem}
.rg-row.na > span{cursor:default;opacity:.62}
.rg-row.na small{color:var(--warn)}
.onb-why{margin-top:10px;font-size:.92rem;color:var(--text-2)}
.big-input{display:flex;align-items:baseline;gap:10px;margin:8px 0 10px}
.big-input input{font-size:2.6rem;font-weight:680;letter-spacing:-.03em;width:5.2ch;padding:4px 6px;border-width:0 0 2px;border-radius:0;background:transparent;box-shadow:none!important}
.big-input span{font-size:1.1rem;color:var(--text-3);font-weight:550}

/* ---------- command palette ---------- */
.cmdk{position:fixed;inset:0;z-index:100;display:grid;align-items:start;justify-items:center;padding:12vh 16px 16px;background:rgba(10,12,18,.42)}
.cmdk-box{width:min(620px,100%);border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden}
.cmdk-in{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border)}
.cmdk-in svg{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:var(--text-3);stroke-width:2;stroke-linecap:round}
.cmdk-in input{border:0;padding:0;font-size:1.02rem;background:transparent;box-shadow:none!important}
.cmdk-list{list-style:none;margin:0;padding:6px;max-height:min(420px,60vh);overflow:auto}
.cmdk-sec{padding:8px 10px 4px;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.cmdk-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);cursor:pointer;color:var(--text)}
.cmdk-item svg{width:17px;height:17px;flex:0 0 auto;fill:none;stroke:var(--text-3);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cmdk-item small{margin-left:auto;color:var(--text-3)}
.cmdk-item[aria-selected="true"]{background:var(--brand-soft)}
.cmdk-item[aria-selected="true"] svg{stroke:var(--brand)}
.cmdk-empty{padding:16px;color:var(--text-3)}
.cmdk-foot{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--border);font-size:.76rem;color:var(--text-3)}

/* ---------- bell ---------- */
.bell-wrap{position:relative}
.bell{position:relative}
.bell.ring svg{transform-origin:50% 15%;animation:ring 1.2s var(--ease-out) 1s 2}
@keyframes ring{0%,100%{transform:rotate(0)}15%{transform:rotate(14deg)}30%{transform:rotate(-12deg)}45%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}75%{transform:rotate(2deg)}}
.bell-n{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--neg);color:#fff;font-size:.68rem;font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px var(--bg)}
.bell-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:55;width:min(340px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:8px;box-shadow:var(--shadow-lg);transform-origin:top right}
.bp-t{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3);padding:6px 8px}
.bp-none{padding:6px 8px 10px}
.bell-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:1px}
.bell-panel a{display:flex;gap:11px;align-items:flex-start;padding:9px 8px;border-radius:var(--r-sm);color:var(--text);text-decoration:none!important;line-height:1.35}
.bell-panel li.new a span{font-weight:550}
.bell-panel small{display:block;color:var(--text-3);font-size:.8rem;font-weight:500}

/* ---------- toast, buddy ---------- */
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,16px);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:550;font-size:.92rem;box-shadow:var(--shadow-lg);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .3s var(--ease-out);z-index:120}
.toast.on{opacity:1;transform:translate(-50%,0)}
.buddy{position:fixed;right:clamp(12px,2.2vw,24px);bottom:clamp(12px,2.2vw,24px);z-index:50;display:flex;flex-direction:column;align-items:flex-end;gap:10px;pointer-events:none}
.buddy > *{pointer-events:auto}
.buddy-btn{position:relative;display:flex;align-items:center;height:60px;min-width:60px;padding:0 6px;border-radius:999px;border:1px solid var(--border);background:var(--surface);cursor:pointer;box-shadow:var(--shadow);transition:transform .2s var(--ease-out),box-shadow .3s var(--ease-out),border-color .2s ease}
.buddy-btn:active{transform:scale(.95)}
.buddy-label{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;font-weight:550;font-size:.92rem;color:var(--text);transition:max-width .4s var(--ease-out),opacity .2s ease,margin .4s var(--ease-out)}
.buddy.hover .buddy-label,.buddy-btn:focus-visible .buddy-label{max-width:12em;opacity:1;margin:0 2px 0 14px}
.buddy.hover .buddy-btn{box-shadow:var(--shadow-lg);border-color:var(--border-strong)}
.buddy-art{display:block;width:46px;height:50px;flex:0 0 46px;margin-top:-4px;transform-origin:50% 90%;transition:transform .45s var(--ease-out)}
.buddy.hover .buddy-art,.buddy-btn:focus-visible .buddy-art{transform:translateY(-9px) rotate(-6deg) scale(1.08)}
.buddy-art svg{width:100%;height:100%;display:block;overflow:visible}
.buddy-dot{position:absolute;top:3px;right:5px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--accent-deep)}
.buddy-dot::after{content:"";position:absolute;inset:-2px;border-radius:50%;border:2px solid var(--accent-deep);animation:dotping 2.4s var(--ease-out) infinite}
@keyframes dotping{0%{transform:scale(1);opacity:.7}70%,100%{transform:scale(2.2);opacity:0}}
.buddy-bubble{position:relative;max-width:min(320px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:16px 16px 4px 16px;padding:12px 14px;line-height:1.45;box-shadow:var(--shadow-lg);opacity:0;transform:translateY(8px) scale(.97);transform-origin:bottom right;visibility:hidden;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out),visibility 0s .18s}
.buddy-bubble.on{opacity:1;transform:none;visibility:visible;transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}
.buddy-bubble p{font-size:.95rem;padding-right:18px}
.buddy-bubble .x{position:absolute;top:6px;right:6px;width:26px;height:26px}
.buddy-bubble[data-kind="tip"]{border-color:color-mix(in srgb,var(--accent-deep) 45%,var(--border));box-shadow:var(--shadow-lg),inset 0 3px 0 var(--accent)}
.buddy-bubble .btns{margin-top:10px}
.buddy-panel{width:min(360px,calc(100vw - 24px));max-height:min(520px,calc(100svh - 140px));display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);transform-origin:bottom right;overflow:hidden}
.bp-head{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border)}
.bp-log{flex:1;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-height:120px;background:var(--surface-2)}
.msg{max-width:85%;padding:8px 12px;border-radius:14px;line-height:1.4;font-size:.92rem}
.msg.bot{align-self:flex-start;background:var(--surface);border:1px solid var(--border);border-bottom-left-radius:4px}
.msg.me{align-self:flex-end;background:var(--brand);color:var(--on-brand);border-bottom-right-radius:4px}
.msg.typing{display:flex;gap:4px;padding:12px}
.msg.typing span{width:6px;height:6px;border-radius:50%;background:var(--text-3);animation:dot 1s infinite ease-in-out}
.msg.typing span:nth-child(2){animation-delay:.15s}.msg.typing span:nth-child(3){animation-delay:.3s}
@keyframes dot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.bp-chips{display:flex;flex-wrap:wrap;gap:6px;padding:8px 14px;border-top:1px solid var(--border)}
.bp-form{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}
.bp-form input{padding:7px 10px}
.in-lesson .buddy,.in-tool .buddy{display:none}

/* ---------- login gate ---------- */
.gate{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(24px,5vw,72px);align-items:center;min-height:calc(100svh - 200px)}
.gate-h{font-size:clamp(2rem,4vw,3rem);line-height:1.08;font-weight:680;letter-spacing:-.035em;max-width:14ch}
.gate .lede{margin-top:16px;max-width:32em;color:var(--text-2);font-size:1.05rem}
.gate .act{margin-top:28px}
.qr{display:inline-block;padding:12px;background:#fff;border:1px solid var(--border);border-radius:var(--r);margin:16px 0 8px}
.qr svg{display:block;width:200px;height:200px}
.secret{font-family:var(--f-mono);font-variation-settings:var(--mono);font-size:.88rem;word-break:break-all;color:var(--text-2)}
.codes{font-family:var(--f-mono);display:grid;grid-template-columns:repeat(2,max-content);gap:6px 28px;margin:16px 0;padding:16px 20px;border:1px dashed var(--border-strong);border-radius:var(--r);font-variation-settings:var(--mono);font-size:1.05rem}

/* ---------- Škola ---------- */
.sch-top{display:flex;align-items:flex-end;justify-content:space-between;gap:24px}
.sch-hero{flex:1;min-width:0}
.sch-stats{display:flex;flex-wrap:wrap;gap:14px 40px;margin-top:16px}
.sch-stats > div{display:flex;flex-direction:column;gap:4px;min-width:150px}
.sch-k{display:inline-flex;align-items:center;gap:6px;font-weight:680;font-size:1.25rem;letter-spacing:-.02em}
.sch-lv{width:160px;height:6px;border-radius:9px;background:var(--track);overflow:hidden}
.sch-lv i{display:block;height:100%;width:var(--p);background:var(--accent-deep);border-radius:9px;transform-origin:left;animation:grow .9s var(--ease-out) both}
.flame{width:20px;height:20px;fill:#f97316}
.sch-ham{width:120px}
.sch-list{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:8px}
.sch-item a{display:grid;grid-template-columns:52px minmax(0,1fr) 52px 110px;align-items:center;gap:16px;padding:16px 18px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);text-decoration:none!important;box-shadow:var(--shadow-sm);transition:border-color .15s ease,transform .15s var(--ease-out)}
.sch-no{font-size:1.6rem;font-weight:700;letter-spacing:-.04em;color:var(--text-3);line-height:1}
.sch-item.next .sch-no{color:var(--brand)}
.sch-item.done .sch-no{color:var(--coin)}
.sch-body{display:flex;flex-direction:column;gap:3px;min-width:0}
.sch-body b{font-size:1.04rem;font-weight:650}
.sch-body .soft{font-size:.9rem}
.sch-meta{display:flex;align-items:center;gap:12px;margin-top:6px}
.sch-dots{display:flex;gap:3px}
.sch-dots i{width:16px;height:4px;border-radius:9px;background:var(--track)}
.sch-dots i.on{background:var(--accent-deep)}
.sch-badge{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;border:1.5px dashed var(--border-strong);color:var(--text-3)}
.sch-badge svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}
.sch-badge.got{border:0;background:var(--accent);color:var(--critter-ink);box-shadow:inset 0 0 0 3px var(--coin)}
.sch-badge.big{width:104px;height:104px}.sch-badge.big svg{width:52px;height:52px}
.sch-go{justify-self:end;font-weight:600;font-size:.88rem;padding:7px 14px;border-radius:var(--r-sm);border:1px solid var(--border-strong);color:var(--text)}
.sch-item.next .sch-go{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.sch-note{margin-top:16px;max-width:52em}
.lesson{position:relative;max-width:1060px}
.ls-head{display:flex;align-items:center;gap:16px;margin-bottom:22px}
.ls-bar{flex:1;display:flex;gap:5px}
.ls-bar i{flex:1;height:6px;border-radius:9px;background:var(--track);overflow:hidden}
.ls-bar i b{display:block;height:100%;width:100%;background:var(--pos);border-radius:9px;transform:scaleX(0);transform-origin:left;transition:transform .45s var(--ease-out)}
.ls-bar i.on b{transform:none}
.ls-bar i.cur b{transform:scaleX(.2);background:var(--brand)}
.ls-coins{font-weight:650;white-space:nowrap}
.ls-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:clamp(20px,4vw,56px);align-items:start}
.ls-stage{min-height:360px;padding-bottom:120px}
.ls-side{position:sticky;top:96px;display:flex;flex-direction:column;align-items:center;gap:10px}
.ls-ham{width:100%;max-width:180px}
.ls-say{text-align:center;font-size:.95rem;font-weight:550;color:var(--text-2)}
.ls-step{margin-bottom:8px;font-size:.84rem;color:var(--text-3)}
.ls-q{font-size:clamp(1.35rem,2.4vw,1.85rem);line-height:1.22;font-weight:680;letter-spacing:-.03em;max-width:24em;margin-bottom:12px}
.ls-p{max-width:36em;font-size:1.04rem;line-height:1.65;margin-top:10px}
.ls-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px;max-width:34em}
.ls-list li{display:flex;align-items:center;gap:14px;font-size:1.02rem;font-weight:550;padding:12px 16px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);animation:enter .4s var(--ease-out) both;animation-delay:var(--d)}
.ls-list li span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-weight:700;font-size:.9rem;flex:0 0 auto}
.ls-act{margin-top:22px}
.ls-opts{display:grid;gap:8px;margin-top:16px;max-width:40em}
.opt{display:flex;align-items:center;gap:14px;text-align:left;font:inherit;font-size:1rem;line-height:1.4;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r);padding:12px 14px;cursor:pointer;transition:border-color .15s ease,background-color .15s ease,transform .12s var(--ease-out)}
.opt:active{transform:scale(.99)}
.opt-key{display:grid;place-items:center;width:28px;height:28px;flex:0 0 auto;border-radius:8px;border:1px solid var(--border-strong);font-weight:650;font-size:.84rem;color:var(--text-3);transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.opt.sel{border-color:var(--brand);background:var(--brand-soft)}
.opt.sel .opt-key,.opt[aria-checked="true"] .opt-key{background:var(--brand);border-color:var(--brand);color:var(--on-brand)}
.opt.right{border-color:var(--pos);background:var(--pos-soft)}.opt.right .opt-key{background:var(--pos);border-color:var(--pos);color:#fff}
.opt.wrong{border-color:var(--neg);background:var(--neg-soft)}.opt.wrong .opt-key{background:var(--neg);border-color:var(--neg);color:#fff}
.opt.missed{border-style:dashed;border-color:var(--pos)}
.opt.locked{cursor:default}
.ls-doc{margin-top:16px;padding:20px 22px;line-height:2;font-size:1.02rem;max-width:42em}
.sent{display:inline;font:inherit;color:inherit;text-align:left;background:linear-gradient(var(--accent-soft),var(--accent-soft)) no-repeat 0 100%/0% 100%;border:0;border-bottom:2px solid transparent;padding:1px 2px;margin:0;border-radius:3px;cursor:pointer;transition:background-size .3s var(--ease-out),border-color .2s ease;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.sent.sel{background-size:100% 100%;border-bottom-color:var(--accent-deep)}
.sent.right{background-image:linear-gradient(var(--pos-soft),var(--pos-soft));background-size:100% 100%;border-bottom-color:var(--pos)}
.sent.missed{background-image:linear-gradient(var(--neg-soft),var(--neg-soft));background-size:100% 100%;border-bottom:2px dashed var(--neg)}
.sent.wrong{background-image:none;text-decoration:line-through;color:var(--text-3)}
.sent.locked{cursor:default}
.ls-why{margin-top:14px;max-width:42em}
.ls-why ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ls-why li{font-size:.94rem;line-height:1.45;padding-left:12px;border-left:3px solid var(--pos)}
.ls-why li.m{border-left-color:var(--neg)}
.ls-build{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;margin-top:16px;align-items:start}
.mini-inv{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.slot{border:1.5px dashed var(--border-strong);border-radius:10px;padding:8px 10px;min-height:56px}
.slot small{display:block;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.slot-v{display:block;font-weight:550;font-size:.9rem;line-height:1.3;margin-top:2px}
.slot.filled{border-style:solid;border-color:var(--border)}
.chips{display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start}
.bchip{font:inherit;font-size:.9rem;font-weight:500;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:999px;padding:8px 13px;cursor:pointer;text-align:left;transition:opacity .2s ease,transform .12s var(--ease-out),border-color .15s ease}
.bchip:active{transform:scale(.97)}
.bchip.used{opacity:0;pointer-events:none}
.bchip.nope{opacity:.4;text-decoration:line-through;cursor:default}
.ghostfly{pointer-events:none;background:var(--accent-soft);border-color:var(--accent-deep)}
.ls-slider{margin-top:20px;max-width:560px}
.ls-slider output{display:block;font-size:clamp(1.9rem,3.6vw,2.6rem);font-weight:680;letter-spacing:-.03em}
.ls-slider .ruler-wrap{padding-top:40px}
.ans{position:absolute;top:2px;transform:translateX(-50%);background:var(--pos);color:#fff;font-weight:650;font-size:.82rem;padding:3px 9px;border-radius:999px;white-space:nowrap}
.rl{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-3);margin-top:6px}
.ls-feedback{position:fixed;left:var(--side-w);right:0;bottom:0;z-index:45;transform:translateY(105%);transition:transform .3s var(--ease-out)}
.ls-feedback.on{transform:none}
.fb-in{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px clamp(18px,3.4vw,48px) calc(16px + env(safe-area-inset-bottom));border-top:1px solid color-mix(in srgb,var(--pos) 40%,transparent);background:#effaf2}
:root[data-theme="dark"] .fb-in{background:#13241a}
.ls-feedback.bad .fb-in{border-top-color:color-mix(in srgb,var(--neg) 40%,transparent);background:#fdf0ef}
:root[data-theme="dark"] .ls-feedback.bad .fb-in{background:#2a1515}
.fb-in b{font-size:1.1rem;font-weight:680;color:var(--pos)}
.ls-feedback.bad .fb-in b{color:var(--neg)}
.fb-in p{margin-top:2px;max-width:52em;line-height:1.45;font-size:.95rem}
.fb-in .hl{flex:0 0 auto}
.ls-end{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding-top:6px}
.ls-earn{font-size:2rem;font-weight:700;letter-spacing:-.03em;color:var(--coin)}
.ls-endstats{display:flex;flex-wrap:wrap;gap:6px 24px;margin:2px 0 10px;color:var(--text-3);font-size:.92rem}
.ls-endstats b{color:var(--text);font-weight:650}
.stamp-in{animation:stampIn .55s var(--ease-out) both}

/* ---------- hover only with a mouse ---------- */
@media (hover:hover) and (pointer:fine){
  .toc-list a:hover{background:var(--hover);color:var(--text)}
  .toc-list a[aria-current="page"]:hover{background:var(--surface)}
  .cmd-btn:hover{border-color:var(--border-strong);color:var(--text-2)}
  .icon-btn:hover{background:var(--hover);color:var(--text)}
  .hl:hover,.btn:hover{background:var(--brand-hover)}
  .hl.done:hover{background:var(--pos)}
  .ghost:hover{background:var(--hover);border-color:color-mix(in srgb,var(--text) 28%,transparent)}
  .chip:hover{border-color:var(--text-3);color:var(--text)}
  .x:hover{color:var(--neg);background:var(--neg-soft)}
  .kpi:hover,.icard:hover,.sch-item a:hover,.cl-list a:hover{border-color:var(--border-strong);transform:translateY(-1px)}
  .today-list a:hover{background:var(--hover)}
  .drow:hover,.hb-row:hover{background:var(--hover)}
  .prov-c:hover,.choice > span:hover,.mod > span:hover{border-color:color-mix(in srgb,var(--text) 35%,transparent)}
  .opt:not(.locked):hover{border-color:color-mix(in srgb,var(--text) 35%,transparent)}
  .bchip:not(:disabled):hover{border-color:var(--brand)}
  .sent:not(.locked):not(.sel):hover{background-size:100% 100%}
  .seg span:hover{color:var(--text)}
  .brand:hover .brand-ham{transform:rotate(-8deg)}
  .bell-panel a:hover{background:var(--hover)}
  .pot.new:hover{border-color:var(--brand);color:var(--brand)}
  .cmdk-item:hover{background:var(--hover)}
  .acct-add:hover{background:var(--hover)}
  .law summary:hover{background:var(--hover)}
}

/* ---------- responsive ---------- */
@media (max-width:1180px){
  .home-grid,.contract-page,.gate,.tool-grid,.inv-detail,.close-grid{grid-template-columns:minmax(0,1fr)}
  .board{grid-template-columns:repeat(2,minmax(0,1fr))}
  .regimes{grid-template-columns:minmax(0,1fr)}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rate-out,.close-side{position:static}
  .close-side{flex-direction:row;justify-content:flex-start;text-align:left}.close-side .ham-stage{max-width:80px}
  .ls-grid{grid-template-columns:minmax(0,1fr)}.ls-side{position:static;flex-direction:row;order:-1}.ls-ham{width:84px}.ls-say{text-align:left}
}
@media (max-width:860px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{display:none}
  .mob-only{display:grid}
  .content{padding:0 16px 120px}
  .bar{min-height:62px;padding:10px 0 8px;flex-wrap:wrap;row-gap:8px}
  .bar .month-nav{order:3;width:100%;justify-content:space-between}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:2px;padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--border)}
  .tabbar a,.tabbar button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;border:0;background:none;font:inherit;cursor:pointer;border-radius:10px;color:var(--text-3);text-decoration:none!important;font-size:.7rem;font-weight:550}
  .tabbar span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .tabbar svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .tabbar #moreBtn svg{stroke-width:3}
  .tabbar [aria-current="page"]{color:var(--brand)}
  .more-sheet:not([hidden]){display:block;position:fixed;inset:0;z-index:39;background:rgba(10,12,18,.32)}
  .ms-in{position:absolute;left:8px;right:8px;bottom:calc(72px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:8px;box-shadow:var(--shadow-lg);max-height:70svh;overflow:auto}
  .ms-in .nav-label{padding:10px 10px 4px}
  .ms-in a{display:flex;align-items:center;gap:12px;padding:11px 10px;border-radius:var(--r-sm);color:var(--text);text-decoration:none!important;font-weight:550}
  .ms-in a[aria-current="page"]{background:var(--brand-soft);color:var(--brand)}
  .ms-in svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .ms-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:12px 10px 6px;border-top:1px solid var(--border);margin-top:6px}
  .buddy{bottom:86px}
  .buddy-btn{height:54px;min-width:54px}.buddy-art{width:42px;height:46px;flex-basis:42px}
  .buddy-bubble{max-width:calc(100vw - 100px)}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .board{grid-template-columns:minmax(0,1fr)}
  .two-col{grid-template-columns:minmax(0,1fr)}
  .tax-card,.pots-top{grid-template-columns:minmax(0,1fr)}
  .tax-donut{max-width:190px;margin:0 auto}
  .sim-grid{grid-template-columns:minmax(0,1fr);padding:16px}
  .invoice{padding:20px 18px}
  .inv-foot{flex-direction:column;align-items:flex-start}
  .ls-feedback{left:0;z-index:60}
  .fb-in{flex-direction:column;align-items:stretch;gap:10px}
  .fb-in .hl{width:100%}
  .sch-item a{grid-template-columns:36px minmax(0,1fr) 42px;gap:12px;padding:14px}
  .sch-go{display:none}.sch-no{font-size:1.3rem}
  .sch-badge{width:42px;height:42px}.sch-badge svg{width:22px;height:22px}
  .sch-top{flex-direction:column-reverse;align-items:flex-start}.sch-ham{width:96px}
  .ls-build{grid-template-columns:minmax(0,1fr)}
  .drow{grid-template-columns:54px minmax(0,1fr) 52px}
  .q{width:6px;height:11px}
  .drow .note{display:none}
  .hb-row{grid-template-columns:96px minmax(0,1fr) 90px;gap:8px}
  .seg{display:flex;flex-wrap:nowrap;max-width:100%;overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;position:relative}.seg::-webkit-scrollbar{display:none}.seg label{flex:1 0 auto}.seg span{text-align:center;white-space:nowrap;padding-block:8px}
  .seg.scrolls:not(.at-end){-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}
  .seg.scrolls.at-end:not(.at-start){-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px);mask-image:linear-gradient(90deg,transparent,#000 36px)}
  .seg.scrolls:not(.at-end):not(.at-start){-webkit-mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent);mask-image:linear-gradient(90deg,transparent,#000 36px,#000 calc(100% - 36px),transparent)}
  .icon-btn{width:40px;height:40px}.icon-btn.solo{width:40px;height:40px}
  .x{width:36px;height:36px}
  .help{position:relative}.help::after{content:"";position:absolute;inset:-11px}
  input:not([type=range]):not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px}
  input.code{font-size:1.8rem}
  .onb-card,.close-step,.tool-card{padding:20px 18px}
  .f.wide{grid-column:auto}
  .acct-row{grid-template-columns:minmax(0,1fr) auto}
  .acct-row .acct-pl{display:none}
}
@media (max-width:640px){
  .cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}
  .cal-w,.cal-h.wk-col{display:none}
  .cal-d{min-height:42px;padding:4px 5px;border-radius:7px}
  .cal-d.on em{font-size:.7rem}.cal-d b{font-size:.66rem}
  .bank .drop{grid-template-columns:minmax(0,1fr)}
  .bank-list label{grid-template-columns:22px minmax(0,1fr) auto}.conf{display:none}
  .kpi .v{font-size:1.08rem}
}
@media print{
  @page{size:A4;margin:16mm}
  :root{--bg:#fff;--surface:#fff;--text:#000}
  body{background:#fff!important}
  .side,.tabbar,.bar,.buddy,.toast,.board,.inv-side,.sec:not(.print-keep),.no-print,.stamp{display:none!important}
  .app{display:block}.content{padding:0}.inv-detail{display:block}
  .invoice{box-shadow:none;border:0;padding:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}
.mod input:checked + span .cbox{background:var(--brand);border-color:var(--brand)}
.mod input:checked + span .cbox::after{transform:rotate(45deg) scale(1)}
.mod input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
.today-list .tm svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
/* icon sizing inside small controls (inline SVGs have no intrinsic size) */
.acct-add svg,.tip-box svg,.prov-i svg,.cl-list svg{width:16px;height:16px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.prov-i svg{stroke:#fff}
.cmd-btn span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}
.cmd-btn kbd{white-space:nowrap;flex:0 0 auto}
.icard .ic-c,.icard .ic-due{display:block}
.remind{font-family:inherit;margin:10px 0 0}
.onb{padding-top:4vh}
.onb-card > .onb-foot{margin-top:auto;padding-top:24px}
.onb-top .ham-mini.hero{width:120px}
.inv-qr #qrBox:empty{width:120px;height:120px;background:var(--sunken)}
@media (max-width:860px){.jar-card .ham-stage{max-width:110px}}
.changes{list-style:none;margin:0;padding:0;display:grid;gap:0;border-left:2px solid var(--border-strong);margin-left:6px}
.changes li{position:relative;padding:0 0 16px 20px}
.changes li::before{content:"";position:absolute;left:-7px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--accent-deep)}
.changes time{font-size:.8rem;font-weight:600;color:var(--text-3)}
.changes p{color:var(--text-2);font-size:.92rem;margin-top:2px;max-width:46em}

/* ---------- help popovers, ARES ---------- */
.help{display:inline-grid;place-items:center;width:18px;height:18px;margin-left:6px;padding:0;border-radius:50%;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-3);font:650 .7rem/1 var(--f-ui);cursor:pointer;vertical-align:1px;transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.help[aria-expanded="true"]{background:var(--accent);border-color:var(--accent-deep);color:var(--critter-ink)}
.help-pop{position:fixed;z-index:110;width:min(320px,calc(100vw - 16px));padding:12px 14px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);font-size:.88rem;line-height:1.5;color:var(--text-2)}
.help-pop::before{content:"";position:absolute;top:-6px;left:calc(var(--ax,50%) - 6px);width:12px;height:12px;background:var(--surface);border-left:1px solid var(--border);border-top:1px solid var(--border);transform:rotate(45deg)}
.help-pop.up::before{top:auto;bottom:-6px;transform:rotate(225deg)}
.help-pop b{display:block;color:var(--text);margin-bottom:4px;font-size:.92rem}
.help-pop ol{margin:8px 0 0;padding-left:18px;display:grid;gap:3px}
.ares-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:6px}
.ares-btn{font-size:.84rem}
label.f .ares-st{display:inline;margin:0;font-size:.82rem;color:var(--text-3)}
label.f .ares-st.ok{color:var(--pos)}label.f .ares-st.bad{color:var(--neg)}
label.f > span.sim-l{display:flex}
.bill-intro{margin:-4px 0 16px;padding:12px 14px;border-radius:var(--r);background:var(--sunken);color:var(--text-2);font-size:.9rem;line-height:1.5;max-width:52em}
.link-card{display:grid;grid-template-columns:22px minmax(0,1fr) 16px;gap:12px;align-items:center;margin-top:16px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);color:var(--text);text-decoration:none!important;transition:border-color .15s ease,background-color .15s ease}
.link-card svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;color:var(--text-3)}
.link-card small{display:block;color:var(--text-3);font-size:.82rem}
.conn-steps{margin:2px 0 6px}
.conn-steps .steps-ol{margin:6px 0 12px;font-size:.88rem}

/* ---------- countdowns ---------- */
time.cd{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text-2);white-space:nowrap}
time.cd.big{font-size:1.05rem;color:var(--text)}
time.cd.urgent{color:var(--neg)}

/* ---------- contracts ---------- */
.ct-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.ct-card{position:relative;display:flex;flex-direction:column;gap:12px;padding:18px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);color:var(--text);text-decoration:none!important;overflow:hidden;transition:border-color .15s ease,transform .15s var(--ease-out),box-shadow .15s ease}
.ct-card::before{content:"";position:absolute;inset:0 0 auto;height:3px;background:var(--cc)}
.ct-card header{display:flex;align-items:center;gap:12px}
.ct-name{flex:1;min-width:0;display:flex;flex-direction:column}
.ct-name b{font-size:1.02rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ct-name small{color:var(--text-3);font-size:.84rem}
.ct-av{flex:0 0 auto;width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-style:normal;font-weight:700;font-size:1.05rem;color:#fff;background:var(--cc)}
.ct-av.sm{width:30px;height:30px;border-radius:9px;font-size:.84rem}
.ct-av.lg{width:56px;height:56px;border-radius:16px;font-size:1.4rem}
.ct-main{font-size:.68rem;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--critter-ink);background:var(--accent);border-radius:999px;padding:2px 8px;white-space:nowrap}
.ct-hours{display:flex;justify-content:space-between;align-items:baseline}
.ct-hours b{font-size:1.15rem;font-weight:650}
.ct-meter{height:8px;border-radius:9px;background:var(--track);overflow:hidden}
.ct-meter i{display:block;height:100%;width:var(--w);border-radius:9px;background:var(--cc);transform-origin:left;animation:grow .8s var(--ease-out) both}
.ct-meter.over i{background:var(--neg)}
.ct-card footer{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;padding-top:10px;border-top:1px solid var(--border)}
.ct-dl{display:flex;flex-direction:column;gap:1px}
.ct-risk .sring,.risk-score .sring{position:relative;display:inline-block;flex:0 0 auto}
.sring svg{width:100%;height:100%;transform:rotate(-90deg)}
.sring b{position:absolute;inset:0;display:grid;place-items:center;font-size:.86rem;font-weight:680}
.ct-card.new{align-items:center;justify-content:center;flex-direction:row;border-style:dashed;box-shadow:none;color:var(--text-2);background:transparent;font-weight:600;min-height:170px}
.ct-card.new::before{display:none}
.ct-card.new svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.ct-grid.arch .ct-card{opacity:.7}
.dl-list{list-style:none;margin:0;padding:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.dl-list li{display:flex;align-items:center;gap:12px;padding:10px 14px;min-height:54px}
.dl-list li + li{border-top:1px solid var(--border)}
.dl-list .dl-t{flex:1;min-width:0;display:flex;flex-direction:column}
.dl-list .dl-t small{color:var(--text-3);font-size:.82rem}
.dl-list li.soon time.cd{color:var(--neg)}
.dl-list.compact{border:0;background:none;margin-top:6px}
.dl-list.compact li{padding:6px 0;min-height:0}
.back-row{margin-bottom:12px}
.back-row a{display:inline-flex;align-items:center;gap:6px;font-weight:550;font-size:.9rem}
.back-row svg,.iv-back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ct-detail{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:16px;align-items:start}
.ct-form .panel + .panel{margin-top:12px}
.ct-side{display:grid;gap:12px;position:sticky;top:96px}
.ct-side .card{padding:18px}
.ct-side h2{margin-bottom:6px;display:flex;align-items:center}
.ct-sum{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.ct-sum .sum-grid{width:100%;margin:6px 0 0}
.ct-check textarea{margin-top:10px;font-size:.88rem;line-height:1.55}
.ct-check .risk-score{margin-top:16px}
.enc-box{margin-top:16px;padding-top:14px;border-top:1px solid var(--border)}
.enc-st svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.enc-st{margin:10px 0 0;font-size:.88rem}
.link-btn.danger{color:var(--neg)}
.tags{display:flex;flex-wrap:wrap;gap:6px;min-height:6px}
.tag{display:inline-flex;align-items:center;gap:4px;padding:4px 6px 4px 11px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-weight:550;font-size:.86rem}
.tag button{border:0;background:none;color:inherit;font-size:1.05rem;line-height:1;cursor:pointer;padding:0 4px;border-radius:50%}
.tag-add{display:flex;gap:8px;margin-top:10px;max-width:420px}
.sticky-act{position:sticky;bottom:12px;z-index:5;margin-top:14px;padding:12px 14px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);box-shadow:var(--shadow);display:flex;align-items:center;gap:14px}
.sticky-act .err{margin:0}
.hc-switch{margin:0 0 16px}

/* ---------- invoices ---------- */
.iv-kpis{display:flex;flex-wrap:wrap;gap:8px 36px;margin:0 0 14px}
.iv-kpis dt{font-size:.8rem;color:var(--text-3)}
.iv-kpis dd{margin:0;font-size:1.45rem;font-weight:680;letter-spacing:-.025em}
.iv-filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.iv-wrap{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:16px;align-items:start}
.iv-list{list-style:none;margin:0;padding:6px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--sunken);max-height:calc(100svh - 230px);overflow:auto;position:sticky;top:92px;display:grid;gap:4px}
.iv-item{display:grid;grid-template-columns:30px minmax(0,1fr) auto;grid-template-areas:"av main right" "av due due";gap:2px 10px;width:100%;text-align:left;padding:10px;border:1px solid transparent;border-radius:var(--r);background:transparent;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}
.iv-item .ct-av{grid-area:av}
.iv-main{grid-area:main;min-width:0;display:flex;flex-direction:column}
.iv-main b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.94rem}
.iv-main small{color:var(--text-3);font-size:.78rem}
.iv-right{grid-area:right;display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.iv-right b{font-size:.94rem}
.pill{font-size:.68rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--sc);background:color-mix(in srgb,var(--sc) 12%,transparent);border-radius:999px;padding:1px 8px;transition:color .3s ease,background-color .3s ease}
.iv-due{grid-area:due;font-size:.78rem;color:var(--text-3)}
.iv-due.neg{color:var(--neg);font-weight:600}
.iv-item[aria-pressed="true"]{background:var(--surface);border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.iv-empty{padding:16px;text-align:center}
.iv-more{text-align:center;padding:8px}
.iv-pane{min-width:0}
.iv-back{display:none;align-items:center;gap:6px;margin-bottom:12px}
.iv-steps{list-style:none;margin:0 0 14px;padding:0;display:grid;grid-template-columns:repeat(3,1fr);position:relative}
.iv-steps::before{content:"";position:absolute;left:16.6%;right:16.6%;top:15px;height:3px;background:var(--track);border-radius:3px}
.iv-steps::after{content:"";position:absolute;left:16.6%;top:15px;height:3px;width:calc(66.8% * var(--p));background:var(--pos);border-radius:3px;transition:width .5s var(--ease-out)}
.iv-steps li{position:relative;z-index:1;display:flex;justify-content:center}
.iv-steps button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;cursor:pointer;color:var(--text-3);font-size:.82rem;font-weight:600;padding:0}
.iv-steps i{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:650;background:var(--surface);border:2px solid var(--border-strong);transition:background-color .3s ease,border-color .3s ease,color .3s ease}
.iv-steps i svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.iv-steps .done i{background:var(--pos);border-color:var(--pos);color:#fff}
.iv-steps .cur{color:var(--text)}
.iv-steps .cur i{border-color:var(--brand);color:var(--brand)}
.iv-steps .cur.late i{border-color:var(--neg);color:var(--neg)}
.iv-steps .cur.late{color:var(--neg)}
.iv-pane .invoice{padding:30px 32px 26px}
.iv-bar{position:sticky;bottom:12px;z-index:5;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding:10px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid var(--border);box-shadow:var(--shadow)}
.iv-bar svg{width:16px;height:16px}
.iv-rem{margin-top:12px;padding:14px 16px}
.iv-rem summary{display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;list-style:none;flex-wrap:wrap}
.iv-rem summary::-webkit-details-marker{display:none}
.iv-none{display:flex;flex-direction:column;align-items:center;gap:10px;padding:40px;border:1px dashed var(--border-strong);border-radius:var(--r-lg)}
.cls-inv{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}
.cls-inv li{display:grid;grid-template-columns:30px minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface-2)}
.cls-inv li span{display:flex;flex-direction:column;min-width:0}
.cls-inv small{color:var(--text-3);font-size:.8rem}
@media (hover:hover) and (pointer:fine){
  .help:hover{border-color:var(--text-3);color:var(--text)}
  .link-card:hover{border-color:var(--border-strong);background:var(--hover)}
  .ct-card:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow)}
  .iv-item:hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}
  .iv-steps button:hover i{border-color:var(--text-3)}
}
@media (max-width:1180px){
  .ct-detail{grid-template-columns:minmax(0,1fr)}
  .ct-side{position:static}
}
@media (max-width:860px){
  .iv-wrap{grid-template-columns:minmax(0,1fr)}
  .iv-filters .seg{display:inline-flex;flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none}
  .iv-filters .seg label{flex:0 0 auto}
  .iv-kpis{gap:8px 20px}.iv-kpis dd{font-size:1.15rem}
  .iv-list{position:static;max-height:none}
  .iv-wrap .iv-pane{display:none}
  .iv-wrap.has-sel .iv-list{display:none}
  .iv-wrap.has-sel .iv-pane{display:block}
  .iv-back{display:inline-flex}
  .iv-pane .invoice{padding:20px 16px}
  .cls-inv li{grid-template-columns:30px minmax(0,1fr) auto}
  .cls-inv li .ghost{grid-column:2 / -1;justify-self:start}
  .sticky-act{bottom:84px}
  .iv-bar{bottom:84px}
}
@media print{
  .iv-list,.iv-filters,.iv-kpis,.iv-steps,.iv-bar,.iv-rem,.hc-switch{display:none!important}
  .iv-wrap{display:block}
}

/* ---------- subscriptions ---------- */
.sb-top .sb-n{font-size:1rem!important;color:var(--text-2);font-weight:550!important;letter-spacing:0!important;padding-top:10px}
.sb-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:16px;margin-top:20px;align-items:start}
.sb-grid .card{padding:18px 20px}
.sc-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;margin-top:8px}
.sc-h{font-size:.7rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;text-align:center}
.sc-d{position:relative;min-height:58px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);padding:5px 6px;display:flex;flex-direction:column;gap:3px}
.sc-d b{font-size:.74rem;font-weight:550;color:var(--text-3)}
.sc-d.pad{border:0;background:none}
.sc-d.past{opacity:.55}
.sc-d.today{border-color:var(--critter-ink);box-shadow:inset 0 0 0 1px var(--critter-ink)}
:root[data-theme="dark"] .sc-d.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.sc-d.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent-deep) 45%,transparent);cursor:default}
.sc-d i{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:2px;border-radius:6px;font-style:normal;font-size:.62rem;font-weight:700;color:#fff;background:var(--cc)}
.sc-d em{font-style:normal;font-size:.7rem;font-weight:650;margin-top:auto}
.sb-donut{max-width:200px;margin:4px auto 0}
.sb-group{margin-bottom:16px}
.sb-group h3{display:flex;align-items:center;gap:8px;font-size:.95rem;margin-bottom:6px}
.sb-group h3 i{width:10px;height:10px;border-radius:3px;background:var(--cc)}
.sb-group h3 .muted{margin-left:auto;font-weight:500;font-size:.84rem}
.sb-list{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:0 14px}
.sb-list li.unused b{color:var(--text-3);text-decoration:line-through;text-decoration-thickness:1px}
.sb-list select{width:auto;padding:4px 8px;font-size:.8rem;height:30px}
.switch.mini{margin:0;gap:6px}
.switch.mini .sw-track{width:32px;height:18px}
.switch.mini .sw-knob{width:12px;height:12px}
.switch.mini input:checked + .sw-track .sw-knob{transform:translateX(14px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sb-cancel{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px}
.sb-cancel li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;border-radius:var(--r);border:1px dashed color-mix(in srgb,var(--neg) 40%,transparent);background:var(--surface);animation:enter .3s var(--ease-out) both;animation-delay:var(--d)}
.sb-cancel li > i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-style:normal;font-weight:700;color:#fff;background:var(--cc)}
.sb-cancel span{display:flex;flex-direction:column;min-width:0}
.sb-cancel small{color:var(--text-3);font-size:.82rem}
.sb-cancel b small{font-weight:500;color:var(--text-3)}

/* ---------- more yellow: navigation, money set aside, celebrations ---------- */
.toc-list a[aria-current="page"]{background:var(--accent);color:var(--critter-ink);box-shadow:none}
.toc-list a[aria-current="page"]::before{display:none}
.toc-list a[aria-current="page"] .toc-badge{background:rgba(27,37,89,.12);color:var(--critter-ink)}
@media (hover:hover) and (pointer:fine){.toc-list a[aria-current="page"]:hover{background:var(--accent);color:var(--critter-ink)}}
@media (max-width:860px){
  .tabbar [aria-current="page"]{color:var(--critter-ink)}
  .tabbar [aria-current="page"] svg{background:var(--accent);border-radius:999px;padding:2px 10px;width:42px;box-sizing:content-box;margin:-2px 0}
  :root[data-theme="dark"] .tabbar [aria-current="page"]{color:var(--accent)}
  :root[data-theme="dark"] .tabbar [aria-current="page"] svg{color:var(--critter-ink)}
  .ms-in a[aria-current="page"]{background:var(--accent);color:var(--critter-ink)}
}
.jar-card{background:linear-gradient(180deg,var(--accent-soft),var(--surface) 70%)}
.pots-mini .pbar i{background:var(--pc,var(--accent))}
.spend-num span{background:linear-gradient(transparent 68%,color-mix(in srgb,var(--accent) 55%,transparent) 68%);padding:0 4px;margin:0 -4px;border-radius:3px}
.big-check{background:var(--accent)}
.big-check svg{stroke:var(--critter-ink)}
.hours-arrived{font-family:var(--f-ui);letter-spacing:normal;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;margin-left:10px;padding:3px 10px;border-radius:999px;background:var(--accent);color:var(--critter-ink);font-size:.82rem;font-weight:650;vertical-align:middle;animation:chip .5s var(--ease-out) both}
.day-goal{display:flex;align-items:center;gap:10px;margin-top:10px;font-size:.9rem;color:var(--text-2)}
.day-goal .dg-bar{flex:0 0 140px;height:8px;border-radius:9px;background:var(--track);overflow:hidden}
.day-goal .dg-bar i{display:block;height:100%;width:var(--w);background:var(--accent-deep);border-radius:9px;transform-origin:left;animation:grow .8s var(--ease-out) both}
.day-goal.done .dg-bar i{background:var(--pos)}
.cal-tipbar{display:flex;gap:2px;margin-top:6px}
.cal-tipbar i{height:6px;border-radius:2px;background:var(--c)}
@media (max-width:860px){.sb-grid{grid-template-columns:minmax(0,1fr)}.sb-list .li-right select{display:none}}
@media (max-width:640px){.sc-d{min-height:44px;padding:3px}.sc-d i{width:14px;height:14px;font-size:.55rem}.sc-d em{display:none}}

/* ---------- pots: guided flow sheet, status ---------- */
.sheet-bg{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(10,12,18,.45)}
.sheet{width:min(640px,100%);max-height:calc(100svh - 32px);display:flex;flex-direction:column;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);overflow:hidden}
.sheet-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--border)}
.sheet-body{padding:20px 22px 22px;overflow:auto}
body.sheet-open{overflow:hidden}
.tpl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-top:16px}
.tpl{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);text-align:left;cursor:pointer;font:inherit;color:var(--text);animation:enter .3s var(--ease-out) both;animation-delay:var(--d);transition:border-color .15s ease,transform .15s var(--ease-out),background-color .15s ease}
.tpl-i{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:var(--accent-soft);color:var(--critter-ink);margin-bottom:6px}
:root[data-theme="dark"] .tpl-i{color:var(--accent)}
.tpl-i svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tpl small{color:var(--text-3);font-size:.82rem;line-height:1.35}
.tpl:active{transform:scale(.97)}
.pf-plan{display:grid;grid-template-columns:140px minmax(0,1fr);gap:20px;align-items:center}
.pf-big{font-size:clamp(2.2rem,5vw,3rem);font-weight:700;letter-spacing:-.04em;line-height:1.05;margin:2px 0 6px;background:linear-gradient(transparent 70%,color-mix(in srgb,var(--accent) 60%,transparent) 70%);display:inline-block}
.pot-st{font-size:.8rem;font-weight:600;display:inline-flex;align-items:center;gap:6px}
.pot-st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.pot-st.ok,.pot-st.done{color:var(--pos)}.pot-st.behind{color:var(--warn)}.pot-st.paused{color:var(--text-3)}
.pot.paused .pot-bar i{background:var(--text-3)}
.pot-menu svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round}
.pot-pop{position:absolute;top:48px;right:12px;z-index:6;display:grid;min-width:170px;padding:6px;border-radius:var(--r);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg)}
.pot-pop button{display:flex;align-items:center;gap:8px;padding:8px 10px;border:0;background:none;border-radius:8px;cursor:pointer;font:inherit;font-size:.88rem;text-align:left;color:var(--text)}
.pot-pop button svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.pot-pop .danger{color:var(--neg)}
.pot-bar i{background:var(--pc)}
@media (hover:hover) and (pointer:fine){.tpl:hover{border-color:var(--accent-deep);background:var(--accent-soft)}.pot-pop button:hover{background:var(--hover)}}
@media (max-width:640px){.pf-plan{grid-template-columns:minmax(0,1fr)}.pf-plan .ham-stage{max-width:110px}.sheet-bg{align-items:end;padding:0}.sheet{border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:92svh}}

/* ---------- investments ---------- */
.iv-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:24px;align-items:start;padding:22px 24px}
.iv-head-r .seg{margin-bottom:6px}
.iv-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;align-items:start}
.iv-grid .card{overflow:hidden}
.iv-alloc{padding:18px 20px}
.iv-alloc .seg{margin-bottom:12px}
.alloc-in{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px;align-items:center}
.iv-accts{padding:0}
.iv-accts .sec-head{padding:16px 18px 4px;margin:0}
.acct-gh.link,.acct-row.link{color:var(--text);text-decoration:none!important;transition:background-color .15s ease}
.acct-gh.link svg{width:16px;height:16px;fill:none;stroke:var(--text-3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.acct-row.off{opacity:.45}
.acct-row{grid-template-columns:minmax(0,1fr) auto auto}
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;font-size:.88rem}
.crumbs a{font-weight:550}.crumbs span{color:var(--text-3)}.crumbs b{font-weight:600}
.pt-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px}
.pt-tools input{max-width:280px;padding:7px 12px}
.pt-wrap{overflow-x:auto;margin:0 -6px}
.pos-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:760px}
.pos-table th{font-size:.74rem;color:var(--text-3);font-weight:600;text-align:left;border-bottom:1px solid var(--border-strong);padding:0 6px 6px;white-space:nowrap}
.pos-table th.num{text-align:right}
.pos-table th button{border:0;background:none;padding:2px 0;font:inherit;color:inherit;cursor:pointer;letter-spacing:.02em}
.pos-table th[aria-sort="ascending"] button::after{content:" ↑"}.pos-table th[aria-sort="descending"] button::after{content:" ↓"}
.pos-table th[aria-sort="ascending"],.pos-table th[aria-sort="descending"]{color:var(--text)}
.pos-table td{padding:9px 6px;border-bottom:1px solid var(--border);white-space:nowrap}
.pos-table td.num{text-align:right;font-variant-numeric:tabular-nums}
.pos-table tbody tr{cursor:pointer;transition:background-color .15s ease}
.pos-table tbody tr:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.pt-name b{display:block;font-weight:650}
.pt-name small{display:block;color:var(--text-3);font-size:.78rem;max-width:240px;overflow:hidden;text-overflow:ellipsis}
.wbar{display:inline-block;width:46px;height:5px;border-radius:9px;background:var(--track);margin-right:6px;vertical-align:middle;overflow:hidden}
.wbar i{display:block;height:100%;width:var(--w);background:var(--accent-deep);border-radius:9px}
.in-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.6fr);gap:24px;padding:22px 24px;align-items:start}
.in-chart .seg{margin-bottom:6px}
.mini-table{width:100%;border-collapse:collapse;font-size:.88rem;margin-top:8px}
.mini-table th{font-size:.74rem;color:var(--text-3);text-align:left;font-weight:600;padding:4px 0;border-bottom:1px solid var(--border-strong)}
.mini-table th.num,.mini-table td.num{text-align:right}
.mini-table td{padding:7px 0;border-bottom:1px solid var(--border)}
.chk{display:inline-flex;align-items:center;gap:8px;margin:0 16px 8px 0;cursor:pointer;font-size:.9rem;position:relative}
.chk input{position:absolute;opacity:0;pointer-events:none}
.iv-incl{display:flex;flex-wrap:wrap}
@media (hover:hover) and (pointer:fine){.acct-gh.link:hover,.acct-row.link:hover,.pos-table tbody tr:hover{background:var(--hover)}}
@media (max-width:1180px){.iv-head,.in-head{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){.iv-grid{grid-template-columns:minmax(0,1fr)}.alloc-in{grid-template-columns:minmax(0,1fr)}.alloc-in .sb-donut{max-width:170px}}
@media (max-width:640px){.pos-table{min-width:0}.pos-table .c-qty,.pos-table .c-avg,.pos-table .c-price,.pos-table .c-day,.pos-table .c-weight,.pos-table .c-pnlp,.pos-table .c-pnl{display:none}.pt-name small{max-width:150px}.pt-pl{display:block}.pos-table td{padding:11px 6px}}

/* ---------- daily check-in ---------- */
.small-sheet{width:min(440px,100%)}

/* ---------- start a trade ---------- */
.zl-res{max-width:960px;margin:0 auto}
.zl-head{display:grid;grid-template-columns:minmax(0,1fr) 150px;gap:20px;align-items:center;padding:22px 24px}
.zl-head .onb-q{margin:4px 0 8px}
.zl-rg{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r)}
.zl-rg.best{border-color:var(--accent-deep);background:var(--accent-soft)}
.zl-rg em{font-style:normal;font-size:.7rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;color:var(--critter-ink);background:var(--accent);border-radius:999px;padding:2px 8px}
.zl-steps{list-style:none;counter-reset:zl;margin:0;padding:0;display:grid;gap:8px}
.zl-steps li{counter-increment:zl;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);transition:background-color .2s ease,border-color .2s ease}
.zl-steps label{display:grid;grid-template-columns:22px minmax(0,1fr);gap:14px;padding:14px 16px;cursor:pointer;position:relative}
.zl-steps input{position:absolute;opacity:0;pointer-events:none}
.zl-steps label > span:last-child{display:flex;flex-direction:column;gap:4px}
.zl-steps b::before{content:counter(zl) ". "}
.zl-steps li.done{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent-deep) 40%,transparent)}
.zl-steps li.done b{text-decoration:line-through;text-decoration-thickness:1px}
.zl-go{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding:18px 20px;margin-top:20px}
@media (max-width:640px){.zl-head{grid-template-columns:minmax(0,1fr)}.zl-head .ham-stage{max-width:110px}}

/* ---------- year in review ---------- */

/* ---------- overview 2026-10-13: setup line, streak, second row ---------- */
.setup-line{display:flex;align-items:center;gap:14px;max-width:1120px;margin-bottom:18px;padding:10px 10px 10px 16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.sl-bar{display:flex;gap:3px}
.sl-bar i{width:18px;height:6px;border-radius:3px;background:var(--track)}
.sl-bar i.on{background:var(--pos)}
.sl-t{font-size:.92rem}
.sl-t b{font-weight:600}
.sl-next{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-weight:550;font-size:.92rem}
.sl-next svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.streak{display:flex;flex-direction:column;padding:20px 22px 16px}
.st-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.st-n{display:flex;align-items:baseline;gap:10px}
.st-num{font-family:var(--f-display);font-weight:680;font-size:3.4rem;line-height:.9;letter-spacing:-.04em}
.streak.counted .st-num{color:var(--text)}
.st-unit{font-weight:550;color:var(--text-2)}
.st-side{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:.84rem;color:var(--text-3)}
.st-strip{list-style:none;margin:18px 0 0;padding:0;display:flex;gap:4px}
.sd{flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:5px;min-width:0}
.sd.wk{flex:.62 1 0}
.sd i{display:grid;place-items:center;width:100%;max-width:26px;aspect-ratio:1;border-radius:50%;border:1.5px solid var(--border-strong);color:var(--critter-ink)}
.sd i svg{width:62%;height:62%;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.sd span{font-size:.68rem;color:var(--text-3);font-weight:500}
.sd.done i{background:var(--accent);border-color:var(--accent-deep)}
.sd.freeze i{border-style:dashed;border-color:var(--text-3)}
.sd.rest i{max-width:8px;border:0;background:var(--track);margin:9px 0}
.sd.wk.done i{max-width:20px}
.sd.miss i{border-color:var(--border)}
.sd.today i{border:2px solid var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}
.sd.today span{color:var(--text);font-weight:650}
.st-state{margin-top:14px;font-weight:550;font-size:.92rem}
.streak.counted .st-state{color:var(--pos)}
.st-tasks{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:2px}
.st-tasks a{display:flex;align-items:center;gap:10px;padding:8px 6px;margin:0 -6px;border-radius:var(--r-sm);color:var(--text);text-decoration:none!important;font-size:.92rem;font-weight:500;transition:background-color .15s ease}
.st-tasks a > svg{margin-left:auto;width:16px;height:16px;flex:0 0 auto;fill:none;stroke:var(--text-3);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s var(--ease-out)}
.st-tasks span{display:flex;flex-direction:column;min-width:0}
.st-tasks small{color:var(--text-3);font-size:.8rem;font-weight:400}
.st-tasks i{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border-strong);display:grid;place-items:center;color:var(--critter-ink)}
.st-tasks i svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.st-tasks li.done a{color:var(--text-3)}
.st-tasks li.done i{background:var(--accent);border-color:var(--accent-deep)}
.st-rules{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);font-size:.86rem}
.st-tasks + .st-rules,.st-state + .st-rules{margin-top:12px}
.st-rules summary{cursor:pointer;color:var(--text-2);font-weight:550;list-style:none;display:flex;align-items:center;gap:6px}
.st-rules summary::-webkit-details-marker{display:none}
.st-rules summary::after{content:"";width:7px;height:7px;border:solid currentColor;border-width:0 1.6px 1.6px 0;transform:rotate(45deg) translateY(-2px);transition:transform .2s var(--ease-out)}
.st-rules[open] summary::after{transform:rotate(-135deg) translateY(-1px)}
.st-rules ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;color:var(--text-2);line-height:1.5}
.st-off{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 10px;margin-top:12px}
.st-off label{display:grid;gap:4px;font-weight:550;color:var(--text-2)}
.st-off input{width:auto;padding:6px 10px}
.home-row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.55fr);gap:16px;align-items:start;margin-top:24px}
.home-row2 .home-up{margin-top:0}
@media (hover:hover){.st-tasks a:hover{background:var(--hover)}.st-tasks a:hover > svg{transform:translateX(3px)}}
@media (max-width:900px){.home-row2{grid-template-columns:minmax(0,1fr)}.home-row2 .home-up{order:-1}}
@media (max-width:640px){.setup-line{flex-wrap:wrap;gap:8px 12px}.sl-next{margin-left:0;order:3;flex-basis:100%}.setup-line .x{margin-left:auto}.st-num{font-size:2.9rem}}

/* ---------- Rok v kostce 2026-10-13: an annual report on paper, ink covers ---------- */
.wy-cover-card{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:16px;max-width:1120px}
.wyc-paper{position:relative;padding:clamp(24px,4vw,44px);border-radius:var(--r-xl);background:#f4f0e7;color:#1b2559;box-shadow:var(--shadow);overflow:hidden}
.wyc-paper::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 31px,rgba(27,37,89,.05) 31px 32px);pointer-events:none}
.wyc-top{position:relative;display:flex;justify-content:space-between;font-size:.86rem;font-weight:550;color:rgba(27,37,89,.62);margin-bottom:clamp(28px,6vw,64px)}
.wyc-paper h2{position:relative;font-family:var(--f-display);font-weight:700;font-size:clamp(2.1rem,4.6vw,3.6rem);line-height:1;letter-spacing:-.035em;color:#1b2559;max-width:14ch;text-wrap:balance}
.wyc-p{position:relative;margin-top:14px;font-size:1.05rem;line-height:1.5;max-width:38ch;color:rgba(27,37,89,.75)}
.wyc-months{position:relative;list-style:none;margin:28px 0 0;padding:0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;height:110px}
.wyc-months li{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;height:100%}
.wyc-months i{display:block;width:100%;height:max(3px,var(--h));border-radius:4px 4px 1px 1px;background:rgba(27,37,89,.16);transform-origin:bottom}
.wyc-months li.on i{background:#1b2559}
.wyc-months li.now i{background:#ffd23f;box-shadow:inset 0 0 0 1.5px #1b2559}
.wyc-months span{font-size:.7rem;color:rgba(27,37,89,.6)}
.wyc-paper .btns{position:relative;margin-top:26px}
.wyc-paper .hl{background:#1b2559;color:#fff}
.wyc-side{padding:22px 24px;border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface)}
.wyc-side .ham-stage{max-width:150px;margin:0 auto 12px}
.wyc-side h3{font-size:1rem;margin-bottom:8px}
.wyc-toc{margin:0;padding-left:20px;display:grid;gap:6px;color:var(--text-2);font-size:.92rem}
.wyc-toc li::marker{color:var(--text-3);font-variant-numeric:tabular-nums}

.wy{--wy-fg:#1b2559;--wy-soft:rgba(27,37,89,.66);--wy-line:rgba(27,37,89,.16);position:fixed;inset:0;z-index:120;display:flex;flex-direction:column;background:#f4f0e7;color:var(--wy-fg);transition:background-color .5s var(--ease-out),color .5s var(--ease-out);overscroll-behavior:contain}
.wy.is-ink{--wy-fg:#fff;--wy-soft:rgba(255,255,255,.72);--wy-line:rgba(255,255,255,.2);background:#1b2559}
.wy-head{position:relative;z-index:4;padding:max(14px,env(safe-area-inset-top)) clamp(16px,4vw,40px) 0}
.wy-prog{display:flex;gap:4px}
.wy-prog i{flex:1;height:3px;border-radius:3px;background:var(--wy-line);overflow:hidden}
.wy-prog b{display:block;height:100%;width:100%;background:var(--wy-fg);transform-origin:left;transform:scaleX(0)}
.wy-prog i.done b{transform:none}
.wy-row{display:flex;align-items:center;gap:12px;margin-top:12px;font-size:.88rem;color:var(--wy-soft);font-weight:550}
.wy-pg{margin-right:auto}
.wy-tools{display:flex;gap:4px}
.wy-i{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--wy-line);border-radius:999px;background:transparent;color:var(--wy-fg);cursor:pointer;transition:background-color .15s ease,transform .12s var(--ease-out)}
.wy-i:active{transform:scale(.94)}
.wy-i svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.wy-i[aria-pressed="true"]{background:#ffd23f;border-color:#ffd23f;color:#1b2559}
.wy-stage{position:relative;flex:1;display:grid;min-height:0}
.wp{grid-area:1/1;align-self:center;justify-self:center;width:min(1120px,100%);padding:clamp(20px,5vw,64px) clamp(20px,6vw,72px) clamp(110px,14vh,140px);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:end}
.wp-text{min-width:0}
.wp-k{font-family:var(--f-ui);font-size:clamp(1.05rem,1.6vw,1.3rem);font-weight:600;letter-spacing:-.01em;color:var(--wy-fg)}
.wp-v{margin-top:clamp(10px,2vh,22px);font-family:var(--f-display);font-weight:700;font-size:clamp(4.2rem,11vw,9.5rem);line-height:.86;letter-spacing:-.05em;color:var(--wy-fg)}
.wp-v.word{font-size:clamp(3rem,7.6vw,6.4rem);letter-spacing:-.04em;line-height:.92;overflow-wrap:anywhere}
.wp-v small{font-size:.38em;font-weight:600;letter-spacing:-.02em;margin-left:.2em}
.wp-v.num{white-space:nowrap}
.wp-v.num.long{font-size:clamp(3rem,7vw,6.4rem);letter-spacing:-.045em}
.wp-v.word.long{font-size:clamp(2.3rem,4.8vw,4.2rem);line-height:1}
.hl-sw{display:inline;padding:0 .06em;background:linear-gradient(transparent 58%,#ffd23f 58%,#ffd23f 90%,transparent 90%);-webkit-box-decoration-break:clone;box-decoration-break:clone}
.wp-n{display:inline-block}
.wp-p{margin-top:clamp(16px,3vh,28px);max-width:32ch;font-size:clamp(1.05rem,1.6vw,1.3rem);line-height:1.45;color:var(--wy-soft)}
.wp-list{list-style:none;margin:clamp(16px,3vh,28px) 0 0;padding:0;display:grid;gap:18px}
.wp-list li{position:relative;padding-left:34px;font-family:var(--f-display);font-weight:650;font-size:clamp(1.5rem,3.2vw,2.5rem);line-height:1.1;letter-spacing:-.025em}
.wp-list li::before{content:"";position:absolute;left:0;top:.32em;width:16px;height:16px;border-radius:4px;background:#ffd23f;box-shadow:inset 0 0 0 1.5px #1b2559}
.wp-viz{min-width:0;align-self:end}
.wp.ink{grid-template-columns:minmax(0,1fr);align-items:center}
.wp-cover{max-width:880px}
.wp-title{font-family:var(--f-display);font-weight:700;font-size:clamp(3.2rem,9vw,7.6rem);line-height:.92;letter-spacing:-.045em;color:#fff;text-wrap:balance}
.wp-sub{margin-top:22px;max-width:36ch;font-size:clamp(1.1rem,1.8vw,1.4rem);line-height:1.45;color:var(--wy-soft)}
.wp-hint{margin-top:36px;font-size:.92rem;color:var(--wy-soft)}
.wp-sum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin:clamp(28px,5vh,48px) 0 0}
.wp-sum dt{font-size:.86rem;color:var(--wy-soft)}
.wp-sum dd{margin:4px 0 0;font-family:var(--f-display);font-weight:650;font-size:clamp(1.4rem,2.6vw,2.1rem);letter-spacing:-.03em;color:#ffd23f}
.wp-end-act{position:relative;z-index:3;display:flex;flex-wrap:wrap;gap:10px;margin-top:32px}
.wy-b{height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-weight:600;cursor:pointer}
.wy-b.solid{background:#ffd23f;border-color:#ffd23f;color:#1b2559}
.wz{color:var(--wy-fg)}
.wz-cols{display:flex;align-items:flex-end;gap:6px;height:clamp(160px,30vh,280px)}
.wz-cols span{flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px;height:100%;min-width:0}
.wz-cols i{display:block;width:100%;height:max(3px,var(--h));border-radius:5px 5px 2px 2px;background:var(--wy-line);transform-origin:bottom}
.wz-cols span.hi i{background:var(--wy-fg)}
.wz-cols span.nil i{opacity:.5}
.wz-cols em{font-style:normal;font-size:.74rem;color:var(--wy-soft)}
.wz-cols span.hi em{color:var(--wy-fg);font-weight:650}
.wz-cols.wk{gap:2px}
.wz-cols.wk i{border-radius:2px}
.wz-cols.dw b{font-size:.8rem;font-weight:600;color:var(--wy-soft)}
.wz-cols.dw span.hi b{color:var(--wy-fg)}
.wz-vs{display:grid;gap:18px}
.wz-vs div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center}
.wz-vs em{grid-column:1/-1;font-style:normal;font-size:.86rem;color:var(--wy-soft)}
.wz-vs span{display:block;height:34px}
.wz-vs span i{display:block;width:var(--w);height:100%;border-radius:6px;background:var(--wy-line);transform-origin:left}
.wz-vs .hi span i{background:var(--wy-fg)}
.wz-vs b{font-family:var(--f-display);font-weight:650;font-size:1.3rem}
.wz-run{display:flex;flex-wrap:wrap;gap:8px;max-width:440px}
.wz-run i{width:18px;height:18px;border-radius:50%;background:var(--wy-fg)}
.wz-run i:nth-child(5n){background:#ffd23f;box-shadow:inset 0 0 0 1.5px #1b2559}
.wz-share .sbar{display:flex;height:56px;border-radius:10px;overflow:hidden;gap:3px}
.wz-share .sbar i{display:block;width:var(--w);transform-origin:left}
.wz-share .s0{background:#1b2559}
.wz-share .s1{background:#ffd23f}
.wz-share .s2{background:#8a94bd}
.wz-share .s3{background:#c9c3b3}
.wz-share ul{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:8px}
.wz-share li{display:flex;align-items:center;gap:10px;font-size:1rem}
.wz-share li i{width:12px;height:12px;border-radius:3px;flex:0 0 auto}
.wz-share li b{margin-left:auto;font-weight:650}
.wz-coins{position:relative;height:clamp(180px,32vh,300px);display:flex;flex-direction:column-reverse;align-items:flex-start;padding-top:24px}
.wz-coins i{display:block;flex:0 0 auto;width:180px;height:38px;margin-top:-22px;border-radius:50%;background:radial-gradient(ellipse at 50% 35%,#ffe27a 0 45%,#ffd23f 46% 70%,#f0b21a 71%);box-shadow:0 2px 0 #e8930c,inset 0 0 0 2px rgba(232,147,12,.6)}
.wz-coins i:nth-child(3n){margin-left:6px}
.wz-coins i:nth-child(3n+1){margin-left:-4px}
.wy-ham{position:absolute;right:clamp(16px,5vw,64px);bottom:clamp(16px,4vh,48px);width:clamp(84px,11vw,150px);z-index:2;pointer-events:none}
.wy.is-ink .wy-ham{width:clamp(110px,16vw,220px)}
.wy-nav{position:absolute;inset:96px 0 0;z-index:1;display:grid;grid-template-columns:1fr 2fr}
.wy-nav button{background:none;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
@media (hover:hover){.wy-i:hover{background:var(--wy-line)}.wy-b:hover{border-color:#fff}}
@media (max-width:820px){
  .wy-cover-card{grid-template-columns:minmax(0,1fr)}
  .wp{grid-template-columns:minmax(0,1fr);align-items:start;align-content:center;gap:28px;padding-bottom:120px}
  .wp-sum{grid-template-columns:repeat(2,minmax(0,1fr))}
  .wy-tools #wyVid{display:none}
}
@media (max-width:480px){.wy-label{display:none}.wy-i{width:34px;height:34px}}

/* ---------- watchlist and TradingView charts 2026-10-13 ---------- */
.tv-gate{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.tv-gate-i{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:var(--brand-soft);color:var(--brand)}
.tv-gate-i svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tv-gate h3{font-size:1rem;margin-bottom:4px}
.tv-gate p{color:var(--text-2);font-size:.92rem;line-height:1.5;max-width:62ch}
.tv-gate .btns{gap:10px 18px}
.wl-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px}
.wl-card{display:flex;flex-direction:column;min-width:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.wl-h{display:flex;align-items:center;gap:2px;padding:10px 6px 6px 14px}
.wl-n{display:flex;flex-direction:column;min-width:0;margin-right:auto}
.wl-n b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wl-n span{font-size:.78rem;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wl-n code{font-family:var(--f-mono);font-variation-settings:var(--mono);font-size:.74rem}
.wl-h .icon-btn svg,.tv-head svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wl-mini{height:168px;padding:0 4px 4px}
.tv-frame{display:block;width:100%;height:100%;border:0;color-scheme:normal}
.wl-grid.plain .wl-card{flex-direction:row}
.wl-grid.plain .wl-h{flex:1;padding:10px 6px 10px 14px}
/* without charts the watchlist is one list, not a stack of cards */
.wl-grid.plain{display:block;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.wl-grid.plain .wl-card{border:0;border-radius:0;box-shadow:none;border-bottom:1px solid var(--border)}
.wl-grid.plain .wl-card:last-child{border-bottom:0}
.wl-empty{margin:4px 0 8px}
.wl-add{margin-top:12px}
.wl-add summary{display:inline-flex;align-items:center;gap:6px}
.wl-add summary svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.wl-add .chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 16px}
.wl-form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:0 12px;align-items:start}
.wl-form .ghost{margin-top:27px}
.wl-form .ghost svg{width:16px;height:16px}
.wl-form input[name="s"]{font-family:var(--f-mono);font-variation-settings:var(--mono);text-transform:uppercase}
.wl-foot{margin-top:10px}
.wl-foot a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.tv-card .sec-head{margin-bottom:10px}
.tv-card .ghost.on,.tv-head .ghost.on{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent-deep) 50%,var(--border))}
.tv-inline{height:min(460px,60vh);border-radius:var(--r);overflow:hidden;border:1px solid var(--border)}
.tv-sheet{position:fixed;inset:0;z-index:130;display:grid;place-items:center;padding:clamp(0px,3vw,32px);background:rgba(10,12,20,.48);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.tv-box{display:flex;flex-direction:column;width:min(1200px,100%);height:min(820px,100%);background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);overflow:hidden}
.tv-head{display:flex;align-items:center;gap:8px;padding:12px 12px 12px 20px;border-bottom:1px solid var(--border)}
.tv-head .ghost svg{width:15px;height:15px}
.tv-body{flex:1;min-height:0;padding:0}
.tv-body .tv-gate{margin:20px;box-shadow:none}
@media (max-width:640px){
  .tv-box{border-radius:0;height:100%}
  .tv-ext{display:none}
  .wl-form{grid-template-columns:minmax(0,1fr)}
  .wl-form .ghost{margin-top:0;justify-self:start}
  .tv-gate{flex-direction:column}
}

/* ---------- connections list 2026-10-14 ---------- */
.conn-h{font-size:.92rem;font-weight:600;margin:2px 0 8px}
.conn-list{list-style:none;margin:0 0 8px;padding:0;border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden;background:var(--surface)}
.conn-list li{display:flex;align-items:center;gap:12px;padding:12px 8px 12px 14px;border-bottom:1px solid var(--border)}
.conn-list li:last-child{border-bottom:0}
.conn-list .prov-i{grid-row:auto;flex:0 0 auto}
.conn-t{display:flex;flex-direction:column;min-width:0;margin-right:auto}
.conn-t b{font-weight:600}
.conn-t span{font-size:.88rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conn-t small{font-size:.78rem;color:var(--text-3)}
.conn-list .icon-btn svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.conn-add{margin-top:14px}
/* hours by week */
.weeks{list-style:none;margin:0;padding:6px 10px;display:grid;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.weeks .wk{display:grid;grid-template-columns:minmax(118px,auto) minmax(0,1fr) auto;align-items:center;gap:14px;min-height:52px;padding:6px;border-radius:8px;animation:enter .35s var(--ease-out) both;animation-delay:calc(var(--i) * 40ms)}
.weeks .wk + .wk{border-top:1px solid var(--border)}
.weeks .wk-l{display:grid;line-height:1.25}
.weeks .wk-l b{font-weight:600;font-size:.92rem}
.weeks .wk-l small{font-size:.76rem;color:var(--text-3)}
.weeks .wk.now .wk-l b{color:var(--brand)}
.weeks .wk-bar{position:relative;height:10px;border-radius:9px;background:var(--track)}
.weeks .wk-bar i{position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:9px;background:var(--c1);transform-origin:left;animation:grow .8s var(--ease-out) both}
.weeks .wk.met .wk-bar i{background:var(--pos)}
.weeks .wk.fut{opacity:.5}
.weeks .wk-bar b{position:absolute;top:-4px;bottom:-4px;width:2px;margin-left:-1px;border-radius:2px;background:var(--text-3)}
.weeks .wk-h{display:grid;text-align:right;font-weight:620;font-size:.95rem;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.25}
.weeks .wk-h small{font-weight:450;font-size:.74rem;color:var(--text-3)}
@media (max-width:640px){.weeks .wk{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.weeks .wk-bar{grid-column:1 / -1;grid-row:2}}
/* Hodiny: time per ClickUp task */
.tsk-note{font-size:.76rem;color:var(--text-3)}
.tsk-list{list-style:none;margin:0;padding:6px 10px;display:grid;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
.tsk-row{animation:enter .35s var(--ease-out) both;animation-delay:calc(var(--i) * 40ms)}
.tsk-row + .tsk-row{border-top:1px solid var(--border)}
#tkList:not(.tsk-all) .tsk-extra{display:none}
.tsk-row summary{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) 7.2em;align-items:center;gap:14px;min-height:52px;padding:6px;border-radius:8px;cursor:pointer;list-style:none}
.tsk-row summary::-webkit-details-marker{display:none}
.tsk-row summary:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
@media (hover:hover){.tsk-row summary:hover{background:var(--hover)}}
.tsk-name{display:grid;min-width:0;line-height:1.25}
.tsk-name b{font-weight:600;font-size:.92rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsk-name small{font-size:.76rem;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tsk-bar{position:relative;height:10px;border-radius:9px;background:var(--track)}
.tsk-bar i{position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:9px;background:var(--c1);transform-origin:left;animation:grow .8s var(--ease-out) both}
.tsk-h{display:grid;text-align:right;font-weight:620;font-size:.95rem;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.25}
.tsk-h small{font-weight:450;font-size:.74rem;color:var(--text-3)}
.tsk-more{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:8px 16px;padding:2px 6px 12px}
.tsk-days{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.tsk-days li{display:flex;gap:6px;align-items:baseline;padding:4px 9px;border-radius:999px;background:var(--track);font-size:.8rem}
.tsk-days li span{color:var(--text-2)}
.tsk-days li b{font-weight:600}
.tsk-link{font-size:.84rem;font-weight:560;color:var(--brand)}
.tsk-toggle{margin-top:10px}
@media (max-width:640px){.tsk-row summary{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.tsk-bar{grid-column:1 / -1;grid-row:2}}
/* settings jump links */
.set-jump{position:sticky;top:0;z-index:5;display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 0 4px;padding:8px 0;background:var(--bg)}
.set-jump::-webkit-scrollbar{display:none}
.set-jump a{flex:0 0 auto;padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:.84rem;font-weight:550;text-decoration:none!important;white-space:nowrap}
@media (hover:hover) and (pointer:fine){.set-jump a:hover{border-color:var(--border-strong);color:var(--text)}}
@media (min-width:861px){.set-jump{display:none}}
@media (max-width:640px){.pt-tools input{max-width:none;flex:1 1 100%;min-width:0;width:auto}}
/* admin */
.admin{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}
.own-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.own-note{margin:0}
.own-kpis{margin-top:0}
.own-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}
.own-panel{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm)}
#ownBody > .own-panel + .own-panel,#ownBody > .own-grid + .own-panel{margin-top:14px}
.own-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.own-tools input{flex:1 1 220px;min-width:0;max-width:360px}
.own-users{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.own-user{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-sm)}
.own-user.blocked{background:color-mix(in srgb,var(--neg) 5%,var(--surface))}
.own-who{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.own-who small{flex-basis:100%;color:var(--text-3);font-size:.84rem;overflow-wrap:anywhere}
.own-meta{font-size:.84rem;color:var(--text-3)}
.own-meta .neg{color:var(--neg)}
.own-svc{display:flex;flex-wrap:wrap;gap:6px}
.own-chip{font-size:.76rem;font-weight:550;padding:2px 9px;border-radius:999px;background:var(--sunken);border:1px solid var(--border);color:var(--text-2)}
.own-chip.stale{border-color:var(--warn);color:var(--warn)}
.own-acts{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.own-inv{display:flex;gap:8px;flex-wrap:wrap}
.own-inv input{flex:1 1 220px;min-width:0}
.own-invites{margin-top:12px;padding:4px 16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}
.own-invites b{overflow-wrap:anywhere}
.warn-t{color:var(--warn)}
.own-counts li{min-height:40px}
.own-dl{display:grid;gap:8px;margin:0 0 10px}
.own-dl div{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border);padding-bottom:8px}
.own-dl dt{color:var(--text-3);font-size:.88rem}
.own-dl dd{margin:0;font-weight:600;text-align:right}
.own-dl dd.pos{color:var(--pos)}.own-dl dd.neg{color:var(--neg)}
.own-log-wrap{max-height:420px;overflow:auto;margin:0 -6px}
.own-log{width:100%;border-collapse:collapse;font-size:.86rem}
.own-log td{padding:7px 6px;border-bottom:1px solid var(--border);vertical-align:top}
.own-log td:first-child{white-space:nowrap;color:var(--text-3)}
.own-log tr.bad td:nth-child(2){color:var(--neg);font-weight:600}
@media (max-width:860px){.own-grid{grid-template-columns:minmax(0,1fr)}.own-panel{padding:16px}.own-log td:last-child{display:none}.own-log td{overflow-wrap:anywhere}}
.own-grid > .panel{margin:0}
@media (max-width:640px){.own-log tr{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;border-bottom:1px solid var(--border);padding:6px 0}.own-log td{border:0;padding:1px 6px}.own-log td:nth-child(3){grid-column:1 / -1;color:var(--text-3);font-size:.8rem}}
/* brand marks (logos.js) */
.logo{--ls:32px;width:var(--ls);height:var(--ls);flex:0 0 var(--ls);display:grid;place-items:center;border-radius:calc(var(--ls) * .28);background:var(--lb);color:var(--lf);font-style:normal;box-shadow:inset 0 0 0 1px rgba(0,0,0,.06)}
.logo svg{width:58%;height:58%;fill:currentColor}
.logo b{font-family:var(--f-display);font-weight:750;font-size:calc(var(--ls) * .5);line-height:1;letter-spacing:-.03em}
.logo b.two{font-size:calc(var(--ls) * .36)}
.logo.img{background:var(--surface);overflow:hidden;position:relative}
.logo.img img{width:100%;height:100%;object-fit:cover;display:block}
.logo.img::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);pointer-events:none}
:root[data-theme="dark"] .logo.img::after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
:root[data-theme="dark"] .logo{box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.prov-h{margin:12px 0 6px;font-size:.78rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.prov-h:first-of-type{margin-top:4px}
.prov-c .logo{grid-row:1 / span 2}
.prov-c .beta,.conn-t .beta{display:inline-block;margin-right:6px;padding:0 6px;border-radius:999px;font-size:.66rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase;background:var(--accent-soft);color:var(--text-2)}
.secret-ta{resize:vertical;min-height:42px;font-family:var(--f-mono);font-size:.85rem;-webkit-text-security:disc}
/* value-over-time chart (charts.js timeline) */
.tl .tl-line{stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.tl .tl-dep{stroke:var(--text-3);stroke-width:1.6;stroke-dasharray:5 5}
.tl .tl-x{stroke:var(--text-3);stroke-width:1;stroke-dasharray:3 3}
.tl .tl-hit{cursor:crosshair}
/* investments hero: value, scrubbable chart, ranges, split by account */
.iv-hero{padding:20px 22px 18px}
.ivh-scope{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -4px 14px;padding:2px 4px}
.ivh-scope::-webkit-scrollbar{display:none}
.ivh-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;padding:6px 12px 6px 7px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font:inherit;font-size:.86rem;font-weight:600;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,color .15s ease}
.ivh-chip[data-scope="all"]{padding-left:13px}
.ivh-chip[aria-pressed="true"]{background:var(--text);border-color:var(--text);color:var(--bg)}
.ivh-chip .logo{border-radius:50%}
.ivh-val{font-family:var(--f-display);font-size:clamp(2.3rem,7vw,3.4rem);font-weight:700;letter-spacing:-.035em;line-height:1.05;margin-top:2px}
.ivh-ch{margin:6px 0 0;font-weight:600;font-size:.95rem;min-height:1.4em}
.ivh-ch .pos{color:var(--pos)}.ivh-ch .neg{color:var(--neg)}
.ivh-chart{margin:12px -6px 0;min-height:210px}
.ivh-rng .seg{width:100%;display:flex}.ivh-rng .seg label{flex:1 1 0}.ivh-rng .seg span{text-align:center}
.ivh-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:16px 0 0}
.ivh-facts dd small{display:block;font-size:.76rem;font-weight:600}
.ivh-facts div{padding:10px 12px;border-radius:var(--r);background:var(--sunken)}
.ivh-facts dt{font-size:.78rem;color:var(--text-3)}
.ivh-facts dd{margin:2px 0 0;font-weight:650;font-size:1rem}
.ivh-facts dd.pos{color:var(--pos)}.ivh-facts dd.neg{color:var(--neg)}
.ivh-sh{margin:18px 0 8px;font-size:.78rem;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.ivh-bar{display:flex;gap:3px;height:10px}
.ivh-bar i{flex-basis:0;min-width:4px;border-radius:9px;background:var(--c)}
.ivh-leg{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:2px}
.ivh-leg button{width:100%;display:grid;grid-template-columns:10px 18px minmax(0,1fr) auto auto;align-items:center;gap:8px;padding:8px 6px;border:0;border-radius:8px;background:none;font:inherit;color:var(--text);text-align:left;cursor:pointer}
.ivh-leg button > i:first-child{width:10px;height:10px;border-radius:3px;background:var(--c)}
.ivh-leg span:not(.muted){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:550}
.ivh-leg .muted{font-size:.84rem}
@media (hover:hover) and (pointer:fine){.ivh-leg button:hover,.ivh-chip:hover{background:var(--hover)}.ivh-chip[aria-pressed="true"]:hover{background:var(--text)}}
.ivh-note{margin:12px 0 0}
.ivh-note:empty{display:none}
@media (max-width:640px){.iv-hero{padding:16px 16px 14px}.ivh-leg .muted{display:none}.ivh-facts div{padding:9px 10px}.ivh-facts dd{font-size:.92rem}}
/* spending (spend.js) */
.sp-empty{display:grid;justify-items:start;gap:8px;padding:28px 26px}
.sp-empty .ham-mini{width:96px}
.sp-empty .ghost .logo,.sp-src .logo{margin-right:6px}
.sp-how{width:100%;margin-top:4px}
.sp-how-l{margin:0;padding-left:18px;display:grid;gap:6px;font-size:.9rem;color:var(--text-2)}
.sp-src{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;margin:0 0 12px}
.sp-src-b{display:flex;flex-wrap:wrap;gap:6px}
.sp-kpis{margin-top:0}
.sp-note{margin:8px 0 0}
.sp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin-top:16px}
.sp-cats{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;align-items:center}
.sp-top{list-style:none;margin:0;padding:6px 14px}
.sp-top li{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:10px;align-items:center;min-height:54px;border-bottom:1px solid var(--border)}
.sp-top li:last-child{border-bottom:0}
.sp-rank{color:var(--text-3);font-size:.84rem}
.sp-m{display:grid;min-width:0}
.sp-m b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sp-m small{display:flex;align-items:center;gap:6px;color:var(--text-3);font-size:.8rem}
.sp-m small i{width:8px;height:8px;border-radius:2px;background:var(--c)}
.bank-list label.plain{cursor:default}
@media (max-width:860px){.sp-grid{grid-template-columns:minmax(0,1fr)}}
/* phones: the category list below already carries names, shares and amounts, so the donut stands alone */
@media (max-width:640px){#spLeg{display:none}}
@media (max-width:640px){.sp-cats{grid-template-columns:minmax(0,1fr)}.sp-cats .sb-donut{max-width:170px;margin:0 auto}.sp-empty{padding:22px 18px}}
/* phone pass 2 (2026-10-14): the buddy docks into the top bar so it never sits on the numbers at the right edge;
   the title shrinks instead of pushing the bell to a second row; touch gets visible press feedback */
html{-webkit-tap-highlight-color:transparent}
@media (max-width:860px){
  .title-block{flex:1 1 0;min-width:0}
  .page-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* the subtitle is a sentence: two short lines read better than one cut in half */
  .page-sub{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.84rem;line-height:1.3}
  .bar{padding-right:50px}
  .bar .month-nav{width:calc(100% + 50px);margin-right:-50px}
  .buddy{top:calc(env(safe-area-inset-top) + 14px);bottom:auto;right:16px;flex-direction:column-reverse;gap:8px}
  .buddy-btn{height:40px;min-width:40px;width:40px;padding:0;justify-content:center;box-shadow:var(--shadow-sm)}
  .buddy-art{width:30px;height:33px;flex-basis:30px;margin-top:-2px}
  .buddy.hover .buddy-art{transform:none}
  .buddy-label{display:none}
  .buddy-dot{top:-1px;right:-1px;width:10px;height:10px}
  .buddy-bubble{border-radius:16px 4px 16px 16px;max-width:calc(100vw - 32px)}
  .buddy-panel{max-height:calc(100svh - 150px)}
  .pots-top{grid-template-columns:minmax(0,1fr) 96px;align-items:start;gap:12px;padding:18px}
  .pots-top .ham-stage{max-width:96px}
}
@media (hover:none){
  a.kpi:active,.acct-row.link:active,.acct-gh.link:active,.list li > a:active,.sch-item a:active,.link-card:active,.ivh-leg button:active,.sp-top li:active,.weeks .wk:active,.drow:active{background:var(--hover)}
  a.kpi,.link-card{transition:background-color .12s ease,transform .12s var(--ease-out)}
  a.kpi:active,.link-card:active{transform:scale(.985)}
}
.sd.rest i{width:8px;height:8px;flex:0 0 auto}
@media (max-width:640px){.st-strip{gap:2px}.sd.wk span{visibility:hidden}.sd span{font-size:.64rem}}
.sd.wk:not(.done):not(.today) i{width:8px;height:8px;max-width:8px;flex:0 0 auto;border:0;background:var(--track);margin:9px 0}
/* phones: action bars dock flush above the tab bar instead of floating over the content as a card */
@media (max-width:860px){
  .iv-bar,.sticky-act{bottom:calc(66px + env(safe-area-inset-bottom));margin:14px -16px 0;padding:10px 16px;border-radius:0;border-width:1px 0 0;box-shadow:0 -6px 18px rgba(16,24,40,.06);background:color-mix(in srgb,var(--surface) 96%,transparent)}
  .iv-bar{gap:6px}
  .iv-bar > .hl{flex:1 1 auto}
  .iv-bar > .ghost{flex:0 1 auto}
  .iv-bar .hl,.iv-bar .ghost,.sticky-act .hl{min-height:42px;font-size:.9rem;padding-inline:14px}
  .iv-pane .invoice{margin-bottom:0}
}
.inv-table td.num{white-space:nowrap}
@media screen and (max-width:640px){
  .inv-table thead{display:none}
  .inv-table tbody tr,.inv-table tfoot tr{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:baseline}
  .inv-table tbody tr{padding:10px 0;border-bottom:1px solid var(--border)}
  .inv-table tbody td,.inv-table tfoot td{border:0;padding:0}
  .inv-table tbody td:first-child{grid-column:1 / -1;font-weight:550;margin-bottom:4px}
  .inv-table tbody td:nth-child(2){text-align:left;color:var(--text-3);font-size:.86rem}
  .inv-table tfoot tr{padding-top:12px}
  .inv-table tfoot td:nth-child(2){display:none}
}
@media (max-width:860px){
  .bar{transition:min-height .2s var(--ease-out),padding .2s var(--ease-out)}
  .page-title{transition:font-size .2s var(--ease-out)}
  body.bar-scrolled .bar{min-height:54px;padding-top:7px;padding-bottom:7px}
  body.bar-scrolled .page-title{font-size:1.18rem}
  body.bar-scrolled .page-sub{display:none}
  body.bar-scrolled .bar .month-nav .icon-btn{width:34px;height:34px}
  .buddy{transition:top .2s var(--ease-out)}
  body.bar-scrolled .buddy{top:calc(env(safe-area-inset-top) + 7px)}
  .content:has(.iv-wrap.has-sel) .iv-kpis,.content:has(.iv-wrap.has-sel) .iv-filters{display:none}
}
/* phone pass 4 (2026-10-15): Daně, Nastavení, Škola */
@media (max-width:640px){
  /* Daně: regimes swipe in one row (start at the best one), smaller donut, the flat-rate picker under its label */
  .regimes{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin:0 -16px;padding:14px 16px 6px;scroll-padding-inline:16px}
  .regimes::-webkit-scrollbar{display:none}
  .regime{flex:0 0 84%;scroll-snap-align:start}
  .tax-donut{max-width:150px}
  .tax-flat{display:grid;gap:6px;width:100%}
  .tax-flat .seg{width:100%}
  /* Nastavení: services two per row, modules tighter */
  .prov-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
  .prov-c{grid-template-columns:28px minmax(0,1fr);column-gap:8px;padding:9px 10px}
  .prov-c .logo{--ls:28px}
  .prov-c b{font-size:.86rem;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .prov-c small{font-size:0;min-height:0}
  .prov-c small .beta{font-size:.6rem;margin:2px 0 0}
  .mod-grid{gap:6px}
  .mod > span{grid-template-columns:20px 30px minmax(0,1fr);gap:10px;padding:10px 12px}
  .mod .mi{width:30px;height:30px;border-radius:9px}
  .mod small{font-size:.76rem}
  input[name="iban"]{font-size:15px;letter-spacing:0}
  /* Škola: critter beside the lede, stats in one row */
  .sch-top{flex-direction:row;align-items:flex-start;gap:12px;padding-top:8px}
  .sch-top .sch-hero{flex:1 1 0;min-width:0}
  .sch-ham{width:72px;flex:0 0 72px}
  .sch-stats{gap:10px 22px;margin-top:12px}
  .sch-stats > div{min-width:0}
  .sch-lv{width:120px}
}
/* lesson player on phones: full screen like a lesson app. No top bar or tab bar (the header has its own close),
   the critter small beside its line, the main action pinned at the bottom under the thumb */
@media (max-width:860px){
  body.in-lesson .bar,body.in-lesson .tabbar{display:none}
  body.in-lesson .content{padding-bottom:24px}
  .ls-head{position:sticky;top:0;z-index:20;margin:0 -16px 10px;padding:calc(env(safe-area-inset-top) + 12px) 16px 10px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);gap:12px}
  .ls-head .x.big{width:40px;height:40px;margin-left:-8px}
  .ls-grid{gap:4px}
  .ls-side{flex-direction:row;align-items:center;gap:10px;order:-1}
  .ls-ham{width:52px;flex:0 0 52px}
  .ls-say{text-align:left;font-size:.9rem}
  .ls-stage{min-height:0;padding-bottom:110px}
  .ls-q{font-size:1.45rem}
  .ls-p{font-size:1rem}
  .ls-act{position:fixed;left:0;right:0;bottom:0;z-index:40;margin:0;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;gap:8px}
  .ls-act .hl{flex:1 1 auto;min-height:50px;font-size:1rem}
  .ls-act .ghost{min-height:50px}
  .ls-feedback{left:0}
  .ls-feedback .fb-in{padding-bottom:calc(16px + env(safe-area-inset-bottom))}
  .ls-feedback .fb-in .hl{min-height:50px}
  .opt{min-height:52px}
}
/* overview on phones: money first (safe-to-spend, then the four numbers), the streak and its to-dos after them */
@media (max-width:640px){
  #view:has(> .home-grid){display:flex;flex-direction:column;gap:14px}
  #view:has(> .home-grid) > .home-grid{display:contents}
  #view:has(> .home-grid) .setup-line{margin-bottom:0}
  #view:has(> .home-grid) .kpis{margin-top:0;order:2}
  #view:has(> .home-grid) .spend{order:1}
  #view:has(> .home-grid) .streak,#view:has(> .home-grid) .wkc{order:3}
  #view:has(> .home-grid) .home-row2{margin-top:0;order:4}
  .jar-card .ham-stage{max-width:84px}
  .spend{padding:18px 18px}
}

/* positions: ticker tile, and on phones the gain sits under the value like in a broker app */
.pt-id{display:flex;align-items:center;gap:10px;min-width:0}
.pt-id > span{min-width:0}
.tk-tile{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:hsl(var(--h) 55% 92%);color:hsl(var(--h) 55% 28%);font:700 .62rem/1 var(--f-ui);letter-spacing:.02em;font-style:normal}
.tk-tile.cr{border-radius:10px}
.tk-tile{position:relative;overflow:hidden}
.tk-logo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .2s ease}
.tk-tile.has-logo .tk-logo{opacity:1}
.tk-tile.has-logo{background:#fff;color:transparent;box-shadow:inset 0 0 0 1px var(--border)}
.tk-tile.cr.has-logo .tk-logo{inset:3px;width:calc(100% - 6px);height:calc(100% - 6px);object-fit:contain}
:root[data-theme="dark"] .tk-tile{background:hsl(var(--h) 35% 22%);color:hsl(var(--h) 70% 82%)}
.pt-pl{display:none;font-size:.78rem;font-weight:600;margin-top:2px}
.acct-row .link-btn.num{color:var(--text);text-decoration:underline dotted var(--text-3);text-underline-offset:4px}

/* Výdaje: found payments read as one list, like the merchants above */
.bank-list.sp-list{gap:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.bank-list.sp-list label{border:0;border-radius:0;border-bottom:1px solid var(--border);grid-template-columns:22px minmax(0,1fr) auto;padding:12px 16px}
.bank-list.sp-list li:last-child label{border-bottom:0}
.bank-list.sp-list label.plain{grid-template-columns:minmax(0,1fr) auto}
.bank-list.sp-list label:has(input:checked){background:var(--brand-soft)}

/* Hodiny, all contracts: one small meter per capped contract instead of a bare infinity */
.cap-list{list-style:none;margin:10px 0 4px;padding:0;display:grid;gap:10px}
.cap-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;font-size:.88rem}
.cap-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2)}
.cap-list i{grid-column:1/-1;height:6px;border-radius:99px;background:var(--track);position:relative;overflow:hidden}
.cap-list i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--brand);border-radius:inherit}
.cap-list li.over i::after{background:var(--neg)}
/* contract detail in one column: the summary comes first, the form after it, checks and danger zone last */
@media (max-width:1180px){
  .ct-side{display:contents}
  .ct-detail > .ct-form{order:1}
  .ct-side > .ct-sum{order:0}
  .ct-side > :not(.ct-sum){order:2}
  /* avatar beside the name, not a block above it */
  .ct-sum{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px}
  .ct-sum .ct-av.lg{width:44px;height:44px;border-radius:13px;font-size:1.15rem}
  .ct-sum > b{font-size:1.05rem}
  .ct-sum > :not(.ct-av):not(b){grid-column:1/-1}
}
@media (max-width:640px){.pt-pl{display:block}}

/* Předplatná: "barely use it" is a visible chip under the name, not an unlabelled switch */
.sb-unused{display:inline-flex;margin-top:6px;cursor:pointer}
.sb-unused input{position:absolute;opacity:0;pointer-events:none}
.sb-unused span{font-size:.74rem;font-weight:600;padding:3px 9px;border-radius:99px;border:1px dashed var(--border-strong);color:var(--text-3);transition:background-color .15s ease,color .15s ease,border-color .15s ease}
.sb-unused input:checked + span{border:1px solid transparent;background:var(--warn-soft);color:var(--warn)}
.sb-unused input:focus-visible + span{outline:2px solid var(--brand);outline-offset:2px}
@media (hover:hover) and (pointer:fine){.sb-unused:hover span{color:var(--text-2);border-color:var(--text-3)}}

/* Hodiny: today is always visible */
.ht-today{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:.88rem;color:var(--text-2)}
.ht-today::first-letter{text-transform:uppercase}
.ht-today b{margin-left:4px;padding:2px 9px;border-radius:99px;background:var(--accent-soft);color:var(--text);font-size:.82rem}
.ht-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-deep);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 35%,transparent)}
.cal-d.today{border:2px solid var(--critter-ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent)}
:root[data-theme="dark"] .cal-d.today{border-color:var(--accent)}
.cal-today{position:absolute;top:5px;right:6px;font-size:.6rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--critter-ink);background:var(--accent);padding:1px 5px;border-radius:99px}
@media (max-width:860px){.cal-today{display:none}}
.rows .drow.today-row{background:var(--accent-soft);border-radius:8px}
/* big monitors: the work pages use the width instead of leaving the right half empty */
.hrs-cols{display:block}
@media (min-width:1560px){
  body[data-route="home"] .content > *,body[data-route="hours"] .content > *,body[data-route="invest"] .content > *,body[data-route="spend"] .content > *,body[data-route="subs"] .content > *,body[data-route="money"] .content > *,body[data-route="admin"] .content > *{max-width:1520px}
  .hrs-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}
  .hrs-cols{margin-top:28px}
  .hrs-cols .sec:first-child{margin-top:0}
}

/* ===== sign-in, sign-up, two-step and lock: one full screen, the app shell steps aside ===== */
body.auth .side,body.auth .bar,body.auth .tabbar,body.auth .buddy,body.auth .more-sheet{display:none!important}
body.auth .app{grid-template-columns:minmax(0,1fr)}
body.auth .content{padding:0}
body.auth .content > *{max-width:none}
.auth-screen{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:100svh}
.auth-brand{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:24px;padding:clamp(24px,4vw,48px);background:var(--accent);color:var(--critter-ink);overflow:hidden;isolation:isolate}
.auth-brand::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(27,37,89,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(27,37,89,.07) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse at 50% 45%,#000 30%,transparent 75%)}
.auth-mark{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font:700 1.35rem/1 var(--f-voice);letter-spacing:-.02em}
.auth-mark svg{width:30px;height:30px}
.auth-ham{width:min(300px,62%);aspect-ratio:1;align-self:center}
.auth-trust{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-weight:600;font-size:.95rem}
.auth-trust li{display:flex;align-items:center;gap:10px}
.auth-trust svg{flex:none;width:20px;height:20px;padding:3px;border-radius:50%;background:var(--critter-ink);stroke:var(--accent);fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.auth-main{display:grid;place-items:center;padding:clamp(24px,5vw,64px) clamp(18px,5vw,64px);background:var(--bg)}
.auth-card{width:100%;max-width:440px}
.auth-card .gate-h{font-size:clamp(1.9rem,3.4vw,2.6rem);line-height:1.08;font-weight:680;letter-spacing:-.035em}
.auth-card .lede{margin-top:12px;color:var(--text-2);font-size:1.02rem;line-height:1.55}
.auth-card .act{margin-top:26px}
.auth-steps{list-style:none;margin:0 0 26px;padding:0;display:flex;gap:6px;flex-wrap:wrap;font-size:.8rem;font-weight:600;color:var(--text-3)}
.auth-steps li{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 4px;border-radius:99px;background:var(--sunken)}
.auth-steps i{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--surface);font-style:normal;font-size:.72rem;border:1px solid var(--border-strong)}
.auth-steps li.now{background:var(--brand-soft);color:var(--brand)}
.auth-steps li.now i{background:var(--brand);color:var(--on-brand);border-color:transparent}
.auth-steps li.done i{background:var(--pos);border-color:transparent}
.auth-steps li.done svg{width:12px;height:12px;stroke:#fff;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.gbtn{min-height:44px;width:100%;max-width:340px}
.auth-switch{margin-top:22px;color:var(--text-2);font-size:.94rem}
.auth-switch .link-btn,.auth-demo .link-btn{font-weight:650}
.auth-demo{margin-top:6px;font-size:.94rem}
.auth-legal{margin-top:26px;padding-top:16px;border-top:1px solid var(--border)}
.auth-legal a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.auth-pk{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;max-width:340px;min-height:52px;font-size:1rem}
.auth-pk svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.auth-or{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}
#unlockForm .code,.auth-card form .code{max-width:12ch}
.auth-ok{display:flex;gap:10px;align-items:flex-start;padding:14px 16px;border-radius:var(--r);background:var(--pos-soft);color:var(--pos);font-weight:600}
.auth-ok svg{flex:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
:root[data-theme="dark"] .auth-brand{background:#2a2414;color:var(--accent)}
:root[data-theme="dark"] .auth-brand::before{background-image:linear-gradient(rgba(255,210,63,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,210,63,.06) 1px,transparent 1px)}
:root[data-theme="dark"] .auth-trust svg{background:var(--accent);stroke:#2a2414}
@media (max-width:860px){
  .auth-screen{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr;min-height:100svh}
  .auth-brand{flex-direction:row;align-items:center;padding:calc(env(safe-area-inset-top) + 16px) 18px 16px}
  .auth-ham{width:84px;flex:none;order:2}
  .auth-trust{display:none}
  .auth-main{place-items:start center;padding:26px 18px calc(28px + env(safe-area-inset-bottom))}
  .auth-steps{margin-bottom:18px}
}
/* ===== admin at /stashik/admin/: no app navigation, just the admin ===== */
body.admin-mode .side,body.admin-mode .tabbar,body.admin-mode .buddy,body.admin-mode .bell-wrap,body.admin-mode #cmdBtnM,body.admin-mode .more-sheet{display:none!important}
body.admin-mode .app{grid-template-columns:minmax(0,1fr)}
body.admin-mode .content{padding-bottom:48px}
body.admin-mode .content > *{max-width:1280px;margin-inline:auto}
body.admin-mode .bar{padding-right:0}
.own-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface)}
.own-head span{margin-right:auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.own-top .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}
.own-invites .own-acts{margin-top:0;align-items:center}
@media (max-width:640px){.own-invites li{flex-wrap:wrap;gap:8px}}
@media (max-width:640px){.own-head span{flex:1 1 100%}.own-head{gap:6px}}

/* ===== weekly check-in (replaced the daily streak) ===== */
.wkc{display:flex;flex-direction:column;gap:12px;padding:20px 22px 16px}
.wkc-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:10px 12px}
.wkc-top > div{flex:1 1 170px;min-width:0}
.wkc-top h2{font-size:1.2rem;font-weight:680;letter-spacing:-.02em}
.wkc-chain{margin-top:4px;font-size:.88rem;font-weight:600;color:var(--text-2)}
.wkc-dots{list-style:none;margin:0;padding:0;display:flex;gap:5px;flex:none}
.wkd i{display:grid;place-items:center;width:20px;height:20px;border-radius:7px;border:1.5px dashed var(--border-strong)}
.wkd.on i{border:0;background:var(--accent);box-shadow:inset 0 -2px 0 var(--accent-deep)}
.wkd.on svg{width:13px;height:13px;stroke:var(--critter-ink);fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.wkd.cur i{border-style:solid;border-color:var(--brand)}
.wkd.cur.on i{border:0;outline:2px solid var(--brand);outline-offset:2px}
.wkc-lede{font-size:.92rem}
.wkc-peek{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;margin:0}
.wkc-peek div{padding:10px 12px;border-radius:var(--r);background:var(--sunken)}
.wkc-peek dt{font-size:.74rem;color:var(--text-3)}
.wkc-peek dd{margin:2px 0 0;font-weight:680;font-size:1.05rem}
.wkc-go{display:inline-flex;align-items:center;justify-content:center;gap:8px;align-self:flex-start;min-height:44px}
.wkc-go svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.wkc-state{display:flex;gap:10px;align-items:flex-start;font-weight:600}
.wkc-state > svg{flex:none;width:22px;height:22px;padding:3px;border-radius:50%;background:var(--pos);stroke:#fff;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.wkc-state .muted{font-weight:500}
.wkc-focus{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;padding:12px 14px;border-radius:var(--r);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent-deep) 35%,transparent)}
.wkc-focus .k{grid-column:1/-1;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.wkc-focus a,.wkc-focus b{font-weight:650;color:var(--text);min-width:0}
.wkc-focus.ok a,.wkc-focus.ok b{text-decoration:line-through;color:var(--text-3)}
.wk-sheet{display:flex;flex-direction:column;max-width:520px}
.wk-prog{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:14px 22px 0}
.wk-prog i{height:4px;border-radius:99px;background:var(--track)}
.wk-prog i.on{background:var(--brand)}
.wk-h{font-size:1.25rem;font-weight:680;letter-spacing:-.02em;margin-bottom:10px}
.wk-big{font-family:var(--f-display);font-size:1.6rem;font-weight:680;letter-spacing:-.03em;line-height:1.15;margin:4px 0 10px}
.wk-bar{display:block;height:8px;border-radius:99px;background:var(--track);overflow:hidden;margin-bottom:14px}
.wk-bar i{display:block;height:100%;width:var(--w);background:var(--brand);border-radius:inherit}
.wk-bar.met i{background:var(--pos)}
.wk-list{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--text-2)}
.wk-k{margin:14px 0 6px;font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-3)}
.wk-rows{list-style:none;margin:0;padding:0;display:grid}
.wk-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border)}
.wk-rows li:last-child{border-bottom:0}
.wk-picks{display:grid;gap:8px;margin-top:12px}
.wk-pick{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--r);cursor:pointer;background:var(--surface)}
.wk-pick:has(input[type=radio]:checked){border-color:var(--brand);background:var(--brand-soft)}
.wk-pick > input[type=radio]{accent-color:var(--brand);width:18px;height:18px;flex:none}
.wk-pick.own span{flex:1;min-width:0}
.wk-pick.own input[type=text]{width:100%;border:0;background:transparent;padding:0;font:inherit}
.wk-pick.own input[type=text]:focus{outline:none}
.wk-foot{display:flex;justify-content:space-between;gap:10px;padding:12px 20px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--border)}
/* Smlouvy: earlier income and the Claude card */
.ct-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:14px;margin-top:22px;align-items:start}
.ci-form .row2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 12px}
.cl-card .sec-head{align-items:center}
.cl-steps{margin:10px 0;padding-left:20px;display:grid;gap:6px;font-size:.92rem;color:var(--text-2)}
.cl-prompt{margin:12px 0;padding:12px 14px;border-left:3px solid var(--accent-deep);border-radius:0 var(--r) var(--r) 0;background:var(--sunken);font-family:var(--f-voice);font-size:.88rem;line-height:1.5;color:var(--text)}
.cl-undo{margin-top:18px;padding:14px 16px;border-radius:var(--r-lg);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent)}
.cl-undo b{color:var(--warn)}
@media (max-width:640px){.ct-card.new{min-height:64px;flex-direction:row;padding:14px}}

/* ===== month picker: the month in the top bar opens a year of months ===== */
.month-btn{min-width:8.5em;padding:6px 10px;border:0;border-radius:999px;background:transparent;font:inherit;font-weight:600;font-size:.92rem;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.month-btn::after{content:"";width:6px;height:6px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:translateY(-2px) rotate(45deg);opacity:.55;transition:transform .2s var(--ease-out)}
.month-btn[aria-expanded="true"]::after{transform:translateY(1px) rotate(-135deg)}
.month-btn:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
@media (hover:hover) and (pointer:fine){.month-btn:hover{background:var(--hover)}}
.mp-bg{position:fixed;inset:0;z-index:80}
.mp{position:fixed;width:min(340px,calc(100vw - 24px));padding:14px;border-radius:var(--r-xl);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);display:grid;gap:12px}
.mp-head{display:flex;align-items:center;justify-content:space-between}
.mp-head .icon-btn:disabled{opacity:.3;cursor:default}
.mp-year{font-family:var(--f-display);font-size:1.3rem;font-weight:680;letter-spacing:-.02em}
.mp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.mp-m{position:relative;display:flex;align-items:center;justify-content:center;min-height:48px;padding:6px 4px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);font:inherit;font-size:.9rem;font-weight:600;color:var(--text);cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .15s var(--ease-out)}
.mp-m span::first-letter{text-transform:uppercase}
.mp-m:disabled{color:var(--text-3);opacity:.45;cursor:default;background:transparent;border-style:dashed}
.mp-m.now{border-color:var(--brand);color:var(--brand)}
.mp-m.sel{background:var(--accent);border-color:var(--accent-deep);color:var(--critter-ink);box-shadow:inset 0 -2px 0 var(--accent-deep)}
.mp-m:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.mp-m:active:not(:disabled){transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.mp-m:not(:disabled):not(.sel):hover{background:var(--hover);border-color:var(--border-strong)}}
.mp-dot{position:absolute;top:7px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--pos)}
.mp-dot.sent{background:var(--brand)}
.mp-dot.late{background:var(--neg)}
.mp-dot.draft{background:transparent;box-shadow:inset 0 0 0 1.5px var(--text-3)}
.mp-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--border)}
.mp-leg{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:.74rem;color:var(--text-3)}
.mp-leg li{display:flex;align-items:center;gap:5px}
.mp-leg .mp-dot{position:static}
@media (max-width:640px){
  .mp-bg{background:rgba(10,12,20,.38);display:flex;align-items:flex-end}
  .mp{position:relative;width:100%;border-radius:var(--r-xl) var(--r-xl) 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom))}
  .mp-m{min-height:54px}
}

/* watchlist previews are pictures: the wheel and the finger scroll the page, the chart button opens the live chart */
.wl-mini .tv-frame{pointer-events:none}
.pt-wrap{overscroll-behavior-x:contain}
.iv-scope{margin-top:14px;padding:14px 16px;border-radius:var(--r-lg);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 28%,transparent)}
.iv-scope b{color:var(--warn)}
.iv-scope p{margin:4px 0 8px}
.iv-scope ol{margin:0 0 12px;padding-left:20px;display:grid;gap:4px;font-size:.88rem;color:var(--text-2)}

/* Investice on wide screens: the allocation card rides along while the accounts list is longer */
@media (min-width:1181px){.iv-grid{align-items:start}.iv-grid > .iv-alloc{position:sticky;top:92px}}
@media (max-width:640px){.ivh-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.ivh-facts div:last-child:nth-child(odd){grid-column:1/-1}}

/* ===== Výdaje: categories with budgets and merchant moves ===== */
.sc-list{list-style:none;margin:10px 0 0;padding:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.sc-item + .sc-item{border-top:1px solid var(--border)}
.sc-head{display:grid;grid-template-columns:12px minmax(0,1fr) minmax(0,auto);gap:12px;align-items:center;width:100%;padding:13px 16px;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.sc-head > i{width:12px;height:12px;border-radius:4px;background:var(--c)}
.sc-n{display:grid;min-width:0}
.sc-n b{font-weight:650;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-n small{color:var(--text-3);font-size:.8rem}
.sc-bud{display:grid;gap:4px;justify-items:end;min-width:110px}
.sc-bud small{font-size:.76rem;color:var(--text-3);white-space:nowrap}
.sc-bud.over small{color:var(--neg);font-weight:600}
.sc-bar{display:block;width:110px;height:6px;border-radius:99px;background:var(--track);overflow:hidden}
.sc-bar i{display:block;height:100%;width:var(--w);background:var(--pos);border-radius:inherit}
.sc-bud.over .sc-bar i{background:var(--neg)}
.sc-head[aria-expanded="true"]{background:var(--hover)}
.sc-body{padding:4px 16px 16px;background:var(--hover)}
.sc-budget{max-width:240px}
.sc-ms{list-style:none;margin:0;padding:0;display:grid}
.sc-ms li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,150px);gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--border)}
.sc-ms li:last-child{border-bottom:0}
.sc-ms span{display:grid;min-width:0}
.sc-ms b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sc-ms small{color:var(--text-3);font-size:.78rem}
.sc-ms select{width:100%;min-width:0;padding:7px 8px;font-size:.86rem}
.sc-new{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:10px 0}
.sc-new input[name=name]{flex:1 1 180px;min-width:0}
.sc-pal{display:flex;gap:6px;flex-wrap:wrap}
.sc-pal input{position:absolute;opacity:0;pointer-events:none}
.sc-pal i{display:block;width:24px;height:24px;border-radius:50%;background:var(--c);cursor:pointer;box-shadow:inset 0 0 0 2px rgba(255,255,255,.4)}
.sc-pal input:checked + i{outline:2px solid var(--text);outline-offset:2px}
.sc-pal input:focus-visible + i{outline:2px solid var(--brand);outline-offset:2px}
@media (hover:hover) and (pointer:fine){.sc-head:hover{background:var(--hover)}}
@media (max-width:640px){.sc-head{grid-template-columns:12px minmax(0,1fr)}.sc-bud{grid-column:2;justify-items:start}.sc-bar{width:100%}.sc-ms li{grid-template-columns:minmax(0,1fr)}}

/* ===== phone alerts in Settings ===== */
.al-state{margin:10px 0 6px}
.al-on{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--pos);margin-bottom:10px}
.al-on svg{width:20px;height:20px;padding:3px;border-radius:50%;background:var(--pos);stroke:#fff;fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
#alOn{display:inline-flex;align-items:center;gap:8px;min-height:46px}
#alOn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2}
.switch.al-row{display:flex;align-items:center;gap:10px;margin:10px 0}
.switch.al-row > span:last-child{flex:1 1 0;min-width:0;line-height:1.5}
.switch.al-row select{margin-left:6px;padding:4px 8px;font-size:.88rem;width:auto}
.al-px li{display:flex;justify-content:space-between;align-items:center}
.al-px-add{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.al-px-add select,.al-px-add input{width:auto;flex:0 1 auto;min-width:0}
.al-px-add input{flex:1 1 100px;max-width:160px}

/* Daně: tax return pack */
.tp-sum{display:grid;gap:0;margin:0 0 12px}
.tp-sum div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border)}
.tp-sum dt{color:var(--text-2)}
.tp-sum dt small{color:var(--text-3)}
.tp-sum dd{margin:0;font-weight:650}
.tp-sum .tot dt{color:var(--text);font-weight:650}
.tp-sum .tot dd{font-size:1.1rem}
.tp-table{width:100%;border-collapse:collapse;font-size:.9rem}
.tp-table th{font-size:.76rem;color:var(--text-3);font-weight:600;text-align:left;padding:4px 0;border-bottom:1px solid var(--border-strong)}
.tp-table th.num,.tp-table td.num{text-align:right}
.tp-table td{padding:7px 0;border-bottom:1px solid var(--border)}
.tp-sum dd{white-space:nowrap}
.tp-unpaid{margin:4px 0 12px;padding:12px 14px;border-radius:var(--r);background:var(--warn-soft);border:1px solid color-mix(in srgb,var(--warn) 25%,transparent)}
.tp-unpaid > b{color:var(--warn);font-size:.88rem}
.tp-unpaid ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:4px;font-size:.88rem}
.tp-unpaid li{display:flex;justify-content:space-between;gap:10px}

/* ===== admin 2 (2026-10-17): dashboard, user table and drawer, support inbox ===== */
body.admin-mode .content > *{max-width:1440px}
.own-head .own-who{display:flex;align-items:center;gap:10px;margin-right:auto;min-width:0;flex-wrap:nowrap}
.own-head .own-who > span{display:grid;min-width:0}
.own-head .own-who small{flex-basis:auto}
.own-top-r{display:flex;align-items:center;gap:10px}
.own-sub{margin:-4px 0 12px}
.own-skel{display:grid;gap:12px}.own-skel .skeleton{height:120px;border-radius:var(--r-lg)}
/* overview numbers as one band (2026-10-17: eight separate cards filled the first screen) */
.own-kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
.own-kpis .kpi{border:0;border-left:1px solid var(--border);border-radius:0;box-shadow:none;background:none;padding:14px 16px;min-width:0}
.own-kpis .kpi:first-child{border-left:0}
.own-kpis .kpi .k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.own-kpis .kpi .v{font-size:1.7rem;line-height:1.15}
.own-kpis .kpi.alert{background:var(--accent-soft)}
@media (max-width:1180px){.own-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.own-kpis .kpi:nth-child(4n+1){border-left:0}.own-kpis .kpi:nth-child(n+5){border-top:1px solid var(--border)}}
@media (max-width:640px){.own-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.own-kpis .kpi:nth-child(odd){border-left:0}.own-kpis .kpi:nth-child(even){border-left:1px solid var(--border)}.own-kpis .kpi:nth-child(n+3){border-top:1px solid var(--border)}.own-kpis .kpi .v{font-size:1.4rem}}
.own-grid-hf{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr)}
.own-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.own-stack{display:grid;gap:14px;align-content:start}
.own-gap{margin-top:14px}
.own-dot{display:inline-block;flex:none;width:10px;height:10px;border-radius:50%;background:var(--warn);box-shadow:0 0 0 3px color-mix(in srgb,var(--warn) 20%,transparent)}
.own-dot.ok{background:var(--pos);box-shadow:0 0 0 3px color-mix(in srgb,var(--pos) 18%,transparent)}
.own-dot.bad{background:var(--neg);box-shadow:0 0 0 3px color-mix(in srgb,var(--neg) 20%,transparent)}
.own-health{list-style:none;margin:0;padding:0;display:grid}
.own-health li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:.9rem}
.own-health li:last-child{border-bottom:0}
.own-health b{font-weight:600;text-align:right;color:var(--text-2);font-size:.86rem}
.own-funnel,.own-feat{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.own-funnel li,.own-feat li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:8px 12px;border-radius:10px;overflow:hidden;isolation:isolate;font-size:.9rem}
.own-funnel li i,.own-feat li i{position:absolute;inset:0 auto 0 0;width:var(--w);background:color-mix(in srgb,var(--c1) 14%,transparent);border-radius:inherit;z-index:-1;transform-origin:left;animation:adgrow .6s var(--ease-out) both;animation-delay:calc(var(--i) * 45ms)}
.own-funnel li:nth-child(n+5) i{background:color-mix(in srgb,var(--c4) 16%,transparent)}
.own-feat li{grid-template-columns:minmax(0,1fr) auto auto}
.own-feat li i{background:color-mix(in srgb,var(--c3) 13%,transparent)}
.own-feat small{color:var(--text-3);font-size:.78rem;min-width:56px;text-align:right}
@keyframes adgrow{from{transform:scaleX(0)}to{transform:none}}
.own-coh{width:100%;border-collapse:collapse;font-size:.88rem}
.own-coh th{font-size:.74rem;color:var(--text-3);font-weight:600;text-align:left;padding:4px 6px;border-bottom:1px solid var(--border-strong)}
.own-coh td{padding:5px 6px;border-bottom:1px solid var(--border)}
.own-cell{display:block;padding:4px 8px;border-radius:7px;font-weight:650;font-size:.82rem;background:color-mix(in srgb,var(--pos) calc(var(--p) * 60%),var(--sunken));color:var(--text)}
.own-cell.b{background:color-mix(in srgb,var(--c1) calc(var(--p) * 55%),var(--sunken))}
.own-donut{max-width:150px;margin:0 auto 10px}
.own-table-wrap{padding:0;overflow-x:auto}
.own-users-t{width:100%;border-collapse:collapse;font-size:.9rem}
.own-users-t th{font-size:.74rem;color:var(--text-3);font-weight:600;text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-strong);white-space:nowrap}
.own-users-t td{padding:10px 14px;border-bottom:1px solid var(--border);vertical-align:middle}
.own-users-t tr[data-id]{cursor:pointer;transition:background-color .15s ease}
.own-users-t tr.blocked td{background:color-mix(in srgb,var(--neg) 5%,transparent)}
.own-users-t tr:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.own-u{display:flex;align-items:center;gap:10px;min-width:0}
.own-u > span{display:grid;min-width:0}
.own-u b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.own-u small{color:var(--text-3);font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.own-u .pill{justify-self:start;margin-top:2px}
.own-av{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sunken);color:var(--text-2);font-style:normal;font-weight:700;font-size:.9rem;position:relative}
.own-av.big{width:52px;height:52px;font-size:1.3rem;background:var(--accent);color:var(--critter-ink)}
.own-av.recent::after,.own-av.live::after{content:"";position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:var(--c1);border:2px solid var(--surface)}
.own-av.live::after{background:var(--pos)}
.own-svc{align-items:center}
.own-svc > span.stale{opacity:.45}
.own-drawer-bg{display:flex;justify-content:flex-end;align-items:stretch;padding:0}
.own-drawer{width:min(520px,100%);height:100%;display:flex;flex-direction:column;background:var(--surface);border-left:1px solid var(--border);box-shadow:var(--shadow-lg);animation:addrawer .26s var(--ease-out) both}
.own-drawer .sheet-body{flex:1;overflow:auto}
@keyframes addrawer{from{transform:translateX(30px);opacity:0}to{transform:none;opacity:1}}
.own-dhead{display:flex;gap:14px;align-items:center;margin-bottom:6px}
.own-dhead > div{display:grid;min-width:0}
.own-dhead a{font-size:.9rem;overflow-wrap:anywhere}
.own-mini li{min-height:44px;gap:10px}
.own-svc-row{display:flex;align-items:center;gap:10px;min-width:0}
.own-svc-row > span{display:grid;min-width:0}
.own-chips{display:flex;flex-wrap:wrap;gap:6px}
.own-dacts{margin:16px 0 4px;padding:12px;border-radius:var(--r);background:var(--sunken)}
.own-log-mini li.bad span:first-child{color:var(--neg);font-weight:600}
.own-sup{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.own-sup li{padding:14px 16px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface-2)}
.own-sup li.open{border-color:color-mix(in srgb,var(--brand) 35%,transparent);background:var(--brand-soft)}
.own-sup-h{display:grid;gap:2px}
.own-sup p{margin:8px 0;white-space:normal;color:var(--text-2)}
.own-evq{max-width:320px;margin-bottom:10px}
@media (hover:hover) and (pointer:fine){.own-users-t tr[data-id]:hover td{background:var(--hover)}}
@media (max-width:1180px){.own-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:860px){.own-grid-hf,.own-grid-4{grid-template-columns:minmax(0,1fr)}.own-users-t th:nth-child(3),.own-users-t td:nth-child(3),.own-users-t th:nth-child(5),.own-users-t td:nth-child(5){display:none}.own-drawer{width:100%}}
@media (max-width:520px){.own-users-t th:nth-child(4),.own-users-t td:nth-child(4){display:none}.own-users-t td,.own-users-t th{padding:10px}}

/* notice for everybody (admin → Provoz → Oznámení) */
.sk-notice{display:flex;align-items:flex-start;gap:10px;margin:0 0 14px;padding:10px 8px 10px 14px;border-radius:var(--r-lg);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent) 55%,var(--border));color:var(--text);animation:sknotice .32s var(--ease-out) both}
.sk-notice.warn{background:var(--warn-soft);border-color:color-mix(in srgb,var(--warn) 45%,var(--border))}
.sk-notice > svg{flex:none;width:20px;height:20px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.sk-notice.warn > svg{color:var(--warn)}
.sk-notice p{flex:1;margin:0;line-height:1.45}
.sk-notice .x{margin:-4px 0 -4px auto}
@keyframes sknotice{from{opacity:0;transform:translateY(-6px)}}
@media (prefers-reduced-motion:reduce){.sk-notice{animation:none}}

/* admin → Provoz: actions, notice, errors; invites: bulk paste */
.own-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.own-actions .busy{opacity:.6;cursor:progress}
.own-op-out{min-height:1.4em;margin:10px 0 0;font-variant-numeric:tabular-nums}
.own-notice-now{margin:10px 0 12px;padding:10px 12px;border-radius:var(--r-sm);background:var(--accent-soft)}
.own-notice-now.warn{background:var(--warn-soft)}
.own-notice-now small{color:var(--text-3)}
.own-notice-now p{margin:2px 0 0}
.own-notice-f{display:grid;gap:10px;margin-top:10px}
.own-notice-f textarea{width:100%;resize:vertical;min-height:58px}
.own-notice-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px}
.own-notice-row .f{margin:0}
.own-errs{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px;max-height:460px;overflow:auto}
.own-errs li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;padding:10px 12px;border-radius:var(--r-sm);background:var(--sunken)}
.own-errs code{font-family:var(--f-mono);font-size:.8rem;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}
.own-err-k{grid-row:span 2;align-self:start;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:600;background:var(--surface);color:var(--text-2)}
.own-errs li.fatal .own-err-k,.own-errs li.parse .own-err-k{background:var(--neg-soft);color:var(--neg)}
.own-errs li.warning .own-err-k{background:var(--warn-soft);color:var(--warn)}
.own-err-m{grid-column:2}
.own-bulk{margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
.own-bulk summary{cursor:pointer;font-weight:600;padding:4px 0}
.own-bulk form{display:grid;gap:8px;margin-top:6px}
.own-bulk textarea{width:100%;resize:vertical;font-family:var(--f-mono);font-size:.85rem}
.own-bulk .own-acts{align-items:center}
.own-grid-top{align-items:start}

/* Výdaje: sources and statements by e-mail (2026-10-17) */
.sp-srcs{min-width:0}.sp-srcs summary{cursor:pointer;list-style:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-srcs summary::-webkit-details-marker{display:none}
.sp-srcs ul{list-style:none;margin:8px 0 0;padding:4px 12px;border:1px solid var(--border);border-radius:var(--r);background:var(--surface)}
.sp-srcs li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--border)}.sp-srcs li:last-child{border-bottom:0}
.sp-srcs li > span{display:grid;min-width:0}.sp-srcs small{font-size:.8rem}
.sp-mail{margin-top:16px}
.sp-mail-addr{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.sp-mail-addr code{flex:1 1 260px;min-width:0;padding:10px 12px;border-radius:var(--r);background:var(--sunken);border:1px solid var(--border);font-family:var(--f-mono);font-size:.9rem;overflow-wrap:anywhere}
.sp-mail-note{display:grid;gap:4px;margin:10px 0;padding:12px 14px;border-radius:var(--r);background:var(--accent-soft);border:1px solid color-mix(in srgb,var(--accent-deep) 40%,transparent)}
.sp-mail-note .btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.sp-mail-note input{flex:1 1 180px;min-width:0}
/* admin, design pass (2026-10-17): plans, sparklines, motion. Prefix own-*: ad blockers hide ad-* */
.plan-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:999px;font-size:.78rem;font-weight:650;letter-spacing:.01em;background:var(--sunken);color:var(--text-2);border:1px solid var(--border);white-space:nowrap;vertical-align:middle}
.plan-chip small{font-weight:500;opacity:.8}
.plan-chip.pro{background:var(--accent);color:var(--critter-ink);border-color:color-mix(in srgb,var(--accent-deep) 50%,transparent)}
.plan-chip.trial{background:color-mix(in srgb,var(--c1) 14%,var(--surface));color:var(--c1);border-color:color-mix(in srgb,var(--c1) 35%,transparent)}
.plan-chip.sm{padding:1px 7px;font-size:.72rem}
.own-kpis .kpi{position:relative;overflow:hidden;font:inherit;color:inherit;text-align:left}
.own-kpis .kpi.go{cursor:pointer;transition:background-color .2s ease}
.own-spark{display:block;width:100%;height:30px;margin-top:6px;overflow:visible}
.own-spark .sl{fill:none;stroke:var(--sc);stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.own-spark .sa{fill:color-mix(in srgb,var(--sc) 12%,transparent);stroke:none}
.own-spark circle{fill:var(--sc);vector-effect:non-scaling-stroke}
.own-planbar{display:flex;gap:3px;height:14px;margin:6px 0 14px;border-radius:999px;overflow:hidden;background:var(--sunken)}
.own-planbar i{display:block;width:var(--w);min-width:0;height:100%;transform-origin:left}
.own-planbar i.pro,.own-planleg i.pro{background:var(--accent-deep)}
.own-planbar i.trial,.own-planleg i.trial{background:var(--c1)}
.own-planbar i.free,.own-planleg i.free{background:var(--border-strong)}
.own-planleg{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.own-planleg li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-items:center}
.own-planleg i{width:10px;height:10px;border-radius:3px}
.own-planleg span{font-size:.84rem;color:var(--text-3)}
.own-planleg b{grid-column:2;font-family:var(--f-display);font-size:1.5rem;line-height:1.1}
.own-ending li{gap:10px}
.own-dsec{margin:6px 0 4px;padding:14px 16px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface-2,var(--sunken))}
.own-dsec .sub-h{margin-top:0}
.own-plan-box{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 16%,var(--surface)) 0%,var(--surface) 60%)}
.own-plan-now{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
.own-quick{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.own-plan-f,.own-edit-f{display:grid;gap:10px}
.own-plan-dur{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.own-plan-dur input[type=date]{max-width:180px}
.own-hist{margin-top:12px}.own-hist summary{cursor:pointer;color:var(--text-2)}
.own-tl{list-style:none;margin:10px 0 0;padding:0 0 0 14px;border-left:2px solid var(--border);display:grid;gap:10px}
.own-tl li{position:relative;display:grid;gap:1px}
.own-tl li::before{content:"";position:absolute;left:-20px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--border-strong);border:2px solid var(--surface)}
.own-tl li.pro::before{background:var(--accent-deep)}.own-tl li.trial::before{background:var(--c1)}
.own-tl small{color:var(--text-3)}
@media (hover:hover) and (pointer:fine){
  .own-kpis .kpi.go:hover{background:var(--hover)}
  .own-panel{transition:box-shadow .25s ease,transform .25s var(--ease-out)}
  .own-panel:hover{box-shadow:var(--shadow)}
  .own-users-t tr[data-id]:hover td{background:var(--hover)}
  .own-users-t tr[data-id]:hover .own-av{transform:scale(1.08)}
}
.own-av{transition:transform .2s var(--ease-out)}
@media (prefers-reduced-motion:no-preference){
  #ownBody.own-in .own-panel,#ownBody.own-in > .own-kpis,#ownBody.own-in > .own-tools,#ownBody.own-in > .own-table-wrap{animation:ownIn .5s var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}
  #ownBody.own-in[data-dir="l"] .own-panel,#ownBody.own-in[data-dir="l"] > *{animation-name:ownInL}
  .own-users-t tbody tr{animation:ownRow .4s var(--ease-out) both;animation-delay:calc(var(--i,0) * 28ms)}
  .own-spark .sl{stroke-dasharray:1;stroke-dashoffset:1;animation:ownDraw 1.1s .25s cubic-bezier(.23,1,.32,1) forwards}
  .own-spark .sa{opacity:0;animation:ownFade .6s .7s ease forwards}
  .own-spark circle{opacity:0;transform-box:fill-box;transform-origin:center;animation:ownPop .4s 1.2s var(--ease-out) forwards}
  .own-planbar i{animation:grow .9s var(--ease-out) both;animation-delay:calc(var(--i) * 120ms + 150ms)}
  .own-dot.ok{animation:ownPulse 2.4s ease-out infinite}
  .own-drawer-bg{animation:ownFade .2s ease both}
  .own-drawer-bg.closing{animation:ownFade .2s ease reverse both}
  .own-drawer-bg.closing .own-drawer{animation:ownOut .22s ease-in both}
  .own-drawer .sheet-body > *{animation:ownIn .45s var(--ease-out) both}
  .own-drawer .sheet-body > :nth-child(2){animation-delay:40ms}.own-drawer .sheet-body > :nth-child(3){animation-delay:80ms}.own-drawer .sheet-body > :nth-child(n+4){animation-delay:120ms}
  .own-kpis .kpi .v{transition:color .3s ease}
  .plan-chip.pro{animation:ownShine 3.5s ease-in-out 1s 1 both;background-image:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 50%,transparent 70%);background-size:250% 100%;background-repeat:no-repeat;background-position:150% 0}
}
@keyframes ownIn{from{opacity:0;transform:translate3d(14px,6px,0)}to{opacity:1;transform:none}}
@keyframes ownInL{from{opacity:0;transform:translate3d(-14px,6px,0)}to{opacity:1;transform:none}}
@keyframes ownRow{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes ownDraw{to{stroke-dashoffset:0}}
@keyframes ownFade{from{opacity:0}to{opacity:1}}
@keyframes ownPop{from{opacity:0;transform:scale(0)}to{opacity:1;transform:none}}
@keyframes ownOut{to{transform:translateX(40px);opacity:0}}
@keyframes ownPulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--pos) 45%,transparent)}70%,100%{box-shadow:0 0 0 7px transparent}}
@keyframes ownShine{from{background-position:150% 0}to{background-position:-60% 0}}
@media (max-width:860px){.own-grid-plans{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.own-planleg b{font-size:1.25rem}.own-dsec{padding:12px}}
/* agent: suggestions (agent.js, 2026-10-17) */
.ag-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:16px;align-items:start}
.ag-page > .ag-hero{grid-column:1 / -1;display:flex;align-items:center;gap:16px;padding:16px 20px;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 22%,var(--surface)) 0%,var(--surface) 70%)}
.ag-hero .ham-mini{flex:none;width:64px;height:64px}.ag-hero p{margin:0;max-width:62ch}
.ag-side{display:grid;gap:16px}
.ag-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.ag-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 16px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
/* the tone lives in the icon tile only; a coloured stripe on the left edge read as an alert banner */
.ag-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:color-mix(in srgb,var(--tc) 14%,transparent);color:var(--tc)}
.ag-ic svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ag-tx{display:grid;gap:3px;min-width:0}.ag-tx b{font-weight:650;line-height:1.3}.ag-tx small{color:var(--text-3);font-size:.86rem;line-height:1.4}
.ag-btns{display:flex;gap:6px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.ag-ok{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:.88rem;color:var(--pos)}
.ag-ok svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}
.ag-card.done{border-color:color-mix(in srgb,var(--pos) 45%,transparent);background:color-mix(in srgb,var(--pos) 6%,var(--surface))}
.ag-card.done .ag-ic{background:color-mix(in srgb,var(--pos) 16%,transparent);color:var(--pos)}
.ag-empty h2{margin:0 0 6px;font-size:1.15rem}
.ag-try{display:flex;flex-wrap:wrap;gap:6px}.ag-try .chip{text-align:left}
.ag-how{margin:0;padding-left:18px;display:grid;gap:6px;color:var(--text-2);font-size:.92rem}
.ag-home{margin-top:16px}
.ag-badge{background:var(--accent);color:var(--critter-ink)}
@media (hover:hover) and (pointer:fine){.ag-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow)}}
@media (prefers-reduced-motion:no-preference){
  .ag-card{animation:enter .4s var(--ease-out) both;animation-delay:calc(var(--i,0) * 60ms + 80ms)}
  .ag-card.done .ag-ok svg path{stroke-dasharray:30;stroke-dashoffset:30;animation:agTick .45s .05s var(--ease-out) forwards}
  .ag-card.done .ag-ic{animation:agPop .45s var(--ease-out)}
}
@keyframes agTick{to{stroke-dashoffset:0}}
@keyframes agPop{40%{transform:scale(1.18)}100%{transform:none}}
@media (max-width:860px){.ag-page{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .ag-card{grid-template-columns:auto minmax(0,1fr);padding:12px 14px}
  .ag-btns{grid-column:1 / -1;justify-content:flex-start}
  .ag-btns .hl{flex:1 1 auto}
  #view:has(> .home-grid) .ag-home{order:2;margin-top:0}
  .ag-page > .ag-hero{padding:12px 14px;gap:12px}.ag-hero .ham-mini{width:46px;height:46px}.ag-hero p{font-size:.9rem;line-height:1.45}
}
/* bell, redesign 2026-10-17 */
/* bell as a receipt (2026-10-18): paper, mono figures, dashed rules, a red stamp for urgent, torn bottom edge */
.bell-panel{width:min(372px,calc(100vw - 24px));padding:0;background:none;border:0;box-shadow:none;border-radius:0;overflow:visible;filter:drop-shadow(0 1px 0 var(--border)) drop-shadow(0 22px 30px rgba(16,24,40,.22));transform-origin:top right}
.bp-paper{--paper:#fffdf7;--rule:color-mix(in srgb,var(--text) 22%,transparent);position:relative;background:var(--paper);color:var(--text);padding:0 0 18px;border-radius:14px 14px 0 0;
  -webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 9px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 9px repeat-x;
          mask:linear-gradient(#000 0 0) top/100% calc(100% - 9px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 9px repeat-x}
:root[data-theme="dark"] .bp-paper{--paper:#1d2028}
.bp-h{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:2px 10px;padding:16px 18px 12px;border-bottom:1.5px dashed var(--rule);background:none}
.bp-mark{grid-row:span 2;display:grid}
.bp-h .bp-t{padding:0;font-family:var(--f-display);font-size:1.08rem;letter-spacing:-.02em;text-transform:none;color:var(--text);font-weight:680}
.bp-when{grid-column:2;font-family:var(--f-mono);font-size:.72rem;color:var(--text-3)}
.bp-new{grid-row:1 / span 2;grid-column:3;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px;background:var(--neg);color:#fff}
.bp-scroll{max-height:min(440px,62vh);overflow:auto;padding:4px 10px 4px}
.bp-g{margin:12px 8px 4px;display:flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3)}
.bp-g > span:not(.bp-stamp)::before{content:"— "}
.bp-g.red{margin:14px 6px 6px}
.bp-stamp{display:inline-block;padding:3px 10px 2px;border:2px solid var(--neg);border-radius:6px;color:var(--neg);font-family:var(--f-voice);font-size:.78rem;font-weight:800;letter-spacing:.14em;transform:rotate(-4deg);opacity:.92;background:color-mix(in srgb,var(--neg) 6%,transparent)}
.bell-panel ul{list-style:none;margin:0;padding:0;display:grid;gap:0}
.bell-panel li + li a{border-top:1px dashed var(--rule)}
.bell-panel a{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:11px 8px;border-radius:0;color:var(--text);text-decoration:none!important;line-height:1.32;transition:background-color .15s ease}
.bell-panel .bi{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:color-mix(in srgb,var(--brand) 10%,transparent);color:var(--brand);transition:transform .2s var(--ease-out)}
.bell-panel li.red .bi{background:color-mix(in srgb,var(--neg) 12%,transparent);color:var(--neg)}
.bell-panel li.amber .bi{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
.bell-panel .bi.agent{background:var(--accent);color:var(--critter-ink)}
.bell-panel .bi svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.bell-panel .bt{min-width:0}.bell-panel .bt b{font-weight:520;font-size:.9rem}
.bell-panel li.new .bt b{font-weight:680}
.bell-panel .bv{justify-self:end;max-width:9.5em;text-align:right;font-family:var(--f-mono);font-size:.76rem;font-weight:600;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bell-panel li.red .bv{color:var(--neg)}
.bell-panel .bdot{position:absolute;left:-2px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:transparent;transition:background-color .3s ease}
.bell-panel li.new .bdot{background:var(--brand)}
.bp-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 18px 0;padding-top:10px;border-top:1.5px dashed var(--rule)}
.bp-sum{font-family:var(--f-mono);font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.bp-code{width:96px;height:22px;opacity:.55;background:repeating-linear-gradient(90deg,var(--text) 0 2px,transparent 2px 4px,var(--text) 4px 5px,transparent 5px 8px,var(--text) 8px 11px,transparent 11px 12px)}
.bp-read{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 36px);margin:12px 18px 0;padding:9px 10px;border:1.5px dashed var(--rule);border-radius:10px;background:none;color:var(--text-2);font:inherit;font-size:.84rem;font-weight:600;cursor:pointer}
.bp-read svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.bp-empty{display:grid;justify-items:center;gap:6px;padding:22px 18px 12px;text-align:center}
.bp-empty .bp-ham{width:64px;height:64px}
@media (hover:hover) and (pointer:fine){.bell-panel a:hover{background:color-mix(in srgb,var(--text) 4%,transparent)}.bell-panel a:hover .bi{transform:scale(1.08)}.bp-read:hover{color:var(--text);border-color:var(--text-3)}}
@media (prefers-reduced-motion:no-preference){
  .bell-panel li{animation:bpPrint .3s steps(4,end) both;animation-delay:calc(var(--i,0) * 55ms + 120ms)}
  .bp-stamp{animation:bpStamp .42s cubic-bezier(.3,1.6,.5,1) both;animation-delay:.32s}
}
.bp-when,.bell-panel .bv,.bp-sum,.bp-g{font-variation-settings:var(--mono)}
.bp-stamp{font-variation-settings:var(--hand)}
@keyframes bpPrint{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
@keyframes bpStamp{from{opacity:0;transform:scale(1.8) rotate(-12deg)}to{opacity:.92;transform:rotate(-4deg)}}
@media (max-width:640px){.bell-panel{position:fixed;left:12px;right:12px;top:64px;width:auto}}
/* bottom bar editor (2026-10-17) */
.ms-edit{display:flex;align-items:center;gap:10px;width:100%;margin-top:6px;padding:11px 10px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);background:none;color:var(--text-2);font:inherit;font-weight:600;cursor:pointer}
.ms-edit svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ms-lede{margin:0 10px 10px}
.tabs-pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:0 4px}
.tp{position:relative;display:flex;align-items:center;gap:8px;min-height:46px;padding:8px 10px;border:1px solid var(--border);border-radius:12px;background:var(--surface);color:var(--text);font:inherit;font-size:.9rem;font-weight:550;text-align:left;cursor:pointer;transition:border-color .2s ease,background-color .2s ease}
.tp svg{flex:none;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tp span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand)}
.tp b{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--brand);color:#fff;font-size:.72rem;display:grid;place-items:center}
.tabs-prev{display:flex;justify-content:space-around;margin:12px 4px;padding:8px 4px;border-radius:14px;background:var(--sunken)}
.tabs-prev span{display:grid;justify-items:center;gap:2px;color:var(--text-2);min-width:0}
.tabs-prev svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.tabs-prev small{font-size:.66rem;max-width:64px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tabs-prev.icons small{display:none}
.tabs-prev.icons span{padding:6px 0}
/* five picked pages: icons only, a little bigger, labels stay for screen readers via aria-label */
.tabbar.icons span{display:none}
.tabbar.icons a,.tabbar.icons button{justify-content:center;min-height:48px;padding:8px 0}
.tabbar.icons svg{width:24px;height:24px}
.ms-in .btns{padding:0 4px 4px}
/* trading-style chart (charts.js timeline, 2026-10-17) */
.tv .tv-g{stroke:var(--border);stroke-width:1}.tv .tv-g.v{stroke-dasharray:2 4;opacity:.7}
.tv .tv-ax{stroke:var(--border-strong);stroke-width:1}
.tv .tv-a{font:500 10.5px var(--f-ui);fill:var(--text-3);font-variant-numeric:tabular-nums}
.tv .tv-last{stroke-width:1;stroke-dasharray:2 3;opacity:.75}
.tv .tv-tag text,.tv .tv-yp text{font:650 10.5px var(--f-ui);fill:#fff;font-variant-numeric:tabular-nums}
.tv .tv-yp rect,.tv .tv-xp rect{fill:var(--text)}
.tv .tv-yp text,.tv .tv-xp text{fill:var(--bg)}
.tv .tv-xp text{font:600 10.5px var(--f-ui)}
.tv .tl-h{stroke-dasharray:3 3}
.tv .tl-line{stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
@media (prefers-reduced-motion:no-preference){.tv .tv-pulse{animation:tvPulse 2s ease-out infinite;transform-box:fill-box;transform-origin:center}}
@keyframes tvPulse{0%{opacity:1;r:3.6}60%{opacity:.35;r:7}100%{opacity:1;r:3.6}}
.ivh-top{display:flex;align-items:center;gap:10px;justify-content:space-between}
.ivh-eye{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 11px;border:1px solid var(--border-strong);border-radius:999px;background:var(--surface);color:var(--text-2);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;transition:background-color .2s ease,color .2s ease}
.ivh-eye svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ivh-eye[aria-pressed="true"]{background:var(--text);color:var(--bg);border-color:var(--text)}
/* assistant on Claude in the buddy chat (ai.js, 2026-10-17) */
.msg.bot{white-space:pre-line}
.msg.ai-prop{border:1.5px solid color-mix(in srgb,var(--brand) 35%,transparent);background:var(--surface);font-weight:600}
.msg.ai-prop.done{border-color:color-mix(in srgb,var(--pos) 45%,transparent)}
.msg.ai-prop.no{opacity:.6}
.ai-dl{display:grid;gap:4px;margin:8px 0 2px;font-weight:400;font-size:.86rem}
.ai-dl div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid var(--border);padding-top:4px}
.ai-dl dt{color:var(--text-3)}.ai-dl dd{margin:0;text-align:right}
.ai-ok{color:var(--pos);font-weight:700;font-size:.88rem}
.ai-att{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:10px;border:1px solid var(--border);cursor:pointer;color:var(--text-2)}
.ai-att svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.ai-foot{display:flex;justify-content:space-between;gap:8px;margin:0;padding:0 14px 10px;min-height:0}
.ai-foot:has(> [hidden]:first-child):has(> [hidden]:last-child){display:none}
.ai-chip{font-size:.78rem;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--accent-soft);color:var(--text)}
.ai-new{margin-left:auto;margin-right:6px}

/* audit fixes (2026-10-17) */
/* the sidebar foot (language, theme, sign in) stays in view when the navigation is taller than the screen */
.side-foot{position:sticky;bottom:-14px;margin-bottom:-14px;padding-bottom:14px;background:linear-gradient(transparent,var(--surface-2) 14px)}
@media (max-height:860px){.side .toc-list a{padding-top:6px;padding-bottom:6px}.side .nav-label{margin-top:8px}}
/* weekly check-in numbers: two by two instead of three and an orphan */
.wkc-peek{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:1500px){.wkc-peek{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* the highlight under today's figure reads clean on dark too */
:root[data-theme="dark"] .spend-num span{background:linear-gradient(transparent 70%,color-mix(in srgb,var(--accent) 38%,transparent) 70%)}
/* phones: no live blur behind the sticky top bar and the tab bar, it repainted on every scrolled frame and stuttered on mid-range GPUs */
@media (max-width:860px),(pointer:coarse){.bar{background:var(--bg);backdrop-filter:none;-webkit-backdrop-filter:none}.tabbar{background:var(--surface);backdrop-filter:none;-webkit-backdrop-filter:none}}
/* phones: suggestions are one list with hairlines, small buttons under the text (2026-10-18; three heavy cards with full-width buttons buried the overview) */
@media (max-width:640px){
  .ag-list{gap:0;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden}
  .ag-card{grid-template-columns:auto minmax(0,1fr);gap:8px 12px;align-items:start;padding:14px;border:0;border-radius:0;box-shadow:none;background:none}
  .ag-card + .ag-card{border-top:1px solid var(--border)}
  .ag-ic{width:34px;height:34px;border-radius:10px}
  .ag-tx b{font-size:.94rem}
  .ag-tx small{font-size:.82rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .ag-btns{grid-column:2;justify-content:flex-start;flex-wrap:nowrap}
  .ag-btns .hl,.ag-btns .ghost{width:auto;flex:none;min-height:36px;padding:7px 14px}
  .ag-btns .ghost{border-color:transparent;background:none;color:var(--text-2)}
  .ag-card.done{background:color-mix(in srgb,var(--pos) 6%,var(--surface))}
}
/* phones: the positions table fits the card (2026-10-18: values and gains were cut off at the right edge) */
@media (max-width:640px){
  .pos-table{table-layout:fixed}
  .pos-table th:first-child,.pos-table td.pt-name{width:auto}
  .pos-table th:nth-child(5),.pos-table td:nth-child(5){width:8.6em}
  .pt-id > span{overflow:hidden}
  .pt-name b,.pt-name small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}
@media (max-width:420px){.pt-plv{display:none}}
/* phones: the weekly check-in reads as one row of four figures instead of a 2x2 grid of tiles; the button already says what it does */
@media (max-width:640px){
  .wkc-lede{display:none}
  .wkc-peek{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;padding:4px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
  .wkc-peek div{padding:8px 6px;border-radius:0;background:none}
  .wkc-peek div + div{border-left:1px solid var(--border)}
  .wkc-peek dt{font-size:.68rem;line-height:1.25}
  .wkc-peek dd{font-size:.92rem;white-space:nowrap}
}
.tv-more{margin:-2px 0 10px;font-size:.84rem;color:var(--text-2)}
.tv-more summary{cursor:pointer;color:var(--brand);font-weight:600;width:max-content}
.tv-more p{margin:6px 0 0}
/* invoices: the client filter is a select on phones, so status and client share one row */
.iv-csel{display:none}
@media (max-width:640px){
  .iv-filters{flex-wrap:nowrap;align-items:center}
  .iv-filters .seg{flex:1 1 auto;min-width:0}
  .iv-filters .seg:has(input[name="ivc"]){display:none}
  .iv-csel{display:block;flex:0 0 auto;width:8.2em;max-width:38%;text-overflow:ellipsis;min-height:36px;padding:6px 28px 6px 10px;font-size:16px;border-radius:999px}
}
