:root{--bg:#f5f7f4;--sidebar:#102a36;--sidebar-soft:#173744;--surface:#fff;--surface-muted:#eef3ef;--ink:#14242c;--muted:#63727a;--line:#dbe2dd;--green:#2e8b57;--green-soft:#e6f3eb;--blue:#2f6f9f;--blue-soft:#e7f0f7;--amber:#b7791f;--red:#c24a43;--shadow:0 16px 44px rgb(20 36 44/9%);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);margin:0}button,input,select{font:inherit}button{background:var(--green);border:0;border-radius:8px;color:#fff;cursor:pointer;font-weight:800;min-height:40px;padding:0 14px}button:hover{filter:brightness(1.04)}input,select{background:#fff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:38px;padding:8px 10px;width:100%}h1,h2,h3,p{margin:0}h1{font-size:clamp(30px,3vw,46px);line-height:1}h1,h2{letter-spacing:0}h2{font-size:20px}h3{font-size:16px}small{color:var(--muted)}.app-shell{display:grid;grid-template-columns:292px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);color:#fff;display:flex;flex-direction:column;gap:24px;height:100vh;padding:28px 22px;position:sticky;top:0}.brand{align-items:center;display:flex;gap:12px}.brand>span{background:var(--green);border-radius:10px;display:grid;font-weight:900;height:44px;place-items:center;width:44px}.brand div{display:grid;gap:3px}.brand strong{font-size:19px}.brand small,.settings label{color:#ffffffad}.nav{display:grid;gap:8px}.nav button{background:transparent;border:1px solid transparent;color:#ffffffb8;justify-content:flex-start;text-align:left}.nav button.active{background:var(--sidebar-soft);border-color:#ffffff1f;color:#fff}.settings{border-bottom:1px solid hsla(0,0%,100%,.1);border-top:1px solid hsla(0,0%,100%,.1);display:grid;gap:14px;padding:18px 0}.settings label{display:grid;font-size:12px;font-weight:900;gap:7px;text-transform:uppercase}.secondary{background:var(--surface);border:1px solid var(--line);color:var(--ink)}.sidebar .secondary{background:#ffffff14;border-color:#ffffff29;color:#fff;margin-top:auto}.workspace{align-content:start;display:grid;gap:22px;margin:0 auto;max-width:1320px;padding:30px;width:100%}.topbar{align-items:end;display:grid;gap:24px;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr)}.topbar p{color:var(--muted);font-size:12px;font-weight:900;letter-spacing:3px;margin-bottom:8px;text-transform:uppercase}.month-strip{background:var(--surface);border:1px solid var(--line);border-radius:10px;display:grid;gap:6px;grid-template-columns:repeat(12,minmax(0,1fr));padding:6px}.month-strip button{background:transparent;border-radius:7px;color:var(--muted);min-height:34px;padding:0 8px}.month-strip button.active{background:var(--green);color:#fff}.view{display:grid;gap:20px}.dashboard-layout{grid-template-areas:"hero kpis" "annual categories" "annual goals";grid-template-columns:1.1fr .9fr}.hero-card{background:linear-gradient(135deg,rgba(46,139,87,.18),transparent 42%),#123442;border-radius:12px;box-shadow:var(--shadow);color:#fff;display:grid;gap:18px;grid-area:hero;min-height:278px;padding:26px}.hero-footer,.hero-topline,.panel-heading{align-items:center;display:flex;gap:14px;justify-content:space-between}.hero-topline span{color:#ffffffb8;font-size:12px;font-weight:900;letter-spacing:3px;text-transform:uppercase}.hero-topline b{background:#ffffff1f;border-radius:999px;color:#d9f3e4;font-size:12px;padding:6px 9px}.hero-card strong{font-size:clamp(50px,5vw,76px);line-height:.95}.hero-card p,.hero-footer span{color:#ffffffc2}.hero-meter{background:#ffffff24;border-radius:999px;height:10px;overflow:hidden}.hero-meter i{background:#9be0b4;border-radius:inherit;display:block;height:100%}.kpi-grid{display:grid;gap:14px;grid-area:kpis;grid-template-columns:repeat(2,minmax(0,1fr))}.budget-card,.kpi,.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow)}.kpi{display:grid;gap:8px;min-height:132px;padding:18px}.kpi span,.panel-heading span{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.kpi strong{font-size:clamp(28px,3vw,42px);line-height:1}.panel{display:grid;gap:18px;padding:18px}.annual-panel{align-content:start;grid-area:annual}.goals-panel{align-content:start;grid-area:goals}.categories-panel{align-content:start;grid-area:categories}.annual-bars{display:grid;gap:11px}.annual-row{align-items:center;display:grid;gap:12px;grid-template-columns:44px minmax(0,1fr) 88px}.annual-row strong,.annual-row>span{color:var(--muted);font-size:13px}.annual-row>div{background:var(--surface-muted);border-radius:999px;height:20px;overflow:hidden;position:relative}.annual-row i{border-radius:inherit;height:10px;left:0;position:absolute}.income-bar{background:#2e8b57c7;top:0}.expense-bar{background:#2f6f9f9e;bottom:0}.goal-row{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(0,1fr) 54px}.goal-row span{color:var(--green);font-weight:900;text-align:right}.category-list{display:grid;gap:10px}.category-row{align-items:center;border:1px solid var(--line);border-radius:10px;display:grid;gap:8px 14px;grid-template-columns:minmax(0,1fr) 96px;padding:12px}.category-row div{display:grid;gap:4px}.category-row span{font-weight:900;text-align:right}.category-row i{background:var(--surface-muted);border-radius:999px;grid-column:1/-1;height:6px;overflow:hidden}.category-row em{background:var(--green);border-radius:inherit;display:block;height:100%}.budget-grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.budget-card{box-shadow:none;display:grid;gap:12px;padding:16px}.account-table,.edit-table,.month-table{display:grid;gap:9px}.edit-row{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) 116px 76px}.ghost,.small-button{font-size:13px;min-height:34px;padding:0 10px}.ghost{background:transparent;border:1px solid var(--line);color:var(--ink)}.danger,.dangerText{color:var(--red)!important}.rollover{align-items:center;color:var(--muted);display:flex;font-size:13px;font-weight:800;gap:8px}.rollover input{min-height:18px;width:18px}.month-head,.month-row{align-items:center;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) 120px 120px 120px}.month-head{color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase}.month-group{border-top:1px solid var(--line);margin-top:8px;padding-top:12px}.networth-chart{align-items:end;border-bottom:1px solid var(--line);display:grid;gap:10px;grid-template-columns:repeat(13,minmax(38px,1fr));height:270px;padding-top:16px}.networth-chart div{align-items:end;display:grid;gap:8px;height:100%;text-align:center}.networth-chart i{background:var(--blue);border-radius:8px 8px 0 0;display:block;min-height:8px}.networth-chart span{color:var(--muted);font-size:12px;font-weight:800}.button-row{display:flex;gap:8px}.account-row{align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 110px 120px 76px}.monarch-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr)}.monarch-grid aside{align-content:start;background:var(--green-soft);border-radius:10px;display:grid;gap:12px;padding:16px}.monarch-grid aside p{color:var(--muted);line-height:1.5}.dropzone{background:var(--surface-muted);border:2px dashed #a9bbb1;border-radius:10px;display:grid;gap:8px;min-height:190px;padding:24px;place-items:center;text-align:center}.dropzone input{max-width:300px}pre{background:#102a36;border-radius:10px;color:#f4f8f5;max-height:160px;overflow:auto;padding:12px}@media(max-width:1180px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static}.sidebar .secondary{margin-top:0}.dashboard-layout,.topbar{grid-template-areas:none;grid-template-columns:1fr}.annual-panel,.categories-panel,.goals-panel,.hero-card,.kpi-grid{grid-area:auto}}@media(max-width:760px){.sidebar,.workspace{padding:18px}.month-strip{grid-template-columns:repeat(12,58px);overflow-x:auto}.account-row,.budget-grid,.edit-row,.kpi-grid,.monarch-grid,.month-head,.month-row{grid-template-columns:1fr}}
