:root{color:#151b2d;background:radial-gradient(circle at top left,rgb(255 205 112 / 28%),transparent 34rem),linear-gradient(135deg,#edf6f3,#f5f1ff 48%,#fff7e8);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--ink: #151b2d;--muted: #697386;--paper: #ffffff;--surface: #f8faf7;--line: #dce4e8;--teal: #087f72;--teal-dark: #064a43;--yellow: #f0a51f;--rose: #dd4b5f;--blue: #2f6fdd;--green: #1c9b63;--violet: #7b4ee6;--orange: #f47b20;--shadow: 0 18px 45px rgb(21 27 45 / 13%)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}button,input,select{font:inherit}button{align-items:center;border-radius:8px;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;min-height:2.5rem}.button-primary,.button-secondary{gap:.45rem;padding:.6rem .8rem}.button-primary{background:var(--teal);border:1px solid var(--teal-dark);color:#fff}.button-secondary{background:var(--paper);border:1px solid var(--line);color:var(--teal-dark)}.button-small{font-size:.85rem;min-height:2.2rem;padding:.45rem .6rem}.button-full{justify-content:center;width:100%}a{color:inherit;text-decoration:none}main{margin:0 auto;max-width:1220px;padding:1rem}.start-screen{display:grid;min-height:100vh;max-width:none;padding:clamp(1rem,3vw,2rem);place-items:center}.start-hero{align-items:stretch;background:linear-gradient(135deg,#0d4038f0,#18231fe5),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220' viewBox='0 0 220 220'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.12' stroke-width='2'%3E%3Cpath d='M20 60h180M20 110h180M20 160h180M60 20v180M110 20v180M160 20v180'/%3E%3C/g%3E%3Cpath d='M42 166c38-82 96-82 136 0' fill='none' stroke='%23d99b25' stroke-opacity='.42' stroke-width='12'/%3E%3C/svg%3E");border-radius:8px;box-shadow:var(--shadow);color:#fff;display:grid;gap:2rem;grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr);max-width:1120px;min-height:min(720px,calc(100vh - 4rem));overflow:hidden;padding:clamp(1.25rem,4vw,3rem);width:100%}.start-copy{align-content:center;display:grid;justify-items:start}.brand{align-items:center;color:#fff;display:inline-flex;font-size:1.35rem;font-weight:900;gap:.75rem}.brand-compact{color:var(--ink);font-size:1.2rem}.brand-symbol{align-items:center;background:linear-gradient(135deg,var(--yellow),var(--orange));border:2px solid rgb(255 255 255 / 38%);border-radius:50%;color:#151b2d;display:inline-grid;height:3rem;justify-items:center;position:relative;width:3rem}.brand-symbol svg{height:1.45rem;width:1.45rem}.brand-compact .brand-symbol{background:var(--teal);border-color:#151b2d14;color:#fff;height:2.35rem;width:2.35rem}.brand-compact .brand-symbol svg{height:1.05rem;width:1.05rem}.start-copy h1{font-size:clamp(4rem,14vw,9rem);letter-spacing:0;line-height:.86;margin:2.5rem 0 .75rem}.tagline{color:#ffffffd1;font-size:clamp(1.45rem,3vw,2.4rem);font-weight:800;margin-bottom:1rem}.start-copy>p:not(.tagline,.start-warning){color:#ffffffd1;font-size:1.12rem;line-height:1.65;max-width:670px}.start-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.primary-action,.secondary-action{border:1px solid transparent;gap:.5rem;padding:.75rem 1rem}.primary-action{background:var(--yellow);color:#201600}.secondary-action{background:#ffffff1a;border-color:#ffffff47;color:#fff}.primary-action:disabled{cursor:not-allowed;opacity:.58}.start-warning{background:#bf5b5533;border:1px solid rgb(255 255 255 / 18%);border-radius:8px;color:#fff;font-weight:800;line-height:1.45;margin-top:1rem;padding:.75rem}.start-panel{align-self:end;background:#fffffff2;border:1px solid rgb(255 255 255 / 35%);border-radius:8px;color:var(--ink);display:grid;gap:.8rem;padding:1rem}.start-panel div{border-bottom:1px solid var(--line);display:grid;gap:.2rem;padding-bottom:.8rem}.start-panel div:last-child{border-bottom:0;padding-bottom:0}.start-panel strong,.start-panel span{display:block}.start-panel span{color:var(--muted);line-height:1.4}.workspace{display:grid;gap:1rem}.workspace-header,.workspace-pinned-controls,.dashboard-page{background:#ffffffeb;border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #18231f12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.workspace-header{display:grid;gap:.75rem;padding:1rem}.workspace-header-compact{padding:.8rem 1rem}.workspace-pinned-controls{display:grid;gap:.6rem;padding:.75rem;position:sticky;top:0;z-index:20}.workspace-topline,.workspace-stats,.dashboard-intro{align-items:center;display:flex;gap:1rem;justify-content:space-between}.workspace-tools{align-items:center;display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.secondary-tool,.icon-button{background:var(--surface);border:1px solid var(--line);color:var(--ink);gap:.4rem;padding:.5rem .7rem}.icon-button{border-radius:999px;min-height:2.25rem;padding:0;width:2.25rem}.workspace-stats{align-items:end;display:grid;gap:.75rem;grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}.workspace-stat{border:1px solid var(--line);border-left:5px solid var(--teal);border-radius:8px;min-height:6.25rem;padding:.85rem}.workspace-stat-balance{background:#f7f4ea;border-left-color:var(--teal)}.workspace-stat-bills{background:#edf7f5;border-left-color:var(--blue)}.workspace-stat p,.dashboard-intro p,.page-title p{color:var(--muted);font-size:.75rem;font-weight:900;letter-spacing:0;margin-bottom:.3rem;text-transform:uppercase}.workspace-stat strong{display:block;font-size:clamp(1.45rem,4vw,2.55rem);line-height:1}.workspace-stat span{color:var(--muted);display:block;font-size:.8rem;font-weight:800;line-height:1.35;margin-top:.25rem}.workspace-cadence{justify-self:stretch}.workspace-pinned-controls .segmented{background:var(--surface);border-color:var(--line);margin-top:0;width:100%}.workspace-pinned-controls .segmented button{color:var(--teal-dark)}.workspace-pinned-controls .segmented button.selected{background:var(--teal);color:#fff}.workspace-nav{display:grid;gap:.5rem;grid-template-columns:repeat(5,minmax(0,1fr))}.workspace-nav button,.dashboard-intro button{background:var(--surface);border:1px solid var(--line);color:var(--ink);gap:.45rem;min-width:0;padding:.65rem .7rem}.workspace-nav button[aria-current=page],.dashboard-intro button{background:var(--teal);border-color:var(--teal-dark);color:#fff}.workspace-nav svg,.dashboard-intro svg,.start-actions svg{flex:0 0 auto;height:1rem;width:1rem}.workspace-page{display:grid;gap:1rem}.page-title{align-items:center;display:flex;gap:.75rem;padding:.25rem .1rem}.page-title>svg{background:#416fa821;border-radius:8px;color:var(--blue);height:2.75rem;padding:.65rem;width:2.75rem}.page-title h1{font-size:clamp(1.6rem,4vw,2.35rem);line-height:1.05;margin-bottom:0}.dashboard-page{display:grid;gap:1rem;padding:1rem}.page-action-bar{align-items:center;background:linear-gradient(135deg,#087f721a,#7b4ee61a),var(--paper);border:1px solid var(--line);border-radius:8px;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto;margin-bottom:1rem;padding:1rem}.page-action-bar h3,.page-action-bar p{margin-bottom:0}.page-action-bar p{color:var(--muted);line-height:1.45;margin-top:.3rem}.page-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.page-secondary-actions{display:flex;flex-wrap:wrap;gap:.45rem}.info-pill{background:#2f6fdd1f;border:1px solid rgb(47 111 221 / 22%);border-radius:999px;color:var(--blue);display:inline-flex;font-weight:900;padding:.55rem .75rem}.info-pill-strong{background:#f0a51f2e;border-color:#f0a51f4d;color:#8a5600}.dialog-backdrop{align-items:center;background:#151b2d94;display:grid;top:0;right:0;bottom:0;left:0;padding:1rem;position:fixed;z-index:50}.app-dialog{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 28px 80px #151b2d47;margin:0 auto;max-height:min(760px,calc(100vh - 2rem));max-width:640px;overflow:auto;padding:1rem;width:min(100%,640px)}.dialog-heading{align-items:start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.dialog-heading p{color:var(--muted);font-size:.75rem;font-weight:900;margin-bottom:.25rem;text-transform:uppercase}.quick-start-card{display:grid;gap:1rem}.quick-start-card p{color:var(--muted);font-size:1.05rem;line-height:1.6;margin-bottom:0}.quick-start-progress{display:flex;gap:.4rem}.quick-start-progress button{background:var(--line);border:0;border-radius:999px;min-height:.55rem;padding:0;width:2rem}.quick-start-progress button[aria-pressed=true]{background:var(--teal)}.dialog-actions{display:flex;gap:.55rem;justify-content:space-between}.dialog-actions button:not(.primary-action){background:var(--surface);border-color:var(--line);color:var(--ink)}.dialog-actions button:disabled{cursor:not-allowed;opacity:.48}.back-to-top{background:var(--teal);border:1px solid var(--teal-dark);bottom:1rem;box-shadow:0 14px 30px #151b2d2e;color:#fff;min-height:2.75rem;padding:0;position:fixed;right:1rem;width:2.75rem;z-index:30}.back-to-top svg{height:1.15rem;width:1.15rem}.hero{background:linear-gradient(135deg,#1f6f68e8,#17211fe0),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cpath d='M0 90h180M90 0v180' stroke='%23fffdf6' stroke-opacity='.16' stroke-width='2'/%3E%3Cpath d='M24 130c34-74 96-74 132 0' fill='none' stroke='%23d69e2e' stroke-opacity='.32' stroke-width='10'/%3E%3C/svg%3E");border-radius:8px;box-shadow:var(--shadow);color:#fffdf6;min-height:430px;overflow:hidden;padding:1.25rem}nav{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}nav a{border:1px solid rgb(255 253 246 / 34%);border-radius:999px;color:#fffdf6;font-size:.9rem;padding:.45rem .75rem}.hero-grid{align-items:end;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr) minmax(280px,340px);min-height:350px;padding:2.5rem .75rem .75rem}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.6rem,7vw,5.5rem);line-height:.95;margin-bottom:1.1rem;max-width:760px}.hero-copy>p{color:#fffdf6e0;font-size:1.12rem;line-height:1.6;max-width:690px}.segmented{align-items:center;background:#fffdf61f;border:1px solid rgb(255 253 246 / 28%);border-radius:8px;display:inline-grid;gap:.25rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:1.4rem;padding:.25rem}.segmented button{background:transparent;border:0;color:#fffdf6;padding:.55rem .8rem}.segmented button.selected{background:#fffdf6;color:var(--teal-dark)}.segmented-compact{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:0}.snapshot{background:#fffdf6f5;border-radius:8px;color:var(--ink);padding:1.35rem}.snapshot span,.dashboard-value p,.dashboard-value span,.dashboard-group-heading span,.dashboard-balance span,.dashboard-balance p,.dashboard-month-card>span,.dashboard-month-card small,.dashboard-month-grid span,.formula-step span,.section-heading p,.rule-note,.data-card span,.data-card small,.payroll-savings p,.mini-row small{color:var(--muted)}.snapshot strong{display:block;font-size:2rem;margin-top:.25rem}.snapshot p{line-height:1.45;margin:1rem 0 0}.dashboard-setup-panel{background:#fff7e8;border:1px solid rgb(240 165 31 / 34%);border-left:6px solid var(--yellow);border-radius:8px;display:grid;gap:1rem;grid-template-columns:minmax(0,.6fr) minmax(0,1fr);padding:1rem}.dashboard-setup-copy p{color:#8a5600;font-size:.75rem;font-weight:900;margin-bottom:.3rem;text-transform:uppercase}.dashboard-setup-copy h3{font-size:1.15rem;margin-bottom:.3rem}.dashboard-setup-copy span{color:var(--muted);display:block;font-weight:800;line-height:1.45}.dashboard-setup-actions{display:grid;gap:.55rem;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-setup-actions button{align-items:start;background:var(--paper);border:1px solid var(--line);color:var(--ink);display:grid;gap:.5rem;grid-template-columns:auto minmax(0,1fr);justify-content:start;min-height:4.2rem;padding:.65rem;text-align:left}.dashboard-setup-actions button.complete{background:#1c9b6314}.dashboard-setup-actions svg{color:var(--yellow);height:1.15rem;margin-top:.15rem;width:1.15rem}.dashboard-setup-actions .complete svg{color:var(--green)}.dashboard-setup-actions strong,.dashboard-setup-actions small{display:block}.dashboard-setup-actions small{color:var(--muted);font-size:.78rem;line-height:1.3;margin-top:.15rem}.dashboard-balance,.dashboard-month-card,.dashboard-group,.alert-panel,.section{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #17211f12}.dashboard-balance{background:#f7f4ea;border-left:6px solid var(--teal);display:grid;gap:.3rem;justify-items:center;min-height:13rem;padding:1.1rem;text-align:center}.dashboard-balance-negative{background:#dd4b5f14;border-left-color:var(--rose)}.dashboard-balance span,.dashboard-month-card>span,.dashboard-group-heading p,.dashboard-value p,.formula-step span{font-size:.75rem;font-weight:900;letter-spacing:0;margin-bottom:.2rem;text-transform:uppercase}.dashboard-balance h3,.dashboard-month-card h3{font-size:1.05rem;margin-bottom:0}.dashboard-balance strong{display:block;font-size:clamp(2.25rem,7vw,4rem);line-height:.95}.dashboard-balance p{font-weight:800;line-height:1.4;margin-bottom:0}.dashboard-month-card{display:grid;gap:.85rem;padding:1rem}.dashboard-month-grid{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-month-grid div{background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;gap:.2rem;padding:.75rem}.dashboard-month-grid strong{display:block;font-size:1.4rem}.dashboard-month-grid small{font-weight:800;line-height:1.35}.cashflow-formula{align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;gap:.45rem;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);padding:.75rem}.formula-step{background:var(--paper);border:1px solid var(--line);border-radius:8px;display:grid;gap:.15rem;justify-items:start;min-width:0;padding:.65rem;text-align:left}button.formula-step{color:var(--ink);min-height:0}.formula-step-action{cursor:pointer}.formula-step-action:hover,.formula-step-action:focus-visible{background:#f7f4ea;outline:2px solid rgb(31 111 104 / 16%)}.formula-step em{color:var(--teal);font-size:.74rem;font-style:normal;font-weight:900}.formula-step strong{display:block;font-size:1rem}.formula-operator{align-self:center;color:var(--muted);font-size:1.2rem;font-weight:900}.formula-step-income{border-left:4px solid var(--green)}.formula-step-deduction{border-left:4px solid var(--blue)}.formula-step-expense{border-left:4px solid var(--rose)}.formula-step-savings{border-left:4px solid var(--blue)}.formula-step-remaining{border-left:4px solid var(--teal);justify-items:center;text-align:center}.dashboard-groups{align-items:start;display:grid;gap:1rem;grid-template-columns:repeat(12,minmax(0,1fr))}.dashboard-group{border-top:4px solid var(--teal);display:grid;gap:.85rem;padding:1rem}.dashboard-group-income{background:#1c9b630f;border-top-color:var(--green);grid-column:span 5}.dashboard-group-deduction{background:#2f6fdd0f;border-top-color:var(--blue);grid-column:span 3}.dashboard-group-expense{background:#dd4b5f0f;border-top-color:var(--rose);grid-column:span 7}.dashboard-group-remaining{background:#087f720f;border-top-color:var(--teal);grid-column:span 5}.dashboard-group-extra{background:#7b4ee60f;border-top-color:var(--violet);grid-column:span 4}.dashboard-group-heading p{margin-bottom:.25rem}.dashboard-group-heading span{display:block;font-size:.86rem;font-weight:800;line-height:1.4}.dashboard-group-body{display:grid;gap:.65rem}.dashboard-value,.alert-panel{align-items:center;background:#ffffffc2;border:1px solid var(--line);border-radius:8px;display:flex;gap:.8rem;min-height:6.75rem;padding:.85rem}.dashboard-value-icon,.alert-panel>svg{align-items:center;border-radius:8px;display:flex;flex:0 0 auto;height:2.75rem;justify-content:center;width:2.75rem}.dashboard-value svg{height:1.35rem;width:1.35rem}.dashboard-value p,.alert-panel p{font-size:.85rem;margin-bottom:.25rem}.dashboard-value strong,.alert-panel strong{display:block;font-size:1.35rem}.dashboard-value span{display:block;font-size:.82rem;line-height:1.35;margin-top:.25rem}.section-total{align-items:center;background:#1f6f681a;border:1px solid rgb(31 111 104 / 22%);border-radius:8px;display:grid;gap:.25rem;margin-bottom:.85rem;padding:.85rem}.section-total span{color:var(--muted);font-size:.8rem;font-weight:900;text-transform:uppercase}.section-total strong{display:block;font-size:1.6rem}.section-total small{color:var(--muted);font-weight:800}.expense-month-summary{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #17211f12;display:grid;gap:.85rem;margin-bottom:.85rem;padding:1rem}.expense-overview-grid{align-items:stretch;display:grid;gap:.85rem;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);margin-bottom:.85rem}.expense-overview-grid .page-action-bar,.expense-overview-grid .expense-month-summary{margin-bottom:0}.expense-overview-grid .page-action-bar{align-content:start;grid-template-columns:1fr}.expense-overview-grid .page-actions{align-items:start;display:grid;justify-content:stretch}.expense-overview-grid .page-secondary-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.expense-month-total{background:#edf7f5;border:1px solid rgb(31 111 104 / 22%);border-left:5px solid var(--teal);border-radius:8px;padding:.85rem}.expense-month-total span,.expense-month-math span{color:var(--muted);display:block;font-size:.78rem;font-weight:900;min-height:2.6em;text-transform:uppercase}.expense-month-total strong{display:block;font-size:1.8rem;margin-top:.15rem}.expense-month-total small{color:var(--muted);display:block;font-weight:800;margin-top:.15rem}.expense-month-math{align-items:stretch;display:grid;gap:.45rem;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr)}.expense-month-math div{align-content:start;background:var(--surface);border:1px solid var(--line);border-radius:8px;display:grid;gap:.2rem;grid-template-rows:auto auto 1fr;padding:.75rem}.expense-month-math b{align-self:center;color:var(--muted);font-size:1.15rem}.expense-month-math strong{display:block;font-size:1.18rem}.expense-month-math small{color:var(--muted);font-weight:800;line-height:1.35}.dashboard-value-income .dashboard-value-icon{background:#4e7d5724;color:var(--green)}.dashboard-value-deduction .dashboard-value-icon{background:#496d9e24;color:var(--blue)}.dashboard-value-expense .dashboard-value-icon{background:#b85b5b24;color:var(--rose)}.dashboard-value-savings .dashboard-value-icon{background:#2f6fdd24;color:var(--blue)}.dashboard-value-remaining .dashboard-value-icon{background:#1f6f6824;color:var(--teal)}.dashboard-value-extra .dashboard-value-icon{background:#78609c29;color:var(--violet)}.alert-panel>svg{background:#b85b5b24;color:var(--rose);padding:.65rem}.section{margin-bottom:1rem;padding:1rem}.setup-guide{background:var(--paper);border:1px solid var(--line);border-radius:8px;box-shadow:0 10px 24px #17211f12;display:grid;gap:1rem;margin-bottom:1rem;padding:1rem}.setup-guide-collapsed{margin-top:1rem}.setup-guide-collapsed summary{cursor:pointer;display:block;list-style:none}.setup-guide-collapsed summary::-webkit-details-marker{display:none}.setup-guide-collapsed .setup-summary{margin-bottom:0}.setup-guide-collapsed .setup-summary:after{color:var(--teal-dark);content:"Open setup";font-size:.82rem;font-weight:900;margin-left:auto}.setup-guide-collapsed[open] .setup-summary{margin-bottom:1rem}.setup-guide-collapsed[open] .setup-summary:after{content:"Close setup"}.setup-summary{align-items:center;display:flex;gap:1rem;justify-content:space-between}.setup-summary p{color:var(--muted);font-size:.75rem;font-weight:800;margin-bottom:.35rem;text-transform:uppercase}.save-state{align-items:center;background:#1f6f681f;border-radius:999px;color:var(--teal-dark);display:inline-flex;font-size:.85rem;font-weight:800;gap:.4rem;padding:.45rem .7rem;white-space:nowrap}.save-state-loading,.save-state-saving{background:#496d9e21;color:var(--blue)}.save-state-failed,.save-state-offline{background:#b85b5b24;color:var(--rose)}.save-state-view-only{background:#78609c24;color:var(--violet)}.save-state svg{height:1rem;width:1rem}.persistence-panel{align-items:center;background:#f7f4ea;border:1px solid var(--line);border-radius:8px;display:grid;gap:1rem;grid-template-columns:minmax(0,.8fr) minmax(280px,1.2fr);padding:.9rem}.persistence-panel h3,.persistence-panel p{margin-bottom:0}.persistence-panel p,.view-only-note{color:var(--muted);line-height:1.45}.persistence-actions{display:flex;flex-wrap:wrap;gap:.55rem;justify-content:flex-end}.persistence-actions button{align-items:center;background:var(--teal);border:1px solid var(--teal);border-radius:8px;color:#fff;display:inline-flex;gap:.4rem;min-height:2.4rem;padding:.5rem .7rem}.persistence-actions button:disabled{background:#ded8c8;border-color:#ded8c8;color:var(--muted);cursor:not-allowed}.persistence-actions .danger-button{background:transparent;border-color:#b85b5b66;color:var(--rose)}.persistence-actions svg{height:1rem;width:1rem}.view-only-note{align-self:center;font-size:.88rem;font-weight:800}.view-only-mode .workspace-page section:not(.setup-guide) button,.view-only-mode .workspace-page section:not(.setup-guide) input,.view-only-mode .workspace-page section:not(.setup-guide) select{opacity:.62;pointer-events:none}.setup-steps{display:grid;gap:.75rem;grid-template-columns:repeat(5,minmax(0,1fr))}.setup-step{align-items:start;background:#f7f4ea;border:1px solid var(--line);border-radius:8px;display:grid;gap:.6rem;grid-template-columns:auto minmax(0,1fr);min-height:5.25rem;padding:.85rem}.setup-step svg{color:var(--muted);height:1.25rem;margin-top:.15rem;width:1.25rem}.setup-step svg.complete{color:var(--green)}.setup-step strong,.setup-step small{display:block}.setup-step small{color:var(--muted);line-height:1.35;margin-top:.2rem}.section-heading{align-items:end;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1rem}.chart-heading{align-items:start}.chart-controls{align-items:end;display:grid;gap:.65rem;justify-items:end}.chart-controls .segmented{background:#f7f4ea;border-color:var(--line)}.chart-controls .segmented button{color:var(--teal-dark)}.chart-controls .segmented button.selected{background:var(--teal);color:#fff}.check-toggle{align-items:center;color:var(--muted);display:flex;font-size:.9rem;font-weight:800;gap:.45rem}.check-toggle input{accent-color:var(--teal);height:1rem;width:1rem}.section-heading p{font-size:.75rem;font-weight:800;margin-bottom:.35rem;text-transform:uppercase}h2{font-size:1.35rem;margin-bottom:0}h3{font-size:1rem;margin-bottom:.5rem}.rule-note{line-height:1.5;max-width:760px}.category-grid,.data-grid,.expense-grid,.chart-grid,.form-grid,.pay-calendar{display:grid;gap:.85rem}.category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.expense-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,22rem),1fr))}.chart-grid{align-items:center;grid-template-columns:minmax(240px,.42fr) minmax(0,.58fr)}.form-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:.85rem}.form-grid label{display:grid;gap:.35rem}.form-grid label span{color:var(--muted);font-size:.82rem;font-weight:800}.form-grid input{background:#f7f4ea;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:2.75rem;padding:.65rem .75rem;text-align:left;width:100%}.input-affix{align-items:center;background:#f7f4ea;border:1px solid var(--line);border-radius:8px;display:grid;min-height:2.75rem;overflow:hidden}.input-affix-prefix{grid-template-columns:auto minmax(0,1fr)}.input-affix-suffix{grid-template-columns:minmax(0,1fr) auto}.input-affix>span{color:var(--muted);font-size:.95rem;font-weight:900;padding:0 .75rem}.input-affix input{background:transparent;border:0;min-height:calc(2.75rem - 2px);padding-left:0}.input-affix-suffix input{padding-left:.75rem;padding-right:0}.input-affix input:focus{outline:none}.input-affix:focus-within{border-color:var(--teal);outline:2px solid rgb(31 111 104 / 18%)}.input-affix:has(input[aria-invalid=true]){border-color:var(--rose)}.filter-bar,.manager-grid{display:grid;gap:.85rem;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:.85rem}.filter-bar label,.manager-add{display:grid;gap:.35rem}.filter-bar label span{color:var(--muted);font-size:.82rem;font-weight:800}.filter-bar select,.filter-bar input,.manager-add input,.expense-editor input,.expense-editor select,.allowance-panel input{background:var(--paper);border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:2.5rem;padding:.55rem .65rem;width:100%}.allowance-panel{align-items:center;background:#78609c1a;border:1px solid rgb(120 96 156 / 24%);border-radius:8px;display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) minmax(220px,.32fr);margin-bottom:.85rem;padding:1rem}.allowance-panel p,.allowance-panel small,.allowance-panel label span{color:var(--muted)}.allowance-panel p{font-size:.8rem;font-weight:800;margin-bottom:.25rem;text-transform:uppercase}.allowance-panel strong{display:block;font-size:1.45rem;margin-bottom:.25rem}.allowance-panel label{display:grid;gap:.35rem}.inline-fields{display:grid;gap:.65rem;grid-template-columns:minmax(0,1fr) minmax(120px,.7fr);margin-top:.8rem}.inline-fields label{display:grid;gap:.3rem;min-width:0}.inline-fields label span{align-items:center;color:var(--muted);display:inline-flex;font-size:.78rem;font-weight:800;gap:.25rem}.inline-fields label span svg{height:.9rem;width:.9rem}.inline-fields input,.inline-fields select{background:var(--paper);border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:2.35rem;min-width:0;padding:.45rem .55rem;width:100%}.stacked-fields{display:grid;gap:.65rem;margin-top:.8rem}.full-field,.website-url-field label{display:grid;gap:.3rem;min-width:0}.full-field span,.website-url-field label span{align-items:center;color:var(--muted);display:inline-flex;font-size:.78rem;font-weight:800;gap:.25rem}.full-field span svg,.website-url-field label span svg{height:.9rem;width:.9rem}.website-url-field{align-items:end;display:grid;gap:.65rem;grid-template-columns:minmax(0,1fr) auto}.full-field input,.website-url-field input{background:var(--paper);border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:2.35rem;min-width:0;padding:.45rem .55rem;width:100%}.website-open-link{align-items:center;border:1px solid var(--teal);border-radius:8px;color:var(--teal);display:inline-flex;font-size:.82rem;font-weight:900;gap:.35rem;justify-content:center;min-height:2.35rem;padding:0 .75rem;text-decoration:none}.website-open-link:hover,.website-open-link:focus-visible{background:#1f6f681a;outline:none}.website-open-link svg{height:1rem;width:1rem}.data-card input,.data-card select{background:var(--paper);border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:2.35rem;min-width:0;padding:.45rem .55rem;width:100%}.switch-row{align-items:center;color:var(--muted);display:inline-flex;font-size:.78rem;font-weight:800;gap:.35rem;white-space:nowrap}.switch-row input{accent-color:var(--green);height:.95rem;min-height:.95rem;min-width:.95rem;padding:0;width:.95rem}.switch-row-block{align-content:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;min-height:2.5rem;padding:.55rem .65rem}.switch-row-compact{align-self:end;box-sizing:border-box;display:inline-flex;justify-content:start;min-height:2rem;padding:.3rem .5rem;width:fit-content}.inline-fields .switch-row-compact{display:inline-flex}.form-grid input:focus{border-color:var(--teal);outline:2px solid rgb(31 111 104 / 18%)}.form-grid input[aria-invalid=true]{border-color:var(--rose)}.input-affix input:focus,.input-affix input[aria-invalid=true]{border-color:transparent;outline:none}.expense-editor input[aria-invalid=true]{border-color:var(--rose)}.pay-calendar{grid-template-columns:repeat(13,minmax(0,1fr));margin-top:.85rem}.calendar-legend{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.85rem}.calendar-legend span{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--muted);display:inline-flex;font-size:.82rem;font-weight:900;gap:.35rem;padding:.35rem .6rem}.legend-dot{border-radius:999px;display:inline-block;height:.65rem;width:.65rem}.legend-dot.past{background:#aab3bd}.legend-dot.upcoming{background:var(--green)}.legend-dot.extra-upcoming{background:#6f86a6}.legend-dot.extra-past{background:#c7ced7}.pay-date{background:#f7f4ea;border:1px solid var(--line);border-radius:8px;color:var(--muted);font-size:.8rem;font-weight:800;min-height:2.35rem;padding:.55rem .35rem;text-align:center}.pay-date.past{background:#eef1f3;color:#7a8491}.pay-date.upcoming{background:#1c9b631f;border-color:#1c9b6342;color:#0f6640}.pay-date.extra.upcoming{background:#e5ebf2;border-color:#b8c5d4;color:#425b7c}.pay-date.extra.past{background:#f2f4f6;border-color:#dde2e7;color:#9aa3ad}.pay-date small{display:block;font-size:.62rem;margin-top:.15rem}.category-block,.data-card,.payroll-savings,.bill-card,.manager-panel{background:#f7f4ea;border:1px solid var(--line);border-radius:8px;padding:.95rem}.expense-category-list{display:grid;gap:.85rem;margin-bottom:.85rem}.expense-category-section{display:grid;gap:.85rem}.category-section-heading{align-items:stretch;display:grid;gap:.55rem;grid-template-columns:minmax(0,1fr) auto}.category-toggle{align-items:center;background:var(--paper);border:1px solid var(--line);color:var(--ink);display:grid;gap:.6rem;grid-template-columns:auto minmax(0,1fr) auto;padding:.75rem;text-align:left}.category-toggle span:not(.category-swatch){min-width:0;overflow-wrap:anywhere}.category-add-button{gap:.35rem;min-width:5.5rem}.category-add-button svg{height:1rem;width:1rem}.category-swatch{background:var(--swatch-color, var(--teal));border-radius:5px;display:inline-block;flex:0 0 auto;height:1rem;width:1rem}.category-choice-grid{display:grid;gap:.65rem;grid-template-columns:repeat(2,minmax(0,1fr))}.category-choice-grid button{align-items:center;background:#1f6f6812;border:1px solid color-mix(in srgb,var(--accent, var(--teal)) 32%,var(--line));color:var(--ink);display:grid;gap:.25rem .55rem;grid-template-columns:auto minmax(0,1fr);justify-items:start;min-height:4rem;padding:.75rem;text-align:left}.category-choice-grid button span:not(.category-swatch),.category-choice-grid button small{min-width:0;overflow-wrap:anywhere}.category-choice-grid button small{color:var(--muted);font-weight:800;grid-column:2}.expense-modal-form{display:grid;gap:.75rem}.expense-modal-form>label{display:grid;gap:.3rem}.expense-modal-form label span{align-items:center;color:var(--muted);display:inline-flex;font-size:.78rem;font-weight:800;gap:.25rem}.expense-modal-form input,.expense-modal-form select{background:var(--paper);border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:2.5rem;min-width:0;padding:.55rem .65rem;width:100%}.allowance-panel .input-affix,.inline-fields .input-affix,.expense-modal-form .input-affix,.expense-editor .input-affix,.data-card .input-affix{background:var(--paper);min-height:2.5rem;width:100%}.allowance-panel .input-affix input,.inline-fields .input-affix input,.expense-modal-form .input-affix input,.expense-editor .input-affix input,.data-card .input-affix input{background:transparent;border:0;min-height:calc(2.5rem - 2px);padding-left:0}.allowance-panel .input-affix input:focus,.inline-fields .input-affix input:focus,.expense-modal-form .input-affix input:focus,.expense-editor .input-affix input:focus,.data-card .input-affix input:focus{outline:none}.expense-modal-form .dialog-actions{margin-top:.25rem}.expense-editor{display:grid;gap:.75rem}.expense-editor>label{display:grid;gap:.3rem}.expense-editor label span{color:var(--muted);font-size:.78rem;font-weight:800}.form-error{background:#b85b5b1f;border-radius:8px;color:#7c2d2d;font-size:.86rem;font-weight:800;line-height:1.4;margin:0;padding:.65rem}.danger-button{background:transparent;border:1px solid rgb(184 91 91 / 40%);color:var(--rose);justify-self:start;padding:.55rem .75rem}.manager-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manager-list{display:grid;gap:.55rem;margin-bottom:.85rem}.manager-row{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:8px;display:grid;gap:.5rem;grid-template-columns:auto minmax(0,1fr) auto auto;padding:.55rem}.manager-row small{color:var(--muted)}.manager-row button{background:transparent;border:1px solid var(--line);color:var(--ink);min-height:2rem;padding:.25rem .55rem}.manager-row button:disabled{color:var(--muted);cursor:not-allowed;opacity:.55}.manager-add{grid-template-columns:minmax(0,1fr) auto}.manager-add input[type=color]{min-width:3rem;padding:.2rem}.pie-chart{align-items:center;aspect-ratio:1;background:radial-gradient(circle at 34% 28%,rgb(255 255 255 / 36%),transparent 0 25%,transparent 52%),conic-gradient(var(--chart-gradient));border-radius:50%;box-shadow:inset 0 18px 24px #ffffff2e,inset 0 -18px 28px #151b2d2e,0 16px 30px #151b2d1f;display:grid;justify-items:center;margin:0 auto;max-width:320px;position:relative;width:min(calc(100% - 5.5rem),320px)}.pie-chart:after{background:radial-gradient(circle at 35% 30%,#fff,#f8faf7 68%);box-shadow:inset 0 8px 16px #151b2d14,0 0 0 1px #151b2d0a;border-radius:50%;content:"";height:48%;position:absolute;width:48%}.pie-chart>div{position:relative;text-align:center;z-index:1}.chart-label{align-items:center;background:#ffffffe0;border:1px solid rgb(21 27 45 / 10%);border-radius:999px;color:var(--ink);display:inline-flex;font-size:.76rem;font-weight:900;gap:.2rem;left:var(--label-x);line-height:1;padding:.28rem .38rem;position:absolute;top:var(--label-y);transform:translate(-50%,-50%);z-index:2}.chart-label-outside{background:#fff;border-color:#17211f;box-shadow:0 4px 10px #151b2d2e;min-width:2.75rem}.chart-leader-lines{top:0;right:0;bottom:0;left:0;overflow:visible;pointer-events:none;position:absolute;z-index:2}.chart-leader-lines line{stroke-linecap:round;stroke-width:.75}.pie-chart span,.pie-chart strong{display:block}.pie-chart span{color:var(--muted);font-size:.82rem;font-weight:800}.pie-chart strong{font-size:1.1rem}.legend-list,.bill-list{display:grid;gap:.65rem}.legend-row{align-items:center;display:grid;gap:.6rem;grid-template-columns:auto minmax(0,1fr) auto auto}.legend-swatch{background:var(--swatch-color, var(--teal));border-radius:4px;height:1rem;width:1rem}.legend-percent{background:var(--surface);border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.78rem;font-weight:900;padding:.22rem .45rem;text-align:center}.chart-note,.negative-note{border-radius:8px;line-height:1.45;margin:.2rem 0 0;padding:.75rem}.chart-note{background:#1f6f6817;color:var(--teal-dark)}.negative-note{background:#b85b5b1f;color:#7c2d2d;font-weight:800}.bill-card{align-items:center;display:grid;gap:.8rem;grid-template-columns:auto minmax(0,1fr) auto}.bill-card h3,.bill-card p{margin-bottom:0}.bill-card p{color:var(--muted)}.bill-date{align-items:center;background:#1f6f681f;border-radius:8px;color:var(--teal);display:grid;height:3rem;justify-items:center;width:3rem}.bill-date svg{height:1rem;width:1rem}.data-card.emphasized{background:linear-gradient(135deg,#087f721a,#f0a51f1a),var(--paper);border-color:#087f7240}.color-card{border-top:5px solid var(--accent, var(--teal))}.category-chip{background:var(--chip-color, var(--teal));border-radius:999px;color:#fff!important;display:inline-flex!important;font-size:.74rem!important;font-weight:900;line-height:1;padding:.35rem .55rem}.card-topline{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-bottom:.55rem}.data-card strong{display:block;font-size:1.35rem;margin-bottom:.25rem}.data-card small{display:block;line-height:1.35}.mini-list{display:grid;gap:.55rem}.mini-row{align-items:center;display:grid;gap:.55rem;grid-template-columns:auto minmax(0,1fr) auto}.upcoming-mini-row{border:1px solid transparent;border-radius:8px;grid-template-columns:auto minmax(0,1fr) minmax(5.6rem,auto) 6.4rem;margin:-.15rem;padding:.5rem}.upcoming-mini-row strong{justify-self:end}.mini-row-attention{background:#b85b5b14;border:1px solid rgb(184 91 91 / 18%)}.mini-row svg{color:var(--teal);height:1.25rem;width:1.25rem}.mini-row small,.upcoming-mini-row small{grid-column:2 / 4}.upcoming-mini-row .status{justify-self:start}.mini-row small .status{margin-left:.35rem;vertical-align:middle}.status{border-radius:999px;display:inline-flex;font-size:.75rem;font-weight:800;padding:.25rem .55rem;white-space:nowrap}.status.active{background:#4e7d5724;color:var(--green)}.status.inactive{background:#5e696624;color:var(--muted)}.status.attention{background:#b85b5b24;color:var(--rose)}.payroll-savings{margin-top:.85rem}.payroll-savings p{line-height:1.45}@media(max-width:1040px){.start-hero,.dashboard-setup-panel,.dashboard-groups{grid-template-columns:1fr}.dashboard-group{grid-column:auto}.cashflow-formula{grid-template-columns:repeat(2,minmax(0,1fr))}.formula-operator{display:none}.hero-grid,.persistence-panel,.setup-steps,.data-grid,.expense-grid,.expense-overview-grid,.chart-grid,.form-grid,.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.pay-calendar{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(max-width:760px){.start-screen{align-items:stretch;padding:.5rem}.start-hero{min-height:calc(100vh - 1rem);padding:1rem}.start-copy{align-content:start}.start-copy h1{font-size:4.2rem;margin-top:2rem}.start-actions,.start-actions button{width:100%}.workspace-topline,.dashboard-intro,.page-action-bar{align-items:stretch;flex-direction:column}.page-action-bar{display:grid;grid-template-columns:1fr}.page-actions,.page-actions .button-primary,.page-actions .button-secondary,.dialog-actions button{justify-content:center;width:100%}.dialog-actions{flex-direction:column-reverse}.app-dialog{max-height:calc(100vh - 1rem);padding:.85rem}.workspace-stats{align-items:stretch;grid-template-columns:1fr}.workspace-stat{min-height:0;padding:.7rem}.workspace-cadence,.workspace-pinned-controls .segmented{justify-self:stretch;width:100%}.workspace-pinned-controls{gap:.45rem;margin-inline:-.15rem;padding:.45rem}.workspace-pinned-controls .segmented button{min-height:2.1rem;padding:.35rem .45rem}.workspace-nav{display:flex;flex-wrap:nowrap;gap:.35rem;overflow-x:auto;padding-bottom:.15rem;scrollbar-width:none}.workspace-nav::-webkit-scrollbar{display:none}.workspace-nav button{flex:0 0 auto;font-size:.84rem;gap:.35rem;justify-content:center;min-height:2.4rem;min-width:6.8rem;padding:.45rem .65rem;white-space:nowrap}.workspace-nav svg{display:block;height:.9rem;width:.9rem}.back-to-top{bottom:.35rem;min-height:1.9rem;right:.35rem;width:1.9rem}.back-to-top svg{height:.85rem;width:.85rem}main{padding:.5rem}.hero{min-height:auto;padding:1rem}nav{justify-content:flex-start}.hero-grid,.persistence-panel,.setup-steps,.category-grid,.category-choice-grid,.data-grid,.expense-grid,.chart-grid,.form-grid,.filter-bar,.manager-grid,.allowance-panel,.dashboard-setup-actions,.dashboard-month-grid,.dashboard-groups,.expense-overview-grid,.cashflow-formula{grid-template-columns:1fr}.dashboard-balance{min-height:0}.expense-month-math{grid-template-columns:1fr}.expense-month-math b{display:none}.pay-calendar{grid-template-columns:repeat(3,minmax(0,1fr))}.hero-grid{padding:2rem 0 0}h1{font-size:3rem}.segmented{display:grid;width:100%}.setup-summary{align-items:start;flex-direction:column}.persistence-actions{justify-content:stretch}.persistence-actions button{justify-content:center;width:100%}.chart-heading,.bill-card{align-items:stretch;grid-template-columns:1fr}.chart-controls{justify-items:stretch;width:100%}.dashboard-value,.alert-panel{min-height:98px}.mini-row{grid-template-columns:auto minmax(0,1fr)}.inline-fields,.website-url-field{grid-template-columns:1fr}.website-open-link{justify-self:start}.manager-row{grid-template-columns:auto minmax(0,1fr)}.manager-row button,.manager-row small{grid-column:2;justify-self:start}.manager-add{grid-template-columns:1fr}.mini-row strong,.mini-row small{grid-column:2}.upcoming-mini-row{grid-template-columns:auto minmax(0,1fr) minmax(4.6rem,auto) 6.1rem}.upcoming-mini-row strong{grid-column:3;grid-row:1}.upcoming-mini-row small{grid-column:2;grid-row:2}.upcoming-mini-row .status{grid-column:4;grid-row:1;justify-self:start}}
