:root{--ink:#172033;--muted:#667085;--canvas:#f5f7fb;--surface:#fff;--line:#e4e8f0;--indigo:#5547e8;--indigo-soft:#eeecff;--amber:#e99a13;--amber-soft:#fff6df;--emerald:#07966d;--emerald-soft:#e4f7f1;--blue:#0787c7;--blue-soft:#e5f5fd;--danger:#dc3545;--shadow:0 16px 50px rgba(23,32,51,.08);--radius:20px}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.45}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid rgba(85,71,232,.25);outline-offset:2px}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:var(--ink);color:#fff;padding:28px 20px 20px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-size:1.22rem;font-weight:800;padding:0 8px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#fff;color:var(--ink);font-size:.72rem;letter-spacing:-.04em}.household-chip{display:flex;align-items:center;gap:10px;margin:28px 0 22px;padding:12px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1);border-radius:14px}.household-chip .avatar{width:34px;height:34px;border-radius:10px;background:#f4b73a;color:#29200c;display:grid;place-items:center;font-size:.68rem;font-weight:900}.household-chip strong,.household-chip small{display:block}.household-chip strong{font-size:.82rem}.household-chip small{color:#aeb7ca;font-size:.7rem;margin-top:2px}.nav-list{display:grid;gap:6px}.nav-item{width:100%;border:0;background:transparent;color:#b9c1d2;border-radius:12px;padding:12px 14px;text-align:left;font-weight:650;display:flex;gap:14px;align-items:center}.nav-item span{font-size:1.2rem;width:22px;text-align:center}.nav-item:hover,.nav-item.active{background:#fff;color:var(--ink)}.side-card{margin-top:auto;background:#25304a;padding:16px;border-radius:16px}.side-card-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#343f5c;color:#9af0d4;margin-bottom:10px}.side-card strong{font-size:.84rem}.side-card p{font-size:.73rem;color:#b9c1d2;margin:6px 0 8px}.text-button{border:0;background:transparent;color:var(--indigo);font-weight:750;padding:0}.side-card .text-button{color:#fff;font-size:.75rem}.sidebar-foot{display:flex;align-items:center;gap:7px;color:#9ea8bd;font-size:.68rem;margin:15px 4px 0}.sidebar-foot span:last-child{margin-left:auto}.status-dot{width:7px;height:7px;background:#24d39b;border-radius:50%}.main{margin-left:260px;min-height:100vh;padding:28px 34px 60px;max-width:1600px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.eyebrow,.section-kicker{color:#8b95a8;font-size:.67rem;letter-spacing:.14em;font-weight:850;margin:0 0 3px}.topbar h1{font-size:1.55rem;letter-spacing:-.03em;margin:0}.top-actions{display:flex;gap:10px}.icon-button{border:1px solid var(--line);background:var(--surface);color:var(--ink);width:42px;height:42px;border-radius:12px}.primary-button,.secondary-button,.danger-button{border:0;border-radius:12px;padding:11px 16px;font-weight:800}.primary-button{background:var(--indigo);color:#fff}.primary-button:hover{background:#4638d3}.secondary-button{background:#eff1f6;color:var(--ink)}.danger-button{background:#ffe9eb;color:#a51e2b}.menu-button{display:none}.view{display:none}.view.active{display:block}.quick-entry-card{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:14px;padding:15px 18px;background:var(--ink);border-radius:18px;color:#fff;box-shadow:var(--shadow)}.quick-icon{display:grid;place-items:center;width:40px;height:40px;background:#293550;border-radius:12px;color:#ffd469}.quick-copy label,.quick-copy span{display:block}.quick-copy label{font-weight:800}.quick-copy span{color:#aeb7ca;font-size:.74rem}.quick-input-wrap{margin-left:8px;background:#fff;border-radius:13px;display:flex;align-items:center;padding:4px}.quick-input-wrap input{flex:1;border:0;padding:9px 12px;min-width:120px}.quick-input-wrap input:focus{outline:0}.mic-button,.arrow-button{border:0;width:36px;height:36px;border-radius:10px}.mic-button{background:#f0f2f6;color:#9aa2b1;font-size:.54rem}.arrow-button{background:var(--indigo);color:#fff;font-size:1.2rem}.dashboard-head{display:flex;justify-content:space-between;align-items:center;margin:22px 0 14px}.month-switcher{display:flex;align-items:center;gap:10px}.month-switcher button{width:30px;height:30px;border:1px solid var(--line);background:var(--surface);border-radius:9px}.month-switcher strong{min-width:135px;text-align:center}.filter-row{display:flex;gap:8px}.filter-row select,.filter-panel select,.filter-panel input,.page-intro select{border:1px solid var(--line);background:var(--surface);border-radius:10px;padding:9px 12px;color:var(--ink)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.metric-card{background:var(--surface);padding:17px;border:1px solid var(--line);border-radius:17px}.metric-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.metric-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px}.income .metric-icon{background:var(--blue-soft);color:var(--blue)}.spending .metric-icon{background:var(--indigo-soft);color:var(--indigo)}.savings .metric-icon{background:var(--amber-soft);color:var(--amber)}.investment .metric-icon{background:var(--emerald-soft);color:var(--emerald)}.trend{font-size:.7rem;background:#f2f4f7;color:#7a8497;padding:4px 7px;border-radius:7px;font-weight:800}.trend.positive{background:var(--emerald-soft);color:var(--emerald)}.metric-card small{color:var(--muted);font-weight:650}.metric-card strong{display:block;font-size:1.55rem;letter-spacing:-.04em;margin:3px 0}.metric-card p{color:#9aa2b1;font-size:.72rem;margin:0}.primary-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:14px;margin:14px 0}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.panel-head h2,.page-intro h2{margin:0;font-size:1.14rem;letter-spacing:-.025em}.more-button{border:0;background:transparent;color:#8c95a7}.allocation-body{display:grid;grid-template-columns:210px 1fr;align-items:center;gap:18px}.donut-wrap{width:200px;height:200px;position:relative}.donut{width:100%;height:100%;transform:rotate(-90deg)}.donut-bg,.donut-seg{fill:none;stroke-width:17}.donut-bg{stroke:#edf0f5}.donut-seg{stroke-linecap:butt;transition:stroke-dasharray .4s}.spend-seg{stroke:var(--indigo)}.save-seg{stroke:var(--amber)}.invest-seg{stroke:var(--emerald)}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}.donut-center small{color:var(--muted);font-size:.7rem}.donut-center strong{font-size:1.18rem;margin:2px}.donut-center span{font-size:.65rem;color:#9ba3b1}.allocation-legend{display:grid;gap:13px}.legend-row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center}.legend-row i{width:9px;height:9px;border-radius:3px}.legend-row div strong,.legend-row div small{display:block}.legend-row div strong{font-size:.82rem}.legend-row div small{color:#9aa2b1;font-size:.66rem}.legend-row>strong{font-size:.82rem}.transaction-list{display:grid}.transaction-row{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #eef0f4}.transaction-row:last-child{border-bottom:0}.transaction-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;font-size:.9rem}.transaction-icon.spending{background:var(--indigo-soft);color:var(--indigo)}.transaction-icon.income{background:var(--blue-soft);color:var(--blue)}.transaction-icon.savings{background:var(--amber-soft);color:var(--amber)}.transaction-icon.investment{background:var(--emerald-soft);color:var(--emerald)}.transaction-meta strong,.transaction-meta small{display:block}.transaction-meta strong{font-size:.82rem}.transaction-meta small{font-size:.68rem;color:#9aa2b1}.transaction-amount{text-align:right;font-size:.83rem}.transaction-amount small{display:block;color:#a0a7b5;font-size:.63rem}.transaction-amount.positive{color:var(--emerald)}.categories-panel{margin-top:14px}.legend-inline{display:flex;gap:14px;color:#8992a3;font-size:.68rem}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.safe{background:var(--emerald)}.caution{background:var(--amber)}.danger{background:var(--danger)}.category-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.category-card{border:1px solid var(--line);border-radius:15px;padding:14px}.category-top{display:flex;align-items:center;gap:9px}.category-symbol{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#f1f3f7}.category-name{flex:1}.category-name strong,.category-name small{display:block}.category-name strong{font-size:.79rem}.category-name small{font-size:.64rem;color:#9aa2b1}.category-total{font-size:.78rem;font-weight:800}.progress-track{height:7px;background:#edf0f4;border-radius:6px;overflow:hidden;margin:12px 0 6px}.progress-fill{height:100%;border-radius:6px;background:var(--emerald)}.progress-fill.caution{background:var(--amber)}.progress-fill.danger{background:var(--danger)}.category-foot{display:flex;justify-content:space-between;color:#929baa;font-size:.64rem}.page-intro{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:20px}.page-intro p{margin:5px 0 0;color:var(--muted);font-size:.86rem}.filter-panel{display:grid;grid-template-columns:1fr 180px auto;gap:10px;margin-bottom:14px;padding:14px}.filter-panel input{width:100%}.ledger-head{display:flex;justify-content:space-between;padding-bottom:10px;border-bottom:1px solid var(--line)}.transaction-list.full .transaction-row{grid-template-columns:auto 1fr auto auto}.row-actions button{border:0;background:transparent;color:#a0a7b5}.plan-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.plan-summary article{background:var(--ink);color:#fff;padding:18px;border-radius:16px}.plan-summary small{display:block;color:#aeb7ca}.plan-summary strong{display:block;font-size:1.35rem;margin-top:4px}.plan-list{display:grid}.plan-row{display:grid;grid-template-columns:1fr 150px 100px;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}.plan-row:last-child{border:0}.plan-row input{border:1px solid var(--line);border-radius:9px;padding:8px 10px;width:100%}.plan-row small{color:var(--muted)}.trend-grid{display:grid;grid-template-columns:1.5fr .5fr;gap:14px;margin-bottom:14px}.bar-chart{height:310px;display:flex;align-items:end;gap:18px;padding:24px 10px 30px;border-bottom:1px solid var(--line)}.bar-group{height:100%;flex:1;display:flex;gap:4px;align-items:end;position:relative}.bar{flex:1;min-width:8px;border-radius:5px 5px 0 0}.bar.income{background:var(--blue)}.bar.spending{background:var(--indigo)}.bar.savings{background:var(--amber)}.bar.investment{background:var(--emerald)}.bar-label{position:absolute;top:calc(100% + 8px);left:50%;transform:translateX(-50%);font-size:.64rem;color:var(--muted)}.insight-card{background:var(--emerald-soft);border-radius:16px;padding:18px}.insight-card span{display:grid;place-items:center;width:38px;height:38px;background:var(--emerald);color:#fff;border-radius:11px;margin-bottom:18px}.insight-card strong{font-size:1.1rem}.insight-card p{font-size:.8rem;color:#47645b}.trend-summary{display:grid;gap:10px;margin-top:14px}.trend-summary-row{display:flex;justify-content:space-between;font-size:.78rem}.category-trends{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.category-trend{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:12px}.spark{height:28px;width:100%}.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.settings-section h3{margin-top:0}.settings-section>label{display:grid;gap:6px;margin:13px 0;font-size:.75rem;font-weight:750}.settings-section input,.settings-section select{border:1px solid var(--line);border-radius:10px;padding:10px;background:var(--surface);color:var(--ink)}.settings-section p{color:var(--muted);font-size:.84rem}.stack-buttons{display:grid;gap:10px}.file-button{text-align:center}.muted{color:#9ba3b2!important}.mobile-nav{display:none}.app-dialog{border:0;border-radius:22px;padding:0;width:min(720px,calc(100% - 28px));color:var(--ink);box-shadow:0 30px 100px rgba(12,18,31,.3)}.app-dialog::backdrop{background:rgba(13,20,34,.62)}.app-dialog form{padding:24px}.app-dialog.compact{width:min(480px,calc(100% - 28px))}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.dialog-head h2{margin:0}.type-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:18px}.type-tabs input{position:absolute;opacity:0}.type-tabs span{display:block;text-align:center;padding:10px;border:1px solid var(--line);border-radius:10px;font-weight:750;font-size:.78rem}.type-tabs input:checked+span{background:var(--ink);color:#fff;border-color:var(--ink)}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.form-grid.one{grid-template-columns:1fr}.form-grid label{display:grid;gap:6px;font-size:.75rem;font-weight:750}.form-grid input,.form-grid select{border:1px solid var(--line);border-radius:10px;padding:11px;background:#fff;color:var(--ink);width:100%}.form-grid .wide{grid-column:1/-1}.amount-field>div{display:flex;align-items:center;border:1px solid var(--line);border-radius:10px;padding-left:12px}.amount-field>div input{border:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.parse-preview{background:var(--blue-soft);color:#164b65;border-radius:12px;padding:12px;margin-bottom:14px;font-size:.8rem}.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:#fff;padding:12px 16px;border-radius:11px;box-shadow:var(--shadow);transform:translateY(100px);opacity:0;transition:.25s;z-index:100;font-size:.8rem}.toast.show{transform:none;opacity:1}.empty-state{text-align:center;color:var(--muted);padding:28px}.empty-state strong{display:block;color:var(--ink);margin-bottom:4px}
[data-theme="dark"]{--canvas:#101522;--surface:#192132;--ink:#f5f7fb;--muted:#a5afc2;--line:#2c364b;--shadow:0 16px 50px rgba(0,0,0,.25)}[data-theme="dark"] .sidebar{background:#0c111c}[data-theme="dark"] .quick-entry-card{background:#242d40}[data-theme="dark"] .quick-input-wrap,[data-theme="dark"] .form-grid input,[data-theme="dark"] .form-grid select{background:#fff;color:#172033}[data-theme="dark"] .plan-summary article{background:#242d40}
@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.category-grid{grid-template-columns:repeat(2,1fr)}.primary-grid,.trend-grid{grid-template-columns:1fr}.allocation-body{grid-template-columns:200px 1fr}}
@media(max-width:760px){body{padding-bottom:76px}.sidebar{transform:translateX(-105%);transition:.25s;width:280px;box-shadow:20px 0 60px rgba(0,0,0,.2)}.sidebar.open{transform:none}.main{margin-left:0;padding:18px 15px 30px}.menu-button{display:block}.topbar{gap:10px}.topbar>div:nth-child(2){flex:1}.topbar h1{font-size:1.15rem}.eyebrow{display:none}.top-actions .icon-button{display:none}.top-actions .primary-button{display:none}.quick-entry-card{grid-template-columns:auto 1fr}.quick-copy span{display:none}.quick-input-wrap{grid-column:1/-1;margin:0}.dashboard-head{align-items:flex-start;gap:10px}.filter-row{display:none}.metric-grid{grid-template-columns:repeat(2,1fr);gap:9px}.metric-card{padding:14px}.metric-card strong{font-size:1.22rem}.primary-grid{grid-template-columns:1fr}.allocation-body{grid-template-columns:1fr}.donut-wrap{margin:auto}.category-grid{grid-template-columns:1fr}.legend-inline{display:none}.panel{padding:16px}.page-intro{align-items:flex-start}.page-intro>.primary-button{display:none}.filter-panel{grid-template-columns:1fr}.plan-summary{grid-template-columns:1fr}.plan-summary article{padding:14px}.plan-row{grid-template-columns:1fr 120px}.plan-row small:last-child{display:none}.category-trends{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.mobile-nav{position:fixed;inset:auto 0 0;display:flex;align-items:center;justify-content:space-around;background:var(--surface);border-top:1px solid var(--line);height:68px;z-index:30;padding-bottom:env(safe-area-inset-bottom)}.mobile-nav button{border:0;background:transparent;color:#8c95a7;display:grid;gap:1px;place-items:center;font-size:1.05rem}.mobile-nav button span{font-size:.58rem}.mobile-nav button.active{color:var(--indigo)}.mobile-nav .mobile-add{width:48px;height:48px;border-radius:15px;background:var(--indigo);color:#fff;font-size:1.5rem;transform:translateY(-12px);box-shadow:0 8px 20px rgba(85,71,232,.35)}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.type-tabs{grid-template-columns:repeat(2,1fr)}.app-dialog form{padding:19px}.toast{bottom:84px;left:15px;right:15px;text-align:center}.bar-chart{gap:8px}.transaction-list.full .transaction-row{grid-template-columns:auto 1fr auto}.transaction-list.full .row-actions{display:none}}

.scope-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.scope-toggle{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:3px}.scope-toggle button{border:0;background:transparent;color:var(--muted);padding:7px 11px;border-radius:8px;font-size:.75rem;font-weight:800}.scope-toggle button.active{background:var(--ink);color:#fff}.year-glance{margin-bottom:14px}.month-glance{display:grid;grid-template-columns:repeat(12,1fr);gap:7px}.month-chip{border:1px solid var(--line);background:var(--canvas);color:var(--ink);border-radius:12px;padding:9px 5px;display:grid;gap:6px;text-align:center;transition:.2s}.month-chip:hover,.month-chip.current{border-color:var(--indigo);transform:translateY(-2px)}.month-chip>span:first-child{font-size:.68rem;font-weight:800;color:var(--muted)}.month-chip strong{font-size:.64rem}.mini-bars{height:54px;display:flex;align-items:end;justify-content:center;gap:3px}.mini-bars i{width:8px;border-radius:4px 4px 1px 1px}.mini-income{background:var(--blue)}.mini-spend{background:var(--indigo)}.chart-key{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.68rem}.chart-key i{width:8px;height:8px;border-radius:50%;margin-left:7px}.income-key{background:var(--blue)}.spend-key{background:var(--indigo)}.line-chart{height:330px;position:relative;padding-bottom:28px}.line-chart svg{width:100%;height:290px;overflow:visible}.grid-lines line{stroke:var(--line);stroke-width:1}.trend-line{fill:none;stroke-width:4;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.income-line{stroke:var(--blue)}.spend-line{stroke:var(--indigo)}.income-dot{fill:var(--blue)}.spend-dot{fill:var(--indigo)}.line-labels{display:grid;grid-template-columns:repeat(12,1fr);color:var(--muted);font-size:.62rem;text-align:center}.line-chart,.month-glance{animation:riseIn .35s ease both}@keyframes riseIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@media(max-width:1100px){.month-glance{grid-template-columns:repeat(6,1fr)}}
@media(max-width:760px){.dashboard-head{display:block}.scope-controls{justify-content:space-between}.month-switcher{margin-top:10px}.month-glance{display:flex;overflow-x:auto;padding-bottom:6px}.month-chip{min-width:74px}.line-chart{height:270px;overflow-x:auto}.line-chart svg{min-width:700px;height:230px}.line-labels{min-width:700px}.chart-key{display:none}}

.plan-summary{grid-template-columns:repeat(4,1fr)}.plan-safe{color:var(--emerald)!important}.plan-caution{color:var(--amber)!important}.plan-danger{color:var(--danger)!important}.panel-note{margin:5px 0 0;color:var(--muted);font-size:.78rem}.plan-legend{display:flex;justify-content:flex-end;gap:16px;margin:-7px 0 10px;color:var(--muted);font-size:.72rem}.plan-row{grid-template-columns:minmax(160px,.7fr) minmax(150px,.45fr) minmax(280px,1.35fr);padding:18px 0}.plan-category{display:flex;align-items:center;gap:10px}.plan-category strong,.plan-category small{display:block}.plan-budget{display:grid;gap:5px;color:var(--muted);font-size:.7rem;font-weight:750}.plan-input-wrap{display:flex;align-items:center;border:1px solid var(--line);border-radius:9px;padding-left:10px;background:var(--surface)}.plan-input-wrap input{border:0;padding-left:5px;background:transparent;color:var(--ink)}.plan-input-wrap input:focus{outline:0}.plan-progress{min-width:0}.plan-progress-head,.plan-progress-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.plan-progress-head strong{font-size:.8rem}.plan-progress-head span,.plan-progress-foot{color:var(--muted);font-size:.68rem}.budget-track{height:11px;background:var(--canvas);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin:8px 0 5px}.budget-fill{height:100%;border-radius:20px;background:var(--emerald);transition:width .45s ease}.budget-fill.caution{background:var(--amber)}.budget-fill.danger{background:var(--danger)}.budget-fill.unplanned{background:var(--muted)}.plan-row.danger .plan-progress-head strong{color:var(--danger)}.plan-row.caution .plan-progress-head strong{color:var(--amber)}.plan-row.safe .plan-progress-head strong{color:var(--emerald)}
@media(max-width:1100px){.plan-summary{grid-template-columns:repeat(2,1fr)}.plan-row{grid-template-columns:1fr 160px}.plan-progress{grid-column:1/-1}}
@media(max-width:760px){.plan-summary{grid-template-columns:repeat(2,1fr)}.plan-row{grid-template-columns:1fr}.plan-progress{grid-column:auto}.plan-legend{justify-content:flex-start;flex-wrap:wrap;margin-top:0}.plan-budget{width:100%}.panel-head #copyPlan{display:none}}

/* Visual polish: status colours belong to indicators, never whole budget rows. */
.plan-row{background:transparent!important;color:var(--ink);transition:background-color .2s ease}.plan-row:hover{background:color-mix(in srgb,var(--canvas) 72%,transparent)!important}.budget-fill.budget-safe{background:var(--emerald)}.budget-fill.budget-caution{background:var(--amber)}.budget-fill.budget-danger{background:var(--danger)}.budget-fill.budget-unplanned{background:var(--muted)}.plan-row.budget-safe .plan-progress-head strong{color:var(--emerald)}.plan-row.budget-caution .plan-progress-head strong{color:var(--amber)}.plan-row.budget-danger .plan-progress-head strong{color:var(--danger)}.plan-row.budget-unplanned .plan-progress-head strong{color:var(--muted)}

/* A denser, more legible annual overview with useful values in every month. */
.year-glance{padding:22px;background:var(--surface);overflow:hidden}.year-glance .panel-head{margin-bottom:14px}.month-glance{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:12px;background:var(--canvas);border:1px solid var(--line);border-radius:16px}.month-chip{min-height:118px;padding:11px 12px;background:var(--surface);border-radius:13px;text-align:left;grid-template-columns:1fr auto;grid-template-rows:auto 46px auto auto;gap:5px 10px;box-shadow:0 4px 16px rgba(23,32,51,.035)}.month-chip:hover{box-shadow:0 10px 24px rgba(23,32,51,.1)}.month-chip.current{border-color:var(--indigo);box-shadow:0 0 0 2px var(--indigo-soft)}.month-chip-head{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}.month-chip-head b{font-size:.78rem}.month-chip-head em{font-size:.59rem;font-style:normal;color:var(--muted);opacity:0;transition:.2s}.month-chip:hover .month-chip-head em,.month-chip.current .month-chip-head em{opacity:1;color:var(--indigo)}.month-chip .mini-bars{grid-row:2;grid-column:1;height:46px;justify-content:flex-start;gap:5px;padding-left:2px}.month-chip .mini-bars i{width:10px}.month-values{grid-row:2;grid-column:2;align-self:center;display:grid;gap:3px;text-align:right}.month-values small{font-size:.6rem;color:var(--muted);white-space:nowrap}.month-net{grid-column:1/-1;padding-top:5px;border-top:1px solid var(--line);font-size:.67rem;color:var(--emerald)}.month-net.negative{color:var(--danger)}
[data-theme="dark"] .month-glance{background:#121a29}[data-theme="dark"] .month-chip{background:#1d2739;box-shadow:none}[data-theme="dark"] .month-chip.current{box-shadow:0 0 0 2px rgba(85,71,232,.32)}[data-theme="dark"] .category-symbol{background:#242f43;color:#f5f7fb}[data-theme="dark"] .plan-row:hover{background:#1d2739!important}[data-theme="dark"] .secondary-button{background:#263146;color:#f5f7fb}
@media(max-width:1100px){.month-glance{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.year-glance{padding:16px}.month-glance{display:flex;padding:9px;gap:8px}.month-chip{min-width:150px;min-height:112px}.month-chip-head em{opacity:1}.plan-row:hover{background:transparent!important}}

.plan-category{min-width:0}.plan-category>div{min-width:0;flex:1}.category-delete{flex:0 0 auto;width:30px;height:30px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--muted);font-size:1.15rem;line-height:1;opacity:.55;transition:.18s}.plan-row:hover .category-delete,.category-delete:focus-visible{opacity:1}.category-delete:hover{background:#ffe9eb;border-color:#ffcbd0;color:#b42331}.income-category input{display:none}.form-grid label small{font-size:.68rem;line-height:1.4;color:var(--muted);font-weight:500}

/* High-contrast interactive states for the dark theme. */
[data-theme="dark"]{--indigo:#8b7cff;--indigo-soft:#2d285c;--amber:#ffc35c;--amber-soft:#493817;--emerald:#39d8ab;--emerald-soft:#173f37;--blue:#4fc3f2;--blue-soft:#173c50;--danger:#ff7180}
[data-theme="dark"] .panel,[data-theme="dark"] .metric-card,[data-theme="dark"] .category-card,[data-theme="dark"] .app-dialog{background:#192132;color:#f5f7fb}
[data-theme="dark"] .primary-button{background:#7568f5;color:#fff;box-shadow:0 5px 16px rgba(117,104,245,.25)}[data-theme="dark"] .primary-button:hover{background:#9187ff;box-shadow:0 7px 20px rgba(117,104,245,.36)}
[data-theme="dark"] .secondary-button,[data-theme="dark"] .file-button{background:#2a3650;color:#f5f7fb;border:1px solid #3b4966}[data-theme="dark"] .secondary-button:hover,[data-theme="dark"] .file-button:hover{background:#384764;border-color:#667493}
[data-theme="dark"] .icon-button,[data-theme="dark"] .month-switcher button{background:#202b40;color:#f5f7fb;border-color:#3b4966}[data-theme="dark"] .icon-button:hover,[data-theme="dark"] .month-switcher button:hover{background:#34425f;border-color:#8b7cff;color:#fff}
[data-theme="dark"] .text-button{color:#b7b0ff}[data-theme="dark"] .text-button:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
[data-theme="dark"] .scope-toggle{background:#141c2b;border-color:#35415a}[data-theme="dark"] .scope-toggle button{color:#b8c1d2}[data-theme="dark"] .scope-toggle button:hover{background:#26334b;color:#fff}[data-theme="dark"] .scope-toggle button.active{background:#8b7cff;color:#111629}
[data-theme="dark"] .filter-row select,[data-theme="dark"] .filter-panel select,[data-theme="dark"] .filter-panel input,[data-theme="dark"] .page-intro select,[data-theme="dark"] .settings-section input,[data-theme="dark"] .settings-section select,[data-theme="dark"] .plan-input-wrap{background:#111927;color:#f5f7fb;border-color:#3b4966}
[data-theme="dark"] .filter-row select:hover,[data-theme="dark"] .filter-panel select:hover,[data-theme="dark"] .page-intro select:hover,[data-theme="dark"] .settings-section select:hover,[data-theme="dark"] .plan-input-wrap:hover{border-color:#8b7cff}
[data-theme="dark"] .nav-item:hover{background:#25314a;color:#fff}[data-theme="dark"] .nav-item.active{background:#f5f7fb;color:#172033}[data-theme="dark"] .mobile-nav button:hover{color:#b7b0ff}
[data-theme="dark"] .month-chip:hover{background:#28344c;border-color:#8b7cff}[data-theme="dark"] .month-chip.current{background:#2b3151;border-color:#9d94ff}[data-theme="dark"] .month-chip-head em,[data-theme="dark"] .month-chip.current .month-chip-head em{color:#c6c0ff}
[data-theme="dark"] .transaction-row{border-color:#2c364b}[data-theme="dark"] .progress-track,[data-theme="dark"] .budget-track{background:#101724;border-color:#35415a}[data-theme="dark"] .donut-bg{stroke:#2b3549}
[data-theme="dark"] .category-delete{color:#c1cada}[data-theme="dark"] .category-delete:hover{background:#4b2029;border-color:#7c3440;color:#ff9aa5}
[data-theme="dark"] .app-dialog .form-grid input,[data-theme="dark"] .app-dialog .form-grid select,[data-theme="dark"] .import-table input,[data-theme="dark"] .import-table select,[data-theme="dark"] .queue-row select{background:#111927;color:#f5f7fb;border-color:#3b4966}[data-theme="dark"] .app-dialog .form-grid input:hover,[data-theme="dark"] .app-dialog .form-grid select:hover,[data-theme="dark"] .import-table input:hover,[data-theme="dark"] .import-table select:hover{border-color:#8b7cff}
[data-theme="dark"] .row-actions button{background:#202b40;color:#dbe2ee;border-color:#3b4966}[data-theme="dark"] .row-actions button:hover{background:#34425f;border-color:#8b7cff;color:#fff}[data-theme="dark"] .row-actions .delete-row:hover{background:#4b2029;border-color:#7c3440;color:#ff9aa5}
[data-theme="dark"] button:focus-visible,[data-theme="dark"] input:focus-visible,[data-theme="dark"] select:focus-visible{outline-color:rgba(157,148,255,.72)}
@media(max-width:390px){.metric-grid{grid-template-columns:1fr 1fr}.metric-card p{display:none}.category-card{padding:12px}.topbar h1{font-size:1rem}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Import, receipts, insights and motion */
.smart-strip{margin-top:14px;display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;overflow:hidden;position:relative}.smart-strip:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;background:var(--indigo-soft);right:-70px;top:-90px;z-index:0}.smart-strip>*{position:relative;z-index:1}.smart-strip h2{margin:0 0 3px;font-size:1rem}.smart-strip p{margin:0;color:var(--muted);font-size:.78rem}.smart-orb{display:grid;place-items:center;width:46px;height:46px;border-radius:15px;background:var(--indigo);color:#fff;box-shadow:0 10px 24px rgba(85,71,232,.24);animation:float 3.5s ease-in-out infinite}.import-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}.upload-panel{text-align:center;padding:28px}.upload-panel h3{margin:12px 0 5px}.upload-panel>p{max-width:440px;margin:0 auto 18px;color:var(--muted);font-size:.82rem}.upload-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;margin:auto;background:var(--blue-soft);color:var(--blue);font-size:1.4rem}.upload-icon.receipt{background:var(--amber-soft);color:var(--amber)}.drop-zone{min-height:155px;border:1.5px dashed #bdc5d4;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px;cursor:pointer;transition:transform .2s,border-color .2s,background .2s}.drop-zone:hover,.drop-zone.dragging{transform:translateY(-2px);border-color:var(--indigo);background:var(--indigo-soft)}.drop-zone strong{font-size:.86rem}.drop-zone span{font-size:.72rem;color:var(--indigo);font-weight:750;margin:3px 0 12px}.drop-zone small{max-width:430px;color:#929bab;font-size:.65rem}.import-preview{margin-bottom:14px;animation:riseIn .35s ease both}.import-preview .panel-head p{margin:5px 0 0;color:var(--muted);font-size:.76rem}.import-status-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}.status-pill,.queue-count{padding:6px 9px;border-radius:999px;font-size:.68rem;font-weight:800}.status-pill.matched{background:var(--emerald-soft);color:var(--emerald)}.status-pill.review{background:var(--amber-soft);color:#9a6508}.status-pill.duplicate{background:#f0f2f6;color:#6b7485}.import-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}.import-table{width:100%;border-collapse:collapse;min-width:850px}.import-table th,.import-table td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);font-size:.72rem;vertical-align:middle}.import-table th{color:var(--muted);font-size:.63rem;text-transform:uppercase;letter-spacing:.08em;background:var(--canvas)}.import-table tr:last-child td{border-bottom:0}.import-table select,.import-table input[type="text"]{width:100%;border:1px solid var(--line);border-radius:8px;padding:7px;background:var(--surface);color:var(--ink)}.row-review{background:rgba(245,158,11,.05)}.row-duplicate{opacity:.55}.row-status{font-weight:800}.row-status.review{color:#a56a06}.row-status.ready{color:var(--emerald)}.row-status.duplicate{color:var(--muted)}.local-note{margin-right:auto;color:var(--muted);font-size:.72rem}.clarification-panel{margin-top:14px}.queue-count{background:var(--amber-soft);color:#925e08}.queue-list{display:grid;gap:9px}.queue-row{display:grid;grid-template-columns:1fr 200px auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px}.queue-row small{display:block;color:var(--muted)}.queue-row select{border:1px solid var(--line);border-radius:9px;padding:8px;background:var(--surface);color:var(--ink)}.receipt-review{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:20px}.receipt-review>img{width:100%;max-height:420px;object-fit:contain;border-radius:14px;background:#eef1f6}.receipt-review p{color:var(--muted);font-size:.78rem}.receipt-attachment{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin-top:14px;padding:10px;background:var(--canvas);border-radius:12px}.receipt-attachment img{width:42px;height:42px;object-fit:cover;border-radius:8px}.receipt-attachment strong,.receipt-attachment span{display:block}.receipt-attachment span{font-size:.66rem;color:var(--muted)}.insight-hero{background:var(--ink);color:#fff;border-radius:22px;padding:28px;display:flex;justify-content:space-between;align-items:center;min-height:170px;margin-bottom:14px;position:relative;overflow:hidden}.insight-hero:after{content:"✦";position:absolute;right:170px;top:-65px;font-size:13rem;color:rgba(255,255,255,.035);transform:rotate(16deg)}.insight-hero h2{margin:4px 0 8px;font-size:1.5rem}.insight-hero p{margin:0;max-width:660px;color:#b9c1d2}.score-ring{width:112px;height:112px;border-radius:50%;border:9px solid rgba(255,255,255,.12);border-top-color:#46dbad;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1}.score-ring strong{font-size:1.65rem}.score-ring span{font-size:.58rem;color:#b9c1d2;text-transform:uppercase;letter-spacing:.09em}.insights-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.insight-tile{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;transition:transform .2s,box-shadow .2s}.insight-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.insight-tile .tile-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;margin-bottom:16px}.insight-tile.good .tile-icon{background:var(--emerald-soft);color:var(--emerald)}.insight-tile.watch .tile-icon{background:var(--amber-soft);color:#9a6508}.insight-tile.info .tile-icon{background:var(--blue-soft);color:var(--blue)}.insight-tile h3{margin:0 0 6px;font-size:.95rem}.insight-tile p{margin:0;color:var(--muted);font-size:.77rem}.insight-tile footer{border-top:1px solid var(--line);margin-top:15px;padding-top:10px;font-size:.66rem;font-weight:800;color:var(--indigo)}.education-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.education-grid>div{padding:15px;border-radius:14px;background:var(--canvas)}.education-grid b{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:var(--ink);color:var(--surface);font-size:.7rem;margin-bottom:12px}.education-grid strong{font-size:.82rem}.education-grid p{font-size:.72rem;color:var(--muted);margin:5px 0 0}.advice-note{margin:16px 0 0;color:var(--muted);font-size:.68rem;border-top:1px solid var(--line);padding-top:12px}
.metric-card,.panel,.category-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.metric-card:hover,.category-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:transparent}.primary-button,.secondary-button,.icon-button,.nav-item{transition:transform .16s ease,background .16s ease,color .16s ease}.primary-button:active,.secondary-button:active,.icon-button:active{transform:scale(.96)}.view.active{animation:riseIn .32s cubic-bezier(.2,.75,.3,1) both}.progress-fill{animation:growWidth .65s cubic-bezier(.2,.75,.3,1) both;transform-origin:left}.transaction-row{animation:softIn .25s ease both}.transaction-row:nth-child(2){animation-delay:.03s}.transaction-row:nth-child(3){animation-delay:.06s}.transaction-row:nth-child(4){animation-delay:.09s}@keyframes riseIn{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:none}}@keyframes softIn{from{opacity:0;transform:translateX(-5px)}to{opacity:1;transform:none}}@keyframes growWidth{from{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(4deg)}}
[data-theme="dark"] .drop-zone{border-color:#455169}[data-theme="dark"] .import-table th{background:#131a28}[data-theme="dark"] .row-review{background:rgba(245,158,11,.08)}[data-theme="dark"] .smart-strip:after{opacity:.16}[data-theme="dark"] .receipt-review>img{background:#101522}
@media(max-width:900px){.insights-grid{grid-template-columns:repeat(2,1fr)}.education-grid{grid-template-columns:1fr}.import-grid{grid-template-columns:1fr}}
@media(max-width:760px){.smart-strip{grid-template-columns:auto 1fr}.smart-strip .secondary-button{grid-column:1/-1}.queue-row{grid-template-columns:1fr}.receipt-review{grid-template-columns:1fr}.receipt-review>img{max-height:240px}.insights-grid{grid-template-columns:1fr}.insight-hero{padding:22px}.score-ring{width:88px;height:88px;flex:0 0 auto}.import-table-wrap{margin:0 -16px;border-radius:0;border-left:0;border-right:0}.top-actions #themeToggle{display:block}.upload-panel{padding:20px}}
.import-classify{display:grid;grid-template-columns:105px minmax(150px,1fr);gap:6px}.row-actions{display:flex;gap:5px}.row-actions button{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:8px;padding:6px 8px;background:var(--surface);font-weight:750;font-size:.7rem}.row-actions button i{font-style:normal}.row-actions .delete-row{color:var(--danger)}.receipt-badge{display:inline-grid;place-items:center;margin-left:6px;color:var(--amber);font-size:.72rem}.toast button{border:0;background:transparent;color:#9af0d4;font-weight:850;margin-left:4px}.primary-button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.transaction-list.full .row-actions{display:flex;grid-column:2/-1;justify-content:flex-end}.transaction-list.full .transaction-row{grid-template-columns:auto 1fr auto}.import-classify{grid-template-columns:1fr}}

.backup-warning{margin:12px 0 0!important;padding:10px 12px;border-radius:10px;background:var(--amber-soft);color:#825407!important;font-size:.7rem!important;font-weight:700}.secure-dialog form{padding:24px}.security-note{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;padding:13px;margin-bottom:17px;border:1px solid var(--line);border-radius:13px;background:var(--canvas)}.security-note>span{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:var(--indigo-soft);color:var(--indigo);font-size:1.1rem}.security-note strong{font-size:.8rem}.security-note p{margin:3px 0 0;color:var(--muted);font-size:.7rem}.form-error{min-height:1.2em;margin:10px 0 0;color:var(--danger);font-size:.72rem;font-weight:750}.dialog-subtitle{margin:4px 0 0;max-width:310px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:.72rem}
[data-theme="dark"] .backup-warning{background:#493817;color:#ffd987!important}[data-theme="dark"] .security-note{background:#111927;border-color:#3b4966}
@media(max-width:760px){.secure-dialog form{padding:19px}.secure-dialog .dialog-actions{display:grid;grid-template-columns:1fr}.secure-dialog .dialog-actions button{width:100%}}

/* Conversational financial assistant */
.assistant-panel{margin:14px 0;padding:0;overflow:hidden}.assistant-head{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:20px 22px;border-bottom:1px solid var(--line)}.assistant-identity{display:flex;align-items:center;gap:13px}.assistant-orb{display:grid;place-items:center;width:44px;height:44px;flex:0 0 auto;border-radius:14px;background:var(--indigo);color:#fff;box-shadow:0 9px 22px rgba(85,71,232,.24)}.assistant-identity h2{margin:2px 0;font-size:1.05rem}.assistant-identity p{margin:0;color:var(--muted);font-size:.7rem}.assistant-actions{display:flex;align-items:center;gap:12px}.assistant-actions select{border:1px solid var(--line);border-radius:10px;padding:9px 32px 9px 10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.74rem}.assistant-privacy{display:grid;grid-template-columns:auto 1fr auto;gap:10px 12px;align-items:center;padding:12px 22px;background:var(--indigo-soft);color:var(--ink)}.assistant-privacy>span{color:var(--indigo)}.assistant-privacy p{margin:0;font-size:.69rem;line-height:1.45}.assistant-privacy label{display:flex;align-items:center;gap:7px;font-size:.68rem;font-weight:750;white-space:nowrap}.assistant-privacy input{accent-color:var(--indigo)}.suggested-prompts{display:flex;gap:8px;padding:15px 22px 0;overflow:auto}.suggested-prompts button{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:8px 11px;background:var(--surface);color:var(--ink);font-size:.69rem;font-weight:700;cursor:pointer}.suggested-prompts button:hover{border-color:var(--indigo);color:var(--indigo);background:var(--indigo-soft)}.assistant-chat{min-height:260px;max-height:460px;overflow:auto;padding:20px 22px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth}.chat-message{display:flex;align-items:flex-start;gap:9px;max-width:82%}.chat-message>span{display:grid;place-items:center;min-width:31px;height:31px;border-radius:10px;background:var(--indigo-soft);color:var(--indigo);font-size:.66rem;font-weight:850}.chat-message>div{padding:11px 13px;border-radius:4px 14px 14px 14px;background:var(--canvas);font-size:.78rem;line-height:1.58}.chat-message.user{align-self:flex-end;flex-direction:row-reverse}.chat-message.user>span{background:var(--ink);color:var(--surface)}.chat-message.user>div{background:var(--indigo);color:#fff;border-radius:14px 4px 14px 14px}.assistant-composer{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;padding:14px 22px;border-top:1px solid var(--line)}.assistant-composer textarea{width:100%;min-height:44px;max-height:140px;resize:none;border:1px solid var(--line);border-radius:13px;padding:11px 13px;background:var(--canvas);color:var(--ink);font:inherit;font-size:.78rem;line-height:1.45}.assistant-composer textarea:focus{outline:2px solid color-mix(in srgb,var(--indigo) 35%,transparent);border-color:var(--indigo)}.assistant-composer button{height:44px}.assistant-disclaimer{margin:0;padding:0 22px 15px;color:var(--muted);font-size:.62rem;line-height:1.45}
[data-theme="dark"] .assistant-privacy{background:#24244b}[data-theme="dark"] .assistant-actions select,[data-theme="dark"] .assistant-composer textarea{background:#111927;color:#f5f7fb;border-color:#3b4966}[data-theme="dark"] .suggested-prompts button{background:#202b40;color:#e7ebf3;border-color:#3b4966}[data-theme="dark"] .suggested-prompts button:hover{background:#2d285c;border-color:#8b7cff;color:#fff}[data-theme="dark"] .chat-message>div{background:#202b40}[data-theme="dark"] .chat-message.user>div{background:#7568f5}[data-theme="dark"] .chat-message.user>span{background:#f5f7fb;color:#172033}
@media(max-width:900px){.assistant-privacy{grid-template-columns:auto 1fr}.assistant-privacy label{grid-column:2;white-space:normal}.assistant-head{align-items:flex-start}.assistant-actions{flex-direction:column;align-items:flex-end}}
@media(max-width:760px){.assistant-head{display:grid;padding:17px}.assistant-actions{flex-direction:row;justify-content:space-between;align-items:center}.assistant-actions select{min-width:0;max-width:190px}.assistant-privacy{padding:12px 17px}.suggested-prompts{padding:13px 17px 0}.assistant-chat{min-height:300px;padding:17px}.chat-message{max-width:94%}.assistant-composer{padding:12px 17px}.assistant-composer button{padding-inline:14px}.assistant-disclaimer{padding:0 17px 14px}}
