:root{--ink:#0b1739;--navy:#142a52;--teal:#18a999;--bg:#f5f7fb;--text:#182230;--muted:#687386;--danger:#c62828;--success:#14805e;--border:#e5eaf1;--surface-subtle:#f8fafc;--shadow:0 12px 32px rgba(16,32,66,0.07)}*{box-sizing:border-box}body,html{margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,sans-serif}button,input,select{font:inherit}button{cursor:pointer}.shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:240px;background:var(--ink);color:white;padding:28px 18px;z-index:10}.brand{font-weight:800;font-size:19px;line-height:1.2;margin:0 10px 38px}.brand:after{content:"";display:block;width:24px;height:2px;margin-top:18px;background:var(--teal)}.brand small{display:block;color:#8fded4;font-size:11px;letter-spacing:.14em;margin-top:7px;text-transform:uppercase}.nav{display:grid;grid-gap:7px;gap:7px}.nav a{color:#b8c5df;text-decoration:none;padding:12px 14px;border-radius:10px;display:flex;gap:12px;align-items:center}.nav a.active,.nav a:hover{background:#203964;color:white}.nav a.active{box-shadow:inset 3px 0 0 var(--teal);font-weight:800}.nav a{transition:background-color .16s ease,color .16s ease,transform .16s ease}.nav a:hover{transform:translateX(2px)}.main{margin-left:240px;padding:32px 38px 100px;max-width:1500px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:26px;gap:20px}.topbar>.actions{display:grid;grid-template-columns:minmax(250px,auto) auto;align-items:center}.eyebrow{color:var(--teal);font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:11px}.title{font-size:30px;margin:5px 0 4px;letter-spacing:-.035em}.subtitle{color:var(--muted);margin:0}.month{background:white;border:1px solid var(--border);border-radius:10px;padding:10px 14px;color:var(--ink)}.period-controls{display:grid;grid-template-columns:minmax(140px,1fr) minmax(96px,auto);grid-gap:8px;gap:8px}.grid{display:grid;grid-gap:18px;gap:18px}.card,.grid,.main,.table-wrap{min-width:0}.kpis{grid-template-columns:repeat(5,1fr)}.two{grid-template-columns:1.3fr 1fr}.three{grid-template-columns:repeat(3,1fr)}.card{background:white;border:1px solid var(--border);border-radius:15px;padding:20px;box-shadow:var(--shadow);transition:border-color .16s ease,box-shadow .16s ease}.card:hover{border-color:#d8e1eb}.metric-label{color:var(--muted);font-size:13px}.metric-value{font-size:25px;font-weight:800;letter-spacing:-.03em;margin:9px 0 4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.positive{color:var(--success)}.negative,.overdue{color:var(--danger)}.card h2{font-size:18px;margin:0 0 4px}.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px}.muted{color:var(--muted);font-size:13px}.btn{border:0;border-radius:10px;padding:10px 15px;font-weight:750;background:var(--ink);color:white;display:inline-flex;align-items:center;justify-content:center;gap:7px;transition:transform .12s ease,filter .12s ease,background-color .12s ease}.btn:hover{filter:brightness(1.05)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#edf2f7;color:var(--ink)}.btn.danger{background:#fff0f0;color:var(--danger)}.btn.teal{background:var(--teal)}.actions{display:flex;gap:9px;flex-wrap:wrap}.progress{height:8px;background:#edf1f5;border-radius:9px;overflow:hidden}.progress span{display:block;height:100%;background:var(--teal);border-radius:9px}.list{display:grid;grid-gap:11px;gap:11px}.row{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:13px 0;border-bottom:1px solid #edf0f4}.row:last-child{border:0}.badge{font-size:11px;font-weight:800;padding:5px 8px;border-radius:20px;background:#eef8f6;color:var(--success)}.badge.warn{background:#fff5df;color:#9b6300}.badge.bad{background:#ffeded;color:var(--danger)}.badge.neutral{background:#eef1f5;color:#516071}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.field{display:grid;grid-gap:6px;gap:6px;min-width:0}.field-span-2{grid-column:span 2}.field label{font-size:12px;font-weight:700;color:var(--muted)}input,select{width:100%;border:1px solid #dce2ea;border-radius:9px;padding:10px;background:white;color:var(--text)}a:focus-visible,button:focus-visible,input:focus,select:focus{outline:3px solid #00b8d955;outline-offset:2px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:10px}td{padding:13px 10px;border-top:1px solid #edf0f4;font-size:14px}.tabs{display:flex;gap:6px;margin-bottom:18px}.tabs a{padding:9px 13px;text-decoration:none;color:var(--muted);border-radius:9px}.tabs a.active{background:var(--ink);color:#fff}.score{width:104px;height:104px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--teal) calc(var(--score) * 1%),#eaf0f3 0);position:relative}.score:after{content:"";position:absolute;inset:9px;background:white;border-radius:50%}.score b{z-index:1;font-size:27px}.insight{border-left:3px solid var(--teal);padding-left:13px}.empty{text-align:center;padding:46px 20px}.empty.compact{padding:26px 12px;background:var(--surface-subtle);border-radius:12px}.empty.compact p{margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.filter-grid{display:grid;grid-template-columns:2fr repeat(4,1fr);grid-gap:10px;gap:10px}.row-actions{display:flex;gap:6px;justify-content:flex-end}.icon-btn{width:32px;height:32px;border:1px solid var(--border);border-radius:8px;background:white;color:var(--navy);display:grid;place-items:center}.icon-btn:hover{border-color:var(--teal);color:var(--teal)}.danger-ghost:hover{border-color:var(--danger);color:var(--danger)}.compact-metrics .card{padding:17px 19px}.compact-metrics .metric-value{font-size:22px}.text-link{color:var(--navy);font-weight:750;font-size:13px;text-decoration:none}.text-link:hover{color:var(--teal)}.health-next{display:grid;grid-gap:5px;gap:5px;padding:13px;background:#eef8f6;border-radius:10px;font-size:13px}.trend{min-height:215px;display:grid;grid-template-rows:auto 1fr;grid-gap:16px;gap:16px}.trend-legend{display:flex;gap:16px;font-size:12px;color:var(--muted)}.trend-legend span{display:flex;align-items:center;gap:6px}.trend-legend i{width:8px;height:8px;border-radius:50%;display:block}.income-bar,.income-dot{background:var(--teal)}.expense-bar,.expense-dot{background:#dce3eb}.trend-columns{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px;align-items:end}.trend-month{display:grid;grid-gap:7px;gap:7px;text-align:center;font-size:12px;min-width:0}.trend-bars{height:130px;display:flex;align-items:flex-end;justify-content:center;gap:6px;border-bottom:1px solid var(--border)}.trend-bars span{width:min(28px,35%);min-height:2px;border-radius:5px 5px 0 0}.trend-month small{overflow:hidden;text-overflow:ellipsis}.spending-bars{display:grid;grid-gap:10px;gap:10px}.spending-bars .row{padding:6px 0}.goal-snapshot+.goal-snapshot{margin-top:18px;border-top:1px solid var(--border);padding-top:10px}.goal-snapshot p{margin-bottom:0}.nw-trend{color:var(--teal)}.nw-trend svg{width:100%;height:180px;display:block}.nw-trend .row{color:var(--text)}.notice{position:fixed;right:24px;bottom:24px;z-index:40;background:var(--ink);color:white;padding:13px 17px;border-radius:10px;box-shadow:var(--shadow);font-size:13px}.budget-row-progress{width:min(340px,45vw);margin-top:9px}.onboard-brand{display:grid;grid-gap:3px;gap:3px;margin-bottom:18px}.onboard-brand span{color:var(--teal);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.14em}.onboard-brand b{color:var(--ink);font-size:28px;letter-spacing:.08em}.onboard-brand small{color:var(--muted);font-size:13px;font-weight:750;text-transform:uppercase;letter-spacing:.13em}.welcome-screen{display:grid;grid-gap:20px;gap:20px}.welcome-screen .onboard-brand,.welcome-screen .welcome-copy p{margin-bottom:0}.welcome-copy{display:grid;grid-gap:8px;gap:8px}.privacy-note{margin:2px 0 0;color:var(--navy);font-size:13px;font-weight:750}.language-picker{border:0;padding:0;margin:0}.language-picker legend{margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.language-picker>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}.language-picker button{min-height:44px;border:1px solid var(--border);border-radius:10px;background:white;color:var(--ink);font-weight:750}.language-picker button.selected{border-color:var(--teal);background:#e9f7f5;box-shadow:inset 0 -3px 0 var(--teal)}.welcome-paths{margin-top:2px}.mobile-brand{display:none}.loading-brand{display:grid;justify-items:center;grid-gap:4px;gap:4px;color:var(--ink)}.loading-brand b{font-size:24px;letter-spacing:.1em}.loading-brand span{color:var(--teal);font-size:12px;font-weight:850;letter-spacing:.12em;text-transform:uppercase}.loading-brand small{margin-top:12px;color:var(--muted)}.onboard-card{border:1px solid rgba(255,255,255,.8)}.mobile-more-backdrop,.mobile-nav{display:none}.modal{position:fixed;inset:0;background:#07122d99;display:grid;place-items:center;padding:20px;z-index:30}.modal-card{width:min(620px,100%);max-height:90vh;overflow:auto;background:white;border-radius:17px;padding:24px;overscroll-behavior:contain}.onboarding{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 80% 10%,#daf5f1,transparent 35%),var(--bg)}.onboard-card{width:min(680px,100%);background:white;padding:40px;border-radius:22px;box-shadow:0 25px 70px #16295418}.stepper{display:flex;gap:6px;margin-bottom:34px}.stepper span{height:5px;flex:1 1;border-radius:5px;background:#e9edf2}.stepper span.on{background:var(--teal)}.choice-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.choice{border:1px solid var(--border);border-radius:12px;padding:18px;text-align:left;background:white;color:var(--text)}.choice.selected{border-color:var(--teal);box-shadow:0 0 0 2px #18a99925}.bar{height:22px;background:#edf1f5;border-radius:6px;overflow:hidden;display:flex}.bar span{background:var(--teal)}@media (max-width:1100px){.kpis{grid-template-columns:repeat(3,1fr)}.two{grid-template-columns:1fr}.main{padding:26px}.filter-grid{grid-template-columns:1fr 1fr}}@media (max-width:900px){.sidebar{display:none}.main{margin:0;padding:max(22px,env(safe-area-inset-top)) 16px calc(102px + env(safe-area-inset-bottom))}.mobile-brand{display:flex;align-items:baseline;gap:8px;margin-bottom:18px;color:var(--ink)}.mobile-brand b{font-size:16px;letter-spacing:.08em}.mobile-brand span{color:var(--teal);font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}.topbar .eyebrow{display:none}.topbar{display:block}.kpis,.three{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:minmax(0,1fr)}.field-span-2{grid-column:auto}.card-head{display:grid;grid-template-columns:minmax(0,1fr);align-items:flex-start;grid-gap:14px;gap:14px;position:relative;z-index:2}.card-head>.actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));position:relative;z-index:3}.card-head>.actions .btn{width:100%}.filter-grid{grid-template-columns:1fr}.table-wrap{margin-left:-17px;margin-right:-17px;padding:0 17px}table{min-width:760px}td:last-child,th:last-child{position:-webkit-sticky;position:sticky;right:0;z-index:1;background:white;box-shadow:-10px 0 14px rgba(11,23,57,.06)}th:last-child{background:var(--surface-subtle)}.budget-row-progress{width:min(260px,65vw)}.budget-category-row{flex-wrap:wrap}.budget-category-row>.actions,.budget-category-row>div:first-child{width:100%}.budget-category-row>.actions{display:grid;grid-template-columns:auto 1fr 120px;align-items:center}.topbar>.actions{width:100%;grid-template-columns:minmax(0,1fr) auto;margin-top:16px}.period-controls{grid-template-columns:minmax(0,1fr) minmax(88px,.65fr)}.modal{display:block;overflow-y:auto;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.modal-card{max-height:none;min-height:calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom));padding:20px}.modal-card>.actions{display:grid;grid-template-columns:1fr 1fr;position:-webkit-sticky;position:sticky;bottom:env(safe-area-inset-bottom);z-index:3;background:white;padding:12px 0}.modal-card>.actions .btn{width:100%}.mobile-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;bottom:0;left:0;right:0;background:white;border-top:1px solid var(--border);z-index:20;padding:6px 5px max(6px,env(safe-area-inset-bottom))}.mobile-nav a,.mobile-nav button{font-size:10px;text-decoration:none;color:var(--muted);display:grid;justify-items:center;grid-gap:3px;gap:3px;min-height:48px;align-content:center;border:0;border-radius:12px;background:transparent;padding:5px 3px;font-weight:650}.mobile-nav :is(a,button).active{color:var(--ink);background:#e9f7f5;box-shadow:inset 0 -3px 0 var(--teal);font-weight:850}@media (max-width:340px){.mobile-nav a,.mobile-nav button{font-size:9px;padding-inline:1px}}.mobile-more-backdrop{display:flex;align-items:flex-end;position:fixed;inset:0;z-index:25;background:#07122d66;padding:16px 12px calc(76px + env(safe-area-inset-bottom))}.mobile-more-menu{width:100%;max-height:min(70dvh,520px);overflow-y:auto;background:white;border-radius:18px;padding:16px;box-shadow:0 22px 60px #07122d33}.mobile-more-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:2px 2px 12px}.mobile-more-heading div{display:grid;grid-gap:3px;gap:3px}.mobile-more-heading span{color:var(--muted);font-size:12px}.mobile-more-menu>a{min-height:52px;display:grid;grid-template-columns:24px 1fr auto;align-items:center;grid-gap:11px;gap:11px;padding:12px;color:var(--ink);text-decoration:none;border-radius:12px;font-weight:750}.mobile-more-menu>a.active{background:#e9f7f5;box-shadow:inset 3px 0 0 var(--teal)}.more-chevron{transform:rotate(-90deg);color:var(--muted)}.title{font-size:26px}.choice-grid{grid-template-columns:1fr}}@media (max-width:430px){.form-grid,.kpis,.three{grid-template-columns:1fr}.card{padding:17px}.onboard-card{padding:24px 18px}.onboarding{padding:12px}.welcome-screen{gap:13px}.welcome-screen .onboard-brand b{font-size:25px}.welcome-screen .title{font-size:24px}.onboard-card .stepper{margin-bottom:22px}.welcome-paths .choice{padding:14px}.onboard-card>.actions{margin-top:24px!important}.topbar>.actions{grid-template-columns:minmax(0,1fr)}.topbar>.actions>.btn{width:100%}}