@import "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=Manrope:wght@500;600;700;800&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#1a1f1c;--muted:#6b726e;--paper:#fff;--line:#e8ece6;--mint:#50b98a;--moss:#174c3b;--amber:#d89b28;--coral:#e66d54;--blue:#3e6fba;--sidebar-w:240px;--bg:#f8f9f5;--surface-2:#eef0e8;--surface-3:#fafaf5;--surface-hover:#f2f4ee;--surface-hover-2:#e5e9de;font-family:Manrope,sans-serif}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#eef1ec;--muted:#9aa39a;--paper:#1c211d;--line:#2c332c;--mint:#5fc99a;--moss:#2a6b52;--amber:#e0ab4a;--coral:#eb8069;--blue:#6f96d4;--bg:#12150f;--surface-2:#232922;--surface-3:#1a1f19;--surface-hover:#262d24;--surface-hover-2:#313a2e}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--ink);margin:0;font-size:15px;line-height:1.5;transition:background .2s,color .2s}button,input,select{font:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}h1,h2,h3{letter-spacing:-.01em;font-family:Fraunces,serif}ul{margin:0;padding-left:1.2rem}li{margin-bottom:.35rem}input,select{border:1px solid var(--line);background:var(--surface-3);width:100%;color:var(--ink);border-radius:10px;outline:none;padding:.7rem .8rem;font-size:.95rem}input:focus,select:focus{border-color:var(--mint);box-shadow:0 0 0 3px #50b98a1f}label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;gap:.35rem;font-size:.72rem;font-weight:800;display:grid}.auth-shell{grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:1rem;min-height:100vh;padding:1rem;display:grid}.auth-visual{color:#f6f5ea;background:linear-gradient(135deg,#174c3bf5,#1a1f1ce0),url(https://images.unsplash.com/photo-1554224155-6726b3ff858f?auto=format&fit=crop&w=1600&q=80) 50%/cover;border-radius:12px;align-content:space-between;min-height:calc(100vh - 2rem);padding:clamp(1.5rem,4vw,3rem);display:grid;position:relative;overflow:hidden}.auth-visual:after{content:"";background-image:linear-gradient(#ffffff0f 1px,#0000 1px),linear-gradient(90deg,#ffffff0f 1px,#0000 1px);background-size:54px 54px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000)}.auth-visual>*{z-index:1;position:relative}.auth-visual h1{max-width:700px;font-size:clamp(2.5rem,6vw,5.5rem);line-height:.95}.brand-mark{align-items:center;gap:.75rem;font-size:1.1rem;font-weight:900;display:inline-flex}.brand-mark svg{color:var(--amber)}.brand-mark.compact{border-bottom:1px solid var(--line);padding:1rem 1.2rem;font-size:1rem}.proof-grid{flex-wrap:wrap;gap:.6rem;display:flex}.proof-grid span{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #ffffff38;border-radius:999px;align-items:center;gap:.4rem;min-height:38px;padding:.55rem .75rem;font-size:.85rem;display:inline-flex}.auth-card,.panel{border:1px solid var(--line);background:var(--paper);border-radius:12px;box-shadow:0 8px 32px #0000000a}.auth-card{align-self:center;padding:1.5rem}.auth-card form{gap:1rem;padding-top:1rem;display:grid}.segmented{background:var(--surface-2);border-radius:10px;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;display:grid}.segmented button{min-height:42px;color:var(--muted);border-radius:8px;font-size:.9rem;font-weight:800}.segmented button.active{color:var(--ink);background:var(--paper);box-shadow:0 1px 3px #00000014}.primary,.ghost,.icon-button{border-radius:10px;justify-content:center;align-items:center;gap:.45rem;min-height:42px;font-size:.9rem;font-weight:800;transition:background .15s,transform .1s;display:inline-flex}.primary{color:#fff;background:var(--moss);padding:.6rem 1.1rem}.primary:hover{background:#0e3122}.primary:active{transform:scale(.97)}.wide{width:100%}.ghost{color:var(--ink);background:var(--surface-hover);padding:.5rem .8rem}.ghost:hover{background:var(--surface-hover-2)}.ghost.small{border-radius:8px;min-height:34px;padding:.35rem .65rem;font-size:.82rem}.icon-button{width:40px;height:40px;color:var(--ink);background:var(--surface-hover);border-radius:10px}.icon-button:hover{background:var(--surface-hover-2)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.danger{color:var(--coral)!important}.app-shell{grid-template-columns:var(--sidebar-w) minmax(0, 1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffe6;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.sidebar nav{flex:1;gap:.2rem;padding:.75rem;display:grid}.sidebar a{min-height:44px;color:var(--muted);border-radius:10px;align-items:center;gap:.65rem;padding:0 .85rem;font-size:.92rem;font-weight:800;transition:background .15s,color .15s;display:flex}.sidebar a.active,.sidebar a:hover{color:var(--ink);background:var(--surface-2)}.sidebar a.active{background:var(--surface-hover-2)}.sidebar-user{border-top:1px solid var(--line);padding:.75rem 1.2rem}.sidebar-user small{color:var(--muted);word-break:break-all;font-size:.78rem}.sidebar .theme-toggle{justify-content:flex-start;margin:.5rem .75rem 0}.sidebar .logout-btn{margin:.5rem .75rem .75rem}.workspace{min-height:100vh;overflow-x:hidden}.page-content{gap:1.25rem;padding:clamp(1rem,3vw,2rem) clamp(1rem,3vw,2rem) 5rem;display:grid}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.page-header h1{font-size:clamp(2rem,4vw,3.5rem)}.subtitle{color:var(--muted);margin-top:.15rem;font-size:.9rem;font-weight:600}.panel{padding:1.25rem}.panel-header{justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.panel-header h2{font-size:1.35rem}.panel-actions{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.balance-total{font-family:Fraunces,serif;font-size:1.4rem}.metric-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;display:grid}.metric-grid article{border:1px solid var(--line);background:var(--paper);border-radius:12px;gap:.35rem;min-height:140px;padding:1.1rem;transition:box-shadow .2s,transform .15s;display:grid;box-shadow:0 4px 16px #00000008}.metric-grid article.clickable{cursor:pointer}.metric-grid article.clickable:hover{transform:translateY(-2px);box-shadow:0 8px 28px #00000014}.metric-grid svg:first-child{color:var(--blue)}.metric-grid span{color:var(--muted);font-size:.8rem;font-weight:700}.metric-grid strong{align-self:end;font-family:Fraunces,serif;font-size:1.6rem}.metric-grid small{color:var(--muted);font-size:.78rem}.trend-row{align-items:center;gap:.35rem;display:flex}.trend-up{color:var(--coral)!important}.trend-down{color:var(--mint)!important}.split-layout{grid-template-columns:minmax(0,1fr) minmax(300px,.85fr);gap:1rem;display:grid}.cat-breakdown{gap:.6rem;display:grid}.cat-bar-row{grid-template-columns:90px 1fr 70px;align-items:center;gap:.6rem;display:grid}.cat-bar-label{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:700;overflow:hidden}.cat-bar-track{background:var(--surface-2);border-radius:4px;height:8px;overflow:hidden}.cat-bar-fill{border-radius:4px;height:100%;transition:width .4s}.cat-bar-value{color:var(--muted);text-align:right;font-size:.82rem;font-weight:700}.sparkline{width:100%;height:60px}.sparkline-placeholder{color:var(--muted);font-size:.85rem}.sparkline-labels{justify-content:space-between;margin-top:.25rem;display:flex}.sparkline-labels small{color:var(--muted);font-size:.72rem}.badge{text-transform:uppercase;color:var(--muted);background:var(--surface-2);border-radius:6px;padding:.2rem .55rem;font-size:.72rem;font-weight:800}.insight-panel{gap:.9rem;display:grid}.score-ring{--score:70%;aspect-ratio:1;background:conic-gradient(var(--mint) var(--score), var(--surface-2) 0);width:110px;color:var(--moss);border-radius:999px;justify-self:start;place-items:center;transition:background .6s cubic-bezier(.22,1,.36,1);display:grid}.score-ring span{font-family:Fraunces,serif;font-size:2rem;line-height:1}.score-ring small{color:var(--muted);margin-top:-1.5rem;font-size:.72rem;font-weight:800}.insight-summary{font-size:.92rem;line-height:1.5}.advice-list{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.advice-item{align-items:flex-start;gap:.5rem;font-size:.85rem;line-height:1.45;display:flex}.priority-chip{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;flex-shrink:0;margin-top:.15rem;padding:.12rem .4rem;font-size:.62rem;font-weight:800}.priority-chip.alta{color:var(--coral);background:#e66d5426}.priority-chip.media{color:var(--amber);background:#d89b2829}.priority-chip.baja{color:var(--mint);background:#50b98a26}.prediction-box{background:var(--surface-2);border-radius:10px;align-items:center;gap:.6rem;padding:.7rem .85rem;font-size:.85rem;display:flex}.prediction-box strong{font-family:Fraunces,serif;font-size:1.05rem}.modal-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0a0c0873;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.modal-panel{background:var(--paper);border:1px solid var(--line);border-radius:16px;width:min(480px,100%);max-height:85vh;animation:.2s cubic-bezier(.22,1,.36,1) modalIn;overflow-y:auto;box-shadow:0 24px 60px #00000040}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:none}}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1.1rem 1.2rem;display:flex}.modal-header h2{margin:0;font-size:1.1rem}.modal-body{gap:1.1rem;padding:1.2rem;display:grid}.summary-total{gap:.15rem;display:grid}.summary-total span{color:var(--muted);font-size:.8rem;font-weight:700}.summary-total strong{font-family:Fraunces,serif;font-size:1.8rem}.summary-total small{align-items:center;gap:.3rem;font-weight:700;display:inline-flex}.summary-total small.trend-up{color:var(--coral)}.summary-total small.trend-down{color:var(--mint)}.summary-goals h3{align-items:center;gap:.4rem;margin:0 0 .5rem;font-size:.9rem;display:flex}.summary-goals ul{gap:.3rem;margin:0;padding-left:1.1rem;font-size:.85rem;display:grid}.type-toggle{background:var(--surface-2);border-radius:10px;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:.25rem;padding:.25rem;display:grid}.type-toggle.small.filter-3{grid-column:auto;grid-template-columns:repeat(3,minmax(0,1fr));max-width:280px}.type-toggle.small.filter-3 .toggle-btn{white-space:nowrap;padding:.4rem .3rem;font-size:.78rem}.toggle-btn{min-height:38px;color:var(--muted);border-radius:8px;justify-content:center;align-items:center;gap:.35rem;padding:.4rem;font-size:.85rem;font-weight:800;transition:all .15s;display:inline-flex}.toggle-btn:hover{color:var(--ink)}.toggle-btn.active.expense{color:#fff;background:var(--coral)}.toggle-btn.active.income{color:#fff;background:var(--mint)}.income-row{background:#f0faf5!important;border-color:#c5e8d3!important}.category-dot.income{color:var(--moss);background:#d1f0e1}.income-btn{background:var(--mint)!important}.income-btn:hover{background:#3da575!important}.cat-section{margin-bottom:1rem}.cat-section h3{color:var(--moss);align-items:center;gap:.4rem;margin-bottom:.5rem;font-size:1.1rem;display:flex}.expense-form{grid-template-columns:repeat(2,1fr);gap:.8rem;display:grid}.desc-field,.expense-form .wide{grid-column:1/-1}.date-shortcuts{gap:.35rem;margin-top:.35rem;display:flex}.date-shortcuts .chip{padding:.25rem .6rem;font-size:.72rem}.autocomplete-list{z-index:10;background:var(--paper);border:1px solid var(--line);border-radius:10px;max-height:180px;margin-top:.3rem;padding:.35rem;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 8px 24px #0000001a}.autocomplete-list li{color:var(--ink);cursor:pointer;border-radius:8px;margin:0;padding:.5rem .6rem;font-size:.85rem;font-weight:600}.autocomplete-list li:hover{background:var(--surface-2)}.category-suggestion-chip{border:1px dashed var(--mint);color:var(--moss);cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.35rem;margin-top:.4rem;padding:.3rem .65rem;font-size:.76rem;font-weight:700;transition:background .15s;display:inline-flex}.category-suggestion-chip:hover{background:var(--surface-2)}.success-flash{background:var(--mint)!important}@keyframes successPop{0%{transform:scale(1)}40%{transform:scale(1.03)}to{transform:scale(1)}}.success-flash{animation:.3s successPop}.expense-list{gap:.5rem;display:grid}.tag-editor{position:relative}.expense-row{border:1px solid var(--line);background:var(--surface-3);border-radius:10px;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:.7rem;min-height:56px;padding:.55rem .7rem;transition:background .15s;display:grid}.expense-row:hover{background:var(--surface-hover-2)}.expense-row.compact{min-height:48px;padding:.4rem .6rem}.expense-row div{min-width:0;display:grid}.expense-row strong,.expense-row small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.expense-row strong{font-size:.9rem}.expense-row small{color:var(--muted);font-size:.78rem}.expense-row b{white-space:nowrap;font-family:Fraunces,serif;font-size:.95rem}.expense-row .income{color:var(--mint)}.category-dot{aspect-ratio:1;background:var(--surface-2);width:36px;color:var(--moss);border-radius:8px;place-items:center;font-size:.7rem;font-weight:900;display:grid}.category-dot.small{width:30px;font-size:.65rem}.category-select{font:inherit;color:var(--muted);border:none;border-bottom:1px dashed var(--muted);cursor:pointer;background:0 0;max-width:130px;padding:0 .1rem;font-size:.78rem;font-weight:700}.row-actions{align-items:center;gap:.3rem;display:flex}.inline-edit input{padding:.35rem .5rem;font-size:.9rem}.category-add-form{gap:.6rem;margin-top:1rem;display:flex}.category-add-form input{flex:1}.filters-panel{gap:.75rem;display:grid}.filters-row{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.search-field{border:1px solid var(--line);background:var(--surface-3);border-radius:10px;flex:1;align-items:center;gap:.5rem;min-width:200px;padding:0 .7rem;display:flex}.search-field svg{color:var(--muted);flex-shrink:0}.search-field input{background:0 0;border:none;padding:.65rem 0}.search-field input:focus{box-shadow:none}.filter-select{max-width:190px}.empty-state{place-items:center;gap:.65rem;padding:2.5rem 0;display:grid}.filter-chips{flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem 0;display:flex}.chip{color:var(--muted);background:var(--surface-2);border-radius:999px;padding:.35rem .75rem;font-size:.82rem;font-weight:700;transition:all .15s}.chip:hover{background:var(--surface-hover-2)}.chip.active{color:#fff;background:var(--moss)}.error{color:var(--coral);font-size:.85rem;font-weight:700}.cache-note{color:var(--muted);font-size:.78rem;font-weight:600}.empty-msg{color:var(--muted);text-align:center;padding:2rem 0;font-size:.9rem}.spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.budget-panel{gap:.9rem;display:grid}.budget-add-row{align-items:center;gap:.5rem;display:flex}.budget-add-row select{flex:1.4}.budget-add-row input{flex:1}.primary.small{flex-shrink:0;min-height:40px;padding:.4rem .7rem}.budget-list{gap:.9rem;display:grid}.budget-row{gap:.4rem;display:grid}.budget-row-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.budget-cat{font-size:.88rem;font-weight:800}.budget-amounts{color:var(--muted);align-items:center;gap:.35rem;font-size:.85rem;font-weight:700;display:flex}.budget-amounts b{color:var(--ink);font-family:Fraunces,serif;font-size:.95rem}.budget-amounts b.over{color:var(--coral)}.icon-button.tiny{border-radius:6px;width:26px;height:26px}.budget-edit-inline{align-items:center;gap:.35rem;display:flex}.budget-edit-inline input{width:90px;padding:.35rem .5rem;font-size:.85rem}.budget-track{background:var(--surface-2);border-radius:5px;height:9px;overflow:hidden}.budget-fill{background:var(--mint);border-radius:5px;height:100%;transition:width .4s,background .2s}.budget-fill.warn{background:var(--amber)}.budget-fill.over{background:var(--coral)}.toast-stack{z-index:1000;gap:.6rem;max-width:min(360px,100vw - 2rem);display:grid;position:fixed;top:1rem;right:1rem}.toast-item{background:var(--ink);color:#fff;border-radius:10px;align-items:center;gap:.6rem;padding:.75rem .9rem;font-size:.85rem;font-weight:700;animation:.25s toastIn;display:flex;box-shadow:0 8px 28px #0000002e}.toast-item span{flex:1;line-height:1.35}.toast-close{color:#ffffffb3;flex-shrink:0}.toast-close:hover{color:#fff}.toast-success{background:var(--moss)}.toast-success svg{color:var(--mint)}.toast-error{background:#4a201a}.toast-error svg{color:var(--coral)}.toast-info{background:#16233d}.toast-info svg{color:var(--blue)}@keyframes toastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (width<=920px){.toast-stack{max-width:none;inset:auto 1rem 5.5rem}}.goal-form{gap:.8rem;display:grid}.goals-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.goal-card{gap:.75rem;display:grid}.goal-card-header{grid-template-columns:auto 1fr auto;align-items:center;gap:.85rem;display:grid}.goal-ring{--pct:0%;--color:var(--mint);aspect-ratio:1;background:conic-gradient(var(--color) var(--pct), var(--surface-2) 0);border-radius:999px;place-items:center;width:62px;display:grid}.goal-ring span{aspect-ratio:1;background:var(--paper);width:48px;color:var(--ink);border-radius:999px;place-items:center;font-size:.78rem;font-weight:800;display:grid}.goal-info h3{margin-bottom:.2rem;font-size:1.02rem}.goal-amounts{margin-bottom:.15rem;font-family:Fraunces,serif;font-size:1.1rem}.goal-amounts span{color:var(--muted);font-family:Manrope,sans-serif;font-size:.78rem;font-weight:700}.flow-panel{gap:.9rem;display:grid}.flow-bars{grid-template-columns:repeat(6,1fr);align-items:end;gap:.6rem;height:140px;display:grid}.flow-month{grid-template-rows:1fr auto;place-items:end center;gap:.4rem;height:100%;display:grid}.flow-bar-pair{justify-content:center;align-items:end;gap:4px;width:100%;height:100%;display:flex}.flow-bar{border-radius:4px 4px 0 0;width:12px;min-height:0;transition:height .4s,opacity .15s}.flow-bar.income{background:var(--mint)}.flow-bar.expense{background:var(--coral)}.flow-bar:hover{opacity:.75}.flow-month small{color:var(--muted);font-size:.72rem;font-weight:700}.chart-wrap{gap:.75rem;display:grid}.bar-chart-svg,.trend-chart-svg{width:100%;height:auto;overflow:visible}.bar-rect{transition:opacity .15s}.bar-rect:hover{opacity:.75}.bar-chart-label{fill:var(--muted);font-size:10px;font-weight:700}.chart-legend{justify-content:center;gap:1.2rem;display:flex}.chart-legend span{color:var(--muted);align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;display:inline-flex}.chart-legend i{border-radius:3px;width:10px;height:10px;display:inline-block}.donut-wrap{flex-wrap:wrap;align-items:center;gap:1.5rem;display:flex}.donut-svg{flex-shrink:0;width:180px;height:180px}.donut-segment{cursor:pointer;transition:opacity .15s}.donut-segment:hover{opacity:.8}.donut-total-label{fill:var(--muted);font-size:11px;font-weight:700}.donut-total-value{fill:var(--ink);font-family:Fraunces,serif;font-size:13px;font-weight:800}.donut-legend{flex:1;gap:.5rem;min-width:160px;display:grid}.donut-legend-row{grid-template-columns:10px 1fr auto;align-items:center;gap:.5rem;font-size:.85rem;display:grid}.donut-legend-row i{border-radius:3px;width:10px;height:10px}.donut-legend-row span{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-weight:700;overflow:hidden}.donut-legend-row b{color:var(--muted);font-size:.8rem}.empty-chart{place-items:center;gap:.5rem;padding:2rem 0;display:grid}.skeleton-block{background:linear-gradient(100deg, var(--surface-2) 30%, var(--surface-hover) 50%, var(--surface-2) 70%);background-size:200% 100%;animation:1.4s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;gap:.5rem;padding:1.1rem;display:grid}.skeleton-row{align-items:center;gap:.75rem;padding:.6rem .2rem;display:flex}.skeleton-chart{padding:1rem 0}.mobile-nav{display:none}@media (width<=1100px){.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=920px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-nav{z-index:100;background:color-mix(in srgb, var(--paper) 96%, transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--line);padding:.35rem .5rem;padding-bottom:max(.35rem, env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.mobile-nav a{color:var(--muted);border-radius:10px;flex-direction:column;align-items:center;gap:.15rem;padding:.4rem .2rem;font-size:.65rem;font-weight:800;transition:color .15s,background .15s;display:flex}.mobile-nav a.active{color:var(--moss);background:var(--surface-hover-2)}.mobile-nav a span{line-height:1}.page-content{padding-bottom:5.5rem}.workspace{padding-bottom:0}.split-layout{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.auth-shell{grid-template-columns:1fr;padding:0}.auth-visual{border-radius:0;min-height:50vh}.auth-card{border-radius:0}}@media (width<=540px){.metric-grid{grid-template-columns:1fr 1fr;gap:.6rem}.metric-grid article{min-height:110px;padding:.85rem}.metric-grid strong{font-size:1.3rem}.page-content{gap:.85rem;padding:.85rem .85rem 5.5rem}.panel{border-radius:10px;padding:1rem}.page-header h1{font-size:1.8rem}.expense-form{grid-template-columns:1fr}.cat-bar-row{grid-template-columns:70px 1fr 55px}.cat-bar-label,.cat-bar-value{font-size:.75rem}.page-actions{flex-direction:column;align-items:stretch}.page-actions .btn-secondary,.page-actions .filter-select,.page-actions button{width:100%}.flow-bars{grid-template-columns:repeat(4,1fr)}.budget-list{gap:.65rem}.goals-grid{grid-template-columns:1fr}.donut-wrap{flex-direction:column}.account-grid{grid-template-columns:1fr}}@media (width<=720px){.split-layout{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.filter-row{flex-wrap:wrap;gap:.5rem}.page-header{flex-direction:column;align-items:flex-start}.pivot-table{font-size:.78rem}}.kpi-positive{border-color:#50b98a40!important}.kpi-negative{border-color:#e66d5440!important}.income{color:var(--mint)!important}.expense{color:var(--coral)!important}.page-subtitle{color:var(--muted);margin-top:.15rem;font-size:.9rem;font-weight:600}.page-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.filter-select{border:1px solid var(--line);background:var(--surface-3);color:var(--ink);cursor:pointer;border-radius:8px;width:auto;padding:.55rem .75rem;font-size:.88rem;font-weight:700}.filter-select:focus{border-color:var(--mint);outline:none}.settings-grid{gap:1rem;max-width:680px;display:grid}.settings-section{gap:.85rem;display:grid}.settings-section-title{align-items:center;gap:.5rem;margin-bottom:.25rem;font-family:Fraunces,serif;font-size:1rem;display:flex}.settings-row{gap:.3rem;display:grid}.settings-row--between{justify-content:space-between;align-items:center;gap:1rem;display:flex}.settings-row--between>div{gap:.15rem;display:grid}.settings-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.78rem;font-weight:800}.settings-hint{color:var(--muted);font-size:.82rem;font-weight:500}.settings-value{font-size:.92rem;font-weight:600}.settings-input{border:1px solid var(--line);background:var(--surface-3);color:var(--ink);border-radius:8px;width:100%;padding:.6rem .75rem;font-size:.92rem}.settings-input:focus{border-color:var(--mint);outline:none;box-shadow:0 0 0 3px #50b98a1f}.settings-select{border:1px solid var(--line);background:var(--surface-3);color:var(--ink);cursor:pointer;border-radius:8px;width:auto;padding:.5rem .65rem;font-size:.88rem}.settings-actions{flex-wrap:wrap;gap:.65rem;display:flex}.settings-toggle{background:var(--surface-2);border:1px solid var(--line);border-radius:99px;flex-shrink:0;width:44px;height:24px;transition:background .2s;position:relative}.settings-toggle span{background:var(--muted);border-radius:50%;width:16px;height:16px;transition:transform .2s,background .2s;position:absolute;top:3px;left:3px}.settings-toggle.active{background:var(--moss);border-color:var(--moss)}.settings-toggle.active span{background:#fff;transform:translate(20px)}.btn-secondary{border:1px solid var(--line);background:var(--paper);color:var(--ink);cursor:pointer;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.88rem;font-weight:700;transition:background .15s,border-color .15s;display:inline-flex}.btn-secondary:hover{background:var(--surface-2);border-color:var(--mint)}.btn-danger{background:var(--coral);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.88rem;font-weight:700;transition:opacity .15s;display:inline-flex}.btn-danger:hover{opacity:.85}.btn-danger-outline{border:1px solid var(--coral);color:var(--coral);cursor:pointer;background:0 0;border-radius:8px;align-items:center;gap:.4rem;padding:.55rem 1rem;font-size:.88rem;font-weight:700;transition:background .15s;display:inline-flex}.btn-danger-outline:hover{background:#e66d5414}.pivot-wrap{padding:0;overflow:hidden}.pivot-scroll{overflow-x:auto}.pivot-table{border-collapse:collapse;width:100%;font-size:.88rem}.pivot-table th,.pivot-table td{text-align:right;border-bottom:1px solid var(--line);white-space:nowrap;padding:.65rem .85rem}.pivot-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:var(--surface-3);font-size:.72rem;font-weight:800}.pivot-cat-col{background:inherit;min-width:130px;position:sticky;left:0;text-align:left!important}.pivot-val-col{min-width:90px}.pivot-total{font-weight:800;background:var(--surface-2)!important}.pivot-cat-cell{text-align:left;align-items:center;gap:.5rem;font-weight:700;display:flex}.pivot-val-cell{position:relative}.pivot-cell-inner{justify-content:flex-end;align-items:center;gap:.4rem;display:flex;position:relative}.pivot-heat{pointer-events:none;border-radius:3px;position:absolute;inset:0}.pivot-zero{color:var(--muted)}.pivot-pct{color:var(--muted);font-size:.72rem;font-weight:700}.pivot-dot{border-radius:2px;flex-shrink:0;width:8px;height:8px;display:inline-block}.pivot-row:hover td{background:var(--surface-hover)}.pivot-footer td{background:var(--surface-2);font-weight:800}.annual-budget-header{flex-wrap:wrap;align-items:baseline;gap:.75rem;margin-bottom:.5rem;display:flex}.search-overlay{z-index:500;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000006b;justify-content:center;align-items:flex-start;padding-top:12vh;display:flex;position:fixed;inset:0}.search-modal{background:var(--paper);border:1px solid var(--line);border-radius:16px;width:min(600px,94vw);animation:.18s searchIn;overflow:hidden;box-shadow:0 24px 80px #0000002e}@keyframes searchIn{0%{opacity:0;transform:scale(.96)translateY(-8px)}to{opacity:1;transform:none}}.search-input-row{border-bottom:1px solid var(--line);align-items:center;gap:.75rem;padding:.9rem 1rem;display:flex}.search-icon{color:var(--muted);flex-shrink:0}.search-input{color:var(--ink);background:0 0;border:none;outline:none;flex:1;font-size:1rem;font-weight:600}.search-input::placeholder{color:var(--muted)}.search-close{color:var(--muted);border-radius:6px;flex-shrink:0;padding:.25rem;transition:background .15s}.search-close:hover{background:var(--surface-2)}.search-results{max-height:420px;overflow-y:auto}.search-empty{text-align:center;color:var(--muted);padding:2rem;font-size:.9rem}.search-hint{padding:1rem}.search-shortcut-row{color:var(--muted);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:.82rem;display:flex}.search-kbd{border:1px solid var(--line);background:var(--surface-2);border-radius:5px;padding:.1rem .35rem;font-size:.78rem;font-weight:700;display:inline-block}.search-quick-links{flex-wrap:wrap;gap:.5rem;display:flex}.search-quick-btn{border:1px solid var(--line);background:var(--surface-3);color:var(--ink);cursor:pointer;border-radius:6px;padding:.35rem .75rem;font-size:.82rem;font-weight:700;transition:background .15s,border-color .15s}.search-quick-btn:hover{background:var(--surface-2);border-color:var(--mint)}.search-section{padding:.5rem 0}.search-section-label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);background:var(--surface-3);padding:.4rem 1rem;font-size:.68rem;font-weight:800}.search-item{text-align:left;cursor:pointer;border-radius:0;align-items:center;gap:.75rem;width:100%;padding:.65rem 1rem;transition:background .12s;display:flex}.search-item:hover{background:var(--surface-hover)}.search-item-icon{border-radius:8px;flex-shrink:0;place-items:center;width:30px;height:30px;display:grid}.search-item-icon.expense{color:var(--coral);background:#e66d541f}.search-item-icon.income{color:var(--mint);background:#50b98a1f}.search-item-icon.neutral{background:var(--surface-2);color:var(--muted)}.search-item-main{flex:1;gap:.1rem;min-width:0;display:grid}.search-item-title{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:700;overflow:hidden}.search-item-sub{color:var(--muted);font-size:.78rem}.search-item-amount{flex-shrink:0;font-family:Fraunces,serif;font-size:.95rem;font-weight:700}.search-item-amount.neg{color:var(--coral)}.search-item-amount.pos{color:var(--mint)}.search-item-amount.neutral{color:var(--muted)}.sidebar-search-btn{border:1px solid var(--line);color:var(--muted);cursor:pointer;border-radius:8px;align-items:center;gap:.65rem;margin:0 .75rem .25rem;padding:.5rem .75rem;font-size:.88rem;font-weight:700;transition:border-color .15s;background:var(--surface-3)!important;display:flex!important}.sidebar-search-btn:hover{border-color:var(--mint);color:var(--ink)}.sidebar-search-btn kbd{border:1px solid var(--line);background:var(--surface-2);border-radius:4px;margin-left:auto;padding:.1rem .3rem;font-size:.72rem}.workspace{animation:.22s pageFadeIn}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.muted{color:var(--muted)}.tag-editor{margin-top:.35rem}.tag-chips{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.tag-chip{color:var(--blue);background:#3e6fba1f;border-radius:999px;align-items:center;gap:.2rem;padding:.15rem .45rem;font-size:.72rem;font-weight:800;display:inline-flex}.tag-chip-remove{color:var(--blue);opacity:.7;place-items:center;transition:opacity .12s;display:grid}.tag-chip-remove:hover{opacity:1}.tag-chip-sm{color:var(--blue);background:#3e6fba1a;border-radius:999px;align-items:center;padding:.1rem .35rem;font-size:.7rem;font-weight:800;display:inline-flex}.tag-add-btn{border:1px dashed var(--line);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:.25rem;padding:.15rem .4rem;font-size:.72rem;font-weight:700;transition:border-color .15s,color .15s;display:inline-flex}.tag-add-btn:hover{border-color:var(--blue);color:var(--blue)}.tag-popover{z-index:50;background:var(--paper);border:1px solid var(--line);border-radius:10px;width:240px;padding:.6rem;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 24px #0000001a}.tag-input{border:1px solid var(--line);background:var(--surface-3);width:100%;color:var(--ink);border-radius:7px;margin-bottom:.5rem;padding:.45rem .6rem;font-size:.85rem}.tag-input:focus{border-color:var(--blue);outline:none}.tag-presets{flex-wrap:wrap;gap:.3rem;display:flex}.tag-preset{border:1px solid var(--line);background:var(--surface-3);color:var(--muted);cursor:pointer;border-radius:999px;padding:.15rem .45rem;font-size:.72rem;font-weight:700;transition:background .12s,color .12s}.tag-preset:hover{background:var(--surface-2);color:var(--blue);border-color:var(--blue)}.tag-chips-inline{flex-wrap:wrap;gap:.25rem;display:flex}.expense-list-toolbar{justify-content:space-between;align-items:center;margin-bottom:.6rem;display:flex}.expense-table-wrap{overflow-x:auto}.expense-table{border-collapse:collapse;width:100%;font-size:.875rem}.expense-table th,.expense-table td{text-align:left;border-bottom:1px solid var(--line);padding:.5rem .65rem}.expense-table th{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.7rem;font-weight:800}.expense-table tr:hover td{background:var(--surface-hover)}.expense-table-date{color:var(--muted);white-space:nowrap;font-size:.8rem}.expense-table-desc{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-weight:700;overflow:hidden}.expense-table-amount{text-align:right;font-family:Fraunces,serif;font-weight:700}.text-right{text-align:right!important}.icon-button.active{background:var(--surface-2);color:var(--moss)}.projection-months{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.projection-month{border:1px solid var(--line);background:var(--surface-3);border-radius:10px;gap:.35rem;padding:.85rem;display:grid}.projection-month-header{align-items:center;gap:.4rem;display:flex}.projection-arrow{color:var(--muted)}.projection-label{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:.75rem;font-weight:800}.projection-net{font-family:Fraunces,serif;font-size:1.3rem;font-weight:700}.projection-detail{flex-wrap:wrap;gap:.5rem;display:flex}.projection-detail span{color:var(--muted);align-items:center;gap:.2rem;font-size:.75rem;font-weight:700;display:inline-flex}.flow-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.72rem;font-weight:800}.streak-grid{gap:.65rem;display:grid}.streak-card{border:1px solid var(--line);background:var(--surface-3);border-radius:10px;align-items:center;gap:.75rem;padding:.7rem .85rem;display:flex}.streak-card--gold{border-color:var(--amber);background:#d89b2812}.streak-card--gold svg{color:var(--amber)}.streak-card>div{flex:1;gap:.1rem;display:grid}.streak-card strong{font-family:Fraunces,serif;font-size:1.05rem}.streak-card small{color:var(--muted);font-size:.78rem}.streak-dots{flex-wrap:wrap;gap:3px;max-width:100px;margin-left:auto;display:flex}.streak-dot{background:var(--surface-2);border-radius:2px;width:8px;height:8px}.streak-dot.lit{opacity:1}@media print{.sidebar,.mobile-nav,.search-overlay,.ghost,.icon-button,.expense-list-toolbar button,.toast-stack,.prediction-box{display:none!important}.app-shell{grid-template-columns:1fr}.page-content{padding:0}.metric-grid{grid-template-columns:repeat(5,1fr)}.split-layout{grid-template-columns:1fr 1fr}body{color:#000;background:#fff}.panel{break-inside:avoid;border:1px solid #ccc}}
