:root{--bg:#f4f6fb;--card:#fff;--ink:#18202f;--mut:#566074;--pri:#1f4fd1;--pri2:#e8eefc;--ok:#11703a;--bad:#b42318;--warn:#8a5a00;--bd:#dde2ec;--r:12px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:9}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.top{display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#17359a,#2d66e6);color:#fff;padding:16px 20px}
.top h1{margin:0;font-size:1.4rem}.top p{margin:2px 0 0;opacity:.85;font-size:.9rem}
.toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.toolbar .muted{color:#dfe7ff}
button,.btn,select,input,textarea{font:inherit}
button,.btn{border:1px solid var(--bd);background:#fff;color:var(--ink);padding:6px 12px;border-radius:8px;cursor:pointer;display:inline-block}
button:hover,.btn:hover{background:var(--pri2)}button.pri{background:var(--pri);color:#fff;border-color:var(--pri)}button.pri:hover{background:#173fae}
button:disabled{opacity:.5;cursor:not-allowed}
:focus-visible{outline:3px solid #f5b400;outline-offset:2px}
.disc{max-width:1280px;margin:12px auto;padding:10px 14px;background:#fff6dd;border:1px solid #efd383;color:#5c4300;border-radius:8px}
.tabs{max-width:1280px;margin:0 auto;padding:0 12px;display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--bd)}
.tabs [role=tab]{border:0;border-bottom:3px solid transparent;border-radius:0;background:none;padding:10px 12px;white-space:nowrap;color:var(--mut)}
.tabs [role=tab][aria-selected=true]{color:var(--pri);border-bottom-color:var(--pri);font-weight:600}
main{max-width:1280px;margin:0 auto;padding:16px 12px 40px}
.card{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:16px;margin-bottom:16px;box-shadow:0 1px 2px #0000000a}
.card h2{font-size:1.05rem;margin:0 0 10px}.card h3{font-size:.95rem;margin:12px 0 6px}h2.inline{display:inline}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:900px){.grid2,.grid3{grid-template-columns:1fr}}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:16px}
.kpi{background:var(--card);border:1px solid var(--bd);border-radius:var(--r);padding:12px 14px}.kpi .l{font-size:.8rem;color:var(--mut)}.kpi .v{font-size:1.35rem;font-weight:700}.kpi .s{font-size:.78rem;color:var(--mut)}
.ok{color:var(--ok)}.bad{color:var(--bad)}.warn{color:var(--warn)}.muted{color:var(--mut)}
.status{padding:12px 14px;border-radius:8px;margin-bottom:14px;font-weight:600;background:#eef2fa}.status.ok{background:#e6f5ec}.status.bad{background:#fdecea}.status.warn{background:#fff4dc}
.grid2>*,.grid3>*{min-width:0}.chartbox{position:relative;height:300px;min-width:0;max-width:100%}.chartbox canvas{max-width:100%}.chartbox.tall{height:380px}
.tw{overflow:auto;max-height:520px}
table{border-collapse:collapse;width:100%;font-size:.85rem}th,td{padding:5px 8px;border-bottom:1px solid var(--bd);text-align:right;white-space:nowrap}
th{background:#eef2fa;position:sticky;top:0;z-index:1}th:first-child,td:first-child{text-align:left}
td.best{background:#d8f1e1;font-weight:700}caption{text-align:left;font-weight:600;padding:4px 0}
.controls{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:10px}
label{font-size:.85rem;color:var(--mut)}.controls label,.fgrid label{display:flex;flex-direction:column;gap:2px}
input,select,textarea{padding:6px 8px;border:1px solid #c9d0de;border-radius:7px;background:#fff;color:var(--ink);min-width:0}
textarea{width:100%}input[type=checkbox]{width:18px;height:18px;accent-color:var(--pri)}
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px 14px}
.fgrid label.chk{flex-direction:row;align-items:center;gap:8px}
.list td{padding:3px 4px}.list input,.list select{width:100%;min-width:70px}.list td.c{text-align:center}.list input[type=checkbox]{width:18px}
.help{font-size:.8rem;color:var(--mut);margin:4px 0 8px}
.bar{height:14px;background:#e7ebf3;border-radius:7px;overflow:hidden}.bar>span{display:block;height:100%;background:var(--pri)}
.row-ctl{margin:-6px 0 10px}
.foot{max-width:1280px;margin:0 auto;padding:0 12px 30px;font-size:.8rem}
.report h1{font-size:1.4rem}.report img{max-width:100%;border:1px solid var(--bd);border-radius:8px}
@media print{
  .top,.tabs,.disc.noprint,.noprint,.foot,.skip{display:none!important}
  body{background:#fff}main{padding:0}section[role=tabpanel]{display:none!important}#p-report{display:block!important}
  .card{box-shadow:none;break-inside:avoid}table{font-size:9pt}.report .pb{break-before:page}
}

.tabhelp{margin:0 0 8px;text-align:right}.helpq{font-size:.85rem;font-weight:600;margin-left:8px;text-decoration:none;border:1px solid var(--bd);border-radius:999px;padding:0 8px;background:#fff;color:var(--pri);vertical-align:middle}.helpq:hover,.helpq:focus{background:var(--pri2)}.top a.btn{text-decoration:none}
@media print{.tabhelp,.helpq,#lnkHelp{display:none!important}}
.note.info{background:#eef2fa;color:inherit;padding:8px 12px;border-radius:8px;border-left:4px solid #2d66e6}
.list tr.rowsum td{text-align:left;font-size:.85rem;color:var(--mut);padding:2px 8px 10px;border-top:0}
.list input:disabled,.list select:disabled{background:#f1f3f6;color:var(--mut);cursor:not-allowed}
/* Batch 2: Quick Check, Next steps, Share */
.qc-banner{font-size:1.35rem;padding:14px 16px;border-radius:8px;margin:6px 0 12px}
.qc-banner.ok{background:#e6f5ec;color:#0b6b3a}.qc-banner.bad{background:#fdecea;color:#9b1c13}
.qc-banner strong:first-child{font-size:1.6rem;letter-spacing:.04em;display:block}
.qc-bars{margin:8px 0}.qc-row{display:grid;grid-template-columns:6.5em 1fr 4em;align-items:center;gap:8px;margin:6px 0}
.qc-track{background:#eef2fa;border-radius:6px;height:22px;overflow:hidden}
.qc-fill{height:100%;border-radius:6px}.qc-fill.target{background:#7a8aa6}.qc-fill.ok{background:#11a05a}.qc-fill.bad{background:#d6455d}
.qc-row b{text-align:right}
ol.steps li{margin:8px 0}
.share .controls{align-items:flex-end}.share .grow{flex:1 1 320px}.share input[type=text]{width:100%}
@media print{.qc-track{border:1px solid #999}.qc-fill{print-color-adjust:exact;-webkit-print-color-adjust:exact}}
.tw tr.sel td{background:#eef2fa;font-weight:600}
.ordered{grid-column:1/-1}.ordered .lab{display:block;font-size:.9em;margin-bottom:4px}
.ordered ol{margin:0;padding-left:1.6em}.ordered li{display:flex;align-items:center;gap:6px;padding:4px 6px;margin:3px 0;background:#f4f6fb;border:1px solid #d8deea;border-radius:6px;cursor:grab}
.ordered li .grip{color:#7a8aa6}.ordered li .mini{margin-left:auto;padding:1px 8px}.ordered li .mini+.mini{margin-left:0}
/* Batch 3: pinned results, what-if, checklist, milestones, money flow */
.pinbar{position:sticky;top:0;z-index:20;display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid #d8deea;padding:6px 12px;margin-bottom:10px;box-shadow:0 2px 6px #0001}
.pintiles{display:flex;gap:16px;flex-wrap:wrap}.pin{display:flex;flex-direction:column;line-height:1.15}.pin span{font-size:.75rem;color:var(--mut)}.pin b{font-size:1.1rem}.pin small{font-size:.7rem;color:var(--mut)}
.pinbar.ondash .pintiles{display:none}.pinctl{display:flex;gap:12px;flex-wrap:wrap;font-size:.9rem}
.whatif{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}.whatif .wi.on{background:#17359a;color:#fff;border-color:#17359a}
ul.wilist li{margin:6px 0}ul.check{list-style:none;padding:0}ul.check li{margin:4px 0}ul.check li.done{color:#0b6b3a}
.bar{background:#eef2fa;border-radius:6px;height:10px;overflow:hidden;margin:4px 0 8px}.bar>div{height:100%;background:#11a05a}
ol.timeline{list-style:none;padding:0;border-left:3px solid #d8deea;margin-left:6px}ol.timeline li{padding:4px 0 4px 12px;position:relative}ol.timeline li::before{content:'';position:absolute;left:-7px;top:10px;width:11px;height:11px;border-radius:50%;background:#2d66e6}
ol.timeline .when{font-weight:600;margin-right:6px}ol.timeline .amt{color:#0b6b3a;margin-left:6px}
.flowsvg svg{width:100%;height:auto;max-height:420px;font-size:12px}.flowsvg text{fill:#1d2433}
fieldset.flash{outline:3px solid #e08a1e;transition:outline .3s}
@media print{.pinbar{display:none}}
.sscards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:10px 0}.sscard{border:1px solid #d8deea;border-radius:10px;padding:10px 12px}.sscard h3{margin:0 0 6px}.sscard.best{border-color:#11a05a;background:#f2fbf6}.sscard.pick{border-color:#2d66e6}.sscard ul{padding-left:18px;margin:6px 0}.sscard .ages{margin:0;color:var(--mut)}
.bfill{display:flex;height:54px;border-radius:8px;overflow:hidden;margin:6px 0;font-size:.72rem}.bfill>div{display:flex;align-items:center;justify-content:center;min-width:2px;overflow:hidden;text-align:center;color:#0d1a3a}.bfill>div span{padding:0 3px;white-space:nowrap}
ul.tight{margin:4px 0;padding-left:18px}.verdict{font-size:1.05rem}
.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}
table.heat{border-collapse:separate;border-spacing:3px}table.heat th{font-size:.85em;padding:2px 6px;white-space:nowrap}
.hcell{min-width:64px;padding:8px 4px;border:1px solid #0002;border-radius:4px;color:#111;font-weight:600;cursor:pointer}
.hcell.here{outline:3px solid #222;outline-offset:-1px}.hcell:focus-visible{outline:3px solid #2d66e6}
table.heat thead th:first-child{white-space:normal;max-width:150px;text-align:left}table.heat th[scope=row]{width:1%}
/* password dialog */
#pwDlg{max-width:30rem;border:1px solid #c9d3e6;border-radius:10px;padding:1.2rem 1.4rem;box-shadow:0 10px 40px rgba(0,0,0,.25)}
#pwDlg::backdrop{background:rgba(20,30,50,.45)}
#pwDlg .controls{flex-wrap:wrap}

/* guidance levels and tours */
body.guide-off p.help, body.guide-off .tabhelp .muted { display:none }
.guidebox{border-left:4px solid #2d66e6;background:#eef3ff;padding:.6rem 1rem;margin:.5rem 0 1rem;border-radius:6px}
.guidebox ol{margin:.3rem 0 .3rem 1.2rem;padding:0}
.tourbox{position:fixed;right:1rem;bottom:1rem;z-index:50;max-width:24rem;background:#fff;border:1px solid #c9d3e6;border-radius:10px;padding:1rem 1.2rem;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.tourbox h2{font-size:1.05rem;margin:0 0 .4rem}
.tour-hl{outline:3px solid #e08a1e!important;outline-offset:4px;border-radius:6px}
.tbsel{display:inline-flex;gap:.3rem;align-items:center;color:#fff}
.tbsel select{padding:.25rem}
.linkbtn{background:none;border:0;padding:0;color:#1d4ed8;text-decoration:underline dotted;cursor:pointer;font:inherit}
.ypick{margin:.3rem 0}.ychecks{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin:.4rem 0}.ychecks label{font-weight:400}
table.ytr th[scope=row]{text-align:left;white-space:nowrap;position:sticky;left:0;background:#fff}
table.drill td:last-child{text-align:right;white-space:nowrap}table.drill tr.tot td{border-top:2px solid #c9d3e6;font-weight:600}
#taxDlg{max-width:44rem}
.fdcal{display:grid;grid-template-columns:repeat(6,1fr);gap:.35rem;margin:.5rem 0}.fdm{position:relative;border:1px solid #c9d3e6;border-radius:5px;height:1.8rem;overflow:hidden;background:#f6f7fb}
.fdm i{position:absolute;left:0;top:0;bottom:0;background:#9ad6b0}.fdm span{position:relative;z-index:1;font-size:.8rem;padding:.3rem .4rem;display:block}
td.small{font-size:.82rem;max-width:22rem}
/* Oct 2026: allocation chart, What-If applied note, portfolio KPI */
.glidebox{margin-top:10px;max-width:560px}.glidebox canvas{max-height:180px}
.wiapplied{background:#eaf7ef;border:1px solid #b9e3c8;padding:6px 10px;border-radius:6px}
.wilist{list-style:none;padding:0;margin:8px 0}
ul.wilist li.wicard{margin:10px 0;padding:10px 12px;border:1px solid var(--bd);border-radius:8px;background:var(--card,#fff)}
.wihead{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px}
.wibadge{display:inline-block;white-space:nowrap;font-size:.78rem;font-weight:700;padding:2px 8px;border-radius:999px;border:1px solid}
.wibadge.t-ok{background:#e3f5ea;color:#0b6b3a;border-color:#9fd4b4}.wibadge.t-bad{background:#fde8eb;color:#a3162f;border-color:#f0a9b6}
.wibadge.t-warn{background:#fff3dc;color:#8a5300;border-color:#f0c97a}.wibadge.t-neutral{background:#eef0f4;color:#3d4452;border-color:#c9ced8}
.wibadge.t-info{background:#e7effc;color:#1d3f8f;border-color:#a9c0ec}
.wiwhy{margin:6px 0}.wicard .nw{white-space:nowrap}
table.witab{border-collapse:collapse;margin:4px 0 6px;font-size:.92rem;width:auto;max-width:100%}
table.witab th,table.witab td{padding:3px 10px 3px 0;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--bd)}
table.witab th{position:static;background:none;z-index:auto}table.witab th[scope=row]{text-align:left;font-weight:400;white-space:normal;min-width:7.5em}table.witab thead th{font-weight:600;color:var(--mut)}
.widetail{color:var(--mut);font-size:.85rem;margin:2px 0 4px}
@media (max-width:480px){table.witab{font-size:.85rem}table.witab th,table.witab td{padding-right:6px}ul.wilist li.wicard{padding:8px}}
@media (max-width:600px){#pinPortfolio{display:none}} /* only where it fits on the same line */
