@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;color:#1a1f1c;--ink:#1a1f1c;--muted:#6b726e;--paper:#fff;--line:#e8ece6;--mint:#50b98a;--moss:#174c3b;--amber:#d89b28;--coral:#e66d54;--blue:#3e6fba;--sidebar-w:240px;background:#f8f9f5;font-family:Manrope,sans-serif}*,:before,:after{box-sizing:border-box}body{min-height:100vh;margin:0;font-size:15px;line-height:1.5}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);width:100%;color:var(--ink);background:#fafaf5;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:#eef0e8;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:#f2f4ee;padding:.5rem .8rem}.ghost:hover{background:#e5e9de}.ghost.small{border-radius:8px;min-height:34px;padding:.35rem .65rem;font-size:.82rem}.icon-button{width:40px;height:40px;color:var(--ink);background:#f2f4ee;border-radius:10px}.icon-button:hover{background:#e5e9de}.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:#f0f2eb}.sidebar a.active{background:#e5ece4}.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 .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(4,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:#eef0e8;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:#f0f2eb;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), #eef0e8 0);width:110px;color:var(--moss);border-radius:999px;justify-self:start;place-items:center;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}.expense-form{grid-template-columns:repeat(2,1fr);gap:.8rem;display:grid}.desc-field,.expense-form .wide{grid-column:1/-1}.expense-list{gap:.5rem;display:grid}.expense-row{border:1px solid var(--line);background:#fafaf5;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:#f5f6f0}.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;width:36px;color:var(--moss);background:#dce9dc;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}.filter-chips{flex-wrap:wrap;align-items:center;gap:.4rem;padding:.5rem 0;display:flex}.chip{color:var(--muted);background:#eef0e8;border-radius:999px;padding:.35rem .75rem;font-size:.82rem;font-weight:700;transition:all .15s}.chip:hover{background:#e0e4d8}.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)}}.mobile-nav{display:none}@media (width<=920px){.app-shell{grid-template-columns:1fr}.sidebar{display:none}.mobile-nav{z-index:100;-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));background:#fffffff5;grid-template-columns:repeat(4,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:#e5ece4}.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}}
