/* =============================================================================
   SectraTEK Lab: ops.css (Ask the Lab, Send to the Lab, Staff area, System map)
   Loaded after lab.css. Reads tokens only. No inline styles, no event-handler attributes.
   Contents  1 Shared pieces   2 Ask and Send (public forms)   3 Staff shell   4 Staff screens   5 System map
   ============================================================================= */

/* 1 Shared pieces ------------------------------------------------------------ */
.ops-phase { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); }
.ops-notice { display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); padding: var(--space-4) var(--space-5); border-radius: var(--radius-card); border: 1px solid var(--line-strong); background: var(--surface); }
.ops-notice--strong { border-color: var(--warning); background: var(--warning-soft); }
.ops-notice .icon { margin-block-start: 2px; }
.ops-notice p { margin: 0; }
.ops-notice p + p { margin-block-start: var(--space-2); }
.ops-notice__title { font-weight: var(--weight-semibold); color: var(--ink); }
.ops-statebar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); padding: var(--space-3) var(--space-4); border: 1px dashed var(--line-strong); border-radius: var(--radius-card); background: var(--surface-2); font-size: var(--text-small); color: var(--ink-2); }
.ops-statebar__label { font-size: var(--text-micro); letter-spacing: var(--track-eyebrow); text-transform: uppercase; font-weight: var(--weight-semibold); color: var(--muted); margin-inline-end: var(--space-2); }
.ops-hp { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ops-mono { font-family: var(--font-mono); font-size: 0.8125rem; letter-spacing: 0; }
.ops-nowrap { white-space: nowrap; }
.ops-spinner-row { display: flex; align-items: center; gap: var(--space-3); }
[data-state-panel][hidden] { display: none; }
.ops-form { display: grid; gap: var(--space-5); max-width: 40rem; }
.ops-form__grid { display: grid; gap: var(--space-5); }
.ops-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }
.ops-form legend { padding: 0; font-weight: var(--weight-semibold); font-size: var(--text-ui); margin-block-end: var(--space-2); }
.ops-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.ops-radio-card { display: grid; grid-template-columns: auto 1fr; gap: var(--space-3); padding: var(--space-4); border: 1px solid var(--line-strong); border-radius: var(--radius-card); background: var(--surface); cursor: pointer; }
.ops-radio-card:has(input:checked) { border-color: var(--accent); box-shadow: 0 0 0 1px var(--accent); }
.ops-radio-card:has(input:focus-visible) { outline: var(--focus-width) solid var(--focus); outline-offset: var(--focus-offset); }
.ops-radio-card input { margin-block-start: 4px; accent-color: var(--accent); }
.ops-radio-card strong { display: block; }
.ops-radio-card span span { display: block; color: var(--ink-2); font-size: var(--text-small); }
.ops-counter { font-size: var(--text-caption); color: var(--muted); font-variant-numeric: tabular-nums; text-align: end; }
.ops-errsum { padding: var(--space-4) var(--space-5); border: 1px solid var(--danger); border-radius: var(--radius-card); background: var(--danger-soft); color: var(--ink); }
.ops-errsum[hidden] { display: none; }
.ops-errsum h2 { font-size: var(--text-ui); margin: 0 0 var(--space-2); }
.ops-errsum ul { margin: 0; padding-inline-start: 1.2em; }
.ops-errsum:focus { outline: var(--focus-width) solid var(--focus); outline-offset: 2px; }
.ops-qa { display: grid; gap: var(--space-3); padding-block: var(--space-5); border-block-end: 1px solid var(--line); }
.ops-qa:first-child { border-block-start: 1px solid var(--line); }
.ops-qa__q { margin: 0; font-size: 1.1875rem; font-weight: var(--weight-semibold); letter-spacing: -0.014em; line-height: 1.35; }
.ops-qa__a { margin: 0; color: var(--ink-2); max-width: 44rem; }
.ops-qa__meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); font-size: var(--text-small); color: var(--muted); }
.ops-list { list-style: none; margin: 0; padding: 0; display: grid; }

/* Flow (Send to the Lab) */
.ops-flow { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; margin: 0; padding: 0; counter-reset: flow; }
.ops-flow li { counter-increment: flow; }
.ops-flow a, .ops-flow span { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 var(--space-4) 0 var(--space-2); border: 1px solid var(--line-strong); border-radius: var(--radius-pill); font-size: var(--text-small); font-weight: var(--weight-medium); text-decoration: none; color: var(--ink-2); background: var(--surface); }
.ops-flow a::before, .ops-flow span::before { content: counter(flow); display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--surface-3); font-size: var(--text-micro); font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; }
.ops-flow [aria-current="step"] { border-color: var(--accent); color: var(--ink); box-shadow: 0 0 0 1px var(--accent); }
.ops-flow [aria-current="step"]::before { background: var(--accent-fill); color: var(--on-accent); }
.ops-flow a:hover { border-color: var(--ink-2); color: var(--ink); }
.ops-pair { display: grid; gap: var(--space-5); }
.ops-pair > * { min-width: 0; }
.ops-tick { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.ops-tick li { display: grid; grid-template-columns: auto 1fr; gap: var(--space-2); align-items: start; }
.ops-tick .icon { margin-block-start: 3px; color: var(--ink-2); }
.ops-tick--no .icon { color: var(--danger-ink); }
.ops-tick--yes .icon { color: var(--success-ink); }
.ops-files { list-style: none; margin: 0; padding: 0; display: grid; border: 1px solid var(--line); border-radius: var(--radius-card); background: var(--surface); overflow: hidden; }
.ops-file { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-2) var(--space-4); align-items: center; padding: var(--space-4) var(--space-5); border-block-end: 1px solid var(--line); }
.ops-file:last-child { border-block-end: 0; }
.ops-file__name { font-weight: var(--weight-medium); overflow-wrap: anywhere; }
.ops-file__sub { display: block; font-size: var(--text-caption); color: var(--muted); font-weight: var(--weight-regular); }
.ops-file__bar { grid-column: 2 / -1; }
.ops-file .icon-tile, .ops-file__ico { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: var(--radius-sm); background: var(--surface-3); color: var(--ink-2); }
.ops-receipt { display: grid; gap: var(--space-4); padding: var(--space-6); border: 1px solid var(--line-strong); border-radius: var(--radius-xl); background: var(--surface); }
.ops-receipt__ref { font-family: var(--font-mono); font-size: clamp(1.5rem, 1.1rem + 1.6vw, 2.25rem); letter-spacing: 0.02em; font-weight: var(--weight-semibold); margin: 0; overflow-wrap: anywhere; }
.ops-steps { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-4); counter-reset: st; }
.ops-steps li { counter-increment: st; display: grid; grid-template-columns: auto 1fr; gap: var(--space-4); align-items: start; }
.ops-steps li::before { content: counter(st); display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--accent-soft); color: var(--accent-strong); font-weight: var(--weight-semibold); font-size: var(--text-small); }
.ops-steps strong { display: block; }
.ops-signin { max-width: 26rem; }
.ops-otp { display: flex; gap: var(--space-2); }
.ops-otp input { width: 3rem; height: 3.25rem; text-align: center; font-size: 1.375rem; font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; }
.ops-termsbox { max-height: 18rem; overflow: auto; padding: var(--space-5); border: 1px solid var(--line-strong); border-radius: var(--radius-card); background: var(--surface); font-size: var(--text-ui); line-height: 1.55; }
.ops-termsbox h3 { font-size: var(--text-ui); margin: var(--space-4) 0 var(--space-1); }
.ops-termsbox h3:first-child { margin-block-start: 0; }
.ops-termsbox p { margin: 0 0 var(--space-2); color: var(--ink-2); }
.ops-termsbox:focus-visible { outline: var(--focus-width) solid var(--focus); outline-offset: 2px; }
@media (min-width: 52em) {
  .ops-pair { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: var(--space-8); }
  .ops-form__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* 3 Staff shell -------------------------------------------------------------- */
body.ops-staff { background: var(--bg); }
.ops-ribbon { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: var(--space-2) var(--space-4); padding: 6px var(--gutter); background: var(--warning-soft); color: var(--warning-ink); border-block-end: 1px solid var(--line); font-family: var(--font-mono); font-size: var(--text-micro); letter-spacing: 0.06em; text-transform: uppercase; text-align: center; }
.ops-shell { display: grid; grid-template-columns: minmax(0, 1fr); max-width: 1600px; margin-inline: auto; align-items: start; }
.ops-side { display: grid; gap: var(--space-3); padding: var(--space-3) var(--gutter); background: var(--surface); border-block-end: 1px solid var(--line); }
.ops-side__brand { display: flex; align-items: center; gap: var(--space-3); padding-block: var(--space-1); }
.ops-side__brand .brand__mark { flex: none; }
.ops-side__name { display: grid; line-height: 1.2; }
.ops-side__name b { font-size: var(--text-ui); font-weight: var(--weight-semibold); }
.ops-side__name span { font-size: var(--text-caption); color: var(--muted); }
.ops-nav { list-style: none; margin: 0; padding: 0; display: flex; gap: var(--space-1); overflow-x: auto; scrollbar-width: thin; }
.ops-nav a, .ops-nav .ops-nav__static { display: flex; align-items: center; gap: var(--space-3); min-height: 38px; padding: 0 var(--space-3); border-radius: var(--radius-sm); color: var(--ink-2); font-size: var(--text-small); font-weight: var(--weight-medium); text-decoration: none; white-space: nowrap; }
.ops-nav a:hover { background: var(--surface-3); color: var(--ink); }
.ops-nav a[aria-current="page"] { background: var(--accent-soft); color: var(--accent-strong); }
.ops-nav .icon { flex: none; }
.ops-nav__count { margin-inline-start: auto; min-width: 22px; padding: 0 6px; height: 20px; display: inline-grid; place-items: center; border-radius: var(--radius-pill); background: var(--surface-3); color: var(--ink-2); font-size: var(--text-micro); font-weight: var(--weight-semibold); font-variant-numeric: tabular-nums; }
.ops-nav a[aria-current="page"] .ops-nav__count { background: var(--surface); color: var(--accent-strong); }
.ops-nav__sep { display: none; }
.ops-side__foot { display: none; }
.ops-main { display: grid; gap: var(--space-5); padding: var(--space-5) var(--gutter) var(--space-9); min-width: 0; align-content: start; }
.ops-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-3) var(--space-6); }
.ops-head h1 { margin: 0; font-size: clamp(1.625rem, 1.3rem + 1vw, 2.125rem); line-height: 1.1; letter-spacing: -0.025em; font-weight: var(--weight-semibold); }
.ops-head p { margin: var(--space-2) 0 0; max-width: 44rem; color: var(--ink-2); font-size: var(--text-ui); }
.ops-head__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }
.ops-crumb { margin: 0 0 var(--space-2); font-size: var(--text-caption); color: var(--muted); display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ops-crumb a { color: var(--ink-2); }
@media (min-width: 62em) {
  .ops-shell { grid-template-columns: 15.5rem minmax(0, 1fr); }
  .ops-side { position: sticky; top: var(--header-h); height: calc(100vh - var(--header-h)); height: calc(100dvh - var(--header-h)); align-content: start; grid-auto-rows: min-content; padding: var(--space-4); border-block-end: 0; border-inline-end: 1px solid var(--line); overflow-y: auto; }
  .ops-nav { flex-direction: column; overflow: visible; }
  .ops-nav a, .ops-nav .ops-nav__static { white-space: normal; }
  .ops-nav__sep { display: block; margin: var(--space-3) var(--space-3) var(--space-1); font-size: var(--text-micro); letter-spacing: var(--track-eyebrow); text-transform: uppercase; color: var(--muted); font-weight: var(--weight-semibold); }
  .ops-side__foot { display: grid; gap: var(--space-2); margin-block-start: auto; padding-block-start: var(--space-4); font-size: var(--text-caption); color: var(--muted); }
  .ops-side { grid-template-rows: auto auto 1fr; }
  .ops-main { padding: var(--space-6) var(--space-7) var(--space-9); }
}

/* 4 Staff screens ------------------------------------------------------------ */
.ops-card { background: var(--surface); border: 1px solid var(--hair); border-radius: var(--radius-card); min-width: 0; }
.ops-card__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-2) var(--space-4); padding: var(--space-4) var(--space-5); border-block-end: 1px solid var(--hair); }
.ops-card__head h2, .ops-card__head h3 { margin: 0; font-size: var(--text-ui); font-weight: var(--weight-semibold); letter-spacing: -0.006em; }
.ops-card__head p { margin: 2px 0 0; font-size: var(--text-caption); color: var(--muted); }
.ops-card__body { padding: var(--space-5); display: grid; gap: var(--space-4); }
.ops-card__body--flush { padding: 0; }
.ops-card__foot { padding: var(--space-3) var(--space-5); border-block-start: 1px solid var(--hair); background: var(--surface-2); border-end-start-radius: inherit; border-end-end-radius: inherit; font-size: var(--text-caption); color: var(--muted); }
.ops-grid { display: grid; gap: var(--space-4); }
.ops-grid > * { min-width: 0; }
.ops-kpis { display: grid; gap: var(--space-3); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ops-kpi { display: grid; gap: 2px; padding: var(--space-4); background: var(--surface); border: 1px solid var(--hair); border-radius: var(--radius-card); text-decoration: none; color: var(--ink); }
a.ops-kpi:hover { border-color: var(--line-strong); }
.ops-kpi__label { font-size: var(--text-caption); color: var(--ink-2); }
.ops-kpi__value { font-size: 1.75rem; line-height: 1.1; font-weight: var(--weight-semibold); letter-spacing: -0.025em; font-variant-numeric: tabular-nums; }
.ops-kpi__foot { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-2); align-items: center; margin-block-start: var(--space-1); font-size: var(--text-caption); color: var(--muted); }
.ops-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); padding: var(--space-3) var(--space-5); border-block-end: 1px solid var(--hair); }
.ops-toolbar .lab-chipbtn { min-height: 30px; padding: 0 var(--space-3); font-size: var(--text-small); }
.ops-toolbar__count { margin-inline-start: auto; font-size: var(--text-caption); color: var(--muted); }
.ops-tbl { overflow-x: auto; }
.ops-tbl table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: var(--text-small); line-height: 1.4; }
.ops-tbl th { position: sticky; top: 0; text-align: start; padding: 8px var(--space-4); background: var(--surface-2); color: var(--muted); font-size: var(--text-micro); letter-spacing: 0.04em; text-transform: uppercase; font-weight: var(--weight-semibold); border-block-end: 1px solid var(--hair); white-space: nowrap; }
.ops-tbl td { padding: 9px var(--space-4); border-block-end: 1px solid var(--hair); vertical-align: middle; }
.ops-tbl tbody tr:last-child td { border-block-end: 0; }
.ops-tbl tbody tr:hover td { background: var(--surface-2); }
.ops-tbl td .sub { display: block; font-size: var(--text-caption); color: var(--muted); }
.ops-tbl .chip { height: 22px; font-size: var(--text-micro); padding: 0 8px; }
.ops-tbl .num { text-align: end; font-variant-numeric: tabular-nums; }
.ops-tbl .mono, .ops-tbl .ops-mono { font-family: var(--font-mono); font-size: 0.78rem; }
.ops-tbl [hidden] { display: none; }
.ops-tbl tr[aria-selected="true"] td { background: var(--accent-soft); }
.ops-rowbtn { display: inline; padding: 0; border: 0; background: none; font: inherit; font-weight: var(--weight-medium); color: var(--link); cursor: pointer; text-align: start; }
.ops-rowbtn:hover { text-decoration: underline; }
.ops-rowbtn[aria-pressed="true"] { color: var(--ink); }
.ops-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.ops-actions .btn { min-height: 30px; padding-inline: var(--space-3); font-size: var(--text-small); }
.ops-split { display: grid; gap: var(--space-4); align-items: start; }
.ops-split > * { min-width: 0; }
.ops-detail { padding: var(--space-5); display: grid; gap: var(--space-4); }
.ops-detail[hidden] { display: none; }
.ops-detail h3 { margin: 0; font-size: var(--text-ui); font-weight: var(--weight-semibold); }
.ops-kv { display: grid; margin: 0; }
.ops-kv > div { display: grid; grid-template-columns: minmax(7rem, 9.5rem) 1fr; gap: var(--space-3); padding: 7px 0; border-block-end: 1px solid var(--hair); font-size: var(--text-small); }
.ops-kv > div:last-child { border-block-end: 0; }
.ops-kv dt { color: var(--muted); }
.ops-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.ops-checks { list-style: none; margin: 0; padding: 0; display: grid; }
.ops-checks li { display: grid; grid-template-columns: auto 1fr auto; gap: var(--space-3); align-items: center; padding: 10px var(--space-5); border-block-end: 1px solid var(--hair); font-size: var(--text-small); }
.ops-checks li:last-child { border-block-end: 0; }
.ops-checks .sub { display: block; color: var(--muted); font-size: var(--text-caption); }
.ops-ico { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; flex: none; }
.ops-ico--ok { background: var(--success-soft); color: var(--success-ink); }
.ops-ico--warn { background: var(--warning-soft); color: var(--warning-ink); }
.ops-ico--bad { background: var(--danger-soft); color: var(--danger-ink); }
.ops-ico--idle { background: var(--surface-3); color: var(--muted); }
.ops-ico .icon { width: 14px; height: 14px; }
.ops-light { display: inline-flex; align-items: center; gap: 6px; font-size: var(--text-caption); font-weight: var(--weight-medium); }
.ops-claims { list-style: none; margin: 0; padding: 0; display: grid; }
.ops-claim { display: grid; gap: var(--space-2) var(--space-4); padding: var(--space-4) var(--space-5); border-block-end: 1px solid var(--hair); }
.ops-claim:last-child { border-block-end: 0; }
.ops-claim__text { margin: 0; font-size: var(--text-small); }
.ops-claim__src { font-size: var(--text-caption); color: var(--muted); }
.ops-claim .segmented { justify-self: start; }
.ops-claim[data-claim="ok"] { box-shadow: inset 3px 0 0 var(--success); }
.ops-claim[data-claim="needs"] { box-shadow: inset 3px 0 0 var(--warning); }
.ops-claim[data-claim="never"] { box-shadow: inset 3px 0 0 var(--danger); }
@media (min-width: 52em) {
  .ops-claim { grid-template-columns: minmax(0, 1fr) auto; align-items: center; }
  .ops-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ops-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ops-grid--21 { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .ops-split { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); }
  .ops-split--rev { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
}
@media (min-width: 80em) { .ops-kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); } .ops-kpis--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ops-gate { display: grid; gap: var(--space-3); padding: var(--space-5); }
.ops-gate__state { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.ops-bar { display: flex; align-items: flex-end; gap: 6px; height: 96px; padding-block-end: 0; border-block-end: 1px solid var(--line); }
.ops-bar > span { flex: 1; background: var(--accent); border-radius: 3px 3px 0 0; min-width: 4px; opacity: 0.85; }
.ops-bar > span.h1 { height: 12%; } .ops-bar > span.h2 { height: 24%; } .ops-bar > span.h3 { height: 36%; } .ops-bar > span.h4 { height: 48%; } .ops-bar > span.h5 { height: 60%; }
.ops-bar > span.h6 { height: 72%; } .ops-bar > span.h7 { height: 84%; } .ops-bar > span.h8 { height: 96%; }
.ops-hbar { display: grid; grid-template-columns: minmax(6rem, 10rem) 1fr auto; gap: var(--space-3); align-items: center; font-size: var(--text-small); }
.ops-hbar__track { height: 8px; border-radius: 999px; background: var(--surface-3); overflow: hidden; }
.ops-hbar__fill { display: block; height: 100%; background: var(--accent); border-radius: inherit; }
.ops-hbar__fill.w10 { width: 10%; } .ops-hbar__fill.w20 { width: 20%; } .ops-hbar__fill.w30 { width: 30%; } .ops-hbar__fill.w40 { width: 40%; } .ops-hbar__fill.w50 { width: 50%; }
.ops-hbar__fill.w60 { width: 60%; } .ops-hbar__fill.w70 { width: 70%; } .ops-hbar__fill.w80 { width: 80%; } .ops-hbar__fill.w90 { width: 90%; } .ops-hbar__fill.w100 { width: 100%; }
.ops-timer { font-variant-numeric: tabular-nums; font-family: var(--font-mono); font-size: 0.78rem; }
.ops-pub { display: grid; gap: var(--space-3); }
.ops-dlg-note { font-size: var(--text-caption); color: var(--muted); margin: 0; }
.ops-dialog-list { margin: 0; padding-inline-start: 1.2em; display: grid; gap: var(--space-1); }
.ops-chipline { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; }

/* 5 System map --------------------------------------------------------------- */
.sm-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-xl); background: var(--surface); }
.sm-scroll:focus-visible { outline: var(--focus-width) solid var(--focus); outline-offset: 2px; }
.sm-svg { display: block; width: 100%; min-width: 1100px; height: auto; font-family: var(--font-system); }
.sm-zone--public { fill: var(--accent-soft); stroke: var(--accent); stroke-width: 1.5; }
.sm-zone--private { fill: var(--surface-3); stroke: var(--ink-2); stroke-width: 1.5; }
.sm-zone--net { fill: none; }
.sm-zone-label { fill: var(--ink); font-size: 14px; font-weight: 700; letter-spacing: 0.1em; }
.sm-zone-sub { fill: var(--ink-2); font-size: 12px; }
.sm-boundary { fill: var(--surface); stroke: none; }
.sm-boundary-line { stroke: var(--ink); stroke-width: 2.5; stroke-dasharray: 10 6; }
.sm-boundary-text { fill: var(--ink); font-size: 12px; font-weight: 700; letter-spacing: 0.14em; }
.sm-node { fill: var(--surface); stroke: var(--line-strong); stroke-width: 1.5; }
.sm-node--ext { stroke-dasharray: 5 4; stroke: var(--ink-2); }
.sm-node--p2 { stroke-dasharray: 5 4; stroke: var(--accent-strong); }
.sm-node--key { stroke: var(--accent); stroke-width: 2.5; }
.sm-node--note { fill: var(--surface-2); stroke: var(--ink-2); stroke-dasharray: 3 4; }
.sm-box { fill: none; stroke: var(--accent-strong); stroke-width: 1.5; stroke-dasharray: 6 5; }
.sm-box-label { fill: var(--accent-strong); font-size: 12px; font-weight: 700; letter-spacing: 0.08em; }
.sm-title { fill: var(--ink); font-size: 14.5px; font-weight: 650; }
.sm-sub { fill: var(--ink-2); font-size: 12.5px; }
.sm-tag { fill: var(--accent-strong); font-size: 11px; font-weight: 700; letter-spacing: 0.08em; }
.sm-link { fill: none; stroke: var(--ink-2); stroke-width: 1.8; }
.sm-link--dash { stroke-dasharray: 6 5; }
.sm-link--p2 { stroke: var(--accent-strong); stroke-dasharray: 6 5; }
.sm-link--cross { stroke: var(--ink); stroke-width: 2.4; }
.sm-arrow { fill: var(--ink-2); }
.sm-arrow--cross { fill: var(--ink); }
.sm-arrow--p2 { fill: var(--accent-strong); }
.sm-num-bg { fill: var(--ink); }
.sm-num { fill: var(--surface); font-size: 11px; font-weight: 700; text-anchor: middle; dominant-baseline: central; }
.sm-cf { fill: var(--surface); stroke: var(--accent); stroke-width: 2; }
.sm-legend-t { fill: var(--ink-2); font-size: 12px; }
.sm-note-t { fill: var(--ink); font-size: 14px; font-weight: 650; }
.sm-note-s { fill: var(--ink-2); font-size: 12.5px; }
.sm-hint { display: none; margin: var(--space-2) 0 0; font-size: var(--text-caption); color: var(--muted); }
@media (max-width: 70em) { .sm-hint { display: block; } }
.sm-conns { margin: 0; padding: 0; list-style: none; display: grid; gap: var(--space-2) var(--space-6); font-size: var(--text-small); counter-reset: none; }
.sm-conns li { display: grid; grid-template-columns: 1.75rem 1fr; gap: var(--space-2); align-items: start; }
.sm-conns .n { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: var(--surface); font-size: var(--text-micro); font-weight: 700; font-variant-numeric: tabular-nums; margin-block-start: 1px; }
@media (min-width: 60em) { .sm-conns { grid-template-columns: 1fr 1fr; } }
.sm-ep { font-size: var(--text-small); }
.sm-ep .ops-tbl td { vertical-align: top; }
.m-get, .m-post, .m-put, .m-head { display: inline-block; min-width: 3.4rem; text-align: center; padding: 1px 6px; border-radius: 6px; font-family: var(--font-mono); font-size: 0.72rem; font-weight: 700; background: var(--surface-3); color: var(--ink); }
.m-post, .m-put { background: var(--accent-soft); color: var(--accent-strong); }
.ops-prefix td { background: var(--surface-2); font-size: var(--text-micro); letter-spacing: var(--track-eyebrow); text-transform: uppercase; color: var(--muted); font-weight: 600; }

@media print { .ops-side, .ops-ribbon { display: none; } }
.ops-narrow { max-width: 46rem; }
.ops-checks--c li { grid-template-columns: minmax(0, 1fr) auto; }
.ops-gate__title, .ops-subtitle { margin: 0; font-size: var(--text-ui); font-weight: var(--weight-semibold); }
.ops-checks--c .check__label .sub { display: block; font-weight: var(--weight-regular); font-size: var(--text-caption); }
.ops-kpi__row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.ops-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--success); flex: none; }
.ops-claim[data-claim="needs"] .ops-dot { background: var(--warning); }
.ops-claim[data-claim="never"] .ops-dot { background: var(--danger); }
.ops-detail--cols { grid-template-columns: minmax(0, 1fr); }
.ops-detail--cols > .ops-detail__head { grid-column: 1 / -1; }
@media (min-width: 62em) { .ops-detail--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-7); } .ops-detail--cols > .ops-actions, .ops-detail--cols > .ops-chipline, .ops-detail--cols > p { grid-column: 1 / -1; } }
@media (min-width: 75em) {
  .sm-scroll { position: relative; left: 50%; width: min(1440px, calc(100vw - 2 * var(--gutter))); transform: translateX(-50%); }
}
.lab-stack > *, .lab-split > *, .lab-grid > * { min-width: 0; }
.ops-cards5 { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(12.5rem, 1fr)); }
.ops-cards5 .lab-card { padding: var(--space-5); }
.ops-cards5 .lab-card__title { font-size: 1.25rem; }
.ops-cards5 .lab-card__text { font-size: 1rem; }
.progress--warn { color: var(--warning); }
.progress--warn::-webkit-progress-value { background: var(--warning); }
.progress--warn::-moz-progress-bar { background: var(--warning); }
.ops-msg { display: flex; gap: 6px; font-size: var(--text-caption); line-height: 1.4; font-weight: var(--weight-medium); color: var(--danger-ink); }
.ops-msg[hidden] { display: none; }
.ops-tbl td:first-child.ops-mono { white-space: nowrap; }
@media (min-width: 52em) { .ops-split--list { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); } }
.ops-grid { align-items: start; }
.ops-claim .segmented { display: flex; flex-wrap: wrap; max-width: 100%; justify-self: stretch; }
.ops-claim .segmented__item { flex: 1 1 auto; }
.ops-claim .segmented__label { white-space: normal; text-align: center; }
@media (min-width: 52em) { .ops-claim .segmented { justify-self: end; flex-wrap: nowrap; } .ops-claim .segmented__label { white-space: nowrap; } }
