@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.12tyk43_3sh9u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.0jzbimsg8vl84.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.0-wfv7uh4i7h9.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0nx0ww8fni_q3.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.09~u27dqhyhd6.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:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.0zgw-jeven.3w.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.0wkzw~je483f-.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.0rhz0arwfsn~5.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.0l76wvqk9d84w.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.0k4k9394f2q-k.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-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.08e28id.o-okb.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:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root,[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f5f1;--surface:#fff;--surface-muted:#efede7;--surface-raised:#fff;--border:#e3e0d8;--border-strong:#8d887c;--ink:#1b1a17;--ink-muted:#625e55;--brand:#0f7a4e;--brand-hover:#0b6440;--on-brand:#fff;--brand-soft:#e3f1e8;--brand-ink:#0d6b44;--positive:var(--brand-ink);--danger:#c4321f;--danger-hover:#a52a1a;--on-danger:#fff;--danger-soft:#fbe9e5;--danger-ink:#b42d1c;--negative:var(--danger-ink);--warning:#b45309;--on-warning:#fff;--warning-soft:#fdf1df;--warning-ink:#924a08;--hero:#0f2a1e;--on-hero:#f3f7f4;--on-hero-muted:#a8bdb1;--hero-accent:#5fd39a;--hero-track:#2b4a3b;--track:#e6e3dc;--focus:var(--brand);--overlay:#11141280;--shadow-sm:0 1px 2px #1b1a170d, 0 1px 3px #1b1a170a;--shadow-md:0 8px 24px #1b1a1714, 0 2px 6px #1b1a170a;--shadow-lg:0 24px 64px #1b1a172e}[data-theme=dark]{--bg:#131311;--surface:#1c1c19;--surface-muted:#262622;--surface-raised:#34342f;--border:#34332e;--border-strong:#77736a;--ink:#edebe5;--ink-muted:#a9a598;--brand:#3ec486;--brand-hover:#5ad39a;--on-brand:#08190f;--brand-soft:#183324;--brand-ink:#5ad39a;--positive:var(--brand-ink);--danger:#f0705f;--danger-hover:#f58b7c;--on-danger:#2a0a05;--danger-soft:#3a1c17;--danger-ink:#f58b7c;--negative:var(--danger-ink);--warning:#e9a23b;--on-warning:#2a1702;--warning-soft:#36270f;--warning-ink:#f0b357;--hero:#1b4331;--on-hero:#f1f7f3;--on-hero-muted:#b0cdbc;--hero-accent:#74e3ad;--hero-track:#2f5a45;--track:#34332e;--focus:var(--brand);--overlay:#0009;--shadow-sm:0 1px 2px #0006;--shadow-md:0 8px 24px #00000073;--shadow-lg:0 24px 64px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root{--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--header-height:56px;--bottom-nav-height:64px;--sidebar-width:280px;--container-max:1200px;--control-height:40px;--control-height-sm:32px;--icon-button:36px;--touch-target:44px;--scrollbar-size:6px;--scrollbar-thumb:color-mix(in srgb, var(--border-strong) 50%, transparent);--scrollbar-thumb-hover:color-mix(in srgb, var(--ink-muted) 70%, transparent);--z-modal:500;--z-header:1000;--z-overlay:1100;--z-sidebar:1200;--z-toast:2000;--z-dropdown:9999}body{--font-sans:var(--font-geist-sans), ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:var(--font-geist-mono), ui-monospace, "SF Mono", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}*{margin:0;padding:0}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;-webkit-tap-highlight-color:transparent;height:100%}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial}}html,body{max-width:100vw;overflow-x:hidden}a{color:inherit;text-decoration:none}body{min-height:100%;font-family:var(--font-sans);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;font-size:15px;line-height:22px;display:flex}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (hover:hover) and (pointer:fine){::-webkit-scrollbar{width:var(--scrollbar-size);height:var(--scrollbar-size)}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-corner{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:var(--scrollbar-thumb) padding-box;border:1px solid #0000}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}}}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.btn,.btn-save,.btn-cancel,.btn-delete,.btn-ghost,.exp-btn-add{justify-content:center;align-items:center;gap:var(--space-2);height:var(--control-height);padding:0 var(--space-4);border-radius:var(--radius-sm);font-family:var(--font-sans);white-space:nowrap;cursor:pointer;border:1px solid #0000;font-size:15px;font-weight:500;line-height:22px;transition:background-color .15s,border-color .15s,color .15s,transform .1s;display:inline-flex;position:relative}a.btn,a.btn-save,a.btn-cancel,a.btn-delete,a.btn-ghost,a.exp-btn-add{text-decoration:none}.btn:active,.btn-save:active,.btn-cancel:active,.btn-delete:active,.btn-ghost:active,.exp-btn-add:active{transform:scale(.98)}.btn,.btn-save,.exp-btn-add{background:var(--brand);color:var(--on-brand)}.btn:hover,.btn-save:hover,.exp-btn-add:hover{background:var(--brand-hover)}.btn-cancel{background:var(--surface);color:var(--ink);border-color:var(--border-strong)}.btn-cancel:hover{background:var(--surface-muted)}.btn-delete{background:var(--danger);color:var(--on-danger)}.btn-delete:hover{background:var(--danger-hover)}.btn-ghost{color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--surface-muted)}.exp-btn-add{height:var(--control-height-sm);padding:0 var(--space-3);flex-shrink:0;font-size:13px;line-height:18px}.btn{width:100%;height:var(--touch-target);font-weight:600}.btn:disabled,.btn-save:disabled,.btn-cancel:disabled,.btn-delete:disabled,.exp-btn-add:disabled{opacity:.45;cursor:not-allowed;transform:none}@media (pointer:coarse){.exp-btn-add:after,.ibtn:after,.month-btn:after{content:"";position:absolute;inset:-4px}}.ibtn,.sidebar-close-btn{width:var(--icon-button);height:var(--icon-button);border-radius:var(--radius-sm);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;padding:0;font-size:15px;transition:background-color .13s,color .13s;display:inline-flex;position:relative}.ibtn:hover,.sidebar-close-btn:hover{background:var(--surface-muted);color:var(--ink)}.ibtn.del:hover{background:var(--danger-soft);color:var(--danger-ink)}.tog{flex-shrink:0;width:40px;height:24px;display:inline-block;position:relative}.tog input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute;inset:0}.tog-sl{background:var(--surface-muted);border:1px solid var(--border-strong);border-radius:var(--radius-full);pointer-events:none;transition:background-color .18s,border-color .18s;position:absolute;inset:0}.tog-sl:before{content:"";background:var(--ink-muted);border-radius:50%;width:16px;height:16px;transition:transform .18s,background-color .18s;position:absolute;top:3px;left:3px}.tog input:checked~.tog-sl{background:var(--brand);border-color:var(--brand)}.tog input:checked~.tog-sl:before{background:var(--on-brand);transform:translate(16px)}.tog input:focus-visible~.tog-sl{outline:2px solid var(--focus);outline-offset:2px}.pay-chip{height:var(--control-height-sm);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--surface);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:600;line-height:16px;transition:background-color .15s,border-color .15s,color .15s;display:inline-flex;position:relative}.pay-chip input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.pay-chip:hover{background:var(--surface-muted)}.pay-chip .pay-on{display:none}.pay-chip:has(input:checked){background:var(--brand);border-color:var(--brand);color:var(--on-brand)}.pay-chip:has(input:checked) .pay-on{display:inline-flex}.pay-chip:has(input:checked) .pay-off{display:none}.pay-chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.pay-chip span{align-items:center;gap:6px;display:inline-flex}.type-sel,.tabs{gap:var(--space-1);padding:var(--space-1);background:var(--surface-muted);border-radius:var(--radius-md);display:flex}.type-opt,.tab-button{height:var(--control-height-sm);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:500;line-height:18px;transition:background-color .15s,color .15s;display:inline-flex}.type-opt:hover,.tab-button:hover{color:var(--ink)}.type-opt.on,.tab-button.active{background:var(--surface-raised);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}.field,.form-group{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.form-group>label,.field-label{color:var(--ink);font-size:13px;font-weight:500;line-height:18px}.field input,.field select,.form-group input,.msel-trigger{width:100%;height:var(--control-height);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-family:var(--font-sans);font-size:15px;line-height:22px;transition:border-color .15s,box-shadow .15s}.field input::placeholder,.form-group input::placeholder{color:var(--ink-muted);opacity:1}.field input:hover,.field select:hover,.form-group input:hover,.msel-trigger:hover{border-color:var(--ink-muted)}.field input:focus,.field select:focus,.form-group input:focus,.msel-trigger:focus-visible,.msel-trigger-open{border-color:var(--focus);box-shadow:0 0 0 1px var(--focus);outline:none}.field input.num{font-family:var(--font-mono)}.field-help{color:var(--ink-muted);font-size:13px;line-height:18px}.field-error{color:var(--danger-ink);align-items:center;gap:6px;font-size:13px;line-height:18px;display:flex}.field.invalid input,.field.invalid select{border-color:var(--danger-ink)}.field.invalid input:focus{box-shadow:0 0 0 1px var(--danger-ink)}.select{position:relative}.select select{appearance:none;cursor:pointer;padding-right:36px}.select>i{color:var(--ink-muted);pointer-events:none;font-size:12px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.input-affix{position:relative}.input-affix>.affix{font-family:var(--font-mono);color:var(--ink-muted);pointer-events:none;font-size:15px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.input-affix input{font-family:var(--font-mono);padding-left:40px}.password-input-wrapper{align-items:center;display:flex;position:relative}.password-input-wrapper input{padding-right:88px}.password-toggle-button{height:var(--control-height-sm);padding:0 var(--space-3);color:var(--brand-ink);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:13px;font-weight:600;line-height:18px;position:absolute;right:4px}.password-toggle-button:hover{background:var(--surface-muted)}.field-row{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--touch-target);padding:var(--space-2) 0;display:flex}.field-row-lbl{font-size:15px;font-weight:500;line-height:22px}.field-row-sub{color:var(--ink-muted);font-size:13px;line-height:18px}.f-row{gap:var(--space-3);grid-template-columns:1fr 1fr;display:grid}.f-row-full{gap:var(--space-3);grid-template-columns:1fr;display:grid}.msel{width:100%;position:relative}.msel-trigger{justify-content:space-between;align-items:center;gap:var(--space-2);text-align:left;cursor:pointer;display:flex}.msel-trigger-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.msel-chevron{color:var(--ink-muted);font-size:12px;transition:transform .18s}.msel-chevron-open{transform:rotate(180deg)}.msel-dropdown{z-index:var(--z-dropdown);max-height:232px;padding:var(--space-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);position:fixed;overflow-y:auto}.msel-opt{width:100%;height:36px;padding:0 var(--space-3);color:var(--ink);text-align:left;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:space-between;align-items:center;font-size:15px;line-height:22px;display:flex}.msel-opt:hover{background:var(--surface-muted)}.msel-opt-on{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}.msel-opt-on:hover{background:var(--brand-soft)}.exp-filter-bar{gap:var(--space-2);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);scrollbar-width:none;display:flex;overflow-x:auto}.exp-ftab{height:var(--control-height-sm);border:1px solid var(--border-strong);border-radius:var(--radius-full);background:var(--surface);color:var(--ink);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;line-height:18px;transition:background-color .13s,border-color .13s,color .13s;display:inline-flex}.exp-ftab:hover{background:var(--surface-muted)}.exp-ftab.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink);font-weight:600}.exp-parc-badge,.dash-badge{border-radius:var(--radius-full);height:20px;font-family:var(--font-sans);white-space:nowrap;vertical-align:2px;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:600;line-height:16px;display:inline-flex}.exp-parc-badge{background:var(--surface-muted);color:var(--ink);font-family:var(--font-mono);margin-left:6px;font-weight:500}.dash-badge{border:1px solid var(--border-strong);color:var(--ink-muted);justify-self:end}.spinner{border-style:solid;border-color:var(--track);border-top-color:var(--brand);border-radius:50%;flex-shrink:0;animation:.7s linear infinite spinner-rotate;display:inline-block}.spinner-sm{border-width:2px;width:14px;height:14px}.spinner-md{border-width:3px;width:24px;height:24px}@keyframes spinner-rotate{to{transform:rotate(360deg)}}@keyframes spinner-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.spinner{animation:1.4s ease-in-out infinite spinner-pulse}}.gastos-main{min-height:calc(100vh - var(--header-height));padding:var(--space-8) 0 var(--space-12);background:var(--bg)}.gastos-container{max-width:var(--container-max);gap:var(--space-6);flex-direction:column;margin:0 auto;padding:0 clamp(16px,3vw,40px);display:flex}.gastos-page-header{justify-content:space-between;align-items:flex-end;gap:var(--space-4);flex-wrap:wrap;display:flex}.gastos-title{letter-spacing:-.03em;margin:0;font-size:28px;font-weight:700;line-height:34px}.gastos-sub{color:var(--ink-muted);margin:2px 0 0;font-size:15px;line-height:22px}@media (max-width:640px){.gastos-main{padding:var(--space-5) 0 calc(var(--bottom-nav-height) + var(--space-6))}.gastos-container{gap:var(--space-5)}.gastos-title{font-size:24px;line-height:30px}}.month-nav{align-items:center;gap:var(--space-1);padding:var(--space-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);display:inline-flex}.month-btn{width:var(--icon-button);height:var(--icon-button);color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:13px;transition:background-color .15s;display:inline-flex;position:relative}.month-btn:hover{background:var(--surface-muted)}.month-label{text-align:center;min-width:136px;font-size:15px;font-weight:600;line-height:22px}@media (max-width:640px){.gastos-page-header{flex-direction:column;align-items:stretch}.month-nav{align-self:center}}@media (max-width:480px){.month-nav{align-self:stretch}.month-label{flex:1}}.summary-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}@media (max-width:640px){.summary-grid{gap:var(--space-3);grid-template-columns:minmax(0,1fr)}}.summary-card{gap:var(--space-2);min-height:120px;padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);flex-direction:column;display:flex;position:relative;overflow:hidden}.summary-label{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px;display:flex}.summary-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--ink);font-size:26px;font-weight:500;line-height:30px}.summary-value-sm{letter-spacing:-.02em;font-size:20px;line-height:26px}.summary-sub,.summary-empty-muted{color:var(--ink-muted);font-size:13px;line-height:18px}.summary-value.is-positive{color:var(--positive)}.summary-value.is-negative{color:var(--negative)}.summary-card.primary{background:var(--hero);border-color:var(--hero);color:var(--on-hero)}.summary-card.primary .summary-label,.summary-card.primary .summary-sub,.summary-card.primary .summary-empty-muted{color:var(--on-hero-muted)}.summary-card.primary .summary-value{color:var(--on-hero)}.summary-card.primary .summary-value.is-positive{color:var(--hero-accent)}.summary-card.primary .spinner{border-color:var(--hero-track);border-top-color:var(--hero-accent)}.summary-card.primary .dash-bar{background:var(--hero-track)}.summary-card.primary .dash-bar-fill{background:var(--hero-accent)}.summary-badge{border-radius:var(--radius-full);align-self:flex-start;align-items:center;gap:6px;height:24px;padding:0 10px;font-size:13px;font-weight:600;line-height:18px;display:inline-flex}.summary-badge-up{background:var(--danger-soft);color:var(--negative)}.summary-badge-dn{background:var(--brand-soft);color:var(--positive)}@media (max-width:480px){.summary-card{min-height:0;padding:var(--space-4)}.summary-value{font-size:22px;line-height:26px}}.load-corner-spinner{top:var(--space-4);right:var(--space-4);display:flex;position:absolute}.load-center{flex:1;justify-content:center;align-items:center;min-height:40px;display:flex}.load-stale{opacity:.5;transition:opacity .15s}.load-card--centered .load-card-body{flex-direction:column;flex:1;justify-content:center;display:flex}.card-carousel{--cc-cols:3}.card-carousel-viewport{scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-user-select:none;user-select:none;cursor:grab;display:flex;overflow-x:auto}.card-carousel-viewport::-webkit-scrollbar{display:none}.card-carousel-viewport:active{cursor:grabbing}.card-carousel--single .card-carousel-viewport{cursor:default;scroll-snap-type:none;overflow-x:hidden}.card-carousel-page{scroll-snap-align:start;grid-template-columns:repeat(var(--cc-cols,3), minmax(0, 1fr));align-content:stretch;gap:var(--space-4);flex:0 0 100%;display:grid}@media (max-width:640px){.card-carousel-page{align-content:start;gap:var(--space-3);grid-template-columns:minmax(0,1fr)}}.card-carousel-dots{justify-content:center;gap:var(--space-2);margin-top:var(--space-3);display:flex}.card-carousel-dot{border-radius:var(--radius-full);background:var(--border-strong);cursor:pointer;border:0;width:8px;height:8px;padding:0;transition:width .2s,background-color .2s;position:relative}.card-carousel-dot:after{content:"";position:absolute;inset:-10px -6px}.card-carousel-dot--active{background:var(--brand);width:24px}.exp-section-group{gap:var(--space-2);flex-direction:column;display:flex}.exp-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.exp-sec-head{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);display:flex}.exp-sec-heading{flex:1;min-width:0}.exp-sec-title{letter-spacing:-.01em;font-size:16px;font-weight:600;line-height:22px}.exp-sec-sub{color:var(--ink-muted);font-size:13px;line-height:18px}.exp-sec-toggle{margin-left:calc(var(--space-2) * -1);transition:transform .2s}.exp-sec-toggle.collapsed{transform:rotate(-90deg)}.exp-sec-spinner{width:14px;height:14px;margin-right:var(--space-2);justify-content:center;align-items:center;display:flex}.exp-sec-loading{padding:var(--space-10) var(--space-5);justify-content:center;align-items:center;display:flex}.exp-sec-retry{margin-top:var(--space-4)}.exp-sec-body{grid-template-rows:1fr;transition:grid-template-rows .2s;display:grid}.exp-sec-body.collapsed{grid-template-rows:0fr}.exp-sec-body-inner{min-height:0;overflow:hidden}.exp-sec-total{padding:14px var(--space-5);border-top:1px solid var(--border);background:var(--surface-muted);justify-content:space-between;align-items:center;display:flex}.exp-sec-total-lbl{color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px}.exp-sec-total-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600;line-height:22px}.help-trigger{min-height:32px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:6px;padding:0;font-size:13px;line-height:18px;display:inline-flex}.help-trigger:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}.exp-item{align-items:center;gap:var(--space-3);min-height:68px;padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);transition:background-color .12s;display:flex}.exp-item:last-child{border-bottom:0}.exp-item.clickable{cursor:pointer}.exp-item.clickable:hover{background:var(--surface-muted)}.exp-item.clickable:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.exp-item.paid,.exp-item.paid.clickable:hover{background:var(--brand-soft)}.exp-item.off{opacity:.55}.exp-cat-ico{background:var(--surface-muted);width:40px;height:40px;color:var(--ink);border-radius:10px;flex-shrink:0;place-items:center;font-size:16px;display:grid}.exp-item.paid .exp-cat-ico{background:var(--surface);color:var(--brand-ink)}.exp-info{flex:1;min-width:0}.exp-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:500;line-height:22px;overflow:hidden}.exp-meta{color:var(--ink-muted);font-size:13px;line-height:18px}.exp-right{align-items:center;gap:var(--space-3);flex-shrink:0;display:flex}.exp-amt{text-align:right;min-width:96px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:15px;font-weight:500;line-height:22px}.exp-actions{align-items:center;gap:2px;display:flex}.exp-actions .pay-chip{min-width:80px;margin-right:var(--space-2);justify-content:center}@media (hover:hover) and (min-width:641px){.exp-actions .ibtn{opacity:0;transition:opacity .15s,background-color .13s,color .13s}.exp-item:hover .exp-actions .ibtn,.exp-item:focus-within .exp-actions .ibtn,.exp-item.show-actions .exp-actions .ibtn{opacity:1}}@media (max-width:480px){.exp-item{column-gap:var(--space-3);row-gap:var(--space-2);padding:var(--space-3) var(--space-4);grid-template-columns:36px minmax(0,1fr);align-items:start;display:grid}.exp-cat-ico{grid-row:1/3;width:36px;height:36px;font-size:14px}.exp-name{white-space:normal}.exp-right{align-items:flex-start;gap:var(--space-2);flex-direction:column;grid-column:2}.exp-amt{text-align:left;min-width:0}.exp-actions .ibtn[aria-hidden=true]{display:none}}.exp-empty,.dash-empty{align-items:center;gap:var(--space-2);padding:var(--space-10) var(--space-5);text-align:center;color:var(--ink-muted);flex-direction:column;font-size:15px;line-height:22px;display:flex}.empty-ico{width:48px;height:48px;margin-bottom:var(--space-1);background:var(--surface-muted);color:var(--ink-muted);border-radius:50%;place-items:center;font-size:20px;display:grid}.empty-title{color:var(--ink);font-weight:600}.dash-empty{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.dash-empty-link{align-items:center;gap:var(--space-2);height:var(--control-height);padding:0 var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--ink);font-weight:500;text-decoration:none;display:inline-flex}.dash-empty-link:hover{background:var(--surface-muted)}.dash-empty-actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.app-header{z-index:var(--z-header);height:var(--header-height);align-items:center;gap:var(--space-3);padding:0 var(--space-4);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:fixed;top:0;left:0;right:0}.header-menu-btn{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;display:inline-flex;position:relative}.header-menu-btn:hover{background:var(--surface-muted)}.header-title-group{align-items:center;gap:10px;min-width:0;display:flex}.header-title-text{flex-direction:column;gap:2px;min-width:0;display:flex}.header-title{letter-spacing:-.02em;color:var(--ink);font-size:16px;font-weight:700;line-height:20px}.header-subtitle{color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;font-size:12px;line-height:16px;overflow:hidden}.header-spacer{height:var(--header-height);flex-shrink:0}.app-logo{flex-shrink:0;display:block}.app-logo-tile{fill:var(--hero)}.app-logo-bar{fill:var(--on-hero);opacity:.35}.app-logo-line{stroke:var(--on-hero)}.app-logo-up{fill:var(--hero-accent)}.sidebar-overlay{z-index:var(--z-overlay);background:var(--overlay);opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s;position:fixed;inset:0}.sidebar-overlay--visible{opacity:1;visibility:visible}.sidebar{z-index:var(--z-sidebar);width:var(--sidebar-width);background:var(--surface);box-shadow:var(--shadow-lg);flex-direction:column;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.sidebar--open{transform:translate(0)}.sidebar-header{height:var(--header-height);padding:0 var(--space-3) 0 var(--space-4);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.sidebar-heading{font-size:16px;font-weight:600;line-height:22px}.sidebar-nav-list{padding:var(--space-2);flex-direction:column;flex:1;gap:2px;margin:0;list-style:none;display:flex;overflow-y:auto}.sidebar-nav-item{align-items:center;gap:var(--space-3);height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--ink);font-size:15px;font-weight:500;line-height:22px;text-decoration:none;transition:background-color .15s;display:flex}.sidebar-nav-item:hover{background:var(--surface-muted)}.sidebar-nav-item i{color:var(--ink-muted);text-align:center;width:20px;font-size:16px}.sidebar-nav-item--active{background:var(--brand-soft);color:var(--brand-ink);font-weight:600}.sidebar-nav-item--active:hover{background:var(--brand-soft)}.sidebar-nav-item--active i{color:var(--brand-ink)}.sidebar-theme-section,.sidebar-logout-section{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);flex-direction:column;display:flex}.sidebar-theme-section .type-opt{height:auto;min-height:var(--touch-target);flex-direction:column;gap:2px;padding:6px 4px;font-size:12px;line-height:16px}.sidebar-theme-label{color:var(--ink-muted);font-size:13px;font-weight:500;line-height:18px}.sidebar-logout-btn{align-items:center;gap:var(--space-3);width:100%;height:var(--touch-target);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--danger-ink);text-align:left;cursor:pointer;background:0 0;border:0;font-size:15px;font-weight:500;line-height:22px;display:flex}.sidebar-logout-btn:hover{background:var(--danger-soft)}@media (max-width:600px){.sidebar{width:100%}.header-title-group{max-width:calc(100% - 136px);position:absolute;left:50%;transform:translate(-50%)}}.bottom-nav{z-index:var(--z-header);height:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);background:var(--surface);border-top:1px solid var(--border);display:none;position:fixed;bottom:0;left:0;right:0}@media (max-width:640px){.bottom-nav{display:flex}}body:has(.modal-backdrop) .bottom-nav{display:none}.bottom-nav-item{color:var(--ink-muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:500;line-height:16px;text-decoration:none;display:flex}.bottom-nav-ico{border-radius:var(--radius-full);place-items:center;width:56px;height:28px;font-size:16px;transition:background-color .15s;display:grid}.bottom-nav-item[aria-current=page]{color:var(--brand-ink);font-weight:600}.bottom-nav-item[aria-current=page] .bottom-nav-ico{background:var(--brand-soft)}body:has(.modal-backdrop){overflow:hidden}.modal-backdrop{z-index:var(--z-modal);padding:var(--space-4);background:var(--overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:92vh;box-shadow:var(--shadow-lg);animation:.18s slideUp;overflow-y:auto}@media (max-width:640px){.modal-backdrop{padding:calc(var(--header-height) + var(--space-3)) var(--space-4) var(--space-4)}.modal{max-height:calc(100dvh - var(--header-height) - var(--space-8))}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.modal,.modal-backdrop{animation:none}}.modal-head{z-index:1;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-3) var(--space-4) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border);display:flex;position:sticky;top:0}.modal-title{letter-spacing:-.02em;font-size:20px;font-weight:600;line-height:26px}.modal-body{gap:var(--space-4);padding:var(--space-5);flex-direction:column;display:flex}.modal-text{color:var(--ink-muted);margin:0}.modal-text strong{color:var(--ink);font-weight:600}.modal-foot{z-index:1;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--surface);border-top:1px solid var(--border);display:flex;position:sticky;bottom:0}@media (max-width:640px){.modal-foot>*{flex:1}}.login-container{justify-content:center;align-items:center;gap:var(--space-6);min-height:100vh;padding:var(--space-4);background:var(--bg);flex-direction:column;display:flex}.login-brand{align-items:center;gap:var(--space-3);flex-direction:column;display:flex}.login-brand-text{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.login-brand-name{letter-spacing:-.02em;margin:0;font-size:22px;font-weight:700;line-height:26px}.login-brand-tagline{color:var(--ink-muted);margin:0;font-size:13px;line-height:18px}.login-card{gap:var(--space-5);width:100%;max-width:420px;padding:var(--space-8);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;display:flex}@media (max-width:480px){.login-card{padding:var(--space-6) var(--space-5)}}.login-form{gap:var(--space-4);flex-direction:column;display:flex}.button-group{margin-top:var(--space-2)}.content-wrapper{transition:opacity .2s ease-in-out}.content-wrapper.fade-out{opacity:0}.content-wrapper h2{letter-spacing:-.02em;margin:0 0 4px;font-size:20px;font-weight:600;line-height:26px}.content-wrapper p{color:var(--ink-muted);margin:0;font-size:15px;line-height:22px}.error-message{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger-ink);font-size:13px;line-height:18px;display:flex}.login-footer-row{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.remember-me-label{align-items:center;gap:var(--space-2);color:var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:13px;line-height:18px;display:inline-flex}.remember-me-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);cursor:pointer;margin:0}.btn-missed-pass{color:var(--brand-ink);cursor:pointer;background:0 0;border:0;padding:4px 0;font-size:13px;font-weight:500;line-height:18px}.btn-missed-pass:hover{text-underline-offset:3px;text-decoration:underline}.pw-tips{gap:4px;margin:0;padding:0;list-style:none;display:grid}.pw-tip{align-items:center;gap:var(--space-2);color:var(--ink-muted);font-size:13px;line-height:18px;display:flex}.pw-tip.ok{color:var(--brand-ink)}.dash-stack{gap:var(--space-4);flex-direction:column;display:flex}.dash-panels{gap:var(--space-4);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:1024px){.dash-panels{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.dash-rates{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.dash-rate-label{color:var(--ink-muted);margin-bottom:4px;font-size:13px;line-height:18px}.dash-bar{height:8px;margin-top:var(--space-3);background:var(--track);border-radius:var(--radius-full);overflow:hidden}.dash-bar-fill{background:var(--ink);border-radius:inherit;height:100%;transition:width .3s}.dash-bar-fill--paid{background:var(--brand)}.dash-bar-fill--over{background:var(--danger)}.dash-alert{align-items:flex-start;gap:var(--space-2);margin-top:var(--space-3);color:var(--ink-muted);font-size:13px;line-height:18px;display:flex}.dash-alert i{margin-top:2px}.dash-alert--danger{color:var(--danger-ink)}.dash-cat-list,.dash-var-list{margin:var(--space-4) 0 0;gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:flex}.dash-var-list{gap:var(--space-3);margin-top:0}.dash-cat-row,.dash-var-row{align-items:center;column-gap:var(--space-2);grid-template-columns:20px minmax(0,1fr) auto 48px;font-size:15px;line-height:22px;display:grid}.dash-var-row{grid-template-columns:20px minmax(0,1fr) auto 56px}.dash-cat-row>i,.dash-var-row>i{color:var(--ink-muted);justify-self:center;font-size:14px}.dash-cat-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dash-cat-amount{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:13px;font-weight:500;line-height:18px}.dash-cat-share,.dash-var-pct{text-align:right;font-family:var(--font-mono);color:var(--ink-muted);font-size:13px;line-height:18px}.dash-cat-row .dash-bar{grid-column:2/-1;height:6px;margin-top:6px}.dash-var-group+.dash-var-group{margin-top:var(--space-5)}.dash-var-title{margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border);color:var(--ink);align-items:center;gap:6px;font-size:13px;font-weight:600;line-height:18px;display:flex}.dash-var-from{font-family:var(--font-mono);color:var(--ink-muted);grid-column:2/-1;font-size:13px;line-height:18px}.dash-pay-head{justify-content:space-between;align-items:flex-end;gap:var(--space-4);display:flex}.dash-pay-percent{color:var(--ink-muted);white-space:nowrap;font-size:13px;font-weight:600;line-height:18px}.dash-pay-sub{margin-top:var(--space-2)}.dash-link-row{padding-top:var(--space-3);justify-content:flex-end;margin-top:auto;display:flex}.dash-link{min-height:32px;color:var(--brand-ink);align-items:center;gap:6px;font-size:13px;font-weight:600;line-height:18px;text-decoration:none;display:inline-flex}.dash-link:hover{text-underline-offset:3px;text-decoration:underline}.dash-cmp-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.dash-cmp{border-collapse:collapse;width:100%;min-width:max-content;font-size:15px;line-height:22px}.dash-cmp thead th{padding:0 0 var(--space-2) var(--space-6);color:var(--ink-muted);text-align:right;font-size:12px;font-weight:600;line-height:16px}.dash-cmp tbody th{padding:var(--space-3) 0;border-top:1px solid var(--border);text-align:left;font-weight:500}.dash-cmp td{padding:var(--space-3) 0 var(--space-3) var(--space-6);border-top:1px solid var(--border);font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:13px;line-height:18px}.dash-cmp-pct{margin-left:4px;font-size:12px;display:inline-block}.dash-tone-good{color:var(--positive)}.dash-tone-bad{color:var(--negative)}.dash-tone-neutral{color:var(--ink-muted)}@media (max-width:640px){.dash-cat-list{gap:var(--space-3)}}.help-emoji{margin-right:6px;font-size:20px}.help-section-title{margin-bottom:var(--space-2);color:var(--ink);font-size:13px;font-weight:600;line-height:18px}.help-action-card{align-items:flex-start;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);display:flex}.help-action-icon{border-radius:var(--radius-sm);background:var(--surface);width:32px;height:32px;color:var(--ink);flex-shrink:0;place-items:center;font-size:13px;display:grid}.help-action-label{font-size:15px;font-weight:600;line-height:22px}.help-action-desc{color:var(--ink-muted);margin-top:2px;font-size:13px;line-height:18px}.detail-head{align-items:flex-start;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:0}.detail-id{align-items:center;gap:var(--space-3);min-width:0;display:flex}.detail-id-text{flex-direction:column;min-width:0;display:flex}.detail-id-text .modal-title{overflow-wrap:anywhere}.detail-body{padding-top:0}.detail-hero{padding-left:calc(40px + var(--space-3));flex-direction:column;gap:6px;display:flex}.detail-hero-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:26px;font-weight:500;line-height:30px}.detail-hero-note{color:var(--ink-muted);font-size:13px;line-height:18px}.detail-divider{border-top:1px solid var(--border)}.detail-section-title{margin-bottom:var(--space-3);color:var(--ink-muted);font-size:13px;font-weight:600;line-height:18px}.detail-foot{color:var(--ink-muted);flex-direction:column;gap:2px;font-size:13px;line-height:18px;display:flex}.entry-list{max-height:15rem;padding-right:var(--space-2);flex-direction:column;display:flex;overflow-y:auto}.entry-row{gap:var(--space-3);padding-bottom:var(--space-4);display:flex;position:relative}.entry-row:last-child{padding-bottom:0}.entry-row:not(:last-child):before{content:"";border-left:1px solid var(--border);position:absolute;top:28px;bottom:0;left:13px}.entry-ico{background:var(--surface-muted);width:28px;height:28px;color:var(--ink);border-radius:50%;flex-shrink:0;place-items:center;font-size:11px;display:grid}.entry-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.entry-main,.entry-sub{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.entry-sub{flex-wrap:wrap}.entry-lbl{font-size:15px;font-weight:500;line-height:22px}.entry-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap;font-size:15px;font-weight:500;line-height:22px}.entry-sub,.entry-msg{color:var(--ink-muted);font-size:13px;line-height:18px}
