:root{--paper: #f3efe6;--paper-2: #e9e3d6;--card: #fbf8f2;--ink: #1c1915;--muted: #6d665c;--line: #ddd4c4;--navy: #1b3350;--gain: #1c6b45;--loss: #8d3b32;--brass: #8d6b2f;--brass-soft: #f6efdf;--shadow: 0 1px 0 rgba(28, 25, 21, .04), 0 10px 28px rgba(28, 25, 21, .05);--serif: "Fraunces", "Iowan Old Style", Palatino, Georgia, serif;--sans: "Outfit", "Avenir Next", "Segoe UI", sans-serif;color:var(--ink);background:var(--paper);color-scheme:light;font-family:var(--sans);font-size:15px;line-height:1.45}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{font-family:var(--serif);font-weight:560;letter-spacing:-.02em;margin:0}p{margin:0}.app{min-height:100vh}.topbar{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line);background:#fbf8f2eb;position:sticky;top:0;z-index:5}.brand{display:flex;gap:12px;align-items:center}.brand strong{display:block;font-size:15px}.brand em{display:block;font-style:normal;color:var(--muted);font-size:12px}.mark{width:42px;height:42px;display:grid;place-items:center;background:var(--navy);color:#f6f1e7;font-family:var(--serif);font-size:13px;letter-spacing:.06em;border-radius:10px}.top-actions,.library{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.library{padding:10px 22px;border-bottom:1px solid var(--line);background:#f7f3eb}.library label{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.library select{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 8px}.ghost,.solid,.text-btn{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px}.ghost.on,.segment button.on,.solid{background:var(--navy);color:#f6f1e7;border-color:var(--navy)}.text-btn{border:0;background:transparent;color:var(--navy);padding:0 4px;text-decoration:underline;text-underline-offset:3px}.text-btn.danger{color:var(--loss)}.file{position:relative;overflow:hidden}.file input{position:absolute;inset:0;opacity:0;cursor:pointer}.banner{display:flex;justify-content:space-between;gap:16px;align-items:center;margin:12px 22px 0;padding:12px 14px;background:var(--brass-soft);border:1px solid #e4d3ae;border-radius:12px}.banner.notice{background:#e7eef5;border-color:#c9d7e6}.banner strong{font-weight:600}.view-tabs{display:flex;gap:4px;padding:12px 22px 0}.view-tabs button{border:0;background:transparent;padding:8px 12px 10px;color:var(--muted);border-bottom:2px solid transparent}.view-tabs button.on{color:var(--ink);border-bottom-color:var(--brass)}.workspace{display:grid;grid-template-columns:390px minmax(0,1fr);align-items:start}.editor{padding:18px 16px 64px;border-right:1px solid var(--line);background:#efeae0;min-height:calc(100vh - 150px)}.editor-kicker,.kicker,.label,.kpi .label{text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--muted)}.editor h2{font-size:28px;margin:4px 0 8px}.lede{color:var(--muted);font-size:14px;margin-bottom:8px}.editor section{margin-top:22px}.editor h3{font-size:18px;margin-bottom:10px}.section-head{display:flex;justify-content:space-between;align-items:baseline}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}.field,.stack{display:flex;flex-direction:column;gap:4px;font-size:13px}.stack{margin-bottom:8px}.field-top{display:flex;justify-content:space-between;gap:8px;align-items:baseline}.field-row{display:flex;gap:6px;align-items:center}.field input,.text,select,textarea,.cell-input{width:100%;border:1px solid var(--line);background:#fff;border-radius:8px;padding:7px 8px}.field.is-override input{border-color:#c4a15a;background:#fffaf0}.unit{color:var(--muted);font-size:12px;white-space:nowrap}.field-hint,.quiet{color:var(--muted);font-size:12px;margin-top:4px}.pill{font-size:10px;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 6px;white-space:nowrap}.pill.est{background:#e7eef5;color:var(--navy)}.pill.ae{background:var(--brass-soft);color:#6d5018}.check{display:flex;gap:8px;align-items:flex-start;font-size:13px;margin:8px 0}.check input{margin-top:3px}.drawer{margin-top:8px}.roster{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}.lever{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px;margin-bottom:10px}.lever.flagged{border-color:#e0b2a8}.lever-top,.lever-flags{display:flex;justify-content:space-between;gap:8px;align-items:center}.lever-flags{margin-top:8px}.lever .name{font-family:var(--serif);font-size:16px}.chip{border-radius:999px;border:1px solid var(--line);background:#fff;padding:6px 10px;font-size:12px}.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}details summary{cursor:pointer;color:var(--navy);font-size:13px;margin:8px 0}.stage{padding:22px 28px 56px;min-width:0}.case-head h1{font-size:40px;line-height:1.05;margin:4px 0}.profile{color:var(--muted)}.mode-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:16px 0}.mode-note{color:var(--muted);font-size:13px;flex:1;min-width:180px}.segment{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;background:#fff}.segment button{border:0;background:transparent;padding:7px 12px}.segment button+button{border-left:1px solid var(--line)}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.kpi,.card{background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}.kpi{padding:14px 16px 16px;border-top:3px solid var(--navy)}.kpi .value,.scenario .value{font-family:var(--serif);font-size:clamp(28px,2.1vw,36px);line-height:1.05;margin:8px 0 4px;font-variant-numeric:tabular-nums;white-space:nowrap}.kpi .sub,.scenario .sub{color:var(--muted);font-size:13px}.gain{color:var(--gain)}.loss{color:var(--loss)}.stat-row{display:flex;flex-wrap:wrap;gap:8px 22px;margin:14px 2px 8px}.stat-row div{display:flex;gap:8px;align-items:baseline}.stat-row dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.stat-row dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600}.lever-strip{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 16px}.lever-pill{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 10px;min-width:140px}.lever-pill .name{display:block;font-size:13px}.lever-pill .meta{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:12px}.conf{font-size:10px;letter-spacing:.08em;border-radius:999px;padding:1px 5px;background:var(--paper-2)}.conf-L{background:#f6e4df;color:var(--loss)}.conf-H{background:#e5f2eb;color:var(--gain)}.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.card{padding:14px 14px 8px;margin-bottom:12px}.card header h2,.card h2,.drill h2{font-size:22px}.card header p,.drill-head p{color:var(--muted);font-size:13px;margin-top:4px}.bridge-head,.drill-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:8px}.bridge-delta{font-family:var(--serif);font-size:28px;color:var(--gain)}.step-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px 16px;padding:0;margin:4px 0 8px}.step-list li{display:flex;gap:8px;font-size:13px}.card.flat{box-shadow:none}.fy-row{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.fy-chip{background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 12px;display:flex;flex-direction:column;min-width:120px}.fy-chip span{color:var(--muted);font-size:12px}.verdict{font-family:var(--serif);font-size:22px;line-height:1.35;margin:8px 0 12px}.verdict span,.verdict.tight{font-family:var(--sans);font-size:14px;color:var(--muted)}.fine-print{color:var(--muted);font-size:12px;max-width:78ch}.callout{border-radius:12px;padding:10px 12px;margin:8px 0;background:#fff;border:1px solid var(--line)}.callout p+p{margin-top:6px}.callout.warn{background:var(--brass-soft);border-color:#e4d3ae}.callout.bad{background:#f8ebe8;border-color:#e3c2bb}.drill h3{margin:18px 0 8px;font-size:18px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}th,td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th{font-weight:560}tbody th,thead th:first-child{text-align:left;position:sticky;left:0;background:#fff}thead th{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:#f7f3eb}tr.is-override{background:#fffaf0}.assumptions td.note{white-space:normal;min-width:220px;text-align:left;color:var(--muted)}.cell-input{min-width:120px}.twoway td.base-cell{outline:2px solid var(--navy);outline-offset:-2px;font-weight:600}.tornado{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.tornado-label{display:flex;justify-content:space-between;gap:12px;font-size:13px}.tornado-label span{color:var(--muted)}.tornado-track{position:relative;height:14px;background:#efe8dc;border-radius:999px;margin-top:4px}.tornado-span{position:absolute;top:2px;height:10px;background:var(--navy);border-radius:999px}.base-tick{position:absolute;top:-3px;width:2px;height:20px;background:var(--brass)}.scenario-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scenario.emphasis{border-top:3px solid var(--brass)}.scenario dl{display:grid;gap:4px;margin:10px 0}.scenario dl div{display:flex;justify-content:space-between;gap:8px}.scenario dt{color:var(--muted)}.scenario dd{margin:0}.mobile-only{display:none}.app.presenter .workspace{grid-template-columns:1fr}.app.presenter .library,.app.presenter .banner,.app.presenter .view-tabs{display:none}.app.presenter .stage{max-width:1180px;margin:0 auto}.app.presenter .kpi .value{font-size:40px}@media(max-width:1100px){.kpis,.chart-grid,.scenario-grid{grid-template-columns:1fr 1fr}.workspace{grid-template-columns:1fr}.editor-wrap{display:none}.editor-wrap.open{display:block}.editor{min-height:0;border-right:0;border-bottom:1px solid var(--line)}.mobile-only{display:inline-flex}.case-head h1{font-size:32px}}@media(max-width:720px){.kpis,.chart-grid,.scenario-grid,.grid-2{grid-template-columns:1fr}.topbar,.stage,.library{padding-left:14px;padding-right:14px}.stage{padding-top:16px}.kpi .value{font-size:28px}}@media print{.no-print,.editor-wrap,.view-tabs,.library,.banner,.top-actions{display:none!important}.topbar{position:static}.workspace{display:block}.stage{padding:0 12px}.card,.kpi{break-inside:avoid;box-shadow:none}body{background:#fff}}
