@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/88a013264a4e85f3-s.p.3d1hgzl_2jziv.woff2)format("woff2");unicode-range:U+E81-EDF,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/59e3947e472c47fa-s.1uurkx5r9l5cc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Noto Sans Lao;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/0705d5f655c6cf46-s.p.15sp3jtlionyz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/88a013264a4e85f3-s.p.3d1hgzl_2jziv.woff2)format("woff2");unicode-range:U+E81-EDF,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/59e3947e472c47fa-s.1uurkx5r9l5cc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Noto Sans Lao;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/0705d5f655c6cf46-s.p.15sp3jtlionyz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/88a013264a4e85f3-s.p.3d1hgzl_2jziv.woff2)format("woff2");unicode-range:U+E81-EDF,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/59e3947e472c47fa-s.1uurkx5r9l5cc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Noto Sans Lao;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/0705d5f655c6cf46-s.p.15sp3jtlionyz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/88a013264a4e85f3-s.p.3d1hgzl_2jziv.woff2)format("woff2");unicode-range:U+E81-EDF,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Lao;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/59e3947e472c47fa-s.1uurkx5r9l5cc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Noto Sans Lao;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/0705d5f655c6cf46-s.p.15sp3jtlionyz.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Noto Sans Lao Fallback;src:local(Arial);ascent-override:111.26%;descent-override:43.45%;line-gap-override:0.0%;size-adjust:106.33%}.noto_sans_lao_5a9a45c8-module__UavgdG__className{font-family:Noto Sans Lao,Noto Sans Lao Fallback;font-style:normal}.noto_sans_lao_5a9a45c8-module__UavgdG__variable{--font-lao:"Noto Sans Lao", "Noto Sans Lao Fallback"}
:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--ink:#14231d;--ink-strong:#071b15;--muted:#63726b;--muted-strong:#52645c;--muted-soft:#7b8b84;--placeholder:#7c8a83;--line:#e2e9e5;--line-soft:#edf2ef;--field-line:#cfdcd4;--chip-line:#d6dfda;--surface:#fff;--surface-hover:#f7faf8;--canvas:#f4f8f5;--stage:#e8efea;--stage-soft:#f4f7f5;--drop-bed:#f7fbf8;--drop-bed-hover:#f2f9f5;--brand:#0e7c55;--brand-dark:#0a6244;--brand-ink:#2c6b52;--brand-ink-soft:#39725b;--brand-soft:#e4f4ec;--brand-soft-hover:#ffffffb8;--brand-line:#cfe9dc;--bar-soft:#8bd0b0;--tone-1:#0e7c55;--tone-2:#2c8f6b;--tone-3:#4aa281;--tone-4:#68b597;--tone-5:#86c8ad;--tone-6:#a4dbc3;--chart-name:#43564d;--amber:#9a5a08;--amber-soft:#fff4df;--amber-line:#f0dfc0;--amber-wash:#fffaf0;--amber-tint:#fffdf9;--amber-hover:#fffdfa;--red:#c23d4b;--red-ink:#9f2837;--red-ink-soft:#8f2935;--red-soft:#fff0f1;--red-line:#f3d4d8;--red-wash:#fff5f6;--red-tint:snow;--on-fill:#fff;--on-fill-faint:#ffffff6b;--veil:#0b241bb8;--veil-ink:#e2f4ebdb;--on-veil:#fff;--on-veil-faint:#ffffff61;--scrim:#08181275;--overlay:#08120ef2;--pill-over-image:#fffffff2;--on-pill:#14231d;--selection:#bfe5d2;--scrollbar:#6fa58c;--inverse-surface:#14231d;--inverse-ink:#fff;--inverse-accent:#9ee2c1;--snackbar-saved:#0a6244;--focus-ring:#0e7c5561;--ring-brand:#0e7c553d;--ring-brand-soft:#0e7c5524;--ring-brand-faint:#0e7c5514;--ring-amber:#9a5a0838;--ring-red:#c23d4b38;--shadow:0 12px 34px #12302412;--shadow-bar:0 -6px 20px #1230240f;--shadow-action:0 9px 22px #0e7c552e;--shadow-mark:0 10px 24px #0e7c5533;--shadow-tab:0 2px 8px #12302414;--shadow-dialog:0 24px 70px #08181240;--shadow-snackbar:0 12px 30px #1230243b;--shadow-stage:0 10px 28px #12302429;--shadow-receipt:0 8px 24px #1230242b;--shadow-menu:0 16px 34px #12302429;--shadow-pill:0 4px 14px #1230241a;--shadow-dock:0 10px 18px -14px #12302480;--font-stack:var(--font-lao), "Noto Sans Lao", "Leelawadee UI", "Lao Sangam MN", system-ui, sans-serif;--bottom-safe:env(safe-area-inset-bottom,0px);--tab-bar-height:68px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e7efea;--ink-strong:#fff;--muted:#94a69d;--muted-strong:#a7b8ae;--muted-soft:#7d8f86;--placeholder:#8b9c93;--line:#27332e;--line-soft:#1f2a25;--field-line:#33413a;--chip-line:#33413a;--surface:#16201c;--surface-hover:#1d2823;--canvas:#0d1512;--stage:#101a16;--stage-soft:#131e19;--drop-bed:#131e19;--drop-bed-hover:#182722;--brand:#35b581;--brand-dark:#56cd9b;--brand-ink:#7fdcae;--brand-ink-soft:#6fd0a2;--brand-soft:#14291f;--brand-soft-hover:#ffffff14;--brand-line:#24493a;--bar-soft:#2c6b4f;--tone-1:#35b581;--tone-2:#4dbf90;--tone-3:#66c9a0;--tone-4:#7fd3af;--tone-5:#98ddbf;--tone-6:#b1e7ce;--chart-name:#b6c8bf;--amber:#f0b45f;--amber-soft:#2b2010;--amber-line:#4a3819;--amber-wash:#34281a;--amber-tint:#241d10;--amber-hover:#201a10;--red:#ff8a92;--red-ink:#ff9aa2;--red-ink-soft:#ffb0b7;--red-soft:#2c1418;--red-line:#4d2229;--red-wash:#351a20;--red-tint:#26151a;--on-fill:#06231a;--on-fill-faint:#06231a66;--selection:#1f5a41;--scrollbar:#3a4d45;--inverse-surface:#24312c;--inverse-ink:#eef5f1;--inverse-accent:#6fdcaa;--snackbar-saved:#1b4b38;--focus-ring:#35b58180;--ring-brand:#35b58159;--ring-brand-soft:#35b58138;--ring-brand-faint:#35b58124;--ring-amber:#f0b45f4d;--ring-red:#ff8a924d;--shadow:0 12px 34px #00000080;--shadow-bar:0 -6px 20px #0006;--shadow-action:0 9px 22px #00000073;--shadow-mark:0 10px 24px #00000073;--shadow-tab:0 2px 8px #00000080;--shadow-dialog:0 24px 70px #000000a6;--shadow-snackbar:0 12px 30px #0000008c;--shadow-stage:0 10px 28px #00000080;--shadow-receipt:0 8px 24px #0000008c;--shadow-menu:0 16px 34px #0009;--shadow-pill:0 4px 14px #00000073;--shadow-dock:0 10px 18px -14px #000000e6}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e7efea;--ink-strong:#fff;--muted:#94a69d;--muted-strong:#a7b8ae;--muted-soft:#7d8f86;--placeholder:#8b9c93;--line:#27332e;--line-soft:#1f2a25;--field-line:#33413a;--chip-line:#33413a;--surface:#16201c;--surface-hover:#1d2823;--canvas:#0d1512;--stage:#101a16;--stage-soft:#131e19;--drop-bed:#131e19;--drop-bed-hover:#182722;--brand:#35b581;--brand-dark:#56cd9b;--brand-ink:#7fdcae;--brand-ink-soft:#6fd0a2;--brand-soft:#14291f;--brand-soft-hover:#ffffff14;--brand-line:#24493a;--bar-soft:#2c6b4f;--tone-1:#35b581;--tone-2:#4dbf90;--tone-3:#66c9a0;--tone-4:#7fd3af;--tone-5:#98ddbf;--tone-6:#b1e7ce;--chart-name:#b6c8bf;--amber:#f0b45f;--amber-soft:#2b2010;--amber-line:#4a3819;--amber-wash:#34281a;--amber-tint:#241d10;--amber-hover:#201a10;--red:#ff8a92;--red-ink:#ff9aa2;--red-ink-soft:#ffb0b7;--red-soft:#2c1418;--red-line:#4d2229;--red-wash:#351a20;--red-tint:#26151a;--on-fill:#06231a;--on-fill-faint:#06231a66;--selection:#1f5a41;--scrollbar:#3a4d45;--inverse-surface:#24312c;--inverse-ink:#eef5f1;--inverse-accent:#6fdcaa;--snackbar-saved:#1b4b38;--focus-ring:#35b58180;--ring-brand:#35b58159;--ring-brand-soft:#35b58138;--ring-brand-faint:#35b58124;--ring-amber:#f0b45f4d;--ring-red:#ff8a924d;--shadow:0 12px 34px #00000080;--shadow-bar:0 -6px 20px #0006;--shadow-action:0 9px 22px #00000073;--shadow-mark:0 10px 24px #00000073;--shadow-tab:0 2px 8px #00000080;--shadow-dialog:0 24px 70px #000000a6;--shadow-snackbar:0 12px 30px #0000008c;--shadow-stage:0 10px 28px #00000080;--shadow-receipt:0 8px 24px #0000008c;--shadow-menu:0 16px 34px #0009;--shadow-pill:0 4px 14px #00000073;--shadow-dock:0 10px 18px -14px #000000e6}}*{box-sizing:border-box}html{background:var(--canvas);scrollbar-color:var(--scrollbar) var(--canvas);scrollbar-width:thin;-webkit-text-size-adjust:100%;min-width:320px}body{color:var(--ink);background:var(--canvas);font-family:var(--font-stack);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;caret-color:var(--brand);margin:0;font-size:16px;line-height:1.55}::selection{color:var(--ink);background:var(--selection)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--canvas)}::-webkit-scrollbar-thumb{background:var(--scrollbar);border:3px solid var(--canvas);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--brand)}button,input,select,textarea{font:inherit;color:inherit}button,select{min-height:44px}button,select,label,a{-webkit-tap-highlight-color:transparent}a{color:var(--brand);text-decoration:none}a:hover{color:var(--brand-dark)}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.num{font-variant-numeric:tabular-nums;letter-spacing:-.015em}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell,.main-content{min-height:100dvh}.avatar-art{width:var(--avatar-size,34px);height:var(--avatar-size,34px);object-fit:cover;box-shadow:inset 0 0 0 1px var(--brand-line);border-radius:50%;place-items:center;display:grid}.avatar-fallback{color:var(--brand-dark);background:var(--brand-soft);font-size:calc(var(--avatar-size,34px) * .44);font-weight:800;line-height:1}.tab-bar-account:hover .avatar-art,.tab-bar-account:active .avatar-art{box-shadow:inset 0 0 0 1px var(--brand)}.screen{width:100%;max-width:560px;padding:18px 15px calc(116px + var(--bottom-safe));flex-direction:column;gap:14px;margin:0 auto;animation:.22s cubic-bezier(.22,1,.36,1) backwards rise;display:flex}.screen.flush{padding-inline:0}.screen.flush>:not(.bleed){padding-inline:15px}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}.tab-bar{z-index:30;height:calc(var(--tab-bar-height) + var(--bottom-safe));padding-bottom:var(--bottom-safe);background:var(--surface);border-top:1px solid var(--line);box-shadow:var(--shadow-bar);position:fixed;inset:auto 0 0}.tab-bar-inner{grid-template-columns:1fr 1fr 96px 1fr 1fr;align-items:center;width:100%;max-width:560px;height:100%;margin:0 auto;display:grid;position:relative}.tab-bar-item{min-width:0;height:100%;color:var(--muted-strong);flex-direction:column;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:650;line-height:1.25;display:flex}.tab-bar-item.slot-1{grid-column:1}.tab-bar-item.slot-2{grid-column:2}.tab-bar-item.slot-3{grid-column:4}.tab-bar-item.slot-4{grid-column:5}.tab-bar-account{cursor:pointer;background:0 0;border:0;padding:0;font-family:inherit}.tab-bar-icon{border-radius:999px;place-items:center;width:44px;height:30px;display:grid;position:relative}.tab-bar-icon svg{width:23px;height:23px}.tab-bar-icon .avatar-art svg{width:56%;height:56%}.tab-bar-badge{box-shadow:0 0 0 2px var(--surface);min-width:17px;height:17px;color:var(--on-fill);background:var(--amber);font-variant-numeric:tabular-nums;border-radius:999px;place-items:center;padding:0 4px;font-size:10px;font-weight:800;line-height:1;display:grid;position:absolute;top:-3px;left:calc(50% + 6px)}.tab-bar-item.active{color:var(--brand);font-weight:800}.tab-bar-item.active .tab-bar-icon{color:var(--brand);background:0 0}.capture-fab{z-index:1;width:56px;height:56px;min-height:56px;color:var(--on-fill);background:var(--brand);border:4px solid var(--surface);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:transform .16s,background .16s;display:grid;position:absolute;top:-20px;left:50%;transform:translate(-50%)}.capture-fab:hover{color:var(--on-fill);background:var(--brand-dark)}.capture-fab:active{transform:translate(-50%)scale(.95)}.capture-fab:disabled{opacity:.58;cursor:wait}.fab-label{color:var(--muted-strong);white-space:nowrap;pointer-events:none;font-size:11px;font-weight:650;line-height:1.25;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}.screen-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.screen-header h1{letter-spacing:-.02em;margin:0;font-size:27px;font-weight:800;line-height:1.3}.screen-header p{color:var(--muted);margin:4px 0 0;font-size:14px}.card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px}.section-head,.overview-head{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.section-head h2,.overview-head h2{margin:0;font-size:18px;font-weight:800;line-height:1.35}.text-link{min-height:44px;color:var(--brand);flex-shrink:0;align-items:center;margin:-10px -6px -10px 0;padding:0 6px;font-size:14px;font-weight:750;display:inline-flex}.button{cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:0 18px;font-size:14.5px;font-weight:750;line-height:1.3;transition:background .15s,color .15s,transform .15s,opacity .15s;display:inline-flex}.button:disabled{opacity:.58;cursor:progress}.button:active:not(:disabled){transform:scale(.985)}.button.primary{color:var(--on-fill);background:var(--brand);box-shadow:var(--shadow-action)}.button.primary:hover,.button.primary:active:not(:disabled){color:var(--on-fill);background:var(--brand-dark)}.button.quiet{color:var(--ink);background:var(--surface);border:1px solid var(--line)}.button.quiet:hover,.button.quiet:active:not(:disabled){color:var(--ink);background:var(--surface-hover)}.button.danger{color:var(--red);background:var(--red-soft)}.button.wide{width:100%;min-height:54px;font-size:16px}.button.link{min-height:44px;color:var(--brand);background:0 0;padding-inline:12px}.icon-button{width:44px;height:44px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:11px;place-items:center;padding:0;display:inline-grid}.icon-button:hover,.icon-button:active{background:var(--brand-soft);color:var(--brand-dark)}.form-error{color:var(--red-ink);background:var(--red-soft);border:1px solid var(--red-line);border-radius:11px;margin:0;padding:11px 13px;font-size:14px}.field-help{color:var(--muted);font-size:13px}.field-help.warn{color:var(--amber);font-weight:650}.field-help.ok{color:var(--brand-dark);font-weight:650}.field-help.error,.bad{color:var(--red);font-weight:650}.empty{text-align:center;flex-direction:column;align-items:center;gap:11px;padding:36px 20px;display:flex}.empty-mark{width:58px;height:58px;color:var(--brand);background:var(--brand-soft);border-radius:18px;place-items:center;display:grid}.empty h2,.empty h3,.empty p{margin:0}.empty h2,.empty h3{font-size:18px}.empty p{color:var(--muted);font-size:14px}.hero{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:18px;gap:0;padding:20px;display:grid;position:relative}.hero-label{color:var(--brand-ink);margin:0 0 2px;font-size:14px;font-weight:700;line-height:1.4}.hero-totals{flex-direction:column;align-items:flex-start;display:flex}.hero-amount,.hero-secondary{color:var(--ink-strong);letter-spacing:-.04em;font-size:clamp(30px,7.5vw,34px);font-weight:800;line-height:1.18;display:block}.hero-meta{color:var(--brand-ink-soft);margin-top:2px;font-size:13.5px;display:block}.hero-month{color:var(--brand-ink);border-top:1px solid var(--brand-line);margin-top:6px;padding-top:8px;font-size:13px;font-weight:700;display:block}.sign-out{text-align:start;cursor:pointer;width:100%}.overview-card{padding:16px}.overview-range{color:var(--muted);white-space:nowrap;font-size:13.5px}.currency-switch{background:var(--line-soft);border-radius:999px;gap:2px;width:fit-content;margin:12px 0 0 auto;padding:3px;display:flex}.currency-tab{min-width:44px;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 13px;font-size:12.5px;font-weight:800}.currency-tab.active{color:var(--brand-dark);background:var(--surface);box-shadow:var(--shadow-tab)}.chart-block,.category-block{margin:0}.chart-block{padding-top:15px}.chart-currency{color:var(--brand-ink);margin-left:7px;font-size:12.5px;font-weight:700}.chart-block figcaption,.category-block figcaption{margin-bottom:12px;font-size:14px;font-weight:750}.month-chart{grid-template-columns:repeat(6,minmax(0,1fr));align-items:end;gap:8px;height:170px;display:grid}.month-column{min-width:0;height:100%;min-height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:7px;flex-direction:column;justify-content:flex-end;gap:7px;padding:0 2px;display:flex}.month-track{flex:1;justify-content:center;align-items:flex-end;width:100%;display:flex}.month-bar{background:var(--bar-soft);border-radius:6px 6px 2px 2px;width:min(100%,50px);min-height:2px;transition:background .15s,transform .15s;display:block}.month-column.peak .month-bar,.month-column.active .month-bar{background:var(--brand)}.month-column.active .month-bar{transform:translateY(-2px)}.month-name{font-size:12px;font-weight:650;line-height:1.3}.month-column.active .month-name,.month-column.peak .month-name{color:var(--chart-name);font-weight:750}.chart-readout{min-height:20px;color:var(--muted);margin:12px 0 0;font-size:12.5px}.category-block{border-top:1px solid var(--line-soft);margin-top:19px;padding-top:16px}.category-stack{background:var(--stage);border-radius:999px;gap:2px;height:14px;display:flex;overflow:hidden}.category-slice{height:100%;display:block}.category-slice:first-child{border-start-start-radius:999px;border-end-start-radius:999px}.category-slice:last-child{border-start-end-radius:999px;border-end-end-radius:999px}.tone-1{background:var(--tone-1)}.tone-2{background:var(--tone-2)}.tone-3{background:var(--tone-3)}.tone-4{background:var(--tone-4)}.tone-5{background:var(--tone-5)}.tone-6{background:var(--tone-6)}.category-legend{gap:9px;margin:12px 0 0;padding:0;list-style:none;display:grid}.category-legend li{grid-template-columns:10px minmax(0,1fr) auto auto;align-items:baseline;gap:9px;display:grid}.legend-swatch{border-radius:3px;align-self:center;width:10px;height:10px}.legend-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13.5px;font-weight:700;overflow:hidden}.legend-value{color:var(--ink-strong);font-size:13.5px;font-weight:750}.legend-share{min-width:34px;color:var(--muted);text-align:end;font-size:12.5px;font-weight:650}.hero-real{color:var(--brand-ink);margin-top:3px;font-size:13px;font-weight:700;display:block}.hero-converted{color:var(--brand-ink-soft);margin-top:5px;font-size:12px;display:block}.hero-rates-link{color:var(--brand-dark);text-underline-offset:3px;margin-top:7px;font-size:12.5px;font-weight:700;text-decoration:underline;display:inline-block}.rates-form{gap:14px;padding:16px;display:grid}.rate-row{gap:6px;display:grid}.rate-input{align-items:center;gap:9px;display:flex}.rate-input input{background:var(--canvas);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:11px;outline:none;flex:1;min-width:0;min-height:50px;padding:0 14px;font-weight:700}.rate-input input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring-brand-soft)}.rate-unit{color:var(--muted);flex-shrink:0;font-size:13.5px;font-weight:700}.rates-notes{color:var(--muted);gap:6px;margin:0;padding:0 0 0 18px;font-size:12.5px;line-height:1.5;display:grid}.recent-card{padding:16px}.recent-card .day-head{padding-top:16px}.day-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;min-height:38px;padding:12px 2px 7px;display:flex}.day-head strong{font-size:13px;font-weight:750}.day-head span{color:var(--muted);text-align:end;font-size:12.5px;font-weight:650}.rows{flex-direction:column;display:flex}.row{width:100%;min-height:70px;color:var(--ink);text-align:start;background:0 0;border:0;align-items:center;gap:14px;padding:11px 2px;display:flex}.row+.row{border-top:1px solid var(--line-soft)}.row:hover,.row:active{color:var(--ink);background:var(--surface-hover)}.row-body{flex-direction:column;flex:1;min-width:0;display:flex}.row-title{flex-wrap:wrap;align-items:center;gap:6px;font-size:14.5px;font-weight:750;display:flex}.row-flag{color:var(--amber);font-size:11.5px;font-weight:750}.row-sub{color:var(--muted);font-size:12.5px}.row-amount{text-align:end;flex-shrink:0;font-size:14.5px;font-weight:800}.hero-book,.ledger-summary-book{font-weight:800}.join-team-form{gap:8px;padding:16px;display:grid}.join-team-form .button{margin-top:6px}.login-swap{min-height:44px;color:var(--brand-dark);text-align:center;justify-content:center;align-items:center;margin-top:0;font-size:13px;font-weight:700;display:flex}.login-swap:hover{text-decoration:underline}.login-team{margin-top:4px}.overview-estimated{color:var(--brand-ink);background:var(--brand-soft);border-radius:10px;margin:0;padding:8px 11px;font-size:12px;line-height:1.45}.chart-hint{color:var(--muted);margin:3px 0 0;font-size:11.5px;line-height:1.4}.chart-hint.is-quiet{visibility:hidden}.ledger-page{gap:13px;padding-top:0;position:relative}.ledger-top-sentinel{width:1px;height:1px;position:absolute;top:0;left:0}.ledger-top{z-index:15;background:var(--canvas);border-bottom:1px solid #0000;gap:11px;margin-inline:-15px;padding:14px 15px 11px;transition:border-color .16s,box-shadow .16s;display:grid;position:sticky;top:0}.ledger-top.is-stuck{border-bottom-color:var(--line);box-shadow:var(--shadow-dock)}@media (prefers-reduced-motion:reduce){.ledger-top{transition:none}}.ledger-header{flex-wrap:nowrap;align-items:center;gap:8px}.ledger-heading-copy{flex:auto;min-width:0}.ledger-header-actions{flex-shrink:0;align-items:center;gap:2px;margin-left:auto;display:flex}.ledger-add{color:var(--brand-dark);background:var(--brand-soft);border:1px solid var(--brand-line)}.ledger-add:hover,.ledger-add:active:not(:disabled){color:var(--on-fill);background:var(--brand)}.add-expense-dialog{width:min(100% - 30px,420px);max-width:none;color:var(--ink);background:var(--surface);box-shadow:var(--shadow-dialog);border:0;border-radius:18px;margin:auto;padding:0}.add-expense-dialog::backdrop{background:var(--scrim)}.add-expense-dialog[open]{animation:.2s cubic-bezier(.22,1,.36,1) both dialog-enter}@keyframes dialog-enter{0%{opacity:0;transform:translateY(8px)scale(.985)}}.add-expense-sheet{padding:18px}.add-expense-heading{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.add-expense-heading h2{letter-spacing:-.02em;margin:0;font-size:21px;font-weight:800;line-height:1.35}.add-expense-heading p{color:var(--muted);margin:3px 0 0;font-size:13.5px}.add-expense-options{flex-direction:column;gap:8px;margin-top:16px;display:flex}.add-expense-option{width:100%;min-height:76px;color:var(--ink);background:var(--surface);border:1px solid var(--line);text-align:start;cursor:pointer;border-radius:13px;align-items:center;gap:12px;padding:11px 12px;display:flex}.add-expense-option:hover,.add-expense-option:active{color:var(--ink);background:var(--surface-hover);border-color:var(--brand-line)}.add-expense-option-mark{width:44px;height:44px;color:var(--brand);background:var(--brand-soft);border-radius:12px;flex:0 0 44px;place-items:center;display:grid}.add-expense-option-copy{flex-direction:column;flex:1;min-width:0;display:flex}.add-expense-option-copy strong{font-size:14.5px;font-weight:800}.add-expense-option-copy small{color:var(--muted);font-size:12.5px;line-height:1.45}.add-expense-option>svg{color:var(--muted);flex:none}.account-dialog{width:min(100% - 30px,420px);max-width:none;max-height:min(86dvh,760px);color:var(--ink);background:var(--surface);box-shadow:var(--shadow-dialog);border:0;border-radius:18px;margin:auto;padding:0;overflow:hidden}.account-dialog::backdrop{background:var(--scrim)}.account-dialog[open]{animation:.2s cubic-bezier(.22,1,.36,1) both dialog-enter;display:flex}.account-sheet{overscroll-behavior:contain;flex:1;min-height:0;padding:18px;overflow-y:auto}.account-identity{align-items:center;gap:13px;padding-bottom:15px;display:flex}.account-identity-mark{flex-shrink:0;width:52px;height:52px}.account-identity-copy{flex:1;gap:2px;min-width:0;display:grid}.account-identity-copy strong{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:17px;font-weight:800;line-height:1.3}.account-identity-copy strong.is-address{letter-spacing:0;font-size:15px}.account-identity-copy small{color:var(--muted);overflow-wrap:anywhere;font-size:12.5px;line-height:1.4}.account-identity .icon-button{flex-shrink:0;align-self:flex-start}.account-group{border-top:1px solid var(--line-soft);gap:3px;padding:13px 0;display:grid}.account-group.is-last{padding-bottom:0}.account-group-head,.theme-card-head{color:var(--muted);letter-spacing:.02em;margin:0 0 3px;padding-inline:10px;font-size:11.5px;font-weight:800}.account-row{width:100%;color:var(--ink);text-align:start;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;padding:10px;display:flex}.account-row:hover,.account-row:active{background:var(--surface-hover)}.account-row-mark{width:38px;height:38px;color:var(--brand);background:var(--brand-soft);border-radius:11px;flex:0 0 38px;place-items:center;display:grid}.account-row-copy{flex:1;gap:1px;min-width:0;display:grid}.account-row-copy strong{font-size:14px;font-weight:800;line-height:1.35}.account-row-copy small{color:var(--muted);font-size:12px;line-height:1.45}.account-row>svg{color:var(--muted);flex-shrink:0}.account-row.is-current{background:var(--brand-soft)}.account-row.is-current .account-row-mark{color:var(--on-fill);background:var(--brand)}.account-row.is-current .account-row-copy strong{color:var(--brand-dark)}.account-row.is-current>svg{color:var(--brand)}.account-row.is-current:hover,.account-row.is-current:active{background:var(--brand-soft)}.account-row.is-signout .account-row-mark{color:var(--muted-strong);background:var(--stage)}.account-sheet:focus{outline:none}.ledger-filters{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;display:grid}.ledger-backup{color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:flex-start;gap:11px;margin-top:4px;padding:13px 14px;display:flex}.ledger-backup>svg{color:var(--brand-dark);flex-shrink:0;margin-top:1px}.ledger-backup span{gap:2px;font-size:12px;line-height:1.45;display:grid}.ledger-backup strong{color:var(--ink);font-size:13px;font-weight:800}.ledger-backup:hover,.ledger-backup:active{background:var(--surface-hover)}.theme-card{gap:9px;display:grid}.choice-grid.theme-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.theme-chip{gap:5px;padding-inline:8px;font-size:12.5px}.theme-chip>svg{flex:none}.settings-page .screen-header{align-items:flex-start;gap:10px}.category-names{gap:2px;padding:16px;display:grid}.category-name-row+.category-name-row{border-top:1px solid var(--line-soft)}.category-name-line{width:100%;min-height:52px;color:var(--ink);text-align:start;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:6px 0;display:flex}.category-name-copy{flex:1;gap:1px;min-width:0;display:grid}.category-name-copy strong{font-size:15px;font-weight:750}.category-name-copy strong.is-unnamed{color:var(--muted);font-weight:650}.category-name-copy small{color:var(--muted);font-size:12px}.category-name-edit-mark{width:44px;height:44px;color:var(--brand);flex-shrink:0;place-items:center;display:grid}.category-name-line:hover .category-name-edit-mark,.category-name-line:active .category-name-edit-mark{color:var(--brand-dark)}.category-name-edit{gap:7px;padding:8px 0;display:grid}.category-name-fields{align-items:center;gap:6px;display:flex}.category-name-input{flex:1;min-width:0}.category-name-confirm{color:var(--on-fill);background:var(--brand)}.category-name-confirm:hover,.category-name-confirm:active{color:var(--on-fill);background:var(--brand-dark)}.category-group-head{color:var(--brand-dark);margin:10px 0 2px;font-size:13px}.category-names .hint{color:var(--muted);margin:0 0 6px;font-size:13px;line-height:1.45}.ledger-select-wrap{min-width:0;position:relative}.ledger-select-wrap>svg{color:var(--muted);pointer-events:none;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.ledger-select{appearance:none;width:100%;height:44px;color:var(--ink);background:var(--surface);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:0 36px 0 13px;font-size:13px;font-weight:650}.ledger-summary{background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:13px;justify-content:space-between;align-items:center;gap:14px;padding:13px 15px;display:flex}.ledger-summary-copy{color:var(--brand-ink-soft);font-size:13px}.ledger-summary-totals,.ledger-day-totals{flex-direction:column;align-items:flex-end;display:flex}.ledger-summary-totals{font-size:14px;font-weight:800}.ledger-groups{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.ledger-day{padding:0 15px}.ledger-day+.ledger-day{border-top:7px solid var(--canvas)}.ledger-day-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:12px;min-height:48px;padding:10px 54px 7px 2px;display:flex}.ledger-day-head h2{margin:0;font-size:14px;font-weight:800}.ledger-day-totals{color:var(--muted);font-size:12px;font-weight:650}.ledger-rows,.ledger-row-shell{flex-direction:column;display:flex}.ledger-row-shell+.ledger-row-shell{border-top:1px solid var(--line-soft)}.ledger-row-line{align-items:stretch;min-height:70px;display:flex}.ledger-row{min-width:0;min-height:70px;color:var(--ink);flex:1;align-items:center;gap:12px;padding:10px 10px 10px 2px;display:flex}.ledger-row:hover,.ledger-row:active{color:var(--ink)}.ledger-row-copy{flex-direction:column;flex:1;min-width:0;display:flex}.ledger-row-title{flex-wrap:wrap;align-items:center;gap:6px;font-size:14.5px;font-weight:750;display:flex}.ledger-row-status{color:var(--amber);font-size:11px;font-weight:750}.ledger-row-time{color:var(--muted);font-size:12.5px}.ledger-row-amount{text-align:end;flex-shrink:0;font-size:14px;font-weight:800}.ledger-delete-toggle{width:44px;height:44px;min-height:44px;color:var(--muted-soft);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:0 0 44px;align-self:center;place-items:center;padding:0;display:grid}.ledger-delete-toggle:hover,.ledger-delete-toggle:active,.confirming-delete .ledger-delete-toggle{color:var(--red);background:var(--red-soft)}.ledger-delete-confirm{background:var(--red-soft);border-top:1px solid var(--red-line);justify-content:space-between;align-items:center;gap:12px;margin:0 -15px;padding:11px 15px 13px;display:flex}.ledger-delete-confirm p{color:var(--red-ink-soft);margin:0;font-size:13px;font-weight:700}.ledger-delete-actions{gap:6px;display:flex}.ledger-delete-cancel,.ledger-delete-submit{cursor:pointer;border:0;border-radius:10px;min-height:44px;padding:0 12px;font-size:13px;font-weight:750}.ledger-delete-cancel{color:var(--ink);background:var(--surface)}.ledger-delete-submit{color:var(--on-fill);background:var(--red);align-items:center;gap:6px;display:inline-flex}.ledger-empty{background:var(--surface);border:1px solid var(--line);border-radius:16px}.snackbar{z-index:50;left:15px;right:15px;bottom:calc(82px + var(--bottom-safe));max-width:530px;min-height:50px;color:var(--inverse-ink);background:var(--inverse-surface);box-shadow:var(--shadow-snackbar);border-radius:999px;align-items:center;gap:12px;margin:0 auto;padding:9px 10px 9px 16px;animation:.22s cubic-bezier(.22,1,.36,1) both rise;display:flex;position:fixed}.snackbar p{flex:1;margin:0;font-size:14px;font-weight:650}.snackbar button{min-height:44px;color:var(--inverse-accent);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 13px;font-size:14px;font-weight:800}.scan-screen{gap:14px}.scan-heading>div{min-width:0}.scan-card{padding:16px}.scan-sample-hint{color:var(--muted);text-align:center;margin:-2px 0 0;font-size:12px}.drop-zone{width:100%;min-height:236px;color:var(--ink);background:var(--drop-bed);border:2px dashed var(--field-line);text-align:center;cursor:pointer;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:11px;padding:24px;transition:background .16s,border-color .16s,transform .16s;display:flex}.drop-zone:hover,.drop-zone:active{color:var(--ink);background:var(--drop-bed-hover);border-color:var(--brand)}.scan-drop-zone.is-dragging{background:var(--brand-soft);border-color:var(--brand);transform:translateY(-2px)}.scan-drop-zone:disabled{opacity:.58;cursor:progress}.drop-zone strong{font-size:17px;font-weight:800}.drop-zone>span:not(.drop-mark):not(.drop-zone-action){color:var(--muted);font-size:13px}.drop-mark{width:66px;height:66px;color:var(--brand);background:var(--brand-soft);border-radius:22px;place-items:center;display:grid}.drop-zone-action{min-height:44px;color:var(--on-fill);background:var(--brand);border-radius:11px;justify-content:center;align-items:center;margin-top:7px;padding:0 18px;font-size:14px;font-weight:800;display:inline-flex}.button.scan-mobile-gallery-action{display:none}.scan-sample-help{justify-items:center;margin-top:10px;display:grid}.button.scan-sample-action{width:auto;min-height:44px;padding-inline:10px;font-size:13.5px}.privacy-note{color:var(--muted);background:var(--stage-soft);border:1px solid var(--line);border-radius:12px;gap:10px;padding:13px 14px;font-size:12.5px;display:flex}.privacy-note svg{flex:none;margin-top:2px}.privacy-note p{margin:0}.capture-privacy-note{margin-top:14px}.scan-error{margin-top:12px}@media (max-width:600px),(hover:none) and (pointer:coarse){.scan-desktop-drop-zone{display:none}.button.scan-mobile-gallery-action{display:flex}.scan-sample-help{margin-top:8px}}.scan-processing-card{flex-direction:column;display:flex}.capture-stage{background:var(--stage);border-radius:13px;place-items:center;min-height:280px;display:grid;position:relative;overflow:hidden}.artifact-capture-stage img{object-fit:contain;max-width:82%;max-height:290px;box-shadow:var(--shadow-stage);border-radius:5px;transition:transform .2s}.capture-veil{color:var(--on-veil);background:var(--veil);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.capture-veil strong{font-size:15px;font-weight:750}.capture-veil-elapsed{color:var(--veil-ink);font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:13px;font-weight:700}.capture-veil-hint{max-width:24ch;color:var(--veil-ink);text-align:center;font-size:12px;line-height:1.45}.spinner{border:3px solid var(--on-veil-faint);border-top-color:var(--on-veil);border-radius:50%;flex:0 0 28px;width:28px;height:28px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.scan-note{color:var(--muted);background:var(--stage-soft);border:1px solid var(--line);border-radius:11px;align-items:center;gap:10px;margin:12px 0;padding:11px 13px;display:flex}.scan-note-mark{width:34px;height:34px;color:var(--muted);background:var(--surface);border-radius:10px;flex:0 0 34px;place-items:center;display:grid}.scan-note strong,.scan-note span:not(.scan-note-mark){display:block}.scan-note strong{color:var(--ink);font-size:13.5px;font-weight:800}.scan-note span{font-size:12px}.scan-note.found{color:var(--brand-dark);background:var(--brand-soft);border-color:var(--brand-line)}.scan-note.found .scan-note-mark{color:var(--on-fill);background:var(--brand)}.scan-note.warn{color:var(--amber);background:var(--amber-soft);border-color:var(--amber-line)}.scan-note.warn .scan-note-mark{color:var(--amber);background:var(--amber-wash)}.scan-note.error{color:var(--red);background:var(--red-soft);border-color:var(--red-line)}.scan-note.error .scan-note-mark{color:var(--red);background:var(--red-wash)}.review-duplicate{align-items:flex-start;margin-bottom:12px}.review-duplicate .scan-note-copy{gap:4px;min-width:0;display:grid}.review-duplicate p{margin:0;font-size:12px;line-height:1.45}.review-duplicate-link{color:inherit;text-underline-offset:3px;justify-self:start;margin-top:2px;font-size:12px;font-weight:700;text-decoration:underline}.reader-plan{margin:14px 0 16px}.reader-plan-title{color:var(--muted);letter-spacing:.01em;margin:0 0 6px;font-size:12px;font-weight:700}.reader-steps{margin:0;padding:0;list-style:none}.reader-step{cursor:default;grid-template-columns:28px minmax(0,1fr) auto;align-items:start;gap:10px;padding:7px 0;display:grid;position:relative}.reader-step:before{content:"";background:var(--line-soft);border-radius:1px;width:2px;position:absolute;top:35px;bottom:-7px;left:13px}.reader-step:last-child:before{content:none}.reader-step-mark{width:28px;height:28px;color:var(--muted);background:var(--surface);border:1px solid var(--line);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;font-size:12px;font-weight:800;display:grid}.reader-step-body{min-width:0;padding-top:2px}.reader-step-body strong{color:var(--ink);font-size:13.5px;font-weight:800;display:block}.reader-step-body span{color:var(--muted);font-size:12px;line-height:1.4;display:block}.reader-step-state{color:var(--muted);white-space:nowrap;align-self:start;padding-top:4px;font-size:11px;font-weight:700}.reader-step.is-running .reader-step-mark{color:var(--on-fill);background:var(--brand);border-color:var(--brand)}.reader-step.is-running .reader-step-state{color:var(--brand-dark)}.reader-step.is-done .reader-step-mark{color:var(--brand-dark);background:var(--brand-soft);border-color:var(--brand-line)}.reader-step.is-done .reader-step-state{color:var(--brand-dark)}.reader-step.is-done:before{background:var(--brand-line)}.reader-step.is-conditional .reader-step-mark{border-style:dashed}.reader-step.is-waiting .reader-step-body strong,.reader-step.is-conditional .reader-step-body strong{color:var(--muted)}.reader-step-spinner{border:2px solid var(--on-fill-faint);border-top-color:var(--on-fill);border-radius:50%;width:13px;height:13px;animation:.9s linear infinite spin}.capture-toolbar{grid-template-columns:repeat(3,minmax(0,1fr));margin:0 0 10px}.capture-toolbar .button{min-width:0;padding-inline:7px;font-size:12px}.review-screen{gap:14px}.review-heading{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:6px;min-height:46px;display:grid}.review-heading h1{letter-spacing:-.02em;text-align:center;margin:0;font-size:26px;font-weight:800;line-height:1.25}.review-card{padding:16px}.review-slip{background:var(--stage);cursor:zoom-in;border:0;border-radius:13px;place-items:center;width:100%;padding:10px;display:grid;position:relative;overflow:hidden}.review-slip img{object-fit:contain;max-width:100%;max-height:min(440px,56dvh);box-shadow:var(--shadow-receipt);border-radius:4px}.zoom-hint{min-height:38px;color:var(--on-pill);background:var(--pill-over-image);box-shadow:var(--shadow-pill);border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:12px;font-weight:650;display:inline-flex;position:absolute;bottom:11px;right:11px}.review-status{margin:12px 0 0}.review-status.without-image{margin-top:0}.review-body,.review-form{padding:0}.review-fields{flex-direction:column;gap:20px;margin:16px 0 20px;display:flex}.amount-field,.date-field{flex-direction:column;gap:6px;display:flex}.date-input{min-height:48px;color:var(--ink);background:var(--surface);border:1px solid var(--line);font:inherit;font-variant-numeric:tabular-nums;border-radius:11px;padding:0 13px;font-size:15px;font-weight:700}.date-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring-brand-soft);outline:none}.category-field{flex-direction:column;gap:8px;display:flex}.amount-field>.lb,.choice-set .lb,.category-legend{color:var(--muted);font-size:13px;font-weight:700}.amount-line{border:1px solid var(--field-line);background:var(--surface);border-radius:11px;align-items:center;height:56px;padding:0 14px;display:flex}.amount-line:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring-brand)}.amount-line.confirmed{border-color:var(--brand);box-shadow:0 0 0 2px var(--ring-brand-faint)}.amount-line.unconfirmed{border-color:var(--amber-line);background:var(--amber-tint)}.amount-line.invalid{border-color:var(--red);background:var(--red-tint)}.amount-line.confirmed:focus-within{box-shadow:0 0 0 3px var(--ring-brand)}.amount-line.unconfirmed:focus-within{border-color:var(--amber);box-shadow:0 0 0 3px var(--ring-amber)}.amount-line.invalid:focus-within{border-color:var(--red);box-shadow:0 0 0 3px var(--ring-red)}.amount-input{width:100%;min-width:0;color:var(--ink-strong);letter-spacing:-.02em;font-variant-numeric:tabular-nums;letter-spacing:-.025em;background:0 0;border:0;outline:none;padding:0;font-size:30px;font-weight:750;line-height:1}.amount-input::placeholder{color:var(--placeholder)}.provenance{color:var(--muted);align-items:flex-start;gap:7px;font-size:12.5px;font-weight:600;display:flex}.provenance.ok{color:var(--brand-dark)}.provenance.warn{color:var(--amber)}.provenance.muted{color:var(--muted)}.provenance.error{color:var(--red)}.row.needs-review{background:color-mix(in srgb, var(--amber-soft) 55%, transparent)}.row.needs-review:hover,.row.needs-review:active{background:var(--amber-soft)}.row-flag{background:var(--amber-soft);border-radius:var(--r-pill,999px);padding:1px 7px}.choice-set{border:0;min-width:0;margin:0;padding:0}.choice-set legend{padding:0}.choice-set input{opacity:0;clip:rect(0, 0, 0, 0);width:1px;height:1px;min-height:0;margin:0;padding:0;position:absolute;overflow:hidden}.currency-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.currency-chip{flex-direction:column;gap:1px;line-height:1.15}.currency-chip .currency-word{font-size:15px;font-weight:800}.currency-chip .currency-code{letter-spacing:.04em;opacity:.72;font-size:11px;font-weight:700}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.choice-chip{min-width:0;min-height:44px;color:var(--ink);background:var(--surface);border:1px solid var(--chip-line);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;justify-content:center;align-items:center;gap:7px;padding:0 13px;font-size:13px;font-weight:650;display:flex}.choice-chip:hover,.choice-chip:active{background:var(--surface-hover)}.choice-chip:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring-brand-soft)}.choice-chip.selected,.choice-chip.on{color:var(--on-fill);background:var(--brand);border-color:var(--brand);font-weight:750}.review-category-chip{justify-content:center}.category-legend{flex-wrap:wrap;align-items:baseline;gap:7px;margin-bottom:8px;display:flex}.review-ai-hint{color:var(--brand);font-size:12px;font-weight:700}.hint{margin:0}.review-error{margin-bottom:12px}.save-bar,.review-save-bar{flex-direction:column;gap:8px;display:flex}.review-save-bar .button.primary{min-height:52px}.review-secondary-actions{display:flex}.manual-card{padding:16px}.manual-source{margin:0}.manual-source.muted{color:var(--ink);background:var(--surface-hover)}.manual-source.muted .scan-note-mark{color:var(--brand);background:var(--brand-soft)}.manual-form .review-fields{margin-top:18px}.snackbar-saved{background:var(--snackbar-saved)}.snackbar-saved>svg{flex:none}.snackbar-failed{color:var(--on-fill);background:var(--red)}.snackbar-failed>svg{flex:none}.snackbar-failed button{width:44px;color:var(--on-fill)}.snackbar-saved button{width:44px;color:var(--inverse-ink)}.snackbar-detail{opacity:.72;margin-top:1px;font-size:11px;font-weight:600;display:block}.zoom-overlay{z-index:60;background:var(--overlay);cursor:zoom-out;border:0;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.zoom-overlay img{object-fit:contain;max-width:100%;max-height:88dvh}.zoom-overlay .icon-button{color:var(--on-veil);position:absolute;top:16px;right:16px}.menu-anchor{position:relative}.menu{z-index:20;background:var(--surface);border:1px solid var(--line);min-width:220px;box-shadow:var(--shadow-menu);border-radius:12px;padding:7px;position:absolute;top:calc(100% + 4px);right:0}.menu-item{width:100%;min-height:44px;color:var(--ink);text-align:start;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:9px;padding:0 12px;font-size:14px;font-weight:650;display:flex}.menu-item>svg{color:var(--brand);flex:none}.menu-item:disabled{opacity:.58;cursor:progress}.menu-item:hover,.menu-item:active{color:var(--ink);background:var(--surface-hover)}.menu-item.danger{color:var(--red)}.menu-item.danger:hover,.menu-item.danger:active{color:var(--red);background:var(--red-soft)}.menu-item.danger>svg{color:currentColor}.export-menu{min-width:176px}.menu-delete-confirm{padding:4px}.menu-delete-confirm p{color:var(--red);margin:3px 5px 10px;font-size:13px;font-weight:700}.menu-delete-actions{gap:6px;display:flex}.menu-delete-actions .button{flex:1;padding-inline:9px;font-size:12px}.login-screen{justify-content:center;align-items:center;min-height:100dvh;padding:24px 20px;display:flex}.login-card{background:var(--surface);border:1px solid var(--line);width:100%;max-width:380px;box-shadow:var(--shadow);border-radius:18px;flex-direction:column;gap:12px;padding:24px;display:flex}.login-form{display:contents}.login-divider{color:var(--muted);align-items:center;gap:10px;margin:4px 0;font-size:12px;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--line);flex:1;height:1px}.login-google{gap:10px;text-decoration:none}.login-google>svg{flex:none}.login-mark{width:52px;height:52px;color:var(--brand);background:var(--brand-soft);border-radius:16px;place-items:center;margin-bottom:4px;display:grid}.login-card h1{margin:0;font-size:24px;font-weight:800}.login-card>p{color:var(--muted);margin:0 0 4px;font-size:14px}.login-card>small{color:var(--muted);text-align:center;font-size:12.5px}.field-label{color:var(--muted);font-size:13px;font-weight:700}.login-card input{background:var(--canvas);border:1px solid var(--line);font-variant-numeric:tabular-nums;letter-spacing:.06em;border-radius:11px;outline:none;min-height:50px;padding:0 14px}.login-card input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring-brand-soft)}.login-card input[aria-invalid=true]{border-color:var(--red)}.password-field{display:grid;position:relative}.password-field>input{padding-inline-end:54px}.password-reveal{top:0;bottom:0;width:44px;min-height:0;color:var(--muted-strong);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;padding:0;display:grid;position:absolute;inset-inline-end:3px}.password-reveal:hover{color:var(--ink);background:var(--surface-hover)}.password-reveal[aria-pressed=true]{color:var(--brand-dark)}.join-team-form input{background:var(--canvas);border:1px solid var(--line);letter-spacing:.06em;border-radius:11px;outline:none;min-height:50px;padding:0 48px 0 14px}.join-team-form input:focus-visible{border-color:var(--brand);box-shadow:0 0 0 3px var(--ring-brand-soft)}.join-team-form input[aria-invalid=true]{border-color:var(--red)}.status-badge{min-height:28px;color:var(--brand-dark);background:var(--brand-soft);border-radius:999px;align-items:center;padding:3px 10px;font-size:12px;font-weight:750;display:inline-flex}.status-badge.needs-review,.status-badge.draft{color:var(--amber);background:var(--amber-soft)}@media (max-width:420px){.hero{padding:17px}.hero-amount,.hero-secondary{font-size:clamp(27px,8vw,32px)}.overview-head,.section-head{align-items:flex-start}.overview-head{flex-direction:column;gap:1px}.overview-range{white-space:normal}.ledger-add{padding-inline:11px;font-size:13px}.ledger-delete-confirm{flex-direction:column;align-items:flex-start}.ledger-delete-actions{width:100%}.ledger-delete-cancel,.ledger-delete-submit{flex:1;justify-content:center}}@media (max-width:600px){.scan-preview-screen .capture-stage{min-height:240px}.scan-preview-screen .artifact-capture-stage img{max-height:240px}.add-expense-dialog{width:100%;padding-bottom:max(8px, var(--bottom-safe));border-radius:20px 20px 0 0;margin:0;position:fixed;inset:auto 0 0}.add-expense-dialog[open]{animation-name:sheet-enter}@keyframes sheet-enter{0%{opacity:0;transform:translateY(24px)}}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
