@font-face{font-family:Bricolage Grotesque;src:url(/fonts/BricolageGrotesque-normal.woff2)format(woff2);font-weight:200 800;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/fonts/InstrumentSans-normal.woff2)format(woff2);font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:Instrument Sans;src:url(/fonts/InstrumentSans-italic.woff2)format(woff2);font-weight:400 700;font-style:italic;font-display:swap}:root{--buncss-light:initial;--buncss-dark: ;color-scheme:light;--font-ui:"Instrument Sans","Segoe UI",system-ui,-apple-system,sans-serif;--font-display:"Bricolage Grotesque",var(--font-ui);--font-mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--bg:#f4f1eb;--bg-deep:#ece8e0;--surface:#fff;--surface-2:#f7f5f0;--surface-3:#efebe3;--border:#e4dfd5;--border-strong:#cfc8bb;--ink:#15130f;--ink-2:#5e584e;--ink-3:#908a7e;--ink-4:#b8b2a6;--inverse:#15130f;--inverse-ink:#f4f1eb;--accent:#237a57;--accent-ink:#fff;--accent-soft:#dcefe4;--accent-soft-ink:#175a40;--lime:#d9f56b;--lime-ink:#253300;--expense:#c8402a;--expense-soft:#f9e3de;--income:#1f7a57;--income-soft:#dcefe4;--transfer:#3b5fc0;--transfer-soft:#e1e7f8;--warn:#b7791f;--warn-soft:#f8ebd3;--danger:#c8402a;--c-moss:#2e8b57;--c-moss-soft:#ddefe3;--c-moss-ink:#1d5c39;--c-lime:#8db600;--c-lime-soft:#edf3cc;--c-lime-ink:#4f6a00;--c-sun:#d39e00;--c-sun-soft:#f9efc8;--c-sun-ink:#7a5a00;--c-clay:#d9622b;--c-clay-soft:#fbe3d6;--c-clay-ink:#8a3a14;--c-rose:#d23f6b;--c-rose-soft:#f9dee6;--c-rose-ink:#8c2446;--c-plum:#8e44ad;--c-plum-soft:#ecdff3;--c-plum-ink:#5b2a71;--c-cobalt:#2f5bd1;--c-cobalt-soft:#dfe6f8;--c-cobalt-ink:#1f3c8e;--c-sky:#1e9bd7;--c-sky-soft:#dceff9;--c-sky-ink:#11618a;--c-teal:#0f9a8f;--c-teal-soft:#d7f0ee;--c-teal-ink:#0a635c;--c-sand:#b08968;--c-sand-soft:#f1e7dc;--c-sand-ink:#6e5338;--c-slate:#6b7280;--c-slate-soft:#e6e8ec;--c-slate-ink:#3f4651;--c-ink:#2b2b2b;--c-ink-soft:#e4e2de;--c-ink-ink:#1a1a1a;--radius-s:8px;--radius:12px;--radius-l:18px;--radius-pill:999px;--shadow-sheet:0 -8px 40px #15130f2e;--shadow-pop:0 10px 30px #15130f24,0 1px 2px #15130f14;--shadow-fab:0 6px 18px #237a5759;--ease:cubic-bezier(.2,.8,.2,1);--ease-in:cubic-bezier(.4,0,.8,.4);--t-fast:.14s;--t-base:.22s;--t-slow:.36s;--sidebar-w:236px;--content-w:1120px;--tabbar-h:62px;--safe-b:env(safe-area-inset-bottom,0px);--safe-t:env(safe-area-inset-top,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--dark:1}}:root[data-theme=dark]{--dark:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#0f1113;--bg-deep:#0a0c0d;--surface:#171a1d;--surface-2:#1d2125;--surface-3:#242930;--border:#272c31;--border-strong:#3a4149;--ink:#f1eee7;--ink-2:#b3aea4;--ink-3:#7f7b73;--ink-4:#585550;--inverse:#f1eee7;--inverse-ink:#15130f;--accent:#4fcb95;--accent-ink:#072c1b;--accent-soft:#163626;--accent-soft-ink:#8fe3bb;--lime:#c9f04f;--lime-ink:#1f2a00;--expense:#f0735a;--expense-soft:#3a1f19;--income:#4fcb95;--income-soft:#163626;--transfer:#8aa4f0;--transfer-soft:#1e2744;--warn:#f0b44a;--warn-soft:#3a2d12;--danger:#f0735a;--c-moss:#3fb878;--c-moss-soft:#16352a;--c-moss-ink:#8fe3bb;--c-lime:#b9e04a;--c-lime-soft:#2a3410;--c-lime-ink:#d7f08a;--c-sun:#d9ae2a;--c-sun-soft:#3a2f0e;--c-sun-ink:#f3d27a;--c-clay:#e8743f;--c-clay-soft:#3c2015;--c-clay-ink:#f6a77e;--c-rose:#e85c86;--c-rose-soft:#3c1826;--c-rose-ink:#f59db9;--c-plum:#a66fd0;--c-plum-soft:#2e1e3c;--c-plum-ink:#cda8e8;--c-cobalt:#6b8cf0;--c-cobalt-soft:#1b2544;--c-cobalt-ink:#a9bdf8;--c-sky:#3fb0e6;--c-sky-soft:#10303f;--c-sky-ink:#8fd3f3;--c-teal:#2db8ab;--c-teal-soft:#0f3330;--c-teal-ink:#83ddd4;--c-sand:#d4ae8a;--c-sand-soft:#352a20;--c-sand-ink:#e8cdb4;--c-slate:#a0a7b4;--c-slate-soft:#272c33;--c-slate-ink:#c9ced8;--c-ink:#d9d9d9;--c-ink-soft:#2a2a2a;--c-ink-ink:#ededed;--shadow-sheet:0 -8px 40px #00000080;--shadow-pop:0 10px 30px #00000073,0 1px 2px #0006;--shadow-fab:0 6px 18px #4fcb954d}}:root[data-theme=dark]{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#0f1113;--bg-deep:#0a0c0d;--surface:#171a1d;--surface-2:#1d2125;--surface-3:#242930;--border:#272c31;--border-strong:#3a4149;--ink:#f1eee7;--ink-2:#b3aea4;--ink-3:#7f7b73;--ink-4:#585550;--inverse:#f1eee7;--inverse-ink:#15130f;--accent:#4fcb95;--accent-ink:#072c1b;--accent-soft:#163626;--accent-soft-ink:#8fe3bb;--lime:#c9f04f;--lime-ink:#1f2a00;--expense:#f0735a;--expense-soft:#3a1f19;--income:#4fcb95;--income-soft:#163626;--transfer:#8aa4f0;--transfer-soft:#1e2744;--warn:#f0b44a;--warn-soft:#3a2d12;--danger:#f0735a;--c-moss:#3fb878;--c-moss-soft:#16352a;--c-moss-ink:#8fe3bb;--c-lime:#b9e04a;--c-lime-soft:#2a3410;--c-lime-ink:#d7f08a;--c-sun:#d9ae2a;--c-sun-soft:#3a2f0e;--c-sun-ink:#f3d27a;--c-clay:#e8743f;--c-clay-soft:#3c2015;--c-clay-ink:#f6a77e;--c-rose:#e85c86;--c-rose-soft:#3c1826;--c-rose-ink:#f59db9;--c-plum:#a66fd0;--c-plum-soft:#2e1e3c;--c-plum-ink:#cda8e8;--c-cobalt:#6b8cf0;--c-cobalt-soft:#1b2544;--c-cobalt-ink:#a9bdf8;--c-sky:#3fb0e6;--c-sky-soft:#10303f;--c-sky-ink:#8fd3f3;--c-teal:#2db8ab;--c-teal-soft:#0f3330;--c-teal-ink:#83ddd4;--c-sand:#d4ae8a;--c-sand-soft:#352a20;--c-sand-ink:#e8cdb4;--c-slate:#a0a7b4;--c-slate-soft:#272c33;--c-slate-ink:#c9ced8;--c-ink:#d9d9d9;--c-ink-soft:#2a2a2a;--c-ink-ink:#ededed;--shadow-sheet:0 -8px 40px #00000080;--shadow-pop:0 10px 30px #00000073,0 1px 2px #0006;--shadow-fab:0 6px 18px #4fcb954d}[data-color=moss]{--col:var(--c-moss);--col-soft:var(--c-moss-soft);--col-ink:var(--c-moss-ink)}[data-color=lime]{--col:var(--c-lime);--col-soft:var(--c-lime-soft);--col-ink:var(--c-lime-ink)}[data-color=sun]{--col:var(--c-sun);--col-soft:var(--c-sun-soft);--col-ink:var(--c-sun-ink)}[data-color=clay]{--col:var(--c-clay);--col-soft:var(--c-clay-soft);--col-ink:var(--c-clay-ink)}[data-color=rose]{--col:var(--c-rose);--col-soft:var(--c-rose-soft);--col-ink:var(--c-rose-ink)}[data-color=plum]{--col:var(--c-plum);--col-soft:var(--c-plum-soft);--col-ink:var(--c-plum-ink)}[data-color=cobalt]{--col:var(--c-cobalt);--col-soft:var(--c-cobalt-soft);--col-ink:var(--c-cobalt-ink)}[data-color=sky]{--col:var(--c-sky);--col-soft:var(--c-sky-soft);--col-ink:var(--c-sky-ink)}[data-color=teal]{--col:var(--c-teal);--col-soft:var(--c-teal-soft);--col-ink:var(--c-teal-ink)}[data-color=sand]{--col:var(--c-sand);--col-soft:var(--c-sand-soft);--col-ink:var(--c-sand-ink)}[data-color=slate]{--col:var(--c-slate);--col-soft:var(--c-slate-soft);--col-ink:var(--c-slate-ink)}[data-color=ink]{--col:var(--c-ink);--col-soft:var(--c-ink-soft);--col-ink:var(--c-ink-ink)}[data-color=expense]{--col:var(--expense);--col-soft:var(--expense-soft);--col-ink:var(--expense)}[data-color=income]{--col:var(--income);--col-soft:var(--income-soft);--col-ink:var(--income)}[data-color=transfer]{--col:var(--transfer);--col-soft:var(--transfer-soft);--col-ink:var(--transfer)}[data-color=accent]{--col:var(--accent);--col-soft:var(--accent-soft);--col-ink:var(--accent-soft-ink)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga","kern";overscroll-behavior-y:none;min-height:100%;margin:0;font-size:15px;line-height:1.45}#app{min-height:100dvh}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.15}h1{font-variation-settings:"opsz" 48;font-size:28px}h2{font-variation-settings:"opsz" 32;font-size:20px}h3{font-size:16px}p{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:0}button:disabled{cursor:default;opacity:.55}input,select,textarea{font:inherit;color:inherit}input::placeholder,textarea::placeholder{color:var(--ink-4)}ul,ol{list-style:none;margin:0;padding:0}svg{display:block}::selection{background:var(--lime);color:var(--lime-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}.num,.money{font-variant-numeric:tabular-nums lining-nums}.money{display:inline-flex;white-space:nowrap;font-family:var(--font-display);letter-spacing:-.01em;align-items:baseline;gap:.28em;font-weight:600}.money .cur{font-family:var(--font-ui);letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;font-size:.62em;font-weight:600}.money .frac{color:var(--ink-3);font-size:.72em}.money .sign{font-weight:500}.money-hero{letter-spacing:-.03em;font-variation-settings:"opsz" 96;font-size:clamp(40px,9vw,56px);font-weight:650;line-height:1}.money-xl{letter-spacing:-.025em;font-variation-settings:"opsz" 64;font-size:32px;font-weight:650;line-height:1.05}.money-lg{letter-spacing:-.02em;font-variation-settings:"opsz" 40;font-size:22px;line-height:1.1}.money-md{font-variation-settings:"opsz" 20;font-size:16px}.money-sm{font-variation-settings:"opsz" 14;font-size:14px;font-weight:600}.money-xs{font-size:12px;font-weight:600}.money.is-expense{color:var(--ink)}.money.is-income{color:var(--income)}.money.is-transfer{color:var(--transfer)}.money.is-neg{color:var(--expense)}.money.is-muted{color:var(--ink-3)}.eyebrow{font-family:var(--font-ui);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.muted{color:var(--ink-2)}.faint{color:var(--ink-3)}.small{font-size:13px}.tiny{font-size:12px}.strong{font-weight:600}.mono{font-family:var(--font-mono);font-size:.9em}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row{display:flex;align-items: center;gap:8px}.row-between{display:flex;justify-content:space-between;align-items: center;gap:8px}.col{display:flex;flex-direction:column;gap:4px}.grow{flex:auto;min-width:0}.right{text-align:right}.center{text-align:center}.hide{display:none!important}.sr-only{position:absolute;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px}.stack>*+*{margin-top:12px}.stack-l>*+*{margin-top:20px}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}::view-transition-old(root){animation-duration:.18s}::view-transition-new(root){animation-duration:.18s}.btn{display:inline-flex;border-radius:var(--radius-pill);white-space:nowrap;background:var(--surface-3);color:var(--ink);transition:background var(--t-fast)var(--ease),transform var(--t-fast)var(--ease),opacity var(--t-fast);user-select:none;border:1px solid #0000;justify-content:center;align-items: center;gap:8px;height:40px;padding:0 16px;font-size:14px;font-weight:600;line-height:1}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-primary:hover{filter:brightness(1.06)}.btn-lime{background:var(--lime);color:var(--lime-ink)}.btn-secondary{background:var(--surface);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{color:var(--ink-2);background:0 0}.btn-ghost:hover{background:var(--surface-3);color:var(--ink)}.btn-danger{background:var(--expense-soft);color:var(--expense)}.btn-inverse{background:var(--inverse);color:var(--inverse-ink)}.btn-sm{height:32px;padding:0 12px;font-size:13px}.btn-lg{height:48px;padding:0 22px;font-size:15px}.btn-block{width:100%}.btn[data-busy="1"]{pointer-events:none;opacity:.7}.iconbtn{display:inline-flex;border-radius:var(--radius-pill);color:var(--ink-2);transition:background var(--t-fast),color var(--t-fast),transform var(--t-fast)var(--ease);justify-content:center;align-items: center;width:38px;height:38px}.iconbtn:hover{background:var(--surface-3);color:var(--ink)}.iconbtn:active{transform:scale(.94)}.iconbtn-sm{width:30px;height:30px}.iconbtn-solid{background:var(--surface-3);color:var(--ink)}.segmented{display:inline-flex;background:var(--surface-3);border-radius:var(--radius-pill);gap:2px;padding:3px}.segmented>button{white-space:nowrap;border-radius:var(--radius-pill);color:var(--ink-2);transition:background var(--t-base)var(--ease),color var(--t-base)var(--ease),box-shadow var(--t-base);flex:1 1 0;height:34px;padding:0 14px;font-size:14px;font-weight:600}.segmented>button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #00000014}.segmented>button[aria-pressed=true][data-color]{background:var(--col);color:#fff}.segmented>button[aria-pressed=true][data-color=income]{color:#fff}.segmented-block{display:flex;width:100%}.field{display:flex;flex-direction:column;gap:6px}.label{color:var(--ink-2);font-size:13px;font-weight:600}.input,.select,.textarea{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-strong);transition:border-color var(--t-fast),box-shadow var(--t-fast);appearance:none;-webkit-appearance:none;width:100%;height:44px;padding:0 14px}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.textarea{resize:vertical;height:auto;min-height:88px;padding:12px 14px;line-height:1.4}.select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23908A7E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.input-err{border-color:var(--expense)!important}.field-err{color:var(--expense);font-size:13px}.input-row{display:flex;align-items: center;gap:8px}.toggle{position:relative;background:var(--border-strong);transition:background var(--t-base)var(--ease);border-radius:13px;flex:none;width:44px;height:26px}.toggle:after{content:"";position:absolute;transition:transform var(--t-base)var(--ease);background:#fff;border-radius:50%;width:20px;height:20px;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle[aria-checked=true]{background:var(--accent)}.toggle[aria-checked=true]:after{transform:translate(18px)}.form-row{display:flex;border-bottom:1px solid var(--border);justify-content:space-between;align-items: center;gap:12px;min-height:52px;padding:6px 0}.form-row:last-child{border-bottom:0}.form-row .label{color:var(--ink);font-size:15px;font-weight:500}.form-row .hint{color:var(--ink-3);font-size:13px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-l)}.card-pad{padding:18px}.card-head{display:flex;justify-content:space-between;align-items: center;gap:12px;padding:16px 18px 0}.card-head h2{font-size:17px}.card-head .more{color:var(--accent);font-size:13px;font-weight:600}.list{display:flex;flex-direction:column}.listrow{display:flex;text-align:left;border-top:1px solid var(--border);transition:background var(--t-fast);align-items: center;gap:12px;width:100%;min-height:60px;padding:11px 18px}.list>.listrow:first-child,.list>.daygroup:first-child .listrow:first-of-type{border-top:0}.listrow:hover{background:var(--surface-2)}.listrow .title{font-size:15px;font-weight:600}.listrow .sub{color:var(--ink-3);margin-top:1px;font-size:13px}.listrow .amt{text-align:right;flex:none;margin-left:auto}.listrow .amt .sub{text-align:right}.daygroup .dayhead{display:flex;background:var(--surface);position:sticky;z-index:1;justify-content:space-between;align-items:baseline;padding:14px 18px 6px;top:0}.daygroup .dayhead .eyebrow{color:var(--ink-2)}.daygroup .dayhead .money{color:var(--ink-3)}.disc{display:inline-flex;background:var(--col-soft,var(--surface-3));color:var(--col-ink,var(--ink-2));border-radius:50%;flex:none;justify-content:center;align-items: center;width:40px;height:40px}.disc-sm{width:30px;height:30px}.disc-lg{width:52px;height:52px}.disc-xl{width:64px;height:64px}.disc-solid{background:var(--col,var(--ink));color:#fff}.chips{display:flex;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:8px;padding:2px 0}.chips::-webkit-scrollbar{display:none}.chip{display:inline-flex;border-radius:var(--radius-pill);background:var(--surface);border:1px solid var(--border-strong);color:var(--ink-2);white-space:nowrap;transition:background var(--t-fast),color var(--t-fast),border-color var(--t-fast),transform var(--t-fast)var(--ease);flex:none;align-items: center;gap:6px;height:34px;padding:0 12px;font-size:13px;font-weight:600}.chip:active{transform:scale(.96)}.chip[aria-pressed=true],.chip.is-on{background:var(--inverse);color:var(--inverse-ink);border-color:var(--inverse)}.chip .chip-sub{color:var(--ink-3);font-weight:500}.chip[aria-pressed=true] .chip-sub{color:inherit;opacity:.7}.chip-soft{background:var(--col-soft);color:var(--col-ink);border-color:#0000}.badge{display:inline-flex;border-radius:var(--radius-pill);background:var(--surface-3);color:var(--ink-2);align-items: center;gap:4px;height:22px;padding:0 8px;font-size:12px;font-weight:600}.badge-lime{background:var(--lime);color:var(--lime-ink)}.badge-accent{background:var(--accent-soft);color:var(--accent-soft-ink)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-expense{background:var(--expense-soft);color:var(--expense)}.dot{background:var(--col,var(--ink-3));border-radius:50%;flex:none;width:8px;height:8px}.sheet-backdrop{position:fixed;z-index:50;animation:fade-in var(--t-base)var(--ease)both;backdrop-filter:blur(2px);background:#15130f73;inset:0}.sheet-backdrop.is-closing{animation:fade-out var(--t-base)var(--ease-in)both}.sheet{position:fixed;z-index:51;display:flex;background:var(--surface);border-radius:var(--radius-l)var(--radius-l)0 0;box-shadow:var(--shadow-sheet);animation:sheet-up var(--t-slow)var(--ease)both;padding-bottom:var(--safe-b);flex-direction:column;max-height:calc(100dvh - 24px);bottom:0;left:0;right:0}.sheet.is-closing{animation:sheet-down var(--t-base)var(--ease-in)both}.sheet-grab{background:var(--border-strong);border-radius:2px;width:36px;height:4px;margin:8px auto 0}.sheet-head{display:flex;align-items: center;gap:8px;min-height:52px;padding:10px 12px 8px 18px}.sheet-head h2{flex:1;font-size:18px}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:0 18px 18px}.sheet-foot{display:flex;border-top:1px solid var(--border);background:var(--surface);gap:10px;padding:12px 18px 14px}.sheet-foot>.btn{flex:1}@media (min-width:760px){.sheet{border-radius:var(--radius-l);animation:pop-in var(--t-base)var(--ease)both;box-shadow:var(--shadow-pop);width:min(520px,100vw - 32px);max-height:min(86vh,820px);padding-bottom:0;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.sheet.is-closing{animation:pop-out var(--t-fast)var(--ease-in)both}.sheet-wide{width:min(720px,100vw - 32px)}.sheet-grab{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-down{0%{transform:translateY(0)}to{transform:translateY(100%)}}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,-50%)scale(.96)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes pop-out{0%{opacity:1;transform:translate(-50%,-50%)scale(1)}to{opacity:0;transform:translate(-50%,-50%)scale(.97)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}.rise{animation:rise var(--t-base)var(--ease)both}.toaster{position:fixed;left:50%;bottom:calc(var(--tabbar-h) + var(--safe-b) + 12px);z-index:60;display:flex;pointer-events:none;flex-direction:column;gap:8px;width:min(420px,100vw - 24px);transform:translate(-50%)}@media (min-width:760px){.toaster{bottom:20px;left:auto;right:20px;transform:none}}.toast{pointer-events:auto;display:flex;border-radius:var(--radius);background:var(--inverse);color:var(--inverse-ink);box-shadow:var(--shadow-pop);animation:rise var(--t-base)var(--ease)both;align-items: center;gap:12px;padding:12px 14px 12px 16px;font-size:14px;font-weight:500}.toast .toast-action{color:var(--lime);margin-left:auto;font-weight:700}:root[data-theme=dark] .toast .toast-action,:root:not([data-theme=light]) .toast .toast-action{color:var(--accent-soft-ink)}.toast.is-err{background:var(--expense);color:#fff}.toast.is-ok:before{content:"";background:var(--lime);border-radius:50%;flex:none;width:8px;height:8px}.menu-wrap{position:relative}.menu{position:absolute;z-index:40;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-pop);animation:pop-menu var(--t-fast)var(--ease)both;transform-origin:top right;min-width:200px;padding:6px;top:calc(100% + 6px);right:0}.menu-left{transform-origin:top left;left:0;right:auto}@keyframes pop-menu{0%{opacity:0;transform:scale(.96)translateY(-4px)}to{opacity:1;transform:none}}.menu>button,.menu>a{display:flex;text-align:left;border-radius:8px;align-items: center;gap:10px;width:100%;padding:9px 10px;font-size:14px;font-weight:500}.menu>button:hover,.menu>a:hover{background:var(--surface-2)}.menu>button.is-danger{color:var(--expense)}.menu .sep{background:var(--border);height:1px;margin:6px 4px}.empty{display:flex;text-align:center;color:var(--ink-3);flex-direction:column;align-items: center;gap:8px;padding:36px 20px}.empty svg,.empty img{color:var(--ink-4);width:120px;height:90px}.empty h3{color:var(--ink-2);font-size:16px}.empty p{max-width:320px;font-size:14px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);animation:.8s linear infinite spin;border-radius:50%;width:20px;height:20px}.skeleton{background:linear-gradient(90deg,var(--surface-3)25%,var(--surface-2)50%,var(--surface-3)75%);animation:1.2s linear infinite shimmer;background-size:200% 100%;border-radius:6px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.progress{position:relative;background:var(--surface-3);overflow:hidden;border-radius:3px;height:6px}.progress>i{position:absolute;background:var(--col,var(--accent));transition:width var(--t-slow)var(--ease);border-radius:3px;top:0;bottom:0;left:0}.progress>b{position:absolute;background:var(--ink-4);width:2px;top:-3px;bottom:-3px}.progress.is-over>i{background:var(--expense)}.bucket{display:flex;flex-direction:column;align-items: center;gap:8px}.bucket .jar{position:relative;background:var(--surface-3);overflow:hidden;border-radius:22px;width:100%;height:110px}.bucket .jar:after{content:"";position:absolute;border:1.5px dashed var(--border-strong);pointer-events:none;border-radius:22px;inset:0}.bucket .jar .fill{position:absolute;background:var(--col);transition:height var(--t-slow)var(--ease);border-radius:0 0 22px 22px;bottom:0;left:0;right:0}.bucket.is-over .jar .fill{background:var(--expense)}.bucket .jar .pct{position:absolute;text-align:center;color:var(--ink-2);font-size:12px;font-weight:700;top:8px;left:0;right:0}.bucket .jar .pct.on-fill,.bucket .jar .over{color:#fff;text-shadow:0 1px 2px #00000040}.bucket .jar .over{position:absolute;text-align:center;font-size:12px;font-weight:700;top:8px;left:0;right:0}.bucket .name{text-align:center;max-width:100%;font-size:13px;font-weight:600}.bucket .figs{color:var(--ink-3);font-size:12px}.ring{position:relative;display:inline-grid;place-items: center}.ring svg{transform:rotate(-90deg)}.ring .track{stroke:var(--surface-3)}.ring .bar{stroke:var(--col,var(--accent));stroke-linecap:round;transition:stroke-dashoffset var(--t-slow)var(--ease)}.ring .inner{position:absolute;text-align:center}.chart{position:relative;width:100%}.chart svg{overflow:visible;width:100%;height:auto}.chart .grid{stroke:var(--border);stroke-width:1}.chart .axis{fill:var(--ink-3);font-size:11px;font-family:var(--font-ui);font-variant-numeric:tabular-nums}.chart .bar{fill:var(--col,var(--accent))}.chart .bar.is-dim{opacity:.35}.chart .bar.is-income{fill:var(--income)}.chart .line{fill:none;stroke:var(--col,var(--accent));stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart .area{fill:var(--col,var(--accent));opacity:.1}.chart .marker{fill:var(--surface);stroke:var(--col,var(--accent));stroke-width:2}.chart .hit{fill:transparent}.chart .cross{stroke:var(--ink-4);stroke-width:1;stroke-dasharray:2 3}.tooltip{position:absolute;z-index:5;pointer-events:none;background:var(--inverse);color:var(--inverse-ink);white-space:nowrap;box-shadow:var(--shadow-pop);border-radius:8px;padding:8px 10px;font-size:12px;line-height:1.35;transform:translate(-50%,calc(-100% - 10px))}.tooltip .t-label{opacity:.7}.legend{display:flex;color:var(--ink-2);flex-wrap:wrap;gap:6px 14px;font-size:13px}.legend>span{display:inline-flex;align-items: center;gap:6px}.kpad{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px 0 0}.kpad button{background:var(--surface-2);font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink);transition:background var(--t-fast),transform var(--t-fast)var(--ease);border-radius:12px;height:52px;font-size:22px;font-weight:500}.kpad button:active{background:var(--surface-3);transform:scale(.96)}.kpad button.op{background:var(--surface-3);color:var(--ink-2);font-size:20px}.kpad button.go{grid-row:span 2;background:var(--accent);color:var(--accent-ink)}.kpad button.go:active{filter:brightness(.95)}.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal .dow{text-align:center;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;padding:6px 0;font-size:11px;font-weight:600}.cal .day{position:relative;display:flex;font-variant-numeric:tabular-nums;transition:background var(--t-fast);border-radius:10px;flex-direction:column;align-items: center;gap:2px;min-height:52px;padding:6px 2px 4px}.cal .day:hover{background:var(--surface-2)}.cal .day .d{display:grid;border-radius:50%;place-items: center;width:26px;height:26px;font-size:14px;font-weight:500}.cal .day.is-today .d{background:var(--inverse);color:var(--inverse-ink);font-weight:700}.cal .day.is-selected{background:var(--accent-soft)}.cal .day.is-out{opacity:.35}.cal .day .v{font-size:10px;font-weight:600;line-height:1.1}.cal .day .v.out{color:var(--expense)}.cal .day .v.in{color:var(--income)}.cal .day .bar{background:var(--expense);opacity:.8;border-radius:2px;width:70%;height:3px}.hairline{background:var(--border);height:1px}.kv{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:14px}.kv .k{color:var(--ink-3)}.notice{display:flex;border-radius:var(--radius);background:var(--accent-soft);color:var(--accent-soft-ink);align-items: center;gap:10px;padding:12px 14px;font-size:14px;font-weight:500}.notice-warn{background:var(--warn-soft);color:var(--warn)}.notice-expense{background:var(--expense-soft);color:var(--expense)}.pressable{transition:transform var(--t-fast)var(--ease)}.pressable:active{transform:scale(.98)}.amount-display{display:flex;justify-content:flex-end;align-items:baseline;gap:8px;min-height:64px;padding:6px 0}.amount-display .expr{font-family:var(--font-ui);color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:13px}.amount-display .money{letter-spacing:-.03em;font-variation-settings:"opsz" 96;font-size:clamp(36px,10vw,48px);font-weight:650;line-height:1}.amount-display .money.is-empty{color:var(--ink-4)}.amount-display .caret{background:var(--accent);animation:1s steps(2,end) infinite blink;align-self: center;width:2px;height:.9em}@keyframes blink{50%{opacity:0}}.catpick{margin-top:12px}.catpick-group{display:grid;grid-template-columns:repeat(2,1fr);border-bottom:1px solid var(--border);gap:4px 8px;padding:6px 0 10px}.catpick-group:last-of-type{border-bottom:0}.catpick-item{display:flex;text-align:left;transition:background var(--t-fast);border-radius:10px;align-items: center;gap:10px;min-height:44px;padding:4px 8px;font-size:14px;font-weight:500}.catpick-item:hover{background:var(--surface-2)}.catpick-item.is-parent{grid-column:1/-1;font-size:15px;font-weight:600}.catpick-item.is-on{background:var(--accent-soft);color:var(--accent-soft-ink)}.catpick-item.is-none{color:var(--ink-3);margin-top:8px}@media (min-width:760px){.catpick-group{grid-template-columns:repeat(3,1fr)}}.listrow.is-on{background:var(--accent-soft)}.md{overflow-wrap:anywhere;font-size:15px;line-height:1.5}.md>*+*{margin-top:10px}.md p{margin:0}.md h1,.md h2,.md h3{margin-top:14px;font-size:16px}.md ul,.md ol{padding-left:20px}.md ul{list-style:disc}.md ol{list-style:decimal}.md li+li{margin-top:4px}.md code{font-family:var(--font-mono);background:var(--surface-3);border-radius:4px;padding:1px 5px;font-size:.9em}.md pre{background:var(--surface-3);overflow-x:auto;border-radius:8px;padding:10px 12px}.md pre code{background:0 0;padding:0}.md table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.md th,.md td{text-align:left;border-bottom:1px solid var(--border);padding:6px 8px}.md th{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-size:12px}.md td:last-child,.md th:last-child{text-align:right}.md a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.md blockquote{border-left:3px solid var(--border-strong);color:var(--ink-2);padding-left:12px}.md strong{font-weight:650}.shell{display:flex;min-height:100dvh}.main{padding-bottom:calc(var(--tabbar-h) + var(--safe-b) + 16px);flex:auto;min-width:0}.page{max-width:var(--content-w);padding:calc(12px + var(--safe-t))16px 24px;width:100%;margin:0 auto}.page-head{display:flex;justify-content:space-between;align-items: center;gap:12px;min-height:44px;margin-bottom:14px}.page-head h1{font-size:26px}.page-head .actions{display:flex;align-items: center;gap:4px}.page-sub{color:var(--ink-3);margin-top:2px;font-size:14px}.section{margin-top:22px}.section-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;padding:0 2px}.section-head h2{font-size:17px}.section-head .more{color:var(--accent);font-size:13px;font-weight:600}.grid-2,.grid-3{display:grid;grid-template-columns:1fr;gap:14px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.sidebar{display:none}.tabbar{position:fixed;z-index:30;display:grid;grid-template-columns:repeat(5,1fr);height:calc(var(--tabbar-h) + var(--safe-b));padding:0 6px var(--safe-b);background:color-mix(in srgb,var(--surface)88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--border);align-items: end;bottom:0;left:0;right:0}.tabbar a,.tabbar .tab-add{display:flex;height:var(--tabbar-h);color:var(--ink-3);transition:color var(--t-fast);position:relative;flex-direction:column;justify-content:center;align-items: center;gap:3px;font-size:11px;font-weight:600}.tabbar a[aria-current=page]{color:var(--ink)}.tabbar a .badge-dot{position:absolute;background:var(--expense);border:2px solid var(--surface);border-radius:50%;width:8px;height:8px;top:10px;right:calc(50% - 16px)}.tabbar .tab-add>span{display:grid;background:var(--accent);color:var(--accent-ink);box-shadow:var(--shadow-fab);transition:transform var(--t-fast)var(--ease);border-radius:50%;place-items: center;width:52px;height:52px;transform:translateY(-10px)}.tabbar .tab-add:active>span{transform:translateY(-10px)scale(.94)}@media (min-width:760px){.main{padding-bottom:32px}.page{padding:28px 32px 40px}.page-head{margin-bottom:20px}.page-head h1{font-size:30px}.tabbar{display:none}.sidebar{display:flex;width:var(--sidebar-w);position:sticky;border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex:none;height:100dvh;padding:22px 14px;top:0}.sidebar .brand{display:flex;font-family:var(--font-display);letter-spacing:-.02em;align-items: center;gap:10px;padding:4px 10px 22px;font-size:20px;font-weight:700}.sidebar .brand svg{width:26px;height:26px}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:flex;color:var(--ink-2);transition:background var(--t-fast),color var(--t-fast);position:relative;border-radius:10px;align-items: center;gap:12px;height:40px;padding:0 12px;font-size:14.5px;font-weight:500}.sidebar nav a:hover{background:var(--surface-3);color:var(--ink)}.sidebar nav a[aria-current=page]{background:var(--surface);color:var(--ink);border:1px solid var(--border);font-weight:600;box-shadow:0 1px 2px #0000000d}.sidebar nav a .count{color:var(--expense);margin-left:auto;font-size:12px;font-weight:700}.sidebar .side-add{margin:14px 0 6px}.sidebar .side-foot{display:flex;color:var(--ink-3);align-items: center;gap:10px;margin-top:auto;padding:8px 10px;font-size:13px}.grid-2{grid-template-columns:1fr 1fr;gap:18px}.grid-3{grid-template-columns:repeat(3,1fr);gap:18px}.section{margin-top:28px}}@media (min-width:1100px){.page{padding:36px 44px 48px}}.topbar{display:flex;align-items: center;gap:8px}.avatar{display:grid;background:var(--inverse);color:var(--inverse-ink);font-family:var(--font-display);letter-spacing:.02em;border-radius:50%;place-items: center;width:36px;height:36px;font-size:14px;font-weight:700}.offline-bar{position:sticky;z-index:20;text-align:center;background:var(--warn-soft);color:var(--warn);padding:6px 12px;font-size:13px;font-weight:600;top:0}.monthnav{display:inline-flex;align-items: center;gap:2px}.monthnav .label{text-align:center;font-family:var(--font-display);color:var(--ink);min-width:120px;font-size:16px;font-weight:600}.auth{display:grid;place-items: center;min-height:100dvh;padding:24px 16px}.auth-card{width:min(400px,100%)}.auth-brand{display:flex;font-family:var(--font-display);letter-spacing:-.02em;align-items: center;gap:10px;margin-bottom:26px;font-size:26px;font-weight:700}.auth-brand svg{width:34px;height:34px}.auth h1{margin-bottom:4px;font-size:24px}.auth .lede{color:var(--ink-2);margin-bottom:22px}.auth form{display:flex;flex-direction:column;gap:14px}.auth .switch{color:var(--ink-2);text-align:center;margin-top:18px;font-size:14px}.auth .switch button{color:var(--accent);font-weight:600}.hero{position:relative;overflow:hidden}.hero .eyebrow{margin-bottom:6px}.hero .hero-sub{display:flex;color:var(--ink-2);flex-wrap:wrap;align-items: center;gap:8px;margin-top:10px;font-size:14px}.hero .delta{display:inline-flex;align-items: center;gap:3px;font-weight:600}.hero .delta.is-up{color:var(--expense)}.hero .delta.is-down{color:var(--income)}.stat{display:flex;flex-direction:column;gap:2px}.stat .eyebrow{font-size:10.5px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.strip{display:flex;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x proximity;gap:10px;margin:0 -16px;padding:2px 16px}.strip::-webkit-scrollbar{display:none}.strip>*{scroll-snap-align:start;flex:none}@media (min-width:760px){.strip{flex-wrap:wrap;margin:0;padding:2px 0}}.acct-card{border-radius:var(--radius-l);background:var(--surface);border:1px solid var(--border);text-align:left;transition:transform var(--t-fast)var(--ease),border-color var(--t-fast);width:168px;padding:14px 14px 12px}.acct-card:hover{border-color:var(--border-strong)}.acct-card:active{transform:scale(.98)}.acct-card .name{color:var(--ink-2);margin-top:10px;font-size:13px;font-weight:600}.acct-card .money{margin-top:2px}.acct-card.is-add{display:grid;color:var(--ink-3);border-style:dashed;place-items: center;font-size:13px;font-weight:600}.streak{display:flex;border-radius:var(--radius);background:var(--lime);color:var(--lime-ink);align-items: center;gap:12px;padding:12px 14px;font-size:14px;font-weight:600}.streak .flame{display:grid;background:#00000014;border-radius:50%;place-items: center;width:32px;height:32px}.streak .sub{opacity:.8;font-weight:500}.entry{display:flex;flex-direction:column;gap:10px;padding-top:4px}.entry .amount-display{padding:10px 0 6px}.amount-input{text-align:right;font-family:var(--font-display);letter-spacing:-.03em;font-variation-settings:"opsz" 96;color:var(--ink);background:0 0;border:0;width:100%;padding:0;font-size:44px;font-weight:650}.amount-input:focus{outline:none}.amount-display .money[data-color] .cur{color:var(--col)}.entry-rows{display:flex;flex-direction:column;gap:8px}.entry-row{display:flex;background:var(--surface-2);border-radius:12px;align-items: center;gap:10px;min-height:46px;padding:4px 6px 4px 8px}.entry-row.is-button{text-align:left;transition:background var(--t-fast);width:100%}.entry-row.is-button:hover{background:var(--surface-3)}.entry-input{background:0 0;border:0;flex:1;min-width:0;height:38px;padding:0 4px;font-size:15px}.entry-input:focus{outline:none}.entry-chips{padding:0 2px}.entry-splits{display:flex;border:1px dashed var(--border-strong);border-radius:12px;flex-direction:column;gap:6px;padding:8px}.entry-transfer{display:grid;grid-template-columns:1fr auto 1fr;align-items: center;gap:8px}.entry-acct{display:flex;background:var(--surface-2);text-align:left;border-radius:12px;flex-direction:column;gap:4px;min-width:0;padding:10px 12px}.entry-acct .row{min-width:0}.entry-arrow{color:var(--ink-3)}@media (max-width:759px){.sheet .entry{padding-bottom:4px}.sheet-foot:has(.kpad){border-top:0;padding-top:0}}.hero .row-between.small{flex-wrap:wrap;row-gap:2px}@media (max-width:759px){.grid-auto{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px}.bucket .jar{height:92px}}.home-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:20px}.home-main,.home-side{min-width:0}.home-side .section-head{margin-bottom:10px}.hero-budget{margin-top:16px}.home .stats .stat{padding:14px 16px}.home .stats .money-lg{font-size:19px}@media (max-width:420px){.home .stats{gap:8px}.home .stats .stat{padding:12px 10px}.home .stats .money-lg{font-size:16px}.home .stats .money .cur{display:none}}@media (min-width:1000px){.home-grid{grid-template-columns:minmax(0,1.55fr)minmax(300px,1fr);align-items: start;gap:24px}.home-side{position:sticky;top:28px}}.ledger-controls{display:flex;flex-direction:column;gap:10px}.ledger-summary{display:flex;align-items:baseline;gap:16px;padding:12px 4px 0;font-size:13px}.ledger-summary .eyebrow{margin-right:4px}.ledger-cal .cal .day{min-height:56px}@media (min-width:760px){.ledger-controls{flex-direction:row;justify-content:space-between;align-items: center}.ledger-controls .chips{flex-wrap:wrap}}.chat-page{display:flex;height:calc(100dvh - var(--tabbar-h) - var(--safe-b));margin-bottom:calc(-16px - var(--tabbar-h) - var(--safe-b));flex-direction:column;min-height:0}.chat-main{display:flex;flex-direction:column;flex:auto;min-width:0;min-height:0}.chat-thread{display:flex;flex-direction:column;flex:auto;min-height:0}.chat-head{display:flex;padding:calc(4px + var(--safe-t))8px 4px 8px;border-bottom:1px solid var(--border);background:var(--bg);align-items: center;gap:8px;min-height:52px}.chat-head h2{flex:auto;min-width:0;padding:0 4px;font-size:17px}.chat-scroll{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;flex:auto;min-height:0}.chat-msgs{display:flex;flex-direction:column;gap:18px;width:100%;max-width:760px;margin:0 auto;padding:18px 16px 12px}.chat-msg{display:flex;animation:rise var(--t-base)var(--ease)both;flex-direction:column;gap:10px;min-width:0}.chat-msg.is-user{align-items: flex-end}.chat-bubble{background:var(--surface-3);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px 18px 4px;max-width:85%;padding:10px 14px;font-size:15px;line-height:1.45}.chat-msg.is-assistant{align-items:stretch;padding-right:8px}.chat-md{font-size:15.5px}.chat-status{display:flex;color:var(--ink-3);align-items: center;gap:8px;font-size:13px}.chat-status>i,.chat-live>i{background:var(--accent);animation:1.2s ease-in-out infinite blink;border-radius:50%;flex:none;width:7px;height:7px}.chat-live{display:inline-flex;color:var(--accent);white-space:nowrap;align-items: center;gap:6px;font-size:12px;font-weight:600}.chat-notice{font-weight:500}.chat-tool{border:1px solid var(--border);background:var(--surface);overflow:hidden;border-radius:12px;font-size:13px}.chat-tool.is-err{border-color:color-mix(in srgb,var(--expense)40%,var(--border))}.chat-tool-head{display:flex;text-align:left;transition:background var(--t-fast);align-items: center;gap:8px;width:100%;min-height:38px;padding:7px 10px}.chat-tool-head:hover{background:var(--surface-2)}.chat-tool-icon{display:grid;background:var(--accent-soft);color:var(--accent-soft-ink);border-radius:50%;flex:none;place-items: center;width:22px;height:22px}.chat-tool.is-err .chat-tool-icon{background:var(--expense-soft);color:var(--expense)}.chat-tool.is-pending .chat-tool-icon{background:var(--surface-3)}.chat-tool-label{color:var(--ink);white-space:nowrap;font-weight:600}.chat-tool-sum{color:var(--ink-2);flex:auto;min-width:0}.chat-tool.is-err .chat-tool-sum{color:var(--expense)}.chat-tool-chev{color:var(--ink-4);flex:none}.chat-tool-table{border-collapse:collapse;font-variant-numeric:tabular-nums;border-top:1px solid var(--border);width:100%}.chat-tool-table th{text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);padding:6px 10px 4px;font-size:11px;font-weight:600}.chat-tool-table td{border-top:1px solid var(--border);color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:240px;padding:5px 10px}.chat-tool-table th:not(:first-child),.chat-tool-table td:not(:first-child){text-align:right}.chat-tool-table td:first-child{width:60%}.chat-tool-table tfoot td{color:var(--ink-3);text-align:left;font-size:12px}.chat-tool-raw{border-top:1px solid var(--border);background:var(--surface-2);display:flex;flex-direction:column;gap:4px;padding:8px 10px 10px}.chat-tool-raw pre{overflow:auto;font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink-2);max-height:240px;margin:0 0 6px;font-size:11.5px;line-height:1.4}.chat-composer{border-top:1px solid var(--border);background:var(--bg);flex:none;padding:8px 12px 10px}.chat-composer-box{display:flex;background:var(--surface);border:1px solid var(--border-strong);transition:border-color var(--t-fast),box-shadow var(--t-fast);border-radius:22px;align-items: flex-end;gap:6px;width:100%;max-width:760px;margin:0 auto;padding:5px 5px 5px 14px}.chat-composer-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.chat-input{resize:none;background:0 0;border:0;flex:auto;min-width:0;min-height:34px;max-height:168px;padding:7px 0;font-size:15px;line-height:1.4}.chat-input:focus{outline:none}.chat-input:disabled{color:var(--ink-3)}.chat-send{display:grid;background:var(--accent);color:var(--accent-ink);transition:transform var(--t-fast)var(--ease),opacity var(--t-fast);border-radius:50%;flex:none;place-items: center;width:34px;height:34px}.chat-send:active{transform:scale(.94)}.chat-send:disabled{opacity:.35}.chat-send.is-stop{background:var(--inverse);color:var(--inverse-ink)}.chat-intro{display:flex;flex-direction:column;align-items: flex-start;gap:6px;width:100%;max-width:560px;margin:0 auto;padding:24px 16px}.chat-intro.is-centered{flex:auto;justify-content:center;min-height:100%}.chat-intro h3{color:var(--ink);font-size:20px}.chat-intro p{font-size:14px}.chat-intro-mark{display:grid;background:var(--lime);color:var(--lime-ink);border-radius:50%;place-items: center;width:44px;height:44px;margin-bottom:6px}.chat-examples{display:grid;grid-template-columns:1fr;gap:8px;width:100%;margin-top:14px}.chat-example{text-align:left;color:var(--ink);background:var(--surface);border:1px solid var(--border);transition:border-color var(--t-fast),background var(--t-fast),transform var(--t-fast)var(--ease);border-radius:12px;padding:12px 14px;font-size:14px;font-weight:500}.chat-example:hover{border-color:var(--border-strong);background:var(--surface-2)}.chat-example:active{transform:scale(.98)}.chat-rows{display:flex;flex-direction:column;gap:2px;padding:6px}.chat-rows-empty{padding:10px 8px}.chat-row{display:flex;transition:background var(--t-fast);border:1px solid #0000;border-radius:10px;align-items: center;gap:4px}.chat-row:hover{background:var(--surface-3)}.chat-row.is-on{background:var(--surface);border-color:var(--border)}.chat-row .iconbtn{opacity:0;margin-right:2px}.chat-row:hover .iconbtn,.chat-row.is-on .iconbtn{opacity:1}.chat-row .menu-wrap:has(.menu) .iconbtn{opacity:1}.chat-row-link{display:flex;flex-direction:column;flex:auto;gap:1px;min-width:0;padding:8px 6px 8px 10px}.chat-row-link .title{color:var(--ink);font-size:14px;font-weight:500}.chat-row-link .sub{color:var(--ink-3);font-size:12px}.chat-rows.is-page{padding:4px}.chat-rows.is-page .chat-row{border-radius:12px}.chat-rows.is-page .chat-row .iconbtn{opacity:1}.chat-rows.is-page .chat-row-link{padding:12px 8px 12px 14px}.chat-rows.is-page .chat-row-link .title{font-size:15px;font-weight:600}@media (hover:none){.chat-row .iconbtn{opacity:1}}@media (min-width:760px){.chat-page{height:100dvh;margin-bottom:-32px}.chat-page.is-split{flex-direction:row}.chat-side{display:flex;border-right:1px solid var(--border);background:var(--bg);flex-direction:column;flex:none;width:260px;min-height:0}.chat-side-head{display:flex;justify-content:space-between;align-items: center;gap:8px;padding:22px 14px 10px 18px}.chat-side-head h2{font-size:22px}.chat-side .chat-rows{overflow-y:auto;flex:auto;min-height:0;padding:4px 10px 16px}.chat-head{min-height:58px;padding:10px 16px 8px 20px}.chat-head h2{font-size:18px}.chat-msgs{gap:22px;padding:26px 24px 16px}.chat-composer{border-top:0;padding:10px 24px 18px}.chat-examples{grid-template-columns:1fr 1fr}.chat-intro{padding:32px 24px}}
