/* Console theme: navy rail, white cards on a cool grey plane, one blue accent. Data colours are separate from chrome. */
:root{--bg:#f5f7fa;--panel:#ffffff;--sunk:#f8f9fb;--ink:#172033;--mute:#4d586a;--faint:#8a94a5;--line:#e2e6ec;--grid:#edf0f4;
--accent:#3568e8;--accent-2:#2f5fda;--accent-soft:#e8f0ff;--accent-soft-ink:#315ccb;--accent-ink:#fff;--track:#edf0f4;
--rail:#111827;--rail-2:#1b2535;--rail-line:#263143;--rail-ink:#9ca8ba;--rail-hi:#23324a;--rail-text:#cbd3e1;
--crit:#d03b3b;--high:#ec835a;--med:#fab219;--low:#5598e7;--info:#8a94a5;--ok:#0ca30c;--warn:#d68b1e;--bad:#d03b3b;
--good-ink:#006300;--crit-ink:#bd5149;--crit-soft:#ffebe9;--warn-ink:#aa751e;--warn-soft:#fff2d9;
--l1:#86b6ef;--l2:#5598e7;--l3:#2a78d6;--l4:#1c5cab;--l5:#104281;--neg-3:#c32d2d;--neg-2:#dc6565;--neg-1:#eb9a9a;--mid:#e3e7ee;
--radius:9px;--shadow:0 1px 2px rgba(16,24,40,.03)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--bg:#0b1120;--panel:#131b2b;--sunk:#172133;--ink:#e8ecf3;
--mute:#b3bccb;--faint:#7d899b;--line:#27324a;--grid:#1f2a3c;--accent:#5d83f7;--accent-2:#6a8df8;--accent-soft:#1c2946;--accent-soft-ink:#a9bdff;
--accent-ink:#0b1120;--track:#1f2a3c;--rail:#080d18;--rail-2:#131b2b;--rail-line:#1c2638;--rail-hi:#1c2946;--good-ink:#3cc23c;
--crit-ink:#f08a82;--crit-soft:#3a1c1f;--warn-ink:#f2c066;--warn-soft:#352817;--l1:#cde2fb;--l2:#9ec5f4;--l3:#6da7ec;--l4:#3987e5;--l5:#184f95;
--neg-3:#a82626;--neg-2:#e07070;--neg-1:#f5b5b5;--mid:#2a3345;--shadow:0 1px 2px rgba(0,0,0,.4)}}
:root[data-theme="dark"]{color-scheme:dark;--bg:#0b1120;--panel:#131b2b;--sunk:#172133;--ink:#e8ecf3;--mute:#b3bccb;--faint:#7d899b;--line:#27324a;
--grid:#1f2a3c;--accent:#5d83f7;--accent-2:#6a8df8;--accent-soft:#1c2946;--accent-soft-ink:#a9bdff;--accent-ink:#0b1120;--track:#1f2a3c;
--rail:#080d18;--rail-2:#131b2b;--rail-line:#1c2638;--rail-hi:#1c2946;--good-ink:#3cc23c;--crit-ink:#f08a82;--crit-soft:#3a1c1f;--warn-ink:#f2c066;
--warn-soft:#352817;--l1:#cde2fb;--l2:#9ec5f4;--l3:#6da7ec;--l4:#3987e5;--l5:#184f95;--neg-3:#a82626;--neg-2:#e07070;--neg-1:#f5b5b5;--mid:#2a3345;
--shadow:0 1px 2px rgba(0,0,0,.4)}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:13.5px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-bottom:1px solid var(--line);
background:var(--panel);position:sticky;top:0;z-index:5;flex-wrap:wrap}
.brand{font-weight:700;color:var(--ink)}
nav{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
main{max-width:1240px;margin:0 auto;padding:26px 32px 72px}
h1{font-size:24px;margin:4px 0 4px}h2{font-size:17px;margin:28px 0 10px}h3{font-size:15px;margin:0 0 8px}
.mute{color:var(--mute)}.small{font-size:13px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;box-shadow:var(--shadow)}
.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.two{display:grid;gap:12px;grid-template-columns:1fr 1fr}@media(max-width:760px){.two{grid-template-columns:1fr}}
.kpi .v{font-size:28px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.2}
.kpi .l{color:var(--mute);font-size:13px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}
.btn{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);
padding:8px 14px;border-radius:8px;font:inherit;cursor:pointer}
.btn:hover{text-decoration:none;border-color:var(--mute)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.small{padding:5px 10px;font-size:13px}.btn[disabled]{opacity:.5;cursor:default}
.linklike{background:none;border:0;color:var(--accent);cursor:pointer;font:inherit;padding:0}
.scroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th,td{text-align:left;padding:8px;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--mute);font-weight:600;font-size:12.5px;white-space:nowrap}
tr.click{cursor:pointer}tr.click:hover td{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.num{text-align:right;font-variant-numeric:tabular-nums}
.pill{display:inline-block;padding:1px 8px;border-radius:99px;font-size:12px;font-weight:600;border:1px solid var(--line);white-space:nowrap}
.pill.CRITICAL{background:var(--crit);color:#fff;border-color:transparent}.pill.HIGH{background:var(--high);color:#fff;border-color:transparent}
.pill.MEDIUM{background:var(--med);color:#1c1c1a;border-color:transparent}.pill.LOW{background:var(--low);color:#fff;border-color:transparent}
.pill.INFO{background:var(--info);color:#fff;border-color:transparent}
.pill.succeeded,.pill.ok{color:var(--ok);border-color:var(--ok)}.pill.failed,.pill.auth_failed,.pill.identity_mismatch{color:var(--bad);border-color:var(--bad)}
.pill.running,.pill.queued{color:var(--warn);border-color:var(--warn)}.pill.cancelled{color:var(--mute)}
label{display:block;font-size:13px;color:var(--mute);margin:10px 0 4px}
input,select,textarea{width:100%;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:8px;
padding:8px 10px;font:inherit}
textarea{min-height:70px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 45%,transparent);border-color:var(--accent)}
.check{display:flex;gap:8px;align-items:flex-start;color:var(--ink);font-size:14px}.check input{width:auto;margin-top:4px}
.fields{display:grid;gap:0 12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.entry{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;margin:10px 0;background:color-mix(in srgb,var(--bg) 50%,var(--panel))}
.note{border-left:3px solid var(--accent);padding:8px 12px;background:var(--panel);border-radius:0 8px 8px 0;margin:10px 0}
.note.warn{border-color:var(--warn)}.note.bad{border-color:var(--bad)}
.err{color:var(--bad);white-space:pre-wrap}
pre.log{background:#111;color:#ddd;padding:12px;border-radius:8px;max-height:420px;overflow:auto;font-size:12px;line-height:1.45;white-space:pre-wrap;word-break:break-word}
.steps{display:flex;gap:6px;flex-wrap:wrap}.steps span{padding:3px 10px;border-radius:99px;border:1px solid var(--line);font-size:12.5px;color:var(--mute)}
.steps span.done{border-color:var(--ok);color:var(--ok)}.steps span.now{border-color:var(--warn);color:var(--warn);font-weight:600}
svg text{fill:var(--mute);font-size:11px}
.bar-track{fill:var(--track)}.bar-fill{fill:var(--accent)}.bar-range{fill:color-mix(in srgb,var(--accent) 28%,transparent)}
.line-a{stroke:var(--accent);fill:none;stroke-width:2}.line-b{stroke:var(--high);fill:none;stroke-width:2}
.dot-a{fill:var(--accent)}.dot-b{fill:var(--high)}
.login{max-width:380px;margin:10vh auto}
.frame{width:100%;height:78vh;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:18px 0 12px;flex-wrap:wrap}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 12px;color:var(--mute);font:inherit;cursor:pointer}
.tabs button.on{color:var(--ink);border-color:var(--accent);font-weight:600}
details summary{cursor:pointer}
.empty{text-align:center;padding:40px 16px}
.fields .wide{grid-column:1/-1}
form .card+.card{margin-top:14px}
.steps span.fail{border-color:var(--bad);color:var(--bad);font-weight:600}
.repo-list{max-height:360px;overflow-y:auto;margin-top:8px}.repo-list tr[hidden]{display:none}.repo-q{max-width:320px}
/* ---- assessment: issues-first layout */
.head h1{font-size:26px}.dl{gap:6px}.crumbs{margin:0}
.tabs .count{display:inline-block;min-width:22px;padding:0 6px;margin-left:4px;border-radius:99px;background:var(--track);color:var(--mute);font-size:12px;font-weight:600;text-align:center}
.tabs button.on .count{background:color-mix(in srgb,var(--accent) 22%,transparent);color:var(--ink)}
.kpis{display:grid;gap:12px;grid-template-columns:repeat(3,1fr)}@media(max-width:860px){.kpis{grid-template-columns:1fr}}
.kpi .v{font-size:34px;margin:2px 0 6px}.kpi .of{font-size:15px;color:var(--mute);font-weight:500;margin-left:4px}
.kpi .pris{gap:6px;margin:4px 0}
.mt{margin-top:18px}h4{font-size:12.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);margin:10px 0 4px}
.sv-CRITICAL{fill:var(--crit)}.sv-HIGH{fill:var(--high)}.sv-MEDIUM{fill:var(--med)}.sv-LOW{fill:var(--low)}
.pri{display:inline-block;min-width:28px;text-align:center;padding:1px 6px;border-radius:6px;font-size:12px;font-weight:700;border:1px solid var(--line);color:var(--mute)}
.pri-P0{background:var(--crit);border-color:var(--crit);color:#fff}.pri-P1{border-color:var(--high);color:var(--high)}
.pri-P2{border-color:var(--med);color:var(--med)}
.tag{display:inline-block;padding:0 7px;border-radius:5px;font-size:11.5px;background:var(--track);color:var(--mute);margin:1px 3px 1px 0;white-space:nowrap}
.tag.env-prod{background:color-mix(in srgb,var(--crit) 18%,transparent);color:var(--ink)}
.tag.env-preprod{background:color-mix(in srgb,var(--high) 16%,transparent);color:var(--ink)}
.tag.hist{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--ink)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%}.dot.CRITICAL{background:var(--crit)}.dot.HIGH{background:var(--high)}
.dot.MEDIUM{background:var(--med)}.dot.LOW{background:var(--low)}.dot.INFO{background:var(--info)}
/* overview lists */
.list{display:flex;flex-direction:column}
.li,.area-row{display:grid;align-items:center;gap:10px;width:100%;background:none;border:0;border-bottom:1px solid var(--line);padding:9px 2px;
  color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.li{grid-template-columns:86px 1fr auto}.li:hover,.area-row:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
.li .pill{justify-self:start}.li-main{display:flex;flex-direction:column;min-width:0}.li-main b{font-weight:600}
.li-n{font-variant-numeric:tabular-nums;font-weight:650;color:var(--mute)}
.area-row{grid-template-columns:150px 1fr 76px 96px}
.dom-row{display:grid;grid-template-columns:150px 1fr 40px;gap:10px;align-items:center;padding:4px 2px}
/* control / cloud matrix */
table.matrix td.cell{text-align:center;font-size:15px;width:44px;padding:6px 2px}
table.matrix th.rot{height:120px;vertical-align:bottom;padding:4px 2px;width:44px}
table.matrix th.rot span{display:inline-block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;max-height:116px;overflow:hidden;text-overflow:ellipsis}
.cell.present{color:var(--ok)}.cell.partial{color:var(--warn)}.cell.absent{color:var(--bad);font-weight:700}.cell.unknown,.cell.na{color:var(--mute)}
.cell.bad{font-weight:700}.cell.bad.CRITICAL{color:var(--crit)}.cell.bad.HIGH{color:var(--high)}.cell.bad.MEDIUM{color:var(--med)}.cell.bad.LOW{color:var(--low)}
.legend{gap:14px;margin-top:10px;color:var(--mute)}.legend .cell{font-size:12.5px}
tr.more{display:none}
td.score{font-weight:600}td.score.s0{color:var(--bad)}td.score.s1{color:var(--high)}td.score.s2{color:var(--med)}td.score.s3,td.score.s4{color:var(--ok)}
/* issues */
.toolbar{position:sticky;top:72px;z-index:3;padding:10px 12px;margin-bottom:10px}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;padding:5px 12px;font:inherit;font-size:13.5px;cursor:pointer}
.seg button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.seg button.on .count{background:transparent;color:inherit}
.seg button[disabled]{opacity:.45;cursor:default}
.seg button .count{display:inline-block;padding:0 6px;margin-left:2px;border-radius:99px;background:var(--track);font-size:12px;font-weight:600}
.filters{margin-top:10px;gap:8px}.filters select,.filters input{width:auto;min-width:170px;padding:6px 10px;font-size:13.5px}.filters input{flex:1;min-width:200px}
.seg.sevs button{padding:4px 10px}.seg.sevs button.on.CRITICAL{background:var(--crit);border-color:var(--crit);color:#fff}
.seg.sevs button.on.HIGH{background:var(--high);border-color:var(--high);color:#fff}.seg.sevs button.on.MEDIUM{background:var(--med);border-color:var(--med);color:#1c1c1a}
.seg.sevs button.on.LOW{background:var(--low);border-color:var(--low);color:#fff}
.issues{padding:0;overflow:hidden}
.iss{border-bottom:1px solid var(--line)}.iss:last-child{border-bottom:0}
.iss-head{display:grid;grid-template-columns:86px 1fr auto 74px 16px;align-items:center;gap:12px;width:100%;background:none;border:0;
  padding:12px 16px;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.iss-head:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.iss-head .pill{justify-self:start}
.iss-main{min-width:0}.iss-main b{font-weight:600}.iss-sub{display:block;font-size:12.5px;margin-top:2px}
.iss-n{display:flex;flex-direction:column;align-items:flex-end;font-variant-numeric:tabular-nums;line-height:1.15}
.chev{color:var(--mute);transition:transform .15s}.iss.open .chev{transform:rotate(90deg)}
.iss.open{background:color-mix(in srgb,var(--bg) 55%,var(--panel))}
.iss-body{padding:2px 16px 16px 114px}@media(max-width:760px){.iss-body{padding-left:16px}.iss-head{grid-template-columns:1fr auto}.iss-head .pill,.iss-head .pri,.chev{display:none}}
.facts p{margin:0 0 6px}.facts{max-width:900px}
.members{margin-top:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);overflow:hidden}
.mem-head{display:flex;gap:10px;align-items:baseline;padding:8px 10px;border-bottom:1px solid var(--line)}
table.mem td{padding:5px 10px;border-bottom:1px solid var(--line)}table.mem tr:last-child td{border-bottom:0}
table.mem td.tags{white-space:nowrap;width:1%}table.mem td.num{width:1%}
table.mem tr.extra{display:none}.members.all tr.extra{display:table-row}.members .show-all{margin:6px 10px}
/* recommendations */
.recs{padding:0}.rec{border-bottom:1px solid var(--line)}.rec:last-child{border-bottom:0}
.rec summary{display:flex;justify-content:space-between;gap:12px;padding:12px 16px;list-style:none}.rec summary::-webkit-details-marker{display:none}
.rec summary:hover{background:color-mix(in srgb,var(--accent) 5%,transparent)}.rec-t{font-weight:600}.rec-meta{white-space:nowrap}
.rec[open]{background:color-mix(in srgb,var(--bg) 55%,var(--panel))}.rec-body{padding:0 16px 14px}.rec-body p{margin:4px 0 8px}
h2 .pri{vertical-align:2px;margin-right:4px}
table.matrix.cloud th.ctl{white-space:normal;text-align:center;width:88px;font-size:12px;line-height:1.25;vertical-align:bottom}
table.matrix.cloud td:first-child{min-width:220px}
.iss{scroll-margin-top:230px}
table.matrix th.rot{height:150px}table.matrix th.rot span{max-height:146px}
.filters input[type=checkbox]{min-width:0;flex:none;width:auto}.filters .check{margin:0;align-items:center}
.changes{margin:10px 0}.chg-row{gap:18px;margin:6px 0 10px}.chg{display:flex;flex-direction:column;min-width:78px}
.chg b{font-size:20px;font-variant-numeric:tabular-nums}.chg .d{font-size:12.5px;font-weight:600;color:var(--mute)}.chg .d.up{color:var(--ok)}.chg .d.down{color:var(--bad)}
.chg-f{gap:6px;margin-bottom:6px}.tag.f-RESOLVED,.tag.f-IMPROVED{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ink)}
.tag.f-NEW,.tag.f-REGRESSED{background:color-mix(in srgb,var(--bad) 20%,transparent);color:var(--ink)}
.three{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.three ul{margin:4px 0;padding-left:18px}
/* detail panel, help */
.panel-back{position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:20}
.panel{position:fixed;top:0;right:0;bottom:0;width:min(640px,100vw);background:var(--panel);border-left:1px solid var(--line);z-index:21;
  display:flex;flex-direction:column;box-shadow:-8px 0 24px rgba(0,0,0,.25)}
.panel-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.panel-head h2{margin:0;font-size:18px}.panel-x{font-size:18px}.panel-body{padding:4px 18px 24px;overflow-y:auto}
.panel-body p{margin:4px 0 8px}.calc{gap:24px;margin:8px 0}.calc div{display:flex;flex-direction:column}.calc b{font-size:20px}
table.cells td{padding:6px 6px;border-bottom:1px solid var(--line)}table.cells td.cell{width:28px;text-align:center;font-size:15px}
table.cells tr.focus td{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.dc{border-bottom:1px solid var(--line)}.dc summary{display:grid;grid-template-columns:1fr 120px 44px;gap:10px;align-items:center;padding:8px 2px;list-style:none}
.dc summary::-webkit-details-marker{display:none}.dc[open] summary{font-weight:600}.dc>*:not(summary){margin-left:4px}
button.dom-row{display:grid;grid-template-columns:150px 1fr 56px;gap:10px;align-items:center;width:100%;background:none;border:0;
  border-bottom:1px solid var(--line);padding:6px 2px;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
button.dom-row:hover{background:color-mix(in srgb,var(--accent) 6%,transparent)}
td.cell.clickable{cursor:pointer}td.cell.clickable:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
.ctl-open{color:var(--ink);text-align:left}.ctl-open:hover{color:var(--accent);text-decoration:underline}
.info{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;border-radius:50%;border:1px solid var(--mute);
  background:none;color:var(--mute);font-size:11px;font-weight:700;cursor:pointer;padding:0;vertical-align:1px;margin-left:4px}
.info:hover{border-color:var(--accent);color:var(--accent)}
dl.gloss{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:6px 16px;margin:4px 0}dl.gloss dt{font-weight:600}dl.gloss dd{margin:0}
dl.gloss dt.focus,dl.gloss dt.focus+dd{background:color-mix(in srgb,var(--accent) 14%,transparent)}
#h-ctl .hc{display:contents}#h-ctl .hc[hidden]{display:none}
table.adv td{padding:4px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.adv td:first-child{width:14px}
pre.fix{background:var(--track);padding:8px 10px;border-radius:6px;white-space:pre-wrap;font-size:12.5px}

/* ================================================================ console shell */
.shell{display:flex;min-height:100vh}.shell .main{flex:1;min-width:0}
.rail{width:236px;flex:none;position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--rail);color:var(--rail-text);
  border-right:1px solid var(--rail-line);padding:0 14px 16px;display:flex;flex-direction:column;z-index:30}
.rail-brand{display:flex;align-items:center;gap:10px;height:64px;font-weight:700;font-size:15px;color:#fff;text-decoration:none}
.rail-brand svg{flex:none}.rail-brand:hover{text-decoration:none}
.ws{position:relative;margin:4px 0 18px}
.ws-btn{display:flex;align-items:center;gap:10px;width:100%;background:var(--rail-2);border:1px solid var(--rail-line);border-radius:9px;
  padding:9px 10px;color:#fff;font:inherit;text-align:left;cursor:pointer}
.ws-btn:hover{border-color:#3a4a66}.ws-av{display:grid;place-items:center;width:32px;height:32px;border-radius:7px;background:var(--accent);
  color:#fff;font-weight:700;font-size:11.5px;flex:none}
.ws-name{font-weight:600;font-size:13px;line-height:1.2}.ws-sub{font-size:11px;color:var(--rail-ink)}
.ws-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);background:var(--rail-2);border:1px solid var(--rail-line);border-radius:9px;
  padding:6px;z-index:40;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.ws-menu a{display:block;padding:7px 9px;border-radius:6px;color:var(--rail-text);font-size:12.5px}.ws-menu a:hover{background:var(--rail-hi);text-decoration:none}
.nav-label{margin:14px 10px 8px;color:#657187;font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.nav-item{display:flex;align-items:center;gap:11px;width:100%;padding:9px 10px;border-radius:7px;color:var(--rail-text);font:inherit;font-size:13px;
  background:none;border:0;border-left:2px solid transparent;cursor:pointer;text-align:left;margin:1px 0}
.nav-item:hover{background:var(--rail-hi);text-decoration:none;color:#fff}.nav-item.on{background:var(--rail-hi);color:#fff;border-left-color:var(--accent)}
.nav-item svg{flex:none;opacity:.8}.nav-item .badge{margin-left:auto;min-width:20px;height:18px;border-radius:9px;display:grid;place-items:center;
  font-size:10.5px;font-weight:700;background:#33415a;color:#dbe3f0;padding:0 6px}.nav-item .badge.bad{background:#5b2328;color:#ffb4ad}
.rail-foot{margin-top:auto;display:flex;gap:10px;align-items:center;border-top:1px solid var(--rail-line);padding-top:14px}
.rail-foot .v{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--rail-2);border:1px solid var(--rail-line);
  font-size:10px;font-weight:700;color:#cbd3e1}.rail-foot b{display:block;color:#fff;font-size:12.5px}.rail-foot span{font-size:11px;color:var(--rail-ink)}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;height:64px;padding:0 32px;border-bottom:1px solid var(--line);
  background:var(--bg);position:sticky;top:0;z-index:20}
.crumbs-nav{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--faint);flex-wrap:wrap}.crumbs-nav a{color:var(--mute)}
.crumbs-nav b{color:var(--ink);font-weight:600}.crumbs-nav .sep{color:var(--faint)}
.top-actions{display:flex;gap:10px;align-items:center}
.icon-btn{display:grid;place-items:center;width:36px;height:36px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--ink);cursor:pointer}
.icon-btn:hover{border-color:var(--accent)}
.rail-toggle{display:none}
@media(max-width:960px){.rail{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .2s}.rail.open{transform:none}
  .rail-toggle{display:grid}main{padding:20px 16px 64px}.topbar{padding:0 16px}}
header.top{display:none}
/* ================================================================ console page */
.eyebrow{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.page-head h1{font-size:28px;letter-spacing:-.01em;margin:6px 0 6px}.page-head p{color:var(--mute);max-width:74ch;margin:0}
.ctx{display:flex;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin:20px 0 16px;box-shadow:var(--shadow)}
.ctx div{flex:1 1 130px;padding:12px 18px;border-right:1px solid var(--line)}.ctx div:last-child{border-right:0}
.ctx span{display:block;font-size:11.5px;color:var(--faint)}.ctx b{font-size:13.5px;font-variant-numeric:tabular-nums}
.ctx b.bad::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--crit);margin-right:6px;vertical-align:1px}
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.5fr);gap:16px;margin-bottom:16px}
@media(max-width:980px){.hero{grid-template-columns:1fr}}
.ring-card{display:flex;flex-direction:column;gap:14px}.ring-row{display:flex;gap:22px;align-items:center}
.ring-row h2{margin:0 0 4px;font-size:21px}.ring-row p{margin:4px 0;color:var(--mute);font-size:12.5px}
.status-pill{align-self:flex-start;white-space:nowrap;border-radius:12px;padding:4px 10px;background:var(--accent-soft);color:var(--accent-soft-ink);
  font-size:10.5px;font-weight:700}.status-pill.bad{background:var(--crit-soft);color:var(--crit-ink)}
.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.card-head h3{font-size:14px;margin:0}
.card-head .sub{font-size:11.5px;color:var(--faint);margin-top:2px}
.lvl-bars{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.lvl-bars div{font-size:11px;color:var(--mute)}
.lvl-bars svg{display:block;width:100%;height:5px;margin-bottom:6px}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:620px){.stats{grid-template-columns:1fr}}
.stat{display:flex;flex-direction:column;gap:10px;min-height:128px}.stat-top{display:flex;gap:12px;align-items:flex-start}
.stat-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:8px;flex:none}
.ic-blue{background:var(--accent-soft);color:var(--accent)}.ic-violet{background:#f0ebff;color:#7456cf}.ic-amber{background:var(--warn-soft);color:var(--warn-ink)}
.ic-red{background:var(--crit-soft);color:var(--crit-ink)}.ic-green{background:#e6f7ee;color:#2b9a62}
:root[data-theme="dark"] .ic-violet{background:#261f3f;color:#b9a3f5}:root[data-theme="dark"] .ic-green{background:#16301f;color:#6fd39f}
.stat-top h3{font-size:13.5px;margin:0}.stat-top .sub{font-size:11.5px;color:var(--faint)}.stat-top .big{margin-left:auto;font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.stat .foot{margin-top:auto;font-size:11.5px;color:var(--faint);border-top:1px solid var(--line);padding-top:8px}
.stat svg.prog{display:block;width:100%;height:5px;margin-top:auto}
.sec{margin-top:16px;padding:0;overflow:hidden}.sec>.sec-h{padding:18px 20px;border-bottom:1px solid var(--line)}
.sec-h h2{font-size:15px;margin:0}.sec-h p{color:var(--mute);font-size:12.5px;margin:6px 0 0;max-width:86ch}
.sec-h .row{justify-content:space-between;align-items:flex-start}.sec-body{padding:18px 20px}
.cap-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}@media(max-width:860px){.cap-grid{grid-template-columns:1fr}}
.cap{display:grid;grid-template-columns:1fr 44px 44px;gap:4px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--grid);cursor:pointer;
  background:none;border-left:0;border-right:0;border-top:0;font:inherit;color:inherit;text-align:left;width:100%}
.cap:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.cap .nm{display:flex;justify-content:space-between;gap:8px;font-size:13px}.cap .nm i{font-style:normal;font-size:11px;color:var(--faint)}
.cap svg{grid-column:1;width:100%;height:8px;display:block}.cap .sc{grid-row:1/3;grid-column:2;font-size:16px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.cap .dl{grid-row:1/3;grid-column:3;font-size:12px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.dl.up{color:var(--good-ink)}.dl.dn{color:var(--crit-ink)}
.legend-row{display:flex;gap:16px;flex-wrap:wrap;font-size:11.5px;color:var(--mute);padding:12px 20px;border-top:1px solid var(--line)}
.legend-row i{display:inline-block;width:18px;height:5px;border-radius:3px;margin-right:6px;vertical-align:2px}
.lg-above{background:var(--accent)}.lg-near{background:#7f9ff0}.lg-below{background:#e9a35b}.lg-tick{width:2px!important;height:11px!important;background:var(--ink)}
.src-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:760px){.src-cards{grid-template-columns:1fr}}
.src{border:1px solid var(--line);border-radius:9px;padding:16px 18px}.src .big{font-size:28px;font-weight:700}.src .big small{font-size:12px;font-weight:500;color:var(--faint);margin-left:6px}
.kv{display:flex;justify-content:space-between;font-size:13px;padding:5px 0}.kv b{font-variant-numeric:tabular-nums}
.filters-bar{display:flex;gap:18px;flex-wrap:wrap;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line)}
.fgroup{display:flex;gap:6px;align-items:center}.fgroup>span{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);margin-right:4px}
.fchip{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:7px;padding:5px 11px;font:inherit;font-size:12.5px;cursor:pointer}
.fchip.on{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--accent-soft-ink);font-weight:600}
.unit{display:grid;grid-template-columns:minmax(180px,1.1fr) 46px minmax(160px,2fr) 70px 90px;gap:14px;align-items:center;padding:13px 20px;
  border-bottom:1px solid var(--grid);cursor:pointer;background:none;border-left:0;border-right:0;border-top:0;width:100%;font:inherit;color:inherit;text-align:left}
.unit:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}.unit:last-child{border-bottom:0}
.unit .u-n b{display:block;font-size:13.5px}.unit .u-n span{font-size:11.5px;color:var(--faint)}
.unit .u-sc{font-size:18px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.unit svg{width:100%;height:8px;display:block}
.unit .u-right{text-align:right;font-size:12px}
@media(max-width:760px){.unit{grid-template-columns:1fr 40px;}.unit svg,.unit .u-lv{display:none}}
.lv{display:inline-grid;place-items:center;min-width:30px;height:20px;border-radius:6px;font-size:11px;font-weight:700;background:var(--l1);color:#0b0b0b}
.lv.l2{background:var(--l2);color:#fff}.lv.l3{background:var(--l3);color:#fff}.lv.l4{background:var(--l4);color:#fff}.lv.l5{background:var(--l5);color:#fff}
.lv.l0{background:var(--mid);color:var(--mute)}
.blk{display:inline-flex;align-items:center;gap:5px;border-radius:9px;padding:2px 8px;font-size:11px;font-weight:700;background:var(--crit-soft);color:var(--crit-ink)}
.blk::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.hm-scroll{overflow-x:auto;padding:14px 20px}
table.hm{width:auto;border-collapse:separate;border-spacing:3px;font-size:12px}table.hm th{font-size:11px;font-weight:700;color:var(--mute);text-align:center;vertical-align:bottom;
  padding:2px 2px 6px;min-width:52px;max-width:74px;white-space:normal;line-height:1.2}
table.hm th small{display:block;font-weight:400;color:var(--faint);font-size:10px}
table.hm td.u{white-space:nowrap;padding-right:12px;font-size:12.5px;border:0;text-align:left}table.hm td.u span{color:var(--faint);font-size:11px;margin-left:6px}
table.hm td.c{width:52px;height:30px;text-align:center;border-radius:4px;font-weight:700;font-size:13px;cursor:pointer;border:0;padding:0}
td.c.present{background:var(--l4);color:#fff}td.c.partial{background:var(--l2);color:#fff}td.c.absent{background:var(--neg-3);color:#fff}
td.c.unknown{background:var(--mid);color:var(--mute);font-weight:500}td.c.na{background:transparent;color:var(--faint);font-weight:400}
td.c:hover{outline:2px solid var(--ink);outline-offset:-2px}
.hm-legend{display:flex;gap:14px;flex-wrap:wrap;align-items:center;font-size:11.5px;color:var(--mute);padding:10px 20px;border-top:1px solid var(--line)}
.hm-legend i{display:inline-block;width:22px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-2px}
.hm-legend .present{background:var(--l4)}.hm-legend .partial{background:var(--l2)}.hm-legend .absent{background:var(--neg-3)}.hm-legend .unknown{background:var(--mid)}
.bl-item{display:grid;grid-template-columns:auto 1fr auto auto;gap:12px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--grid);cursor:pointer;
  background:none;border-left:0;border-right:0;border-top:0;width:100%;font:inherit;color:inherit;text-align:left}.bl-item:hover{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.bl-item .t b{display:block;font-size:13px}.bl-item .t span{font-size:11.5px;color:var(--faint)}.bl-item .lev{font-size:11.5px;color:var(--mute);text-align:right}
.chart-wrap{padding:8px 16px 4px}.chart-wrap svg{display:block;width:100%;height:auto}
.ch-grid{stroke:var(--grid)}.ch-axis{font-size:11px;fill:var(--faint)}.ch-line{fill:none;stroke:var(--accent);stroke-width:2.2}
.ch-line2{fill:none;stroke:#e9a35b;stroke-width:2;stroke-dasharray:5 4}.ch-target{stroke:var(--ok);stroke-width:1.4;stroke-dasharray:6 5}
.ch-band{fill:color-mix(in srgb,var(--accent) 14%,transparent)}.ch-dot{fill:var(--accent)}.ch-dot2{fill:#e9a35b}.ch-lab{font-size:11px;fill:var(--ok);font-weight:700}
.ch-legend{display:flex;gap:18px;font-size:11.5px;color:var(--mute);padding:4px 20px 14px}.ch-legend i{display:inline-block;width:18px;height:2px;margin-right:6px;vertical-align:3px}
.ring-track{stroke:var(--grid)}.ring-fill{stroke:var(--accent);stroke-linecap:round}.ring-num{font-size:30px;font-weight:700;fill:var(--ink)}.ring-of{font-size:11px;fill:var(--faint)}
.bar-bg{fill:var(--grid)}.bar-above{fill:var(--accent)}.bar-near{fill:#7f9ff0}.bar-below{fill:#e9a35b}.bar-tick{fill:var(--ink)}.bar-rng{fill:color-mix(in srgb,var(--accent) 22%,transparent)}
.bar-crit{fill:var(--crit)}.bar-high{fill:#f59a4a}.bar-med{fill:var(--med)}.bar-good{fill:var(--ok)}
.lvl-on{fill:var(--accent)}.lvl-part{fill:var(--l1)}.lvl-off{fill:var(--grid)}
.lg-good{background:var(--ok)}.iss{scroll-margin-top:260px}
/* simple portco list */
.pc-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr))}
.pc-card{display:flex;flex-direction:column;gap:14px;cursor:pointer}.pc-card:hover{border-color:var(--accent)}
.pc-head{display:flex;align-items:center;gap:12px}.pc-head .pill{margin-left:auto}
.pc-nums{display:flex;gap:28px;flex-wrap:wrap;margin-top:6px}.pc-nums .v{font-size:24px;font-weight:650;font-variant-numeric:tabular-nums}
.pc-nums .l{color:var(--mute);font-size:12.5px}
.card.latest{margin:12px 0}
.run-details{margin-top:16px}.run-details>summary{padding:4px 0}.run-details[open]>summary{margin-bottom:12px}
/* Engineering Maturity Model */
.lv-boxes{display:inline-flex;gap:2px;vertical-align:middle}
.tag{display:inline-block;font-size:11px;padding:1px 6px;border-radius:99px;border:1px solid var(--line);color:var(--mute);font-weight:500}
.warn-t{color:var(--warn)}
.emm-legend{display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin:12px 0}
.emm-legend>div{display:flex;gap:10px;align-items:center}
.emm-now{display:flex;gap:10px;align-items:center;margin:8px 0 4px}
.emm-defs{list-style:none;padding:0;margin:0;display:grid;gap:8px}.emm-defs li{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.emm-defs li.cur{font-weight:600}
.emm-cl{list-style:none;padding:0;margin:0;display:grid;gap:8px}.emm-c{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.emm-ic{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:12px;font-weight:700;color:#fff;background:var(--faint)}
.emm-c.met .emm-ic{background:var(--ok)}.emm-c.not-met .emm-ic{background:var(--bad)}.emm-c.manual .emm-ic{background:var(--warn)}
.emm-form label{display:flex;flex-direction:column;gap:4px}.emm-form textarea{width:100%}
@media print{
  .rail,.topbar,.no-print,.panel,.panel-back{display:none!important}
  .shell,.main{display:block!important;margin:0!important}
  body{background:#fff}.card{box-shadow:none;break-inside:avoid}
  table.emm tr{break-inside:avoid}
  .emb,.emm-ic,.chg,.emm-grp td{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
.conf-high,.conf-confirmed{color:var(--ok)}.conf-medium{color:var(--warn)}.conf-low{color:var(--bad)}
/* Engineering maturity table */
.lv-boxes{display:inline-flex;gap:3px;vertical-align:middle}
.emb{width:14px;height:14px;border:1px solid var(--line);border-radius:3px;background:var(--sunk)}
.emb.on.r{background:var(--bad);border-color:var(--bad)}.emb.on.a{background:var(--warn);border-color:var(--warn)}.emb.on.g{background:var(--ok);border-color:var(--ok)}
.emb.maybe{border:1.5px dashed var(--warn);background:transparent}
.emm-head{margin-top:22px}.emm-head h2{margin-bottom:2px}
.emm-card{padding:4px 0}
table.emm{border-collapse:separate;border-spacing:0}
table.emm th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--mute);font-weight:600;padding:10px 16px}
table.emm td{vertical-align:middle;padding:10px 16px;border-top:1px solid var(--line)}
table.emm tr.click:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}
.emm-grp td{background:var(--sunk);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);padding:7px 16px}
.emm-name{min-width:200px}.emm-name .tag{margin-left:8px;vertical-align:1px}
.emm-prev{opacity:.55;white-space:nowrap}
.emm-cur{white-space:nowrap}.emm-lv{display:flex;align-items:center;gap:10px}.emm-lv b{font-size:13px;font-variant-numeric:tabular-nums}
.emm-st{margin-top:4px;color:var(--mute)}
.emm-chg{text-align:center;white-space:nowrap}
.chg{display:inline-block;min-width:38px;padding:2px 8px;border-radius:99px;font-size:12px;font-weight:700;text-align:center}
.chg.up{color:var(--ok);background:color-mix(in srgb,var(--ok) 14%,transparent)}
.chg.down{color:var(--bad);background:color-mix(in srgb,var(--bad) 14%,transparent)}
.chg.same{color:var(--faint)}.chg.new{color:var(--accent);background:var(--accent-soft);font-weight:600}
.emm-next{max-width:380px;line-height:1.45}.emm-next>span{display:block}
