:root{
  --bg:#0f1419; --panel:#171d26; --panel2:#1d2530; --line:#2a3543;
  --txt:#e6edf3; --muted:#8b98a8; --accent:#4f9cf9; --good:#3fb950; --bad:#f85149; --warn:#d29922;
}
*{box-sizing:border-box}
body{margin:0;font:13px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--txt)}
h1{font-size:18px;margin:0}
h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px;border-bottom:1px solid var(--line);padding-bottom:6px}
h3{font-size:12px;margin:0 0 6px;color:var(--accent)}
header{padding:14px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:16px;flex-wrap:wrap;background:var(--panel)}
header .sub{color:var(--muted);font-size:12px}
.wrap{display:grid;grid-template-columns:380px 1fr;gap:0;align-items:start}
.config{padding:16px;border-right:1px solid var(--line);height:calc(100vh - 56px);overflow:auto;background:var(--panel)}
.results{padding:16px;height:calc(100vh - 56px);overflow:auto}
.sect{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:12px}
.row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:5px 0}
.row label{color:var(--muted);flex:1}
input[type=number],input[type=text]{background:#0c1117;border:1px solid var(--line);color:var(--txt);border-radius:5px;padding:5px 7px;width:110px;text-align:right;font:inherit}
input[type=text]{text-align:left;width:120px}
input.sm{width:78px}
select{background:#0c1117;border:1px solid var(--line);color:var(--txt);border-radius:5px;padding:4px;font:inherit}
input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}
button{background:var(--panel2);border:1px solid var(--line);color:var(--txt);border-radius:5px;padding:5px 10px;cursor:pointer;font:inherit}
button:hover{border-color:var(--accent)}
button.primary{background:var(--accent);border-color:var(--accent);color:#04101f;font-weight:600}
button.mini{padding:1px 7px;font-size:14px;line-height:1.2}
.person{border:1px solid var(--line);border-radius:6px;padding:8px;margin-bottom:8px;background:#0c1117;cursor:pointer}
.person.plotsel{border-color:var(--warn);box-shadow:0 0 0 1px var(--warn) inset}
.plotbadge{font-size:10px;color:var(--warn);white-space:nowrap}
.person .phead{display:flex;align-items:center;gap:6px;margin-bottom:6px}
.person .phead input[type=text]{flex:1;width:auto}
.person .phead .enable{display:flex;align-items:center;cursor:pointer}
.person.disabled{opacity:.45}
.person.disabled .phead input[type=text]{text-decoration:line-through}
.step{display:flex;align-items:center;gap:4px;margin:3px 0;font-size:12px}
.step select{font-size:11px}
.chips{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:4px}
.chips label{display:flex;align-items:center;gap:4px;cursor:pointer}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.kpi{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:12px}
.kpi .v{font-size:22px;font-weight:700;margin-top:2px}
.kpi .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.kpi .note{font-size:11px;color:var(--muted);margin-top:3px}
.pos{color:var(--good)} .neg{color:var(--bad)} .warnc{color:var(--warn)}
table{border-collapse:collapse;width:100%;font-size:11.5px;font-variant-numeric:tabular-nums}
th,td{padding:4px 7px;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line)}
th{position:sticky;top:0;background:var(--panel);color:var(--muted);font-weight:600;text-transform:uppercase;font-size:10px;letter-spacing:.03em;z-index:1}
td.m,th.m{text-align:left;position:sticky;left:0;background:var(--bg);z-index:2}
th.m{z-index:3;background:var(--panel)}
tr:hover td{background:#1a2230}
tr:hover td.m{background:#1a2230}
.tablewrap{overflow:auto;max-height:46vh;border:1px solid var(--line);border-radius:8px}
.sep{border-left:2px solid var(--line)}
.hint{font-size:11px;color:var(--muted);margin:4px 0 0;line-height:1.4}
.grp{margin:10px 0 4px;font-size:11px;color:var(--accent);text-transform:uppercase;letter-spacing:.05em}
svg text{fill:var(--muted);font-size:10px}
.barwrap{display:flex;height:22px;border-radius:4px;overflow:hidden;border:1px solid var(--line);margin-top:6px}
.barseg{display:flex;align-items:center;justify-content:center;font-size:10px;color:#04101f;font-weight:600;overflow:hidden}
.toolbar{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.tabs{display:flex;gap:4px}
.tab{padding:6px 14px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);color:var(--muted);cursor:pointer;font:inherit}
.tab:hover{border-color:var(--accent)}
.tab.active{background:var(--accent);border-color:var(--accent);color:#04101f;font-weight:600}
.config{height:calc(100vh - 104px)}
.results{height:calc(100vh - 104px)}
/* ---------- simple participant view ---------- */
.simple{height:calc(100vh - 104px);overflow:auto}
.simple-inner{max-width:1080px;margin:0 auto;padding:24px 20px 64px}
.simple-h{font-size:24px;margin:0 0 6px}
.simple-pick{display:flex;gap:24px;flex-wrap:wrap;margin:18px 0}
.simple-pick .ctl{display:flex;flex-direction:column;gap:5px}
.simple-pick label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.simple-pick select{padding:8px 10px;font-size:14px;min-width:220px}
.simple-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.simple-grid .levers h2,.simple-grid .sect h2{margin-bottom:14px}
.lever{margin:14px 0}
.lever-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.lever-head label{color:var(--txt);font-weight:600;font-size:13px}
.lever-head .muted{color:var(--muted);font-size:11px}
.lever-row{display:flex;align-items:center;gap:10px}
.lever-row input[type=range]{flex:1;accent-color:var(--accent)}
.lever-row input[disabled]{opacity:.4}
.modetoggle{display:inline-flex;border:1px solid var(--line);border-radius:7px;overflow:hidden;margin-bottom:16px}
.modetoggle button{border:0;border-radius:0;background:transparent;color:var(--muted);padding:7px 16px;font-weight:600;font-size:12px}
.modetoggle button.active{background:var(--accent);color:#04101f}
.modetoggle button:not(.active):hover{color:var(--txt)}
.schedbox{background:#0c1117;border:1px solid var(--line);border-radius:6px;padding:10px 12px}
.schedbox .grp:first-child{margin-top:0}
.myshare{background:linear-gradient(135deg,var(--panel2),#10243d);border:1px solid var(--accent);border-radius:10px;padding:18px 20px;margin-bottom:14px}
.myshare .l{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.myshare .big{font-size:52px;font-weight:800;line-height:1.05;color:var(--accent)}
.myshare .big .pctsign{font-size:26px;font-weight:700;margin-left:2px}
.myshare .note{font-size:12px;color:var(--muted);margin-top:2px}
.barseg.mine{outline:2px solid #fff;outline-offset:-2px}
.chips label.mine{color:var(--txt);font-weight:700}
@media(max-width:760px){.simple-grid{grid-template-columns:1fr}}
/* risk-vs-reward table + comparison bars */
.simple-risk table{margin-top:2px}
.simple-risk th,.simple-risk td{font-size:12px}
.simple-risk th{position:static;background:transparent}
.simple-risk td.m,.simple-risk th.m{position:static;background:transparent;text-align:left}
.simple-risk tr.mine td{background:#10243d;font-weight:600;color:var(--txt)}
.simple-risk tr:hover td{background:#1a2230}
.simple-risk tr.mine:hover td{background:#163052}
.simple-risk .dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;vertical-align:middle}
/* scenario description readout (simple view) */
.scendesc-show{max-width:760px;margin:2px 0 0;padding:10px 14px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;color:var(--txt);font-size:13px;line-height:1.45}
/* ---------- reusable modal ---------- */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:flex-start;justify-content:center;padding:60px 16px;z-index:100;overflow:auto}
.modal{background:var(--panel);border:1px solid var(--line);border-radius:10px;width:100%;max-width:640px;box-shadow:0 20px 60px rgba(0,0,0,.5);display:flex;flex-direction:column;max-height:calc(100vh - 120px)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.modal-head h2{border:0;margin:0;padding:0;font-size:15px;text-transform:none;letter-spacing:0;color:var(--txt)}
.modal-x{background:transparent;border:0;color:var(--muted);font-size:16px;cursor:pointer;padding:2px 8px}
.modal-x:hover{color:var(--txt)}
.modal-body{padding:16px 18px;overflow:auto}
.modal-foot{display:flex;align-items:center;gap:10px;padding:12px 18px;border-top:1px solid var(--line)}
.modal-fade-enter-active,.modal-fade-leave-active{transition:opacity .15s}
.modal-fade-enter-from,.modal-fade-leave-to{opacity:0}
/* scenario manager (first use of the modal) */
.scenlist{display:flex;flex-direction:column;gap:10px}
.scenrow{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--panel2)}
.scenrow.active{border-color:var(--accent)}
.scenrow-top{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.scenname{flex:1;width:auto}
.activebadge{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:3px 7px;white-space:nowrap}
.scendesc-edit{width:100%;background:#0c1117;border:1px solid var(--line);color:var(--txt);border-radius:5px;padding:6px 8px;font:inherit;line-height:1.4;resize:vertical}

/* collapsible accordion for the left config cards (one open at a time) */
.config .sect > h2{cursor:pointer;user-select:none}
.config .sect > h2::after{content:'▾';float:right;color:var(--muted);font-size:11px}
.config .sect.collapsed > h2{margin-bottom:0;border-bottom:0;padding-bottom:0}
.config .sect.collapsed > h2::after{content:'▸'}
.config .sect.collapsed > *:not(h2){display:none}
