*,:before,:after{box-sizing:border-box}:root{--bg:#102a24;--surface:#16352d;--surface-2:#1e433a;--line:#c9a24b2e;--text:#ece7d7;--muted:#93a89e;--brass:#c9a24b;--sage:#74a78e;--clay:#cc7a56;--alarm:#c2553b}@property --sr{syntax:"<number>";inherits:true;initial-value:0}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;margin:0;padding:0;font-family:Spline Sans,system-ui,sans-serif;font-size:.95rem;line-height:1.5}#root{max-width:480px;min-height:100dvh;margin:0 auto;position:relative}h1,h2,h3,h4,h5,h6{color:var(--text);margin:0;font-family:Spline Sans,system-ui,sans-serif;font-weight:600}h2{font-size:1.25rem}p{margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.7rem;font-weight:500}:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.screen{flex-direction:column;gap:18px;min-height:100dvh;padding:20px 20px 88px;display:flex}.card,.screen.reconcile section,.screen.settings>div{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px}.screen.quick-add input[inputmode=numeric]:not([placeholder=Actual\ balance]){color:var(--text);text-align:center;width:100%;caret-color:var(--brass);background:0 0;border:none;padding:8px 0;font-family:IBM Plex Mono,monospace;font-size:2.75rem;font-weight:500}.screen.quick-add input[inputmode=numeric]:not([placeholder=Actual\ balance])::placeholder{color:var(--muted)}.screen.quick-add select{background:var(--surface-2);color:var(--text);border:1px solid var(--line);appearance:none;cursor:pointer;border-radius:10px;width:100%;min-height:44px;padding:0 16px;font-family:Spline Sans,system-ui,sans-serif;font-size:16px}.screen.quick-add select:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.screen.quick-add input[placeholder="Note (optional)"],.screen.quick-add input[type=date],.screen.quick-add input[type=datetime-local]{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:10px;width:100%;min-width:0;max-width:100%;min-height:44px;padding:0 16px;font-family:Spline Sans,system-ui,sans-serif;font-size:16px}.screen.quick-add input[type=date],.screen.quick-add input[type=datetime-local]{appearance:none}.screen.quick-add input[placeholder="Note (optional)"]::placeholder{color:var(--muted)}.screen.quick-add input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.7)sepia()saturate(.5)hue-rotate(5deg);cursor:pointer}.screen.quick-add input[type=datetime-local]::-webkit-calendar-picker-indicator{filter:invert(.7)sepia()saturate(.5)hue-rotate(5deg);cursor:pointer}.screen.quick-add>button[disabled],.screen.quick-add>button{background:var(--brass);color:#102a24;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;height:48px;font-family:Spline Sans,system-ui,sans-serif;font-size:1rem;font-weight:600;transition:transform .12s,opacity .12s;display:flex}.screen.quick-add>button:active{transform:scale(.98)}.screen.quick-add>button[disabled]{opacity:.4;cursor:not-allowed}.save-confirm{color:var(--sage);align-items:center;gap:6px;margin:0;font-family:Spline Sans,system-ui,sans-serif;font-size:.9rem;font-weight:500;display:inline-flex}.save-error{color:var(--alarm);background:#c2553b1f;border:1px solid #c2553b59;border-radius:10px;margin:0;padding:10px 14px;font-family:Spline Sans,system-ui,sans-serif;font-size:.9rem}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.category-grid-wrapper{flex-direction:column;gap:16px;display:flex}.category-bucket-section{flex-direction:column;gap:8px;display:flex}.category-bucket-label{padding-left:2px}.category-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.category-grid button{background:var(--surface-2);color:var(--muted);cursor:pointer;border:1.5px solid #0000;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:64px;padding:12px 8px;transition:transform .12s,border-color .12s,background-color .12s;display:flex}.category-grid button svg{flex-shrink:0}.category-grid button span{color:var(--muted);text-align:center;font-family:Spline Sans,system-ui,sans-serif;font-size:.72rem;font-weight:500;line-height:1.2}.category-grid button.selected{border-color:var(--brass);color:var(--text);background:#c9a24b1f}.category-grid button.selected span{color:var(--text)}.category-grid button:active{transform:scale(.97)}.category-grid button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}@media (width<=360px){.category-grid{grid-template-columns:repeat(2,1fr)}}.bottom-nav{background:var(--surface);border-top:1px solid var(--line);z-index:100;flex-direction:row;width:100%;max-width:480px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.bottom-nav a{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;min-height:60px;padding:10px 4px 12px;font-family:IBM Plex Mono,monospace;font-size:.62rem;font-weight:500;text-decoration:none;transition:color .12s;display:flex;position:relative}.bottom-nav a svg{flex-shrink:0}.bottom-nav a.active{color:var(--brass)}.bottom-nav a.active:before{content:"";background:var(--brass);border-radius:0 0 2px 2px;height:2px;position:absolute;top:0;left:20%;right:20%}.screen.dashboard{gap:16px}.screen.dashboard p.cycle-context,.screen.history p.cycle-context{color:var(--muted);text-align:center;background:0 0;border:none;padding:0;font-family:IBM Plex Mono,monospace;font-size:.78rem}.screen.dashboard .savings-hero{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:10px;padding:16px 18px 14px;display:flex}.screen.dashboard .sr-top{align-items:baseline;gap:12px;display:flex}.screen.dashboard .sr-pct{color:var(--brass);font-family:IBM Plex Mono,monospace;font-size:3.1rem;font-weight:600;line-height:.95}.screen.dashboard .sr-pct span{margin-left:2px;font-size:1.3rem}.screen.dashboard .sr-sub{color:var(--muted);letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:.72rem}.screen.dashboard .sr-footer{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.screen.dashboard .sr-target{color:var(--muted);letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:.68rem}.screen.dashboard .sr-gauge{background:linear-gradient(to right, transparent calc(20% - 1px), var(--text) calc(20% - 1px), var(--text) calc(20% + 1px), transparent calc(20% + 1px)), linear-gradient(to right, var(--brass), var(--brass)) left / calc(var(--sr,0) * 100%) 100% no-repeat, var(--surface-2);border-radius:999px;height:10px;transition:--sr .48s cubic-bezier(.22,1,.36,1) 40ms}.screen.dashboard .sr-caption{text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.6rem}.screen.dashboard .sr-eyebrow-row{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.screen.dashboard .sr-trail{color:var(--muted);letter-spacing:.04em;font-family:IBM Plex Mono,monospace;font-size:.7rem}.screen.dashboard .ef-coverage{flex-direction:column;gap:6px;display:flex}.screen.dashboard .ef-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.screen.dashboard .ef-label{text-transform:uppercase;letter-spacing:.1em;color:var(--sage);font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:500}.screen.dashboard .ef-nums{color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.76rem}.screen.dashboard .ef-bar{background:var(--surface-2);border-radius:999px;height:8px;position:relative;overflow:hidden}.screen.dashboard .ef-bar:before{content:"";width:calc(var(--frac,0) * 100%);background:var(--sage);border-radius:999px;transition:width .48s cubic-bezier(.22,1,.36,1) .3s;position:absolute;inset:0}.screen.dashboard .ef-nudge{color:var(--sage);align-items:center;gap:6px;margin-top:2px;font-size:.78rem;display:flex}.screen.dashboard .ef-bar:after{content:"";background:var(--text);opacity:.45;width:2px;position:absolute;top:0;bottom:0;left:50%}.vice-trend{white-space:nowrap;align-items:center;gap:3px;margin-left:8px;font-family:IBM Plex Mono,monospace;font-size:.74rem;display:inline-flex}.vice-trend.down{color:var(--sage)}.vice-trend.up{color:var(--alarm)}.screen.dashboard .budget-card{flex-direction:column;gap:16px;display:flex}.screen.dashboard .budget-card .split{border-top:1px solid var(--line);padding-top:16px}.screen.dashboard .budget-card .empty-pie{text-align:left;border:none;border-top:1px solid var(--line);background:0 0;padding:16px 0 0}.screen.dashboard .envelopes-list{flex-direction:column;gap:14px;display:flex}.env-row{flex-direction:column;gap:6px;display:flex}.env-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.env-label{text-transform:uppercase;letter-spacing:.1em;font-family:IBM Plex Mono,monospace;font-size:.68rem;font-weight:500}.env-nums{color:var(--muted);text-align:right;font-family:IBM Plex Mono,monospace;font-size:.76rem}.env-bar{background:var(--surface-2);border-radius:999px;height:8px;position:relative;overflow:hidden}.env-bar:before{content:"";width:calc(var(--frac,0) * 100%);border-radius:999px;transition:width .48s cubic-bezier(.22,1,.36,1) .12s;position:absolute;inset:0}.env-row[data-bucket=need] .env-label{color:var(--sage)}.env-row[data-bucket=need] .env-bar:before{background:var(--sage)}.env-row[data-bucket=want] .env-label{color:var(--clay)}.env-row[data-bucket=want] .env-bar:before{background:var(--clay)}.env-row[data-bucket=flow] .env-label{color:var(--brass)}.env-row[data-bucket=flow] .env-bar:before{background:var(--brass)}.env-bar.over:before{background:var(--alarm)}.screen.dashboard .split{flex-direction:column;gap:8px;display:flex}.split-bar{background:var(--surface-2);border-radius:999px;height:12px;display:flex;overflow:hidden}.split-bar .seg{height:100%;transition:width .48s cubic-bezier(.22,1,.36,1) .22s}.split-bar .seg[data-bucket=need]{background:var(--sage)}.split-bar .seg[data-bucket=want]{background:var(--clay)}.split-bar .seg[data-bucket=flow]{background:var(--brass)}.split-legend{flex-wrap:wrap;gap:14px;display:flex}.split-legend span{color:var(--muted);align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:.72rem;display:inline-flex}.split-legend i{border-radius:2px;width:9px;height:9px}.split-legend span[data-bucket=need] i{background:var(--sage)}.split-legend span[data-bucket=want] i{background:var(--clay)}.split-legend span[data-bucket=flow] i{background:var(--brass)}.screen.dashboard .highlight{color:var(--alarm);background:#c2553b1f;border:1px solid #c2553b4d;border-radius:10px;padding:10px 14px;font-size:.82rem;font-weight:500}.screen.history input[type=month]{background:var(--surface-2);color:var(--text);border:1px solid var(--line);appearance:none;border-radius:10px;width:100%;min-width:0;max-width:100%;min-height:44px;padding:0 16px;font-family:IBM Plex Mono,monospace;font-size:16px}.screen.history input[type=month]::-webkit-calendar-picker-indicator{filter:invert(.7)sepia()saturate(.5);cursor:pointer}.screen.history ul{background:var(--surface);border:1px solid var(--line);border-radius:16px;margin:0;padding:0;list-style:none;overflow:hidden}.screen.history ul li{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:10px 14px;display:flex}.screen.history ul li:last-child{border-bottom:none}.screen.history ul li.leaving{animation:.24s forwards row-collapse;overflow:hidden}@keyframes row-collapse{0%{opacity:1;max-height:160px;transform:translate(0)}to{opacity:0;max-height:0;padding-top:0;padding-bottom:0;transform:translate(12px)}}.screen.history .row-icon{background:var(--surface-2);border-radius:11px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.screen.history .row-icon[data-bucket=need]{background:#74a78e24}.screen.history .row-icon[data-bucket=want]{background:#cc7a5624}.screen.history .row-icon[data-bucket=flow]{background:#c9a24b24}.screen.history .row-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.screen.history .row-cat{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-family:Spline Sans,system-ui,sans-serif;font-size:.92rem;overflow:hidden}.screen.history .row-meta{color:var(--muted);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-family:IBM Plex Mono,monospace;font-size:.7rem;overflow:hidden}.screen.history .row-note{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.74rem;font-style:italic;overflow:hidden}.screen.history .row-amt{color:var(--text);text-align:right;white-space:nowrap;flex-shrink:0;font-family:IBM Plex Mono,monospace;font-size:.95rem;font-weight:500}.screen.history .row-amt.amt-income{color:var(--brass)}.screen.history .row-amt.amt-transfer{color:var(--muted)}.screen.history ul li .row-del{flex-shrink:0;align-items:center;gap:2px;display:flex}.screen.history ul li .row-del button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;padding:6px;transition:color .12s,background-color .12s;display:flex}.screen.history ul li .row-del button:hover{color:var(--alarm)}.screen.history ul li .row-del button:active{transform:scale(.95)}.screen.history ul li .row-del .del-confirm{color:var(--alarm);background:#c2553b24}.screen.history ul li .row-del .del-cancel{color:var(--muted)}.screen.history ul li .row-del .del-cancel:hover{color:var(--text)}.screen.reconcile .rec-intro{color:var(--muted);font-size:.85rem;line-height:1.5}.screen.reconcile .rec-card{flex-direction:column;gap:12px;display:flex}.screen.reconcile .rec-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.screen.reconcile .rec-head h2{color:var(--text);font-size:1.05rem;font-weight:600}.screen.reconcile .rec-code{letter-spacing:.08em;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-family:IBM Plex Mono,monospace;font-size:.72rem;font-weight:500}.screen.reconcile .rec-expected{flex-direction:column;gap:2px;display:flex}.screen.reconcile .rec-figure{color:var(--text);font-family:IBM Plex Mono,monospace;font-size:1.35rem;font-weight:500}.screen.reconcile .rec-figure em{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-left:2px;font-size:.7rem;font-style:normal}.screen.reconcile .rec-field{gap:6px}.screen.reconcile .rec-input{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;align-items:center;gap:8px;padding:0 14px;transition:border-color .16s;display:flex}.screen.reconcile .rec-input:focus-within{border-color:var(--brass)}.screen.reconcile .rec-input input{color:var(--text);background:0 0;border:none;flex:1;width:100%;min-height:46px;font-family:IBM Plex Mono,monospace;font-size:1.1rem}.screen.reconcile .rec-input input:focus-visible{outline:none}.screen.reconcile .rec-input input::placeholder{color:var(--muted)}.screen.reconcile .rec-unit{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.7rem}.screen.reconcile .rec-verdict{align-items:center;gap:6px;font-family:IBM Plex Mono,monospace;font-size:.82rem;font-weight:500;display:inline-flex}.screen.reconcile .rec-verdict.balanced{color:var(--sage)}.screen.reconcile .rec-verdict.short{color:var(--alarm)}.screen.reconcile .rec-verdict.over{color:var(--brass)}.screen.reconcile .rec-card button{color:var(--brass);border:1.5px solid var(--brass);cursor:pointer;background:0 0;border-radius:10px;min-height:46px;padding:0 16px;font-family:Spline Sans,system-ui,sans-serif;font-size:.95rem;font-weight:600;transition:transform .12s,opacity .12s}.screen.reconcile .rec-card button:active{transform:scale(.98)}.screen.reconcile .rec-card button:disabled{opacity:.35;cursor:not-allowed}.screen.settings h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin-top:8px;font-family:IBM Plex Mono,monospace;font-size:.7rem;font-weight:500}.screen.settings>div{background:var(--surface);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;padding:12px 16px;display:flex}.screen.settings>div input[type=text],.screen.settings>div input[type=password],.screen.settings>div input:not([type]){background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:8px;flex:1;min-height:44px;padding:0 12px;font-family:Spline Sans,system-ui,sans-serif;font-size:16px}.screen.settings>div input::placeholder{color:var(--muted)}.screen.settings>div button{color:var(--muted);border:1px solid var(--line);cursor:pointer;white-space:nowrap;background:0 0;border-radius:8px;min-height:44px;padding:0 14px;font-family:Spline Sans,system-ui,sans-serif;font-size:.8rem;transition:color .12s,border-color .12s}.screen.settings>div button:hover{color:var(--brass);border-color:var(--brass)}.screen.settings>div button:active{transform:scale(.97)}.screen.settings .acct-row{flex-direction:column;align-items:stretch;gap:10px}.screen.settings .acct-id{align-items:center;gap:10px;display:flex}.screen.settings .acct-toggles{gap:8px;display:flex}.screen.settings .acct-toggles button{flex:1}.screen.settings .acct-toggles .state{background:var(--surface-2);border-color:var(--line);color:var(--muted)}.screen.settings .acct-toggles .state:hover{color:var(--text);border-color:var(--line)}.screen.settings .acct-toggles .state.on{color:var(--sage);background:#74a78e24;border-color:#74a78e80}.screen.settings .acct-toggles .state.on:hover{color:var(--sage);border-color:var(--sage)}.screen.settings .acct-toggles .life{background:0 0}.screen.settings .acct-toggles .life.active:hover{color:var(--alarm);border-color:var(--alarm)}.screen.settings .settings-hint{color:var(--muted);margin-top:-4px;font-size:.8rem;line-height:1.5}.screen.settings .cat-group{background:0 0;border:none;flex-direction:column;align-items:stretch;gap:8px;padding:0;display:flex}.screen.settings .cat-group-label{padding-left:2px}.screen.settings .cat-group[data-bucket=need] .cat-group-label{color:var(--sage)}.screen.settings .cat-group[data-bucket=want] .cat-group-label{color:var(--clay)}.screen.settings .cat-group[data-bucket=flow] .cat-group-label{color:var(--brass)}.screen.settings label{background:var(--surface);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:10px;align-items:center;gap:10px;padding:10px 16px;font-family:Spline Sans,system-ui,sans-serif;font-size:.9rem;transition:border-color .12s;display:flex}.screen.settings label:hover{border-color:#c9a24b59}.screen.settings label input[type=checkbox]{accent-color:var(--brass);width:18px;height:18px;min-height:unset;flex-shrink:0}.screen.settings>button:last-child{color:var(--muted);cursor:pointer;text-align:left;background:0 0;border:none;margin-top:8px;padding:8px 0;font-family:Spline Sans,system-ui,sans-serif;font-size:.9rem;transition:color .12s}.screen.settings>button:last-child:hover{color:var(--alarm)}input,select,textarea{color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;font-family:Spline Sans,system-ui,sans-serif;font-size:16px}input:focus-visible,select:focus-visible,textarea:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.screen.login{justify-content:center;align-items:center}.screen.login .login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;gap:18px;width:100%;padding:24px 20px;display:flex}.screen.login h1{text-align:center;letter-spacing:.01em;font-size:1.4rem;font-weight:600}.screen.login form{flex-direction:column;gap:14px;display:flex}.screen.login .login-hint{color:var(--muted);font-size:.85rem;line-height:1.5}.screen.login .login-hint strong{color:var(--text);font-weight:600}.screen.login button[type=submit]{background:var(--brass);color:#102a24;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;min-height:48px;font-family:Spline Sans,system-ui,sans-serif;font-size:1rem;font-weight:600;transition:opacity .12s,transform .12s;display:flex}.screen.login button[type=submit]:active{transform:scale(.98)}.screen.login button[type=submit]:disabled{opacity:.4;cursor:not-allowed}.screen.login .login-link{color:var(--muted);cursor:pointer;background:0 0;border:none;min-height:40px;font-family:Spline Sans,system-ui,sans-serif;font-size:.85rem;transition:color .12s}.screen.login .login-link:hover{color:var(--brass)}body>p{color:var(--muted);padding:20px;font-family:IBM Plex Mono,monospace}.loading-screen{min-height:100dvh;color:var(--brass);place-items:center;display:grid}.screen.dashboard .savings-gauge{padding-bottom:40px;font-family:IBM Plex Mono,monospace;font-weight:500;position:relative}.screen.dashboard .savings-gauge:before{content:"";background: linear-gradient(to right, transparent calc(20% - 1px), var(--text) calc(20% - 1px), var(--text) calc(20% + 1px), transparent calc(20% + 1px)),  linear-gradient(to right, var(--brass) 0, var(--brass) 100%) left / calc(var(--sr,0) * 100%) 100% no-repeat,  var(--surface-2);border-radius:999px;height:10px;transition:--sr .24s;display:block;position:absolute;bottom:26px;left:16px;right:16px}.screen.dashboard .savings-gauge:after{content:"\"stay the course\"";text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.65rem;font-weight:500;display:block;position:absolute;bottom:8px;left:16px;right:16px}@media (width<=480px){#root{max-width:100%}}.screen.quick-add .transfer-accounts{gap:10px;display:flex}.screen.quick-add .transfer-accounts .field{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.screen.quick-add .transfer-accounts .field-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.62rem;font-weight:500}.screen.history .amt-transfer{color:var(--muted)}@media (width<=320px){.screen{padding:12px 12px 88px}.category-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.spin{animation:none!important}}.cycle-nav{background:var(--surface);border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;display:flex}.cycle-nav button{background:var(--surface-2);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-width:40px;min-height:40px;transition:color .12s,border-color .12s;display:flex}.cycle-nav button:hover{color:var(--brass);border-color:var(--brass)}.cycle-label{color:var(--text);letter-spacing:.02em;font-family:IBM Plex Mono,monospace;font-size:.95rem;font-weight:500}.screen.dashboard table.envelopes{border-collapse:collapse;background:var(--surface);border:1px solid var(--line);border-radius:16px;width:100%;overflow:hidden}.screen.dashboard table.envelopes th,.screen.dashboard table.envelopes td{text-align:right;border-bottom:1px solid var(--line);padding:12px 14px;font-family:IBM Plex Mono,monospace;font-size:.85rem}.screen.dashboard table.envelopes thead th{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.62rem;font-weight:500}.screen.dashboard table.envelopes th:first-child,.screen.dashboard table.envelopes td:first-child{text-align:left;color:var(--text);font-family:Spline Sans,system-ui,sans-serif}.screen.dashboard table.envelopes tbody tr:last-child td{border-bottom:none}.amt-negative{color:var(--alarm)}.screen.dashboard .empty-pie,.screen.history .empty-pie{color:var(--muted);text-align:center;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;font-size:.85rem;font-style:italic}.screen.dashboard .lean-warning{color:var(--alarm);background:#c2553b26;border:1px solid #c2553b59;border-radius:12px;padding:12px 16px;font-size:.9rem;font-weight:500}.field{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.field-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.62rem;font-weight:500}.field input,.field select{background:var(--surface-2);color:var(--text);border:1px solid var(--line);border-radius:10px;width:100%;min-height:44px;padding:0 12px;font-size:16px}.screen.settings label.field{background:0 0;border:none;flex-direction:column;padding:0;display:flex}.field-row{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.input-pct{align-items:center;gap:8px;display:flex}.input-pct input{flex:1}.input-pct .pct{color:var(--muted);text-align:right;min-width:3ch;font-family:IBM Plex Mono,monospace;font-size:.8rem}.over-alloc{color:var(--alarm);font-size:.78rem;font-weight:500}.hint{color:var(--muted);font-size:.72rem;font-style:italic}.cycle-actions{gap:10px;display:flex}.cycle-actions button{cursor:pointer;border-radius:10px;flex:1;justify-content:center;align-items:center;gap:6px;min-height:44px;font-family:Spline Sans,system-ui,sans-serif;font-size:.9rem;font-weight:600;transition:opacity .12s;display:flex}.cycle-actions button:first-child{background:var(--brass);color:#102a24;border:none}.cycle-actions button:last-child{color:var(--muted);border:1px solid var(--line);background:0 0}.cycle-actions button:disabled{opacity:.4;cursor:not-allowed}.sheet-overlay{z-index:200;background:#00000080;justify-content:center;align-items:flex-end;animation:.22s overlay-in;display:flex;position:fixed;inset:0}@keyframes overlay-in{0%{opacity:0}to{opacity:1}}.sheet{background:var(--surface);border:1px solid var(--line);border-bottom:none;border-radius:18px 18px 0 0;flex-direction:column;gap:12px;width:100%;max-width:480px;max-height:88dvh;padding:20px 20px 28px;animation:.32s cubic-bezier(.22,1,.36,1) sheet-rise;display:flex;overflow-y:auto}@keyframes sheet-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-head{justify-content:space-between;align-items:center;display:flex}.sheet-head h3{color:var(--text);font-family:IBM Plex Mono,monospace;font-size:.95rem}.sheet-close{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:6px;display:flex}.pay-row{align-items:center;gap:8px;display:flex}.pay-row input{border-radius:10px;flex:1;min-height:44px;padding:0 12px}.pay-row select{border-radius:10px;flex:1;min-height:44px;padding:0 10px}.row-remove{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.sheet-actions{gap:10px;margin-top:4px;display:flex}.sheet-actions button,.sheet>button.secondary{cursor:pointer;border-radius:10px;flex:1;min-height:46px;font-family:Spline Sans,system-ui,sans-serif;font-size:.95rem;font-weight:600}.sheet-actions button:not(.secondary){background:var(--brass);color:#102a24;border:none}.sheet button.secondary{border:1px solid var(--line);color:var(--muted);background:0 0}.sheet-actions button:disabled{opacity:.4;cursor:not-allowed}.screen.quick-add>button.btn-saved{background:var(--sage);color:#102a24;opacity:1;animation:.36s cubic-bezier(.22,1,.36,1) btn-pop}@keyframes btn-pop{0%{transform:scale(1)}35%{transform:scale(1.05)}to{transform:scale(1)}}.screen.quick-add .acct-group{flex-direction:column;gap:8px;display:flex}.screen.quick-add .acct-group .field-label{align-items:center;gap:5px;display:inline-flex}.account-pills{flex-wrap:wrap;gap:8px;display:flex}.account-pills .pill{text-align:center;letter-spacing:.05em;min-width:0;color:var(--muted);background:var(--surface-2);border:1.5px solid var(--line);cursor:pointer;border-radius:999px;flex:1 1 0;min-height:44px;padding:0 10px;font-family:IBM Plex Mono,monospace;font-size:.85rem;font-weight:500;transition:transform .12s,border-color .12s,background-color .12s,color .12s}.account-pills .pill.selected{color:var(--text);border-color:var(--brass);background:#c9a24b24}.account-pills .pill:active{transform:scale(.96)}.account-pills .pill:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.screen.settings>div{flex-wrap:wrap}.screen.settings>div input.code-input{text-align:center;text-transform:uppercase;letter-spacing:.05em;flex:0 0 56px;width:56px;font-family:IBM Plex Mono,monospace}.category-bucket-section[data-bucket=need] .category-grid button.selected{border-color:var(--sage);background:#74a78e24}.category-bucket-section[data-bucket=want] .category-grid button.selected{border-color:var(--clay);background:#cc7a5624}.category-bucket-section[data-bucket=flow] .category-grid button.selected{border-color:var(--brass);background:#c9a24b24}.screen.quick-add .money-input{border-bottom:2px solid var(--line);flex-direction:column;align-items:center;gap:2px;padding:4px 0 10px;transition:border-color .16s;display:flex}.screen.quick-add .money-input:focus-within{border-color:var(--brass)}.screen.quick-add .money-unit{text-transform:uppercase;letter-spacing:.18em;color:var(--muted);font-family:IBM Plex Mono,monospace;font-size:.7rem;font-weight:500}.screen.quick-add .money-field{flex-direction:column;gap:12px;display:flex}.screen.quick-add .amount-pills{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.screen.quick-add .amount-pill{text-align:center;letter-spacing:.03em;min-width:0;min-height:40px;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:0 4px;font-family:IBM Plex Mono,monospace;font-size:.82rem;font-weight:500;transition:transform .1s,color .12s,border-color .12s}.screen.quick-add .amount-pill:hover{color:var(--brass);border-color:var(--brass)}.screen.quick-add .amount-pill:active{background:#c9a24b24;transform:scale(.94)}.screen.quick-add .amount-pill:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
