:root{font-family:'DM Sans',system-ui,sans-serif;color:#212b25;background:#f7f5ef;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100vh}.topbar{height:76px;padding:0 max(24px,calc((100% - 1120px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #eae7dd;background:#fbfaf6}.brand{display:flex;align-items:center;gap:10px;color:#243b31;text-decoration:none;font:800 18px Manrope,sans-serif;letter-spacing:-.7px}.brand-mark{height:34px;width:34px;border-radius:12px;background:#27644d;color:white;display:grid;place-items:center;font:800 17px Manrope}.local-badge{font-size:12px;color:#66746b;background:#f0f3ed;padding:9px 12px;border-radius:20px}.local-badge span{display:inline-block;width:7px;height:7px;border-radius:50%;background:#56a77c;margin-right:6px}.wrap{max-width:1120px;margin:0 auto;padding:48px 24px 30px}.welcome{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:28px}.eyebrow{font-size:10px;letter-spacing:1.6px;font-weight:700;color:#829088;margin:0 0 8px}.welcome h1,.panel h2,.dialog h2{font:700 29px Manrope,sans-serif;letter-spacing:-1px;margin:0;color:#25362e}.welcome .sub{margin:8px 0 0;color:#7c8880}.text-button{border:0;background:none;color:#728078;text-decoration:underline;cursor:pointer;font:500 12px inherit}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.summary-card{padding:22px 20px;background:#fff;border:1px solid #eeece5;border-radius:16px;min-height:132px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.balance-card{background:#245841;border-color:#245841;color:white}.card-label{font-size:12px;color:#79877e}.balance-card .card-label,.balance-card .card-note{color:#c0d5c8}.summary-card strong{font:700 26px Manrope,sans-serif;letter-spacing:-.7px;margin:10px 0 5px}.balance-card strong{font-size:31px}.card-note{font-size:11px;color:#a0aaa3}.content-grid{display:grid;grid-template-columns:.82fr 1.55fr;gap:16px;margin-top:20px}.panel{background:#fff;border:1px solid #eeece5;border-radius:16px;padding:23px}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.panel h2{font-size:19px;letter-spacing:-.4px}.icon-button{width:38px;height:38px;border:1px solid #e9ece7;background:white;color:#31664e;border-radius:12px;font-size:22px;cursor:pointer}.primary-button{border:0;border-radius:11px;background:#27644d;color:#fff;padding:12px 16px;font:600 12px 'DM Sans',sans-serif;cursor:pointer;transition:background .15s}.primary-button:hover{background:#194d39}.accounts-list,.transaction-list{display:flex;flex-direction:column}.account-row,.transaction-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid #f0efe9;padding:15px 0}.account-main,.transaction-main{display:flex;align-items:center;gap:12px}.account-icon,.transaction-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#f1f5f0;color:#438064;font-size:17px}.account-name,.transaction-description{font-size:13px;font-weight:600}.muted{font-size:11px;color:#97a199;margin-top:4px}.account-balance{font:700 14px Manrope,sans-serif}.amount{font:700 13px Manrope,sans-serif}.amount.income{color:#398365}.amount.expense{color:#39463f}.privacy-note{text-align:center;color:#89938b;font-size:11px;margin:22px 0 0}.dialog{border:0;border-radius:20px;padding:26px;width:min(460px,calc(100% - 28px));box-shadow:0 24px 80px #12251b33;color:#28372f}.dialog::backdrop{background:#14241c66;backdrop-filter:blur(3px)}.dialog form{display:flex;flex-direction:column;gap:15px}.dialog-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:4px}.dialog h2{font-size:21px}.close-button{font-size:25px;color:#77847b}.dialog label{display:flex;flex-direction:column;gap:7px;font-size:12px;font-weight:600;color:#536159}.dialog input,.dialog select{font:400 14px 'DM Sans',sans-serif;background:#fafbf9;border:1px solid #dfe5df;border-radius:10px;padding:12px;color:#28372f;min-width:0}.dialog input:focus,.dialog select:focus{outline:2px solid #9bc5aa;border-color:transparent}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.submit-button{margin-top:4px;padding:14px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:#213d2f;color:white;padding:12px 18px;border-radius:12px;font-size:13px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:760px){.topbar{height:65px;padding:0 18px}.wrap{padding:32px 16px 24px}.welcome{align-items:flex-start}.welcome h1{font-size:26px}.welcome .sub{font-size:13px;max-width:220px}.text-button{font-size:11px;margin-top:8px}.summary-grid{grid-template-columns:1fr 1fr;gap:10px}.summary-card{padding:17px 15px;min-height:112px;border-radius:14px}.summary-card strong{font-size:21px}.balance-card strong{font-size:25px}.card-label{font-size:11px}.content-grid{grid-template-columns:1fr;gap:13px;margin-top:14px}.panel{padding:19px}.panel-heading{margin-bottom:10px}.local-badge{font-size:10px;padding:8px 9px}.brand{font-size:16px}.brand-mark{width:31px;height:31px}}@media(max-width:380px){.welcome .sub{max-width:165px}.summary-card{padding:14px 12px}.summary-card strong{font-size:18px}}
.transaction-actions{display:flex;align-items:center;gap:10px}.row-action{border:0;background:transparent;color:#557466;text-decoration:underline;font:500 11px 'DM Sans',sans-serif;cursor:pointer;padding:7px 2px}.delete-action{color:#9b625c}.row-action:hover{color:#245841}.transaction-row{gap:10px}.transaction-main{min-width:0}.transaction-description{max-width:260px;overflow-wrap:anywhere}@media(max-width:520px){.transaction-actions{gap:7px;flex-wrap:wrap;justify-content:flex-end}.transaction-row{align-items:flex-start}.transaction-description{max-width:190px}.amount{white-space:nowrap}}
.backup-panel{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:16px}.backup-panel h2{font-size:18px}.backup-copy,.backup-warning{font-size:12px;color:#758078;margin:7px 0 0;line-height:1.5}.backup-warning{color:#92724a}.backup-actions{display:flex;gap:9px;flex-shrink:0}.secondary-button{border:1px solid #dce4dc;border-radius:11px;background:#fff;color:#31664e;padding:11px 15px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.secondary-button:hover{background:#f5f8f4}@media(max-width:650px){.backup-panel{align-items:flex-start;flex-direction:column;gap:16px}.backup-actions{width:100%;flex-wrap:wrap}.backup-actions button{flex:1}}
.transaction-filters{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:9px;margin:3px 0 8px}.transaction-filters label{display:flex;flex-direction:column;gap:5px;color:#78847b;font-size:10px;font-weight:600}.transaction-filters input,.transaction-filters select{width:100%;min-width:0;border:1px solid #e5e9e3;border-radius:9px;background:#fff;padding:9px 10px;color:#33443a;font:400 12px 'DM Sans',sans-serif}.transaction-filters input:focus,.transaction-filters select:focus{outline:2px solid #b4d2bd;border-color:transparent}.result-count{font-size:10px;color:#909a92;margin:7px 0 0}.transaction-list{max-height:560px;overflow-y:auto;padding-right:3px}.transaction-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:900px){.transaction-filters{grid-template-columns:1fr 1fr}.transaction-filters .search-label{grid-column:span 2}}@media(max-width:520px){.transaction-list{max-height:unset}.transaction-filters{gap:8px}.transaction-row{align-items:flex-start}}
.view-switch{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin:-12px 0 18px;color:#77847b;font-size:12px}.view-option{border:1px solid #e3e8e2;background:#fff;color:#506257;border-radius:9px;padding:8px 13px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.view-option[aria-pressed="true"]{background:#245841;border-color:#245841;color:#fff}.view-option:focus-visible{outline:3px solid #9bc5aa;outline-offset:2px}.insights-panel{margin:0 0 16px}.insights-panel[hidden]{display:none}.insights-period{background:#f0f4ef;color:#547260;padding:7px 11px;border-radius:18px;font-size:11px}.insights-summary{font-size:13px;color:#546259;line-height:1.65;margin:2px 0 18px}.spending-chart{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px}.spending-row-heading{display:flex;justify-content:space-between;gap:10px;color:#43544a;font-size:12px;margin-bottom:7px}.spending-row-heading span:last-child{font-weight:600;white-space:nowrap}.bar-track{height:9px;background:#edf1ec;border-radius:20px;overflow:hidden}.bar-fill{display:block;height:100%;min-width:3px;background:#4f9873;border-radius:20px}.spending-row:nth-child(3n+2) .bar-fill{background:#699dba}.spending-row:nth-child(3n) .bar-fill{background:#d0a45b}.chart-note{font-size:10px;color:#929b94;margin:16px 0 0}body[data-view="insights"] .insights-panel{display:block}@media(max-width:520px){.view-switch{justify-content:flex-start;margin:0 0 15px}.spending-chart{grid-template-columns:1fr;gap:13px}.insights-summary{font-size:12px}}
.topbar-tools{display:flex;align-items:center;gap:12px}.accessibility-menu{position:relative;color:#314b3b;font-size:12px}.accessibility-menu summary{list-style:none;border:1px solid #dfe6df;border-radius:10px;background:#fff;padding:9px 12px;cursor:pointer;font-weight:600}.accessibility-menu summary::-webkit-details-marker{display:none}.accessibility-menu summary:focus-visible,.accessibility-options input:focus-visible{outline:3px solid #80aa8d;outline-offset:2px}.accessibility-options{position:absolute;z-index:5;right:0;top:calc(100% + 7px);width:210px;display:grid;gap:3px;padding:9px;background:#fff;border:1px solid #e0e6df;border-radius:12px;box-shadow:0 10px 28px #17271d20}.accessibility-options label{display:flex;align-items:center;gap:10px;min-height:42px;padding:7px 9px;border-radius:8px;cursor:pointer;color:#293b30;font-size:13px}.accessibility-options label:hover{background:#f1f5f1}.accessibility-options input{width:18px;height:18px;accent-color:#27644d}
body.large-text .local-badge{font-size:14px}body.large-text .accessibility-menu,body.large-text .accessibility-menu summary,body.large-text .accessibility-options label{font-size:15px}body.large-text .eyebrow{font-size:12px}body.large-text .welcome h1{font-size:36px}body.large-text .welcome .sub{font-size:17px}body.large-text .card-label{font-size:15px}body.large-text .summary-card strong{font-size:31px}body.large-text .balance-card strong{font-size:36px}body.large-text .card-note{font-size:13px}body.large-text .panel h2{font-size:23px}body.large-text .account-name,body.large-text .transaction-description{font-size:16px}body.large-text .muted{font-size:14px}body.large-text .account-balance,body.large-text .amount{font-size:16px}body.large-text .primary-button,body.large-text .secondary-button{font-size:15px;padding:14px 17px}body.large-text .row-action{font-size:14px}body.large-text .transaction-filters label,body.large-text .transaction-filters input,body.large-text .transaction-filters select{font-size:14px}body.large-text .result-count,body.large-text .privacy-note,body.large-text .backup-copy,body.large-text .backup-warning,body.large-text .chart-note{font-size:13px}body.large-text .insights-summary{font-size:16px}body.large-text .spending-row-heading{font-size:15px}body.large-text .dialog label{font-size:15px}body.large-text .dialog input,body.large-text .dialog select{font-size:17px}body.high-contrast{color:#101810;background:#fff}body.high-contrast .topbar,body.high-contrast .panel,body.high-contrast .summary-card,body.high-contrast .accessibility-options,body.high-contrast .accessibility-menu summary{background:#fff;border-color:#4c5c50}body.high-contrast .welcome h1,body.high-contrast .panel h2,body.high-contrast .account-name,body.high-contrast .transaction-description,body.high-contrast .spending-row-heading,body.high-contrast .dialog label{color:#101810}body.high-contrast .eyebrow,body.high-contrast .muted,body.high-contrast .card-label,body.high-contrast .card-note,body.high-contrast .privacy-note,body.high-contrast .backup-copy,body.high-contrast .chart-note{color:#36443a}body.high-contrast .summary-card{border:1px solid #758279}body.high-contrast .balance-card{background:#123e2b;border-color:#123e2b;color:#fff}body.high-contrast .balance-card .card-label,body.high-contrast .balance-card .card-note{color:#fff}body.high-contrast .transaction-row,body.high-contrast .account-row{border-color:#a0aaa2}body.high-contrast .transaction-filters input,body.high-contrast .transaction-filters select,body.high-contrast .dialog input,body.high-contrast .dialog select{background:#fff;border-color:#4c5c50;color:#101810}body.high-contrast .bar-track{background:#d4ddd6}body.high-contrast .bar-fill{background:#075a35}body.high-contrast .spending-row:nth-child(3n+2) .bar-fill{background:#07518b}body.high-contrast .spending-row:nth-child(3n) .bar-fill{background:#7a4b00}body.high-contrast .local-badge{background:#e4eee7;color:#14291c}body.high-contrast .local-badge span{background:#146238}body.high-contrast .amount.income{color:#075a35}body.high-contrast .amount.expense{color:#101810}body.high-contrast .delete-action{color:#8a211a}@media(max-width:520px){.topbar-tools{gap:6px}.local-badge{font-size:9px;padding:7px 8px}.accessibility-menu summary{padding:8px 9px}}
.budgets-panel{margin-top:18px}.budgets-panel .panel-heading{align-items:center}.budgets-panel .panel-heading .muted{margin:5px 0 0}.budget-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.budget-item{min-width:0;border:1px solid #e9ede8;border-radius:13px;padding:15px;background:#fcfdfb}.budget-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}.budget-title-row h3{font:700 14px Manrope,sans-serif;color:#2c4034;margin:0}.budget-status{font-size:11px;color:#66766c;margin:6px 0 0}.budget-actions{display:flex;gap:8px}.budget-actions .row-action{padding:2px}.budget-progress{display:block;width:100%;height:10px;margin-top:13px;border:0;border-radius:20px;overflow:hidden;appearance:none}.budget-progress::-webkit-progress-bar{background:#e9efe9;border-radius:20px}.budget-progress::-webkit-progress-value{background:#4f9873;border-radius:20px}.budget-progress::-moz-progress-bar{background:#4f9873;border-radius:20px}.over-budget .budget-progress::-webkit-progress-value{background:#b34c3e}.over-budget .budget-progress::-moz-progress-bar{background:#b34c3e}.budget-percent{font-size:10px;color:#7b8880;margin:6px 0 0}.over-budget .budget-percent,.over-budget .budget-status{color:#a14337;font-weight:600}.budget-empty{font-size:12px;line-height:1.6;color:#758078;margin:0;padding:4px 0}.budget-dialog-copy{font-size:13px;line-height:1.5;margin:0 0 2px}.large-text .budget-title-row h3{font-size:17px}.large-text .budget-status,.large-text .budget-percent,.large-text .budget-empty{font-size:14px}.high-contrast .budget-item{background:#fff;border-color:#4c5c50}.high-contrast .budget-title-row h3,.high-contrast .budget-status,.high-contrast .budget-percent,.high-contrast .budget-empty{color:#101810}.high-contrast .over-budget .budget-status,.high-contrast .over-budget .budget-percent{color:#8a211a}.high-contrast .budget-progress::-webkit-progress-bar{background:#d4ddd6}.high-contrast .budget-progress::-webkit-progress-value,.high-contrast .budget-progress::-moz-progress-bar{background:#075a35}.high-contrast .over-budget .budget-progress::-webkit-progress-value,.high-contrast .over-budget .budget-progress::-moz-progress-bar{background:#8a211a}@media(max-width:650px){.budget-list{grid-template-columns:1fr}.budgets-panel .panel-heading{align-items:flex-start}}
