:root{--navy:#192c42;--ink:#233249;--muted:#788394;--bg:#f5f7fa;--line:#e7ebf1;--blue:#3869d9;--teal:#208b7c;--pink:#d6538c}*{box-sizing:border-box}body{margin:0;font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:var(--ink);background:var(--bg)}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #8daef4;outline-offset:3px}aside{width:234px;background:white;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;padding:32px 20px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;font-size:24px;font-weight:750;letter-spacing:-1px;padding:0 10px 30px}.brandicon{background:var(--navy);color:white;width:40px;height:43px;display:grid;place-items:center;border-radius:12px;font-size:28px}.brand small{font-size:9px;letter-spacing:3px;margin-top:5px;color:var(--pink)}small{display:block;color:var(--muted);font-size:11px;font-weight:400;letter-spacing:0}.company{border:1px solid var(--line);border-radius:10px;display:flex;gap:9px;align-items:center;padding:12px 8px;font-size:12px;font-weight:600}.company small{margin-top:4px;font-size:9px}.avatar{background:#eef1f8;color:#567195;border-radius:50%;width:32px;height:32px;display:inline-grid;place-items:center;font-size:11px;flex-shrink:0}.navlabel{font-size:9px;letter-spacing:1.5px;color:#96a0ac;margin:33px 10px 12px}nav button{border:0;background:transparent;color:#7b8594;display:flex;gap:13px;align-items:center;width:100%;text-align:left;padding:14px;border-radius:8px;margin:4px 0;font-size:18px}nav button span{font-size:12px;font-weight:550}nav button.active{background:#edf2fd;color:var(--blue)}.sidebottom{margin-top:auto}.private{font-size:10px;color:var(--teal);padding:20px 8px}.profile{border-top:1px solid var(--line);padding:20px 0 0;display:flex;gap:12px;font-size:12px}.profile small{margin-top:5px}.shell{margin-left:234px}header{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 38px;font-size:12px;color:#8490a1}header b{margin:0 15px;color:#ced3dc}.headerRight{display:flex;gap:12px;align-items:center}.dot{width:6px;height:6px;background:var(--teal);border-radius:50%}.headerRight .avatar{margin-left:12px}main{max-width:1500px;margin:auto;padding:32px 38px}.top{display:flex;align-items:center;justify-content:space-between;gap:20px}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:650;color:var(--blue);margin:0 0 12px}h1{font-size:29px;letter-spacing:-1px;font-weight:650;margin:0}p{color:var(--muted);line-height:1.6}.top p:last-child{font-size:12px;margin:10px 0 0}.primary{border:0;background:var(--blue);color:white;border-radius:8px;padding:12px 18px;font-size:12px;font-weight:600;box-shadow:0 4px 9px #3869d915}.notice{background:#fffaf0;border:1px solid #f2e6c9;border-radius:8px;display:flex;gap:12px;padding:12px 16px;margin:25px 0;color:#a78230}.notice strong{font-size:11px;display:block;margin-bottom:4px}.notice span{font-size:10px;line-height:1.6}.sectiontitle{display:flex;justify-content:space-between;align-items:center;margin:22px 0 15px}.sectiontitle h2{font-size:16px;margin:0;letter-spacing:-.3px}.pill{border:1px solid var(--line);padding:7px 11px;border-radius:6px;background:white;font-size:10px;color:var(--muted)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:21px}.kpi .label{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;align-items:center}.kpi .value{font-size:27px;letter-spacing:-1px;margin:18px 0 11px;font-weight:650;font-variant-numeric:tabular-nums}.kpi small{font-size:10px}.kpi.hero{background:var(--navy);border-color:var(--navy);color:white}.hero .label,.hero small{color:#b8c7d8}.tag{padding:5px 7px;background:#e9f6f1;color:var(--teal);font-size:9px;border-radius:5px}.hero .tag{background:#ffffff15;color:#a5ddd0}.twocol{display:grid;grid-template-columns:1.8fr 1fr;gap:18px;margin-top:20px}.card h3{font-size:14px;margin:0}.card .sub{font-size:10px;color:var(--muted);margin:7px 0 15px}.cardhead{display:flex;justify-content:space-between;align-items:center}.legend{display:flex;gap:16px;font-size:10px;color:var(--muted);margin:16px 0}.legend i{display:inline-block;width:7px;height:7px;border-radius:3px;margin-right:6px}.chart{width:100%;height:200px;display:block}.chart text{font:10px sans-serif;fill:#8893a2}.chart line{stroke:#edf0f5}.alertitem{border-bottom:1px solid var(--line);padding:14px 0;display:flex;gap:12px}.alertitem:last-child{border:0;padding-bottom:0}.alerticon{border-radius:8px;padding:8px;background:#fff3e7;color:#b47c37;height:32px}.alertitem strong{font-size:11px}.alertitem p{font-size:10px;margin:5px 0;line-height:1.6}.link{background:none;border:0;color:var(--blue);font-size:11px;padding:0}.bottomgrid{display:grid;grid-template-columns:1.2fr 1fr;gap:18px;margin-top:20px}.barrow{margin:17px 0}.barrow .row{display:flex;justify-content:space-between;font-size:11px;margin-bottom:8px}.bar{height:5px;background:#f1f3f8;border-radius:4px;overflow:hidden}.bar div{height:100%;border-radius:4px}.empty{background:#f8faff;border:1px dashed #d6dfed;border-radius:9px;padding:23px;text-align:center;margin-top:17px}.empty h4{margin:10px 0;font-size:13px}.empty p{font-size:11px;max-width:300px;margin:8px auto 15px}.outline{background:white;border:1px solid #d9e1ed;color:var(--ink);border-radius:7px;padding:10px 14px;font-size:11px}.tablewrap{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left;font-size:11px;white-space:nowrap}th{font-weight:500;color:var(--muted);background:#f8f9fc}th,td{padding:14px 12px;border-bottom:1px solid var(--line)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.positive{color:var(--teal)}.negative{color:#c96571}.tools{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px}input,select{border:1px solid #dce2eb;border-radius:7px;padding:10px;background:white;color:var(--ink);min-width:0}input::placeholder{color:#a0a8b4}.tools input{flex:1}.badge{display:inline-block;font-size:9px;border-radius:4px;padding:5px 7px;background:#f4f0e4;color:#a18340}.delete{border:0;background:none;color:#b36373}.simulation{display:grid;grid-template-columns:1fr 1fr;gap:20px}.simulation label{margin:18px 0}.bigresult{font-size:36px;font-weight:600;margin:15px 0;letter-spacing:-1px}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}label{display:block;font-size:11px;color:var(--muted);margin:16px 0}label input,label select{display:block;width:100%;margin-top:7px}dialog{border:1px solid var(--line);border-radius:16px;padding:26px;width:450px;max-width:95vw;box-shadow:0 20px 100px #13294030}dialog::backdrop{background:#14263d55;backdrop-filter:blur(3px)}.modalhead{display:flex;align-items:center;justify-content:space-between}.modalhead h2{font-size:21px;margin:0}.modalhead button{border:0;background:none;font-size:20px;color:var(--muted)}form>p{font-size:12px}form>.primary{width:100%;margin-top:12px}footer{display:flex;justify-content:space-between;color:#99a2af;font-size:10px;margin:28px 0 0}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--navy);color:white;border-radius:8px;padding:12px 22px;display:none;z-index:10}.stockstat{display:flex;gap:20px;margin:20px 0}.stockstat .card{flex:1}.stockstat strong{display:block;font-size:24px;margin-top:12px}.remove{font-size:10px;color:#c26d74;border:0;background:none}@media(min-width:1500px){main{padding-top:42px}.chart{height:240px}}@media(max-width:1150px){aside{width:205px;padding:28px 14px}.shell{margin-left:205px}main{padding:26px}.kpis{gap:10px}.kpi .value{font-size:22px}.card{padding:17px}.twocol{grid-template-columns:1.5fr 1fr}}@media(max-width:850px){aside{width:70px;padding:22px 8px}.brand{padding:0 5px 25px}.brand>div,.company,.navlabel,nav button span,.sidebottom{display:none}nav button{justify-content:center}.shell{margin-left:70px}main{padding:22px 18px}header{padding:0 20px}.kpis{grid-template-columns:1fr 1fr}.twocol,.bottomgrid{grid-template-columns:1fr}.top{align-items:flex-start}h1{font-size:24px}.headerRight{font-size:10px}}@media(max-width:520px){.top{flex-direction:column}.simulation{grid-template-columns:1fr}.kpi .value{font-size:20px}.card{padding:15px}.headerRight .dot,footer span{display:none}.notice{margin-top:18px}.stockstat{flex-direction:column}.formgrid{grid-template-columns:1fr}}
.income-months{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}.month-card{padding:18px;text-align:left;background:white;border:1px solid var(--line);border-radius:10px;color:var(--ink)}.month-card span{font-size:11px;display:block}.month-card strong{display:block;font-size:22px;margin:12px 0;letter-spacing:-.6px}.month-card small{font-size:9px;line-height:1.5}.month-card.selected{border-color:var(--blue);background:#edf3ff;box-shadow:0 0 0 1px var(--blue)}.month-card.selected span{color:var(--blue)}.income-note{font-size:11px;line-height:1.6;color:var(--muted);margin:20px 0}.row-actions{display:flex;gap:12px;align-items:center}.paid-badge{color:var(--teal);background:#e9f6f1}button:disabled{opacity:.4;cursor:default}@media(max-width:1000px){.income-months{grid-template-columns:1fr 1fr}}@media(max-width:520px){.month-card{padding:13px}.month-card strong{font-size:18px}}
.channel-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.channel-card{background:white;color:var(--ink);border:1px solid var(--line);padding:17px;text-align:left;border-radius:11px}.channel-card span{display:block;font-size:11px;font-weight:600}.channel-card strong{display:block;font-size:23px;letter-spacing:-.7px;margin:13px 0}.channel-card small{font-size:9px;line-height:1.6}.channel-card.selected{background:var(--navy);color:white;border-color:var(--navy)}.channel-card.selected small{color:#c4d1df}.income-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);margin-bottom:20px}.income-tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:0 0 13px;color:var(--muted);font-size:12px}.income-tabs button.active{color:var(--blue);border-bottom-color:var(--blue)}.directory-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-bottom:12px}[hidden]{display:none!important}input:read-only{background:#f5f7fa;color:#768599}@media(max-width:1100px){.channel-cards{grid-template-columns:1fr 1fr}}@media(max-width:520px){.channel-card{padding:12px}.channel-card strong{font-size:19px}.directory-heading{display:block}.income-tabs{gap:12px}.income-tabs button{font-size:11px}}
aside{overflow-y:auto}nav button{padding:10px 13px}.sidebottom{padding-top:15px}.yearlabel{display:flex;align-items:center;gap:8px;margin:0}.yearlabel select{margin:0;padding:6px 10px;width:auto}.month-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.month-toolbar label{min-width:200px}.coverage{display:flex;gap:14px}.coverage label{display:flex;align-items:center;gap:5px;margin:0;font-size:10px;white-space:nowrap}.coverage input{width:auto;margin:0}.income-months{grid-template-columns:repeat(4,minmax(0,1fr))}dialog{max-height:90vh;overflow-y:auto}.month-card strong{font-size:20px}@media(max-width:1000px){.income-months{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.income-months{grid-template-columns:repeat(2,minmax(0,1fr))}.month-toolbar{align-items:flex-start;flex-direction:column}.coverage{flex-direction:column;gap:6px}}
.process-steps{display:flex;gap:12px;margin:20px 0 25px;flex-wrap:wrap}.process-steps span{border:1px solid #dce5f4;background:#edf3ff;color:#426896;padding:12px 16px;border-radius:8px;font-size:12px}.quote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.selected-quote{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue)}.checkline{display:flex;align-items:center;gap:9px}.checkline input{width:auto;margin:0}.schedule{max-height:300px}summary{cursor:pointer;color:var(--blue);font-size:12px;padding:12px 0}.quote-grid .row-actions{flex-wrap:wrap}nav button{padding:8px 12px}@media(max-width:800px){.quote-grid{grid-template-columns:1fr}.process-steps span{font-size:10px;padding:10px}.income-tabs{flex-wrap:wrap}}
.cash-callout{display:flex;gap:14px;padding:19px;border:1px solid;border-radius:12px;margin:18px 0}.cash-callout.red{background:#fff0f1;border-color:#f1a8b0;color:#a51b32}.cash-callout.amber{background:#fff8e7;border-color:#ecd18a;color:#855b09}.cash-callout.clear{background:#f0f5fa;border-color:#dbe4ef;color:#47627e}.cash-callout h3{font-size:15px;margin:0 0 8px}.cash-callout p{font-size:12px;color:inherit;margin:0 0 8px}.cash-callout small{font-size:10px;color:inherit}.cash-symbol{border:2px solid currentColor;border-radius:50%;width:28px;height:28px;flex:0 0 28px;text-align:center;line-height:24px;font-weight:700}.cash-health-card{margin:18px 0}.health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:17px 0}.health-month{padding:13px;border:1px solid #e0e6ef;border-left-width:4px;border-radius:8px;background:#f8fafc}.health-month strong,.health-month span,.health-month b{display:block}.health-month strong{font-size:11px}.health-month span{font-size:10px;margin:7px 0}.health-month b{font-size:14px}.health-month small{font-size:9px;margin-top:5px;color:inherit}.health-month.red{background:#fff1f2;border-color:#df6678;color:#aa1830}.health-month.amber{background:#fff9e9;border-color:#d2a431;color:#856009}.health-row-red td{background:#fff0f2!important;color:#ab1b33}.health-row-amber td{background:#fff9e9!important}.health-text-red{color:#aa1830}.health-text-amber{color:#856009}@media(max-width:1050px){.health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cash-health-card .cardhead{align-items:flex-start;gap:10px;flex-direction:column}}
.expense-summary{margin-top:23px;border:1px solid #eadbc5;border-radius:12px;overflow:hidden;background:#fff}.expense-summary-heading{padding:20px 24px;display:flex;justify-content:space-between;align-items:center;gap:15px;background:#f2a22b;color:#382912}.expense-summary-heading p{font-size:9px;font-weight:700;letter-spacing:1.6px;color:#67471c;margin:0 0 6px}.expense-summary-heading h2{font-size:20px;letter-spacing:-.5px;margin:0}.expense-summary-heading>span{font-size:12px;font-weight:600;background:#ffffff80;border-radius:7px;padding:9px 13px}.category-summary th{background:#fff6e9;color:#8a7050;padding:12px 18px}.category-summary td{padding:11px 18px;border-bottom:1px solid #f0e7db;background:#fffaf2}.category-summary tr:nth-child(even) td{background:#fffdf8}.category-summary tr:hover td{background:#fff0d9}.category-name{background:none;border:0;display:flex;align-items:center;gap:12px;text-align:left;padding:0;color:var(--ink);font-weight:600;font-size:12px}.category-name small{font-size:9px;margin-top:4px;color:#968878;font-weight:400}.category-symbol{width:29px;height:29px;display:grid;place-items:center;flex-shrink:0;background:#f5e7d2;color:#9b743b;border-radius:7px;font-size:17px}.category-total{font-size:15px;font-weight:650}.category-share{display:flex;align-items:center;gap:9px;font-size:10px;color:#8c7961;min-width:110px}.category-meter{height:5px;border-radius:4px;overflow:hidden;background:#efe6d8;width:70px}.category-meter i{display:block;height:100%;background:#d9a456;border-radius:4px}.category-summary .empty-category td{color:#a59684}.category-summary .empty-category .category-name{color:#958778}.category-summary tfoot th,.category-summary tfoot td{background:#ffe49c!important;border:0;font-size:16px;font-weight:700;color:#493920;padding:19px 18px}.expense-summary-note{margin:0;padding:14px 20px;font-size:10px;color:#958573;background:#fff}.expense-details{margin:22px 0}.expense-details>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;font-size:13px;color:var(--ink);padding:0}.expense-details>summary:before{content:'▸';color:var(--blue)}.expense-details[open]>summary:before{content:'▾'}.expense-details[open]>summary{margin-bottom:22px}.expense-details>summary>span:first-child{margin-right:auto}@media(max-width:650px){.expense-summary-heading{padding:16px;align-items:flex-start;flex-direction:column}.expense-summary-heading h2{font-size:18px}.category-summary td,.category-summary th{padding:10px 12px}.category-share{min-width:85px}.category-meter{width:45px}.expense-details>summary .pill{font-size:9px}}
.simulation-banner{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:16px;align-items:center;background:#fff0c2;border:2px solid #d59c12;border-radius:14px;padding:18px;margin-bottom:22px;color:#684900;box-shadow:0 5px 20px #68490015}.simulation-banner[hidden]{display:none}.simulation-banner p{margin:6px 0}.simulation-banner strong{letter-spacing:.04em}.simulation-manager{margin-bottom:22px;border:1px solid #d59c12}.simulation-entry{padding:16px 0;border-top:1px solid #eee}.simulation-entry input[role=switch]{width:21px;height:21px;accent-color:#946100}.simulation-entry details{margin:10px 0}@media(max-width:700px){.simulation-banner{position:relative;flex-direction:column;align-items:flex-start}}
.month-cash-metrics{display:grid;gap:9px;margin:14px 0;width:100%}.month-cash-metrics>div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 12px}.month-cash-metrics>div:first-child{display:block;padding-bottom:10px;border-bottom:1px solid #00000012}.month-cash-metrics>div:first-child span{display:block;margin-bottom:5px}.health-month .month-cash-metrics span{font-size:11px;line-height:1.4}.health-month .month-cash-metrics strong{font-size:13px}.health-month .month-cash-metrics b{font-size:22px;display:block}.month-shortfall{border-top:1px solid #00000012;padding-top:10px}.cash-callout .month-cash-metrics{max-width:520px}.cash-callout .month-cash-metrics b{font-size:24px}

[hidden]{display:none!important}.auth-gate{min-height:100vh;display:grid;place-items:center;padding:24px}.auth-card{max-width:460px;width:100%;background:white;border:1px solid #e4e8f0;border-radius:22px;padding:40px;box-shadow:0 18px 60px #263c5e12}.auth-card h1{font-size:30px}.auth-card p{line-height:1.6;color:#64748b}.auth-card .primary{width:100%;margin-top:20px}#authMessage{color:#b42318}#cloudStatusBar{position:fixed;bottom:0;left:0;right:0;z-index:1000;background:#17335d;color:white;padding:12px 20px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;font-size:13px}#cloudStatusBar button{border:1px solid #ffffff55;border-radius:8px;background:transparent;color:white;padding:7px 12px;cursor:pointer}#cloudStatusBar #logout{margin-left:auto}#cloudStatusBar[data-error="true"]{background:#8a2929}body{padding-bottom:62px}
/* Monthly expense coverage: red for shortages, neutral gray when covered. */
button.expense-month-card{display:block;width:100%;min-width:0;text-align:left;font:inherit;cursor:pointer;color:#4b5563;box-shadow:none;transition:box-shadow .15s,transform .15s}
button.expense-month-card.covered{background:#f3f4f6;border-color:#d1d5db;color:#374151}
button.expense-month-card.red{background:#fff1f2;border-color:#df6678;color:#aa1830}
button.expense-month-card:hover{transform:translateY(-2px);box-shadow:0 4px 14px #172b4514}
button.expense-month-card.selected{outline:2px solid currentColor;outline-offset:2px}
button.expense-month-card:focus-visible{outline:3px solid #3563db;outline-offset:3px}
.expense-month-card>strong{font-size:13px}.expense-month-card small{display:block;line-height:1.5}
.expense-month-totals{border-top:1px solid #00000012;padding-top:4px;margin-top:10px}
.expense-month-totals>span{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.expense-month-card .expense-month-action{font-weight:600;margin-top:12px}
@media(max-width:440px){.health-grid:has(.expense-month-card){grid-template-columns:1fr}}
