.file-actions{display:flex;gap:8px;align-items:center}.file-actions button{font-size:11px;padding:10px 12px}.save-strip{padding:12px 42px;display:flex;gap:18px;flex-wrap:wrap;justify-content:space-between;background:white;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.save-strip #save-status{color:var(--teal);font-weight:600}.gate{max-width:540px;margin:20px auto}.gate h1{font-size:32px}.gate input{background:#fffbed}.gate .field{margin:14px 0}.gate .primary{width:100%}.gate .secondary{width:100%;margin-top:10px}.revision-box{background:#f1f6f4;padding:14px;margin:15px 0;border-radius:7px;line-height:1.8;font-size:12px;overflow-wrap:anywhere}.button-row{display:flex;gap:10px;flex-wrap:wrap;margin:15px 0}.button-row button{flex:1}.checkpoint{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);font-size:11px}.checkpoint button{font-size:11px;padding:9px}.handoff-banner{background:#fff3d9;padding:15px 20px;border-radius:7px;margin-bottom:20px;font-size:12px;line-height:1.7}.handoff-banner button{margin-left:10px}#import-preview:empty{display:none}dialog{max-height:90dvh;overflow:auto}.status-failed{color:var(--red)!important}.offline-tip{font-size:11px;color:var(--muted)}#portable-lock{margin-top:15px}fieldset{border:0;padding:0;margin:0;min-width:0}.saved-time{white-space:nowrap}@media(max-width:1150px){.topbar{justify-content:space-between}.save-strip{padding:12px 25px}}@media(max-width:800px){.topbar{height:auto;min-height:66px;padding:12px 16px}.file-actions{width:100%;justify-content:space-between}.file-actions button{flex:1}.save-strip{padding:10px 16px;gap:6px 12px;font-size:10px}}@media(max-width:480px){.file-actions button{font-size:10px;padding:9px 6px;min-height:44px}.gate{padding:20px}.save-strip #revision-label{width:100%}}
.file-download{display:inline-block;text-decoration:none;margin:10px 0;min-height:44px} #recovery-file{font-size:12px}

/* Phase 2 readability and wider planning workspace, 16 October 2026. */
:root{font-size:16px}main,footer{max-width:none}main{padding:32px clamp(20px,2.4vw,48px)}h1{font-size:36px}h2{font-size:22px}h3{font-size:18px}
nav a,.primary,.secondary,.danger,.field>span,label.field,.toggle-line,.fact,.advice-list li,.share-status,table,input,select,.toolbar select{font-size:16px}
.subtle,.input-note,.notice,.legend,.chart-summary,.metric label,.metric small,.page-head p,.basis-row,.breadcrumb,.prototype-strip,.save-strip,.file-actions button,.checkpoint,.checkpoint button,.handoff-banner,.revision-box,.offline-tip,.transaction-table select,.transaction-table td small,dialog p,dialog label,#toast,.side-bottom p,small{font-size:14px}
.eyebrow,.panel-label,.badge,.pill,th,.nav-label,.seed-label{font-size:13px}.metric strong{font-size:32px}.chart-summary b{font-size:22px}.two-col{grid-template-columns:minmax(320px,.85fr) minmax(0,2fr)}.page-head p{max-width:850px}.chart text{font-size:16px;fill:#516b74}.visual-chart{height:auto}.chart-inspector{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.chart-inspector label{display:flex;align-items:center;gap:16px;font-size:14px}.chart-inspector select{width:auto;max-width:100%}.chart-inspector output{display:block;font-size:16px;line-height:1.7;margin-top:12px;font-variant-numeric:tabular-nums}.chart-callout{font-size:16px;margin:14px 0}.chart-callout strong{color:var(--red)}.scenario-bars{display:grid;gap:20px}.scenario-bars>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px}.scenario-bars small{grid-column:1/-1;color:var(--muted)}.scenario-track{grid-row:2;grid-column:1;background:#edf2f1;border-radius:4px;height:18px;overflow:hidden}.scenario-track>div{height:100%;min-width:0}.scenario-bars strong{grid-row:2;grid-column:2;font-variant-numeric:tabular-nums}.legend{gap:12px 20px;line-height:1.6}.gate{max-width:600px}.file-actions button{min-height:44px}.brand small{font-size:10px}.side-bottom>small{font-size:11px}footer{font-size:13px}.metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.metric{min-width:0}
@media(min-width:1700px){h1{font-size:38px}.two-col{grid-template-columns:minmax(360px,.8fr) minmax(0,2fr)}}
@media(max-width:1150px){.two-col{grid-template-columns:minmax(0,1fr)}.planner-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.review-grid{grid-template-columns:minmax(0,1fr)}.sidebar{width:240px}.shell{margin-left:240px}.metric strong{font-size:28px}.metric{padding:16px}}
@media(max-width:900px){.sidebar{position:static;width:auto;padding:18px 16px 0}.shell{margin-left:0}.brand{margin:0 0 16px}.nav-label,.side-bottom{display:none}nav{display:flex;gap:4px}nav a{flex:1;justify-content:center;text-align:center;font-size:14px;padding:12px 6px}nav a span{display:none}.topbar{height:auto;min-height:66px;padding:12px 20px}.file-actions{flex-wrap:wrap;width:100%}.file-actions button{flex:1}.metrics{gap:12px}.topbar .breadcrumb{display:none}}
@media(max-width:600px){main{padding:24px 16px}.metrics{grid-template-columns:1fr}.metric{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.metric label{margin:0}.metric small{grid-column:1/-1;margin:0}.planner-controls{display:block}.card{padding:18px}h1{font-size:30px}.chart-inspector label{display:grid;gap:8px}.chart-inspector select{width:100%}.chart-summary{flex-wrap:wrap}.file-actions button{font-size:14px;padding:10px 8px}.save-strip{font-size:14px}.page-head .primary{font-size:14px}.transaction-table select{min-width:120px}.chart text{font-size:15px}.gate{padding:20px}nav a{font-size:14px}.scenario-bars>div{gap:8px}.scenario-bars strong{font-size:15px}}

@media(max-width:600px){.stage-wrap table{font-size:14px;table-layout:fixed}.stage-wrap th{white-space:normal;font-size:13px}.stage-wrap td,.stage-wrap th{padding:12px 6px}.stage-wrap th:first-child,.stage-wrap td:first-child{width:42%;padding-left:0}.stage-wrap td.num{white-space:normal;overflow-wrap:anywhere}}

/* P3-2026-10-16.5: measured desktop layout and stable chart label sizing. */
:root{--ufw-build:"P3-2026-10-16.5";font-size:18px}body{font-size:18px;line-height:1.55}
nav a{font-size:17px}.primary,.secondary,.danger,input,select,.field>span,label.field,.toggle-line,table,.toolbar select,.chart-inspector output,.chart-callout,.fact,.advice-list li{font-size:18px}
.subtle,.input-note,.notice,.legend,.chart-summary,.metric small,.page-head p,.basis-row,.breadcrumb,.prototype-strip,.save-strip,.file-actions button,.checkpoint,.checkpoint button,.handoff-banner,.revision-box,.offline-tip,.transaction-table select,.transaction-table td small,dialog p,dialog label,#toast,.side-bottom p,small,.chart-inspector label{font-size:16px}
.metric label{font-size:18px}.metric strong{font-size:36px}.chart-summary b{font-size:24px}.eyebrow,.panel-label,.badge,.pill,th,.nav-label,.seed-label{font-size:14px}h1{font-size:38px}h2{font-size:24px}h3{font-size:20px}
.chart text{font-size:18px;fill:#425e69}.visual-chart{width:100%;height:auto}.plot-host{min-width:0}.chart-inspector label{flex-wrap:wrap}.legend{gap:10px 22px}.legend i{width:22px;height:4px}.scenario-bars strong{font-size:20px}.card{padding:26px}.metric{padding:24px}.page-head p{max-width:none}.topbar{min-height:90px}.file-actions button{padding:12px 16px}.brand{font-size:15px;letter-spacing:1px}.brand small{font-size:11px}.brand .mark{flex-shrink:0}.side-bottom>small{font-size:12px}
main{width:88%;max-width:none;margin:0 auto;padding:34px 0 26px}.two-col{gap:26px;grid-template-columns:minmax(420px,.95fr) minmax(0,2fr);grid-template-areas:"choices income" "scenarios capital" "stages stages" "assumptions assumptions"}.two-col>div{display:contents}.two-col>.planner-controls{grid-area:choices}.capital-panel{grid-area:capital}.income-panel{grid-area:income}.scenario-panel{grid-area:scenarios}.stages-panel{grid-area:stages}.assumptions-panel{grid-area:assumptions}.two-col .stage-wrap,.two-col .section-gap{margin-top:0}.stages-panel .section-gap{margin-top:18px}.chart-summary{flex-wrap:wrap}.chart-summary>span{min-width:26%}.metric small{line-height:1.6}.gate{max-width:650px}.gate .field{margin:20px 0}.gate h1{font-size:36px}.gate .input-note{font-size:16px}.gate input{font-size:18px}.gate .field{font-size:18px}.gate .primary,.gate .secondary{font-size:18px}
footer{width:88%;padding:24px 0 30px;font-size:15px;align-items:center;flex-wrap:wrap}.build-check{font:inherit;font-size:15px;background:transparent;color:var(--teal);text-decoration:underline;padding:6px 0;text-align:left}.diagnostic-grid{display:grid;grid-template-columns:1fr;gap:12px;overflow-wrap:anywhere}.diagnostic-grid div{border-bottom:1px solid var(--line);padding-bottom:10px}.diagnostic-grid strong{display:block;color:var(--ink)}#layout-dialog{width:min(720px,calc(100% - 30px))}.version-tag{display:inline-block;color:var(--teal);font-weight:600;white-space:nowrap}
@media(min-width:1800px){.planner-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.planner-controls .card-head,.planner-controls .notice,.planner-controls .separator{grid-column:1/-1}.planner-controls .field{margin:14px 0}.planner-controls .separator{margin:6px 0}.planner-controls .toggle-line{align-self:center}}
@media(max-width:1199px){main{width:auto;margin:0;padding:28px 24px}.two-col{grid-template-columns:minmax(0,1fr);grid-template-areas:"choices" "income" "capital" "scenarios" "stages" "assumptions"}.planner-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}.planner-controls .card-head,.planner-controls .notice,.planner-controls .separator{grid-column:1/-1}.metric{padding:18px}.metric strong{font-size:30px}footer{width:auto;margin:0 24px}.topbar{height:auto;padding:14px 24px}}
@media(max-width:900px){nav a{font-size:16px}.brand{font-size:15px}.topbar{padding:12px 16px;min-height:70px}.file-actions button{font-size:16px;padding:10px}.save-strip{font-size:16px}.chart-summary b{font-size:22px}.metric label{font-size:16px}}
@media(max-width:600px){main{padding:24px 16px}.card{padding:18px}.planner-controls{display:block}.field>span,label.field,.toggle-line{font-size:17px}.chart text{font-size:16px}.file-actions button{font-size:14px;padding:10px 6px}nav a{font-size:14px}.subtle,.input-note,.notice,.legend,.chart-summary,.page-head p,.basis-row,.prototype-strip,.save-strip,.metric small{font-size:15px}.metric label{font-size:16px}.metric strong{font-size:30px}h1{font-size:32px}h2{font-size:23px}.scenario-bars strong{font-size:18px}.chart-inspector output{font-size:16px}.stage-wrap table{font-size:15px}.stage-wrap th{font-size:14px}.chart-inspector select{font-size:18px}.page-head .primary{font-size:16px}.brand small{font-size:10px}footer{margin:0 16px}.gate h1{font-size:32px}.metric small{grid-column:1/-1}}
@media print{main{width:100%;margin:0;padding:0}.two-col{display:block}.two-col .card{margin:20px 0}.build-check{display:none}}

.prototype-strip{display:flex;align-items:center;gap:12px}.prototype-strip p{font:inherit;margin:0;flex:1}.prototype-strip>span{margin-right:0}.prototype-strip .build-check{flex-shrink:0;font-size:14px}@media(max-width:900px){.prototype-strip{flex-wrap:wrap}.prototype-strip p{flex-basis:calc(100% - 90px)}.prototype-strip .build-check{margin-left:0}}

.assumption-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.pot-settings{margin:16px 0;padding:12px;border:1px solid var(--line);border-radius:6px}.spend-visual{display:grid;grid-template-columns:1fr auto;gap:6px;margin:18px 0}.spend-visual meter{grid-column:1/-1;width:100%;height:16px;accent-color:var(--teal)}.notice ul{padding-left:20px}.income-panel>.notice:first-child{margin-top:0}@media(max-width:600px){.assumption-fields{grid-template-columns:minmax(0,1fr)}}

/* Phase 3 guided setup and review presentation. */
.review-start{display:grid;grid-template-columns:minmax(0,1fr) minmax(230px,.45fr);gap:24px;align-items:center;background:#e9f4f1;border:1px solid #c9e1d9;border-radius:9px;padding:22px 26px;margin-bottom:24px}.review-start h2{margin:6px 0}.review-start p{margin:0;max-width:900px;font-size:17px}.review-start small{display:block;font-size:14px;color:#526e70;margin-top:10px;line-height:1.5}.review-start button{width:100%;font-size:18px}.metric .metric-status{font-size:25px;letter-spacing:0;line-height:1.3}.metric-next{background:transparent;color:white;padding:8px 0;font-size:16px;text-align:left;text-decoration:underline;min-height:44px}.forecast-setup{background:#f5f9f8;border:1px solid #dce8e3;border-radius:8px;padding:24px;margin-top:22px}.forecast-setup h3{font-size:24px;margin:10px 0}.forecast-setup p{font-size:16px;color:#526e70;max-width:740px}.setup-list{list-style:none;padding:0;margin:18px 0;display:grid;gap:12px}.setup-list li{display:flex;align-items:center;gap:12px}.setup-step{background:#e0efea;color:var(--teal);border-radius:50%;min-width:32px;height:32px;display:grid;place-items:center;font-size:16px;font-weight:600}.setup-link{padding:8px 0;text-align:left;min-height:44px;background:transparent;color:var(--teal);font-size:18px;line-height:1.4;text-decoration:underline}.setup-more summary{font-size:16px;color:var(--teal);cursor:pointer}.forecast-placeholder{background:#f7faf9;border:1px dashed #b5cdc6;padding:28px 24px;border-radius:8px;margin-top:24px}.forecast-placeholder h3{margin:12px 0;font-size:24px}.forecast-placeholder p{font-size:17px;color:#526e70}.review-labels{display:flex;flex-wrap:wrap;gap:12px 24px;padding:16px 20px;margin-bottom:24px;background:#eaf3f0;border-radius:8px;font-size:15px;line-height:1.5}.review-labels b{display:block;color:var(--teal)}.section-source{color:var(--teal);font-size:14px;letter-spacing:.2px;margin:0 0 16px}.unknown-value{font-size:15px;color:#60787e;font-weight:400}.review-pending{background:#f4f8f6;padding:20px;border-radius:7px;margin-top:20px}.review-pending h3{font-size:21px}.review-pending p{font-size:16px}.review-chart{margin-top:24px;border-top:1px solid var(--line);padding-top:18px}.review-chart .legend{font-size:14px;gap:8px 16px}.review-exact{margin-top:12px}.review-exact summary{font-size:16px;color:var(--teal);cursor:pointer}.budget-categories{margin:16px 0}.review-grid{align-items:start}.review-grid .spend-visual{font-size:16px;margin:14px 0}
@media(max-width:900px){.review-start{grid-template-columns:minmax(0,1fr);gap:16px}.review-start>div:last-child{display:flex;gap:16px;align-items:center}.review-start button{width:auto;min-width:230px}.review-start small{margin:0}.review-labels{gap:12px 18px}}
@media(max-width:600px){.review-start{padding:18px}.review-start>div:last-child{display:block}.review-start button{width:100%;min-width:0}.review-start small{margin-top:10px}.review-start p{font-size:16px}.forecast-setup{padding:18px}.forecast-setup h3,.forecast-placeholder h3{font-size:22px}.setup-link{font-size:17px}.forecast-placeholder{padding:20px}.metric .metric-status{font-size:23px}.forecast-status strong{grid-column:1/-1}.review-labels{display:grid;font-size:14px}.review-grid .fact{font-size:16px}.review-chart .legend{font-size:14px}.setup-step{min-width:29px;height:29px}}
