@font-face{font-family:'Space Grotesk';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/sg-500.woff2) format('woff2')}
@font-face{font-family:'Space Grotesk';font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/sg-600.woff2) format('woff2')}
@font-face{font-family:'Space Grotesk';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/sg-700.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-weight:400;font-style:normal;font-display:swap;src:url(/fonts/px-400.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/px-500.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/px-600.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-weight:700;font-style:normal;font-display:swap;src:url(/fonts/px-700.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:500;font-style:normal;font-display:swap;src:url(/fonts/pm-500.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-weight:600;font-style:normal;font-display:swap;src:url(/fonts/pm-600.woff2) format('woff2')}
:root{
  --ink:#1F2733;--muted:#5B6675;--faint:#8A94A4;--line:#E5E9F0;--line2:#D8DEE9;
  --bg:#EDF0F5;--surface:#fff;--brand:#0A7BC7;--brand-soft:#E6F1FB;--teal:#0E9AA3;
  --ai:#6C4BD8;--ai-soft:#F1ECFC;--ai-line:#DFD2F6;
  --crit:#C0392B;--high:#E2683C;--med:#E3A93C;--good:#1E8E5A;
  --ui:'IBM Plex Sans',system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,"SF Mono",Menlo,Consolas,monospace;
  --disp:'Space Grotesk','IBM Plex Sans',system-ui,-apple-system,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--ui);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:auto}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:13px}
a{color:var(--brand);text-decoration:none}
h1,h2,h3,h4,.wordmark{font-family:var(--disp);letter-spacing:-.015em}

/* login */
.login{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(140deg,#1F2733,#283449)}
.login .loginbox{background:#fff;border-radius:16px;padding:32px;width:380px;max-width:90%;box-shadow:0 30px 70px rgba(0,0,0,.3)}
.loginwrap{min-height:100vh;display:grid;grid-template-columns:1fr 420px;background:linear-gradient(140deg,#1F2733,#283449)}
.loginbrand{display:flex;flex-direction:column;justify-content:center;padding:56px 64px;color:#E7ECF4;max-width:620px;margin-left:auto}
.loginbrand .logo{display:flex;align-items:center;gap:15px;margin-bottom:14px}
.loginbrand .shield{width:50px;height:50px;border-radius:14px;font-size:24px}
.loginbrand .wordmark{font-size:44px;font-weight:800;letter-spacing:-.04em;color:#fff;line-height:1}
.loginbrand .wordmark span{color:#4FB4E8;font-weight:700}
.brandeyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:#7E90AB;margin:0 0 6px 3px}
.brandlede{font-size:18px;line-height:1.5;color:#C9D4E3;margin:20px 0 26px;font-weight:500;max-width:460px}
.brandpts{list-style:none;padding:0;margin:0 0 28px;display:flex;flex-direction:column;gap:14px}
.brandpts li{display:flex;align-items:center;gap:12px;font-size:14.5px;color:#DCE4EF}
.brandpts li .ico{width:18px;height:18px;color:#4FB4E8;flex:0 0 auto}
.brandfoot{font-size:12px;color:#8190A6;border-top:1px solid rgba(255,255,255,.1);padding-top:16px;max-width:440px}
.loginwrap .loginbox{background:#fff;padding:0 56px;display:flex;flex-direction:column;justify-content:center}
.loginh{font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:0 0 4px}
.loginsub{font-size:13.5px;color:var(--muted);margin:0 0 22px}
/* Login adapts to smaller laptops: stack the brand panel above the form rather than hiding nav */
@media(max-width:1080px){.loginwrap{grid-template-columns:1fr}.loginbrand{max-width:none;margin:0;padding:40px 48px 8px}.loginwrap .loginbox{padding:24px 48px 48px}}
.loginbox .logo{display:flex;align-items:center;gap:11px;margin-bottom:18px}
.shield svg{width:62%;height:62%;display:block}
.shield{width:38px;height:38px;border-radius:10px;background:linear-gradient(150deg,var(--brand),#16A9E6);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:18px}
.loginbox h1{font-size:18px;margin:0}.loginbox h1 small{display:block;color:var(--muted);font-size:11px;letter-spacing:.16em;font-weight:600}
.demo{margin-top:14px;font-size:11.5px;color:var(--muted);background:var(--bg);border-radius:9px;padding:10px 12px;font-family:var(--mono);line-height:1.7}
.demo b{cursor:pointer;color:var(--brand)}

/* app shell */
.app{display:grid;grid-template-columns:226px 1fr;min-height:100vh;min-width:1080px}
.rail{background:var(--ink);color:#C3CCDB;padding:18px 13px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto;align-self:start}
.rail .logo{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.rail .logo b{color:#fff;font-size:13px}.rail .logo small{display:block;color:#76829a;font-size:9px;letter-spacing:.16em}
.rgrp{font-family:var(--mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:#5d6c84;margin:15px 0 5px;padding:0 10px}
.rgrp:first-of-type{margin-top:10px}
.nav{display:flex;align-items:center;gap:10px;font-size:12.5px;padding:8px 11px;border-radius:9px;color:#C3CCDB;margin:1px 0;border:none;background:none;width:100%;text-align:left;cursor:pointer;transition:background .12s,color .12s;position:relative}
.nav:hover{background:#2b374e;color:#eaf0f8}.nav.active{background:#33415a;color:#fff;font-weight:600}
.nav.active::before{content:"";position:absolute;left:-11px;top:6px;bottom:6px;width:3px;border-radius:0 3px 3px 0;background:#7E9BFF}
.nav .nicon{width:17px;height:17px;flex:none;opacity:.72;transition:opacity .12s}
.nav:hover .nicon,.nav.active .nicon{opacity:1}
.nav.active .nicon{color:#9db4ff}
.nav .nlabel{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav .navtick{color:#39D98A;font-weight:800;font-size:12px;flex:none}
.nav .tag{margin-left:0;background:#3c4a64;border-radius:6px;font-size:10px;padding:1px 7px;font-family:var(--mono);flex:none}
.nav .tag.crit{background:#7a2c25;color:#ffd9d3}
.rail .foot{margin-top:auto;font-size:10px;color:#69788f;padding-top:14px}
.rail .foot button{color:#9fb0c8;background:none;border:1px solid #3a4763;border-radius:7px;padding:6px 10px;font-size:11px;margin-top:8px}

.main{padding:20px 30px 56px;max-width:1560px;width:100%;margin-inline:auto}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}
.top h1{font-size:21px;margin:0;font-weight:800;letter-spacing:-.02em}.top .sub{font-size:12.5px;color:var(--muted);margin-top:2px}
.who{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--brand)}
.eyebrow.ai{color:var(--ai)}.eyebrow.teal{color:var(--teal)}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin-bottom:16px;box-shadow:0 1px 2px rgba(31,39,51,.04),0 2px 8px rgba(31,39,51,.04);transition:box-shadow .18s ease,border-color .18s ease}
.card:hover{box-shadow:0 1px 2px rgba(31,39,51,.05),0 10px 28px rgba(31,39,51,.07)}
.card h3{margin:5px 0 10px;font-size:15.5px;font-weight:800;letter-spacing:-.01em}.card .cap{font-size:12px;color:var(--muted);margin:-2px 0 8px}
.grid{display:grid;gap:16px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}.g6{grid-template-columns:repeat(6,1fr)}
.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px 16px;box-shadow:0 1px 2px rgba(31,39,51,.04);transition:transform .15s ease,box-shadow .15s ease}
.kpi:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(31,39,51,.07)}
.kpi .l{font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:700}
.kpi .n{font-size:27px;font-weight:800;margin-top:3px;letter-spacing:-.02em}.kpi .n small{font-size:12px;color:var(--faint);font-weight:600}
.kpi.alert{background:linear-gradient(180deg,#fff,#FFF6F4);border-color:#F3D2CB}.kpi.alert .n{color:var(--crit)}

.aihero{background:linear-gradient(135deg,#fff,#FBF9FE 60%,#F4EFFC);border:1px solid var(--ai-line);border-radius:15px;padding:18px 20px;margin-bottom:14px;position:relative}
.aihero .lead{font-size:15px;line-height:1.55;color:#2a3344;margin:8px 0 0}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.chip{background:#fff;border:1px solid var(--line);border-radius:10px;padding:7px 11px;font-size:12px;font-weight:600;display:flex;align-items:center;gap:8px}
.dot{width:8px;height:8px;border-radius:50%}
.src{font-size:10.5px;color:var(--faint);font-family:var(--mono);margin-top:10px}

.table-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}
table.t{width:100%;border-collapse:collapse;font-size:12.5px;min-width:600px}
table.t th{text-align:left;font-family:var(--mono);font-size:9px;letter-spacing:.07em;text-transform:uppercase;color:var(--faint);font-weight:700;border-bottom:1.5px solid var(--line);padding:9px 8px}
table.t td{padding:9px 8px;border-bottom:1px solid #EEF1F6;vertical-align:middle}
table.t tr:last-child td{border-bottom:none}
.pill{font-size:10px;font-weight:800;padding:3px 9px;border-radius:999px;font-family:var(--mono);white-space:nowrap;letter-spacing:.02em}
.s-open{background:var(--crit);color:#fff}
.s-Critical{background:#F6D8D0;color:#9A2A1E}
.s-in_progress,.s-returned,.s-submitted{background:#FFF3DC;color:#9A6A12}
.s-approved,.s-closed,.s-accepted,.s-ok{background:#E3F4EB;color:#1E8E5A}
.s-closure_requested,.s-risk_requested{background:#E6F1FB;color:#0A7BC7}
.s-High{background:#FBE3DA;color:#B5491F}.s-Medium{background:#FBEFD6;color:#946514}
.bar{height:7px;border-radius:4px;background:#E7EBF2;width:80px;display:inline-block;position:relative;vertical-align:middle}
.bar i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--brand)}

.gbars div.row{display:grid;grid-template-columns:110px 1fr 28px;gap:10px;align-items:center;margin:7px 0;font-size:12px}
.gtrack{height:15px;border-radius:6px;display:flex;overflow:hidden;background:#F1F3F8}
.seg-c{background:var(--crit)}.seg-h{background:var(--high)}.seg-m{background:var(--med)}

.btn{font-size:12.5px;font-weight:700;padding:9px 15px;border-radius:10px;border:1px solid var(--line2);background:#fff;color:var(--ink);box-shadow:0 1px 2px rgba(31,39,51,.04);transition:all .14s ease;display:inline-flex;align-items:center;gap:6px;line-height:1}
.btn:hover{border-color:var(--faint);box-shadow:0 2px 8px rgba(31,39,51,.09);transform:translateY(-1px)}
.btn:active{transform:translateY(0);box-shadow:0 1px 2px rgba(31,39,51,.06)}
.btn.p{background:linear-gradient(180deg,#0C86CC,var(--brand));border-color:var(--brand);color:#fff}
.btn.p:hover{box-shadow:0 4px 14px rgba(10,123,199,.32)}
.btn.t{background:linear-gradient(180deg,#12a7b0,var(--teal));border-color:var(--teal);color:#fff}
.btn.t:hover{box-shadow:0 4px 14px rgba(14,154,163,.3)}
.btn.u{background:#B6701A;border-color:#B6701A;color:#fff}
.btn.ai{background:var(--ai-soft);border-color:var(--ai-line);color:var(--ai)}
.btn.ai:hover{box-shadow:0 4px 14px rgba(108,75,216,.22)}
.btn.sm{padding:6px 11px;font-size:11.5px;border-radius:8px}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
.row-btn{display:flex;gap:8px;flex-wrap:wrap}
.field{margin-bottom:10px}.field label{display:block;font-size:11px;color:var(--muted);font-weight:600;margin-bottom:3px}
.field input,.field select,.field textarea{width:100%;border:1px solid var(--line2);border-radius:8px;padding:8px 10px;background:#fff}
textarea{min-height:64px;resize:vertical}
.aibox{border:1px solid var(--ai-line);background:var(--ai-soft);border-radius:9px;padding:10px 12px;margin:8px 0;font-size:12.5px}
.aibox .t{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ai);font-weight:800;margin-bottom:4px}
.banner{border-left:4px solid var(--high);background:#FFF7EC;border:1px solid #F1DDB8;border-left-width:4px;border-radius:10px;padding:11px 14px;margin-bottom:12px;font-size:13px}
.section-header{background:#39424f;color:#C3CCDB;padding:10px 16px;border-radius:10px;margin:20px 0 14px;font-weight:700;font-size:14px;letter-spacing:0.02em;border:1px solid #4a5568}
.q{border:1px solid var(--line);border-radius:11px;padding:13px 15px;margin-bottom:11px;background:#fff}
.q .qt{font-weight:700;font-size:14px;color:var(--ink)}.q .qx{font-size:13.5px;color:#1F2733;margin:4px 0 9px;line-height:1.6;font-weight:500}
.q .opts{margin-top:13px;display:flex;flex-direction:column;gap:7px}
.q .opt{display:flex;gap:11px;align-items:flex-start;border:1px solid var(--line2);border-radius:9px;padding:10px 13px;margin:0;cursor:pointer;font-size:13.5px;color:var(--ink);transition:border-color .12s,background .12s,box-shadow .12s}
.q .opt:hover{border-color:#B9C4DE;background:var(--brand-soft)}
.q .opt.sel{border-color:var(--brand);background:var(--brand-soft);box-shadow:inset 0 0 0 1px var(--brand)}
.q .opt:focus-visible{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(10,123,199,.18)}
.q .opt .rb{width:16px;height:16px;border-radius:50%;border:2px solid var(--line2);flex:none;margin-top:1px;transition:border-color .12s,background .12s}
.q .opt:hover .rb{border-color:#9fb0db}
.q .opt.sel .rb{border-color:var(--brand);background:radial-gradient(circle at center,var(--brand) 0 4px,transparent 5px)}
.q.miss .opts{outline:1px dashed var(--crit);outline-offset:4px;border-radius:10px}
.q .opt.dis{opacity:.55;cursor:default;pointer-events:none}
.toast{position:fixed;right:18px;bottom:18px;background:var(--ink);color:#fff;padding:12px 16px;border-radius:10px;font-size:13px;box-shadow:0 12px 30px rgba(0,0,0,.3);z-index:99;max-width:calc(100vw - 36px);width:340px}
.toast.bad{background:var(--crit)}.toast.ok{background:var(--good)}
.empty{color:var(--muted);font-size:13px;padding:18px;text-align:center}
.modal-bg{position:fixed;inset:0;background:rgba(20,26,36,.5);display:flex;align-items:center;justify-content:center;z-index:90}
.modal{background:#fff;border-radius:14px;padding:22px;width:480px;max-width:92vw;box-shadow:0 30px 70px rgba(0,0,0,.3)}
.modal h3{margin:0 0 10px}
/* This is a desktop/laptop-only tool. The layout holds its shape from a 13" laptop
   up through large/ultra-wide monitors, and survives window resizing or moving between
   screens. Rather than collapsing into a mobile layout (which would hide navigation),
   below the comfortable minimum the whole app keeps its proportions and the page scrolls
   horizontally — so the sidebar and every control stay reachable at any width. */
@media(max-width:1280px){.app{grid-template-columns:208px 1fr}.rail{padding:15px 11px}.nav{font-size:12px;padding:6px 9px}.main{padding:18px 22px 44px}}
@media(min-width:2000px){body{font-size:15px}.main{max-width:1760px}}

/* ---- modal fit: sticky header/footer, scrollable body ---- */
.modal{display:flex;flex-direction:column;max-height:88vh}
.modal .mhead{margin:0 0 8px}
.modal .mbody{overflow:auto;flex:1;margin:0 -4px;padding:0 4px}
.modal .mfoot{border-top:1px solid var(--line);padding-top:12px;margin-top:10px;display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.modal h3{margin:0 0 4px}

/* ---- help / "what this means" expander ---- */
.help{margin:6px 0 8px;border:1px solid var(--ai-line);border-radius:9px;overflow:hidden;background:#fff}
.help>summary{cursor:pointer;list-style:none;padding:8px 11px;font-size:12px;font-weight:700;color:var(--ai);background:var(--ai-soft)}
.help>summary::-webkit-details-marker{display:none}
.help>summary::before{content:"❔ ";}
.help .helpbody{padding:12px 14px;font-size:12.5px;color:#33405A;line-height:1.65;background:#F4F1FC;border-top:1px solid var(--ai-line)}
.help .helpbody strong{color:var(--ink)}
.hint{font-size:12px;color:var(--muted);margin:2px 0 8px;font-style:italic}
.eg{margin-top:8px;font-size:12px;color:var(--muted)}.eg b{color:#39424f}

/* ---- BIA ---- */
.proc{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px;background:#fff}
.proc .ph{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}
.tier{font-size:10.5px;font-weight:800;padding:3px 10px;border-radius:999px;font-family:var(--mono)}
.tier-1{background:#FCEFD2;color:#8A6A00;border:1px solid #EAD08A}
.tier-2{background:#E7EDF3;color:#566679;border:1px solid #CFD9E6}
.tier-3{background:#EDE7DE;color:#6B5D45;border:1px solid #D9CDB8}
.tier-rev{background:#F1ECFC;color:#6C4BD8;border:1px solid #DFD2F6}
.tier-low{background:#EEF1F6;color:#5B6675}
.impgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin:8px 0}
.improw{display:grid;grid-template-columns:1fr 130px;gap:8px;align-items:center;font-size:12.5px}
.improw .il{color:#39424f}.improw .il small{display:block;color:var(--faint);font-size:10.5px}
.improw select{padding:5px 8px;border:1px solid var(--line2);border-radius:7px}
.dep{display:grid;grid-template-columns:150px 1fr 170px 30px;gap:8px;align-items:center;margin:6px 0}
.dep select,.dep input{padding:6px 8px;border:1px solid var(--line2);border-radius:7px}
.spofwarn{background:#FCE9E6;border:1px solid #F1C4BC;color:#A23226;border-radius:9px;padding:9px 12px;font-size:12.5px;margin:8px 0}
.miss{outline:2px solid var(--crit) !important}
.gapsel{padding:6px 9px;border:1px solid var(--line2);border-radius:8px;font-size:12px;background:#fff;font-weight:600}
.duein{padding:5px 8px;border:1px solid var(--line2);border-radius:7px;font-size:12px}
/* critical assets */
.rank{width:22px;height:22px;border-radius:7px;background:var(--ink);color:#fff;font-weight:800;font-size:11px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono)}
.flag-spof{background:#FCE4E2;color:#B23A2C;border:1px solid #F2C4BC;font-size:10px;font-weight:800;padding:1px 7px;border-radius:999px;font-family:var(--mono)}

/* ---- BIA layout v2 (match Console) ---- */
.bsec{border-top:1px solid var(--line);margin-top:14px;padding-top:12px}
.bsechead{font-size:13px;font-weight:800;color:var(--ink);margin-bottom:10px;display:flex;align-items:center;gap:7px}
.iinfo{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:#E6F1FB;color:var(--brand);font-size:10px;font-weight:800;cursor:help;font-style:normal}
.impgrid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px 16px;margin:4px 0 2px}
.imp3 label{display:block;font-size:12px;font-weight:700;color:#39424f;margin-bottom:3px}
.imp3 label .iinfo{font-weight:800}
.imp3 select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line2);font-size:12.5px;font-weight:600}
select.i-crit{background:#FBE3E0;border-color:#E9B0A6;color:#9A2A1E}
select.i-high{background:#FCEBDD;border-color:#EBC096;color:#8E5114}
select.i-med{background:#FBF3D6;border-color:#E7D696;color:#6F5410}
select.i-low{background:#E5F4E6;border-color:#B2DCB4;color:#2C6E33}
select.i-none{background:#fff;border-color:var(--line2);color:#5B6675}
select.i-na{background:#EEF1F6;border-color:var(--line2);color:#8A94A4}
select.i-rev{background:#F1ECFC;border-color:#DFD2F6;color:#6C4BD8}
.rtogrid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
.rtogrid label{display:block;font-size:12px;font-weight:700;color:#39424f;margin-bottom:3px}
.rtogrid select{width:100%;padding:8px 10px;border-radius:8px;border:1px solid var(--line2);font-size:12.5px}
.recgap{background:#FBE9E6;border:1px solid #F1C4BC;border-left:4px solid var(--crit);color:#9A2A1E;border-radius:9px;padding:9px 13px;font-size:12.5px;margin:12px 0 4px}
.dephead{display:grid;grid-template-columns:160px 1fr 1fr 150px 30px;gap:8px;font-family:var(--mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:4px 0;padding:0 2px}
.deprow{display:grid;grid-template-columns:160px 1fr 1fr 150px 30px;gap:8px;align-items:center;margin:6px 0}
.deprow select,.deprow input{padding:7px 9px;border:1px solid var(--line2);border-radius:7px;font-size:12.5px;width:100%}
.nodeps{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--muted);margin-top:10px}
.linkbtn{background:none;border:none;color:var(--brand);font-weight:700;font-size:12.5px;padding:6px 0;cursor:pointer;display:inline-flex;align-items:center;gap:4px;vertical-align:middle}
.ico{width:15px;height:15px;flex:0 0 auto;display:inline-block;vertical-align:-2px}
.btn.sm .ico{width:13px;height:13px}
.linkbtn .ico{width:13px;height:13px}
.btn-icon .ico{width:16px;height:16px;display:block}
.procname{font-weight:700;font-size:15px;border:none;border-bottom:1px solid var(--line2);width:100%;padding:4px 0;background:none}
.biatop{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:6px}

/* ---- TTX scenario selector ---- */
.exsel{display:flex;flex-direction:column;gap:6px}
.exchip{text-align:left;border:1px solid var(--line2);background:#fff;border-radius:9px;padding:9px 12px;display:flex;align-items:center;gap:10px;font-size:12.5px;color:#39424f}
.exchip b{flex:1;font-weight:600}
.exchip .exd{font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--bg);padding:2px 8px;border-radius:999px}
.exchip.active{border-color:var(--teal);background:var(--teal-soft);color:var(--ink)}
.exchip.active .exd{background:#fff;color:var(--teal)}
/* gap filter bar */
.filterbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:12px}
.filterbar select,.filterbar input{padding:7px 10px;border:1px solid var(--line2);border-radius:8px;font-size:12.5px;background:#fff}
.filterbar .fl{font-size:11px;color:var(--muted);font-weight:700;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}
/* reassessment comparison */
.cmp{font-size:11px;font-family:var(--mono);padding:1px 7px;border-radius:999px;margin-left:6px}
.cmp.up{background:#E3F4EB;color:#1E8E5A}.cmp.down{background:#FBE7E7;color:#B23030}.cmp.same{background:#EEF1F6;color:#5B6675}
.was{font-size:11px;color:var(--muted)}

/* ---- board pack + print ---- */
.boardpack{background:#fff;border:1px solid var(--line);border-radius:12px;padding:28px 32px;color:var(--ink)}
.boardpack h1{font-size:22px}.boardpack h2{font-size:15px;margin:18px 0 6px;border-bottom:2px solid var(--brand);padding-bottom:4px;color:var(--ink)}
.boardpack p{font-size:13px;line-height:1.6;color:#33405A}
.boardpack ul{font-size:13px;color:#33405A;line-height:1.6}
.bp-head{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid var(--ink);padding-bottom:10px}
table.bp td,table.bp th{padding:6px 8px;font-size:12px}

/* Enhanced Board Pack Components */
.rag-status{display:flex;align-items:center;gap:16px;background:#fff;border:2px solid var(--line);border-radius:12px;padding:16px 20px;margin:20px 0}
.rag-dot{width:48px;height:48px;border-radius:50%;flex-shrink:0}
.rag-green .rag-dot{background:#4CAF50;box-shadow:0 0 0 4px #E8F5E9}
.rag-amber .rag-dot{background:#FF9800;box-shadow:0 0 0 4px #FFF3E0}
.rag-red .rag-dot{background:#F44336;box-shadow:0 0 0 4px #FFEBEE}
.rag-text{flex:1}
.rag-text strong{font-size:16px;display:block;margin-bottom:4px}
.rag-text span{font-size:13px;color:var(--muted)}

.exec-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin:20px 0}
.stat-box{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:16px;text-align:center}
/* board analytics charts */
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:22px 0 6px}
.chart-card{background:linear-gradient(180deg,#fff,#FBFCFE);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:0 1px 2px rgba(31,39,51,.04),0 4px 14px rgba(31,39,51,.05)}
.chart-card.wide{grid-column:span 1}
.chart-title{font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;font-weight:800;color:var(--ink);margin-bottom:12px;display:flex;align-items:baseline;gap:8px}
.chart-sub{font-family:var(--ui);font-size:10.5px;letter-spacing:0;text-transform:none;font-weight:600;color:var(--faint)}
.chart-body{display:flex;align-items:center;justify-content:center;min-height:120px}
.chart-svg{width:100%;height:auto;display:block}
@media(max-width:980px){.chart-grid{grid-template-columns:1fr}}
.stat-label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin-bottom:8px}
.stat-value{font-size:28px;font-weight:800;color:var(--ink);margin-bottom:4px}
.stat-change{font-size:13px;font-weight:700}
.trend-up{color:var(--good)}.trend-down{color:var(--crit)}

.decisions-list{display:flex;flex-direction:column;gap:14px}
.decision-item{background:#fff;border-left:4px solid var(--line);padding:14px 18px;border-radius:8px}
.decision-high{border-left-color:var(--crit);background:#FFF9F8}
.decision-medium{border-left-color:var(--med);background:#FFFBF5}
.decision-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.decision-type{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--brand)}
.decision-item h4{margin:0 0 6px;font-size:15px;color:var(--ink)}
.decision-item p{margin:0;font-size:13px;color:#39424f;line-height:1.6}

.vendor-summary{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.vendor-summary span{background:var(--bg);padding:8px 14px;border-radius:8px;font-size:13px;color:var(--ink)}
.vendor-summary b{color:var(--brand);font-size:16px}

.bp-section{margin-bottom:32px;page-break-inside:avoid}
.bp-cover{margin-bottom:40px;padding-bottom:24px;border-bottom:3px solid var(--ink)}
.risk-critical{background:#FFF9F8}
.risk-critical td{border-left:3px solid var(--crit)}

@media print{
  .rail,.top .who,#print,.toast{display:none !important}
  .app{display:block !important}.main{padding:0 !important}
  .boardpack{border:none;border-radius:0;padding:0}
  .card,.aihero,.grid{break-inside:avoid}
  table.bp{page-break-inside:auto}
  body{background:#fff}
  .exec-stats{grid-template-columns:repeat(4,1fr);page-break-inside:avoid}
  .stat-box{break-inside:avoid}
  .page-break{page-break-before:always}
  .bp-section{page-break-inside:avoid}
  .chart-card{break-inside:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .chart-svg{-webkit-print-color-adjust:exact;print-color-adjust:exact}  .decisions-list{page-break-inside:avoid}
  .rag-status{page-break-after:avoid}
}

/* ---- notifications bell ---- */
/* Notification bell removed - notifications still accessible via in-app messages */
/*.bell{position:fixed;top:18px;right:18px;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;box-shadow:0 6px 20px rgba(31,39,51,.16);cursor:pointer;z-index:40;display:flex;align-items:center;justify-content:center;color:var(--ink)}
.bell .nicon{width:20px;height:20px}
.bell .bdot{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--crit);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;font-family:var(--mono)}*/
.notif{padding:9px 11px;border:1px solid var(--line);border-radius:9px;margin-bottom:7px;font-size:13px;cursor:pointer;background:#fff}
.notif.un{border-left:3px solid var(--brand);background:var(--brand-soft)}
.notif:hover{border-color:var(--brand)}
/* evidence links */
.evlink{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--brand);background:var(--brand-soft);border-radius:6px;padding:2px 8px;margin:1px 2px;text-decoration:none;border:none;cursor:pointer}
.evlink .ico{width:12px;height:12px}
.evlink:hover{text-decoration:underline}
/* standards clause tags */
.stdtags{display:flex;flex-wrap:wrap;gap:4px;margin:4px 0 2px}
.stdtag{font-size:9.5px;font-family:var(--mono);color:#5B6675;background:#EEF1F6;border:1px solid var(--line);border-radius:999px;padding:1px 7px}

/* summary section sub-headers */
.subhead{background:#F4F6FA;font-weight:800;font-size:11px;letter-spacing:.04em;color:#5B6675;text-transform:uppercase}

/* risk register scores */
.rscore{display:inline-block;min-width:26px;text-align:center;font-family:var(--mono);font-weight:800;font-size:11px;padding:2px 7px;border-radius:7px}
.r-crit{background:#F6D8D0;color:#9A2A1E}.r-high{background:#FBE3DA;color:#B5491F}.r-med{background:#FBEFD6;color:#946514}.r-low{background:#E3F4EB;color:#1E8E5A}
/* maturity level chips */
.lvlchip{display:inline-block;font-family:var(--mono);font-weight:800;font-size:10px;padding:2px 7px;border-radius:999px;color:#fff}
.lvlchip.l1{background:#C0392B}.lvlchip.l2{background:#E2683C}.lvlchip.l3{background:#E3A93C}.lvlchip.l4{background:#3A9E6B}.lvlchip.l5{background:#1E8E5A}

/* multi-tier risk status */
.s-risk_senior_pending{background:#EAE2F7;color:#5B3FA0}
.s-risk_requested,.s-closure_requested{background:#E6F1FB;color:#0A7BC7}

/* My summary — resilience posture header + change pills */
.posture{display:flex;justify-content:space-between;align-items:center;gap:16px;background:linear-gradient(180deg,#fff,#F7F9FC);border:1px solid var(--line);border-left:5px solid var(--indigo);border-radius:12px;padding:16px 18px;margin-bottom:14px}
.posture .lab{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:700}
.posture .lvl{font-size:22px;font-weight:800;color:var(--ink);margin-top:2px}
.posture .src{font-size:12px;color:var(--muted);margin-top:3px}
.posture .score{font-size:40px;font-weight:800;color:var(--indigo);font-family:var(--mono)}
.posture .score small{font-size:15px;color:var(--faint);font-weight:700}
.posture.pb-initial{border-left-color:#C0392B}.posture.pb-developing{border-left-color:#E2683C}
.posture.pb-managed{border-left-color:#E3A93C}.posture.pb-strong{border-left-color:#1E8E5A}
.posture.pb-strong .score{color:#1E8E5A}
.rsec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.sevp{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:#EEF1F6;color:#5B6675}
.sevp.ok{background:#E3F4EB;color:#1E8E5A}.sevp.bad{background:#F6D8D0;color:#9A2A1E}

/* questionnaire answer dropdown (replaces radio options) */
.qsel{width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:13.5px;color:var(--ink);font-family:inherit;cursor:pointer}
.qsel:focus{outline:none;border-color:var(--indigo);box-shadow:0 0 0 3px rgba(10,123,199,.12)}
.qsel:disabled{background:#F4F6FA;color:var(--muted);cursor:default}
.q.miss .qsel{border-color:var(--crit)}

/* resilience map dependency tags */
.dep-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;background:#EEF1F6;color:#465061;white-space:nowrap}
.dep-tag .ico{width:13px;height:13px;color:var(--muted)}
.deptype{display:inline-flex;align-items:center;gap:6px}
.deptype .ico{width:14px;height:14px;color:var(--muted)}

/* live completion chip in stage headers */
.progchip{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;background:#EEF1F6;color:#5B6675;vertical-align:middle}
.progchip.done{background:#E3F4EB;color:#1E8E5A}
/* enterprise focus consistency for interactive controls */
.btn:focus-visible,.linkbtn:focus-visible,.navbtn:focus-visible,.nav:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(10,123,199,.30)}

/* autosave status pill */
.autosave{font-size:11.5px;font-weight:600;color:var(--muted);align-self:center;margin-left:4px}
.autosave.saving{color:var(--muted)}.autosave.saved{color:#1E8E5A}.autosave.err{color:var(--crit)}

/* completion tick on nav items */
.navtick{display:inline-block;margin-left:6px;color:#39D98A;font-weight:800;font-size:12px}

/* teaching empty states */
.emptybox{max-width:520px;margin:48px auto;text-align:center;padding:32px 28px}
.emptybox .emptyic{width:56px;height:56px;border-radius:14px;background:var(--brand-soft);display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:var(--brand)}
.emptybox .emptyic .nicon{width:26px;height:26px}
.emptybox .emptyttl{font-size:18px;font-weight:700;color:var(--ink);margin-bottom:8px}
.emptybox .emptybody{font-size:13.5px;color:var(--muted);line-height:1.65;margin-bottom:20px}
.emptybox .btn{margin:0 auto}

/* inline completion tick in tables */
.rowtick{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:#E3F4EB;color:#1E8E5A;font-size:10px;font-weight:800;vertical-align:middle}

/* My summary — BIA process cards + dependency chips */
.sumproc{border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin-bottom:8px;background:#fff}
.sumproc-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:2px}
.sumdeps{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.depchip{font-size:11px;background:#EEF1F6;color:#3a4452;border-radius:6px;padding:3px 8px;border:1px solid var(--line)}
.depchip.spof{background:#FBE9E7;color:#9a2b1f;border-color:#f3c4bd;font-weight:600}

/* Severity Icons - Softer colors */
.sev-icon{display:inline-block;width:20px;text-align:center;font-weight:bold;margin-right:4px;vertical-align:middle}
.sev-icon.crit{color:#DC6B6B}  /* Softer red - not bright */
.sev-icon.high{color:#E89A3C}  /* Orange */
.sev-icon.med{color:#E3C03C}   /* Yellow */

/* Breadcrumb Navigation */
.breadcrumb{font-size:13px;color:var(--muted);margin-bottom:8px;display:flex;align-items:center;flex-wrap:wrap;gap:4px}
.breadcrumb a{color:var(--brand);text-decoration:none;transition:color 0.2s}
.breadcrumb a:hover{color:var(--brand);text-decoration:underline}
.breadcrumb .sep{margin:0 4px;opacity:0.5;color:var(--faint)}
.breadcrumb span{color:var(--ink);font-weight:500}

/* Timeline Visualization */
.timeline{display:flex;align-items:center;justify-content:space-between;padding:20px;background:var(--surface);border-radius:8px;margin:16px 0;border:1px solid var(--line)}
.timeline-item{display:flex;flex-direction:column;align-items:center;position:relative;flex:1}
.timeline-icon{width:40px;height:40px;border-radius:50%;background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:8px;border:2px solid var(--line);transition:all 0.3s}
.timeline-label{font-size:12px;color:var(--muted);text-align:center}
.timeline-connector{width:40px;height:2px;background:var(--line);margin:0 -10px;align-self:flex-start;margin-top:20px}
.timeline-complete{background:#E8F5E9;border-color:#4CAF50;color:#2E7D32}
.timeline-active{background:#E3F2FD;border-color:#2196F3;color:#1976D2;animation:pulse 2s infinite}
.timeline-review{background:#FFF3E0;border-color:#FF9800;color:#F57C00}
.timeline-pending{background:#F4F6FA;border-color:#C3CCDB;color:#8A94A4}
.timeline-locked{background:#F5F5F5;border-color:#DDD;color:#999}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.5}}

/* Bulk Operations Bar */
.bulk-bar{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;padding:12px 20px;border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,0.3);display:flex;align-items:center;gap:12px;z-index:1000;animation:slideUp 0.3s}
.bulk-bar .count{font-weight:600;margin-right:8px}
.bulk-bar .btn{background:rgba(255,255,255,0.2);border:1px solid rgba(255,255,255,0.3);color:#fff;padding:6px 14px;font-size:13px}
.bulk-bar .btn:hover{background:rgba(255,255,255,0.3)}
@keyframes slideUp{from{bottom:-60px}to{bottom:20px}}
/* ============================================
   MISSING STYLES - Department & Users Tab
   ============================================ */

/* Tab Navigation */
.tab-nav-container{margin-bottom:24px;border-bottom:1px solid var(--line)}
.tab-nav{display:flex;gap:8px;padding-bottom:0}
.tab-btn{background:none;border:none;border-bottom:3px solid transparent;padding:10px 16px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);font-weight:700;transition:all .15s;position:relative;top:1px}
.tab-btn:hover{color:var(--ink);background:var(--bg)}
.tab-btn.active{color:var(--brand);border-bottom-color:var(--brand)}
.tab-icon{display:inline-flex;align-items:center;opacity:.7;transition:all .2s;color:var(--muted)}
.tab-icon .ico{width:17px;height:17px}
.tab-btn:hover .tab-icon,.tab-btn.active .tab-icon{opacity:1;color:var(--brand)}
.tab-label{font-size:13px}
.tab-count{background:var(--bg);color:var(--muted);font-size:11px;padding:2px 8px;border-radius:12px;font-family:var(--mono);font-weight:700;min-width:28px;text-align:center}
.tab-btn.active .tab-count{background:var(--brand-soft);color:var(--brand)}
.tab-content{display:none}
.tab-content.active{display:block}

/* Page Actions Bar */
.page-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:12px;flex-wrap:wrap}
.search-box input{font-size:13px;padding:10px 14px;border:1px solid var(--line2);border-radius:9px;width:280px;background:#fff}
.search-box input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(10,123,199,.12)}

/* Modern Table Styles */
.modern-table{border-collapse:separate;border-spacing:0}
.modern-table thead{background:var(--bg)}
.modern-table th{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border-bottom:2px solid var(--line);padding:12px 12px;font-weight:700;position:sticky;top:0;background:var(--bg);z-index:1}
.modern-table td{padding:14px 12px;border-bottom:1px solid #F4F6FA;vertical-align:middle}
.modern-table tr:last-child td{border-bottom:none}
.modern-table tr:hover{background:#FAFBFC}

/* User Cell with Avatar */
.user-cell{display:flex;align-items:center;gap:12px}
.user-name{font-weight:600;color:var(--ink)}
.user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#16A9E6);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0}
.text-muted{color:var(--muted);font-size:13px}

/* Action Buttons */
.action-btns{display:flex;gap:6px;justify-content:flex-end}
.btn-icon{background:#fff;border:1px solid var(--line2);border-radius:8px;padding:6px 9px;cursor:pointer;transition:all .14s;font-size:14px;color:var(--muted);box-shadow:0 1px 2px rgba(31,39,51,.04)}
.btn-icon:hover{background:var(--brand-soft);border-color:var(--brand);color:var(--brand);box-shadow:0 2px 8px rgba(10,123,199,.14);transform:translateY(-1px)}
.btn-icon.warn:hover{background:#FFF7EC;border-color:var(--high);color:var(--high)}
.btn-icon.danger:hover{background:#FFF3F0;border-color:var(--crit);color:var(--crit)}
.btn-icon span{display:inline-block;filter:grayscale(.3);transition:filter .15s}
.btn-icon:hover span{filter:none}

/* Department Grid */
.dept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.dept-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;transition:all .18s;cursor:default}
.dept-card:hover{box-shadow:0 10px 28px rgba(31,39,51,.08);border-color:#D0D8E5;transform:translateY(-1px)}
.dept-header{display:flex;align-items:flex-start;gap:12px;margin-bottom:14px}
.dept-icon{width:48px;height:48px;background:linear-gradient(135deg,var(--brand-soft),var(--bg));border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--brand);flex-shrink:0}
.dept-icon .ico{width:24px;height:24px}
.dept-info{flex:1;min-width:0}
.dept-info h3{margin:0;font-size:16px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dept-meta{font-size:12px;color:var(--muted);margin-top:2px;display:block}
.dept-actions{display:flex;gap:4px;flex-shrink:0}
.dept-stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.dept-stat{text-align:center}
.stat-label{font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);font-weight:700;display:block;margin-bottom:4px;font-family:var(--mono)}
.stat-value{font-size:18px;font-weight:700;color:var(--ink);display:block}

/* Import Sections */
.import-section{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:18px}
.import-header{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.import-icon{display:inline-flex;color:var(--brand)}
.import-icon .ico{width:26px;height:26px}
.import-header h4{margin:0;font-size:15px;font-weight:700}
.import-format{font-size:11.5px;color:var(--muted);background:#fff;border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin:10px 0 14px;line-height:1.7;font-family:var(--mono)}
.import-result{margin-top:18px;padding:14px;border-radius:10px;font-size:13px;line-height:1.6}
.import-result.success{background:#E3F4EB;border:1px solid #B8DFC8;color:#1E8E5A}
.import-result.error{background:#FFF3F0;border:1px solid #F3D2CB;color:var(--crit)}


/* ---- stage journey stepper (shown on locked stages) ---- */
.journeycard{max-width:760px;margin-inline:auto;text-align:center}
.journey{display:flex;align-items:center;justify-content:center;gap:0;margin:8px 0 18px}
.jstep{display:flex;flex-direction:column;align-items:center;gap:8px;flex:0 0 auto;width:120px}
.jdot{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;font-family:var(--mono);border:2px solid var(--line2);background:#fff;color:var(--muted)}
.jlabel{font-size:12px;color:var(--muted);font-weight:600;text-align:center;line-height:1.2}
.jline{flex:1 1 auto;height:2px;background:var(--line2);margin:0 -6px;margin-bottom:26px;max-width:60px}
.jstep.done .jdot{background:var(--good);border-color:var(--good);color:#fff}
.jstep.done .jlabel{color:var(--ink)}
.jstep.locked .jdot{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.jstep.locked .jlabel{color:var(--brand);font-weight:800}
.journeymsg{font-size:13.5px;color:var(--ink);background:var(--brand-soft);border:1px solid var(--line2);border-radius:10px;padding:12px 16px;display:inline-block;margin-bottom:6px}

/* ---- polish: keyboard focus visibility ---- */
.btn:focus-visible,.nav:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.tab-btn:focus-visible,.btn-icon:focus-visible{outline:2px solid var(--brand);outline-offset:2px}

/* ---- polish: subtle table row hover ---- */
table.t tbody tr{transition:background .12s ease}
table.t tbody tr:hover{background:var(--brand-soft)}

/* ---- polish: notification bell unread badge prominence ---- */
.bell .bdot{box-shadow:0 0 0 2px #fff}

/* ================= AUDITOR-GRADE REPORT ================= */
.auditreport{max-width:1000px;margin-inline:auto}
.auditreport .repsec{position:relative}
.auditreport .secnum{position:absolute;top:18px;right:20px;font:700 11px var(--mono);color:var(--line2);letter-spacing:.05em}
.reph4{margin:16px 0 7px;font-size:13.5px;font-weight:800;color:var(--ink)}
.repnote{color:var(--muted);font-size:12.5px;margin:2px 0 10px;font-style:italic}
.replist{margin:6px 0;padding-left:20px;font-size:13.5px;line-height:1.6}
.replist li{margin:5px 0}
table.t.rep td,table.t.rep th{font-size:12.5px;vertical-align:top}
/* keep report tables inside the page: don't force a 600px floor, and wrap long
   content so the right-hand column (e.g. scope values) is never clipped */
.auditreport table.t{min-width:0;max-width:100%}
.auditreport table.t.rep td,.auditreport table.t.rep th{word-break:break-word;overflow-wrap:anywhere}
.auditreport .repsec h3,.auditreport .repsec>.eyebrow{padding-right:56px}
.repcallout{border-radius:10px;padding:12px 16px;font-size:13px;margin:10px 0;border:1px solid var(--line2)}
.repcallout.crit{background:#FFF3F0;border-color:#F3D2CB;color:#7a241a}
.depcat{background:var(--brand-soft);border:1px solid var(--line2);border-radius:10px;padding:10px 12px;margin-bottom:8px}
.depcat-h{font-weight:800;font-size:12px;text-transform:capitalize;margin-bottom:6px;color:var(--ink)}

/* Cover page */
.repcover{background:linear-gradient(150deg,#1F2733,#2C3A52);color:#E7ECF4;border-radius:16px;padding:44px 48px;margin-bottom:18px}
.repcover-top{display:flex;align-items:center;gap:13px;margin-bottom:40px}
.repcover-top .shield{width:40px;height:40px;border-radius:10px;background:var(--brand);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:18px}
.repbrand{font-weight:800;font-size:17px;color:#fff}
.repbrand-sub{font-size:10px;letter-spacing:.18em;color:#93A2BC}
.repclass{display:inline-block;font:700 10px var(--mono);letter-spacing:.1em;color:#C57E7E;border:1px solid #5b4145;border-radius:6px;padding:3px 10px;margin-bottom:18px;text-transform:uppercase}
.reptitle{font-size:30px;font-weight:800;color:#fff;margin:0 0 8px;line-height:1.15}
.repsubtitle{font-size:17px;color:#C9D4E3;margin-bottom:18px}
.repstatus{display:inline-block;font:800 12px var(--mono);letter-spacing:.08em;padding:5px 14px;border-radius:7px}
.repstatus.final{background:rgba(30,142,90,.2);color:#7BE3AE;border:1px solid #2C7A56}
.repstatus.draft{background:rgba(214,158,46,.18);color:#F0CE84;border:1px solid #7a6230}
.repmeta{width:100%;border-collapse:collapse;margin:34px 0 24px;font-size:12.5px}
.repmeta td{padding:8px 10px;border-top:1px solid rgba(255,255,255,.1)}
.repmeta td:nth-child(odd){color:#93A2BC;width:130px;font-weight:600}
.repmeta td:nth-child(even){color:#E7ECF4;font-weight:600}
.repcover-disc{font-size:11.5px;color:#9FB0C7;line-height:1.6;border-top:1px solid rgba(255,255,255,.1);padding-top:16px}
.reptoc h3,.auditreport .repsec h3{font-size:16px}
.repfoot{text-align:center;font-size:11px;color:var(--muted);padding:18px 0 4px;border-top:1px solid var(--line2);margin-top:8px}

/* Print: clean A4-style document, page breaks per section, running footer */
@media print{
  @page{margin:16mm 14mm;size:A4}
  .auditreport{max-width:none;margin:0}
  .auditreport .repcover{background:#1F2733 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;page-break-after:always;margin:0}
  .auditreport .reptoc{page-break-after:always}
  .auditreport .repsec{page-break-inside:avoid;border:1px solid #E5E9F0 !important;box-shadow:none !important;margin-bottom:14px}
  .auditreport .secnum{color:#B9C2D0 !important}
  .auditreport table.t.rep{font-size:11px}
  .repcallout.crit,.depcat{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .repfoot{position:fixed;bottom:0;left:0;right:0}
}

/* ---- inline help "i" icon + instant styled tooltip (data-tip) ---- */
.ihelp{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:50%;background:var(--brand-soft);color:var(--brand);font-size:10px;font-weight:800;font-style:normal;font-family:var(--mono);cursor:help;margin-left:5px;vertical-align:middle;border:1px solid var(--line2);user-select:none}
.ihelp:hover{background:var(--brand);color:#fff}
[data-tip]{position:relative}
[data-tip]:hover::after{content:attr(data-tip);position:absolute;left:0;bottom:calc(100% + 8px);background:var(--ink);color:#fff;font-size:11.5px;font-weight:500;line-height:1.45;letter-spacing:0;text-transform:none;font-family:var(--ui);padding:8px 11px;border-radius:8px;width:max-content;max-width:240px;white-space:normal;text-align:left;box-shadow:0 8px 24px rgba(0,0,0,.22);z-index:1000;pointer-events:none}
[data-tip]:hover::before{content:"";position:absolute;left:10px;bottom:calc(100% + 2px);border:6px solid transparent;border-top-color:var(--ink);z-index:1000;pointer-events:none}
/* icons near the right edge anchor their tooltip to the right so it never clips off-screen */
.ihelp[data-tip]:hover::after{right:0;left:auto}
.ihelp[data-tip]:hover::before{right:4px;left:auto}
/* dept-stat recovery-site "not set" emphasis */
.dept-stat .stat-value.missing{color:var(--high);font-weight:700;font-size:13px}

/* AI usage telemetry panel */
.usage-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px}
.usage-grid>div{background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:9px 6px;text-align:center}
.usage-grid b{display:block;font-size:18px;font-weight:800;color:var(--ink);line-height:1.1}
.usage-grid b small{font-size:11px;font-weight:700;color:var(--muted)}
.usage-grid span{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}

/* Simulate-loss severity verdict */
.sim-verdict{border:1px solid var(--line);border-left-width:4px;border-radius:12px;padding:14px 16px;background:linear-gradient(180deg,#fff,#FBFCFE)}
.sim-vhead{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.sim-badge{color:#fff;font-weight:800;font-size:11px;letter-spacing:.04em;text-transform:uppercase;padding:4px 11px;border-radius:999px}
.sim-meter{height:8px;border-radius:999px;background:#EDF0F5;overflow:hidden;margin-bottom:10px}
.sim-fill{height:100%;border-radius:999px;transition:width .4s ease}
.sim-meaning{font-size:13.5px;line-height:1.6;color:var(--ink)}

/* Risk analysis modal: likelihood/impact meaning + interpretation */
.risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.risk-cell{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.risk-cell .rk-l{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-bottom:3px}
.risk-cell .rk-v{font-size:13px;font-weight:600;color:var(--ink);line-height:1.4}
.risk-interp{border:1px solid var(--line);border-left-width:4px;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.55;color:var(--ink);margin-bottom:10px}
.rk-score{display:inline-block;color:#fff;font-weight:800;font-size:11px;padding:2px 8px;border-radius:6px;margin-right:6px;white-space:nowrap}

/* SSO sign-in */
.sso-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;text-decoration:none;font-weight:700;font-size:13.5px;color:var(--ink);background:#fff;border:1px solid var(--line2);border-radius:10px;padding:11px 14px;margin-bottom:6px}
.sso-btn:hover{border-color:var(--faint);box-shadow:0 2px 8px rgba(31,39,51,.08)}
.sso-or{display:flex;align-items:center;text-align:center;color:var(--faint);font-size:11px;margin:14px 0 12px}
.sso-or::before,.sso-or::after{content:"";flex:1;height:1px;background:var(--line)}
.sso-or span{padding:0 12px;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase}
.sso-err{background:#FCEBEA;border:1px solid #E2A9A3;color:#8A2A20;border-radius:9px;padding:10px 12px;font-size:13px;margin-bottom:14px}
.callout-box{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:12.5px;line-height:1.6;color:var(--muted)}
.callout-box code{background:#fff;border:1px solid var(--line);border-radius:5px;padding:1px 6px;font-size:11.5px;word-break:break-all}

/* Documentation guidance cards */
.guide-card .guide-sec{margin:10px 0}
.guide-h{font-weight:700;font-size:13px;color:var(--ink);margin-bottom:5px}
.guide-list{margin:0;padding-left:18px;font-size:13px;line-height:1.65;color:#39424f}
.guide-list li{margin:3px 0}
.guide-pit{background:#FCF3F2;border:1px solid #EAD0CC;border-radius:9px;padding:10px 12px;margin-top:10px}
.guide-pit .guide-list{color:#7A3A30}

/* ---- Floating BCP help assistant ---- */
#helpbot{position:fixed;right:22px;bottom:22px;z-index:900;font-size:14px}
#hb-fab{display:flex;align-items:center;gap:8px;background:var(--brand,#0A7BC7);color:#fff;border:none;border-radius:999px;padding:12px 18px;font-weight:700;font-size:13.5px;box-shadow:0 6px 20px rgba(10,123,199,.35);cursor:pointer;transition:transform .15s,box-shadow .15s}
#hb-fab:hover{transform:translateY(-1px);box-shadow:0 8px 26px rgba(10,123,199,.45)}
#hb-fab svg{width:18px;height:18px}
#hb-panel{position:absolute;right:0;bottom:64px;width:370px;max-width:calc(100vw - 44px);height:520px;max-height:calc(100vh - 120px);background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px rgba(20,28,45,.22);display:flex;flex-direction:column;overflow:hidden}
#hb-panel.hb-hidden{display:none}
.hb-head{display:flex;align-items:center;justify-content:space-between;padding:13px 15px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#fff,#FAFBFE)}
.hb-title{font-weight:800;font-size:14px;display:flex;align-items:center;gap:7px}
.hb-title svg{width:17px;height:17px;color:var(--brand,#0A7BC7)}
.hb-head button{background:none;border:none;cursor:pointer;color:var(--muted);padding:4px;border-radius:6px}
.hb-head button:hover{background:var(--bg)}
.hb-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.hb-msg{max-width:86%;padding:9px 12px;border-radius:13px;font-size:13px;line-height:1.55}
.hb-user{align-self:flex-end;background:var(--brand,#0A7BC7);color:#fff;border-bottom-right-radius:4px}
.hb-bot{align-self:flex-start;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-bottom-left-radius:4px}
.hb-bot b{font-weight:700}
.hb-src{font-family:var(--mono);font-size:9px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin-top:6px}
.hb-dots{color:var(--muted)}
.hb-sugg{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px}
.hb-chip{background:#fff;border:1px solid var(--line2,#d8deea);border-radius:999px;padding:6px 11px;font-size:11.5px;color:var(--ink);cursor:pointer;line-height:1.2}
.hb-chip:hover{border-color:var(--brand,#0A7BC7);color:var(--brand,#0A7BC7)}
.hb-input{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--line)}
.hb-input input{flex:1;border:1px solid var(--line2,#d8deea);border-radius:10px;padding:9px 12px;font-size:13px;outline:none}
.hb-input input:focus{border-color:var(--brand,#0A7BC7)}
.hb-input button{background:var(--brand,#0A7BC7);color:#fff;border:none;border-radius:10px;width:40px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.hb-foot{font-size:10px;color:var(--faint);text-align:center;padding:0 12px 10px}
@media print{#helpbot{display:none}}

/* AI source provenance badge */
.ai-src{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;letter-spacing:.2px}
.ai-src.live{background:#EEF1FE;color:#0A7BC7}
.ai-src.off{background:#EEF1F4;color:#5A6573}

/* MFA QR code */
.qrbox{display:inline-block;background:#fff;padding:10px;border:1px solid var(--line,#E3E8F2);border-radius:12px}
.qrbox svg{width:180px;height:180px;display:block}

/* compact table-action buttons */
.btn.xs{padding:3px 10px;font-size:12px;border-radius:7px}
.btn.danger{color:var(--crit,#C0392B);border-color:#F2C7BF}
.btn.danger:hover{background:#FFF3F0;border-color:var(--crit,#C0392B)}

/* Incident recipient / checkbox rows — override global .field label{display:block} */
label.recip-row{display:flex !important;align-items:center;gap:8px;margin:4px 0;cursor:pointer;font-weight:400}
label.recip-row input[type=checkbox]{flex:0 0 auto;margin:0}
label.recip-row .recip-txt{flex:1;min-width:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* ============================================================
   Executive headline banner (dashboard) — deterministic, instant
   ============================================================ */
.exechead{display:flex;gap:24px;align-items:stretch;justify-content:space-between;
  background:linear-gradient(135deg,#1F2733 0%,#283449 55%,#2E3C57 100%);
  border-radius:16px;padding:20px 24px;margin-bottom:16px;color:#EAF0F8;
  box-shadow:0 10px 30px rgba(31,39,51,.18);position:relative;overflow:hidden}
.exechead::after{content:"";position:absolute;top:0;right:0;bottom:0;width:5px}
.exechead.tone-good::after{background:linear-gradient(180deg,#39D98A,#1E8E5A)}
.exechead.tone-warn::after{background:linear-gradient(180deg,#F2C14E,#E3A93C)}
.exechead.tone-crit::after{background:linear-gradient(180deg,#E2683C,#C0392B)}
.exechead.tone-neutral::after{background:linear-gradient(180deg,#7E9BFF,#0A7BC7)}
.exechead .eh-eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#0A7BC7;font-weight:800;margin-bottom:8px}
.exechead .eh-sentence{font-size:17px;line-height:1.5;font-weight:500;color:#F3F7FC;max-width:720px}
.exechead .eh-sentence b{color:#fff;font-weight:800}
.exechead .eh-improve{margin-top:12px;display:inline-flex;align-items:center;gap:8px;font-size:13px;
  background:rgba(57,217,138,.13);border:1px solid rgba(57,217,138,.32);color:#B9F2D6;
  padding:6px 12px;border-radius:9px;font-weight:600}
.exechead .eh-improve svg{width:15px;height:15px;color:#39D98A}
.exechead .eh-improve b{color:#EAFBF2;font-weight:800}
.exechead .eh-metrics{display:flex;gap:8px;align-items:center;flex:none}
.exechead .eh-metric{text-align:center;padding:8px 16px;border-left:1px solid rgba(255,255,255,.1)}
.exechead .eh-metric:first-child{border-left:none}
.exechead .eh-n{font-size:26px;font-weight:800;letter-spacing:-.02em;color:#fff;line-height:1}
.exechead .eh-n span{font-size:12px;font-weight:600;color:#8493AC}
.exechead .eh-n.crit{color:#FF8A78}
.exechead .eh-l{font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#8493AC;font-weight:700;margin-top:5px}
@media(max-width:1200px){.exechead{flex-direction:column;gap:16px}.exechead .eh-metrics{justify-content:flex-start}.exechead .eh-metric:first-child{padding-left:0}}

/* ============================================================
   Light-touch visual polish — applies system-wide via shared classes
   ============================================================ */
/* Slightly crisper card headers with a subtle accent tick */
.card h3{position:relative}
/* Smoother, more tactile primary buttons */
.btn.p{box-shadow:0 1px 2px rgba(10,123,199,.25);transition:transform .1s ease,box-shadow .15s ease,background .15s ease}
.btn.p:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(10,123,199,.28)}
.btn.p:active{transform:translateY(0)}
/* Pills: a touch more contrast + weight so status reads at a glance */
.pill{border:1px solid transparent}
/* Table rows: gentle hover for scannability on dense screens */
.t tbody tr{transition:background .1s ease}
.t tbody tr:hover{background:#FAFBFE}
/* KPI numbers use tabular figures so they align cleanly */
.kpi .n,.eh-n,.exechead .eh-n{font-variant-numeric:tabular-nums}
/* Section eyebrows a hair more refined */
.eyebrow{opacity:.95}
/* Focus visibility for keyboard/accessibility (CISO will notice its absence) */
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--brand);outline-offset:2px;border-radius:6px}

/* Dependency graph legend swatches */
.dgleg{display:inline-block;width:11px;height:11px;border-radius:50%;vertical-align:middle;margin:0 2px}
.dgleg.dg-spof{background:#C0392B}
.dgleg.dg-shared{background:#E3A93C}
.dgleg.dg-normal{background:#6B7A90}
.dgleg.dg-dept{background:#0A7BC7}
#depgraph .dg-node text{pointer-events:none}
#depgraph .dg-node:hover circle{stroke:#1F2733;stroke-width:2}

/* Systemic themes panel (remediation roadmap) */
.theme-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}
.theme-row:last-child{border-bottom:none}
.theme-main{display:flex;align-items:flex-start;gap:10px;min-width:0}
.theme-dot{width:12px;height:12px;border-radius:50%;flex:none;margin-top:4px}
.theme-dot.crit{background:#C0392B}.theme-dot.high{background:#E2683C}.theme-dot.med{background:#E3A93C}
.theme-meta{display:flex;align-items:center;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}

/* BIA impact rating rubric */
.imphelp{margin:6px 0 10px}
.imprub{width:100%;border-collapse:collapse;font-size:11.5px;margin-top:2px}
.imprub th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800;padding:4px 8px;border-bottom:1px solid var(--line)}
.imprub td{padding:5px 8px;border-bottom:1px solid var(--line2);color:var(--ink);vertical-align:top;line-height:1.45}
.imprub td.rk{font-weight:700;white-space:nowrap}
.imprub tbody tr:hover td,.imprub tr:hover td{background:var(--brand-soft)}

/* forgot / reset password links */
.forgotrow{text-align:right;margin-top:10px}
.forgotrow a{font-size:12.5px;color:var(--brand);cursor:pointer;font-weight:600}
.forgotrow a:hover{text-decoration:underline}
