.budget-donut{border-top:1px solid var(--border);gap:16px;padding-top:16px;display:grid}.budget-donut-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);align-items:center;gap:clamp(12px,4vw,36px);display:grid}.budget-donut-legend{flex-direction:column;align-items:start;gap:8px;margin:0;padding:0;list-style:none;display:flex}.budget-donut-legend li{max-width:100%}.budget-donut-pill{border:1px solid var(--border);min-height:44px;color:var(--text);background:var(--surface2);cursor:pointer;text-align:start;overflow-wrap:anywhere;border-radius:18px;flex-wrap:wrap;align-items:center;gap:4px 8px;padding:8px 13px;display:flex}.budget-donut-pill:hover,.budget-donut-pill[aria-pressed=true]{background:var(--surface3)}.budget-donut-figure{min-width:0}.budget-donut-ring{width:min(100%,340px);margin:0 auto;position:relative}.budget-donut-ring svg{fill:none;width:100%;display:block}.budget-donut-track{stroke:var(--surface3)}.budget-donut-segment{cursor:pointer;transition:stroke-dasharray .26s,stroke-dashoffset .26s,stroke-width .26s,stroke .26s}.budget-donut-centre{pointer-events:none;text-align:center;overflow-wrap:anywhere;flex-direction:column;justify-content:center;align-items:center;padding:0 20%;display:flex;position:absolute;inset:0}.budget-donut-centre strong{font-variant-numeric:tabular-nums;font-size:clamp(1.4rem,5vw,2.5rem);line-height:1.15}.budget-donut-centre span,.budget-donut-detail{color:var(--text-muted);font-size:.85rem}.budget-donut-detail{text-align:center;overflow-wrap:anywhere;min-height:2rem}.budget-donut-detail p{background:var(--surface2);width:fit-content;max-width:100%;color:var(--text);border-radius:8px;margin:4px auto 0;padding:4px 10px}@media (width<=600px){.budget-donut-layout{grid-template-columns:minmax(0,1fr)}.budget-donut-figure{grid-row:1}.budget-donut-legend{flex-flow:wrap}}@media (prefers-reduced-motion:reduce){.budget-donut-segment{transition:none}}.budget-page{margin-top:clamp(32px,6vw,64px)}.budget-heading,.budget-panel-heading,.budget-edit-actions,.budget-summary{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.budget-heading{align-items:end;margin-bottom:20px}.budget-heading p,.budget-income-value{margin:4px 0 0}.budget-page h2{margin:0;font-size:1.1rem}.budget-month-picker,.budget-year-buttons{align-items:end;gap:8px;display:flex}.budget-page label{gap:5px;min-width:0;font-size:.9rem;display:grid}.budget-page input,.budget-page select,.budget-page .secondary-button{min-width:0;min-height:44px;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:1rem}.budget-page .secondary-button{cursor:pointer}.budget-page :disabled{opacity:.65;cursor:default}.budget-panel{gap:20px;padding:clamp(16px,4vw,28px);display:grid}.budget-income-value{overflow-wrap:anywhere;font-size:1.6rem;font-weight:700}.budget-income-field{width:min(100%,320px)}.budget-allocations{gap:12px;display:grid}.budget-allocations .intro-copy{margin:0}.budget-allocation-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,2fr) minmax(0,1fr);align-items:center;gap:12px;padding:12px 0;display:grid}.budget-category{overflow-wrap:anywhere;align-items:center;gap:8px;display:flex}.budget-swatch{border-radius:50%;flex:0 0 10px;width:10px;height:10px}.budget-allocation-inputs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.budget-hint{color:var(--text-muted);font-size:.85rem}.budget-effective-amount{text-align:right;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.budget-summary:not(:empty){background:var(--surface2);overflow-wrap:anywhere;border-radius:8px;padding:12px}.budget-summary:empty{display:none}.budget-warning{color:#fca5a5}.budget-edit-actions{justify-content:end}.category-manager{margin-top:20px}.category-manager fieldset{border:0;gap:12px;min-width:0;margin:0;padding:0;display:grid}.category-manager h3,.category-manager p{margin:0}.category-form,.category-actions{flex-wrap:wrap;align-items:end;gap:8px;display:flex}.category-form label{flex:160px}.category-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.category-row{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 0;display:flex}.category-row .budget-category{flex:140px;min-width:0}.category-row .category-form,.category-confirm{flex:300px;min-width:0}.recurring-panel{margin-top:20px}.recurring-panel p{margin:0}.recurring-form,.recurring-description{overflow-wrap:anywhere;gap:8px;display:grid}.recurring-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.recurring-panel .recurring-checkbox{align-items:center;gap:8px;min-height:44px;display:flex}.recurring-panel .recurring-checkbox input{width:20px;height:20px;min-height:auto;accent-color:var(--accent);padding:0}.recurring-joint-button{justify-self:start}.category-confirm{gap:8px;display:grid}@media (width<=650px){.recurring-fields{grid-template-columns:minmax(0,1fr)}.budget-allocation-row{grid-template-columns:minmax(0,1fr) auto}.budget-allocation-row>:nth-child(2){grid-area:2/1/auto/-1}.budget-effective-amount{max-width:140px}}.dashboard-page{gap:16px;display:grid}.dashboard-page .budget-heading{margin:0}.dashboard-month{text-align:center;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;display:grid}.dashboard-month time{font-weight:650}.dashboard-switcher{border:1px solid var(--border);background:var(--surface);border-radius:999px;grid-template-columns:repeat(3,minmax(0,1fr));justify-self:start;gap:4px;max-width:100%;padding:4px;display:inline-grid}.dashboard-switcher button{min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:4px clamp(4px,2vw,16px);display:inline-flex}.dashboard-switcher button[aria-pressed=true]{color:var(--text);background:var(--surface3)}.dashboard-page .budget-panel p,.dashboard-summary,.dashboard-summary dd{margin:0}.dashboard-summary{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:16px;display:grid}.dashboard-summary dt{color:var(--text-muted);font-size:.85rem}.dashboard-summary dd{overflow-wrap:anywhere;font-size:1.2rem;font-weight:700}.dashboard-over-budget{color:#fca5a5}.dashboard-breakdown{border-top:1px solid var(--border)}.dashboard-breakdown summary{cursor:pointer;min-height:44px;padding:10px 0;font-weight:650}.dashboard-breakdown dl,.dashboard-breakdown dd{margin:0}.dashboard-breakdown dl>div{justify-content:space-between;gap:12px;padding:8px 0;display:flex}.dashboard-breakdown dt,.dashboard-breakdown dd{overflow-wrap:anywhere;min-width:0}.dashboard-breakdown dd{text-align:right}@media (width<=480px){.dashboard-month,.dashboard-switcher{width:100%}}.app-navigation{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.app-navigation a{color:var(--text-muted);border-radius:8px;padding:8px 12px;text-decoration:none}.app-navigation a[aria-current=page]{background:var(--surface2);color:var(--text)}.expense-page{gap:16px;display:grid}.expense-page .budget-heading{margin:0}.expense-line,.expense-list-row,.expense-split-summary,.expense-receipt-fields,.expense-method{gap:10px;min-width:0;display:grid}.expense-line{border:0;border-top:1px solid var(--border);margin:0;padding:12px 0}.expense-line legend{color:var(--text-muted);padding-right:8px}.expense-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.expense-line-top,.expense-filters{grid-template-columns:repeat(auto-fit,minmax(min(100%,148px),1fr));align-items:start;gap:10px;display:grid}.expense-page input.expense-amount{font-size:1.35rem}.expense-chips,.expense-tax-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.expense-chip{overflow-wrap:anywhere;text-align:start;justify-content:flex-start;align-items:center;gap:7px;max-width:100%;display:inline-flex}.expense-page .expense-chip[aria-pressed=true]{border-color:var(--accent);background:var(--surface3)}.expense-category-row{gap:8px;display:grid}.expense-page .expense-checkbox{align-items:center;gap:7px;min-height:44px;display:flex}.expense-page .expense-checkbox input{width:20px;height:20px;min-height:0;accent-color:var(--accent);padding:0}.expense-remove-line,.expense-notice,.expense-split-summary button,.expense-receipt-fields button{justify-self:start}.expense-page .expense-save-actions{background:var(--surface);z-index:1;padding:8px 0;position:sticky;bottom:0}.expense-page p{margin:0}.expense-balances{grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.expense-balances li{background:var(--surface2);overflow-wrap:anywhere;border-radius:8px;gap:4px;padding:10px;display:grid}.expense-under{color:#6ee7b7}.expense-over{color:#fca5a5}.expense-list-row{border-top:1px solid var(--border);touch-action:pan-y;padding:10px 0}.expense-list-item{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.expense-entry-button{min-width:0;color:var(--text);text-align:start;cursor:pointer;overflow-wrap:anywhere;background:0 0;border:0;flex:260px;gap:5px;padding:8px 0;display:grid}.expense-toast{z-index:4;background:var(--surface3);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex;position:sticky;top:8px}.expense-receipt-view img{object-fit:contain;max-width:100%;max-height:65vh}.expense-tax-tracker summary{cursor:pointer;font-weight:600}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#0b0c10;--surface:#14161f;--surface2:#1c202e;--surface3:#262b3d;--border:#2b3247;--text:#e8ecf4;--text-muted:#8d98af;--accent:#6366f1;--accent-hover:#4f46e5;--accent2:#06b6d4;--green:#10b981;--red:#ef4444;--amber:#f59e0b;--purple:#a855f7;--pink:#ec4899;color:var(--text);background:var(--bg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.55}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}a{color:inherit}:focus-visible{outline:2px solid var(--accent2);outline-offset:5px}::selection{background:var(--accent);color:#fff}.setup-page{max-width:1040px;margin:0 auto;padding:clamp(20px,4vw,40px)}.app-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.brand{align-items:center;gap:10px;font-weight:700;text-decoration:none;display:inline-flex}.setup-panel{background:var(--surface);border:1px solid var(--border);border-radius:16px}.login-panel{max-width:440px;margin:clamp(40px,10vh,96px) auto 0;padding:clamp(20px,5vw,36px)}h1{letter-spacing:-.04em;margin:0;font-size:clamp(1.85rem,5vw,2.75rem);line-height:1.15}.login-form{gap:16px;margin-top:24px;display:grid}.login-form label,.password-form label{gap:6px;font-weight:600;display:grid}.login-form input,.password-form input{min-width:0;min-height:44px;color:var(--text);background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:1rem}.primary-button,.settings-menu summary{border:1px solid var(--border);cursor:pointer;border-radius:8px;min-height:44px;padding:9px 14px}.primary-button{background:var(--accent-hover);color:#fff;font-weight:650}.primary-button:disabled{opacity:.65;cursor:default}.settings-menu{position:relative}.settings-menu summary{background:var(--surface);white-space:nowrap}.settings-panel{z-index:1;width:min(360px,100vw - 40px);padding:16px;position:absolute;top:calc(100% + 8px);right:0}.password-settings{border-bottom:1px solid var(--border);margin-bottom:16px;padding-bottom:16px}.password-settings h2{margin:0 0 8px;font-size:1rem}.password-settings p{margin:0;font-size:.9rem}.password-settings p:not([role=alert]){color:var(--text-muted)}.password-form{gap:12px;display:grid}.settings-panel button{width:100%}[role=alert]{color:#fca5a5;margin:0}.settings-panel [role=alert]{margin-top:8px}.intro{margin-top:clamp(48px,8vw,84px)}.intro-copy,.login-form [role=status]{color:var(--text-muted)}
