:root{color:#202a28;font-synthesis:none;--ink:#202a28;--muted:#767c77;--cream:#f6f4ee;--paper:#fffdfa;--line:#e7e2d8;--sage:#527267;--sage-dark:#29473e;--coral:#eb7654;--amber:#e4a63c;--danger:#d95d51;--shadow:0 18px 55px #2a2e2a12;background:#f6f4ee;font-family:DM Sans,sans-serif}*{box-sizing:border-box}body{background:var(--cream);min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:3px solid #52726738}.app-shell{min-height:100vh}.sidebar{color:#fff;z-index:10;background:#20352f;flex-direction:column;width:238px;padding:30px 22px 22px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:11px;padding:0 8px 31px;display:flex}.brand-mark{color:#20352f;background:#f3d3aa;border-radius:13px 13px 13px 5px;place-items:center;width:39px;height:39px;display:grid}.brand div{flex-direction:column;line-height:1.08;display:flex}.brand strong{letter-spacing:-.4px;font:800 18px Manrope}.brand small{color:#aebcb7;letter-spacing:.08em;text-transform:uppercase;margin-top:3px;font-size:11px}.sidebar nav{flex-direction:column;gap:6px;display:flex}.sidebar nav button{color:#aebcb7;cursor:pointer;background:0 0;border:0;border-radius:12px;align-items:center;gap:13px;width:100%;padding:12px 13px;font-size:14px;font-weight:600;transition:all .18s;display:flex;position:relative}.sidebar nav button:hover{color:#fff;background:#ffffff0f}.sidebar nav button.active{color:#fff;background:#ffffff1a}.sidebar nav button.active i{background:#efb668;border-radius:3px 0 0 3px;width:3px;height:24px;position:absolute;right:-22px}.sidebar-card{background:#ffffff12;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;margin:auto 0 22px;padding:16px;display:flex}.sidebar-card>span{color:#c7d3ce;align-items:center;gap:7px;font-size:12px;display:flex}.sidebar-card strong{margin-top:12px;font:800 23px Manrope}.sidebar-card small{color:#91a59e;font-size:11px}.mini-progress{background:#ffffff1f;border-radius:5px;height:5px;margin-top:14px;overflow:hidden}.mini-progress i{border-radius:inherit;background:#efb668;height:100%;display:block}.sidebar-foot{border-top:1px solid #ffffff1a;align-items:center;gap:10px;padding:18px 3px 0;display:flex}.avatar{color:#20352f;background:#e7b16d;border-radius:50%;place-items:center;width:34px;height:34px;font-size:11px;font-weight:800;display:grid}.sidebar-foot div{flex-direction:column;display:flex}.sidebar-foot strong{font-size:12px}.sidebar-foot small{color:#8fa29b;margin-top:2px;font-size:10px}.main-content{max-width:1600px;margin-left:238px;padding:0 42px 64px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;min-height:103px;margin-bottom:31px;display:flex}.page-kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.11em;margin-bottom:5px;font-size:11px;font-weight:700;display:block}.topbar h1{letter-spacing:-.6px;margin:0;font:800 25px Manrope}.top-actions,.inline-actions{align-items:center;gap:10px;display:flex}.month-switcher{background:var(--paper);border:1px solid var(--line);border-radius:11px;align-items:center;height:40px;display:flex;box-shadow:0 3px 12px #1e232108}.month-switcher button{cursor:pointer;background:0 0;border:0;place-items:center;width:34px;height:100%;display:grid}.month-switcher button:disabled{opacity:.3;cursor:not-allowed}.month-switcher span{text-align:center;min-width:118px;font-size:12px;font-weight:700}.button{cursor:pointer;border:0;border-radius:11px;justify-content:center;align-items:center;gap:8px;padding:11px 16px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s,opacity .15s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{opacity:.52;cursor:not-allowed}.button.primary{color:#fff;background:var(--sage-dark);box-shadow:0 6px 18px #29473e2b}.button.scan{color:#5a4530;background:#f2dec4}.button.secondary{color:var(--ink);border:1px solid var(--line);background:#f3f0e9}.button.small{border-radius:9px;padding:8px 12px;font-size:12px}.view-stack{flex-direction:column;gap:22px;display:flex}.welcome-row{justify-content:space-between;align-items:flex-end;gap:28px;display:flex}.eyebrow{color:#9b7950;text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:800}.welcome-row h2,.budget-overview h2{letter-spacing:-.7px;margin:5px 0 6px;font:800 25px Manrope}.welcome-row p,.budget-overview p{color:var(--muted);margin:0;font-size:13px}.quick-add{gap:10px;display:flex}.quick-add button{text-align:left;background:var(--paper);border:1px solid var(--line);cursor:pointer;border-radius:13px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-width:195px;padding:11px 13px;display:grid}.quick-add button>span{width:34px;height:34px;color:var(--sage);background:#ecf1ed;border-radius:10px;place-items:center;display:grid}.quick-add button div{flex-direction:column;display:flex}.quick-add strong{font-size:12px}.quick-add small{color:var(--muted);margin-top:2px;font-size:10px}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:15px;display:grid}.metric-card{background:var(--paper);border:1px solid var(--line);border-radius:17px;flex-direction:column;min-height:160px;padding:18px;display:flex;box-shadow:0 5px 18px #262c2906}.metric-card.dark{color:#fff;background:#29473e;border-color:#29473e}.metric-top{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.metric-icon{color:#45675c;background:#e6efe9;border-radius:10px;place-items:center;width:34px;height:34px;display:grid}.metric-icon.coral{color:#c95e43;background:#fbe7df}.metric-icon.amber{color:#ab741d;background:#faf0d7}.metric-icon.light{color:#fff;background:#ffffff1f}.metric-trend{text-transform:uppercase;letter-spacing:.06em;color:#9a7166;background:#f8e9e5;border-radius:10px;align-items:center;gap:3px;padding:5px 7px;font-size:9px;font-weight:800;display:flex}.metric-trend.positive{color:#477064;background:#e9f0ec}.metric-trend.danger{color:var(--danger)}.metric-trend.dark-pill{color:#e1c28d;background:#ffffff17}.metric-card>span:not(.metric-icon){color:var(--muted);font-size:11px}.metric-card.dark>span{color:#b8c8c2}.metric-card>strong{letter-spacing:-.8px;margin:4px 0;font:800 27px Manrope}.metric-card>small{color:#9a9d98;margin-top:auto;font-size:10px}.metric-card.dark>small{color:#94aba4}.panel{background:var(--paper);border:1px solid var(--line);border-radius:18px;padding:21px;box-shadow:0 6px 24px #252b2806}.dashboard-grid{grid-template-columns:minmax(0,1.22fr) minmax(340px,.78fr);gap:18px;display:grid}.panel-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:13px;display:flex}.panel-heading h3{letter-spacing:-.35px;margin:3px 0 0;font:800 17px Manrope}.text-button,.row-action,.budget-value{cursor:pointer;background:0 0;border:0}.text-button{color:var(--sage);align-items:center;gap:3px;font-size:11px;font-weight:700;display:flex}.icon-button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:10px;place-items:center;width:37px;height:37px;display:grid}.icon-button.small{width:32px;height:32px}.chart-layout{grid-template-columns:54% 46%;align-items:center;display:grid}.donut-wrap{min-width:0;position:relative}.donut-center{text-align:center;pointer-events:none;flex-direction:column;display:flex;position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.donut-center span{color:var(--muted);font-size:9px}.donut-center strong{font:800 18px Manrope}.category-legend{flex-direction:column;gap:14px;padding-right:4px;display:flex}.legend-row{justify-content:space-between;gap:12px;font-size:11px;display:flex}.legend-label{color:#5e6561;align-items:center;gap:8px;display:flex}.legend-label i,.budget-row-top i{border-radius:3px;flex:none;width:8px;height:8px}.legend-row strong{font-size:11px}.muted{color:var(--muted);font-size:12px}.empty-donut{place-items:center;height:244px;display:grid}.budget-list{flex-direction:column;gap:18px;padding-top:7px;display:flex}.budget-row-top{justify-content:space-between;margin-bottom:8px;font-size:11px;display:flex}.budget-row-top span{align-items:center;gap:8px;display:flex}.budget-row-top small{color:var(--muted);font-weight:500}.progress{background:#eeece6;border-radius:8px;height:7px;overflow:hidden}.progress i{border-radius:inherit;height:100%;display:block}.progress.close{background:#f5e9cf}.progress.over{background:#f5deda}.progress.large{height:8px}.recent-panel{padding-bottom:9px}.transaction-row{border-top:1px solid #eeeae3;grid-template-columns:auto 1fr auto auto;align-items:center;gap:13px;padding:12px 2px;display:grid}.transaction-icon,.pay-icon{border-radius:11px;place-items:center;width:38px;height:38px;display:grid}.transaction-main,.pay-row>div{flex-direction:column;display:flex}.transaction-main strong,.pay-row div strong{font-size:12px}.transaction-main span,.pay-row div span{color:var(--muted);align-items:center;gap:3px;margin-top:3px;font-size:10px;display:flex}.transaction-row>strong,.pay-row>strong{font-size:12px}.negative{color:#7c5148}.row-action{color:#aaa7a0;opacity:.3;padding:6px;transition:opacity .15s,color .15s}.transaction-row:hover .row-action,.pay-row:hover .row-action{opacity:1}.row-action:hover{color:var(--danger)}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:190px;padding:25px;display:flex}.empty-icon{width:46px;height:46px;color:var(--sage);background:#edf1ee;border-radius:14px;place-items:center;margin-bottom:11px;display:grid}.empty-state strong{font-size:13px}.empty-state p{color:var(--muted);max-width:320px;margin:6px 0 15px;font-size:11px}.income-hero{color:#fff;background:#29473e;border-radius:21px;grid-template-columns:1.2fr .8fr;align-items:center;gap:45px;min-height:240px;padding:35px 42px;display:grid;position:relative;overflow:hidden}.income-hero:after{content:"$";color:#ffffff09;font:800 330px Manrope;position:absolute;top:-78px;right:-18px}.light-eyebrow{color:#e4c491}.income-hero>div:first-child>strong{letter-spacing:-1.5px;margin:7px 0 1px;font:800 42px Manrope;display:block}.income-hero p{color:#b9c8c3;font-size:12px}.income-progress{background:#ffffff1f;border-radius:6px;width:min(460px,100%);height:6px;margin:24px 0 7px;overflow:hidden}.income-progress i{background:#e9b76e;height:100%;display:block}.income-hero small{color:#91a69f;font-size:10px}.projection-box{z-index:1;background:#ffffff14;border:1px solid #ffffff1a;border-radius:17px;align-items:flex-start;gap:14px;padding:23px;display:flex}.projection-icon{color:#29473e;background:#e9b76e;border-radius:13px;place-items:center;width:45px;height:45px;display:grid}.projection-box div{flex-direction:column;display:flex}.projection-box span{color:#c3d0cc;font-size:11px}.projection-box strong{margin:5px 0;font:800 23px Manrope}.projection-box small{color:#93a9a2}.two-column{grid-template-columns:1fr 1fr;gap:18px;display:grid}.two-column.wide-left{grid-template-columns:1.55fr .45fr}.pay-list{flex-direction:column;display:flex}.pay-row{border-top:1px solid #eeeae3;grid-template-columns:auto 1fr auto auto;align-items:center;gap:13px;padding:15px 2px;display:grid}.pay-icon{color:var(--sage);background:#e8f0eb}.positive-text{color:#477064}.calm-card{background:#f0ebe1}.calm-icon{color:#8d653b;background:#ead8bd;border-radius:13px;place-items:center;width:45px;height:45px;display:grid}.calm-card h3{margin:18px 0 7px;font:800 16px Manrope}.calm-card>p{color:var(--muted);margin-bottom:23px;font-size:11px;line-height:1.6}.calm-stat{border-top:1px solid #ddd6ca;justify-content:space-between;padding:12px 0;font-size:11px;display:flex}.calm-stat span{color:var(--muted)}.spending-summary{grid-template-columns:.38fr .62fr;gap:18px;display:grid}.summary-number{color:#fff;background:#d96f50;border-radius:19px;flex-direction:column;justify-content:center;padding:29px;display:flex}.summary-number span{color:#f8ddd5;font-size:12px}.summary-number strong{letter-spacing:-1.2px;margin:6px 0;font:800 34px Manrope}.summary-number small{color:#f3cdc1;font-size:10px;line-height:1.5}.compact-chart{grid-template-columns:45% 55%;align-items:center;display:grid}.compact-chart .donut-wrap{max-width:270px}.compact-chart .category-legend{grid-template-columns:1fr 1fr;gap:17px 24px;display:grid}.budget-overview{color:#fff;background:#385b50;border-radius:19px;justify-content:space-between;align-items:center;min-height:185px;padding:28px 38px;display:flex}.budget-overview .eyebrow{color:#dbbc8d}.budget-overview h2{font-size:27px}.budget-overview p{color:#b8c8c2}.budget-ring{--progress:0deg;background:conic-gradient(#eab972 var(--progress), #ffffff1f 0);border-radius:50%;place-items:center;width:118px;height:118px;display:grid}.budget-ring:before{content:"";background:#385b50;border-radius:50%;grid-area:1/1;width:91px;height:91px}.budget-ring div{z-index:1;flex-direction:column;grid-area:1/1;align-items:center;display:flex}.budget-ring strong{font:800 21px Manrope}.budget-ring span{color:#b9c9c3;font-size:9px}.helper-text{color:var(--muted);align-items:center;gap:5px;font-size:10px;display:flex}.category-budget-list,.recurring-list{flex-direction:column;display:flex}.category-budget-row{border-top:1px solid #eeeae3;padding:17px 1px}.category-budget-head{justify-content:space-between;align-items:center;gap:15px;margin-bottom:11px;display:flex}.category-budget-head>div:first-child{align-items:center;gap:10px;display:flex}.category-budget-head i{border-radius:5px;width:10px;height:38px}.category-budget-head span{flex-direction:column;display:flex}.category-budget-head strong{font-size:12px}.category-budget-head small{color:var(--muted);margin-top:3px;font-size:9px}.budget-value{align-items:center;gap:5px;font-size:11px;font-weight:700;display:flex}.inline-budget{border:1px solid var(--sage);border-radius:8px;align-items:center;overflow:hidden;flex-direction:row!important;display:flex!important}.inline-budget>span{color:var(--muted);padding-left:8px;font-size:11px}.inline-budget input{border:0;outline:0;width:70px;padding:7px 4px}.inline-budget button{cursor:pointer;background:0 0;border:0;place-items:center;width:29px;height:31px;display:grid}.category-budget-foot{color:var(--muted);justify-content:space-between;align-items:center;margin-top:8px;font-size:9px;display:flex}.status-pill{text-transform:uppercase;letter-spacing:.04em;border-radius:10px;padding:4px 7px;font-size:8px;font-weight:800}.status-pill.good{color:#477064;background:#e7f0ea}.status-pill.close{color:#a86d16;background:#f8edd4}.status-pill.over{color:#bd4d44;background:#f7e0dd}.recurring-total{font:800 17px Manrope}.recurring-total small{color:var(--muted);margin-left:2px;font:500 9px DM Sans}.recurring-row{border-top:1px solid #eeeae3;grid-template-columns:auto 1fr auto auto;align-items:center;gap:11px;padding:15px 0;display:grid}.recurring-row.paused{opacity:.55}.recurring-icon{color:#795f92;background:#eee8f3;border-radius:11px;place-items:center;width:36px;height:36px;display:grid}.recurring-row>div:nth-child(2){flex-direction:column;display:flex}.recurring-row>div:nth-child(2) strong{font-size:11px}.recurring-row>div:nth-child(2) span{color:var(--muted);margin-top:3px;font-size:9px}.recurring-amount{flex-direction:column;align-items:flex-end;display:flex}.recurring-amount strong{font-size:11px}.recurring-amount button{color:var(--sage);cursor:pointer;background:0 0;border:0;padding:3px 0 0;font-size:8px;font-weight:700}.recurring-amount>span{color:var(--muted);font-size:8px}.posted{align-items:center;gap:2px;display:flex;color:#568074!important}.switch{cursor:pointer;background:#d4d1ca;border:0;border-radius:10px;width:30px;height:18px;padding:2px}.switch i{background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;display:block;box-shadow:0 1px 3px #0000002e}.switch.on{background:var(--sage)}.switch.on i{transform:translate(12px)}.recurring-tip{color:#765b39;background:#f3e8d7;border-radius:11px;gap:9px;margin-top:14px;padding:12px;display:flex}.recurring-tip p{color:#765b39;margin:0;font-size:9px;line-height:1.5}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#141f1c8f;place-items:center;padding:20px;animation:.16s fade-in;display:grid;position:fixed;inset:0}.modal{background:var(--paper);border-radius:20px;width:min(560px,100%);max-height:calc(100vh - 40px);padding:25px;animation:.2s rise-in;overflow:auto;box-shadow:0 30px 90px #141e1b40}.modal-wide{width:min(680px,100%)}.modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.modal-header h2{letter-spacing:-.5px;margin:5px 0 0;font:800 21px Manrope}.form-stack{flex-direction:column;gap:17px;display:flex}.field-label{color:#4f5854;flex-direction:column;gap:7px;font-size:11px;font-weight:700;display:flex}.field-label small{color:#999b96;font-weight:500;display:inline}.field-label input,.field-label select{width:100%;color:var(--ink);background:#f9f7f2;border:1px solid #ddd8ce;border-radius:10px;outline:none;padding:11px 12px}.field-label input:focus,.field-label select:focus{border-color:var(--sage);box-shadow:0 0 0 3px #52726717}.money-input{background:#f9f7f2;border:1px solid #ddd8ce;border-radius:12px;align-items:center;padding:5px 12px;display:flex}.money-input:focus-within{border-color:var(--sage);box-shadow:0 0 0 3px #52726717}.money-input span{color:#718078;font:700 22px Manrope}.money-input input{background:0 0;border:0;padding:7px;font:800 24px Manrope;box-shadow:none!important}.money-input.small span{font-size:15px}.money-input.small input{padding:7px;font:700 14px DM Sans}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.modal-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;margin-top:2px;padding-top:17px;display:flex}.form-error{color:#b94d45;background:#f8e4e1;border-radius:9px;margin:0;padding:10px 12px;font-size:11px}.toggle-row{cursor:pointer;background:#f1eee7;border-radius:11px;grid-template-columns:auto 1fr;align-items:center;gap:11px;padding:12px;display:grid}.toggle-row input{opacity:0;position:absolute}.toggle-control{background:#ccc9c2;border-radius:12px;grid-row:1;width:36px;height:21px;padding:3px;transition:background .15s}.toggle-control:after{content:"";background:#fff;border-radius:50%;width:15px;height:15px;transition:transform .15s;display:block;box-shadow:0 1px 3px #0003}.toggle-row input:checked+.toggle-control{background:var(--sage)}.toggle-row input:checked+.toggle-control:after{transform:translate(15px)}.toggle-row>span:last-child{flex-direction:column;display:flex}.toggle-row strong{font-size:11px}.toggle-row small{color:var(--muted);margin-top:2px;font-size:9px}.confidence-note{color:#43685d;background:#eaf1ed;border-radius:11px;gap:9px;margin-bottom:17px;padding:11px 13px;font-size:10px;display:flex}.confidence-note.low{color:#97602c;background:#f8e9dc}.confidence-note.medium{color:#866b27;background:#f6efd9}.line-items{background:#f7f5f0;border-radius:11px;max-height:180px;padding:12px;overflow:auto}.line-items-head,.line-item{justify-content:space-between;gap:16px;display:flex}.line-items-head{border-bottom:1px solid var(--line);padding:1px 2px 8px;font-size:10px}.line-items-head span{color:var(--muted)}.line-item{border-bottom:1px solid #ebe7de;padding:8px 2px;font-size:10px}.line-item:last-child{border-bottom:0}.line-item small{color:var(--muted)}.scanner-body{flex-direction:column;gap:14px;display:flex}.drop-zone{cursor:pointer;background:#f7f5f0;border:1.5px dashed #bbb8b0;border-radius:15px;flex-direction:column;justify-content:center;align-items:center;min-height:260px;display:flex;position:relative;overflow:hidden}.drop-zone:hover{border-color:var(--sage);background:#f2f5f2}.drop-zone.has-preview{background:#202725;border-style:solid}.drop-zone img{object-fit:contain;width:100%;height:310px}.scan-icon{width:58px;height:58px;color:var(--sage);background:#e6eee9;border-radius:17px;place-items:center;margin-bottom:13px;display:grid}.drop-zone strong{font-size:13px}.drop-zone p{color:var(--muted);margin:4px 0 12px;font-size:10px}.file-hint{color:#999b96;background:#ebe8e1;border-radius:8px;padding:5px 8px;font-size:8px}.replace-photo{color:#fff;background:#141917b8;border-radius:9px;align-items:center;gap:5px;padding:7px 10px;font-size:9px;display:flex;position:absolute;bottom:10px}.scanner-explainer{color:#73552f;background:#f4e9d8;border-radius:11px;gap:10px;padding:12px;display:flex}.scanner-explainer p{margin:0;font-size:9px;line-height:1.5}.toast{z-index:80;color:#fff;background:#20352f;border-radius:11px;align-items:center;gap:8px;padding:11px 16px;font-size:11px;animation:.18s rise-in;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 12px 35px #141f1c40}.page-loader,.load-error{min-height:55vh;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:12px;display:flex}.load-error h2{color:var(--ink);margin:8px 0 0;font:800 19px Manrope}.load-error p{margin:0 0 10px}.spin{animation:.8s linear infinite spin}.danger-text{color:var(--danger)!important}.mobile-nav{display:none}.recurring-row{grid-template-columns:auto 1fr auto auto auto}.recurring-row:hover .recurring-delete{opacity:1}.compression-note{color:#41685c;background:#e7f0eb;border-radius:10px;align-items:center;gap:9px;padding:10px 12px;display:flex}.compression-note>span{flex-direction:column;display:flex}.compression-note strong{font-size:10px}.compression-note small{color:#698178;margin-top:2px;font-size:8px}.auth-page{background:#20352f;place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.auth-page:before,.auth-page:after{content:"";border:1px solid #ffffff0f;border-radius:50%;position:absolute}.auth-page:before{width:540px;height:540px;bottom:-250px;left:-260px}.auth-page:after{width:380px;height:380px;top:-170px;right:-160px}.auth-card{z-index:1;background:var(--paper);border-radius:23px;width:min(455px,100%);padding:32px;position:relative;box-shadow:0 35px 90px #0a14114d}.auth-brand{align-items:center;gap:10px;margin-bottom:34px;display:flex}.auth-brand>div{flex-direction:column;line-height:1.05;display:flex}.auth-brand strong{font:800 17px Manrope}.auth-brand small{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;margin-top:3px;font-size:9px}.auth-shield{color:#31584c;background:#e5eee9;border-radius:17px;place-items:center;width:55px;height:55px;margin-bottom:19px;display:grid}.auth-card h1{letter-spacing:-.7px;margin:6px 0 9px;font:800 26px Manrope}.auth-card>p{color:var(--muted);margin:0 0 20px;font-size:12px;line-height:1.6}.auth-setup{flex-direction:column;gap:14px;display:flex}.auth-button{width:100%;min-height:45px;margin-top:2px}.auth-error{background:#f8e3e0;border-radius:10px;padding:10px 12px;color:#a94740!important;margin:12px 0 0!important;font-size:10px!important}.auth-foot{color:#858984;border-top:1px solid var(--line);align-items:center;gap:7px;margin-top:22px;padding-top:16px;font-size:9px;display:flex}.full-page{min-height:100vh!important}.security-button{color:var(--sage);flex:none}.security-stack{flex-direction:column;gap:15px;display:flex}.passkey-list{flex-direction:column;display:flex}.passkey-row{border-top:1px solid var(--line);grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:12px 1px;display:grid}.passkey-row>span{width:36px;height:36px;color:var(--sage);background:#e7f0eb;border-radius:11px;place-items:center;display:grid}.passkey-row>div{flex-direction:column;display:flex}.passkey-row strong{font-size:11px}.passkey-row small{color:var(--muted);margin-top:3px;font-size:8px}.passkey-row .row-action{opacity:.65}.add-passkey{background:#f3f0e9;border-radius:12px;grid-template-columns:1fr auto;align-items:end;gap:9px;padding:12px;display:grid}.add-passkey .button{margin-bottom:1px}.security-note{color:#725431;background:#f4e9d8;border-radius:10px;gap:9px;padding:11px;display:flex}.security-note p{margin:0;font-size:9px;line-height:1.45}.button.sign-out{color:#a6473f;background:#f8e4e1}.export-panel{grid-template-columns:auto 1fr auto;align-items:center;gap:16px;display:grid}.export-icon{width:44px;height:44px;color:var(--sage);background:#e8f0eb;border-radius:13px;place-items:center;display:grid}.export-panel h3{margin:3px 0 4px;font:800 15px Manrope}.export-panel p{color:var(--muted);margin:0;font-size:10px}.export-actions{gap:9px;display:flex}.export-actions a{text-decoration:none}.auth-recovery{border:1px solid var(--line);border-radius:11px;margin-top:13px;padding:10px 12px}.auth-recovery summary{color:var(--muted);cursor:pointer;font-size:10px;font-weight:700}.auth-recovery[open] summary{margin-bottom:13px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}}@keyframes rise-in{0%{opacity:0;transform:translateY(8px)}}@media (width<=1150px){.metrics-grid{grid-template-columns:repeat(2,1fr)}.welcome-row{align-items:flex-start}.quick-add button{min-width:170px}.two-column.wide-left{grid-template-columns:1fr .55fr}}@media (width<=900px){.sidebar{width:78px;padding:25px 13px}.brand{padding:0 6px 30px}.brand div,.sidebar nav span,.sidebar-card,.sidebar-foot div{display:none}.sidebar nav button{justify-content:center;padding:13px}.sidebar nav button.active i{right:-13px}.sidebar-foot{justify-content:center}.main-content{margin-left:78px;padding:0 24px 55px}.topbar{align-items:flex-end;padding:18px 0}.top-actions{flex-wrap:wrap;justify-content:flex-end}.welcome-row,.dashboard-grid,.two-column,.two-column.wide-left,.two-column.equal{grid-template-columns:1fr;display:grid}.quick-add{justify-content:stretch}.quick-add button{flex:1;min-width:0}.spending-summary{grid-template-columns:1fr}.summary-number{min-height:180px}.income-hero{grid-template-columns:1fr;gap:25px}.compact-chart{grid-template-columns:48% 52%}}@media (width<=650px){.sidebar{display:none}.main-content{margin:0;padding:0 15px 92px}.topbar{min-height:120px;margin-bottom:22px;display:block}.topbar>div:first-child{padding:18px 2px 13px}.top-actions{grid-template-columns:1fr auto auto;display:grid}.month-switcher span{min-width:100px}.top-actions .button span{display:none}.top-actions .button{padding:11px 13px}.welcome-row{flex-direction:column;align-items:stretch;display:flex}.quick-add{grid-template-columns:1fr 1fr;display:grid}.quick-add button{grid-template-columns:auto 1fr;padding:10px}.quick-add button>svg,.quick-add small{display:none}.metrics-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{min-height:146px;padding:14px}.metric-card>strong{font-size:22px}.dashboard-grid{flex-direction:column;display:flex}.chart-layout{grid-template-columns:1fr}.category-legend{grid-template-columns:1fr 1fr;display:grid}.transaction-row{grid-template-columns:auto 1fr auto}.transaction-row .row-action{display:none}.income-hero{padding:27px 22px}.income-hero>div:first-child>strong{font-size:34px}.projection-box{padding:17px}.spending-summary .compact-chart{flex-direction:column;display:flex}.compact-chart .category-legend{width:100%}.budget-overview{padding:24px}.budget-ring{width:100px;height:100px}.budget-ring:before{width:76px;height:76px}.inline-actions .button{padding:8px 10px}.inline-actions .button svg+*{display:none}.form-grid{grid-template-columns:1fr}.modal-backdrop{align-items:end;padding:10px}.modal{border-radius:20px 20px 12px 12px;max-height:calc(100vh - 20px);padding:22px 18px}.mobile-nav{z-index:30;height:71px;padding:7px 8px max(7px, env(safe-area-inset-bottom));border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffdfaf2;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;inset:auto 0 0}.mobile-nav button{color:#888c87;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:8px;font-weight:700;display:flex}.mobile-nav button.active{color:var(--sage-dark)}.toast{bottom:82px}.recurring-row{grid-template-columns:auto 1fr auto}.recurring-row .switch{grid-column:3}.recurring-amount{grid-area:1/3}.recurring-row .switch{grid-row:2;justify-self:end}}@media (width<=750px){.export-panel{grid-template-columns:auto 1fr}.export-actions{grid-column:1/-1;grid-template-columns:1fr 1fr;display:grid}.recurring-row{grid-template-columns:auto 1fr auto auto}.recurring-row .recurring-delete{grid-area:1/4}.top-actions{grid-template-columns:1fr auto auto auto}.auth-page{padding:12px}.auth-card{padding:25px 20px}.add-passkey{grid-template-columns:1fr}.add-passkey .button{width:100%}}@media (width<=420px){.metrics-grid,.quick-add,.category-legend{grid-template-columns:1fr}.budget-overview{gap:15px}.budget-overview h2{font-size:21px}.budget-ring{flex:none;width:88px;height:88px}.budget-ring:before{width:66px;height:66px}}
