:root{--color-text: #18211f;--color-muted: #51605c;--color-subtle: #687571;--color-surface: #fff;--color-page: #f4f6f5;--color-primary: #164e4b;--color-primary-accent: #2f7d62;--color-warning-text: #704314;--color-warning-border: #d8c3aa;--color-warning-bg: #fff7ed;--color-danger: #9b2226;--color-danger-strong: #b3261e;--color-danger-border: #e3b7b7;--color-danger-bg: #fff1f1;--color-success: #1f7a46;--color-border: #dce2df;--color-border-strong: #c8d0cd;--color-border-soft: #e0e5e3;--color-track: #e8eeeb;--color-brand-warm: #9a5c22;--radius-sm: 6px;--radius-md: 8px;--shadow-panel: 0 20px 50px rgba(30, 45, 40, .08);--shadow-dialog: 0 24px 70px rgba(24, 33, 31, .28);color:var(--color-text);background:var(--color-page);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{min-height:38px;cursor:pointer;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-surface);padding:0 14px}button:disabled{cursor:not-allowed;opacity:.55}input,select,textarea{width:100%;min-height:38px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:8px 10px}textarea{min-height:280px;resize:vertical;white-space:pre}label{display:grid;gap:6px;color:var(--color-muted);font-size:.86rem;font-weight:700}h1,h2,p{margin:0}h1{font-size:clamp(1.35rem,2vw,1.85rem)}h2{margin-bottom:12px;font-size:1rem}small{display:block;margin-top:3px;color:var(--color-subtle);font-size:.78rem}section{min-width:0}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{border-bottom:1px solid var(--color-border-soft);padding:10px;text-align:left;vertical-align:top}th{color:var(--color-muted);font-size:.76rem;text-transform:uppercase}.secondary-button,.tabs button,.list-row button{border-color:var(--color-border-strong);background:var(--color-surface);color:#263430}.secondary-button,.list-row button{flex:0 0 auto}.login-page,.screen-status{display:grid;min-height:100vh;place-items:center}.login-page{padding:20px}.login-panel{display:grid;width:min(100%,380px);gap:18px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:24px;box-shadow:var(--shadow-panel)}.eyebrow{color:var(--color-brand-warm);font-size:.76rem;font-weight:800;text-transform:uppercase}.app-shell{min-height:100vh}.topbar,.workspace-header,.dialog-header,.topbar-actions,.account-actions,.list-row{display:flex;align-items:center}.topbar,.workspace-header,.dialog-header,.list-row{justify-content:space-between}.topbar{gap:18px;background:var(--color-surface);padding:18px 24px}.topbar-actions{gap:12px}.month-field input{width:150px}.account-actions{gap:10px}.username{color:var(--color-muted);font-size:.9rem;font-weight:700}.logout-button svg{display:none}.tabs{display:flex;gap:8px;overflow-x:auto;border-bottom:1px solid var(--color-border);background:var(--color-surface);padding:0 24px 14px}.tabs button.active{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-surface)}.workspace{display:grid;gap:22px;padding:24px}.workspace-header,.dialog-header{gap:12px}.workspace-header h2,.dialog-header h2{margin-bottom:0}.two-column,.entry-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,.7fr);gap:22px}.metric-grid,.result-grid{display:grid;gap:12px}.metric-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.result-grid{grid-template-columns:repeat(3,minmax(100px,1fr))}.metric,.table-wrap,.list,.budget-list,.chart-panel,.budget-progress-panel,.planning-panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.metric{display:grid;gap:6px;padding:14px}.chart-panel{min-height:380px;padding:16px 12px 8px}.budget-meter{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.8fr);gap:20px;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:22px;box-shadow:var(--shadow-panel)}.budget-meter.over-budget{border-color:var(--color-danger-border)}.budget-meter.no-budget{border-color:var(--color-border)}.budget-meter-main{display:grid;grid-template-columns:minmax(210px,260px) minmax(0,1fr);gap:22px;align-items:center}.budget-gauge-shell{display:grid;place-items:center}.budget-gauge{--budget-color: var(--color-primary-accent);--plan-color: var(--color-brand-warm);position:relative;display:grid;width:min(100%,250px);aspect-ratio:1;place-items:center;border-radius:50%;background:radial-gradient(circle,var(--color-surface) 0 55%,transparent 56%),conic-gradient(from -135deg,var(--plan-color) 0 var(--plan-used),transparent var(--plan-used) 100%),radial-gradient(circle,transparent 0 65%,var(--color-track) 66% 100%);box-shadow:inset 0 0 0 1px #ffffffd9,0 18px 38px #1e2d281f}.budget-gauge:before{position:absolute;inset:18px;border-radius:50%;background:radial-gradient(circle,transparent 0 58%,var(--color-surface) 59% 100%),conic-gradient(from -135deg,var(--budget-color) 0 var(--budget-used),var(--color-track) var(--budget-used) 100%);content:""}.budget-gauge:after{position:absolute;inset:38px;border:1px solid var(--color-border-soft);border-radius:50%;background:var(--color-surface);content:""}.over-budget .budget-gauge{--budget-color: var(--color-danger-strong);--plan-color: #c97223}.no-budget .budget-gauge{--budget-color: var(--color-subtle);--plan-color: var(--color-border-strong)}.budget-gauge-center{position:relative;z-index:1;display:grid;gap:1px;place-items:center;text-align:center}.budget-gauge-center span{font-size:clamp(2.1rem,5vw,3rem);font-weight:850;line-height:1}.budget-gauge-center span.over-limit{color:var(--color-danger-strong)}.budget-gauge-center span.under-limit{color:var(--color-success)}.budget-gauge-center small{margin-top:0;color:var(--color-muted);font-size:.8rem;font-weight:800;text-transform:uppercase}.budget-meter-copy{display:grid;gap:11px}.budget-meter-copy h2{margin-bottom:0;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.05}.budget-meter-copy p:not(.eyebrow){max-width:48rem;color:var(--color-muted)}.budget-meter-stats,.budget-context-grid,.plan-impact{display:grid;gap:10px}.budget-meter-stats{grid-template-columns:repeat(3,minmax(100px,1fr));margin-top:4px}.budget-meter-stats div,.budget-context-grid div,.plan-impact div{display:grid;gap:4px;min-width:0}.budget-meter-stats span,.budget-context span,.budget-context-grid span,.plan-impact span{color:var(--color-subtle);font-size:.74rem;font-weight:800;text-transform:uppercase}.budget-meter-stats strong{font-size:1.08rem}.budget-context{display:grid;align-content:center;border-left:1px solid var(--color-border-soft);padding-left:20px}.budget-context-section{display:grid;gap:12px;padding:16px 0}.budget-context-section+.budget-context-section{border-top:1px solid var(--color-border-soft)}.budget-context-section.muted{opacity:.7}.budget-context-header{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.budget-context-header strong{font-size:1.05rem;text-align:right}.budget-context-grid,.plan-impact{grid-template-columns:repeat(2,minmax(0,1fr))}.budget-context-grid strong,.plan-impact strong{font-size:.98rem}.budget-progress-panel,.planning-panel{display:grid;gap:14px;padding:18px}.planning-panel .table-wrap{border:0;border-radius:0}.planning-metrics{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px}.planning-metrics div{display:grid;gap:4px;border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);padding:10px}.planning-metrics span{color:var(--color-subtle);font-size:.76rem;font-weight:800;text-transform:uppercase}.planning-metrics strong{font-size:1rem}.budget-progress-panel.over-budget{border-color:var(--color-danger-border)}.budget-progress-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.budget-progress-header h2{margin-bottom:0;font-size:clamp(1.5rem,3vw,2.35rem)}.budget-progress-header strong{color:var(--color-primary);font-size:1rem;text-align:right}.budget-progress-panel.over-budget .budget-progress-header strong{color:var(--color-danger-strong)}.budget-progress{height:18px;overflow:hidden;border-radius:999px;background:var(--color-track)}.budget-progress span{display:block;height:100%;border-radius:inherit;background:var(--color-primary-accent)}.budget-progress-panel.over-budget .budget-progress span{background:var(--color-danger-strong)}.metric span{color:var(--color-subtle);font-size:.78rem;font-weight:800;text-transform:uppercase}.metric strong{font-size:1.22rem}.table-wrap,.list,.budget-list{overflow:auto}.banner{border:1px solid var(--color-warning-border);border-radius:var(--radius-md);background:var(--color-warning-bg);color:var(--color-warning-text);padding:12px 14px}.banner.error,.form-error{border-color:var(--color-danger-border);background:var(--color-danger-bg);color:var(--color-danger)}.form-error{border:1px solid var(--color-danger-border);border-radius:var(--radius-sm);padding:9px 10px}.negative{color:var(--color-danger-strong)}.swatch{display:inline-block;width:10px;height:10px;margin-right:8px;border-radius:999px;vertical-align:middle}.progress{display:block;height:6px;overflow:hidden;margin-top:7px;border-radius:999px;background:var(--color-track)}.progress span{display:block;height:100%;background:var(--color-primary-accent)}.button-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.empty,.screen-status{color:var(--color-subtle);padding:16px}.dialog-backdrop{position:fixed;inset:0;z-index:10;display:grid;place-items:center;overflow:auto;background:#18211f85;padding:24px}.entry-dialog{display:grid;width:min(100%,1120px);max-height:calc(100vh - 48px);gap:22px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-page);padding:22px;box-shadow:var(--shadow-dialog)}.manage-grid{display:grid;grid-template-columns:repeat(3,minmax(260px,1fr));gap:22px;align-items:start}.manage-toolbar{margin-bottom:-4px}.manage-actions{display:flex;flex-wrap:wrap;gap:10px}.manage-dialog{width:min(100%,760px)}.compact-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:12px}.compact-form button{grid-column:1 / -1}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-title-row h2{margin-bottom:0}.compact-button{min-height:32px;padding:0 10px}.segmented-control{display:inline-flex;width:100%;max-width:260px;overflow:hidden;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface)}.segmented-control button{flex:1 1 0;min-height:32px;border:0;border-radius:0;background:transparent;color:var(--color-text);padding:0 8px;font-size:.82rem;font-weight:800}.segmented-control button+button{border-left:1px solid var(--color-border-strong)}.segmented-control button.active,.segmented-control button[aria-pressed=true]{background:var(--color-primary);color:var(--color-surface)}.segmented-control button:disabled{background:var(--color-page)}.classification-control{display:grid;width:min(100%,300px);gap:8px}.classification-control .segmented-control{max-width:none}.classification-action-slot{display:flex;min-height:32px;align-items:end}.approve-button{display:inline-flex;min-height:32px;align-items:center;gap:6px;border-color:var(--color-success);background:var(--color-success);padding:0 10px}.approve-button svg{width:16px;height:16px;flex:0 0 auto}.kind-control-slot{width:min(100%,260px);min-height:32px}.list-row{gap:12px;border-bottom:1px solid var(--color-border-soft);padding:10px}.list-row:last-child,.amount-row:last-child{border-bottom:0}.plan-row{align-items:start}.plan-row select{width:150px;flex:0 0 150px}.amount-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;align-items:center;gap:10px;border-bottom:1px solid var(--color-border-soft);padding:9px 10px}.goal-total{padding:10px;color:var(--color-muted);font-size:.82rem;font-weight:800;text-align:right;text-transform:uppercase}.goal-mix-control{display:grid;gap:16px;padding:16px 12px 0;overflow:visible}.goal-slider{position:relative;height:34px;touch-action:none}.goal-slider:before{position:absolute;top:50%;right:0;left:0;height:8px;border-radius:999px;background:linear-gradient(to right,var(--color-primary) 0 var(--need-end),var(--color-primary-accent) var(--need-end) var(--want-end),var(--color-brand-warm) var(--want-end) 100%);content:"";transform:translateY(-50%)}.goal-handle{position:absolute;top:50%;z-index:1;width:24px;min-width:24px;height:24px;min-height:24px;border:3px solid var(--color-surface);border-radius:999px;background:var(--color-text);box-shadow:0 2px 8px #18211f38;padding:0;transform:translate(-50%,-50%)}.goal-handle:focus-visible{outline:3px solid var(--color-brand-warm);outline-offset:3px}.goal-mix-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.goal-mix-values div{display:grid;gap:3px}.goal-mix-values span{color:var(--color-subtle);font-size:.76rem;font-weight:800;text-transform:uppercase}.goal-mix-values strong{font-size:1rem}.goal-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;border-top:1px solid var(--color-border-soft);padding:12px 4px 0}.goal-targets div{display:grid;gap:3px}.goal-targets span,.static-row span{color:var(--color-subtle);font-size:.76rem;font-weight:800;text-transform:uppercase}.goal-targets strong,.static-row strong{font-size:1rem}.goal-targets small{color:var(--color-muted)}.errors{margin-top:14px}@media(max-width:900px){.topbar{position:relative}.topbar,.topbar-actions{align-items:stretch;flex-direction:column}.topbar>:first-child{padding-right:min(46vw,190px)}.topbar-actions{gap:10px}.month-field,.month-field input{width:100%}.account-actions{align-items:center;position:absolute;top:12px;right:12px;justify-content:flex-end;max-width:min(46vw,190px)}.username{min-width:0;overflow:hidden;text-align:right;text-overflow:ellipsis;white-space:nowrap}.tabs button{width:100%}.topbar-actions .logout-button{display:inline-grid;width:38px;flex:0 0 38px;min-height:38px;place-items:center;border-color:transparent;background:transparent;color:var(--color-primary);padding:0}.logout-button svg{display:block;width:20px;height:20px}.logout-button span{display:none}.workspace-header,.budget-progress-header{align-items:start;flex-direction:column}.budget-progress-header strong{text-align:left}.budget-meter,.budget-meter-main{grid-template-columns:1fr}.budget-meter{padding:18px}.budget-meter-main{gap:18px}.budget-gauge{width:min(100%,230px)}.budget-context{border-top:1px solid var(--color-border-soft);border-left:0;padding-top:4px;padding-left:0}.metric-grid,.result-grid,.two-column,.entry-grid,.manage-grid,.planning-metrics,.budget-meter-stats,.budget-context-grid,.plan-impact,.goal-mix-values,.goal-targets{grid-template-columns:1fr}.workspace,.topbar,.entry-dialog{padding:16px}.workspace{gap:18px}.chart-panel{min-height:auto;padding:14px 8px 10px}.dialog-backdrop{align-items:start;padding:12px}.entry-dialog{max-height:calc(100vh - 24px)}.tabs{padding:0 16px 12px}.tabs button{flex:1 1 auto}.compact-form{grid-template-columns:1fr}.app-shell,.workspace,.topbar,.topbar-actions,.month-field,.account-actions,.entry-dialog,.metric,.table-wrap,.list,.budget-list,.chart-panel,.budget-meter,.budget-meter-main,.budget-meter-copy,.budget-context,.budget-progress-panel,.planning-panel,.list-row,.amount-row,.section-title-row,.button-row,.compact-form,.compact-form>*,.workspace-header>*,.dialog-header>*{min-width:0;max-width:100%}.banner,.empty,.screen-status,.list-row,.list-row>div,.amount-row>span,.budget-meter-copy,.budget-context,.budget-context-section,.budget-context-header,.budget-context-grid,.plan-impact,.goal-targets,.table-wrap td,.table-wrap small{overflow-wrap:anywhere}.list-row,.plan-row,.section-title-row{align-items:stretch;flex-direction:column}.list-row button,.plan-row select{width:100%;flex-basis:auto}.amount-row{grid-template-columns:minmax(0,1fr)}.goal-slider{overflow:hidden}.table-wrap{overflow-x:hidden}.table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap tr,.table-wrap td{display:block;max-width:100%;min-width:0;width:100%}.table-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.table-wrap tr{border-bottom:1px solid var(--color-border-soft);padding:8px 0}.table-wrap tr:last-child{border-bottom:0}.table-wrap td{border-bottom:0;padding:7px 12px}.table-wrap select,.table-wrap input,.table-wrap button{max-width:100%;min-width:0}.table-wrap .segmented-control{max-width:none}.table-wrap td[data-label]:before{display:block;margin-bottom:3px;color:var(--color-subtle);content:attr(data-label);font-size:.72rem;font-weight:800;text-transform:uppercase}.table-wrap td[colspan]{padding:0}}
