/* risk.css — Risk Assurance workspace visual contract.
 *
 * The body of this file is the CSS constant from the APPROVED PROTOTYPE at
 * reference/risk-assurance-app.jsx, extracted verbatim. Do not restyle it. Read
 * reference/DESIGN_DECISIONS.md first: its "Approved baseline" is a set of
 * constraints, and its verification checklist is the visual regression contract.
 *
 * Everything is scoped under .ras, which is what lets the working plane sit
 * inside the existing portal chrome without touching portal styles.
 *
 * The prototype's own .rail and .topbar rules are retained but UNUSED: the
 * portal shell supplies that level of chrome, per the approved decision to use
 * existing portal chrome rather than a new design system. They are kept rather
 * than deleted because DESIGN_DECISIONS forbids removing accepted elements, and
 * because the four-level chrome hierarchy they document still governs how the
 * page header and toolbar below them are treated.
 *
 * NO summary chrome. No KPI banner, portfolio strip, footer metric bar or
 * dashboard header, in any position. Rejected twice. The only orientation
 * figure is the filtered record count beside the view title.
 */

.ras{
  --page:#E8EAED; --sf:#FFFFFF; --sf2:#F5F6F8; --sf3:#FAFBFC; --hov:#EDF1F6; --selrow:#E4EDF8;
  --nav:#0E1621; --nav2:#18222F; --nav3:#243343; --navln:#22303F; --navtx:#A9B4C0; --navtx2:#6F7B89;
  --acc:#17497F; --acc2:#0F3661; --accq:#E7EFF8; --accln:#B9CFE6;
  --band:#E3E6EA; --band2:#F1F3F6;
  --ink:#111820; --ink2:#39434F; --ink3:#5E6875; --ink4:#8A929C;
  --ln:#E1E4E8; --ln2:#CDD2D8; --ln3:#AEB5BE; --rule:#EBEDF0;
  --red:#A8231B; --redbg:#FBF0EE; --redln:#E4B3AD;
  --amb:#8A5406; --ambbg:#FBF5E9; --ambln:#E0C48A;
  --grn:#0A6B41; --grnbg:#EDF6F1; --grnln:#9BCBB2;
  --blue:#17497F; --bluebg:#EDF3F9; --blueln:#B9CFE6;
  --ui:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Tahoma,Arial,sans-serif;
  --mono:Consolas,"Segoe UI Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-family:var(--ui);
  font-size:12.5px;line-height:1.45;color:var(--ink);background:var(--page);
  -webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;
  height:100vh;overflow:hidden;display:flex;
}
.ras *,.ras *::before,.ras *::after{box-sizing:border-box;}
.ras :where(button){font:inherit;color:inherit;background:none;border:none;padding:0;cursor:pointer;}
.ras :where(input,select,textarea){font:inherit;color:inherit;}
.ras :where(input[type=checkbox]){accent-color:var(--acc);width:13px;height:13px;cursor:pointer;}
.ras :focus-visible{outline:2px solid var(--acc);outline-offset:1px;border-radius:2px;}
.ras h1,.ras h2,.ras h3,.ras h4,.ras p,.ras ul{margin:0;}
.ras ::-webkit-scrollbar{width:11px;height:11px;}
.ras ::-webkit-scrollbar-thumb{background:#C4CAD2;border:3px solid transparent;background-clip:content-box;border-radius:6px;}
.ras ::-webkit-scrollbar-thumb:hover{background:#A9B1BB;background-clip:content-box;}
.ras ::-webkit-scrollbar-track{background:transparent;}

/* ---------- type utilities ---------- */
.num{font-variant-numeric:tabular-nums;}
.eb{font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink3);}
.mu{color:var(--ink3);}.dm{color:var(--ink2);}
.red{color:var(--red);}.amb{color:var(--amb);}.grn{color:var(--grn);}.blu{color:var(--acc);}
.s12{font-size:11.5px;}.s11{font-size:10.5px;}.b{font-weight:600;}
.tr1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.wrp{white-space:normal;line-height:1.25;}
.stk{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2;}
.men{color:var(--acc);font-weight:600;}
.lnk{color:var(--acc);font-weight:600;font-size:10.5px;margin-right:7px;border-bottom:1px solid transparent;}
.lnk:hover{border-bottom-color:var(--accln);}

/* ---------- left rail ---------- */
.rail{width:196px;flex:0 0 196px;background:var(--nav);color:var(--navtx);display:flex;flex-direction:column;overflow-y:auto;}
.rail.col{width:52px;flex-basis:52px;}
.logo{display:flex;gap:10px;align-items:center;padding:12px 12px;border-bottom:1px solid var(--navln);}
.lmk{width:26px;height:26px;flex:0 0 26px;border-radius:2px;background:var(--acc);
  display:flex;align-items:center;justify-content:center;color:#fff;}
.logo h1{font-size:12.5px;color:#fff;font-weight:600;letter-spacing:.01em;}
.logo p{font-size:8.5px;color:var(--navtx2);letter-spacing:.16em;text-transform:uppercase;margin-top:1px;}
.rsec{padding:16px 12px 4px;font-size:9px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--navtx2);}
.rsecb{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 12px 4px;
  font-size:9px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--navtx2);}
.rsecb:hover{color:#D7DEE6;}
.port{margin:6px 10px 2px;padding:6px 8px;background:var(--nav2);border:1px solid var(--navln);border-radius:2px;
  display:flex;align-items:center;justify-content:space-between;font-size:11.5px;color:#E6EBF1;}
.port:hover{background:var(--nav3);}
.ri{display:flex;align-items:center;gap:9px;width:100%;text-align:left;padding:5px 12px;font-size:11.5px;color:var(--navtx);
  border-left:2px solid transparent;}
.ri:hover{background:var(--nav2);color:#fff;}
.ri[data-on="true"]{background:var(--nav3);color:#fff;font-weight:600;border-left-color:#5D9BE0;}
.ri .ct{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--navtx2);}
.ri[data-on="true"] .ct{color:#C6D6E8;}
.ri.c1::before,.ri.c2::before,.ri.c3::before,.ri.c4::before{content:"";width:5px;height:5px;border-radius:50%;flex:0 0 5px;}
.ri.c1::before{background:#D9615A;}.ri.c2::before{background:#D08A45;}
.ri.c3::before{background:#B9A55E;}.ri.c4::before{background:#6C7783;}
.railft{margin-top:auto;border-top:1px solid var(--navln);padding:4px 0;}
.railft .ri{color:var(--navtx2);}
.railft .ri:hover{color:#fff;}
.frow{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:4px 12px;font-size:11.5px;color:var(--navtx);}
.frow:hover{background:var(--nav2);color:#fff;}
.frow .fv{font-size:11px;color:var(--navtx2);max-width:88px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.frow:hover .fv{color:#DDE5EF;}

/* ---------- shell ---------- */
.wrap{flex:1;min-width:0;display:flex;flex-direction:column;height:100vh;overflow:hidden;}
.topbar{height:44px;background:var(--sf);box-shadow:inset 0 -1px 0 var(--ln2);display:flex;align-items:center;
  gap:4px;padding:0 12px;flex-shrink:0;overflow:hidden;}
.tbrand{display:flex;align-items:baseline;gap:9px;min-width:0;}
.tbrand b{font-size:13px;font-weight:600;letter-spacing:-.005em;}
.gs{margin-left:auto;display:flex;align-items:center;gap:8px;border:1px solid transparent;background:var(--sf2);
  border-radius:2px;padding:5px 9px;min-width:300px;height:28px;}
.gs:hover{border-color:var(--ln2);}
.gs:focus-within{border-color:var(--acc);background:var(--sf);box-shadow:0 0 0 2px var(--accq);}
.gs input{border:0;outline:0;flex:1;font-size:11.5px;background:transparent;min-width:0;}
.cmd{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 9px;margin-left:8px;font-size:11.5px;
  color:var(--ink2);border-radius:2px;border:1px solid var(--ln);}
.cmd:hover{background:var(--sf2);color:var(--ink);border-color:var(--ln2);}
.cmd .dia{color:var(--acc);font-size:10px;}
.cmd .kbd{font-family:var(--mono);font-size:9px;font-weight:600;color:var(--ink4);border:1px solid var(--ln2);border-radius:2px;padding:0 3px;}
.av{border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
  font-weight:600;color:#fff;letter-spacing:.02em;}
.av.lg{width:25px;height:25px;font-size:9.5px;}
.av.sm{width:19px;height:19px;font-size:8.5px;}
.bell{position:relative;padding:0 8px;color:var(--ink3);}
.bell:hover,.ico:hover{color:var(--ink);}
.bdg{position:absolute;top:-4px;right:2px;background:var(--red);color:#fff;font-size:8.5px;font-weight:700;border-radius:8px;padding:0 4px;}
.ico{display:inline-flex;align-items:center;justify-content:center;padding:0 7px;color:var(--ink3);}
.ico2{padding:5px 7px;}
.usr{display:inline-flex;align-items:center;gap:4px;padding-left:8px;margin-left:2px;border-left:1px solid var(--ln);}

/* ---------- page header ---------- */
.phd{background:var(--sf);box-shadow:inset 0 -1px 0 var(--ln2);padding:10px 14px 0;flex-shrink:0;}
.ph1{display:flex;align-items:center;gap:16px;}
.phttl{min-width:0;flex:1 1 auto;overflow:hidden;}
.phttl h2{font-size:16.5px;font-weight:600;letter-spacing:-.015em;}
.phsub{display:flex;align-items:center;gap:8px;font-size:10.5px;color:var(--ink3);margin-top:2px;
  font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;}
.phsub span{white-space:nowrap;}
.phsub .dot{width:3px;height:3px;border-radius:50%;background:var(--ln3);display:inline-block;}
.phact{margin-left:auto;display:flex;gap:6px;align-items:center;}
.segw{display:inline-flex;flex:0 0 auto;border:1px solid var(--ln2);border-radius:2px;overflow:hidden;background:var(--sf2);}
.seg{padding:0 11px;height:26px;display:inline-flex;align-items:center;font-size:11.5px;color:var(--ink3);
  border-right:1px solid var(--ln);white-space:nowrap;}
.seg:last-child{border-right:0;}
.seg:hover{color:var(--ink);background:var(--sf);}
.seg[data-on="true"]{background:var(--sf);color:var(--ink);font-weight:600;box-shadow:inset 0 -2px 0 var(--acc);}

/* ---------- toolbar ---------- */
.tbar{display:flex;align-items:center;gap:6px 8px;padding:6px 0;flex-wrap:wrap;border-top:1px solid var(--rule);margin-top:9px;}
.tgrp{display:flex;align-items:center;gap:2px;min-width:0;}
.tright{margin-left:auto;gap:7px;}
.tb{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 8px;border-radius:2px;font-size:11.5px;
  color:var(--ink2);border:1px solid transparent;white-space:nowrap;}
.tb:hover{background:var(--sf2);border-color:var(--ln2);color:var(--ink);}
.tb[data-on="true"]{background:var(--sf2);border-color:var(--ln2);color:var(--ink);}
.tb .vl{color:var(--ink);font-weight:600;}
.vd{width:1px;height:16px;background:var(--ln);margin:0 4px;flex:0 0 1px;}
.chips{gap:5px;flex-wrap:nowrap;overflow:hidden;}
.chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 4px 0 7px;border:1px solid var(--accln);
  background:var(--accq);border-radius:2px;font-size:10.5px;color:var(--ink);white-space:nowrap;max-width:190px;}
.chip .chipk{color:var(--acc);font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;}
.chip .cx{display:inline-flex;padding:2px;color:var(--ink3);border-radius:2px;}
.chip .cx:hover{color:var(--red);background:#fff;}
.srch{height:26px;padding:0 9px;min-width:184px;border:1px solid transparent;border-radius:2px;background:var(--sf2);font-size:11.5px;}
.srch:hover{border-color:var(--ln2);}
.srch:focus{border-color:var(--acc);background:var(--sf);outline:none;box-shadow:0 0 0 2px var(--accq);}
.sel{border:1px solid var(--ln2);border-radius:2px;padding:3px 6px;font-size:11.5px;background:var(--sf);height:26px;}

/* ---------- controls ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 11px;height:28px;border-radius:2px;
  font-size:11.5px;font-weight:600;background:var(--acc);color:#fff;border:1px solid var(--acc);white-space:nowrap;}
.btn:hover{background:var(--acc2);border-color:var(--acc2);}
.btn:disabled{background:var(--sf2);border-color:var(--ln2);color:var(--ink4);cursor:not-allowed;}
.btn.q{background:var(--sf);color:var(--ink);border-color:var(--ln2);font-weight:500;}
.btn.q:hover{background:var(--sf2);border-color:var(--ln3);}
.btn.q[data-on="true"]{background:var(--accq);border-color:var(--accln);color:var(--acc);font-weight:600;}
.btn.q:disabled{background:var(--sf2);color:var(--ink4);border-color:var(--ln);}
.btn.xs{height:23px;padding:0 8px;font-size:11px;}
.btn.dn{color:var(--red);border-color:var(--redln);background:var(--sf);}
.btn.dn:hover{background:var(--redbg);}
.split{display:inline-flex;}
.btn.sl{border-radius:2px 0 0 2px;}
.btn.sr{border-radius:0 2px 2px 0;border-left:1px solid rgba(255,255,255,.3);padding:0 7px;}

/* ---------- status marks ---------- */
.pill{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:1px 6px;border-radius:2px;
  white-space:nowrap;border:1px solid var(--ln2);background:var(--sf2);color:var(--ink2);}
.pill.crit,.pill.high{background:var(--redbg);border-color:var(--redln);color:var(--red);}
.pill.med{background:var(--ambbg);border-color:var(--ambln);color:var(--amb);}
.pill.low{background:var(--grnbg);border-color:var(--grnln);color:var(--grn);}
.pill.blue{background:var(--bluebg);border-color:var(--blueln);color:var(--acc);}
.sq{display:inline-block;font-size:10px;font-weight:600;padding:0 3px 0 0;color:var(--ink3);white-space:nowrap;}
.sq.crit{color:var(--red);}.sq.med{color:var(--amb);}.sq.low{color:var(--grn);}.sq.blue{color:var(--acc);}
.rate{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;}
.rate i{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
.rate.rcrit,.rate.rhigh{color:var(--red);}
.rate.rcrit i,.rate.rhigh i{background:var(--red);}
.rate.rmed{color:var(--amb);}.rate.rmed i{background:var(--amb);}
.rate.rlow{color:var(--ink3);}.rate.rlow i{background:var(--ln3);}
.sevb{width:3px;height:15px;border-radius:1px;flex:0 0 3px;background:var(--ln3);}
.sevb.sev-crit,.sevb.sev-high{background:var(--red);}
.sevb.sev-med{background:var(--amb);}
.sevb.sev-low{background:var(--ln3);}
.ridw{display:flex;align-items:center;gap:6px;min-width:0;}
.rid{font-family:var(--mono);font-size:11.5px;font-weight:600;color:var(--ink2);white-space:nowrap;}

/* ---------- register grid ---------- */
.gwrap{flex:1;min-width:0;overflow:auto;background:var(--sf);}
table.g{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed;}
table.g th{text-align:left;padding:0 8px;white-space:nowrap;user-select:none;position:sticky;z-index:3;}
table.g thead tr:first-child th{top:0;height:22px;background:var(--band);box-shadow:inset 0 -1px 0 var(--ln2);
  font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3);}
table.g thead tr:nth-child(2) th{top:22px;height:26px;background:var(--band2);border-bottom:1px solid var(--ln2);}
table.g th.one{height:48px;background:var(--band);box-shadow:inset 0 -1px 0 var(--ln2);}
table.g th.grp{background:var(--band);}
table.g th.leaf,table.g th.one{font-size:10.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink2);}
table.g th.ctr,table.g td.ctr{text-align:center;}
table.g th.rgt,table.g td.rgt{text-align:right;}
table.g td{border-bottom:1px solid var(--rule);padding:5px 8px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;}
table.g td.bd,table.g th.bd{border-left:1px solid var(--ln2);}
table.g th [class*="ic"],table.g th svg{color:var(--ink3);}
tr.row:nth-child(even) td{background:var(--sf3);}
.ras.nb tr.row:nth-child(even) td{background:var(--sf);}
tr.row:hover td{background:var(--hov);}
tr.row[data-sel="true"] td{background:var(--selrow);}
tr.row[data-sel="true"] .stmt{color:var(--ink);}
tr.row[data-cur="true"] td{background:var(--hov);}
.fz{position:sticky;background:var(--sf);z-index:2;box-shadow:1px 0 0 var(--ln);}
th.fz{z-index:4;background:var(--band2);}
tr.row:hover td.fz,tr.row[data-cur="true"] td.fz{background:var(--hov);}
tr.row[data-sel="true"] td.fz{background:var(--selrow);}
tr.row:nth-child(even) td.fz{background:var(--sf3);}
tr.row[data-sel="true"] td:first-child{box-shadow:inset 2px 0 0 var(--acc),1px 0 0 var(--ln);}
tr.row[data-cur="true"] td:first-child{box-shadow:inset 2px 0 0 var(--ink3),1px 0 0 var(--ln);}
tr.row[data-sel="true"][data-cur="true"] td:first-child{box-shadow:inset 2px 0 0 var(--acc),1px 0 0 var(--ln);}
.rz{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;}
.rz:hover{background:var(--accln);}
.ghd td{background:var(--band2);font-weight:600;font-size:11px;padding:0;
  border-bottom:1px solid var(--ln2);border-top:1px solid var(--ln2);}
.ghb{display:flex;align-items:center;gap:7px;width:100%;text-align:left;padding:5px 9px;color:var(--ink);
  letter-spacing:.02em;}
.ghb:hover{background:var(--hov);}
.ghb svg{color:var(--ink3);}
.stmtc{display:flex;gap:6px;align-items:flex-start;}
.stmt{font-size:11.5px;font-weight:600;line-height:1.3;display:-webkit-box;-webkit-box-orient:vertical;
  -webkit-line-clamp:2;overflow:hidden;color:var(--ink);}
.g[data-d="Comfortable"] .stmt{-webkit-line-clamp:3;}
.g[data-d="Compact"] .stmt{-webkit-line-clamp:1;}
tr.row:hover .stmt,tr.row[data-sel="true"] .stmt{-webkit-line-clamp:unset;overflow:visible;}
.exc{color:var(--red);font-size:8px;line-height:1.8;flex-shrink:0;cursor:help;}
.figw{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;}
.figw.lft{align-items:flex-start;}
.fig{font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink);}
.figs{font-size:10px;font-weight:400;color:var(--ink4);margin-top:1px;line-height:1.2;white-space:normal;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.stat{font-weight:500;color:var(--ink);}
.chgl{display:flex;flex-direction:column;gap:1px;}
.chg{font-size:10px;color:var(--ink3);line-height:1.3;}
.chg.crit{color:var(--red);}.chg.med{color:var(--amb);}.chg.low{color:var(--grn);}.chg.blue{color:var(--acc);}
.g[data-d="Compact"] td{padding:3px 8px;}
.g[data-d="Compact"] .sub{display:none;}
.g[data-d="Compact"] .av.sm{width:17px;height:17px;font-size:8px;}
.g[data-d="Compact"] .wrp{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.g[data-d="Compact"] .btn.xs{height:19px;padding:0 6px;font-size:10.5px;}
.g[data-d="Standard"] td{padding:5px 8px;}
.g[data-d="Comfortable"] td{padding:7px 8px;}

/* ---------- editable vs calculated ---------- */
.ed{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:1px 4px;margin:-1px -4px;border-radius:2px;
  border:1px solid transparent;border-bottom:1px dotted var(--ln3);text-align:left;}
.ed:hover{background:var(--sf);border-color:var(--ln2);border-bottom-style:solid;}
.ed .car{color:var(--ink4);opacity:0;flex-shrink:0;display:inline-flex;}
.ed:hover .car{opacity:1;}
.ed[data-open="true"]{background:var(--sf);border-color:var(--acc);border-bottom-style:solid;box-shadow:0 0 0 2px var(--accq);}
.dv{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:1px 4px;margin:-1px -4px;border-radius:2px;
  border:1px solid transparent;text-align:left;cursor:help;}
.dv:hover{background:var(--sf2);border-color:var(--ln);}
.dv .lk{font-family:var(--mono);font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  color:var(--ink4);border:1px solid var(--ln2);border-radius:2px;padding:0 2px;opacity:0;flex-shrink:0;}
.dv:hover .lk,.dv[data-open="true"] .lk{opacity:1;}
.dv[data-open="true"]{background:var(--sf2);border-color:var(--ln2);}

/* ---------- grid footer ---------- */
.gfoot{display:flex;align-items:center;gap:0;height:30px;flex-shrink:0;background:var(--band2);
  box-shadow:inset 0 1px 0 var(--ln2);padding:0 4px;overflow:hidden;}
.gf{display:flex;align-items:baseline;gap:6px;padding:0 12px;border-right:1px solid var(--ln);white-space:nowrap;min-width:0;}
.gfk{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink3);}
.gfv{font-size:11.5px;font-weight:600;color:var(--ink);}
.gflg{margin-left:auto;display:flex;align-items:center;gap:6px;padding:0 10px;font-size:10px;color:var(--ink4);flex:0 1 auto;overflow:hidden;white-space:nowrap;}
.gflg .sevb{height:11px;margin-right:2px;}
.gflg .edm{display:inline-block;width:14px;height:8px;border-bottom:1px dotted var(--ln3);margin:0 2px 0 10px;}
.gflg .dvm{font-family:var(--mono);font-size:8px;font-weight:600;color:var(--ink4);border:1px solid var(--ln2);
  border-radius:2px;padding:0 2px;margin:0 2px 0 10px;}

/* ---------- bulk bar ---------- */
.bulk{display:flex;align-items:center;gap:7px;padding:6px 12px;background:var(--accq);
  box-shadow:inset 0 -1px 0 var(--accln),inset 0 1px 0 var(--accln);flex-wrap:wrap;flex-shrink:0;}

/* ---------- inspector ---------- */
.body{flex:1;display:flex;min-height:0;flex-direction:column;}
.split{flex:1;display:flex;min-height:0;}
.insp{background:var(--sf);border-top:1px solid var(--ln2);display:flex;flex-direction:column;min-height:0;flex-shrink:0;
  box-shadow:0 -1px 0 var(--ln2);}
.insp.right{border-top:0;border-left:1px solid var(--ln2);width:520px;flex:0 0 520px;height:auto;box-shadow:none;}
.ihd{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;padding:8px 13px;border-bottom:1px solid var(--ln);min-height:46px;background:var(--sf);}
.ititle{font-size:13px;font-weight:600;flex:1 1 auto;min-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.imeta{margin-left:auto;display:flex;align-items:center;justify-content:flex-end;gap:0;flex:1 1 auto;min-width:0;}
.imeta>div:not(.ictrl){padding:0 14px;border-left:1px solid var(--ln);line-height:1.3;white-space:nowrap;max-width:190px;overflow:hidden;text-overflow:ellipsis;}
.imeta .ed{max-width:170px;overflow:hidden;}
.imeta .ed span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.imeta>div .s11{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink3);}
.ictrl{display:flex;gap:5px;align-items:center;padding-left:12px;flex:0 0 auto;max-width:none;margin-left:auto;}
.insp.right .imeta>div:not(.ictrl){padding:0 10px;max-width:150px;}
.insp.right .imeta>div:not(.ictrl):nth-child(-n+2){display:none;}
.insp.right .ihd{padding:8px 10px;}
.insp.right .cards{grid-template-columns:minmax(0,1fr);}
.insp.right .cards>.card{grid-column:1 / -1 !important;}
.itabs{display:flex;gap:0;padding:0 12px;background:var(--sf2);box-shadow:inset 0 -1px 0 var(--ln2);overflow-x:auto;flex-shrink:0;}
.itb{padding:7px 11px;font-size:11.5px;color:var(--ink3);border-bottom:2px solid transparent;white-space:nowrap;}
.itb:hover{color:var(--ink);}
.itb[data-on="true"]{color:var(--ink);font-weight:600;border-bottom-color:var(--acc);}
.ibody{flex:1;overflow:auto;padding:12px 13px;background:var(--sf2);}
.cards{display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:start;}
.card{border:1px solid var(--ln);border-radius:2px;background:var(--sf);padding:11px 12px;}
.card h4{font-size:11.5px;font-weight:600;color:var(--ink);padding-bottom:6px;margin-bottom:8px;border-bottom:1px solid var(--rule);}
.card.p3{background:var(--sf3);}
.card.p3>h4{color:var(--ink2);}
.card.sp{padding:12px 13px;}
.kv{display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:11.5px;}
.kv dt{color:var(--ink3);}
.kv dd{margin:0;text-align:right;}
.bsig{border-top:1px solid var(--rule);margin-top:10px;padding-top:8px;}
.bsig .eb{margin-bottom:3px;}
.stepl{display:flex;gap:8px;align-items:flex-start;font-size:11px;padding:2px 0;}
.ck{width:13px;height:13px;border-radius:50%;flex-shrink:0;margin-top:1px;display:inline-flex;align-items:center;
  justify-content:center;color:#fff;background:var(--grn);}
.ck.off{background:transparent;border:1.5px solid var(--ln3);}
.prog{height:4px;background:var(--ln);border-radius:2px;overflow:hidden;}
.lens{border-left:2px solid var(--ln2);padding-left:10px;margin-top:9px;}
.lens.l{border-color:var(--red);}.lens.o{border-color:var(--amb);}.lens.f{border-color:var(--grn);}
.node{border:1px solid var(--ln2);background:var(--sf2);padding:5px 8px;font-size:11px;border-radius:2px;}
.node.ev{border-color:var(--redln);background:var(--redbg);}
.node.ct{border-color:var(--blueln);background:var(--bluebg);}
.arw{color:var(--ink4);text-align:center;line-height:1;display:flex;justify-content:center;}
.step{font-size:10.5px;padding:3px 8px;border:1px solid var(--ln2);background:var(--sf2);color:var(--ink3);margin:0 -1px 2px 0;}
.step[data-on="true"]{background:var(--acc);color:#fff;border-color:var(--acc);font-weight:600;}
.step[data-done="true"]{background:var(--grnbg);color:var(--grn);border-color:var(--grnln);}
.bnr{border:1px solid var(--ambln);background:var(--ambbg);border-radius:2px;padding:8px 10px;font-size:11.5px;}
.bnr.r{border-color:var(--redln);background:var(--redbg);}
.bnr.i{border-color:var(--blueln);background:var(--bluebg);}
.bnr.g{border-color:var(--grnln);background:var(--grnbg);}
.rel{display:flex;gap:8px;align-items:flex-start;text-align:left;width:100%;}
table.mini{width:100%;border-collapse:collapse;font-size:11px;}
table.mini th{text-align:left;color:var(--ink3);font-weight:600;font-size:9px;text-transform:uppercase;letter-spacing:.09em;
  padding:4px 6px;border-bottom:1px solid var(--ln2);}
table.mini td{padding:5px 6px;border-bottom:1px solid var(--rule);vertical-align:top;}
table.mini tr:hover td{background:var(--sf3);}
table.mini th.rgt,table.mini td.rgt{text-align:right;}
.file{display:flex;align-items:center;gap:9px;padding:6px 0;border-bottom:1px solid var(--rule);}
.fico{width:24px;height:28px;flex-shrink:0;border:1px solid var(--ln2);border-radius:2px;background:var(--sf2);
  display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:7.5px;font-weight:600;color:var(--ink3);}
.drop{border:1px dashed var(--ln2);border-radius:2px;padding:12px;text-align:center;font-size:11.5px;color:var(--ink3);background:var(--sf2);}
.drop:hover,.drop.over{border-color:var(--acc);color:var(--acc);background:var(--accq);}
.docview{border:1px solid var(--ln2);border-radius:2px;background:var(--sf2);padding:11px;}
.docpage{background:#fff;border:1px solid var(--ln2);border-radius:2px;padding:12px 14px;font-size:11px;line-height:1.65;
  max-height:250px;overflow:auto;}
.docpage mark{background:#F7ECC6;padding:0 2px;}
.fld{display:block;margin-bottom:10px;}
.fld span{display:block;font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink3);margin-bottom:4px;}
.fld input,.fld select,.fld textarea{width:100%;border:1px solid var(--ln2);border-radius:2px;padding:6px 8px;font-size:11.5px;}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 2px var(--accq);}

/* ---------- overlays ---------- */
.pop,.epop,.dpop,.menu{background:var(--sf);border:1px solid var(--ln2);border-radius:3px;
  box-shadow:0 8px 24px rgba(17,24,32,.16),0 1px 2px rgba(17,24,32,.08);padding:5px;min-width:238px;}
.pop{position:absolute;z-index:70;max-height:340px;overflow:auto;}
.epop,.dpop{position:fixed;z-index:96;max-height:320px;overflow:auto;}
.dpop{width:296px;padding:11px 12px;}
.menu{position:fixed;z-index:97;}
.popl{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink3);padding:6px 8px 4px;}
.popf{font-size:10.5px;color:var(--ink3);border-top:1px solid var(--ln);margin-top:4px;padding:6px 8px 2px;line-height:1.45;}
.mi,.eopt{display:flex;align-items:center;gap:9px;width:100%;text-align:left;height:30px;padding:0 8px;
  border-radius:2px;font-size:11.5px;color:var(--ink);}
.mi:hover,.eopt:hover{background:var(--hov);}
.mi[data-on="true"],.eopt[data-on="true"]{background:var(--accq);font-weight:600;}
.mi.sep{border-top:1px solid var(--ln);margin-top:4px;height:36px;padding-top:5px;}
.mi>span:first-child,.eopt>span:nth-child(2){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;}
.tick{margin-left:auto;color:var(--acc);display:inline-flex;}
.scrim{position:fixed;inset:0;z-index:66;}
.modal{position:fixed;inset:0;z-index:98;background:rgba(17,24,32,.34);display:flex;align-items:flex-start;justify-content:center;padding-top:7vh;}
.mbox{width:min(580px,94vw);background:var(--sf);border-radius:3px;box-shadow:0 20px 52px rgba(17,24,32,.28);overflow:hidden;}
.mhd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border-bottom:1px solid var(--ln);}
.mhd b{font-size:13px;}
.actx{display:flex;gap:15px;flex-wrap:wrap;padding:8px 14px;background:var(--sf2);border-bottom:1px solid var(--ln);font-size:11px;}
.actx .eb{display:block;}
.atrans{border-top:1px solid var(--ln);padding:10px 14px;max-height:200px;overflow:auto;background:var(--sf3);}
.toast{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:99;background:var(--ink);color:#fff;
  padding:9px 14px;border-radius:3px;font-size:11.5px;display:flex;gap:14px;align-items:center;
  max-width:min(660px,92vw);box-shadow:0 10px 26px rgba(0,0,0,.24);}

/* ---------- alternate views ---------- */
.vwrap{flex:1;min-width:0;overflow:auto;background:var(--sf);display:flex;flex-direction:column;}
.vhead{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--ln);flex-wrap:wrap;}
.vhead b{font-size:12.5px;}
.cal{display:grid;grid-template-columns:repeat(7,1fr);border-left:1px solid var(--ln);}
.calh{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--ink3);
  padding:5px 8px;background:var(--band2);border-right:1px solid var(--ln);border-bottom:1px solid var(--ln2);}
.calc{min-height:104px;border-right:1px solid var(--ln);border-bottom:1px solid var(--ln);padding:4px 5px;}
.calc.today{background:var(--accq);}
.cald{font-size:10.5px;color:var(--ink3);margin-bottom:4px;}
.cchip{display:block;width:100%;text-align:left;font-size:10px;line-height:1.3;padding:2px 5px;margin-bottom:3px;
  background:var(--sf);border:1px solid var(--ln);border-left:2px solid var(--ln3);border-radius:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.cchip:hover{background:var(--hov);}
.tl{padding:4px 0;}
.tlrow{display:flex;align-items:center;gap:10px;padding:6px 14px;border-bottom:1px solid var(--rule);}
.tlrow:hover{background:var(--sf3);}
.tlname{width:252px;flex-shrink:0;display:flex;gap:8px;align-items:baseline;text-align:left;min-width:0;}
.tlname .num{white-space:nowrap;}
.tlbar{flex:1;position:relative;height:22px;min-width:180px;}
.tlline{position:absolute;left:0;right:0;top:10px;height:1px;background:var(--ln2);}
.tlwin{position:absolute;top:8px;height:5px;border-radius:2px;}
.tlres{position:absolute;top:8px;height:5px;border-radius:2px;
  background:repeating-linear-gradient(45deg,var(--ln3) 0 1.5px,transparent 1.5px 4.5px);}
.tmk{position:absolute;top:3px;width:15px;height:15px;margin-left:-7.5px;border-radius:50%;color:#fff;font-size:8px;
  font-weight:600;display:flex;align-items:center;justify-content:center;border:1.5px solid #fff;}
.tlmeta{width:150px;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;}
.hmwrap{flex:1;min-height:0;overflow:auto;padding:14px;}
.hm{border-collapse:separate;border-spacing:0;}
.hm td,.hm th{border-right:1px solid var(--ln);border-bottom:1px solid var(--ln);width:150px;vertical-align:top;padding:4px;}
.hm thead th{border-top:1px solid var(--ln);}
.hm th.hmc,.hm thead tr:first-child th:first-child{border-left:1px solid var(--ln);}
.hm tbody th.hmc{border-left:1px solid var(--ln);}
.hm th{background:var(--band2);color:var(--ink3);font-size:9.5px;font-weight:600;text-align:center;letter-spacing:.05em;}
.hm thead th{height:32px;}
.hm th .num{font-size:11px;color:var(--ink2);display:block;}
.hmsub{display:block;font-size:9px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink4);margin-top:1px;}
.hm th.hmax{background:var(--band);height:20px;letter-spacing:.12em;text-transform:uppercase;}
.hm th.hmc{width:92px;text-align:left;vertical-align:middle;padding:4px 8px;}
.hm th[data-on="true"]{background:var(--accq);color:var(--acc);}
.hm td{position:relative;height:78px;}
.hm td[data-on="true"]{box-shadow:inset 0 0 0 1px var(--acc);}
.hmn{position:absolute;top:3px;right:5px;font-size:9.5px;font-weight:600;color:var(--ink4);}
.hmcs{display:flex;flex-wrap:wrap;gap:2px;padding-right:14px;}
.hchip{font-family:var(--mono);font-size:10px;font-weight:600;padding:1px 4px;border-radius:2px;
  background:var(--sf);border:1px solid var(--ln2);color:var(--ink2);display:inline-flex;align-items:center;gap:2px;}
.hchip[data-sev="crit"],.hchip[data-sev="high"]{border-color:var(--redln);color:var(--red);}
.hchip[data-sev="med"]{border-color:var(--ambln);color:var(--amb);}
.hchip:hover{background:var(--acc);border-color:var(--acc);color:#fff;}
.hchip:hover .hmmk{color:#fff;}
.hmmk{font-size:6px;font-style:normal;color:var(--ink4);}
.hmlg{margin-left:auto;display:flex;align-items:center;gap:5px;}
.hmk{width:15px;height:9px;border:1px solid var(--ln2);display:inline-block;}
.hmmv{display:inline-flex;align-items:center;gap:3px;margin-left:12px;}
.hmmv i{font-size:6px;font-style:normal;color:var(--ink4);}
.m1{background:#F3F6F4;}.m2{background:#F7F6F1;}.m3{background:#FAF3E7;}.m4{background:#F7EAE7;}.m5{background:#F1DCD9;}

/* ---------- grid header: sort, filter, freeze, menu ---------- */
.hwrap{display:flex;align-items:center;gap:4px;height:100%;min-width:0;}
.hlab{cursor:pointer;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.hlab:hover{color:var(--ink);text-decoration:underline;text-decoration-color:var(--ln3);}
.hsort{display:inline-flex;align-items:center;gap:1px;color:var(--acc);flex-shrink:0;}
.hsort i{font-family:var(--mono);font-size:8px;font-style:normal;}
.hfil{color:var(--acc);font-size:7px;flex-shrink:0;}
.hpin{color:var(--ink4);font-size:8px;flex-shrink:0;}
.hdm{margin-left:auto;display:inline-flex;padding:2px;color:var(--ink4);border-radius:2px;opacity:0;flex-shrink:0;}
th:hover .hdm,.hdm[data-on="true"]{opacity:1;}
.hdm:hover{color:var(--ink);background:var(--sf);}
.hmenu{width:250px;padding:5px;}
.hmenu .srch.hf{width:100%;height:24px;margin:2px 0 4px;background:var(--sf);border-color:var(--ln2);}
.flist{max-height:172px;overflow:auto;border:1px solid var(--ln);border-radius:2px;margin-bottom:4px;}
.fitem{display:flex;align-items:center;gap:7px;padding:3px 7px;font-size:11px;cursor:pointer;}
.fitem:hover{background:var(--hov);}
.fitem>span:nth-child(2){flex:1;min-width:0;}
.tb.st{cursor:default;}
.tb.st .cx{display:inline-flex;padding:2px;color:var(--ink4);border-radius:2px;}
.tb.st .cx:hover{color:var(--red);}

/* ---------- decisions: foresight workspace ---------- */
.vwrap.dfv{overflow:auto;}
.df{flex:0 0 auto;height:100%;min-height:560px;min-width:1180px;display:grid;grid-template-columns:272px minmax(0,1fr) 330px;}
.dfl{border-right:1px solid var(--ln);background:var(--sf2);overflow-y:auto;min-width:0;min-height:0;}
.dfr{border-left:1px solid var(--ln);background:var(--sf2);overflow-y:auto;min-width:0;min-height:0;}
.dfc{overflow-y:auto;min-width:0;min-height:0;display:flex;flex-direction:column;}
.dfh{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:9.5px;font-weight:600;text-transform:uppercase;
  letter-spacing:.09em;color:var(--ink3);background:var(--band2);box-shadow:inset 0 -1px 0 var(--ln2);}
.dfhn{margin-left:auto;font-family:var(--mono);font-size:10px;color:var(--ink3);}
.dfi{position:relative;display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:8px 11px 9px;
  border-bottom:1px solid var(--rule);border-left:2px solid transparent;}
.dfi:hover{background:var(--hov);}
.dfi[data-on="true"]{background:var(--sf);border-left-color:var(--acc);box-shadow:inset -1px 0 0 var(--sf);}
.dfi[data-urg="crit"][data-on="false"]{border-left-color:var(--redln);}
.dfi[data-urg="crit"][data-on="true"]{border-left-color:var(--red);}
.dfir{display:flex;align-items:baseline;gap:8px;}
.dfid{margin-left:auto;font-size:11.5px;font-weight:600;}
.dfit{font-size:11.5px;font-weight:600;line-height:1.3;color:var(--ink);
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;}
.dfim{font-size:10.5px;}
.dfib{position:absolute;right:9px;bottom:9px;font-size:8px;line-height:1;color:var(--red);cursor:help;}
.dfct{display:flex;align-items:flex-start;gap:14px;padding:11px 14px;border-bottom:1px solid var(--ln);}
.dfh3{font-size:14px;font-weight:600;letter-spacing:-.01em;line-height:1.3;}
.dfmeta{display:flex;flex-wrap:wrap;gap:4px 18px;margin-top:5px;font-size:11.5px;}
.dfmeta>span{white-space:nowrap;}
.dfmeta .eb{display:block;}
.dfacts{margin-left:auto;display:flex;gap:6px;flex-shrink:0;}
.dfax{padding:13px 14px 6px;}
.dfrow{display:grid;grid-template-columns:170px minmax(0,1fr);gap:12px;padding:9px 0;border-bottom:1px solid var(--rule);}
.dfrow.last{border-bottom:0;}
.dfrl{display:flex;flex-direction:column;font-size:11.5px;line-height:1.3;cursor:help;}
.dftrack{position:relative;height:22px;background:var(--sf2);border:1px solid var(--ln);border-radius:2px;}
.dftrack.tall{height:34px;background:transparent;border:0;}
.dfseg{position:absolute;top:5px;height:10px;}
.dfseg.elapsed{background:#DDE1E6;}
.dfseg.openw{background:var(--ink);}
.dfseg.openw.crit{background:var(--red);}
.dfseg.openw.med{background:var(--amb);}
.dfseg.resv{background:repeating-linear-gradient(45deg,#7FA6D8 0 2px,#DCE7F4 2px 5px);}
.dfseg.resv2{background:repeating-linear-gradient(45deg,var(--ln3) 0 1.5px,transparent 1.5px 4.5px);}
.dfseg.resv3{background:repeating-linear-gradient(45deg,var(--ln2) 0 1px,transparent 1px 5px);}
.dfseg.lapsed{background:repeating-linear-gradient(45deg,var(--redln) 0 1.5px,var(--redbg) 1.5px 5px);}
.dfcow{position:absolute;top:-2px;transform:translateX(4px);font-size:9.5px;font-weight:600;color:var(--amb);white-space:nowrap;}
.dfopt{position:absolute;top:3px;height:28px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-size:10.5px;cursor:help;
  border:1px solid var(--ln2);border-radius:2px;overflow:hidden;white-space:nowrap;}
.dfopt .num{font-weight:700;font-size:12px;}
.dfopt.live{background:var(--sf);border-color:var(--ln3);color:var(--ink);}
.dfopt.part{background:var(--ambbg);border-color:var(--ambln);color:var(--amb);}
.dfopt.gone{background:var(--redbg);border-color:var(--redln);color:var(--red);}
.dfconw{position:absolute;top:9px;right:0;display:flex;align-items:center;gap:0;}
.dfconw::before{content:"";position:absolute;left:7px;right:7px;top:7px;height:1px;background:var(--ln2);}
.dfcon{flex:1 1 0;min-width:0;display:flex;justify-content:flex-start;position:relative;}
.dfcn{width:15px;height:15px;flex:0 0 15px;border-radius:50%;background:var(--sf);border:1px solid var(--ink3);color:var(--ink2);
  font-family:var(--mono);font-size:8.5px;font-weight:600;display:flex;align-items:center;justify-content:center;font-style:normal;}
.dfcn.sm{width:13px;height:13px;flex:0 0 13px;font-size:8px;margin-right:5px;}
.dfct2{font-size:9.5px;line-height:1.25;color:var(--ink2);min-width:0;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;}
.dfmk{position:relative;height:42px;margin-left:182px;border-top:1px solid var(--ln);}
.dfmk .dfsafe{top:13px;}
.dfmk .dfdl{top:26px;}
.dfmk>span{position:absolute;top:0;font-size:9.5px;color:var(--ink3);white-space:nowrap;padding-left:5px;max-width:170px;
  overflow:hidden;text-overflow:ellipsis;cursor:help;}
.dfmk>span>i{position:absolute;left:0;top:0;height:6px;width:1px;background:var(--ln2);}
.dfg{position:absolute;top:-3px;bottom:-3px;width:1px;z-index:2;}
.dfg.now{background:var(--ink);}
.dfg.safe{background:var(--red);}
.dfg.dl{background:var(--ln3);}
.dfmk .dfnow{color:var(--ink);font-weight:600;}
.dfmk .dfnow>i{background:var(--ink);}
.dfmk .dfsafe{color:var(--red);font-weight:600;}
.dfmk .dfsafe>i{background:var(--red);}
.dfmk .dfdl>i{background:var(--ln3);}
.dfchain{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:8px 0 0 182px;font-size:10.5px;color:var(--ink2);}
.dfchain .eb{margin-right:2px;}
.dfcs{display:inline-flex;align-items:center;}
.dfpaths{border-top:1px solid var(--ln);margin-top:10px;}
.dfp{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:9px 14px;
  border-bottom:1px solid var(--rule);border-left:2px solid transparent;}
.dfp:hover{background:var(--hov);}
.dfp[data-on="true"]{background:var(--accq);border-left-color:var(--acc);}
.dfpt{display:flex;align-items:center;gap:8px;font-size:12px;}
.dfpw{line-height:1.35;}
.dfpn{font-size:10.5px;}
.dfsec{padding:9px 12px;border-bottom:1px solid var(--rule);}
.dfsec .kv{font-size:11px;gap:4px 10px;}
.dfln{display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;padding:5px 0;border-top:1px solid var(--rule);}
.dfln>.tr1{flex:1;min-width:0;}
.dfln:hover .rid{color:var(--acc);}

.dfev{display:flex;gap:6px;align-items:baseline;padding:4px 0;border-top:1px solid var(--rule);}
.dfev>.sq:first-child{flex:0 0 82px;}
.dfev>span{flex:1;min-width:0;}
@media (max-width:1400px){ .df{grid-template-columns:240px minmax(0,1fr) 300px;} .dfrow{grid-template-columns:140px minmax(0,1fr);} .dfmk{margin-left:152px;} }

/* ---------- responsive: one composition, only the grid scrolls ---------- */
@media (max-width:1360px){ .gs{min-width:220px;} .seg{padding:0 9px;} }
@media (max-width:1240px){ .gflg{display:none;} }
@media (max-width:1160px){ .gs{min-width:170px;} .phttl h2{font-size:15px;} .srch{min-width:150px;} .phsub .dot:nth-of-type(n+2),.phsub span:nth-of-type(n+3){display:none;} }
@media (max-width:960px){ .rail{width:52px;flex-basis:52px;} .gs{min-width:130px;} }
@media (max-width:760px){ .insp.right{width:100%;flex-basis:auto;} }

/* ==================================================================
   Portal integration layer. The minimum needed to host the working
   plane inside a portal module page. Adds no new visual language.
   ================================================================== */

/* The module page is the working plane. .ras is the flex root the prototype
   expects; without the rail it simply gives all width to .wrap. */
html.ras-host, body.ras-host { margin:0; padding:0; height:100%; overflow:hidden; background:#E8EAED; }
.ras { width:100%; }

/* Truthful absence. Used wherever the read layer cannot supply a prototype
   field. NEVER styled to look like a value, and never a zero. */
.ras .na { color:var(--ink4); font-style:normal; }
.ras .na::after { content:"Not recorded"; }
.ras .na.nd::after { content:"Not determinable"; }
.ras .na.np::after { content:"Not assessed"; }
.ras .na.dash::after { content:"\2014"; }

/* Derived values are never editable. This is the load-bearing distinction from
   DESIGN_DECISIONS; .dv already carries help-cursor + tag, this makes the
   read-only guarantee explicit and unavoidable for keyboard users too. */
.ras .dv { cursor:help; }
.ras [data-derived="true"] { cursor:help; }
.ras [data-derived="true"] input,
.ras [data-derived="true"] select,
.ras [data-derived="true"] textarea { pointer-events:none; }

/* An affordance the production contract cannot honour yet is visible but
   unmistakably unavailable. It never simulates success. */
.ras .btn[data-unavailable="true"],
.ras .tb[data-unavailable="true"] {
  opacity:.55; cursor:not-allowed; background:var(--sf2); color:var(--ink4); border-color:var(--ln);
}

/* Load / empty / error states for the working plane. A pane must never sit
   blank with no explanation. */
.ras .plane-state { padding:26px 16px; font-size:11.5px; color:var(--ink3); }
.ras .plane-state h3 { font-size:12.5px; font-weight:600; color:var(--ink); margin-bottom:5px; }
.ras .plane-state p { max-width:640px; line-height:1.55; margin-top:4px; }
.ras .plane-state code { font-family:var(--mono); font-size:11px; color:var(--ink2); }

/* ==================================================================
   Standalone shell layer.
   
   The portal integration layer above hosts the working plane inside portal
   chrome. This application has no portal, so it supplies the level of chrome
   the portal used to: a topbar with the register switcher and the signed-in
   identity, and the states that exist before a register is open.

   It adds NO new visual language. `.topbar`, `.tbrand`, `.usr`, `.segw`,
   `.seg`, `.btn` and `.plane-state` are all from the approved contract — the
   prototype's own topbar rules, retained but unused in the portal, are what is
   finally used here. The only genuinely new rules are the create sheet and its
   form rows, because the portal workspace had no create affordance at all.
   ================================================================== */

html, body { margin:0; padding:0; height:100%; overflow:hidden; background:#E8EAED; }
body > #risk-root { height:100%; }

/* Without the prototype's left rail, .ras gives all its width to .wrap. */
.ras { width:100%; }

/* The register switcher and identity sit in the topbar. */
.ras .topbar .segw { flex-shrink:1; min-width:0; overflow:hidden; }
.ras .topbar .seg { max-width:220px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ras .topbar .eb { margin-left:8px; padding:1px 5px; border:1px solid var(--ambln); background:var(--ambbg); color:var(--amb); border-radius:2px; }
.ras .topbar .usr { gap:9px; }

/* The pre-register states own the whole plane, so they get room to read. */
.ras .body > .split > .plane-state { flex:1; overflow:auto; background:var(--sf); padding:34px 26px; }

/* Form rows. Used by the sign-in plane and the create sheet. */
.ras .frm { margin-top:12px; max-width:420px; }
.ras .frm label { display:block; margin-bottom:3px; }
.ras .frm .fin {
  width:100%; height:28px; padding:0 8px; background:var(--sf); color:var(--ink);
  border:1px solid var(--ln2); border-radius:2px; font-size:11.5px;
}
.ras .frm textarea.fin { height:auto; padding:5px 8px; line-height:1.45; resize:vertical; }
.ras .frm .fin:focus { outline:0; border-color:var(--acc); box-shadow:0 0 0 2px var(--accq); }
.ras .frm p { margin-top:3px; max-width:420px; }

/* Create sheet: a right-docked panel, not a modal, matching the inspector's
   docking language rather than introducing a dialog. */
.ras .sheet {
  position:fixed; top:0; right:0; bottom:0; width:460px; max-width:100%; z-index:96;
  background:var(--sf); box-shadow:inset 1px 0 0 var(--ln2), -8px 0 24px rgba(16,24,36,.12);
  display:flex; flex-direction:column;
}
.ras .shhd {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:11px 14px; box-shadow:inset 0 -1px 0 var(--ln2); flex-shrink:0;
}
.ras .shhd h3 { font-size:13px; font-weight:600; }
.ras .shbd { flex:1; overflow-y:auto; padding:14px; }
.ras .shbd > .tb { margin-top:16px; }
.ras .shft {
  display:flex; align-items:center; gap:10px; padding:11px 14px;
  box-shadow:inset 0 1px 0 var(--ln2); flex-shrink:0; background:var(--sf3);
}
.ras .shft .s11 { max-width:260px; line-height:1.4; }

@media (max-width:760px){ .ras .sheet { width:100%; } }
