
:root{color-scheme:dark;--bg:#161918;--surface:#1e2220;--raised:#252a27;--input:#191d1b;--border:#353d37;--text:#edf1ed;--muted:#a2afa5;--accent:#a6e8b5;--accent-bg:#294434;--accent-text:#c3e9cd;--red:#ffa09b;--orange:#ebc28b;--blue:#a2c7f3;--shadow:0 12px 40px #0002;--radius:13px}
html[data-theme=light]{color-scheme:light;--bg:#f4f6f4;--surface:#fff;--raised:#eaf0eb;--input:#fafcfb;--border:#d5e0d7;--text:#223629;--muted:#546e5b;--accent:#266945;--accent-bg:#dceee1;--accent-text:#235034;--red:#b43e39;--orange:#926019;--blue:#376aa3;--shadow:0 10px 35px #203c2510}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.5 ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}button{cursor:pointer}button,input,select,a{ -webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button{color:inherit}button:disabled{opacity:.45;cursor:default}input,select{background:var(--input);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);width:100%;min-height:44px}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--accent)}input[type=month]{max-width:185px}.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;background:var(--raised);padding:10px 15px;min-height:43px;font-weight:650;font-size:.9rem;text-decoration:none}.btn:hover{filter:brightness(1.1)}.btn.primary{background:var(--accent);color:#12271a;border-color:transparent}html[data-theme=light] .btn.primary{color:#fff}.btn.small{padding:6px 10px;min-height:34px;font-size:.85rem}.btn.ghost{background:transparent}.btn.danger{color:var(--red)}.iconbtn{background:none;border:0;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:7px}.iconbtn:hover{background:var(--raised);color:var(--text)}svg.icon{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.layout{min-height:100vh;display:grid;grid-template-columns:218px minmax(0,1fr)}.sidebar{min-width:0;position:sticky;top:0;height:100vh;padding:29px 17px 21px;border-right:1px solid var(--border);display:flex;flex-direction:column;background:var(--surface)}.brand{display:flex;gap:11px;align-items:center;font-size:1.23rem;font-weight:750;letter-spacing:-.04em;margin:0 6px 36px}.brandmark{width:34px;height:36px;background:var(--accent-bg);color:var(--accent);border:1px solid var(--border);border-radius:9px;display:grid;place-items:center}.side-label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:650;margin:0 11px 9px}.nav{min-width:0;display:grid;gap:4px}.nav button{display:flex;align-items:center;gap:12px;text-align:left;padding:11px 12px;border:0;border-radius:7px;color:var(--muted);background:none;font-size:.9rem}.nav button:hover{background:var(--raised)}.nav button.active{color:var(--accent-text);background:var(--accent-bg)}.side-bottom{margin-top:auto;padding:20px 5px 0}.side-bottom p{font-size:.79rem;color:var(--muted);margin:14px 0 0}.side-bottom .btn{width:100%}.main{min-width:0}.topbar{height:67px;display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--border);gap:12px}.breadcrumb{color:var(--muted);font-size:.85rem;display:flex;align-items:center;gap:9px}.breadcrumb b{color:var(--text);font-weight:500}.top-actions{display:flex;align-items:center;gap:8px}.workspace{max-width:1490px;padding:29px 32px 45px;margin:auto}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:24px}.page-tools{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.page-tools .btn{white-space:nowrap}h1{font-size:2.1rem;line-height:1.15;letter-spacing:-.055em;margin:0 0 7px}h2{font-size:1.08rem;letter-spacing:-.025em;margin:0}h3{font-size:1rem;letter-spacing:-.02em;margin:0}p{margin:0}.muted{color:var(--muted)}.smalltext{font-size:.85rem}.eyebrow{font-size:.76rem;text-transform:uppercase;letter-spacing:.09em;font-weight:650;color:var(--muted);margin-bottom:9px}.flex{display:flex;align-items:center;gap:10px}.between{justify-content:space-between}.wrap{flex-wrap:wrap}.grid{display:grid;gap:18px}.two{grid-template-columns:1fr 1fr}.three{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 20px}.metric{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 19px}.metric-value{font-size:1.82rem;font-weight:700;letter-spacing:-.05em;line-height:1.2;overflow-wrap:anywhere}.metric .caption{font-size:.8rem;color:var(--muted);margin-top:9px}.metric.accent{background:var(--accent-bg)}.metric.accent .eyebrow{color:var(--accent-text)}.positive{color:var(--accent)}.negative{color:var(--red)}.orange{color:var(--orange)}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden;min-width:0}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 17px;background:var(--accent-bg);color:var(--accent-text)}.panel-title{display:flex;align-items:center;gap:9px}.panel-head .iconbtn{color:inherit}.panel-body{padding:18px}.dashboard-main{grid-template-columns:minmax(0,1.6fr) minmax(270px,.85fr);align-items:start}.stack{display:grid;gap:18px}.budget-layout{align-items:start}.budget-layout>.stack{align-content:start}.wallet-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.wallet{border:1px solid var(--border);border-radius:10px;background:var(--raised);padding:17px;position:relative;min-width:0;overflow:hidden}.wallet .wallet-top{color:var(--muted);display:flex;justify-content:space-between;margin-bottom:23px;align-items:center}.wallet .wallet-top>svg{width:26px;height:26px}.wallet .wallet-amount{font-size:1.38rem;letter-spacing:-.04em;font-weight:700;margin-top:5px;overflow-wrap:anywhere}.wallet .tag{margin-top:10px}.tag{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:3px 7px;font-size:.75rem;font-weight:550;color:var(--accent-text);background:var(--accent-bg)}.tag.warn{color:var(--orange);background:var(--raised)}.tag.red{color:var(--red);background:var(--raised)}.add-card{border:1px dashed var(--border);border-radius:10px;background:none;color:var(--muted);min-height:148px;display:flex;flex-direction:column;gap:9px;justify-content:center;align-items:center}.add-card:hover{color:var(--accent);border-color:var(--accent)}.onboarding{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;background:var(--accent-bg);border:1px solid var(--border);border-radius:13px;padding:20px 23px;margin-bottom:20px}.onboarding h2{font-size:1.2rem;margin-bottom:5px}.onboarding p{color:var(--accent-text);font-size:.9rem;max-width:680px}.banner{padding:12px 22px;background:var(--accent-bg);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:.87rem}.banner strong{color:var(--accent)}.notice{padding:13px 15px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:7px;background:var(--raised);font-size:.88rem;line-height:1.6}.notice.warn{border-left-color:var(--orange)}.notice.error{border-left-color:var(--red)}.empty{text-align:center;padding:30px 18px;color:var(--muted);font-size:.92rem}.empty .icon{width:28px;height:28px;margin-bottom:9px}.empty p{margin-bottom:12px}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quick{border:1px solid var(--border);border-radius:7px;background:var(--raised);padding:12px;display:flex;align-items:center;gap:9px;font-size:.85rem;text-align:left}.quick .icon{color:var(--accent)}.summary-row{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid var(--border);font-size:.88rem}.summary-row:last-child{border:0}.summary-row strong{font-weight:650;text-align:right}.progress{height:7px;border-radius:6px;background:var(--raised);overflow:hidden}.progress>span{height:100%;display:block;background:var(--accent);border-radius:6px}.budget-line{margin-bottom:17px}.budget-line:last-child{margin-bottom:0}.budget-line .flex{font-size:.85rem;margin-bottom:7px}.budget-line .flex strong{font-weight:550}.category-dot{width:9px;height:9px;border-radius:3px;display:inline-block;flex-shrink:0}.table-wrap{overflow:auto;max-width:100%}table{width:100%;border-collapse:collapse;font-size:.88rem}th{text-align:left;color:var(--muted);font-size:.78rem;font-weight:550;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap}td{padding:12px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr:last-child td{border:0}.right{text-align:right}td .sub{display:block;color:var(--muted);font-size:.78rem;margin-top:3px}.amount{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.toolbar input{max-width:270px}.toolbar select{max-width:175px}.transaction-caption{color:var(--muted);font-size:.82rem;margin-top:15px}.bars{height:148px;display:flex;justify-content:space-around;align-items:end;gap:12px;padding:14px 4px 0;border-bottom:1px solid var(--border)}.bar-group{height:100%;display:flex;gap:5px;align-items:end;justify-content:center;flex:1;position:relative;max-width:70px}.bar{width:19px;max-width:40%;border-radius:3px 3px 0 0;min-height:2px;background:var(--accent)}.bar.out{background:var(--orange)}.bar-labels{display:flex;justify-content:space-around;color:var(--muted);font-size:.75rem;padding-top:9px}.legend{display:flex;gap:17px;font-size:.8rem;color:var(--muted);margin-top:15px}.legend span{display:flex;gap:7px;align-items:center}.deadline{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--border)}.deadline:last-child{border:0}.deadline-date{min-width:38px;text-align:center;padding:4px;background:var(--raised);border-radius:7px;font-size:.72rem;color:var(--muted)}.deadline-date strong{display:block;color:var(--text);font-size:1.02rem}.deadline-info{flex:1;min-width:0}.deadline-info b{display:block;font-size:.88rem;font-weight:550}.deadline-info span{font-size:.77rem;color:var(--muted)}.record{padding:19px;border:1px solid var(--border);background:var(--surface);border-radius:12px;min-width:0}.record-head{display:flex;align-items:start;justify-content:space-between;gap:12px;margin-bottom:18px}.record-head h3{overflow-wrap:anywhere}.record-num{font-size:1.85rem;letter-spacing:-.05em;font-weight:700;line-height:1.25;margin-bottom:8px;overflow-wrap:anywhere}.record-details{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.83rem;margin:13px 0}.record-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:19px;border-top:1px solid var(--border);padding-top:14px}.record-icon{width:36px;height:36px;border-radius:8px;display:grid;place-items:center;background:var(--accent-bg);color:var(--accent)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid>.wide{grid-column:1/-1}.form-grid>*{min-width:0}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field label{font-size:.86rem;font-weight:550}.field small{font-size:.77rem;color:var(--muted);line-height:1.45}.field.wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.budget-editor{display:grid;grid-template-columns:1fr 150px 140px;gap:15px;align-items:center;padding:13px 0;border-bottom:1px solid var(--border);font-size:.9rem}.budget-editor:last-child{border:0}.budget-editor .spent{font-size:.81rem;color:var(--muted);text-align:right}.step-box{background:var(--raised);border:1px solid var(--border);padding:17px;border-radius:10px}.step-box .metric-value{font-size:1.5rem}dialog{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:16px;padding:0;width:min(590px,calc(100vw - 28px));max-height:90vh;box-shadow:var(--shadow)}dialog::backdrop{background:#0009;backdrop-filter:blur(3px)}.dialog-top{padding:20px 23px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.dialog-body{padding:22px 23px;overflow:auto}.dialog-top h2{font-size:1.22rem}.help-list{padding-left:21px;color:var(--muted);font-size:.9rem}.help-list li{margin-bottom:10px}.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--text);color:var(--bg);padding:12px 20px;border-radius:9px;box-shadow:var(--shadow);z-index:100;max-width:90vw;font-size:.9rem}.hidden{display:none!important}.sr-only{position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.footnote{font-size:.78rem;color:var(--muted);margin-top:20px;line-height:1.6}.demo-pill{color:var(--orange);font-size:.75rem;font-weight:650;margin-left:7px}.spacer{margin-top:20px}.divider{border:0;border-top:1px solid var(--border);margin:20px 0}.mobile-brand{display:none}.setting-row{padding:15px 0;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;gap:15px;align-items:center}.setting-row:last-child{border:0}.setting-row p{font-size:.84rem;color:var(--muted);margin-top:4px}.textlink{border:0;background:none;color:var(--accent);font-size:.86rem;padding:3px 0}.allocation{display:flex;height:15px;gap:3px;border-radius:5px;overflow:hidden;margin:20px 0}.allocation span{min-width:0}.mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.donut{width:124px;height:124px;border-radius:50%;position:relative;display:grid;place-items:center;flex-shrink:0}.donut:before{content:"";position:absolute;inset:16px;border-radius:50%;background:var(--surface)}.donut b{position:relative;font-size:1.1rem}.category-legend{display:grid;gap:10px;min-width:0}.category-legend .flex{font-size:.83rem}.chart-composition{display:flex;align-items:center;justify-content:space-around;gap:20px;flex-wrap:wrap}
@media(min-width:1650px){.wallet-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:1250px){.wallet-grid{grid-template-columns:1fr 1fr}.three{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:1fr 1fr}.dashboard-main{grid-template-columns:minmax(0,1.3fr) minmax(250px,.85fr)}.layout{grid-template-columns:195px minmax(0,1fr)}.workspace{padding:25px}.topbar{padding:0 25px}.metric-value{font-size:1.65rem}}@media(max-width:960px){.layout{grid-template-columns:minmax(0,1fr)}.sidebar{height:auto;position:static;padding:14px 20px;border-right:0;border-bottom:1px solid var(--border)}.brand{margin:0 0 13px;font-size:1.1rem}.brandmark{height:29px;width:29px}.side-label,.side-bottom{display:none}.nav{display:flex;overflow-x:auto;padding-bottom:4px}.nav button{white-space:nowrap;padding:8px 12px;font-size:.84rem}.nav button .icon{width:16px;height:16px}.topbar{height:58px}.dashboard-main{grid-template-columns:1fr 1fr}.onboarding{grid-template-columns:1fr}.onboarding .flex{flex-wrap:wrap}}@media(max-width:700px){.workspace{padding:22px 16px 35px}.topbar{padding:0 16px}.breadcrumb{font-size:.8rem}.top-actions .backup-label{display:none}h1{font-size:1.75rem}.page-heading{align-items:flex-start;flex-direction:column}.page-heading .muted{font-size:.85rem}.page-heading input{font-size:.83rem;width:145px;min-height:38px;padding:7px;flex-shrink:0}.dashboard-main,.two,.three{grid-template-columns:1fr}.metrics{gap:10px}.metric{padding:15px}.metric-value{font-size:1.45rem}.metric .eyebrow{font-size:.7rem}.metric .caption{font-size:.75rem}.wallet-grid{grid-template-columns:1fr 1fr}.wallet{padding:14px}.wallet .wallet-amount{font-size:1.15rem}.panel-body{padding:15px}.budget-editor{grid-template-columns:1fr 115px}.budget-editor .spent{grid-column:1/-1;text-align:left;margin-top:-10px}.form-grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.banner{align-items:start;font-size:.8rem;padding:12px 16px}.banner .btn{flex-shrink:0}.dialog-body{padding:18px}.dialog-top{padding:15px 18px}.toolbar input{max-width:none}.toolbar select{flex:1}.setting-row{align-items:start;flex-direction:column}.metric-value,.record-num{font-variant-numeric:tabular-nums}}@media(prefers-reduced-motion:no-preference){.panel,.record{animation:arrive .22s ease-out}@keyframes arrive{from{opacity:.4;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}}
.startup-note{max-width:760px;margin:8vh auto;padding:25px;background:var(--surface);border:1px solid var(--border);border-radius:13px;line-height:1.7}.startup-note h1{font-size:1.6rem}.startup-note p{margin:15px 0}.startup-note ol{padding-left:22px}.startup-note code{overflow-wrap:anywhere}html:not(.app-ready) .layout{display:none}html.app-ready .startup-note{display:none}@media(max-width:800px){.startup-note{margin:24px 16px}}
#periodPicker{width:225px;max-width:100%}#periodPicker input{width:100%}#periodLabel{margin:5px 0 0;line-height:1.3}@media(max-width:520px){#periodPicker{width:100%}}
.spend-panel{margin-bottom:20px}.spend-forecast{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px 30px;align-items:start}.spend-amount{font-size:clamp(2rem,4vw,2.8rem);line-height:1.15;font-weight:750;letter-spacing:-.05em;margin:4px 0 8px;overflow-wrap:anywhere}.spend-forecast .summary-row:first-child{padding-top:0}@media(max-width:700px){.spend-forecast{grid-template-columns:1fr;gap:14px}}
.advice-panel{margin-bottom:20px}.advice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}.advice-item{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:8px;background:var(--raised);padding:12px 14px;min-width:0}.advice-item.warn{border-left-color:var(--orange)}.advice-item.error{border-left-color:var(--red)}.advice-item h3{font-size:.9rem;margin-bottom:4px}.advice-item p{font-size:.83rem;color:var(--muted);line-height:1.45}.advice-item .textlink{margin-top:7px;min-height:40px;text-align:left}.advice-panel .footnote{margin-top:12px}@media(max-width:700px){.advice-grid{grid-template-columns:1fr}}
.cash-calendar-panel{margin-bottom:20px}.calendar-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.calendar-summary>div{background:var(--raised);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.calendar-summary strong{display:block;font-size:1.25rem;line-height:1.25;letter-spacing:-.03em;margin-top:4px;font-variant-numeric:tabular-nums}.calendar-details{margin-top:14px}.calendar-details summary{cursor:pointer;color:var(--accent-text);font-size:.9rem;font-weight:650;min-height:44px;display:flex;align-items:center}.calendar-days{max-height:420px;overflow:auto;border-top:1px solid var(--border)}.calendar-day{padding:10px 0;border-bottom:1px solid var(--border);display:grid;grid-template-columns:105px minmax(0,1fr) auto;gap:8px 14px;align-items:start;font-size:.86rem}.calendar-day:last-child{border:0}.calendar-day .calendar-date{font-weight:650}.calendar-day .calendar-balance{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.calendar-day .calendar-events{color:var(--muted);min-width:0}.calendar-day .calendar-events span{display:block}@media(max-width:700px){.calendar-summary{grid-template-columns:1fr 1fr}.calendar-day{grid-template-columns:80px minmax(0,1fr);gap:3px 9px}.calendar-day .calendar-balance{grid-column:2;grid-row:1;text-align:right}.calendar-day .calendar-events{grid-column:1/-1}}
.expense-scenario{margin-bottom:20px}.expense-scenario>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:12px 17px;background:var(--accent-bg);color:var(--accent-text);font-weight:650}.expense-scenario>summary::-webkit-details-marker{display:none}.expense-scenario>summary:after{content:'Apri';font-size:.82rem;font-weight:500}.expense-scenario[open]>summary:after{content:'Chiudi'}.expense-scenario .form-grid{align-items:end}.expense-scenario .form-actions{margin-top:6px}.scenario-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.scenario-results .step-box{padding:13px}.scenario-results .metric-value{font-size:1.3rem}@media(max-width:700px){.scenario-results{grid-template-columns:1fr}}

#bankDialog{width:min(860px,calc(100vw - 24px))}#bankDialog .form-grid>*{min-width:0}#bankRows .record{padding:14px}#bankRows .record-head{margin-bottom:10px}#bankRows details{font-size:.875rem;color:var(--muted);overflow-wrap:anywhere}#bankRows summary{cursor:pointer;min-height:44px;padding-top:10px}#bankRows select{max-width:300px}#bankRows label{min-height:44px}#bankRows .bank-description{white-space:pre-wrap;padding:8px 0}#bankDialog .form-actions{position:sticky;bottom:-22px;background:var(--surface);padding:14px 0;margin-bottom:-10px}@media(max-width:550px){#bankDialog .dialog-body{padding:18px 14px}#bankRows .record-head{flex-wrap:wrap}}

.budget-editor{grid-template-columns:minmax(0,1fr) minmax(90px,115px)}.budget-editor .spent{grid-column:1/-1;text-align:left;margin-top:-8px;overflow-wrap:anywhere}
@media(max-width:960px){.nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible;gap:5px}.nav button{white-space:normal;min-height:48px;font-size:.875rem;line-height:1.3}.nav button .icon{flex-shrink:0}}
@media(max-width:550px){.nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar{padding:14px 16px}.mini-grid{grid-template-columns:1fr}}


/* Phone-only layout; tablet and desktop retain their existing navigation and grids. */
.mobile-menu{display:none}
@media(max-width:600px){
 .sidebar{position:sticky;top:0;z-index:20;padding:calc(8px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left));background:var(--bg)}
 .mobile-header{display:flex;align-items:center;justify-content:space-between;gap:12px}
 .mobile-header .brand{margin:0}.mobile-menu{display:inline-flex;min-width:100px;min-height:44px}
 .sidebar .nav{display:none;margin-top:10px;grid-template-columns:1fr 1fr;max-height:calc(100vh - 100px);max-height:calc(100dvh - 100px - env(safe-area-inset-top));overflow-y:auto;overscroll-behavior:contain}
 .sidebar.menu-open .nav{display:grid}.nav button{min-height:54px;padding:10px;font-size:.875rem}
 .topbar{height:auto;min-height:56px;gap:8px;padding:6px max(16px,env(safe-area-inset-right)) 6px max(16px,env(safe-area-inset-left))}
 .breadcrumb{font-size:0;min-width:0}.breadcrumb>span{display:none}.breadcrumb>b{font-size:.8rem;overflow-wrap:anywhere}
 .top-actions{gap:5px;flex-shrink:0}.top-actions .btn{min-width:44px;padding:10px}
 .workspace{padding:18px max(16px,env(safe-area-inset-right)) calc(28px + env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left))}
 .page-heading{gap:14px}.page-heading input{font-size:16px;min-height:44px;width:180px}
 .btn,.btn.small{min-height:44px}.textlink,summary{min-height:44px;padding-top:10px;padding-bottom:10px}
 input,select,textarea{font-size:16px;min-width:0;max-width:100%}
 .wallet-grid{grid-template-columns:minmax(0,1fr)}.wallet .wallet-amount{font-size:1.4rem}
 .metric{padding:13px;min-width:0}.metric-value{font-size:clamp(1.12rem,5.2vw,1.5rem);overflow-wrap:anywhere}.metric .eyebrow{font-size:.75rem}
 .panel-head,.record-foot,.record-details{flex-wrap:wrap}.panel-head{gap:10px}.panel-head h2{min-width:0}.record-foot>.btn{flex:1}
 .toolbar{align-items:stretch}.toolbar input{flex-basis:100%;width:100%}.toolbar select{max-width:none;flex-basis:calc(50% - 5px)}
 .movement-table,.movement-table tbody{display:block;width:100%}
 .movement-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
 .movement-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:16px 0;border-bottom:1px solid var(--border)}
 .movement-table tr:last-child{border-bottom:0}
 .movement-table td{display:block;padding:0;border:0;min-width:0;overflow-wrap:anywhere}
 .movement-note{grid-column:1/-1;grid-row:1;font-size:.94rem;line-height:1.5}
 .movement-account{grid-column:1;grid-row:2;color:var(--muted);font-size:.8rem;align-self:center}
 .movement-amount{grid-column:2;grid-row:2;align-self:center;font-size:1rem}
 .movement-date{grid-column:1;grid-row:3;color:var(--muted);align-self:center;font-size:.8rem}
 .movement-actions{grid-column:2;grid-row:3;text-align:right}.movement-actions .iconbtn{margin-left:4px}
 dialog,#bankDialog{width:calc(100% - 16px);max-width:none;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px - env(safe-area-inset-top) - env(safe-area-inset-bottom));margin:auto;border-radius:14px}
 dialog[open]{display:flex;flex-direction:column;overflow:hidden}
 .dialog-top{flex-shrink:0;padding:12px 14px;gap:10px}.dialog-top h2{font-size:1.1rem}
 .dialog-body,#bankDialog .dialog-body{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:16px 14px;scroll-padding:16px 0 85px}
 dialog .form-actions,#bankDialog .form-actions{position:sticky;bottom:-16px;z-index:2;background:var(--surface);padding:12px 0 calc(12px + env(safe-area-inset-bottom));margin:22px 0 -16px;border-top:1px solid var(--border);flex-wrap:wrap}
 dialog .form-actions>.btn{flex:1}body:has(dialog[open]){overflow:hidden}
 #bankRows .record-head{flex-wrap:wrap}#bankRows select{max-width:100%}
 .toast{bottom:calc(16px + env(safe-area-inset-bottom));width:max-content;max-width:calc(100vw - 32px)}
}
@media(max-width:350px){.metrics{grid-template-columns:1fr}.budget-editor{gap:10px;grid-template-columns:minmax(0,1fr) 100px}.movement-table tr{grid-template-columns:minmax(0,1fr)}.movement-amount{grid-column:1;grid-row:3;text-align:left}.movement-date{grid-row:4}.movement-actions{grid-column:1;grid-row:5;text-align:left}}
.layout.vault-locked{visibility:hidden}
#vaultDialog{width:min(480px,calc(100vw - 28px))}
