:root {
  color-scheme: light;
  --ink:#182126; --muted:#66757d; --line:#d9e0e2; --surface:#fff; --page:#f3f6f5;
  --teal:#087a72; --teal-soft:#dff3ef; --blue:#2457a7; --green:#25784f;
  --amber:#976400; --red:#a33131;
  /* Spacing scale: 4px base, used for every layout margin, padding, and gap. */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-5:20px; --space-6:24px; --space-7:32px; --space-8:48px;
  --space-9:64px; --space-10:80px;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--page); color:var(--ink); font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
a { color:var(--blue); text-decoration:none; }
a:hover { text-decoration:underline; }
button,input,select { max-width:100%; font:inherit; }
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible { outline:3px solid var(--teal); outline-offset:2px; }
small { font-size:12px; }
.topbar { height:60px; display:flex; align-items:center; justify-content:space-between; padding:0 var(--space-6); background:var(--surface); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:3; }
.brand { display:inline-flex; align-items:center; gap:var(--space-2); color:var(--ink); }
.brand:hover { text-decoration:none; }
.brand-mark { width:32px; height:32px; display:grid; place-items:center; background:var(--teal); color:#fff; font-weight:800; font-size:15px; }
.brand strong,.brand small,.operator strong,.operator small,td small,.list-row small,.attention-list small,.prerequisite small,.lifecycle small { display:block; }
.brand small,.operator small,td small,.list-row small,.attention-list small,.prerequisite small,.lifecycle small { color:var(--muted); }
.operator { display:flex; align-items:center; gap:var(--space-4); text-align:right; }
.operator form { margin:0; }
.quiet-button { border:1px solid var(--line); background:var(--surface); padding:var(--space-2) var(--space-2); color:var(--ink); cursor:pointer; }
.shell { display:grid; grid-template-columns:200px minmax(0,1fr); min-height:calc(100vh - 60px); }
.sidebar { padding:var(--space-5) var(--space-3); background:#202c31; position:sticky; top:60px; height:calc(100vh - 60px); display:flex; flex-direction:column; justify-content:space-between; }
.sidebar a { display:block; color:#dce5e7; padding:var(--space-2) var(--space-3); margin-bottom:var(--space-1); border-left:3px solid transparent; }
.sidebar a:hover { background:#2a383e; text-decoration:none; }
.sidebar a:focus-visible { outline-color:var(--teal-soft); }
.sidebar a.active { color:#fff; background:#2b4144; border-left-color:#52c6b6; }
.role-note { margin:var(--space-6) var(--space-3) var(--space-1); padding-top:var(--space-2); border-top:1px solid #33424a; color:#aebfc6; font-size:12px; }
.role-note strong { display:block; margin-bottom:var(--space-1); color:#8ba0a8; font-size:11px; letter-spacing:.04em; text-transform:uppercase; }
.content { min-width:0; padding:var(--space-6) var(--space-7); max-width:1600px; width:100%; margin:0 auto; overflow-wrap:anywhere; }
.page-heading,.section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:var(--space-5); }
.page-heading { margin-bottom:var(--space-4); flex-wrap:wrap; }
.page-heading h1 { margin:var(--space-1) 0 0; font-size:25px; }
.page-heading p,.section-heading p { margin:var(--space-1) 0 0; }
.page-heading > div,.page-heading > p { min-width:0; }
.evidence-heading > div { max-width:960px; }
.eyebrow { color:var(--teal); font-size:12px; font-weight:700; text-transform:uppercase; }
.muted { color:var(--muted); }
.success-text { color:var(--green); }
.danger-text { color:var(--red); }
.warn-text { color:var(--amber); }
.metrics { display:grid; grid-template-columns:repeat(5,minmax(120px,1fr)); background:var(--surface); border:1px solid var(--line); margin-bottom:var(--space-2); }
.metrics > div { padding:var(--space-3) var(--space-4); border-right:1px solid var(--line); min-width:0; }
.metrics > div:last-child { border-right:0; }
.metrics span { display:block; color:var(--muted); font-size:12px; }
.metrics strong { display:block; margin-top:var(--space-1); font-size:28px; }
.metrics strong small { color:var(--muted); font-size:14px; font-weight:400; }
.metrics p { margin:var(--space-1) 0 0; color:var(--muted); font-size:12px; }
.metrics a { display:block; color:inherit; }
.metrics a:hover { text-decoration:none; }
.metrics .attention-metric { background:#fdf4f4; }
.metrics .attention-metric p { color:var(--red); }
.metrics.compact { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); margin-bottom:var(--space-5); }
.metrics .hash { font-size:16px; }
.metrics-note { margin:0 0 var(--space-5); color:var(--muted); font-size:12px; }
.attention-band,.clear-band { display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-5); padding:var(--space-3) var(--space-4); background:var(--surface); }
.attention-band { border:1px solid var(--red); border-left-width:4px; }
.attention-band > a { margin-left:auto; white-space:nowrap; }
.attention-label { padding:var(--space-1) var(--space-2); border:1px solid var(--red); color:var(--red); background:#faeaea; font-size:11px; text-transform:uppercase; }
.attention-list { flex:1; }
.attention-list > div + div { margin-top:var(--space-2); padding-top:var(--space-2); border-top:1px solid #f0d1d1; }
.clear-band { border:1px solid var(--green); }
.clear-band strong { color:var(--green); }
.clear-band span { color:var(--muted); }
.band { background:var(--surface); border:1px solid var(--line); margin-bottom:var(--space-5); }
.band > h2 { margin:0; padding:var(--space-4) var(--space-4) 0; }
.band > h2 + p { max-width:80ch; margin:0; padding:var(--space-2) var(--space-4) 0; }
.band > .page-heading { align-items:flex-start; margin:0; padding:var(--space-4); border-bottom:1px solid var(--line); }
.overview-metrics { border-top:3px solid var(--teal); }
.control-node-band { border-left:4px solid var(--blue); }
.lab-section { isolation:isolate; }
.lab-disclosure { display:block; }
.lab-disclosure > summary { list-style:none; }
.lab-disclosure > summary::before { content:"▸"; display:inline-block; margin-right:var(--space-2); color:var(--teal); }
.lab-disclosure[open] > summary::before { content:"▾"; }
.lifecycle-band { border-top:3px solid var(--teal); }
.evidence-run { border-top:2px solid var(--line); }
.section-heading { padding:var(--space-3) var(--space-4); border-bottom:1px solid var(--line); align-items:center; }
.section-heading h2 { margin:0; font-size:16px; }
.band-footer,.form-note { margin:0; padding:var(--space-2) var(--space-4); border-top:1px solid #e8edee; color:var(--muted); font-size:12px; }
form.band-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--space-2); }
form.band-footer label { display:grid; gap:var(--space-1); color:var(--ink); font-weight:600; }
form.band-footer input { min-width:0; padding:var(--space-2); border:1px solid #aebbc0; background:#fff; }
.two-column { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); }
.list { padding:0 var(--space-4); }
.list-row { display:flex; justify-content:space-between; align-items:center; gap:var(--space-4); padding:var(--space-3) 0; border-bottom:1px solid #e8edee; }
.list-row:last-child { border-bottom:0; }
.table-wrap { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.table-wrap table { width:100%; min-width:640px; border-collapse:collapse; }
th,td { padding:var(--space-3) var(--space-4); text-align:left; border-bottom:1px solid #e8edee; vertical-align:middle; }
th { color:var(--muted); background:#f7f9f9; font-size:11px; text-transform:uppercase; }
tbody:last-child tr:last-child td { border-bottom:0; }
tbody tr:hover { background:#f8fbfa; }
td label { display:grid; gap:var(--space-1); min-width:10rem; font-weight:600; }
td input,td select { width:100%; min-width:0; padding:var(--space-2) var(--space-3); border:1px solid #aebbc0; background:#fff; }
td form { margin:0; }
td button:not(.quiet-button) { border:0; padding:var(--space-2) var(--space-3); background:var(--teal); color:#fff; font-weight:700; cursor:pointer; }
.status { display:inline-block; min-width:56px; padding:var(--space-1) var(--space-2); border:1px solid currentColor; font-size:11px; text-align:center; text-transform:uppercase; }
.status.pass,.status.online,.status.succeeded { color:var(--green); background:#e9f6ee; }
.status.fail,.status.unreachable,.status.offline,.status.warn,.status.failed,.status.expired,.status.cancelled { color:var(--red); background:#faeaea; }
.status.stale,.status.degraded { color:var(--amber); background:#fff4d9; }
.status.unknown,.status.observed,.status.state { color:#4c636d; background:#edf2f3; }
.status.queued,.status.claimed { color:#225a85; background:#e9f2f9; }
.empty { padding:var(--space-7); text-align:center; color:var(--muted); }
.workflow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--space-2); margin-bottom:var(--space-5); }
.workflow a { display:grid; grid-template-columns:30px 1fr; column-gap:var(--space-2); align-items:center; padding:var(--space-3) var(--space-3); color:var(--ink); background:var(--surface); border:1px solid var(--line); }
.workflow a:hover { border-color:var(--teal); text-decoration:none; }
.workflow span { grid-row:1/3; width:28px; height:28px; display:grid; place-items:center; border-radius:50%; color:#fff; background:var(--teal); font-weight:700; }
.workflow strong,.workflow small { display:block; }
.workflow small { color:var(--muted); }
.state-key { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-3) var(--space-5); margin-bottom:var(--space-4); padding:var(--space-2) var(--space-4); background:var(--surface); border:1px solid var(--line); font-size:13px; }
.state-key > strong { color:var(--muted); font-size:12px; text-transform:uppercase; }
.state-key span { display:inline-flex; align-items:center; gap:var(--space-1); }
.state-key i { width:14px; height:14px; display:inline-block; }
.key-recent,.seat-recent { color:var(--green); background:#e9f6ee; border:1px solid var(--green); }
.key-attention,.seat-attention { color:var(--red); background:#faeaea; border:1px solid var(--red); }
.key-stale,.seat-stale { color:var(--amber); background:#fff4d9; border:1px solid var(--amber); }
.key-never,.seat-never { color:#4c636d; background:#edf2f3; border:1px solid #9aa7ad; }
summary.lab-heading { cursor:pointer; }
.lab-title > strong { display:block; font-size:18px; }
.lab-title > small { display:block; color:var(--muted); }
.lab-summary { display:flex; flex-wrap:wrap; gap:var(--space-2); justify-content:flex-end; }
.lab-summary .status { padding:var(--space-1) var(--space-2); font-size:14px; font-weight:700; text-transform:none; }
.seat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(54px,1fr)); gap:var(--space-1); padding:var(--space-4); }
.seat { min-height:46px; display:grid; place-items:center; font-size:15px; font-weight:700; }
.seat-attention { border-width:2px; font-weight:800; }
.visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.machine-details { border-top:1px solid var(--line); }
.lab-machines .machine-name-cell,.lab-machines th:first-child { width:11rem; min-width:10rem; }
.lab-machines .machine-name { white-space:nowrap; overflow-wrap:normal; word-break:normal; }
.lab-machines .machine-result { min-width:10rem; max-width:24rem; }
.lab-machines th:nth-child(5),.lab-machines td:nth-child(5) { min-width:7rem; overflow-wrap:normal; word-break:normal; }
.machine-guidance { margin-top:var(--space-2); }
.machine-guidance summary { color:var(--blue); cursor:pointer; }
.machine-guidance p { margin:var(--space-2) 0 0; max-width:40ch; }
.detail-heading { padding:var(--space-3) var(--space-4); background:#f7f9f9; }
.clear-detail { margin:0; padding:var(--space-3) var(--space-4); color:var(--green); }
.all-machines { border-top:1px solid #e8edee; }
.all-machines summary,.drilldown-row summary { padding:var(--space-3) var(--space-4); color:var(--blue); cursor:pointer; }
.attention-row { background:#fdf4f4; }
.evidence-runs th,.evidence-runs td { white-space:normal; overflow-wrap:anywhere; }
.evidence-runs th { overflow-wrap:normal; }
.evidence-runs td:nth-child(2) { min-width:0; }
.drilldown-row td { padding:0; background:#f4f9f8; }
.evidence-runs .drilldown-row td { white-space:normal; overflow-wrap:anywhere; }
.drilldown-row:hover { background:transparent; }
.machine-evidence { padding:var(--space-3) var(--space-4); white-space:normal; overflow-wrap:anywhere; max-width:90ch; }
.machine-evidence h3 { margin:var(--space-3) 0 var(--space-2); }
.machine-evidence p { margin:var(--space-2) 0; }
.machine-evidence dl { display:grid; grid-template-columns:minmax(120px,1fr) minmax(0,3fr); gap:var(--space-2); }
.machine-evidence dt { color:var(--muted); }
.machine-evidence dd { margin:0; }
/* Imported status files: keep dates, machine readings and approval notes distinct. */
.status-imports-heading { padding:var(--space-4); }
.status-imports-heading h2 { margin:0; font-size:18px; }
.status-imports-heading p { margin:var(--space-2) 0 0; max-width:80ch; }
.status-import { border-top:1px solid var(--line); }
.status-import-toggle { display:grid; grid-template-columns:14px minmax(0,1fr) auto; gap:var(--space-3); align-items:center; padding:var(--space-4); list-style:none; cursor:pointer; }
.status-import-toggle::-webkit-details-marker { display:none; }
.status-import-toggle::before { content:"▸"; color:var(--teal); }
.status-import[open] > .status-import-toggle::before { content:"▾"; }
.status-import-toggle:hover { background:#f8fbfa; }
.status-import-name,.status-import-time { min-width:0; }
.status-import-name strong { display:block; font-size:16px; }
.status-import-name small,.status-import-time > span { display:block; color:var(--muted); }
.status-import-time { text-align:right; font-size:12px; }
.status-import-time time { display:block; }
.status-import-body { padding:0 var(--space-4); border-top:1px solid #e8edee; }
.status-import-info { border-top:1px solid var(--line); padding:var(--space-4) 0; }
.status-import-info h3 { margin:0; font-size:14px; }
.status-import-meta { display:grid; grid-template-columns:14rem minmax(0,1fr); gap:var(--space-2) var(--space-4); margin:var(--space-4) 0; font-size:13px; }
.status-import-meta dt { color:var(--muted); }
.status-import-meta dd { min-width:0; margin:0; }
.status-import-hash { color:var(--muted); font-size:12px; overflow-wrap:anywhere; }
.status-import-unmapped { margin:var(--space-4) 0; }
.status-import-body > .operator-reading { max-width:none; padding:var(--space-4) 0; }
.status-import-body > .operator-reading + .operator-reading { border-top:1px solid var(--line); }
.operator-reading .reading-machine { font-size:15px; }
.operator-reading .reading-capture { font-size:12px; }
.operator-reading .reading-result { margin-top:var(--space-4); font-size:16px; }
.operator-reading .reading-counts { color:var(--muted); }
.source-observation + .source-observation { border-top:1px solid var(--line); margin-top:var(--space-3); }
.nested-table { margin:0 var(--space-4) var(--space-3); border:1px solid var(--line); background:#fff; width:calc(100% - var(--space-7)); }
.prerequisite-grid { display:grid; grid-template-columns:1fr 1fr; border-bottom:1px solid var(--line); }
.prerequisite { display:flex; gap:var(--space-3); padding:var(--space-3) var(--space-4); }
.prerequisite:first-child { border-right:1px solid #e8edee; }
.prerequisite b[aria-hidden] { flex:0 0 26px; height:26px; display:grid; place-items:center; border:1px solid currentColor; }
.prerequisite.ready b { color:var(--green); background:#e9f6ee; }
.prerequisite.missing b { color:var(--red); background:#faeaea; }
.prerequisite a { display:block; margin-top:var(--space-1); font-size:12px; }
.action-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-3); padding:var(--space-4); }
.action-form-wide { grid-template-columns:repeat(3,minmax(0,1fr)); }
.action-form label { display:grid; gap:var(--space-1); font-weight:600; }
.action-form input,.action-form select { min-width:0; width:100%; padding:var(--space-2) var(--space-2); border:1px solid #aebbc0; background:#fff; }
.action-form button { align-self:end; }
.primary-button,.danger-button { border:0; color:#fff; padding:var(--space-2) var(--space-3); font-weight:700; cursor:pointer; }
.primary-button { background:var(--teal); }
.danger-button { background:var(--red); }
.lifecycle { display:grid; grid-template-columns:repeat(3,1fr); padding:var(--space-4); gap:var(--space-3) 0; }
.lifecycle > div { padding:var(--space-1) var(--space-3) var(--space-1) var(--space-3); border-left:3px solid var(--line); }
.lifecycle small { margin-top:var(--space-1); }
.timeline { color:var(--muted); font-size:13px; white-space:normal; min-width:250px; }
.report-label { font-weight:700; text-transform:uppercase; }
.inventory-summary { padding:0 var(--space-4); }
.notice { border-left:4px solid var(--green); background:#e9f6ee; padding:var(--space-2) var(--space-3); }
.notice.fail { border-left-color:var(--red); background:#faeaea; color:var(--red); }
.stacked-form { display:grid; gap:var(--space-4); max-width:680px; padding:var(--space-4); }
.stacked-form label { display:grid; gap:var(--space-1); font-weight:600; }
.stacked-form input,.stacked-form select { width:100%; min-width:0; padding:var(--space-2) var(--space-2); border:1px solid #aebbc0; background:#fff; }
.stacked-form button { justify-self:start; border:0; background:var(--teal); color:#fff; padding:var(--space-2) var(--space-3); font-weight:700; cursor:pointer; }
.error-message,.alert.error { border-left:4px solid var(--red); background:#faeaea; padding:var(--space-2) var(--space-3); color:var(--red); }
.login-page { min-height:100vh; display:grid; place-items:center; background:#e9efed; }
.login-panel { width:min(420px,calc(100vw - var(--space-7))); background:var(--surface); border:1px solid var(--line); padding:var(--space-7); }
.login-brand { margin-bottom:var(--space-7); }
.login-panel h1 { margin:0; font-size:24px; }
.login-form { display:grid; gap:var(--space-4); margin-top:var(--space-5); }
.login-form label { display:grid; gap:var(--space-1); font-weight:600; }
.login-form input { width:100%; padding:var(--space-2) var(--space-3); border:1px solid #aebbc0; background:#fff; }
.login-form input:focus { outline:3px solid var(--teal); border-color:var(--teal); }
.error-page { padding:var(--space-10) var(--space-5); text-align:center; }
.error-page > strong { font-size:72px; color:var(--teal); }
@media (max-width:1000px) {
  .metrics { grid-template-columns:repeat(2,1fr); }
  .metrics > div { border-bottom:1px solid var(--line); }
  .action-form-wide { grid-template-columns:1fr 1fr; }
}
@media (max-width:900px) {
  .shell { display:block; }
  .sidebar { height:auto; display:block; overflow-x:auto; padding:var(--space-2); position:sticky; top:60px; z-index:2; white-space:nowrap; }
  .nav-links { display:flex; }
  .sidebar a { flex:0 0 auto; border-left:0; border-bottom:3px solid transparent; margin:0; }
  .sidebar a.active { border-bottom-color:#52c6b6; }
  .role-note { display:none; }
  .two-column,.prerequisite-grid { grid-template-columns:1fr; }
  .prerequisite:first-child { border-right:0; border-bottom:1px solid #e8edee; }
  .workflow { grid-template-columns:repeat(2,1fr); }
  .content { padding:var(--space-5) var(--space-4); }
  .lifecycle { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) {
  .lab-section .table-wrap { container-type:inline-size; }
  .lab-machines .drilldown-row > td > details { width:100cqw; max-width:100%; position:sticky; left:0; }
  .lab-machines .drilldown-row > td > details > summary:focus-visible { outline-offset:-3px; }
  .evidence-runs .table-wrap { overflow-x:visible; }
  .evidence-runs table { display:block; width:100%; min-width:0; }
  .evidence-runs thead { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
  .evidence-runs tbody,.evidence-runs tr,.evidence-runs td { display:block; width:100%; min-width:0; white-space:normal; }
  .evidence-runs .collection-row,.evidence-runs .machine-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
  .evidence-runs .machine-row > td { padding:var(--space-2) var(--space-3); }
  .evidence-runs td[data-label]::before { content:attr(data-label); display:block; margin-bottom:var(--space-1); color:var(--muted); font-size:11px; font-weight:600; }
  .evidence-runs .collection-row > td:first-child,.evidence-runs .collection-row > td:nth-child(6),.evidence-runs .collection-row > td:nth-child(7),.evidence-runs .machine-row > td:first-child,.evidence-runs .machine-row > td:nth-child(4) { grid-column:1/-1; }
  .evidence-runs td:nth-child(2) { min-width:0; }
  .evidence-runs td[colspan] { border-bottom:0; }
  .status-import-toggle { grid-template-columns:14px minmax(0,1fr); }
  .status-import-time { grid-column:2; text-align:left; }
  .status-import-meta { grid-template-columns:minmax(0,1fr); gap:var(--space-1); }
  .status-import-meta dd { margin-bottom:var(--space-3); }
  .topbar { padding:0 var(--space-3); }
  .operator > span { display:none; }
  .page-heading,.section-heading { display:block; }
  .section-heading > a { display:inline-block; margin-top:var(--space-2); }
  .page-heading > .muted { margin-top:var(--space-2); }
  .metrics,.metrics.compact,.action-form,.action-form-wide,.lifecycle { grid-template-columns:1fr; }
  .workflow { grid-template-columns:1fr; }
  .attention-band,.clear-band { align-items:flex-start; flex-direction:column; }
  .attention-band > a { margin-left:0; }
  .content { padding:var(--space-4) var(--space-3); }
  .topbar { height:auto; min-height:60px; flex-wrap:wrap; gap:var(--space-2); padding:var(--space-2) var(--space-3); }
  th,td { padding:var(--space-2) var(--space-3); }
}

@media (max-width:420px) {
  .brand small { display:none; }
  .lab-summary { justify-content:flex-start; margin-top:var(--space-2); }
  .nested-table { margin-right:var(--space-2); margin-left:var(--space-2); width:calc(100% - var(--space-4)); }
}
