@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-ext-wght-normal-X_5orZeX.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-cyrillic-wght-normal-DiZS0aHC.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-symbols2-wght-normal-CO5SzqOn.woff2) format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-vietnamese-wght-normal-DadHysG0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-ext-wght-normal-Bwz-egvJ.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light dark;--font-sans: "Geist Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono Variable", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--fs-1: .75rem;--fs-2: .8125rem;--fs-3: .875rem;--fs-4: .9375rem;--fs-5: 1.125rem;--fs-6: 1.375rem;--fs-7: 1.875rem;--fs-8: 2.75rem;--lh-tight: 1.15;--lh-body: 1.5;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--r-1: 6px;--r-2: 10px;--r-3: 14px;--radius: var(--r-2);--icon-sm: 16px;--icon-md: 18px;--icon-lg: 20px;--ease: cubic-bezier(.2, .7, .2, 1);--t-fast: .12s;--t-base: .18s;--t-slow: .26s;--bg: light-dark(#f4f3ee, #0e0f0d);--surface: light-dark(#fcfbf8, #171815);--surface-2: light-dark(#eeece5, #1f201d);--surface-3: light-dark(#e6e3da, #272825);--hover: light-dark(#e9e7df, #252623);--line: light-dark(#e1dfd6, #2a2b27);--line-strong: light-dark(#cbc8bc, #3a3b36);--ink: light-dark(#14161a, #f1f1ec);--ink-2: light-dark(#474a52, #c4c5bd);--ink-3: light-dark(#64676f, #909189);--accent: light-dark(#1f5fc4, #2a6fc4);--accent-text: light-dark(#1a55b0, #7aaef3);--accent-ink: #ffffff;--accent-soft: light-dark(#e3ecfa, #14263f);--pos: light-dark(#096947, #4fcf9b);--neg: light-dark(#c4302b, #ff7b78);--caution: light-dark(#9a5b00, #f0b95a);--forecast: light-dark(#0b6177, #53c4dc);--signal: light-dark(#5450c4, #a9a6f7);--signal-soft: light-dark(#ecebfa, #1e1d3a);--signal-line: light-dark(#cdcbf0, #3b3a6b);--bad-bg: light-dark(rgba(227, 73, 72, .1), rgba(230, 103, 103, .14));--warn-bg: light-dark(#fff4dc, #33290f);--warn-line: light-dark(#ecc56a, #6b5415);--warn-ink: light-dark(#6b4a00, #f3d78c);--danger-bg: light-dark(#fdeceb, #3a1716);--danger-line: light-dark(#f1a9a7, #7a2f2c);--danger-ink: light-dark(#8a1f1b, #ffb4b1);--ok-bg: light-dark(#e6f5ee, #123024);--ok-line: light-dark(#9fd5bb, #25604a);--ok-ink: light-dark(#0b5d3f, #8fe0bd);--info-bg: light-dark(#eaf1fb, #13253b);--info-line: light-dark(#b6d0f2, #27466e);--info-ink: light-dark(#184f95, #9cc7f5);--series-1: light-dark(#2a78d6, #3987e5);--series-2: light-dark(#eb6834, #d95926);--series-3: light-dark(#1baf7a, #199e70);--shadow: none;--shadow-raised: 0 1px 0 light-dark(rgba(20, 20, 18, .04), transparent);--shadow-float: 0 14px 36px light-dark(rgba(20, 20, 18, .16), rgba(0, 0, 0, .55)), 0 0 0 1px light-dark(rgba(20, 20, 18, .06), rgba(255, 255, 255, .05));--pop: var(--shadow-float);--scrim: light-dark(rgba(20, 20, 18, .38), rgba(0, 0, 0, .6));--row-pad: 12px;--card-pad: 18px}:root[data-theme=light]{color-scheme:light}:root[data-theme=dark]{color-scheme:dark}:root[data-density=compact]{--row-pad: 7px;--card-pad: 14px}:root[data-accent=green]:not([data-mode=group]){--accent: light-dark(#2a7a3b, #2f8a45);--accent-text: light-dark(#226a31, #6fd58a);--accent-soft: light-dark(#e2f3e6, #12301a)}:root[data-accent=violet]:not([data-mode=group]){--accent: light-dark(#6a4fc9, #6f56cf);--accent-text: light-dark(#5a41b5, #b4a2f6);--accent-soft: light-dark(#eeeafa, #221b40)}:root[data-accent=amber]:not([data-mode=group]){--accent: light-dark(#a35f00, #b86e00);--accent-text: light-dark(#8a5000, #f0b95a);--accent-soft: light-dark(#fbefd9, #382a0b)}:root[data-accent=rose]:not([data-mode=group]){--accent: light-dark(#c2335a, #cc3d65);--accent-text: light-dark(#a82a4d, #f59ab4);--accent-soft: light-dark(#fbe6ec, #3a1522)}:root[data-accent=graphite]:not([data-mode=group]){--accent: light-dark(#363a41, #d6d8dd);--accent-text: light-dark(#363a41, #d6d8dd);--accent-ink: light-dark(#ffffff, #14161a);--accent-soft: light-dark(#e6e7ea, #2a2c30)}:root[data-mode=group]{--accent: #0b7a6c;--accent-text: light-dark(#0a6f62, #4fd6c0);--accent-ink: #ffffff;--accent-soft: light-dark(#e0f4f0, #11382f);--info-bg: light-dark(#e3f4f1, #10302a);--info-line: light-dark(#a8d9d1, #226556);--info-ink: light-dark(#0b5f54, #8fe0cf)}@media (prefers-reduced-motion: reduce){:root{--t-fast: .01ms;--t-base: .01ms;--t-slow: .01ms}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.65rem;letter-spacing:-.02em}h2{font-size:1.02rem}h3{font-size:1rem}a{color:var(--accent-text);text-decoration:none}a:hover{text-decoration:underline}p{margin:0}.small{font-size:.85rem}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.strong{font-weight:600}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:20px 14px;border-right:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;gap:24px}.brand{display:flex;align-items:center;gap:10px;font-weight:650;font-size:1.02rem;padding:0 8px}.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--accent);color:#fff}.nav{display:flex;flex-direction:column;gap:2px}.nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:9px;color:var(--ink-2);font-weight:500}.nav a:hover{background:var(--hover);text-decoration:none}.nav a.active{background:var(--accent-soft);color:var(--accent-text)}.main{padding:28px 32px 64px;max-width:1160px;width:100%;display:flex;flex-direction:column;gap:18px}.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.page-head p{margin-top:4px;max-width:60ch}.head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.section-title{margin-top:8px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow);min-width:0}.card.flush{padding:0;overflow:hidden}.card-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.card-head.pad{padding:18px 20px 0}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.kpis.three{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi{display:flex;flex-direction:column;gap:4px}.kpi-label{color:var(--ink-2);font-size:.85rem;font-weight:500}.kpi-value{font-size:1.6rem;font-weight:650;letter-spacing:-.02em}.kpi-sub{color:var(--ink-3);font-size:.8rem}.two-col{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:start}.summary-strip{display:flex;gap:32px;flex-wrap:wrap;padding:14px 20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.summary-strip>div{display:flex;flex-direction:column}.summary-strip strong{font-size:1.15rem}.banner{display:flex;gap:12px;align-items:flex-start;padding:12px 16px;border-radius:10px;border:1px solid}.banner svg{flex:none;margin-top:2px}.banner.warn{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.banner.danger{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.banner.ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}.banner.info{background:var(--info-bg);border-color:var(--info-line);color:var(--info-ink)}.banner a{color:inherit;text-decoration:underline}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:9px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:inherit;font-weight:550;cursor:pointer;text-decoration:none;transition:background .12s,border-color .12s}.btn:hover{background:var(--hover);text-decoration:none}.btn:disabled{opacity:.55;cursor:default}.btn.primary:hover{filter:brightness(1.08);background:var(--accent)}.btn.primary-soft{background:var(--accent-soft);border-color:transparent;color:var(--accent-text)}.btn.paid{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}.btn.sm{padding:5px 10px;font-size:.85rem}.btn.icon{padding:7px}.btn.ghost{border-color:transparent;background:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--hover)}.btn.danger-hover:hover{color:var(--neg)}.btn:focus-visible,.chip:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:9px;padding:8px 10px;min-width:0;width:100%}input[type=checkbox]{width:auto;accent-color:var(--accent)}.color-input{padding:2px;height:38px;cursor:pointer}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field-label{font-size:.82rem;font-weight:600;color:var(--ink-2)}.field-hint{font-size:.78rem;color:var(--ink-3)}.form{display:flex;flex-direction:column;gap:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.form-actions.left{justify-content:flex-start}.check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.check input{margin-top:4px}.options{display:flex;flex-direction:column;gap:10px}.inline-select{display:flex;align-items:center;gap:8px;color:var(--ink-2);font-weight:500}.inline-select select{width:auto}.segmented{display:inline-flex;padding:3px;background:var(--surface-2);border-radius:10px;align-self:flex-start;gap:2px}.segmented button{border:0;background:transparent;color:var(--ink-2);font:inherit;font-weight:550;padding:6px 14px;border-radius:8px;cursor:pointer}.segmented button.active{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001f}.segmented button.active.income{color:var(--pos)}.segmented button.active.expense{color:var(--ink)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-2);border-radius:999px;padding:5px 13px;font:inherit;font-size:.88rem;font-weight:500;cursor:pointer}.chip:hover{background:var(--hover)}.chip.active{background:var(--accent-soft);border-color:transparent;color:var(--accent-text);font-weight:600}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.month-nav{display:flex;align-items:center;gap:4px}.month-label{min-width:150px;text-align:center;font-size:1.05rem}.tx-list{display:flex;flex-direction:column}.tx-row{display:grid;grid-template-columns:96px minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}.tx-row:last-child{border-bottom:0}.tx-row:hover{background:var(--hover)}.tx-row.skipped{opacity:.6}.tx-row.skipped .tx-title{text-decoration:line-through}.tx-row.rule{grid-template-columns:120px minmax(0,1fr) auto auto}.tx-row.compact{grid-template-columns:78px minmax(0,1fr) auto;grid-template-areas:"date main amount" "date main actions";gap:4px 12px;padding:12px 4px}.tx-row.compact .tx-date{grid-area:date}.tx-row.compact .tx-main{grid-area:main}.tx-row.compact .tx-amount{grid-area:amount}.tx-row.compact .tx-actions{grid-area:actions}.tx-row.compact:hover{background:transparent}.tx-date{display:flex;flex-direction:column;font-size:.9rem}.tx-date span{font-size:.78rem}.tx-main{display:flex;flex-direction:column;gap:2px;min-width:0}.tx-title{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:550}.tx-amount{font-weight:600;text-align:right}.tx-actions{display:flex;align-items:center;gap:4px;justify-content:flex-end}.cat{display:inline-flex;align-items:center;gap:7px;font-size:.85rem;color:var(--ink-2)}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}.dot.big{width:14px;height:14px}.badge{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;padding:1px 8px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.badge.danger{background:var(--danger-bg);color:var(--danger-ink)}.badge.accent{background:var(--accent-soft);color:var(--accent-text)}.bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}.bar-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:5px}.bar-track{height:8px;background:var(--surface-2);border-radius:4px}.bar-fill{height:100%;position:relative}.bar-rest,.bar-paid{position:absolute;inset:0 auto 0 0;border-radius:4px}.bar-rest{width:100%;opacity:.35}.plans{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:14px}.plan{display:flex;flex-direction:column;gap:12px}.plan .card-head{margin:0;align-items:flex-start}.plan-figures{display:grid;grid-template-columns:repeat(3,auto);justify-content:space-between;gap:8px}.plan-figures>div{display:flex;flex-direction:column}.progress{height:8px;background:var(--surface-2);border-radius:4px;overflow:hidden}.progress>div{height:100%;background:var(--series-3);border-radius:4px}.row-actions{display:flex;gap:2px}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;min-width:560px}.table th,.table td{padding:10px 18px;text-align:left;border-bottom:1px solid var(--line)}.table th{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);font-weight:600}.table .r{text-align:right}.table tr.current td{background:var(--accent-soft)}.neg-flag{color:var(--neg);margin-right:6px;vertical-align:-2px}.cat-list{list-style:none;margin:0 0 10px;padding:0}.cat-list li{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.cat-list li:last-child{border-bottom:0}.empty{padding:36px 20px;text-align:center;color:var(--ink-2)}.empty p{margin-top:4px;color:var(--ink-3)}.loading{padding:40px;text-align:center;color:var(--ink-3)}.legend{display:flex;gap:18px;flex-wrap:wrap;list-style:none;margin:0 0 8px;padding:0;font-size:.85rem;color:var(--ink-2)}.legend li{display:flex;align-items:center;gap:7px}.tooltip{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px 12px;min-width:220px;box-shadow:0 6px 24px #0000002e;font-size:.85rem}.tooltip strong{display:block;margin-bottom:6px}.tooltip-row{display:flex;justify-content:space-between;gap:16px;padding:2px 0;color:var(--ink-2)}.tooltip-row.total{margin-top:4px;padding-top:6px;border-top:1px solid var(--line);color:var(--ink);font-weight:600}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0a0a80;display:grid;place-items:start center;padding:6vh 16px 16px;overflow-y:auto;z-index:50}.modal{width:100%;max-width:540px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 22px 22px;box-shadow:0 20px 60px #00000059}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.toasts{position:fixed;right:20px;bottom:20px;display:flex;flex-direction:column;gap:8px;z-index:100}.toast{background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;box-shadow:0 6px 24px #00000040;max-width:360px}.toast.error{background:var(--neg);color:#fff}@media (max-width: 960px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}}@media (max-width: 820px){.app{grid-template-columns:1fr}.sidebar{position:fixed;inset:auto 0 0 0;height:auto;padding:0;z-index:40;border-right:0;border-top:1px solid var(--line)}.brand{display:none}.nav{flex-direction:row;justify-content:space-around}.nav a{flex-direction:column;gap:2px;padding:8px 4px;font-size:.68rem;flex:1;border-radius:0;align-items:center}.main{padding:20px 14px 96px}.tx-row,.tx-row.rule{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date amount" "main main" "actions actions";gap:6px 12px}.tx-date{grid-area:date;flex-direction:row;gap:8px;align-items:baseline}.tx-amount{grid-area:amount}.tx-main{grid-area:main}.tx-actions{grid-area:actions;justify-content:flex-start}.toasts{bottom:76px;right:14px;left:14px}}@media (max-width: 560px){.kpis,.kpis.three,.form-grid,.form-grid.three{grid-template-columns:1fr}.summary-strip{gap:20px}}.auth-page{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:28px 28px 24px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.auth-card h1{margin-top:10px}.auth-card>.muted{margin-bottom:8px}.auth-brand{display:flex;align-items:center;color:var(--ink);margin-bottom:6px}.auth-footer{margin-top:10px;text-align:center;color:var(--ink-2)}.auth-footer a{text-decoration:underline;text-underline-offset:3px}.auth-forgot{margin:-6px 0 2px;text-align:right;font-size:.875rem}.auth-forgot a{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}.auth-hint{margin-bottom:6px}.btn.wide{width:100%;padding:10px 14px;margin-top:4px}.google-btn{display:flex;justify-content:center;min-height:44px;width:100%;color-scheme:normal}.divider{display:flex;align-items:center;gap:12px;margin:12px 0 4px;color:var(--ink-3);font-size:.82rem}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--line)}.problems{margin:6px 0 0;padding-left:18px}.pw-wrap{position:relative}.pw-wrap input{padding-right:42px}.pw-toggle{position:absolute;top:0;right:0;height:100%;width:40px;display:grid;place-items:center;border:0;background:transparent;color:var(--ink-3);cursor:pointer;border-radius:0 9px 9px 0}.pw-toggle:hover{color:var(--ink)}.pw-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.pw-rules{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;font-size:.8rem;color:var(--ink-3)}.pw-rules li{display:flex;align-items:center;gap:6px}.pw-rules li svg{flex:none}.pw-rules li.ok{color:var(--pos)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.user-chip{margin-top:auto;display:flex;align-items:center;gap:10px;padding:10px 8px 0;border-top:1px solid var(--line)}.user-chip-text{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}.avatar{border-radius:50%;flex:none;object-fit:cover}.avatar.initials{display:inline-grid;place-items:center;background:var(--accent-soft);color:var(--accent-text);font-weight:650;font-size:.85rem}.account-id{display:flex;align-items:center;gap:14px;margin-bottom:8px}.account-sub{margin:16px 0 8px;font-size:.85rem;color:var(--ink-2);text-transform:uppercase;letter-spacing:.04em}.account-row{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.account-row .google-btn{width:auto;justify-content:flex-start}.account-form{max-width:460px}@media (max-width: 820px){.user-chip{display:none}}@media (max-width: 480px){.auth-card{padding:22px 18px 20px}.pw-rules{grid-template-columns:1fr}}.switcher{position:relative}.switcher-btn{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink);font:inherit;text-align:left;cursor:pointer}.switcher-btn:hover{background:var(--hover)}.switcher-btn.group{border-color:var(--accent);background:var(--accent-soft)}.switcher-icon{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:var(--surface);color:var(--ink-2);border:1px solid var(--line)}.switcher-icon.group,.switcher-btn.group .switcher-icon{background:var(--accent);color:#fff;border-color:transparent}.switcher-text{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}.switcher-text strong,.switcher-text .small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.switcher-menu{position:absolute;z-index:30;top:calc(100% + 6px);left:0;right:0;min-width:250px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #00000040;padding:6px;display:flex;flex-direction:column;gap:2px}.switcher-menu button{display:flex;align-items:center;gap:10px;padding:8px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}.switcher-menu button:hover,.switcher-menu button.active{background:var(--hover)}.switcher-manage{display:flex;align-items:center;gap:8px;padding:8px;margin-top:4px;border-top:1px solid var(--line);color:var(--accent-text);font-weight:550}.nav-icon{position:relative;display:inline-flex}.nav-badge{position:absolute;top:-6px;right:-9px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#c4302b;color:#fff;font-size:.68rem;font-weight:700;line-height:17px;text-align:center}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px}.sidebar-foot .user-chip{margin-top:0}.user-chip-link{display:flex;align-items:center;gap:10px;min-width:0;flex:1;color:inherit;border-radius:8px}.user-chip-link:hover{text-decoration:none;background:var(--hover)}.theme-toggle button{display:inline-flex;align-items:center;gap:6px}.theme-toggle.compact{align-self:stretch}.theme-toggle.compact button{flex:1;justify-content:center;padding:5px 8px}.mobile-top{display:none}.auth-theme{position:fixed;top:14px;right:14px}.group-ribbon{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:9px 14px;border-radius:10px;background:var(--accent-soft);border:1px solid var(--accent);color:var(--ink)}.group-ribbon .muted,.switcher-btn.group .muted{color:var(--ink-2)}.group-ribbon>svg{color:var(--accent-text)}.avatar-stack{display:inline-flex;align-items:center}.avatar-stack .avatar{box-shadow:0 0 0 2px var(--surface)}.avatar-stack .avatar+.avatar{margin-left:-7px}.avatar.more{background:var(--surface-2);color:var(--ink-2);font-size:.68rem;margin-left:-7px}.person{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.person:last-child{border-bottom:0}.person-text{display:flex;flex-direction:column;min-width:140px;flex:1;line-height:1.3}.person-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.relation-select{display:inline-flex;width:auto}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}.tabs button{display:inline-flex;align-items:center;gap:7px;padding:10px 14px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--ink-2);font:inherit;font-weight:550;cursor:pointer;white-space:nowrap;margin-bottom:-1px}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--accent-text);border-bottom-color:var(--accent)}.tab-badge{min-width:18px;padding:0 5px;border-radius:999px;background:#c4302b;color:#fff;font-size:.7rem;font-weight:700;line-height:18px;text-align:center}.card.highlight{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.card.intro{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.card.intro p{max-width:62ch;margin-top:4px}.find-form{display:flex;gap:10px}.search-input{position:relative;flex:1;display:flex;align-items:center}.search-input svg{position:absolute;left:11px;color:var(--ink-3)}.search-input input{padding-left:34px}.find-result{margin-top:12px}.group-card.current{border-color:var(--accent)}.members{margin-bottom:4px}.invite-row{display:flex;gap:10px;margin:10px 0 4px}.group-foot{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.btn.danger-outline{color:var(--neg);border-color:var(--danger-line)}.btn.danger-outline:hover{background:var(--danger-bg)}.check.pick{align-items:center;padding:5px 8px;border-radius:8px}.check.pick input{margin-top:0}.check.pick.on,.check.pick:hover{background:var(--hover)}.check.disabled{opacity:.55;cursor:default}.split-box,.end-box{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--surface-2)}.end-summary{margin:0}.debt-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px}.debt-after{margin:0 0 12px}.pick-list{display:flex;flex-direction:column;max-height:190px;overflow-y:auto}.split-detail{display:flex;flex-direction:column;gap:8px}.split-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.split-row input{width:130px;text-align:right}.split-row.total{padding-top:8px;border-top:1px dashed var(--line)}.split-row.bad strong{color:var(--neg)}.tx-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px 14px}.who{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--ink-2)}.who .avatar{vertical-align:middle}.tx-row.shared{grid-template-columns:96px minmax(0,1fr) auto auto}.tx-row.shared .tx-amount{display:flex;flex-direction:column;align-items:flex-end}.members-bars{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px 28px}.member-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.member-bar{display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:10px;margin-top:6px}.bar-solid{height:100%;border-radius:4px;min-width:2px}.bar-solid.income{background:var(--series-1)}.bar-solid.expense{background:var(--series-2)}.prefixed{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;background:var(--surface);padding-left:10px}.prefixed:focus-within{outline:2px solid var(--accent);outline-offset:2px}.prefixed span{color:var(--ink-3)}.prefixed input{border:0;outline:0;background:transparent}.share-box{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}.share-main{flex:1;min-width:260px}.share-link{display:flex;gap:8px;flex-wrap:wrap}.share-link input{flex:1;min-width:200px}.qr{width:168px;height:168px;background:#fff;border-radius:10px;padding:4px;flex:none}.qr svg{display:block;width:100%;height:100%}.profile-card{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:36px 20px;max-width:480px;margin:0 auto;width:100%}.profile-actions{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:8px}@media (max-width: 820px){.app{grid-template-columns:minmax(0,1fr)}.tabs{scrollbar-width:none}.sidebar .switcher,.sidebar-foot{display:none}.mobile-top{display:flex;align-items:center;gap:10px}.mobile-top .switcher{flex:1;min-width:0}.mobile-top .theme-toggle{align-self:auto;flex:none}.mobile-top .theme-toggle.compact button{flex:none}.nav a{font-size:.6rem;min-width:0}.nav a>span:last-child{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.find-form,.invite-row{flex-direction:column}.tx-row.shared{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"date amount" "main main" "actions actions"}.tx-row.shared .tx-date{grid-area:date}.tx-row.shared .tx-main{grid-area:main}.tx-row.shared .tx-amount{grid-area:amount}.tx-row.shared .tx-actions{grid-area:actions}.switcher-menu{min-width:0;right:auto;width:min(320px,calc(100vw - 28px))}}@media (max-width: 560px){.member-bar{grid-template-columns:52px 1fr auto}}.tx-row.purchase-only .tx-amount{color:var(--ink-2)}.tx-row.purchase-only{border-left:3px dashed var(--line-strong)}.counts-on{font-weight:550;color:var(--accent-text)}.table .right{text-align:right}.err-text{color:var(--danger-ink)}.mobile-bell{position:relative;display:inline-flex;flex:none;padding:6px;border-radius:9px;color:var(--ink-2)}.mobile-bell:hover{background:var(--hover)}.mobile-bell .nav-badge{top:-2px;right:-4px}@media (max-width: 820px){.nav a.desktop-only{display:none}}.count-badge{min-width:20px;padding:0 6px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:.72rem;font-weight:700;line-height:20px;text-align:center}.notif-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.notif{display:flex;gap:14px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}.notif.unread{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent-soft) 45%,var(--surface))}.notif-icon{flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--accent-soft);color:var(--accent-text)}.notif-icon.danger{background:var(--danger-bg);color:var(--danger-ink)}.notif-icon.warn{background:var(--warn-bg);color:var(--warn-ink)}.notif-icon.info{background:var(--info-bg);color:var(--info-ink)}.notif-main{min-width:0;flex:1}.notif-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.unread-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);align-self:center;flex:none}.notif-body{margin:4px 0 6px;color:var(--ink-2);overflow-wrap:anywhere}.notif-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}.alerts-table{min-width:640px}.alerts-table td{vertical-align:middle}.alerts-table .tx-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.rule-list{list-style:none;margin:0;padding:0}.rule-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.rule-list li:last-child{border-bottom:0}.rule-list li>span:first-child{min-width:0;flex:1;overflow-wrap:anywhere}.check.inline{margin:0}.toggle-list,.fieldset{display:flex;flex-direction:column;gap:10px}.fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 14px 12px;margin:4px 0 0}.fieldset legend{padding:0 6px;font-size:.82rem;font-weight:600;color:var(--ink-2)}.pause-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}.pause-custom{display:inline-flex;gap:8px;align-items:center}.card .banner+.pause-row{margin-top:12px}.banner .btn{margin-left:auto;flex:none}.email-status{margin:4px 0 12px;font-size:.9rem}.email-status p{margin:0 0 8px;display:flex;gap:8px;align-items:flex-start}.email-status p svg{flex:none;margin-top:2px}.email-status.ok{color:var(--ok-ink);display:flex;gap:8px}.email-status.ok svg{flex:none;margin-top:2px}.email-status.pending{padding:10px 12px;border:1px solid var(--warn-line);background:var(--warn-bg);color:var(--warn-ink);border-radius:10px}.email-status.pending .field-hint{color:var(--warn-ink);margin:8px 0 0}.email-status.pending a{color:inherit;text-decoration:underline}.alert-bell.off{color:var(--ink-3)}.alert-picker .field-hint{max-width:46ch}.cat-list li{grid-template-columns:minmax(0,1fr) auto auto auto}.cat-alert{display:inline-flex;max-width:170px}@media (max-width: 560px){.cat-list li{grid-template-columns:minmax(0,1fr) auto}.cat-list li .muted.small{display:none}}.receipt-section{display:flex;flex-direction:column;gap:6px}.receipts{display:flex;flex-direction:column;gap:8px}.receipt-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.receipt-list li{display:flex;align-items:center;gap:10px;padding:6px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}.receipt-open{flex:none;display:inline-flex}.receipt-thumb{width:44px;height:44px;border-radius:8px;object-fit:cover;background:var(--surface);border:1px solid var(--line)}.receipt-thumb.file{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-2);gap:0}.receipt-thumb.file small{font-size:.6rem;font-weight:700;line-height:1}.receipt-info{min-width:0;flex:1;display:flex;flex-direction:column}.receipt-info a,.receipt-info>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.receipt-chip{display:inline-flex;align-items:center;gap:3px;padding:1px 8px;border:0;border-radius:999px;background:var(--surface-2);color:var(--ink-2);font:inherit;font-size:.72rem;font-weight:600;cursor:pointer}.receipt-chip:hover{background:var(--hover);color:var(--ink)}.avatar-editor{display:flex;gap:16px;align-items:center}.avatar-editor-body{min-width:0}.avatar-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}@media (max-width: 480px){.avatar-editor{flex-direction:column;align-items:flex-start}.notif{padding:12px;gap:10px}}body{font-family:var(--font-sans);font-size:var(--fs-4);line-height:var(--lh-body);font-feature-settings:"ss01","cv11";text-rendering:optimizeLegibility}h1{font-size:var(--fs-6);font-weight:600;letter-spacing:-.022em;line-height:var(--lh-tight)}h2{font-size:var(--fs-4);font-weight:600;letter-spacing:-.01em}h3{font-size:var(--fs-3);font-weight:600}::selection{background:color-mix(in srgb,var(--accent) 28%,transparent)}code{font-family:var(--font-mono);font-size:.9em;padding:1px 5px;border-radius:var(--r-1);background:var(--surface-2)}.num{font-family:var(--font-mono);font-feature-settings:"tnum","zero";letter-spacing:-.02em;font-weight:500}.eyebrow{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.muted{color:var(--ink-3)}.small{font-size:var(--fs-2)}.btn{min-height:34px;padding:6px 13px;border-radius:var(--r-2);font-size:var(--fs-3);font-weight:550;border-color:var(--line-strong);background:var(--surface);transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.btn:hover{background:var(--hover);border-color:color-mix(in srgb,var(--ink-3) 55%,var(--line))}.btn:active:not(:disabled){transform:translateY(1px)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:color-mix(in srgb,var(--accent) 86%,#000);border-color:color-mix(in srgb,var(--accent) 86%,#000);filter:none}.btn.primary-soft{background:var(--accent-soft);color:var(--accent-text);border-color:transparent}.btn.primary-soft:hover{background:color-mix(in srgb,var(--accent-soft) 80%,var(--accent))}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-2)}.btn.ghost:hover{background:var(--hover);color:var(--ink)}.btn.sm{min-height:28px;padding:3px 10px;font-size:var(--fs-2);border-radius:var(--r-1)}.btn.icon{min-height:0;padding:6px}.btn.icon.sm{padding:4px}.btn svg{transition:transform var(--t-base) var(--ease)}.btn.icon:hover svg{transform:scale(1.1)}.btn.block{width:100%}input,select,textarea{font-family:inherit;font-size:var(--fs-3);border-radius:var(--r-2);border-color:var(--line-strong);background:var(--surface);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}input:hover:not(:disabled):not([type=checkbox]):not([type=radio]),select:hover:not(:disabled){border-color:color-mix(in srgb,var(--ink-3) 60%,var(--line))}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 30%,transparent);outline-offset:0}input[type=radio]{width:auto;accent-color:var(--accent);margin-top:3px}input[type=checkbox]{accent-color:var(--accent)}input:disabled,select:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed}button:focus-visible,[role=switch]:focus-visible,[role=tab]:focus-visible,[tabindex]:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-1)}.field-label{font-size:var(--fs-2);font-weight:600;color:var(--ink-2)}.field-hint{font-size:var(--fs-1)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:var(--card-pad);box-shadow:var(--shadow-raised)}.card-head h2{font-size:var(--fs-4)}.card-head a,.card-head .link{font-size:var(--fs-2);font-weight:550}.banner{border-radius:var(--r-2);padding:10px 14px;font-size:var(--fs-3)}.tabs{gap:var(--s-1)}.tabs button{font-size:var(--fs-3);padding:9px 13px;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.tabs button:hover{background:color-mix(in srgb,var(--hover) 60%,transparent);border-radius:var(--r-1) var(--r-1) 0 0}.tabs button svg{transition:transform var(--t-base) var(--ease)}.tabs button:hover svg{transform:scale(1.12)}.tab-panel{display:flex;flex-direction:column;gap:var(--s-4);animation:fade-in var(--t-base) var(--ease)}.segmented{border-radius:var(--r-2);background:var(--surface-2)}.segmented button{border-radius:var(--r-1);font-size:var(--fs-3);transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.segmented button:hover:not(.active){color:var(--ink)}.segmented button.active{box-shadow:0 0 0 1px var(--line),0 1px 2px #0000000f}.chip{border-radius:var(--r-1);font-size:var(--fs-2);padding:4px 11px;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.chip.active{border:1px solid color-mix(in srgb,var(--accent) 35%,transparent)}.badge{border-radius:var(--r-1);font-size:.6875rem;letter-spacing:.01em;padding:1px 7px}.backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--t-base) var(--ease)}.modal{background:var(--surface);border-radius:var(--r-3);box-shadow:var(--shadow-float);animation:pop-in var(--t-base) var(--ease)}.modal-head h2{font-size:var(--fs-5);letter-spacing:-.015em}.toasts{z-index:120}.toast{display:flex;align-items:center;gap:var(--s-2);border-radius:var(--r-2);font-size:var(--fs-3);box-shadow:var(--shadow-float);animation:toast-in var(--t-base) var(--ease)}.toast.error{background:#b3261e;color:#fff}.table th{font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.06em}.table tbody tr{transition:background var(--t-fast) var(--ease)}.table tbody tr:hover{background:var(--hover)}.tx-row{padding:var(--row-pad) 18px;transition:background var(--t-fast) var(--ease)}.tx-title{font-size:var(--fs-4)}.tx-amount{font-family:var(--font-mono);font-feature-settings:"tnum";letter-spacing:-.02em}.tx-row.compact{padding:var(--row-pad) 6px}.tx-row.skipped{opacity:1}.tx-row.skipped .tx-title,.tx-row.skipped .tx-amount,.tx-row.skipped .tx-date strong{color:var(--ink-3)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(-4px) scale(.985)}}@keyframes rise-in{0%{opacity:0;transform:translateY(6px)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}@keyframes grow-x{0%{transform:scaleX(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes shimmer{to{background-position:-200% 0}}@keyframes ring{0%,to{transform:rotate(0)}20%{transform:rotate(14deg)}40%{transform:rotate(-12deg)}60%{transform:rotate(8deg)}80%{transform:rotate(-4deg)}}@keyframes pulse-ring{0%{box-shadow:0 0 color-mix(in srgb,var(--pos) 55%,transparent)}to{box-shadow:0 0 0 6px transparent}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.section{display:flex;flex-direction:column;gap:var(--s-3);min-width:0}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-3);padding-bottom:var(--s-2);border-bottom:1px solid var(--line-strong)}.section-head h2{font-size:var(--fs-4)}.section-head .eyebrow{margin-bottom:2px}.section-actions{display:flex;align-items:center;gap:var(--s-1);flex:none}.section-toggle{display:inline-flex;align-items:center;gap:var(--s-2);padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer;text-align:left}.section-toggle svg{transition:transform var(--t-base) var(--ease);color:var(--ink-3)}.section-toggle[aria-expanded=false] svg{transform:rotate(-90deg)}.section-collapse{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--t-slow) var(--ease)}.section-collapse>div{overflow:hidden;min-height:0}.section-collapse.closed{grid-template-rows:0fr}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2);padding:var(--card-pad);min-width:0}.badge.tone-pos{background:var(--ok-bg);color:var(--ok-ink)}.badge.tone-neg,.badge.danger{background:var(--danger-bg);color:var(--danger-ink)}.badge.tone-warn{background:var(--warn-bg);color:var(--warn-ink)}.badge.tone-forecast{background:color-mix(in srgb,var(--forecast) 14%,var(--surface));color:var(--forecast)}.badge.tone-signal{background:var(--signal-soft);color:var(--signal)}.badge.ok{background:var(--ok-bg);color:var(--ok-ink)}.badge.card{background:var(--accent-soft);color:var(--accent-text)}.kbd{display:inline-block;min-width:20px;padding:1px 5px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:var(--r-1);background:var(--surface);color:var(--ink-2);font-family:var(--font-mono);font-size:.6875rem;line-height:1.4;text-align:center}.tip-wrap{position:relative;display:inline-flex}.tip{position:absolute;z-index:90;padding:4px 8px;border-radius:var(--r-1);background:var(--ink);color:var(--bg);font-size:var(--fs-1);font-weight:500;white-space:nowrap;pointer-events:none;opacity:0;transform:scale(.96);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.tip-wrap:hover>.tip,.tip-wrap:focus-within>.tip{opacity:1;transform:none;transition-delay:.35s}.tip-top>.tip{bottom:calc(100% + 6px);left:50%;translate:-50% 0}.tip-bottom>.tip{top:calc(100% + 6px);left:50%;translate:-50% 0}.tip-right>.tip{left:calc(100% + 8px);top:50%;translate:0 -50%}.menu-root{position:relative;display:inline-flex}.menu{position:absolute;z-index:80;min-width:220px;padding:var(--s-1);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-float);animation:pop-in var(--t-base) var(--ease)}.menu-bottom{top:calc(100% + 6px)}.menu-top{bottom:calc(100% + 6px)}.menu-end{right:0;transform-origin:top right}.menu-start{left:0;transform-origin:top left}.menu-item{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:7px 10px;border:0;border-radius:var(--r-1);background:none;color:var(--ink);font:inherit;font-size:var(--fs-3);text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease)}.menu-item svg{color:var(--ink-3);flex:none;transition:color var(--t-fast) var(--ease),transform var(--t-base) var(--ease)}.menu-item:hover,.menu-item:focus-visible{background:var(--hover);outline:none}.menu-item:hover svg,.menu-item:focus-visible svg{color:var(--ink);transform:scale(1.08)}.menu-item.danger,.menu-item.danger svg{color:var(--neg)}.menu-item:disabled{opacity:.5;cursor:not-allowed}.menu-item-text{flex:1;min-width:0}.menu-label{padding:8px 10px 4px}.menu-sep{height:1px;margin:var(--s-1) 0;background:var(--line)}.sheet-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:var(--scrim);animation:fade-in var(--t-base) var(--ease)}.sheet{position:absolute;display:flex;flex-direction:column;background:var(--surface);box-shadow:var(--shadow-float)}.sheet-side{top:0;right:0;bottom:0;max-width:100vw;border-left:1px solid var(--line);animation:sheet-in-right var(--t-slow) var(--ease)}.sheet-bottom{left:0;right:0;bottom:0;max-height:88vh;border-radius:var(--r-3) var(--r-3) 0 0;border-top:1px solid var(--line);animation:sheet-in-bottom var(--t-slow) var(--ease)}.sheet-grip{align-self:center;width:36px;height:4px;margin-top:8px;border-radius:2px;background:var(--line-strong)}.sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-3);padding:var(--s-4) var(--s-4) var(--s-3);border-bottom:1px solid var(--line)}.sheet-head h2{font-size:var(--fs-5);letter-spacing:-.015em}.sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.sheet-foot{padding:var(--s-3) var(--s-4);border-top:1px solid var(--line)}@keyframes sheet-in-right{0%{transform:translate(24px);opacity:0}}@keyframes sheet-in-bottom{0%{transform:translateY(28px);opacity:0}}.switch{position:relative;flex:none;width:38px;height:22px;padding:0;border:0;border-radius:999px;background:var(--ink-3);cursor:pointer;transition:background var(--t-base) var(--ease)}.switch:hover:not(:disabled){background:color-mix(in srgb,var(--ink-3) 80%,var(--ink))}.switch[aria-checked=true]{background:var(--accent)}.switch[aria-checked=true]:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 86%,#000)}.switch:disabled{opacity:.45;cursor:not-allowed}.switch-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--accent-ink, #fff);box-shadow:0 1px 2px #0000004d;transition:transform var(--t-base) var(--ease)}.switch:not([aria-checked=true]) .switch-thumb{background:#fff}.switch[aria-checked=true] .switch-thumb{transform:translate(16px)}.skeleton{display:block;max-width:100%;background:linear-gradient(90deg,var(--surface-2) 25%,var(--hover) 50%,var(--surface-2) 75%);background-size:200% 100%;border-radius:var(--r-1);animation:shimmer 1.4s linear infinite}.spinner{display:inline-block;width:16px;height:16px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}.loading{display:flex;align-items:center;justify-content:center;gap:var(--s-3);padding:var(--s-7) 0;color:var(--ink-3)}.state,.empty{display:flex;flex-direction:column;align-items:center;gap:var(--s-1);padding:var(--s-6) var(--s-4);text-align:center}.state.compact{padding:var(--s-4) var(--s-3)}.state p,.empty p{max-width:46ch}.state-art{width:96px;height:72px;margin-bottom:var(--s-2);color:var(--ink-3)}.state.compact .state-art{width:72px;height:54px}.state-art svg{width:100%;height:100%}.art-line{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.art-line.soft{opacity:.4}.art-line.danger{stroke:var(--neg)}.art-fill{fill:var(--surface-2);stroke:var(--line-strong);stroke-width:1.5}.art-dot{fill:var(--accent)}.art-check{fill:none;stroke:var(--accent-ink);stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}.state-icon,.empty-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:var(--s-2);border-radius:50%;background:var(--surface-2);color:var(--ink-2)}.state-action{margin-top:var(--s-3);display:flex;gap:var(--s-2);flex-wrap:wrap;justify-content:center}.offline-banner{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:var(--s-2);padding:8px var(--s-4);background:var(--warn-bg);border-bottom:1px solid var(--warn-line);color:var(--warn-ink);font-size:var(--fs-2)}.avatar{border-radius:50%;flex:none;object-fit:cover;transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}.avatar.initials{display:inline-grid;place-items:center;font-weight:600;letter-spacing:.01em;background:var(--accent-soft);color:var(--accent-text)}.avatar.initials.tone-0{background:light-dark(#dbeafe,#1e3a8a);color:light-dark(#1e3a8a,#dbeafe)}.avatar.initials.tone-1{background:light-dark(#dcfce7,#14532d);color:light-dark(#14532d,#bbf7d0)}.avatar.initials.tone-2{background:light-dark(#fef3c7,#713f12);color:light-dark(#78350f,#fde68a)}.avatar.initials.tone-3{background:light-dark(#fce7f3,#831843);color:light-dark(#831843,#fbcfe8)}.avatar.initials.tone-4{background:light-dark(#ede9fe,#4c1d95);color:light-dark(#4c1d95,#ddd6fe)}.avatar.initials.tone-5{background:light-dark(#ffedd5,#7c2d12);color:light-dark(#7c2d12,#fed7aa)}.avatar.initials.tone-6{background:light-dark(#cffafe,#164e63);color:light-dark(#164e63,#a5f3fc)}.avatar.initials.tone-7{background:light-dark(#e5e7eb,#374151);color:light-dark(#1f2937,#e5e7eb)}.avatar-wrap{position:relative;display:inline-flex;flex:none;border-radius:50%}a:hover>.avatar-wrap>.avatar,button:hover>.avatar-wrap>.avatar,.avatar-wrap:hover>.avatar{transform:scale(1.06);box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--accent)}.presence{position:absolute;right:-1px;bottom:-1px;width:28%;min-width:8px;height:28%;min-height:8px;border-radius:50%;background:var(--pos);box-shadow:0 0 0 2px var(--surface)}.presence.online{animation:pulse-ring 2.4s ease-out 1}.presence.away{background:var(--ink-3)}.avatar-stack .avatar{transition:transform var(--t-base) var(--ease),box-shadow var(--t-base) var(--ease)}.avatar-stack .avatar:hover{transform:translateY(-2px) scale(1.08);z-index:1}.pref-stack{display:flex;flex-direction:column;gap:var(--s-4)}.pref-section{padding:var(--s-4) var(--s-5)}.pref-head{margin-bottom:var(--s-2)}.pref-head p{margin-top:2px;max-width:62ch}.pref-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-5);padding:var(--s-3) 0;border-top:1px solid var(--line)}.pref-head+.pref-row,.pref-head+.banner+.pref-row{border-top:0}.pref-text{display:flex;flex-direction:column;gap:2px;min-width:0}.pref-text>span:first-child{font-weight:550}.pref-control{flex:none}.pref-section>.banner{margin:var(--s-2) 0}.pref-matrix-head,.pref-matrix-row{display:grid;grid-template-columns:minmax(0,1fr) 84px 84px;align-items:center;gap:var(--s-2)}.pref-matrix-head{padding:var(--s-2) 0;border-bottom:1px solid var(--line-strong);color:var(--ink-3);font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.06em;text-transform:uppercase}.pref-matrix-head span:not(:first-child){text-align:center}.pref-group-title{padding:var(--s-4) 0 var(--s-1);color:var(--ink-2);font-size:var(--fs-2);font-weight:600}.pref-matrix-row{padding:9px 0;border-top:1px solid var(--line)}.pref-group-title+.pref-matrix-row{border-top:0}.pref-cell{display:flex;justify-content:center}.pref-foot{display:flex;align-items:center;gap:6px;margin-top:var(--s-3)}.pref-indent{display:flex;flex-direction:column;gap:var(--s-3);margin:2px 0 6px;padding-left:var(--s-4);border-left:2px solid var(--line)}.pref-indent>.btn{align-self:flex-start}.stepper{display:inline-flex;align-items:center;gap:var(--s-2)}.stepper input{width:74px}@media (max-width: 560px){.pref-matrix-head,.pref-matrix-row{grid-template-columns:minmax(0,1fr) 62px 62px}.pref-row{align-items:flex-start}.pref-indent{padding-left:var(--s-3)}}.month-picker-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:6px 12px;border:1px solid transparent;border-radius:var(--r-2);background:none;color:var(--ink);font:inherit;font-weight:600;cursor:pointer;transition:background var(--t-base) var(--ease),border-color var(--t-base) var(--ease)}.month-picker-btn:hover,.month-picker-btn[aria-expanded=true]{background:var(--hover);border-color:var(--line-strong)}.month-picker-btn svg:first-child{color:var(--ink-3)}.month-picker-btn.month-label{min-width:170px}.month-pop{position:fixed;z-index:115;top:var(--pop-top, 0);left:var(--pop-left, 0);width:296px;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-3, 14px);background:var(--surface);box-shadow:var(--pop);animation:rise-in var(--t-base) var(--ease) both}.month-cal{display:flex;flex-direction:column;gap:var(--s-2)}.month-cal-head{display:flex;align-items:center;justify-content:space-between}.month-cal-year{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:.04em}.month-cal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.month-cal-cell{min-height:42px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface);color:var(--ink);font:inherit;font-weight:550;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.month-cal-cell:hover:not(.off){background:var(--hover);border-color:var(--line-strong)}.month-cal-cell.now{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.month-cal-cell.selected{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.month-cal-cell.off{background:transparent;border-style:dashed;color:var(--ink-3);text-decoration:line-through;cursor:not-allowed}.month-cal-foot{display:flex;justify-content:center}@media (max-width: 520px){.month-pop{top:auto;left:8px;right:8px;bottom:8px;width:auto;padding:var(--s-4)}.month-cal-cell{min-height:46px}}.card-box .month-cal{max-width:320px}@media (prefers-reduced-motion: reduce){.month-pop{animation:none}}.date-btn.empty .filter-btn-text{color:var(--ink-3)}.date-pop{position:fixed;z-index:115;top:var(--pop-top, 0);left:var(--pop-left, 0);width:268px;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-3, 14px);background:var(--surface);box-shadow:var(--pop);animation:rise-in var(--t-base) var(--ease) both}.date-head{display:grid;grid-template-columns:32px 1fr 32px;align-items:center;gap:var(--s-1);margin-bottom:var(--s-2)}.date-head .btn.icon{width:32px;height:32px;min-height:0;padding:0}.date-title{justify-self:center;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:0;border-radius:999px;background:none;color:var(--ink);font:inherit;font-size:var(--fs-3);font-weight:650;cursor:pointer;transition:background var(--t-fast) var(--ease)}.date-title:hover,.date-title[aria-expanded=true]{background:var(--hover)}.date-title svg{color:var(--ink-3);transition:transform var(--t-base) var(--ease)}.date-title[aria-expanded=true] svg{transform:rotate(180deg)}.date-week,.date-grid{display:grid;grid-template-columns:repeat(7,1fr)}.date-week{margin-bottom:var(--s-1)}.date-week span{text-align:center;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.date-grid{gap:2px}.date-cell{display:grid;place-items:center;height:33px;border:0;border-radius:var(--r-1, 6px);background:transparent;color:var(--ink);font:inherit;font-size:var(--fs-2);font-variant-numeric:tabular-nums;cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.date-cell:hover:not(.off):not(.selected){background:var(--hover)}.date-cell.outside{color:var(--ink-3)}.date-cell.today{font-weight:700;color:var(--accent-text);box-shadow:inset 0 0 0 1.5px var(--accent)}.date-cell.selected{background:var(--accent);color:var(--accent-ink);font-weight:700;box-shadow:none}.date-cell.off{color:var(--ink-3);text-decoration:line-through;cursor:not-allowed}.date-foot{display:flex;justify-content:flex-end;margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid var(--line)}.date-pop .month-cal-head{display:none}@media (max-width: 520px){.date-pop{top:auto;left:8px;right:8px;bottom:8px;width:auto}.date-cell{height:42px;font-size:var(--fs-3)}}@media (prefers-reduced-motion: reduce){.date-pop{animation:none}.date-title svg{transition:none}}.date-pop .month-cal-cell{min-height:36px}.filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.search-box{position:relative;flex:1 1 200px;min-width:170px}.search-box>svg{position:absolute;top:50%;left:12px;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.search-box input{min-height:40px;padding:8px 38px;border-radius:var(--r-2);border:1px solid var(--line-strong)}.search-box input::-webkit-search-cancel-button{display:none}.search-box .search-clear{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.filter-btn{display:inline-flex;align-items:center;gap:8px;min-height:40px;max-width:100%;padding:6px 10px 6px 12px;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);color:var(--ink);font:inherit;font-size:var(--fs-3);cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.filter-btn:hover,.filter-btn[aria-expanded=true]{background:var(--hover);border-color:color-mix(in srgb,var(--ink-3) 60%,var(--line))}.filter-btn>svg{color:var(--ink-3);flex:none}.filter-btn-text{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-btn.active{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent-text);font-weight:600}.filter-btn.active>svg{color:currentColor}.filters-clear{margin-left:auto}.filter-pop{position:fixed;z-index:115;top:var(--pop-top, auto);bottom:var(--pop-bottom, auto);left:var(--pop-left, 0);width:var(--pop-width, 260px);max-height:var(--pop-max, 420px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line-strong);border-radius:var(--r-3);background:var(--surface);box-shadow:var(--pop);animation:rise-in var(--t-base) var(--ease) both}.filter-search{position:relative;flex:none;padding:var(--s-2);border-bottom:1px solid var(--line)}.filter-search>svg{position:absolute;top:50%;left:20px;transform:translateY(-50%);color:var(--ink-3);pointer-events:none}.filter-search input{padding:8px 10px 8px 32px;min-height:38px}.filter-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:var(--s-1)}.filter-list:focus-visible{outline:none}.filter-group{padding:8px 10px 4px;color:var(--ink-3);font-size:var(--fs-1, .72rem);font-weight:600;letter-spacing:.06em;text-transform:uppercase}.filter-opt{display:flex;align-items:center;gap:10px;min-height:36px;padding:6px 10px;border-radius:var(--r-1, 8px);cursor:pointer}.filter-opt .dot{width:10px;height:10px}.filter-opt-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-opt>svg:last-child{color:var(--accent-text);flex:none}.filter-opt.hi{background:var(--hover)}.filter-opt.chosen{font-weight:600}.filter-none{padding:var(--s-4) var(--s-3);color:var(--ink-2);text-align:center}@media (max-width: 520px){.filters .search-box{flex-basis:100%}.filters .filter-btn{flex:1 1 calc(50% - var(--s-2));justify-content:space-between}.filter-pop{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-height:70vh}.filter-opt{min-height:44px}}@media (prefers-reduced-motion: reduce){.filter-pop{animation:none}}.filter-btn.as-field{display:flex;width:100%;min-height:42px;padding:8px 10px 8px 12px;border-color:var(--line-strong)}.filter-btn.as-field:hover,.filter-btn.as-field[aria-expanded=true]{background:var(--surface)}.filter-btn.as-inline{min-height:34px;padding:4px 8px 4px 10px;font-size:var(--fs-2)}.filter-btn.as-field:disabled,.filter-btn.as-inline:disabled{background:var(--surface-2);color:var(--ink-3);cursor:not-allowed}.filter-btn.as-field .dot,.filter-btn.as-inline .dot{flex:none}.look-ahead{gap:var(--s-3)}.est-card{display:flex;flex-direction:column;gap:0;padding:0}.est-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--s-5)}.est-row+.est-row{border-top:1px solid var(--line)}.est-row p{margin:2px 0 0;max-width:72ch}.debt-progress{display:flex;align-items:center;gap:var(--s-3)}.debt-progress .progress{flex:1}.debt-pct{min-width:5.5em;text-align:right;color:var(--ink-2);font-size:var(--fs-2)}.progress{height:10px;background:color-mix(in srgb,var(--line-strong) 55%,transparent);border-radius:5px}.progress>div{border-radius:5px;min-width:0;transition:width var(--t-slow, .4s) var(--ease)}.debt .who{display:inline-flex;align-items:center;gap:4px;vertical-align:middle}.timeline-wrap{margin:var(--s-3) 0}.timeline-wrap>summary{cursor:pointer;font-size:var(--fs-2);font-weight:600;color:var(--ink);padding:var(--s-1) 0}.timeline{list-style:none;margin:var(--s-3) 0 0;padding:0}.tl-step{--mark: 18px;position:relative;display:flex;gap:var(--s-3);padding-bottom:var(--s-4)}.tl-step:last-child{padding-bottom:0}.tl-step:before{content:"";position:absolute;left:calc(var(--mark) / 2 - 1px);top:var(--mark);bottom:0;width:2px;background:var(--line-strong)}.tl-step:last-child:before{display:none}.tl-step.paid:before{background:var(--pos)}.tl-mark{flex:none;box-sizing:border-box;width:var(--mark);height:var(--mark);border-radius:50%;border:2px solid var(--ink-3);background:var(--surface);display:grid;place-items:center;color:var(--surface)}.tl-step.paid .tl-mark{background:var(--pos);border-color:var(--pos)}.tl-step.next .tl-mark{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.tl-step.overdue .tl-mark{border-color:var(--neg);box-shadow:0 0 0 3px var(--danger-bg)}.tl-step.open .tl-mark{border-style:dashed}.tl-step.end .tl-mark{border-color:var(--pos)}.tl-body{flex:1;display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px var(--s-3);line-height:var(--lh-tight)}.tl-title{color:var(--ink)}.tl-word{color:var(--ink-3);font-size:var(--fs-2)}.tl-step.overdue .tl-word{color:var(--danger-ink)}.tl-step.later .tl-title,.tl-step.open .tl-title{color:var(--ink-2)}@media (prefers-reduced-motion: no-preference){.tl-mark{transition:background var(--t-base, .2s) var(--ease),box-shadow var(--t-base, .2s) var(--ease)}}@media (max-width: 520px){.est-row{padding:var(--s-3) var(--s-4)}}.debt-sides{margin:0 0 16px}.segmented button .seg-count{display:inline-block;min-width:20px;margin-left:8px;padding:1px 6px;border-radius:999px;background:var(--line);color:var(--ink-2);font-size:.75rem;font-weight:650;line-height:1.35;text-align:center;font-variant-numeric:tabular-nums}.segmented button.active .seg-count{background:var(--accent-soft);color:var(--accent-text)}.tx-row.is-overdue{box-shadow:inset 3px 0 0 var(--neg)}.tx-row.is-paid{box-shadow:inset 3px 0 0 var(--pos)}.tx-row.is-paid .tx-title,.tx-row.is-paid .tx-date strong,.tx-row.is-paid .tx-amount:not(.pos){color:var(--ink-2)}@media (hover: hover) and (pointer: fine){.tx-row:not(.compact) .tx-actions>.btn.icon{opacity:.55;transition:opacity var(--t-fast) var(--ease)}.tx-row:hover .tx-actions>.btn.icon,.tx-row:focus-within .tx-actions>.btn.icon{opacity:1}}.rule-share{display:flex;align-items:center;gap:var(--s-3);margin-top:2px}.rule-bar{flex:none;width:72px;height:6px;border-radius:3px;background:color-mix(in srgb,var(--line-strong) 55%,transparent);overflow:hidden}.rule-bar>span{display:block;height:100%;border-radius:3px;background:var(--ink-3)}.rule-bar>span.pos{background:var(--pos)}.progress.steps{display:flex;gap:3px;background:none;border-radius:0}.progress.steps .step{flex:1;min-width:0;border-radius:3px;background:color-mix(in srgb,var(--line-strong) 55%,transparent)}.progress.steps .step.paid{background:var(--series-3)}.progress.steps .step.next{background:transparent;box-shadow:inset 0 0 0 2px var(--accent)}.prow.overdue{box-shadow:inset 3px 0 0 var(--neg)}.tx-row.carry{background:color-mix(in srgb,var(--accent-soft) 45%,transparent);box-shadow:inset 3px 0 0 var(--accent)}.tx-row.carry:hover{background:color-mix(in srgb,var(--accent-soft) 45%,transparent)}.card-bill-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-2) var(--s-4);margin:0 0 var(--s-3);padding:var(--s-3) var(--s-4);border:1px solid var(--line);border-radius:var(--r-3);background:var(--surface);font-size:var(--fs-3)}.rollover-list{margin:var(--s-2) 0 0;padding-left:1.1em;font-size:var(--fs-2)}.inst-list{display:grid;gap:var(--s-2);max-height:260px;overflow:auto;padding:2px}.inst-row{display:grid;grid-template-columns:minmax(0,1fr) 9em;align-items:center;gap:var(--s-3);font-size:var(--fs-3)}.inst-row:not(.typed) input{color:var(--ink-3)}.inst-when{display:inline-flex;align-items:center;gap:var(--s-2)}.inst-month{min-height:34px;font-size:var(--fs-2)}.backup-line{margin:0 0 var(--s-2);font-weight:600}.backup-line.warn{color:var(--danger-ink)}.backup-line.off{color:var(--ink-3)}.shell{--sidebar-w: 248px;display:grid;grid-template-columns:var(--sidebar-w) minmax(0,1fr);min-height:100vh;transition:grid-template-columns var(--t-slow) var(--ease)}.shell.is-collapsed{--sidebar-w: 68px}.shell-main{min-width:0;display:flex;flex-direction:column}.main{width:100%;max-width:1240px;margin-inline:auto;padding:var(--s-5) var(--s-6) var(--s-8);display:flex;flex-direction:column;gap:var(--s-4);outline:none}.skip-link{position:fixed;left:var(--s-3);top:-60px;z-index:200;padding:var(--s-2) var(--s-3);border-radius:var(--r-2);background:var(--ink);color:var(--bg);font-weight:600;transition:top var(--t-fast) var(--ease)}.skip-link:focus{top:var(--s-3)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.spacer{flex:1}.center{display:flex;justify-content:center}.sidebar{position:sticky;top:0;z-index:30;height:100vh;display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-4) var(--s-3);border-right:1px solid var(--line);background:var(--surface);overflow:visible}.brand{display:flex;align-items:center;gap:10px;height:36px;padding:0 6px;font-weight:600;letter-spacing:-.015em}.sidebar.collapsed .brand{justify-content:center;padding:0}.brand{color:var(--ink)}.wordmark{display:block;flex:none}.logo-mark{display:block;flex:none;transition:transform var(--t-base) var(--ease)}.logo-mark-bg{fill:var(--ink)}.logo-mark-glyph{stroke:var(--bg)}.brand:hover .logo-mark{transform:rotate(-6deg) scale(1.05)}.brand-name{white-space:nowrap}.sidebar .switcher{margin:0}.switcher.compact .switcher-btn{width:44px;margin:0 auto;padding:6px;justify-content:center}.switcher.compact .switcher-menu{left:calc(100% + 10px);top:0;width:270px}.nav{flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--s-1);overflow:visible}.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.nav-heading{padding:var(--s-2) 10px var(--s-1)}.nav-rule{height:1px;margin:var(--s-2) 6px;background:var(--line)}.nav-item{position:relative}.nav .nav-link{position:relative;display:flex;align-items:center;gap:12px;padding:8px 34px 8px 10px;border-radius:var(--r-2);color:var(--ink-2);font-size:var(--fs-3);font-weight:500;text-decoration:none;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.nav .nav-link:hover{background:var(--hover);color:var(--ink);text-decoration:none}.nav .nav-link.active{background:var(--accent-soft);color:var(--accent-text);font-weight:600}.nav .nav-link.active:before{content:"";position:absolute;left:-12px;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.nav-icon{position:relative;display:inline-flex;flex:none}.nav-link svg{transition:transform var(--t-base) var(--ease)}.nav-link:hover svg{transform:translateY(-1px) scale(1.08)}.nav-link[data-nav=gear]:hover svg{transform:rotate(60deg)}.nav-link[data-nav=repeat]:hover svg{transform:rotate(180deg)}.nav-link[data-nav=trend]:hover svg{transform:translate(2px,-2px)}.nav-link[data-nav=users]:hover svg{transform:scale(1.12)}.nav-label{flex:1;min-width:0;white-space:nowrap}.nav-marker.count{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#c4302b;color:#fff;font-family:var(--font-mono);font-size:.6875rem;font-weight:600;line-height:18px;text-align:center}.nav-marker.count.accent{background:var(--accent);color:var(--accent-ink)}.nav-marker.dot{width:8px;height:8px;border-radius:50%;background:#d98a00;box-shadow:0 0 0 2px var(--surface)}.sidebar.collapsed .nav-icon>.nav-marker{position:absolute;top:-5px;right:-8px;box-shadow:0 0 0 2px var(--surface)}.sidebar.collapsed .nav-icon>.nav-marker.count{min-width:16px;height:16px;line-height:16px;font-size:.625rem;padding:0 4px}.nav-pin{position:absolute;right:6px;top:50%;translate:0 -50%;display:grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:var(--r-1);background:none;color:var(--ink-3);cursor:pointer;opacity:0;transition:opacity var(--t-fast) var(--ease),color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}.nav-item:hover .nav-pin,.nav-pin:focus-visible,.nav-pin.on{opacity:1}.nav-pin:hover{background:var(--hover);color:var(--ink)}.nav-pin.on{color:var(--caution)}.nav-pin.on svg{fill:currentColor}.sidebar.collapsed .nav .nav-link{justify-content:center;padding:9px 0}.sidebar.collapsed .nav .nav-link.active:before{left:-12px}.sidebar-foot{display:flex;flex-direction:column;gap:var(--s-1)}.sidebar-foot .menu-root,.sidebar-foot .tip-wrap{display:flex;width:100%}.collapse-btn{display:flex;align-items:center;gap:12px;width:100%;padding:8px 10px;border:0;border-radius:var(--r-2);background:none;color:var(--ink-3);font:inherit;font-size:var(--fs-3);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.collapse-btn:hover{background:var(--hover);color:var(--ink)}.sidebar.collapsed .collapse-btn{justify-content:center;padding:9px 0}.user-chip-btn{display:flex;align-items:center;gap:10px;width:100%;padding:6px;border:1px solid transparent;border-radius:var(--r-2);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.user-chip-btn:hover,.user-chip-btn.open{background:var(--hover);border-color:var(--line)}.sidebar.collapsed .user-chip-btn{justify-content:center;padding:6px 0}.user-chip-text{display:flex;flex-direction:column;flex:1;min-width:0;line-height:1.25}.user-chip-text strong,.user-chip-text span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}html{scroll-padding-top:72px}@media (max-width: 820px){html{scroll-padding-bottom:88px}}.topbar{position:sticky;top:0;z-index:25;display:flex;align-items:center;gap:var(--s-3);height:56px;padding:0 var(--s-6);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar-title{min-width:96px}.topbar-mobile-switcher{display:none}.search-trigger{display:flex;align-items:center;gap:var(--s-2);flex:1;max-width:420px;height:36px;padding:0 var(--s-2) 0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);color:var(--ink-3);font:inherit;font-size:var(--fs-3);text-align:left;cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.search-trigger:hover{border-color:var(--ink-3);color:var(--ink-2)}.search-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-keys{display:inline-flex;gap:3px}.topbar-actions{display:flex;align-items:center;gap:var(--s-2);margin-left:auto}.ask-btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);color:var(--signal);font:inherit;font-size:var(--fs-3);font-weight:550;cursor:pointer;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}.ask-btn:hover{background:var(--signal-soft);border-color:var(--signal-line)}.ask-btn svg{transition:transform var(--t-base) var(--ease)}.ask-btn:hover svg{transform:scaleX(1.18)}.avatar-btn{display:inline-flex;padding:2px;border:2px solid transparent;border-radius:50%;background:none;cursor:pointer;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-base) var(--ease)}.avatar-btn:hover,.avatar-btn.open{border-color:var(--accent)}.avatar-btn .avatar-wrap>.avatar,.user-chip-btn .avatar-wrap>.avatar{box-shadow:none!important;transform:none!important}.menu-profile{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-2) 10px}.menu-profile strong{display:block}.menu-status{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:var(--fs-1);color:var(--ok-ink)}.dot-live{width:7px;height:7px;border-radius:50%;background:var(--pos)}.nc-root{position:relative;display:inline-flex}.bell-btn{position:relative;display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:var(--r-2);background:none;color:var(--ink-2);cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.bell-btn:hover{background:var(--hover);color:var(--ink)}.bell-btn.open{background:var(--accent-soft);color:var(--accent-text)}.bell-btn:hover svg{transform-origin:50% 10%;animation:ring .6s var(--ease)}.bell-count{position:absolute;top:1px;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#c4302b;color:#fff;font-family:var(--font-mono);font-size:.625rem;font-weight:600;line-height:17px;text-align:center;box-shadow:0 0 0 2px var(--bg)}.nc-panel{position:absolute;top:calc(100% + 8px);right:0;z-index:80;width:min(420px,calc(100vw - 24px));max-height:min(640px,calc(100vh - 88px));display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-float);transform-origin:top right;animation:pop-in var(--t-base) var(--ease)}.nc{display:flex;flex-direction:column;min-height:0;flex:1}.nc-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--line)}.nc-title{display:flex;align-items:center;gap:var(--s-2)}.nc-unread-pill{padding:1px 8px;border-radius:999px;background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-1);font-weight:600}.nc-tabs{display:inline-flex;gap:2px;padding:2px;border-radius:var(--r-2);background:var(--surface-2)}.nc-tabs button{padding:3px 11px;border:0;border-radius:var(--r-1);background:none;color:var(--ink-2);font:inherit;font-size:var(--fs-2);font-weight:550;cursor:pointer;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}.nc-tabs button:hover{color:var(--ink)}.nc-tabs button.active{background:var(--surface);color:var(--ink);box-shadow:0 0 0 1px var(--line)}.nc-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-bottom:var(--s-2)}.nc-group-head{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-3) var(--s-4) var(--s-1)}.nc-group-count{min-width:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:.6875rem;font-weight:600;line-height:18px;text-align:center}.nc-link{padding:0;border:0;background:none;color:var(--accent-text);font:inherit;font-size:var(--fs-2);font-weight:550;cursor:pointer}.nc-link:hover{text-decoration:underline}.nc-list{list-style:none;margin:0;padding:0}.nc-row{position:relative}.nc-row.unread{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}.nc-item{display:flex;gap:11px;width:100%;padding:9px var(--s-4);border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease)}.nc-row:hover .nc-item{background:var(--hover)}.nc-row.unread:hover .nc-item{background:var(--accent-soft)}.nc-item:focus-visible{outline-offset:-2px}.nc-text{display:flex;flex-direction:column;gap:1px;min-width:0}.nc-item-title{display:flex;align-items:baseline;gap:7px;font-size:var(--fs-3);font-weight:600;line-height:1.3}.nc-item-title .unread-dot{align-self:center}.nc-item-body{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink-2);font-size:var(--fs-2)}.nc-time{color:var(--ink-3);font-size:var(--fs-1)}.nc-actions{position:absolute;top:6px;right:var(--s-2);display:flex;gap:2px;padding:2px;border-radius:var(--r-2);background:var(--surface);border:1px solid var(--line);opacity:0;transform:translateY(-2px);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.nc-row:hover .nc-actions,.nc-row:focus-within .nc-actions{opacity:1;transform:none}.nc-more{display:flex;align-items:center;gap:4px;margin:2px var(--s-4) 0;padding:3px 0;border:0;background:none;color:var(--ink-3);font:inherit;font-size:var(--fs-2);cursor:pointer}.nc-more:hover{color:var(--ink)}.nc-more[aria-expanded=true] svg{transform:rotate(180deg)}.nc-skel{padding:var(--s-2) 0}.nc-skel-text{flex:1;display:flex;flex-direction:column;gap:8px;padding-top:4px}.nc-foot{display:flex;align-items:center;gap:6px;padding:var(--s-2) var(--s-3);border-top:1px solid var(--line)}.notif-icon.sm{width:32px;height:32px;flex:none}.notif-icon.signal{background:var(--signal-soft);color:var(--signal)}.notif-icon.forecast{background:color-mix(in srgb,var(--forecast) 14%,var(--surface));color:var(--forecast)}.notif-icon{transition:transform var(--t-base) var(--ease)}.notif:hover .notif-icon,.nc-row:hover .notif-icon{transform:scale(1.08)}.unread-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent)}.palette-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;display:grid;place-items:start center;padding:11vh var(--s-4) var(--s-4);background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in var(--t-fast) var(--ease)}.palette{width:min(640px,100%);max-height:min(560px,78vh);display:flex;flex-direction:column;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-3);box-shadow:var(--shadow-float);animation:pop-in var(--t-base) var(--ease)}.palette-input{display:flex;align-items:center;gap:var(--s-3);padding:0 var(--s-4);border-bottom:1px solid var(--line);color:var(--ink-3)}.palette-input input{flex:1;height:52px;padding:0;border:0;border-radius:0;background:none;font-size:var(--fs-5);color:var(--ink);outline:none!important}.palette-list{list-style:none;margin:0;padding:var(--s-1) var(--s-2) var(--s-2);overflow-y:auto;overscroll-behavior:contain}.palette-group{padding:var(--s-3) var(--s-3) var(--s-1)}.palette-item{display:flex;align-items:center;gap:var(--s-3);padding:8px var(--s-3);border-radius:var(--r-2);color:var(--ink);font-size:var(--fs-3);cursor:pointer}.palette-item svg{flex:none;color:var(--ink-3)}.palette-item.active{background:var(--accent-soft);color:var(--accent-text)}.palette-item.active svg{color:var(--accent-text)}.palette-label{flex:1;min-width:0;display:flex;flex-direction:column}.palette-label>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.palette mark{background:none;color:inherit;font-weight:700;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.palette-empty{padding:var(--s-5) var(--s-4);color:var(--ink-3);text-align:center}.palette-foot{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-2) var(--s-4);border-top:1px solid var(--line);background:var(--surface-2)}.mobile-nav{display:none}@media (max-width: 1100px){.topbar-title{display:none}}@media (max-width: 820px){.shell{display:block}.sidebar{display:none}.topbar{padding:0 var(--s-3);gap:var(--s-2)}.topbar-mobile-switcher{display:block;flex:1;min-width:0}.topbar-mobile-switcher .switcher{max-width:240px}.search-trigger{flex:none;width:36px;padding:0;justify-content:center;border-color:transparent;background:none}.search-text,.search-keys,.ask-label{display:none}.ask-btn{width:36px;padding:0;justify-content:center;border-color:transparent;background:none}.topbar-actions{margin-left:0;gap:2px}.main{padding:var(--s-4) var(--s-3) calc(80px + env(safe-area-inset-bottom))}.mobile-nav{position:fixed;inset:auto 0 0 0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}.mobile-tab{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;border:0;background:none;color:var(--ink-2);font:inherit;font-size:.6875rem;font-weight:500;text-decoration:none;cursor:pointer}.mobile-tab:hover{text-decoration:none}.mobile-tab.active,.mobile-tab.open{color:var(--accent-text);font-weight:600}.mobile-tab.active:before{content:"";position:absolute;top:0;left:28%;right:28%;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}.mobile-tab .nav-icon>.nav-marker{position:absolute;top:-4px;right:-9px;box-shadow:0 0 0 2px var(--surface)}.mobile-nav .menu-root{display:contents}.mobile-nav .menu{right:var(--s-2);bottom:calc(100% + 6px)}.toasts{bottom:76px;left:var(--s-3);right:var(--s-3)}.palette-scrim{padding-top:6vh}}.dash{display:flex;flex-direction:column;gap:var(--s-5)}.dash-head{display:flex;align-items:center;gap:var(--s-4)}.dash-title{min-width:0;flex:1}.dash-title p{margin-top:2px}.dash-actions{display:flex;align-items:center;gap:var(--s-2)}.add-btn svg{transition:transform var(--t-base) var(--ease)}.add-btn:hover svg{transform:rotate(90deg)}.dash-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-flow:dense;gap:var(--s-6) var(--s-6);align-items:start}.widget{min-width:0;display:flex;flex-direction:column;gap:var(--s-3);animation:rise-in var(--t-slow) var(--ease) both}.widget:nth-child(2){animation-delay:50ms}.widget:nth-child(3){animation-delay:.1s}.widget:nth-child(4){animation-delay:.15s}.widget:nth-child(n+5){animation-delay:.2s}.widget.size-s{grid-column:span 4}.widget.size-m{grid-column:span 6}.widget.size-l{grid-column:span 12}.widget-body{min-width:0}.widget-lead{margin:0 0 var(--s-2);color:var(--ink-2);font-size:var(--fs-3)}.widget-foot{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-2)}.link-quiet{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;color:var(--ink-3);font:inherit;font-size:var(--fs-2);font-weight:550;cursor:pointer;text-decoration:none}.link-quiet:hover{color:var(--accent-text);text-decoration:none}.link-quiet svg{transition:transform var(--t-base) var(--ease)}.link-quiet[aria-expanded=true] svg{transform:rotate(180deg)}.block{display:block}.customize-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-3) var(--s-4);border:1px dashed var(--accent);border-radius:var(--r-2);background:var(--accent-soft);color:var(--accent-text);font-size:var(--fs-3)}.widget.editing{position:relative;padding:var(--s-3);border:1px dashed var(--line-strong);border-radius:var(--r-2);background:color-mix(in srgb,var(--surface) 60%,transparent)}.widget-edit{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);flex-wrap:wrap;padding-bottom:var(--s-2);border-bottom:1px solid var(--line)}.widget-edit-name{display:inline-flex;align-items:center;gap:6px;color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-1);letter-spacing:.05em;text-transform:uppercase}.widget-edit-tools{display:inline-flex;align-items:center;gap:2px}.segmented.mini{padding:2px}.segmented.mini button{padding:2px 9px;font-size:var(--fs-2)}.hidden-widgets{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap;padding:var(--s-3) var(--s-4);border:1px dashed var(--line-strong);border-radius:var(--r-2)}.hero{display:grid;grid-template-columns:minmax(280px,.9fr) minmax(0,1.4fr);gap:var(--s-4);align-items:stretch}.hero.hero-s,.hero.hero-m{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}.hero-figure{display:flex;flex-direction:column;justify-content:center;gap:var(--s-2);min-width:0;padding:var(--s-5);border:1px solid var(--line);border-radius:var(--r-3);background:linear-gradient(155deg,var(--accent-soft) -20%,var(--surface) 65%)}.hero-status{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;padding:3px 10px 3px 8px;border-radius:999px;border:1px solid;font-size:var(--fs-2);font-weight:600}.hero-status svg{flex:none}.hero-status.ok{background:var(--ok-bg);border-color:var(--ok-line);color:var(--ok-ink)}.hero-status.caution{background:var(--warn-bg);border-color:var(--warn-line);color:var(--warn-ink)}.hero-status.warn{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-ink)}.hero-balance{display:inline-flex;align-items:center;gap:var(--s-3);width:fit-content;font-size:clamp(2.1rem,4.6vw,var(--fs-8));font-weight:500;letter-spacing:-.045em;line-height:1.02;cursor:help;border-radius:var(--r-2);outline-offset:4px}.hero-meta{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);font-size:var(--fs-3)}.hero-moved{display:inline-flex;align-items:center;gap:4px}.hero-moved.good{color:var(--pos)}.hero-moved.bad{color:var(--neg)}.hero-moved .muted{color:var(--ink-3)}.forecast-text{color:var(--forecast);text-decoration:underline dashed color-mix(in srgb,var(--forecast) 55%,transparent);text-underline-offset:4px}.forecast-text.neg{color:var(--neg)}.hero-why{display:inline-flex;align-items:center;gap:4px;width:fit-content;padding:0;border:0;background:none;color:var(--ink-3);font:inherit;font-size:var(--fs-2);font-weight:550;cursor:pointer}.hero-why:hover{color:var(--accent-text)}.hero-why svg{transition:transform var(--t-base) var(--ease)}.hero-why[aria-expanded=true] svg{transform:rotate(180deg)}.hero-figure{position:relative}.widget:has(.hero){position:relative;z-index:3}.widget:has(.hero) .section-collapse>div{overflow:visible}.hero-breakdown{position:absolute;z-index:6;top:calc(100% + var(--s-2));left:0;width:min(400px,calc(100vw - 2 * var(--s-4)));padding:var(--s-2) var(--s-4);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);box-shadow:var(--pop);opacity:0;visibility:hidden;transform:translateY(-4px);pointer-events:none;transition:opacity var(--t-base) var(--ease),transform var(--t-base) var(--ease),visibility 0s linear var(--t-base)}.hero-breakdown.open{opacity:1;visibility:visible;transform:none;pointer-events:auto;transition-delay:0s}.hero-breakdown dl{margin:0}.bd-row:last-child,.bd-row.strong:last-child{border-bottom:0}.bd-row{display:flex;justify-content:space-between;gap:var(--s-4);padding:5px 0;border-bottom:1px dotted var(--line-strong);font-size:var(--fs-2)}.bd-row dt{color:var(--ink-2)}.bd-row dd{margin:0}.bd-row.strong{font-weight:600;border-bottom:1px solid var(--line-strong)}.hero-chart{min-width:0;padding:var(--s-3) var(--s-4) var(--s-2);border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface)}.hero-chart-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-1) var(--s-4);margin-bottom:var(--s-1)}.hero-chart-head .eyebrow,.hero-chart-head .link-quiet{white-space:nowrap}.hero-chart-head .link-quiet{margin-left:auto}.legend-inline{display:inline-flex;align-items:center;gap:var(--s-2);margin:0;padding:0;list-style:none;color:var(--ink-3);font-size:var(--fs-1)}.legend-inline li{display:inline-flex;align-items:center;gap:5px}.legend-inline .line{display:inline-block;width:18px;height:0;border-top:2px solid var(--series-3);margin-left:var(--s-2)}.legend-inline .line.dashed{border-top:2px dashed var(--forecast)}.legend-inline .line.ink{border-top-color:var(--ink)}.swatch{display:inline-block;width:10px;height:10px;border-radius:3px}.swatch.hatch{background:repeating-linear-gradient(45deg,var(--ink-3) 0 2px,transparent 2px 4px);border:1px dashed var(--ink-3)}.chart-box{width:100%}.chart-box .recharts-wrapper:focus,.chart-box svg:focus{outline:none}.chart-tip{min-width:190px;padding:var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);box-shadow:var(--shadow-float);font-size:var(--fs-2)}.chart-tip>strong{display:block;margin-bottom:var(--s-1)}.chart-tip-row{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);padding:2px 0}.chart-tip-row .swatch{margin-right:4px}.chart-tip-row.strong{margin-top:3px;padding-top:5px;border-top:1px solid var(--line);font-weight:600}.chart-tip-note{margin-top:var(--s-1);color:var(--ink-3);font-size:var(--fs-1)}.neg{color:var(--neg)}.pos{color:var(--pos)}.neg-text{color:var(--neg);font-weight:550}.delta{display:inline-flex;align-items:center;gap:3px;font-size:var(--fs-2);font-weight:550;white-space:nowrap}.delta.good{color:var(--pos)}.delta.bad{color:var(--neg)}.delta.flat{color:var(--ink-3)}.delta-suffix{color:var(--ink-3);font-weight:450;margin-left:2px}.insights-widget,.insight-list{display:flex;flex-direction:column;gap:var(--s-3)}.insight{position:relative;display:flex;gap:var(--s-3);padding:var(--s-1) 0 var(--s-1) var(--s-4);border-left:2px solid var(--signal);animation:rise-in var(--t-slow) var(--ease) both}.insight.sev-alert{border-left-color:var(--neg)}.insight.sev-good{border-left-color:var(--pos)}.insight.sev-info{border-left-color:var(--line-strong)}.insight-main{flex:1;min-width:0}.insight-meta{display:flex;align-items:center;gap:var(--s-2);margin-bottom:2px}.insight-tag{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:.6875rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--signal)}.sev-alert .insight-tag{color:var(--neg)}.sev-good .insight-tag{color:var(--pos)}.sev-info .insight-tag{color:var(--ink-3)}.insight-title{font-size:var(--fs-5);font-weight:600;letter-spacing:-.015em;line-height:1.25}.insight.compact .insight-title{font-size:var(--fs-4)}.insight-body{margin:3px 0 0;color:var(--ink-2);font-size:var(--fs-3);max-width:68ch}.insight-details dl{margin:var(--s-3) 0 0;max-width:460px;animation:fade-in var(--t-base) var(--ease)}.insight-row{display:flex;justify-content:space-between;gap:var(--s-4);padding:5px 0;border-bottom:1px dotted var(--line-strong);font-size:var(--fs-2)}.insight-row dt{color:var(--ink-2)}.insight-row dd{margin:0}.insight-actions{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4);margin-top:var(--s-2)}.insight-link{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:none;color:var(--signal);font:inherit;font-size:var(--fs-2);font-weight:550;cursor:pointer;text-decoration:none}.insight-link:hover{text-decoration:underline;text-underline-offset:3px}.insight-link svg{transition:transform var(--t-base) var(--ease)}.insight-link[aria-expanded=true] svg{transform:rotate(180deg)}.insight-x{align-self:flex-start;opacity:.5;transition:opacity var(--t-fast) var(--ease)}.insight:hover .insight-x,.insight-x:focus-visible{opacity:1}.insights-calm{display:flex;align-items:center;gap:var(--s-2);margin:0;padding-left:var(--s-4);border-left:2px solid var(--pos);color:var(--ink-2);font-size:var(--fs-3)}.insights-foot{display:flex;align-items:center;gap:var(--s-4);flex-wrap:wrap}.ask-inline{display:flex;align-items:center;gap:var(--s-2);flex:1;min-width:260px;max-width:560px;padding:0 var(--s-2) 0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface);color:var(--signal);transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}.ask-inline:focus-within{border-color:var(--signal);box-shadow:0 0 0 3px color-mix(in srgb,var(--signal) 18%,transparent)}.ask-inline input{flex:1;height:36px;padding:0;border:0;background:none;color:var(--ink);outline:none!important}.insights-links{display:flex;align-items:center;gap:var(--s-4);margin-left:auto}.summary-inline{padding:var(--s-3) 0 0 var(--s-4);max-width:70ch;color:var(--ink-2);font-size:var(--fs-3)}.summary-inline p{margin:0 0 var(--s-3)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--s-3) var(--s-4);margin:0}.stat-grid dt{margin-bottom:2px}.stat-grid dd{margin:0;font-size:var(--fs-5);color:var(--ink)}.ledger{list-style:none;margin:0;padding:0}.prow{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;align-items:center;gap:var(--s-3);padding:var(--row-pad) var(--s-2);margin:0 calc(var(--s-2) * -1);border-bottom:1px solid var(--line);border-radius:var(--r-1);transition:background var(--t-fast) var(--ease),opacity var(--t-slow) var(--ease),transform var(--t-slow) var(--ease),max-height var(--t-slow) var(--ease);max-height:120px}.prow:last-child{border-bottom:0}.prow:hover,.prow:focus-within{background:var(--hover)}.prow.leaving{opacity:0;transform:translate(12px);max-height:0;padding-block:0;overflow:hidden;border-color:transparent}.prow-date{display:flex;flex-direction:column;font-size:var(--fs-2);line-height:1.25}.prow-date strong{font-size:var(--fs-3)}.prow-main{display:flex;flex-direction:column;gap:1px;min-width:0}.prow-title{display:flex;align-items:center;gap:var(--s-2);min-width:0;font-weight:550}.prow-title>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prow-ico{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:var(--r-1);color:var(--ink-3)}.prow-amount{text-align:right;font-size:var(--fs-3)}.prow-actions{display:flex;align-items:center;gap:2px;min-width:104px;justify-content:flex-end;opacity:0;transform:translate(4px);transition:opacity var(--t-fast) var(--ease),transform var(--t-fast) var(--ease)}.prow:hover .prow-actions,.prow:focus-within .prow-actions{opacity:1;transform:none}@media (hover: none){.prow-actions{opacity:1;transform:none}}.spending{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s-5);align-items:start}.spending-ring{display:flex;flex-direction:column;align-items:center;gap:var(--s-3)}.donut{position:relative}.donut-centre{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.donut-label{display:flex;flex-direction:column;align-items:center;max-width:62%;text-align:center;line-height:1.2}.donut-label .eyebrow{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-value{font-size:var(--fs-5);font-weight:500}.spending-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);margin-bottom:var(--s-2)}.spending-list ul{list-style:none;margin:0;padding:0}.spending-list li{transition:opacity var(--t-base) var(--ease)}.spending-list li.dim{opacity:.45}.spend-row{display:flex;flex-direction:column;gap:6px;width:calc(100% + var(--s-2) * 2);margin:0 calc(var(--s-2) * -1);padding:7px var(--s-2);border:0;border-radius:var(--r-2);background:none;color:inherit;font:inherit;font-size:var(--fs-3);text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease)}.spending-list li.active .spend-row,.spend-row:hover{background:var(--hover)}.spend-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.spend-right{display:inline-flex;align-items:center;gap:var(--s-3)}.bar-track{position:relative;display:block;height:6px;border-radius:3px;background:var(--surface-2)}.bar-now{display:block;height:100%;border-radius:3px;transform-origin:left;animation:grow-x .6s var(--ease) both}.bar-tick{position:absolute;top:-3px;width:2px;height:12px;margin-left:-1px;border-radius:1px;background:var(--ink);box-shadow:0 0 0 1.5px var(--surface)}.spend-key{display:flex;align-items:center;gap:6px;margin:var(--s-2) 0 0}.tick-key{display:inline-block;width:2px;height:11px;border-radius:1px;background:var(--ink)}.recurring-lead{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-6);margin-bottom:var(--s-3)}.recurring-total{font-size:var(--fs-7);letter-spacing:-.03em;line-height:1.1}.recurring-subs,.recurring-lead .num.pos{font-size:var(--fs-5);margin-top:5px}.recurring-list{list-style:none;margin:0;padding:0}.rec-row{display:grid;grid-template-columns:minmax(120px,1.2fr) minmax(40px,1fr) auto;align-items:center;gap:var(--s-3);padding:7px var(--s-2);margin:0 calc(var(--s-2) * -1);border-radius:var(--r-2);color:var(--ink);font-size:var(--fs-3);text-decoration:none;transition:background var(--t-fast) var(--ease)}.rec-row:hover{background:var(--hover);text-decoration:none}.rec-row .cat{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.rec-bar{height:5px;border-radius:3px;background:var(--surface-2);overflow:hidden}.rec-bar span{display:block;height:100%;border-radius:3px;opacity:.85;transform-origin:left;animation:grow-x .6s var(--ease) both}.cashflow{display:flex;flex-direction:column;gap:var(--s-3)}.cashflow-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4)}.cashflow-net{font-size:var(--fs-7);letter-spacing:-.03em;line-height:1.1}.cashflow-toggle{display:inline-flex;align-items:center;gap:var(--s-2)}.cf-legend{flex-wrap:wrap;gap:var(--s-4)}.firstrun{display:flex;flex-direction:column;gap:var(--s-5);max-width:760px;padding:var(--s-5) 0;animation:rise-in var(--t-slow) var(--ease) both}.firstrun-head{display:flex;justify-content:space-between;gap:var(--s-4)}.firstrun-head h2{margin:2px 0 var(--s-1);font-size:var(--fs-6);letter-spacing:-.02em}.firstrun-progress{align-self:flex-start;padding:4px 10px;border:1px solid var(--line-strong);border-radius:var(--r-2);color:var(--ink-2)}.firstrun-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-strong)}.firstrun-steps li{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:var(--s-4);padding:var(--s-4) 0;border-bottom:1px solid var(--line)}.step-no{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line-strong);border-radius:50%;color:var(--ink-2);font-family:var(--font-mono);font-size:var(--fs-2)}.firstrun-steps li.done .step-no{border-color:var(--pos);background:var(--ok-bg);color:var(--ok-ink)}.firstrun-steps li.done strong{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-strong)}.skel-row{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) 0}.skel-col{display:flex;flex:1;flex-direction:column;gap:var(--s-2)}@media (max-width: 1100px){.hero{grid-template-columns:minmax(0,1fr);gap:var(--s-4)}}@media (max-width: 1000px){.dash-grid{gap:var(--s-5)}.widget.size-s{grid-column:span 6}.widget.size-m{grid-column:span 12}}@media (max-width: 560px){.dash-head{flex-wrap:wrap}.dash-title{flex-basis:calc(100% - 60px)}.dash-actions{width:100%}.dash-actions .add-btn{flex:1;min-height:42px}.dash-grid{grid-template-columns:minmax(0,1fr)}.widget.size-s,.widget.size-m,.widget.size-l{grid-column:1 / -1}.spending{grid-template-columns:minmax(0,1fr);justify-items:center}.spending-list{width:100%}.prow{grid-template-columns:52px minmax(0,1fr) auto;grid-template-areas:"date main amount" ". actions actions"}.prow-date{grid-area:date}.prow-main{grid-area:main}.prow-amount{grid-area:amount}.prow-actions{grid-area:actions;justify-content:flex-start;min-width:0}.firstrun-steps li{grid-template-columns:32px minmax(0,1fr)}.step-action{grid-column:2}.insight{padding-left:var(--s-3)}.ask-inline{min-width:0;flex-basis:100%;max-width:none}.insights-links{margin-left:0}.cashflow-head{flex-direction:column;gap:var(--s-2)}}.dash-monthbar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s-2) var(--s-4)}.month-note{margin:0;max-width:62ch;font-size:var(--fs-2)}.paying-list{list-style:none;margin:0;padding:0}.paying-row+.paying-row{border-top:1px solid var(--line)}.paying-row.overdue{box-shadow:inset 3px 0 0 var(--neg)}.paying-link{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:5px var(--s-3);padding:var(--s-3) var(--s-2);margin:0 calc(var(--s-2) * -1);border-radius:var(--r-2);color:var(--ink);text-decoration:none;transition:background var(--t-fast) var(--ease)}.paying-link:hover{background:var(--hover);text-decoration:none}.paying-name{display:flex;align-items:center;gap:var(--s-2);min-width:0;font-size:var(--fs-3);font-weight:550}.paying-left{font-size:var(--fs-3)}.paying-link .progress,.paying-next{grid-column:1 / -1}.hero-safe{margin:var(--s-2) 0 0;font-size:var(--fs-3);color:var(--ink-2);cursor:help}.hero-safe.ok{color:var(--ink)}.hero-safe.short{color:var(--danger-ink);font-weight:600}.hero-links{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-4)}.assistant{display:flex;flex-direction:column;gap:var(--s-4);padding:var(--s-4)}.assistant-tabs{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3)}.assistant-overview{display:flex;flex-direction:column;gap:var(--s-5)}.assistant-h{margin-bottom:var(--s-2)}.summary-block{padding:var(--s-4);border-left:2px solid var(--signal);background:var(--signal-soft);border-radius:0 var(--r-2) var(--r-2) 0}.summary-block p{margin:var(--s-1) 0 var(--s-3);color:var(--ink);font-size:var(--fs-3)}.chat{display:flex;flex-direction:column;gap:var(--s-5)}.chat-turn{display:flex;flex-direction:column;gap:var(--s-2)}.chat-q{align-self:flex-end;max-width:85%;padding:7px 12px;border-radius:var(--r-3) var(--r-3) 4px var(--r-3);background:var(--accent);color:var(--accent-ink);font-size:var(--fs-3);animation:rise-in var(--t-base) var(--ease) both}.chat-a{align-self:flex-start;max-width:94%;padding-left:var(--s-3);border-left:2px solid var(--signal);font-size:var(--fs-3);animation:rise-in var(--t-base) var(--ease) both}.chat-a p{margin:0 0 var(--s-2)}.chat-a.error{display:flex;gap:var(--s-2);align-items:center;color:var(--danger-ink);border-left-color:var(--neg)}.chat-rows{margin:0 0 var(--s-2);max-width:380px}.chat-row{display:flex;justify-content:space-between;gap:var(--s-4);padding:5px 0;border-bottom:1px dotted var(--line-strong);font-size:var(--fs-2)}.chat-row dt{display:flex;align-items:center;gap:7px;color:var(--ink-2)}.chat-row dd{margin:0}.chat-chips{display:flex;flex-wrap:wrap;gap:var(--s-2);margin-top:var(--s-2)}.typing{display:inline-flex;gap:4px;padding:6px 0}.typing i{width:6px;height:6px;border-radius:50%;background:var(--signal);animation:blink 1.1s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes blink{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}.ask-form{display:flex;gap:var(--s-2)}.ask-form input{flex:1}.ask-form input:focus-visible{border-color:var(--signal);outline-color:color-mix(in srgb,var(--signal) 28%,transparent)}.avatar-picker{display:flex;flex-direction:column;gap:var(--s-4)}.avatar-preview{display:flex;align-items:center;gap:var(--s-4)}.art-avatar{display:inline-block;overflow:hidden;border-radius:50%;flex:none}.art-avatar svg{display:block;width:100%;height:100%}.picker-pane{display:flex;flex-direction:column;gap:var(--s-3)}.picker-actions{display:flex;flex-wrap:wrap;gap:var(--s-2)}.picker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3);justify-items:center}.picker-opt{padding:3px;border:2px solid transparent;border-radius:50%;background:none;cursor:pointer;transition:border-color var(--t-fast) var(--ease),transform var(--t-base) var(--ease)}.picker-opt:hover{transform:scale(1.06);border-color:var(--line-strong)}.picker-opt.on{border-color:var(--accent)}.avatar-change{gap:var(--s-2)}.swatches{display:flex;gap:var(--s-2)}.swatch-btn{display:grid;place-items:center;width:28px;height:28px;padding:0;border:2px solid var(--surface);border-radius:50%;background:var(--sw);box-shadow:0 0 0 1px var(--line-strong);color:#fff;cursor:pointer;transition:transform var(--t-base) var(--ease),box-shadow var(--t-fast) var(--ease)}.swatch-btn:hover{transform:scale(1.1)}.swatch-btn.on{box-shadow:0 0 0 2px var(--sw)}.toast-action{margin-left:var(--s-3);padding:2px 8px;border:1px solid color-mix(in srgb,currentColor 40%,transparent);border-radius:var(--r-1);background:none;color:inherit;font:inherit;font-weight:600;cursor:pointer}.toast-action:hover{background:color-mix(in srgb,currentColor 14%,transparent)}.tip-left>.tip{right:calc(100% + 8px);top:50%;translate:0 -50%}.admin-privacy{margin-bottom:var(--s-4)}.admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--s-3);margin-bottom:var(--s-4)}.stat{display:flex;flex-direction:column;gap:2px;padding:var(--s-4);border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface);min-width:0}.stat strong{font-size:var(--fs-7);line-height:var(--lh-tight);letter-spacing:-.02em}.stat.warn{border-color:var(--warn-line);background:var(--warn-bg)}.admin-chart{margin-bottom:var(--s-4)}.admin-chart .su-bars{display:flex;align-items:stretch;gap:3px;height:120px;margin-top:var(--s-3)}.admin-chart .su-col{flex:1;display:flex;align-items:flex-end;min-width:0}.admin-chart .su-bar{display:block;width:100%;min-height:2px;background:var(--accent);border-radius:3px 3px 0 0;transition:opacity var(--t-fast) var(--ease)}.admin-chart .su-bar.zero{background:var(--line-strong);opacity:.6}.admin-chart .su-col:hover .su-bar{opacity:.75}.su-axis{display:flex;justify-content:space-between;margin-top:var(--s-2)}.admin-checks{margin-top:var(--s-4)}.admin-checks ul{list-style:none;margin:var(--s-3) 0 0;padding:0;display:grid;gap:var(--s-3)}.admin-checks li{display:flex;gap:var(--s-3);align-items:flex-start}.admin-checks li svg{flex:none;margin-top:2px}.admin-checks li.done svg{color:var(--pos)}.admin-checks li.todo svg{color:var(--caution)}.admin-checks li p{margin:2px 0 0}.admin-events{list-style:none;margin:0;padding:0}.admin-events li{display:flex;flex-wrap:wrap;align-items:center;gap:6px var(--s-3);padding:var(--s-2) 0;border-top:1px solid var(--line)}.admin-events li:first-child{border-top:0}.admin-events time{min-width:78px}.admin-who{font-weight:550}.admin-source{font-family:var(--font-mono);margin-left:auto}.admin-events.compact li{padding:6px 0}.admin-filters{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}.admin-search{display:flex;align-items:center;gap:var(--s-2);flex:1 1 260px;max-width:420px;min-height:40px;padding:0 var(--s-3);border:1px solid var(--line-strong);border-radius:var(--r-2);background:var(--surface)}.admin-search svg{color:var(--ink-3);flex:none}.admin-search input{flex:1;border:0;background:transparent;padding:8px 0;outline:none;box-shadow:none}.admin-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.admin-note{flex:1 1 280px;margin:0}.admin-pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--s-3);margin-top:var(--s-4)}.admin-people{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-2)}.admin-people>li{border:1px solid var(--line);border-radius:var(--r-2);background:var(--surface);overflow:hidden}.admin-people>li.open{border-color:var(--line-strong)}.admin-person{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(200px,1.6fr) auto 20px;align-items:center;gap:var(--s-4);width:100%;padding:var(--s-3) var(--s-4);border:0;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast) var(--ease)}.admin-person:hover{background:var(--hover)}.admin-person>svg{color:var(--ink-3)}.admin-name{display:flex;flex-direction:column;min-width:0}.admin-name>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-meta{display:flex;flex-wrap:wrap;gap:2px var(--s-3)}.admin-badges{display:flex;flex-wrap:wrap;gap:var(--s-1);justify-content:flex-end}.admin-detail-panel{padding:var(--s-3) var(--s-4) var(--s-4);border-top:1px solid var(--line);background:var(--surface-2)}.admin-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--s-3) var(--s-4);margin:0 0 var(--s-4)}.admin-facts dt{font-size:var(--fs-1);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.admin-facts dd{margin:2px 0 0;overflow-wrap:anywhere}.admin-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin-bottom:var(--s-4)}.admin-actions p{flex-basis:100%;margin:0}.admin-sub{font-size:var(--fs-3);margin:0 0 var(--s-2)}.btn.danger{border-color:var(--danger-line);color:var(--danger-ink)}.btn.danger:hover:not(:disabled){background:var(--danger-bg)}.btn.danger:disabled{color:var(--ink-3);border-color:var(--line)}.admin-system{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:var(--s-4);align-items:start}.admin-table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}.admin-table th{text-align:left;font-weight:600;color:var(--ink-3);padding:6px 0;border-bottom:1px solid var(--line)}.admin-table td{padding:6px 0;border-bottom:1px solid var(--line)}.admin-table .r{text-align:right}.admin-failures{list-style:none;margin:var(--s-3) 0 0;padding:0;display:grid;gap:var(--s-2)}.admin-failures li{display:flex;flex-direction:column;padding:var(--s-2) var(--s-3);border-left:3px solid var(--danger-line);background:var(--danger-bg);border-radius:var(--r-1)}@media (max-width: 720px){.admin-person{grid-template-columns:1fr 20px;gap:var(--s-2) var(--s-3)}.admin-meta,.admin-badges{grid-column:1;justify-content:flex-start}.admin-person>svg{grid-column:2;grid-row:1}.admin-source{margin-left:0}.admin-system{grid-template-columns:1fr}.stat strong{font-size:var(--fs-6)}}.viewing-bar{position:sticky;top:0;z-index:70;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-4);background:var(--warn-bg);color:var(--warn-ink);border-bottom:2px solid var(--warn-line);font-size:var(--fs-3)}.viewing-bar.can-write{background:var(--danger-bg);color:var(--danger-ink);border-bottom-color:var(--danger-line)}.viewing-bar .viewing-text{flex:1 1 320px}.viewing-bar .viewing-sep{opacity:.6}.viewing-bar .btn{flex:none}
