/* ==========================================================================
   운영 콘솔 · 사내 훈련 허브
   styles.css 의 토큰(--surface, --line, --ink*, --accent*, --r*)만 사용합니다.
   테두리로 구획하고, 그림자·발광·블러는 오버레이에만 씁니다.
   ========================================================================== */

.operations-page { background: var(--bg); }
.operations-topbar { background: color-mix(in srgb, var(--bg) 92%, transparent); }
.operations-breadcrumb { display: flex; align-items: center; gap: 8px; color: var(--ink-3); font-size: 13px; }
.operations-breadcrumb strong { color: var(--ink); font-weight: 600; }
.operations-breadcrumb i { width: 3px; height: 3px; border-radius: 50%; background: var(--line-strong); }

.operations-shell { width: min(1600px, calc(100% - clamp(32px, 4vw, 80px))); margin: 0 auto; padding: 24px 0 64px; }

/* ── 화면 머리말 ─────────────────────────────────────────────────────────── */

.operations-hero { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 22px; padding-bottom: 22px; border-bottom: 1px solid var(--line-strong); }
.operations-kicker { display: inline-flex; align-items: center; gap: 7px; color: var(--ink-3); font-size: 12.5px; font-weight: 600; }
.operations-kicker i { display: none; }
.operations-hero h1 { margin: 12px 0 0; font-size: 36px; font-weight: 560; line-height: 1.3; letter-spacing: 0; text-wrap: balance; overflow-wrap: anywhere; }
.operations-hero-copy > p { max-width: 74ch; margin-top: 12px; color: var(--ink-2); font-size: 16px; line-height: 1.7; }
.operations-hero-meta { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.operations-hero-meta span {
  height: 26px; padding: 0 10px; display: inline-flex; align-items: center;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); font-size: 12.5px;
}
.operations-health { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; color: var(--ink-3); font-size: 12.5px; }
.operations-health span { display: inline-flex; align-items: center; gap: 7px; }
.operations-health span i { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.operations-health b { color: var(--ink-2); font-weight: 600; }
.operations-health strong { color: var(--ink-3); font-weight: 400; }
.operations-health strong::before { content: "·"; margin-right: 8px; color: var(--line-strong); }

.operations-page .operations-kicker, .operations-page .operations-health { display: none; }
.operations-page.is-detail-tab .operations-metrics,
.operations-page.is-detail-tab .operations-topbar [data-action="new-post"] { display: none; }
.operations-page.is-detail-tab [data-ops-main-action] { display: none; }
.operations-page.is-detail-tab .operations-tabs { margin-top: 16px; }

/* ── 지표 카드 ───────────────────────────────────────────────────────────── */

.operations-metrics { margin: 16px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: var(--surface); }
.operations-metrics article { min-width: 0; padding: 12px 18px; border-right: 1px solid var(--line); }
.operations-metrics article:last-child { border-right: 0; }
.operations-metrics article > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 8px; }
.operations-metrics article small { display: block; color: var(--ink-2); font-size: 14px; }
.operations-metrics article strong { grid-column: 2; grid-row: 1 / span 2; display: block; margin: 0; font-size: 28px; font-weight: 650; line-height: 32px; letter-spacing: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.operations-metrics article em { color: var(--ink-3); font-size: 12px; font-style: normal; }
.operations-metrics article > button {
  width: 100%; min-height: 28px; margin-top: 6px; padding-top: 6px; display: flex; align-items: center; justify-content: space-between;
  color: var(--accent); border-top: 1px solid var(--line); font-size: 14px; font-weight: 550; cursor: pointer;
}
.operations-metrics article > button svg { width: 13px; height: 13px; }

/* ── 탭 ─────────────────────────────────────────────────────────────────── */

.operations-tabs {
  position: sticky; z-index: 20; top: var(--topbar-h);
  margin: 16px 0; padding: 6px; display: flex; flex-direction: column; gap: 8px;
  background: var(--surface); border: 1px solid var(--line); border-radius: 12px;
}
.operations-tab-group { min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.operations-tab-group + .operations-tab-group { padding-top: 8px; border-top: 1px solid var(--line); }
.operations-tab-group-label { width: 72px; flex: 0 0 72px; padding-left: 8px; color: var(--ink-3); font-size: 12px; font-weight: 600; }
.operations-tabs button {
  min-height: 34px; padding: 5px 10px; display: inline-flex; align-items: center; gap: 6px;
  color: var(--ink-2); border-radius: 8px; font-size: 14px; font-weight: 500;
}
.operations-tabs button:hover { color: var(--ink); background: var(--surface-3); }
.operations-tabs button.active { color: #edf8f5; background: #173747; font-weight: 550; }
.operations-tabs svg { display: none; }
.operations-tabs button span {
  min-width: 18px; height: 18px; padding: 0 5px; display: grid; place-items: center;
  color: var(--ink-2); background: var(--surface-3); border-radius: 5px; font-size: 12px; font-variant-numeric: tabular-nums;
}
.operations-tabs button.active span { color: #c4f4e2; background: #325565; }

.operations-view { display: none; }
.operations-view.is-active { display: block; }

/* ── 패널 공통 ───────────────────────────────────────────────────────────── */

.ops-panel, .ops-state-map { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.ops-panel > header, .ops-state-map > header {
  min-height: 56px; padding: 8px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px;
  border-bottom: 1px solid var(--line);
}
.ops-panel > header > div { min-width: 0; }
.ops-panel > header h2, .ops-state-map h2 { margin: 0; font-size: 16px; line-height: 24px; font-weight: 550; letter-spacing: 0; }
.operations-view .ops-eyebrow { margin: 0; font-size: 12px; line-height: 16px; }
.ops-panel > header > small, .ops-panel > header > span, .ops-state-map > header > span { color: var(--ink-3); font-size: 12.5px; }
.ops-panel > header button:not(.ops-primary) {
  display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-size: 13px; font-weight: 600; white-space: nowrap;
}
.ops-panel > header button svg { width: 13px; height: 13px; }
.ops-panel-note { margin: 0; padding: 10px 16px; color: var(--ink-2); background: var(--surface-2); border-bottom: 1px solid var(--line); font-size: 13px; line-height: 1.6; }

.ops-empty { padding: 24px 16px; display: grid; justify-items: center; gap: 4px; text-align: center; }
.ops-empty strong { font-size: 14px; font-weight: 550; }
.ops-empty p { max-width: 46ch; color: var(--ink-3); font-size: 13px; line-height: 1.6; }

/* Keep dialog controls independent of the compact admin workbench. */
.operations-view :is(.ops-primary, .ops-row-actions button, .ops-report-target button,
  .ops-user-controls > button, .ops-invite-row > button, .ops-backup-row > div:last-child button,
  .ops-evidence-row aside button, .ops-resilience-secondary, .ops-resilience-ghost,
  .ops-release-refresh, .ops-panel > header button) {
  min-height: 34px; height: auto; padding: 6px 10px; line-height: 20px;
}
.operations-view :is(.ops-toolbar-controls label, .ops-toolbar-controls > input, .ops-toolbar-controls select,
  .ops-report-controls input, .ops-report-controls select, .ops-user-controls select,
  .ops-access-toggle > span, .ops-invite-create input, .ops-invite-create select) { height: 34px; }
.operations-view .ops-toolbar-controls label input { height: 100%; }
.operations-view .ops-create-assignment :is(input, select) { padding-top: 0; padding-bottom: 0; }
.operations-view .ops-resilience-ghost { width: 34px; padding: 0; }
.operations-view .ops-panel > header button { justify-content: center; }
.operations-view :is(.ops-panel, .ops-state-map, .ops-release-side, .ops-resilience-side) { min-width: 0; }
.operations-view :is(.ops-release-check, .ops-resilience-gate, .ops-system-card, .ops-evidence-row,
  .ops-drill-row, .ops-backup-row, .ops-assignment-row) > div { min-width: 0; overflow-wrap: anywhere; }

.ops-primary {
  min-height: 44px; padding: 8px 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  color: #fff; background: var(--accent); border-radius: 9px; font-size: 14px; font-weight: 550;
}
.ops-primary:hover { background: var(--accent-hover); }
.ops-primary svg { width: 15px; height: 15px; }
.ops-primary.compact { min-height: 38px; padding: 6px 12px; font-size: 14px; }
.ops-primary.is-busy, .ops-primary[disabled] { opacity: .55; pointer-events: none; }
.secure-chip {
  height: 24px; padding: 0 9px; display: inline-flex; align-items: center; gap: 5px;
  color: var(--accent); background: var(--accent-soft); border-radius: var(--r-sm); font-size: 12px; font-weight: 600;
}
.secure-chip svg { width: 12px; height: 12px; }

/* ── 목록 행 공통 ────────────────────────────────────────────────────────── */

/* 최소 높이는 비었거나 불러오는 중일 때만 잡습니다. 줄이 한 개뿐인데 180px를 잡으면
   그만큼이 흰 여백으로 남습니다. */
.ops-content-list, .ops-report-list, .ops-user-list, .ops-invite-list, .ops-audit-list,
.ops-review-stack, .ops-activity-list, .ops-backup-list, .ops-release-check-list,
.ops-release-history, .ops-evidence-ledger, .ops-drill-timeline {
  min-height: 0;
}
.ops-content-list:has(.ops-empty), .ops-report-list:has(.ops-empty), .ops-user-list:has(.ops-empty),
.ops-invite-list:has(.ops-empty), .ops-audit-list:has(.ops-empty), .ops-review-stack:has(.ops-empty),
.ops-activity-list:has(.ops-empty), .ops-backup-list:has(.ops-empty), .ops-release-check-list:has(.ops-empty),
.ops-release-history:has(.ops-empty), .ops-evidence-ledger:has(.ops-empty), .ops-drill-timeline:has(.ops-empty),
.ops-content-list:has(.load-note), .ops-report-list:has(.load-note), .ops-user-list:has(.load-note),
.ops-invite-list:has(.load-note), .ops-audit-list:has(.load-note), .ops-review-stack:has(.load-note),
.ops-activity-list:has(.load-note), .ops-backup-list:has(.load-note), .ops-release-check-list:has(.load-note),
.ops-release-history:has(.load-note), .ops-evidence-ledger:has(.load-note), .ops-drill-timeline:has(.load-note) {
  min-height: 104px;
}

.ops-queue-item, .ops-content-row, .ops-report-row, .ops-invite-row, .ops-audit-row,
.ops-activity-entry, .ops-backup-row, .ops-release-check, .ops-release-history-row,
.ops-release-external-row, .ops-evidence-row, .ops-drill-row {
  padding: 13px 16px; border-bottom: 1px solid var(--line);
}
.ops-queue-item:last-child, .ops-content-row:last-child, .ops-report-row:last-child, .ops-user-row:last-child,
.ops-invite-row:last-child, .ops-audit-row:last-child, .ops-activity-entry:last-child,
.ops-backup-row:last-child, .ops-release-check:last-child, .ops-release-history-row:last-child,
.ops-release-external-row:last-child, .ops-evidence-row:last-child, .ops-drill-row:last-child { border-bottom: 0; }
.ops-queue-item:hover, .ops-content-row:hover, .ops-user-row:hover, .ops-invite-row:hover,
.ops-audit-row:hover, .ops-backup-row:hover { background: var(--surface-2); }

.ops-type-token, .ops-user-avatar, .ops-gate-number, .backup-mark, .ops-queue-rank {
  display: grid; place-items: center; flex: 0 0 auto;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm);
  font-size: 12px; font-style: normal; font-weight: 600; letter-spacing: 0;
}
.ops-type-token { width: 34px; height: 34px; }
.ops-user-avatar { width: 36px; height: 36px; color: var(--accent); background: var(--accent-soft); font-size: 13px; }
.ops-gate-number, .ops-queue-rank { width: 26px; height: 22px; color: var(--ink-3); background: none; font-variant-numeric: tabular-nums; }
.backup-mark { width: 38px; height: 24px; font-size: 11px; }
.ops-mini-label { padding: 2px 6px; color: var(--ink-2); background: var(--surface-3); border-radius: 4px; font-size: 11.5px; }

.ops-row-actions, .my-work-list article > div:last-child, .ops-invite-row > button, .ops-backup-row > div:last-child { display: flex; flex-wrap: wrap; gap: 6px; }
.ops-row-actions { min-width: 0; max-width: 420px; }
.ops-row-actions button, .my-work-list button, .ops-report-target button,
.ops-invite-row > button, .ops-backup-row > div:last-child button, .ops-user-controls > button,
.ops-evidence-row aside button, .ops-version-timeline button {
  height: 28px; padding: 0 10px; display: inline-flex; align-items: center; gap: 5px;
  color: var(--ink-2); background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-sm); font-size: 12.5px; font-weight: 500; white-space: nowrap;
}
.ops-row-actions button:hover, .my-work-list button:hover, .ops-report-target button:hover,
.ops-invite-row > button:hover, .ops-backup-row > div:last-child button:hover,
.ops-user-controls > button:hover, .ops-evidence-row aside button:hover { color: var(--ink); border-color: var(--line-strong); }
.ops-row-actions button.approve, .my-work-list button.approve { color: var(--accent); background: var(--accent-soft); border-color: var(--accent-line); }
.ops-row-actions button.danger, .my-work-list button.danger,
.ops-backup-row > div:last-child button.danger { color: var(--danger); background: var(--danger-soft); border-color: var(--danger-line); }
.ops-row-actions button[disabled], .ops-user-controls > button[disabled] { opacity: .5; pointer-events: none; }
.ops-backup-row > div:last-child button svg, .ops-row-actions button svg { width: 13px; height: 13px; }

/* ── 개요 ────────────────────────────────────────────────────────────────── */

/* 왼쪽은 검토 대기 몇 줄, 오른쪽은 계속 쌓이는 이력입니다. 긴 쪽에 넓은 칸을 줍니다. */
.operations-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; align-items: start; }
/* 왼쪽은 검토 대기 + 공간 현황을 세로로 쌓아, 오른쪽 긴 이력 옆의 빈 칸을 채웁니다. */
.ops-overview-stack { display: grid; gap: 16px; align-content: start; min-width: 0; }
.operations-overview-grid > .ops-overview-stack { grid-column: 1; align-self: start; }
.operations-overview-grid > .ops-activity-panel { grid-column: 2; grid-row: auto; align-self: start; }
.ops-review-stack:has(.ops-empty), .ops-review-stack:has(.load-note) { min-height: 104px; }

.ops-pending-work { padding: 12px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; border-bottom: 1px solid var(--amber-line); background: var(--amber-soft); }
.ops-pending-work > div, .ops-pending-work > button { min-width: 0; display: inline-flex; align-items: center; gap: 8px; }
.ops-pending-work strong { color: var(--ink); font-size: 13px; overflow-wrap: anywhere; }
.ops-pending-work > button { min-height: 34px; color: var(--accent); font-size: 13px; font-weight: 600; }
.ops-pending-work svg { width: 14px; height: 14px; flex: 0 0 auto; }
.ops-pending-work > div > svg { color: var(--amber); }
.ops-queue-item { display: grid; grid-template-columns: 26px 34px minmax(0, 1fr) auto auto; align-items: center; gap: 12px; }
.ops-queue-item div { min-width: 0; }
.ops-queue-title { max-width: 100%; text-align: left; color: var(--ink); overflow-wrap: anywhere; }
.ops-queue-title:hover { color: var(--accent); }
.ops-queue-title:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ops-queue-item small { display: block; color: var(--ink-3); font-size: 12px; }
.ops-queue-item strong { display: block; margin: 1px 0; font-size: 13.5px; }
.ops-queue-item p { overflow: hidden; color: var(--ink-2); font-size: 12.5px; text-overflow: ellipsis; white-space: nowrap; }
.ops-queue-item time { color: var(--ink-3); font-size: 12px; white-space: nowrap; }
.ops-queue-item > button {
  width: 28px; height: 28px; display: grid; place-items: center;
  color: var(--accent); background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: var(--r-sm);
}
.ops-queue-item > button svg { width: 14px; height: 14px; }

.ops-activity-entry { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: baseline; gap: 11px; }
.ops-activity-entry > i { width: 6px; height: 6px; margin-top: 5px; border-radius: 50%; background: var(--accent); }
.ops-activity-entry strong { display: block; font-size: 13px; }
.ops-activity-entry p { color: var(--ink-3); font-size: 12.5px; white-space: normal; overflow-wrap: anywhere; }
.ops-activity-entry p span { color: var(--ink-2); }
.ops-activity-entry time { color: var(--ink-3); font-size: 12px; white-space: nowrap; }

.ops-state-map { margin-top: 0; color: var(--ink); }
.ops-state-track { padding: 8px 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: stretch; gap: 0; }
.ops-state-track > button { min-width: 0; min-height: 36px; padding: 6px 12px; display: flex; align-items: center; gap: 8px; text-align: left; color: var(--ink-2); border-right: 1px solid var(--line); border-radius: 0; }
.ops-state-track > button:last-child { border-right: 0; }
.ops-state-track > button:hover { background: var(--surface-2); }
.ops-state-track > button > i { display: none; }
.ops-state-track > button > i.pending { background: var(--amber); }
.ops-state-track > button > i.published { background: var(--accent); }
.ops-state-track > button > i.archived { background: var(--ink-3); }
.ops-state-track > button > svg { width: 14px; height: 14px; flex: 0 0 auto; margin-left: auto; color: var(--ink-3); }
.ops-state-track > button:focus-visible, .operations-metrics article > button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ops-state-track > button:focus-visible { outline-color: var(--accent); }
.ops-state-track span { min-width: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; }
.ops-state-track strong { color: var(--ink); font-size: 18px; line-height: 24px; font-weight: 550; letter-spacing: 0; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.ops-state-track small { color: var(--ink-3); font-size: 12px; }

/* ── 도구 막대 ───────────────────────────────────────────────────────────── */

.ops-toolbar { flex-wrap: wrap; gap: 8px 12px; }
.ops-toolbar-controls { min-width: 0; max-width: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ops-toolbar-controls label {
  width: 220px; min-width: 0; height: 34px; padding: 0 10px; display: flex; align-items: center; gap: 7px;
  background: var(--surface-2); border: 1px solid var(--line-strong); border-radius: var(--r-sm);
}
.ops-toolbar-controls label svg { width: 14px; height: 14px; flex: 0 0 auto; color: var(--ink-3); }
.ops-toolbar-controls label input { width: 100%; min-width: 0; background: none; border: 0; outline: 0; font-size: 13px; }
/* background 단축속성을 쓰면 styles.css가 그린 화살표(background-image)까지 지워집니다.
   색만 바꾸도록 longhand로 둡니다. */
.ops-toolbar-controls > input, .ops-toolbar-controls select {
  height: 32px; padding: 0 10px; color: var(--ink); background-color: var(--surface-2);
  border: 1px solid var(--line-strong); border-radius: var(--r-sm); outline: 0; font-size: 13px;
}
.ops-toolbar-controls select { padding-right: 28px; }
.ops-toolbar-controls > input { width: 150px; }
.ops-toolbar-controls select { min-width: 118px; }
.ops-toolbar-controls label:focus-within, .ops-toolbar-controls > input:focus, .ops-toolbar-controls select:focus { border-color: var(--accent); }
.operations-table-panel { min-height: 0; }

/* ── 콘텐츠 검토 ─────────────────────────────────────────────────────────── */

.ops-content-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: start; gap: 14px; }
.ops-content-row:has(.ops-review-context[open]), .ops-report-row:has(.ops-report-editor[open]) { box-shadow: inset 3px 0 var(--accent); background: var(--surface-2); }
.ops-row-main { min-width: 0; }
.ops-row-main > div { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.ops-row-main > .ops-row-actions { max-width: 100%; margin-top: 8px; align-items: flex-start; }
.ops-row-main strong { display: block; margin: 0 0 4px; font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.ops-row-main p { margin-top: 6px; color: var(--ink-2); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.ops-row-main small { color: var(--ink-3); font-size: 12px; }
.ops-review-context { margin-top: 4px; }
.ops-row-main .ops-review-note { padding: 6px 0 6px 10px; border-left: 2px solid var(--amber-line); }
.ops-review-note b { font-weight: 600; }
.ops-row-signal { display: flex; gap: 14px; }
.ops-row-signal span { display: grid; justify-items: center; font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ops-row-signal small { color: var(--ink-3); font-size: 11.5px; font-weight: 400; }

.lifecycle-chip {
  height: 21px; padding: 0 8px; display: inline-flex; align-items: center; gap: 5px;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); font-size: 11.5px; font-weight: 600;
}
.lifecycle-chip i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; }
.lifecycle-chip.published { color: var(--accent); background: var(--accent-soft); }
.lifecycle-chip.pending { color: var(--amber); background: var(--amber-soft); }
.lifecycle-chip.rejected, .lifecycle-chip.deleted { color: var(--danger); background: var(--danger-soft); }

/* ── 신고함 ─────────────────────────────────────────────────────────────── */

.ops-report-row { display: grid; gap: 10px; }
.ops-report-row > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ops-report-row > header > div { display: flex; flex-wrap: wrap; gap: 6px; }
.ops-report-row > header time { color: var(--ink-3); font-size: 12px; }
.report-reason, .report-status {
  height: 21px; padding: 0 8px; display: inline-flex; align-items: center;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); font-size: 11.5px; font-weight: 600;
}
.report-reason.security, .report-reason.harassment { color: var(--danger); background: var(--danger-soft); }
.report-status.open { color: var(--amber); background: var(--amber-soft); }
.report-status.resolved { color: var(--accent); background: var(--accent-soft); }
.ops-report-target { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: start; gap: 11px; }
.ops-report-target > i {
  width: 30px; height: 30px; display: grid; place-items: center;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); font-size: 12px; font-style: normal; font-weight: 700;
}
.ops-report-target small { display: block; color: var(--ink-3); font-size: 12px; }
.ops-report-target strong { display: block; margin: 1px 0 5px; font-size: 13.5px; overflow-wrap: anywhere; }
.ops-report-row > p { color: var(--ink-2); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.ops-report-resolution { padding: 8px 0 8px 12px; border-left: 2px solid var(--accent-line); }
.ops-report-meta { display: flex; flex-wrap: wrap; gap: 14px; color: var(--ink-3); font-size: 12px; }
.ops-report-meta b { color: var(--ink-2); }
.ops-report-controls { max-width: 760px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; gap: 10px; }
.ops-report-controls :is(label, select, input, textarea) { min-width: 0; max-width: 100%; }
.ops-report-controls label { display: grid; gap: 4px; }
.ops-report-controls select { width: 100%; }
.ops-report-controls label > span { color: var(--ink-3); font-size: 12px; }
.ops-report-controls select, .ops-report-controls input {
  height: 32px; padding: 0 10px; color: var(--ink); background: var(--surface-2);
  border: 1px solid var(--line); border-radius: var(--r-sm); outline: 0; font-size: 13px;
}
.ops-report-controls .report-note { min-width: 0; grid-column: 1 / -1; }
.ops-report-controls textarea { width: 100%; min-height: 84px; padding: 9px 11px; color: var(--ink); background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm); font-size: 13px; line-height: 1.6; resize: vertical; }
.ops-report-controls [data-save-report] { grid-column: 1 / -1; justify-self: end; }
.ops-report-controls select:focus, .ops-report-controls input:focus, .ops-report-controls textarea:focus { border-color: var(--accent); }

/* ── 사용자와 초대 ───────────────────────────────────────────────────────── */

.ops-user-row { border-bottom: 1px solid var(--line); }
.ops-user-columns, .ops-user-editor > summary { display: grid; grid-template-columns: 36px minmax(0, 1.2fr) minmax(0, 1fr) 190px 32px; align-items: center; gap: 12px; }
.ops-user-row.is-deactivated { background: var(--surface-2); }
.ops-user-columns { padding: 10px 16px; color: var(--ink-3); background: var(--surface-2); border-bottom: 1px solid var(--line); font-size: 12px; }
.ops-user-columns > span:first-child { grid-column: 1 / span 2; }
.ops-user-columns > span:last-child { white-space: nowrap; }
.ops-user-editor { min-width: 0; }
.operations-view .ops-user-editor > summary { width: 100%; padding: 12px 16px; list-style: none; cursor: pointer; }
.ops-user-editor > summary::-webkit-details-marker { display: none; }
.ops-user-editor > summary > svg { width: 16px; height: 16px; color: var(--ink-3); }
.ops-user-editor[open] > summary { background: var(--surface-2); }
.ops-user-editor > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.ops-user-edit-detail { padding: 12px 16px; display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 12px; border-top: 1px solid var(--line); }
.ops-user-detail-context { min-width: 0; flex: 1 1 260px; }
.ops-user-detail-context h3 { margin: 0 0 4px; font-size: 13px; line-height: 20px; font-weight: 600; overflow-wrap: anywhere; }
.ops-user-detail-context p { margin: 0; color: var(--ink-3); font-size: 12px; overflow-wrap: anywhere; }
.ops-user-detail-context .ops-user-draft-preview { margin-top: 6px; color: var(--amber); font-weight: 550; }
.ops-user-draft-preview[hidden] { display: none; }
.ops-user-current, .ops-user-columns > div { display: grid; grid-template-columns: minmax(0, 1fr) 70px; align-items: center; gap: 8px; color: var(--ink-2); font-size: 12.5px; }
.ops-user-identity [data-user-draft-note] { color: var(--amber); }
.ops-user-identity [data-user-draft-note]:empty { display: none; }
.ops-user-identity { min-width: 0; }
.ops-user-identity strong { display: block; font-size: 13.5px; }
.ops-user-identity span { display: block; color: var(--ink-2); font-size: 12.5px; white-space: normal; overflow-wrap: anywhere; }
.ops-user-identity small { display: block; margin-top: 2px; color: var(--ink-3); font-size: 12px; }
.ops-user-controls { width: min(340px, 100%); display: grid; grid-template-columns: minmax(0, 1fr) 82px 68px; align-items: end; gap: 8px; }
.ops-user-controls label { display: grid; gap: 4px; }
.ops-user-controls label > span { color: var(--ink-3); font-size: 12px; }
.ops-user-controls select {
  width: 100%; min-width: 0; height: 34px; padding: 0 9px; color: var(--ink); background: var(--surface-2);
  border: 1px solid var(--line); border-radius: var(--r-sm); outline: 0; font-size: 12.5px;
}
.ops-access-toggle { align-self: end; }
.ops-access-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.ops-access-toggle > span {
  height: 34px; padding: 0 10px; display: inline-flex; align-items: center; gap: 6px;
  color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line);
  border-radius: var(--r-sm); font-size: 12.5px; cursor: pointer;
}
.ops-access-toggle b { font-weight: 500; }
.ops-access-toggle input:focus-visible ~ span { outline: 2px solid var(--accent); outline-offset: 2px; }
.ops-access-toggle input:disabled ~ span { cursor: default; }
.ops-access-toggle i { width: 7px; height: 7px; border-radius: 50%; background: var(--line-strong); }
.ops-access-toggle input:checked ~ span { color: var(--accent); background: var(--accent-soft); border-color: var(--accent-line); }
.ops-access-toggle input:checked ~ span i { background: var(--accent); }
.ops-user-affiliation.ops-user-work-fields { min-width: 0; margin: 0; display: grid; gap: 3px; }
.ops-user-affiliation.ops-user-work-fields > div { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 6px; }

.ops-invite-layout { display: grid; grid-template-columns: minmax(0, 330px) minmax(0, 1fr); gap: 16px; align-items: start; }
.operations-page [data-ops-view="assignments"] .ops-invite-layout { grid-template-columns: minmax(0, 1fr); }
.operations-page [data-ops-view="invites"] .ops-invite-layout { grid-template-columns: minmax(0, 1fr); }
.operations-page [data-ops-view="assignments"] :is(.ops-assignments-grid, .assignment-workspace) { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; align-items: start; }
.ops-create-assignment { min-width: 0; width: 100%; grid-column: 1 / -1; }
.operations-view .ops-create-assignment > summary { width: 100%; min-height: 56px; padding: 16px; display: flex; align-items: center; gap: 8px; font-size: 16px; line-height: 24px; font-weight: 550; }
.operations-view .ops-create-invite > summary { width: 100%; min-height: 56px; padding: 16px; display: flex; align-items: center; gap: 8px; font-size: 16px; line-height: 24px; font-weight: 550; }
.ops-create-assignment > summary svg, .ops-create-invite > summary svg { width: 16px; height: 16px; flex: 0 0 auto; vertical-align: middle; }
.ops-create-invite > summary .secure-chip { margin-left: auto; }
.ops-create-invite[open] > summary { border-bottom: 1px solid var(--line); }
.operations-view .ops-create-invite form { max-width: 820px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: end; }
.ops-create-invite form > label:first-child, .ops-create-invite form > div { grid-column: 1 / -1; }
.ops-create-invite form > button { justify-self: end; }
.ops-create-assignment[open] > summary { border-bottom: 1px solid var(--line); }
.ops-create-assignment form { padding: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: 20px; }
.ops-assignment-step, .ops-drill-form-group { min-width: 0; margin: 0; padding: 0; display: grid; gap: 12px; border: 0; }
.ops-assignment-step legend, .ops-drill-form-group legend { padding: 0 0 12px; color: var(--ink); font-size: 14px; line-height: 20px; font-weight: 600; }
.ops-form-actions { grid-column: 1 / -1; padding-top: 12px; display: flex; justify-content: flex-end; border-top: 1px solid var(--line); }
.ops-create-assignment .ops-form-actions > button { width: auto; min-width: 100px; }
.ops-create-assignment form > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ops-create-assignment label { min-width: 0; display: grid; gap: 5px; }
.ops-create-assignment label > span { color: var(--ink-2); font-size: 12.5px; font-weight: 500; }
.ops-create-assignment :is(input, select, textarea, button[type="submit"]) { width: 100%; min-width: 0; max-width: 100%; }
.ops-create-assignment :is(input, select, textarea) { padding: 9px 11px; color: var(--ink); background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm); font-size: 13px; }
.ops-create-assignment :is(input, select) { height: 34px; }
.ops-create-assignment textarea { resize: vertical; }
.ops-create-assignment form > p { margin: 0; color: var(--ink-3); font-size: 12px; overflow-wrap: anywhere; }
.ops-assignment-step > p { margin: 0; color: var(--ink-2); font-size: 12.5px; overflow-wrap: anywhere; }
.ops-assignment-step #assignBindingError { color: var(--danger); }
.ops-assignment-step > p:empty { display: none; }
.ops-target-context { padding-top: 8px; border-top: 1px solid var(--line); }
.ops-review-facts { margin: 0; display: grid; gap: 10px; font-size: 13px; }
.ops-review-facts > div { min-width: 0; display: grid; grid-template-columns: 128px minmax(0, 1fr); gap: 12px; }
.ops-review-facts dt { color: var(--ink-3); }
.ops-review-facts dd { margin: 0; color: var(--ink); overflow-wrap: anywhere; }
.ops-review-instructions { padding-top: 12px; color: var(--ink-2); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.operations-dialog .ops-decision-context { min-width: 0; padding-block: 12px; border-block: 1px solid var(--line); }
.operations-dialog .ops-decision-context h3 { margin: 8px 0 4px; font-size: 13px; line-height: 20px; }
.operations-dialog .ops-decision-context p { margin: 0; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.ops-required-action { color: var(--ink); font-weight: 550; overflow-wrap: anywhere; }
.ops-invite-layout > .ops-panel, .ops-invite-create form, .ops-invite-create label { min-width: 0; }
.ops-invite-create :is(input, select, textarea, button[type="submit"]) { width: 100%; min-width: 0; max-width: 100%; }
.ops-invite-create form > p { overflow-wrap: anywhere; }
.ops-invite-create form { padding: 16px; display: grid; gap: 12px; }
.ops-invite-create form > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.ops-invite-create label { display: grid; gap: 5px; }
.ops-invite-create label > span { color: var(--ink-2); font-size: 12.5px; font-weight: 500; }
.ops-invite-create input, .ops-invite-create select {
  height: 34px; padding: 0 10px; color: var(--ink); background: var(--surface-2);
  border: 1px solid var(--line); border-radius: var(--r-sm); outline: 0; font-size: 13px;
}
.ops-invite-create input:focus, .ops-invite-create select:focus { border-color: var(--accent); }
.ops-invite-create form > p { margin: 0; color: var(--ink-3); font-size: 12px; }

.ops-invite-row { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 13px; }
.ops-invite-row.is-inactive { background: var(--surface-2); }
.ops-invite-row > button:disabled { color: var(--ink-3); cursor: default; }
.ops-invite-icon { width: 28px; height: 28px; display: grid; place-items: center; color: var(--ink-2); }
.ops-invite-icon svg { width: 20px; height: 20px; }
.ops-invite-row span { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; }
.ops-invite-row strong { font-size: 13.5px; }
.ops-invite-row b {
  height: 20px; padding: 0 7px; display: inline-flex; align-items: center;
  color: var(--ink-2); background: var(--surface-3); border-radius: 4px; font-size: 11px; font-weight: 600;
}
.ops-invite-row b.active { color: var(--accent); background: var(--accent-soft); }
.ops-invite-row p { color: var(--ink-2); font-size: 12.5px; overflow-wrap: anywhere; }
.ops-invite-row small { display: block; margin-top: 2px; color: var(--ink-3); font-size: 12px; }
.invite-secret { padding: 16px; color: var(--ink); background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: var(--r); }
.invite-secret code {
  display: block; margin: 12px 0; padding: 12px; overflow-wrap: anywhere;
  background: var(--surface); border: 1px solid var(--accent-line); border-radius: var(--r-sm);
  font-family: var(--mono); font-size: 13px;
}
.invite-secret p, .invite-secret small { color: var(--ink-2); font-size: 12.5px; }
.operations-dialog .invite-secret-value { display: grid; grid-template-columns: minmax(0, 1fr) 36px; align-items: center; gap: 12px; }
.operations-dialog .invite-secret-value code { min-width: 0; margin: 12px 0; font-size: 18px; white-space: pre-wrap; overflow-wrap: anywhere; }
.operations-dialog .invite-secret-value button { width: 36px; height: 36px; padding: 8px; display: grid; place-items: center; }
.operations-dialog .invite-secret-value button svg { width: 16px; height: 16px; }

/* ── 감사 로그 ───────────────────────────────────────────────────────────── */

.ops-audit-summary {
  padding: 10px 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px;
  color: var(--ink-2); background: var(--surface-2); border-bottom: 1px solid var(--line); font-size: 12.5px;
}
.ops-audit-summary small { color: var(--ink-3); font-size: 12px; }
.ops-audit-row { display: grid; grid-template-columns: 150px 8px minmax(0, 1fr) auto; align-items: baseline; gap: 12px; }
.ops-audit-row time { color: var(--ink-3); font-size: 12px; font-variant-numeric: tabular-nums; }
.ops-audit-row > i { width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.ops-audit-row strong { display: block; font-size: 13px; }
.ops-audit-row p { color: var(--ink-3); font-size: 12.5px; }
.ops-audit-row p span, .ops-audit-row p b { color: var(--ink-2); font-weight: 500; }
.ops-audit-row code {
  display: block; margin-top: 4px; overflow: hidden; color: var(--ink-3);
  font-family: var(--mono); font-size: 11.5px; text-overflow: ellipsis; white-space: nowrap;
}
.ops-audit-row > small { color: var(--ink-3); font-size: 12px; }
.ops-audit-main { min-width: 0; display: grid; grid-template-columns: 120px minmax(0, 1fr) minmax(0, 1.2fr); align-items: baseline; gap: 4px 12px; }
.ops-audit-columns { padding: 8px 16px; display: grid; grid-template-columns: 150px 8px minmax(0, 1fr) 80px; gap: 12px; color: var(--ink-3); border-bottom: 1px solid var(--line); font-size: 12px; }
.ops-audit-columns > div { grid-column: 3; display: grid; grid-template-columns: 120px minmax(0, 1fr) minmax(0, 1.2fr); gap: 12px; }
.ops-audit-actor { min-width: 0; color: var(--ink-2); font-size: 12.5px; overflow-wrap: anywhere; }
.ops-audit-main > .ops-audit-target { color: var(--ink-2); }
.ops-audit-main > p { overflow-wrap: anywhere; }
.ops-audit-main > details { grid-column: 1 / -1; }
.ops-audit-context { display: grid; gap: 4px; margin: 8px 0; color: var(--ink-2); font-size: 12px; }
.ops-audit-context > div { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px; }
.ops-audit-context dt { color: var(--ink-3); }
.ops-audit-context dd { margin: 0; font-family: var(--mono); overflow-wrap: anywhere; }
.ops-event-detail { min-width: 0; margin-top: 4px; color: var(--ink-3); font-size: 12px; }
.ops-event-detail > summary { cursor: pointer; }
.ops-event-detail code { display: block; margin-top: 6px; font-family: var(--mono); font-size: 11.5px; white-space: pre-wrap; overflow-wrap: anywhere; }

/* ── 릴리스 판정 ─────────────────────────────────────────────────────────── */

.ops-release-hero, .ops-resilience-hero {
  margin-bottom: 16px; padding: 14px 16px; display: grid; grid-template-columns: minmax(0, 1fr) 148px;
  align-items: center; gap: 12px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r);
}
.ops-resilience-hero { grid-template-columns: minmax(0, 1fr) 112px; }
.ops-release-copy h2, .ops-resilience-copy h2 { margin: 4px 0 0; font-size: 16px; line-height: 24px; letter-spacing: 0; }
.ops-release-copy > p, .ops-resilience-copy > p { max-width: 72ch; margin-top: 6px; color: var(--ink-2); font-size: 13.5px; }
.ops-release-meta, .ops-resilience-meta { margin-top: 12px; display: flex; flex-wrap: wrap; gap: 8px; }
.ops-resilience-meta { margin-top: 8px; }
.ops-release-meta span, .ops-resilience-meta span {
  min-height: 26px; max-width: 100%; padding: 2px 10px; display: inline-flex; align-items: center; overflow-wrap: anywhere;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); font-size: 12.5px;
}
.ops-release-score, .ops-resilience-ring {
  padding: 13px 15px; display: grid; justify-items: start;
  background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r);
}
.ops-resilience-ring { padding: 8px 10px; }
.ops-release-score small, .ops-resilience-ring small { color: var(--ink-3); font-size: 12px; font-weight: 600; }
.ops-release-score strong, .ops-resilience-ring strong { font-size: 27px; line-height: 1.15; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.ops-release-score > span { color: var(--ink-3); font-size: 12px; }
.ops-release-score > i, .ops-resilience-score > b {
  margin-top: 9px; height: 22px; padding: 0 8px; display: inline-flex; align-items: center;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); font-size: 11.5px; font-style: normal; font-weight: 600;
}
.ops-release-hero[data-status="passed"] .ops-release-score > i { color: var(--accent); background: var(--accent-soft); }
.ops-release-hero[data-status="failed"] .ops-release-score > i { color: var(--danger); background: var(--danger-soft); }
.ops-release-hero[data-status="failed"] { border-left: 3px solid var(--danger); }
.ops-release-hero[data-status="conditional"], .ops-release-hero[data-status="warning"] { border-left: 3px solid var(--amber); }
.ops-release-hero:not([data-status="passed"]) #opsReleaseDetail { color: var(--ink); font-weight: 550; overflow-wrap: anywhere; }
.ops-release-hero[data-status="conditional"] .ops-release-score > i,
.ops-release-hero[data-status="warning"] .ops-release-score > i { color: var(--amber); background: var(--amber-soft); }
.ops-release-refresh { grid-column: 1 / -1; justify-self: start; margin-top: 0; display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-size: 12.5px; font-weight: 600; }
.ops-release-refresh svg { width: 13px; height: 13px; }

.ops-release-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ops-release-side { display: grid; gap: 16px; }
.ops-release-check { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: start; gap: 12px; }
.ops-release-check.failed { border-left: 3px solid var(--danger); }
.ops-release-check:is(.conditional, .warning, .pending) { border-left: 3px solid var(--amber); }
.ops-release-check > span { color: var(--ink-3); font-size: 12px; font-variant-numeric: tabular-nums; }
.ops-release-check strong { display: block; font-size: 13.5px; }
.ops-release-check p { color: var(--ink-2); font-size: 12.5px; }
.ops-release-check small { display: block; margin-top: 3px; color: var(--ink-3); font-size: 12px; }
.ops-release-check > i, .ops-release-external-row > span, .ops-release-history-row > b, .ops-resilience-gate > i {
  height: 22px; padding: 0 8px; display: inline-flex; align-items: center; flex: 0 0 auto;
  color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); font-size: 11.5px; font-style: normal; font-weight: 600;
}
.ops-release-check.passed > i, .ops-release-external-row.passed > span,
.ops-release-history-row.passed > b, .ops-resilience-gate.passed > i { color: var(--accent); background: var(--accent-soft); }
.ops-release-check.failed > i, .ops-release-external-row.failed > span,
.ops-release-history-row.failed > b, .ops-resilience-gate.failed > i { color: var(--danger); background: var(--danger-soft); }
.ops-release-check.warning > i, .ops-release-history-row.conditional > b,
.ops-resilience-gate.pending > i, .ops-resilience-gate.conditional > i { color: var(--amber); background: var(--amber-soft); }

.ops-release-kpis { padding: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ops-release-kpis > article, .ops-recovery-targets article {
  padding: 11px 13px; background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm);
}
.ops-release-kpis small, .ops-recovery-targets small { display: block; color: var(--ink-3); font-size: 12px; font-weight: 600; }
.ops-release-kpis strong, .ops-recovery-targets strong { display: block; margin: 2px 0 1px; font-size: 18px; letter-spacing: 0; font-variant-numeric: tabular-nums; }
.ops-release-kpis span, .ops-recovery-targets span { color: var(--ink-3); font-size: 12px; }

.ops-release-external-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: 11px; }
.ops-release-external-row > i { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); }
.ops-release-external-row.passed > i { background: var(--accent); }
.ops-release-external-row.failed > i { background: var(--danger); }
.ops-release-external-row strong { display: block; font-size: 13px; }
.ops-release-external-row p { color: var(--ink-2); font-size: 12.5px; overflow-wrap: anywhere; }

.ops-release-history-panel { margin-top: 16px; }
.ops-release-history-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto auto auto; align-items: center; gap: 12px; }
.ops-release-history-row > i { width: 7px; height: 7px; border-radius: 50%; background: var(--line-strong); }
.ops-release-history-row.passed > i { background: var(--accent); }
.ops-release-history-row.failed > i { background: var(--danger); }
.ops-release-history-row strong { display: block; font-size: 13px; }
.ops-release-history-row p { color: var(--ink-3); font-size: 12.5px; }
.ops-release-history-row > span { font-size: 13px; font-weight: 600; font-variant-numeric: tabular-nums; }
.ops-release-history-row > small { color: var(--ink-3); font-size: 12px; }

/* ── 복구 태세 ───────────────────────────────────────────────────────────── */

.ops-resilience-actions { margin-top: 10px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ops-resilience-secondary, .ops-resilience-ghost {
  height: 34px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  color: var(--ink-2); background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-sm); font-size: 13px; font-weight: 500;
}
.ops-resilience-secondary:hover, .ops-resilience-ghost:hover { color: var(--ink); border-color: var(--line-strong); }
.ops-resilience-ghost { width: 34px; padding: 0; }
.ops-resilience-secondary svg, .ops-resilience-ghost svg { width: 14px; height: 14px; }
.ops-resilience-score { display: grid; justify-items: start; }
.ops-resilience-hero[data-status="passed"] .ops-resilience-score > b { color: var(--accent); background: var(--accent-soft); }

.ops-resilience-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ops-resilience-side, .ops-resilience-ledgers { display: grid; gap: 16px; }
.ops-resilience-ledgers { margin-top: 16px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ops-resilience-matrix { padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.ops-resilience-gate {
  padding: 12px 16px; display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; align-items: start; gap: 10px;
  border-bottom: 1px solid var(--line);
}
.ops-resilience-gate:last-child { border-bottom: 0; }
.ops-resilience-gate small { display: block; color: var(--ink-3); font-size: 11.5px; font-weight: 600; }
.ops-resilience-gate strong { display: block; margin: 2px 0 1px; font-size: 13.5px; }
.ops-resilience-gate p { color: var(--ink-2); font-size: 12.5px; }
.ops-resilience-gate footer { margin-top: 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.ops-resilience-gate footer span {
  height: 20px; padding: 0 7px; display: inline-flex; align-items: center;
  color: var(--ink-3); background: var(--surface-3); border-radius: 4px; font-size: 11.5px;
}
.ops-recovery-targets > div:not(.load-note) { padding: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ops-recovery-latest > div:not(.load-note) { padding: 14px 16px; }
.ops-recovery-result { display: grid; grid-template-columns: 30px minmax(0, 1fr); align-items: start; gap: 11px; }
.ops-recovery-result > span { width: 30px; height: 30px; display: grid; place-items: center; color: var(--accent); background: var(--accent-soft); border-radius: var(--r-sm); }
.ops-recovery-result > span svg { width: 15px; height: 15px; }
.ops-recovery-result small { display: block; color: var(--ink-3); font-size: 11.5px; font-weight: 600; }
.ops-recovery-result strong { display: block; margin: 2px 0 1px; font-size: 13.5px; }
.ops-recovery-result p { color: var(--ink-2); font-size: 12.5px; }
.ops-recovery-result footer { margin-top: 8px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.ops-recovery-result footer b {
  height: 21px; padding: 0 8px; display: inline-flex; align-items: center;
  color: var(--accent); background: var(--accent-soft); border-radius: 4px; font-size: 11.5px;
}
.ops-recovery-result footer code, .ops-evidence-row code, .ops-drill-row code, .ops-backup-row code {
  color: var(--ink-3); font-family: var(--mono); font-size: 11.5px;
}

.ops-evidence-row { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto; align-items: start; gap: 11px; }
.ops-evidence-row > span { width: 30px; height: 30px; display: grid; place-items: center; color: var(--ink-2); background: var(--surface-3); border-radius: var(--r-sm); }
.ops-evidence-row.passed > span { color: var(--accent); background: var(--accent-soft); }
.ops-evidence-row > span svg { width: 15px; height: 15px; }
.ops-evidence-row b { display: block; color: var(--ink-3); font-size: 11.5px; font-weight: 600; }
.ops-evidence-row strong { display: block; margin: 2px 0 0; font-size: 13.5px; }
.ops-evidence-row p { color: var(--ink-2); font-size: 12.5px; }
.ops-evidence-row aside { display: grid; justify-items: end; gap: 5px; }
.ops-evidence-row aside i {
  height: 21px; padding: 0 8px; display: inline-flex; align-items: center;
  color: var(--ink-2); background: var(--surface-3); border-radius: 4px; font-size: 11.5px; font-style: normal; font-weight: 600;
}
.ops-evidence-row.passed aside i { color: var(--accent); background: var(--accent-soft); }
.ops-evidence-row.revoked aside i { color: var(--danger); background: var(--danger-soft); }
.ops-evidence-row.pending aside i { color: var(--amber); background: var(--amber-soft); }
.ops-evidence-row aside small, .ops-evidence-row aside em { color: var(--ink-3); font-size: 12px; font-style: normal; }

.ops-drill-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: center; gap: 11px; }
.ops-drill-row > i { width: 7px; height: 7px; border-radius: 50%; background: var(--amber); }
.ops-drill-row.passed > i { background: var(--accent); }
.ops-drill-row.failed > i { background: var(--danger); }
.ops-drill-row span { display: block; color: var(--ink-3); font-size: 11.5px; font-weight: 600; }
.ops-drill-row strong { display: block; margin: 2px 0 1px; font-size: 13.5px; }
.ops-drill-row p { color: var(--ink-3); font-size: 12.5px; }
.ops-drill-row .ops-drill-error { margin-top: 6px; color: var(--danger); font-weight: 550; overflow-wrap: anywhere; }
.ops-drill-row aside { display: grid; justify-items: end; gap: 3px; }
.ops-drill-row aside b { font-size: 12.5px; font-variant-numeric: tabular-nums; }

/* ── 시스템 ─────────────────────────────────────────────────────────────── */

.ops-system-layout { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.ops-system-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
.ops-system-summary { padding: 12px 16px; border-bottom: 1px solid var(--line); }
.ops-system-summary strong { font-size: 13px; }
.ops-system-summary p { margin-top: 4px; color: var(--ink-2); font-size: 12.5px; overflow-wrap: anywhere; }
.ops-system-group { min-width: 0; }
.ops-system-group > h3 { margin: 0; padding: 10px 16px; color: var(--ink-2); border-bottom: 1px solid var(--line); font-size: 12.5px; line-height: 20px; font-weight: 600; }
.ops-system-attention > h3 { color: var(--amber); }
.operations-view .ops-system-configuration > summary { width: 100%; padding: 12px 16px; font-weight: 550; }
.ops-system-configuration[open] > summary { border-bottom: 1px solid var(--line); }
.ops-system-card {
  padding: 12px 16px; display: grid; grid-template-columns: 24px minmax(0, 1fr) 8px; align-items: start; gap: 10px;
  background: var(--surface-2); border-bottom: 1px solid var(--line);
}
.ops-system-card > span { color: var(--ink-3); font-size: 12px; font-variant-numeric: tabular-nums; }
.ops-system-card small { display: block; color: var(--ink-3); font-size: 11.5px; font-weight: 600; }
.ops-system-card strong { display: block; margin: 2px 0 1px; font-size: 14px; }
.ops-system-card p { color: var(--ink-2); font-size: 12.5px; }
.ops-system-card > i { width: 7px; height: 7px; margin-top: 5px; border-radius: 50%; background: var(--accent); }
.ops-system-card.is-warning > i { background: var(--amber); }
.ops-system-card.is-warning { border-color: var(--amber-line); }
.ops-runtime-issues { margin: 12px; padding: 12px 14px; color: var(--amber); background: var(--amber-soft); border: 1px solid var(--amber-line); border-radius: var(--r-sm); overflow-wrap: anywhere; }
.ops-runtime-issues strong { display: block; margin-bottom: 5px; font-size: 13px; }
.ops-runtime-issues ul { margin: 0; padding-left: 17px; font-size: 12.5px; }

.ops-backup-row { display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.ops-backup-row strong { display: block; font-size: 13px; overflow-wrap: anywhere; }
.ops-backup-row small { display: block; color: var(--ink-3); font-size: 12px; }
.ops-backup-verification { margin-top: 6px; color: var(--ink-3); font-size: 12.5px; line-height: 1.6; overflow-wrap: anywhere; }
.ops-backup-verification.passed { color: var(--accent); }
.ops-backup-verification.failed { color: var(--danger); font-weight: 600; }
.ops-backup-verification.checking { color: var(--amber); }

/* ── 운영 대화상자 ───────────────────────────────────────────────────────── */

.operations-dialog { position: fixed; z-index: 6000; inset: 0; display: none; place-items: center; padding: 20px; }
.operations-dialog.open { display: grid; }
.operations-dialog-backdrop { position: absolute; inset: 0; background: rgba(12, 18, 16, .5); }
.operations-dialog-panel {
  position: relative; width: min(660px, 100%); max-height: calc(100vh - 48px); overflow: auto;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-pop);
}
.operations-dialog-panel > header {
  position: sticky; z-index: 2; top: 0; padding: 16px 20px; display: flex; align-items: start; justify-content: space-between; gap: 12px;
  background: var(--surface); border-bottom: 1px solid var(--line);
}
.operations-dialog-panel > header span { display: block; margin-bottom: 2px; color: var(--ink-3); font-size: 12px; font-weight: 600; }
.operations-dialog-panel > header h2 { margin: 0; font-size: 17px; }
.operations-dialog-panel > header button { width: 30px; height: 30px; display: grid; place-items: center; color: var(--ink-3); border-radius: var(--r-sm); }
.operations-dialog-panel > header button:hover { color: var(--ink); background: var(--surface-3); }
.operations-dialog-panel > header button svg { width: 15px; height: 15px; }
.operations-dialog-body { padding: 18px 20px; display: grid; gap: 14px; }
.operations-dialog-panel > footer {
  position: sticky; bottom: 0; padding: 13px 20px; display: flex; justify-content: flex-end; gap: 8px;
  background: var(--surface); border-top: 1px solid var(--line);
}
.ops-dialog-cancel, .ops-dialog-confirm { height: 34px; padding: 0 15px; border-radius: var(--r-sm); font-size: 13px; font-weight: 600; }
.ops-dialog-cancel { color: var(--ink-2); background: var(--surface); border: 1px solid var(--line); }
.ops-dialog-cancel:hover { color: var(--ink); border-color: var(--line-strong); }
.ops-dialog-confirm { color: #fff; background: var(--accent); }
.ops-dialog-confirm:hover { background: var(--accent-hover); }
.ops-dialog-confirm.danger { background: var(--danger); }
.ops-dialog-confirm.approve { background: var(--accent); }
.ops-dialog-copy { color: var(--ink-2); font-size: 13px; }
.ops-dialog-summary { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: start; gap: 11px; }
.ops-dialog-summary strong { display: block; font-size: 14px; }
.ops-dialog-summary p { color: var(--ink-2); font-size: 12.5px; }
.ops-dialog-field { display: grid; gap: 5px; }
.ops-dialog-field > span { color: var(--ink-2); font-size: 12.5px; font-weight: 500; }
.ops-dialog-field > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ops-dialog-field input, .ops-dialog-field select, .ops-dialog-field textarea, .ops-edit-form input, .ops-edit-form textarea {
  width: 100%; min-width: 0; padding: 9px 11px; color: var(--ink); background: var(--surface-2);
  border: 1px solid var(--line); border-radius: var(--r-sm); outline: 0; font-size: 13px; resize: vertical;
}
.ops-dialog-field input:focus, .ops-dialog-field select:focus, .ops-dialog-field textarea:focus,
.ops-edit-form input:focus, .ops-edit-form textarea:focus { border-color: var(--accent); }
.ops-dialog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ops-external-drill-form { min-width: 0; display: grid; gap: 16px; }
.ops-external-drill-form .ops-drill-form-group { padding-top: 12px; border-top: 1px solid var(--line); }
.ops-checkline { display: flex; align-items: center; gap: 9px; color: var(--ink-2); font-size: 13px; }
.ops-edit-form { display: grid; gap: 12px; }
.ops-edit-form label { display: grid; gap: 5px; }
.ops-edit-form label > span { color: var(--ink-2); font-size: 12.5px; font-weight: 500; }
.ops-change-preview { padding: 12px; color: var(--ink-2); background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm); font-size: 12.5px; }

.ops-version-heading { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.ops-version-heading strong { display: block; margin: 6px 0 2px; font-size: 15px; }
.ops-version-heading p { color: var(--ink-2); font-size: 12.5px; }
.ops-version-timeline { display: grid; }
.ops-version-timeline article {
  padding: 12px 0; display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: start; gap: 11px;
  border-bottom: 1px solid var(--line);
}
.ops-version-timeline article:last-child { border-bottom: 0; }
.ops-version-timeline > article > i { width: 7px; height: 7px; margin-top: 6px; border-radius: 50%; background: var(--accent); }
.ops-version-timeline span { display: block; color: var(--ink-3); font-size: 11.5px; font-weight: 600; }
.ops-version-timeline strong { display: block; margin: 2px 0 1px; font-size: 13.5px; }
.ops-version-timeline p { color: var(--ink-2); font-size: 12.5px; }
.ops-version-timeline small { display: block; margin-top: 3px; color: var(--ink-3); font-size: 12px; }

.my-work-summary { padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.my-work-summary span { font-size: 13.5px; }
.my-work-summary p { margin-top: 3px; color: var(--ink-2); font-size: 12.5px; }
.my-work-list article {
  padding: 12px 0; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 12px;
  border-bottom: 1px solid var(--line);
}
.my-work-list article:last-child { border-bottom: 0; }
.my-work-list strong { display: block; margin: 4px 0 1px; font-size: 13.5px; }
.my-work-list small { color: var(--ink-3); font-size: 12px; }

/* ── 다크 모드 보정 ─────────────────────────────────────────────────────── */

body.soft-dark .ops-primary, body.soft-dark .ops-dialog-confirm { color: #0d1614; }
body.soft-dark .operations-dialog-backdrop { background: rgba(0, 0, 0, .65); }

/* ── 반응형 ─────────────────────────────────────────────────────────────── */

.operations-view details { min-width: 0; letter-spacing: 0; }
.operations-view details > summary { width: fit-content; max-width: 100%; color: var(--ink-2); font-size: 12.5px; line-height: 1.6; cursor: pointer; }
.operations-view details > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.ops-row-actions { align-items: start; }
.operations-view .ops-action-menu > summary {
  width: 28px; height: 28px; display: grid; place-items: center; list-style: none;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-sm);
}
.ops-action-menu > summary::-webkit-details-marker { display: none; }
.ops-action-menu > summary:hover { color: var(--ink); border-color: var(--line-strong); }
.ops-action-menu > summary svg, .ops-report-editor > summary svg { width: 14px; height: 14px; vertical-align: middle; }
.ops-action-menu-items { display: grid; gap: 0; margin-top: 6px; min-width: 144px; max-width: 220px; padding: 4px; border: 1px solid var(--line); border-radius: 6px; background: var(--surface); }
.ops-action-menu-items button { width: 100%; min-height: 28px; height: auto; padding: 5px 10px; border: 0; background: none; white-space: normal; text-align: left; }
.ops-action-menu-items button.danger { background: none; }
.ops-action-menu-items button:hover { background: var(--surface-2); }
.operations-view :is(.ops-create-assignment, .ops-create-invite):not([open]) { display: none; }
.ops-invite-list-panel > header { gap: 8px; }
.ops-invite-list-panel > header > div:first-child { margin-right: auto; }
.ops-report-editor[open] { padding-top: 8px; border-top: 1px solid var(--line); }
.ops-report-editor > summary { display: flex; align-items: center; gap: 6px; }
.ops-report-editor[open] > summary { margin-bottom: 10px; }
.ops-user-work-fields, .ops-assignment-facts { margin: 4px 0; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 12.5px; letter-spacing: 0; }
.ops-user-work-fields > div, .ops-assignment-facts > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.ops-user-work-fields dt, .ops-assignment-facts dt { color: var(--ink-3); }
.ops-user-work-fields dd, .ops-assignment-facts dd { margin: 0; color: var(--ink-2); overflow-wrap: anywhere; }
.ops-audit-detail { margin-top: 4px; }
.ops-audit-detail pre { margin: 8px 0 0; }
.ops-audit-detail pre code { white-space: pre-wrap; overflow: visible; text-overflow: clip; overflow-wrap: anywhere; }
.ops-audit-pagination { padding: 10px 16px; display: flex; justify-content: flex-end; align-items: center; gap: 10px; border-top: 1px solid var(--line); color: var(--ink-2); font-size: 12.5px; }
.ops-audit-pagination button { width: 28px; height: 28px; display: grid; place-items: center; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-sm); }
.ops-audit-pagination button svg { width: 14px; height: 14px; }
.ops-audit-pagination button:disabled { opacity: .5; }
.operations-view .ops-action-menu > summary, .operations-view .ops-audit-pagination button,
.operations-view .ops-queue-item > button { width: 34px; height: 34px; }
.operations-view :is(.ops-system-grid, .ops-resilience-matrix, .ops-release-kpis) > :is(.ops-empty, .load-note) { grid-column: 1 / -1; }
[data-ops-view="release"].is-empty .ops-release-layout,
[data-ops-view="release"] .ops-release-history-panel[hidden],
.ops-release-hero.is-empty :is(.ops-release-score, .ops-release-meta) { display: none; }
.ops-release-hero.is-empty { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 16px; }
.ops-gate-details { margin-top: 4px; }
.ops-gate-details ul { padding-left: 18px; margin: 6px 0; color: var(--ink-2); font-size: 12px; overflow-wrap: anywhere; }
.ops-gate-details p { margin-top: 6px; }
.ops-recovery-targets article:nth-of-type(3), .ops-recovery-policy { grid-column: 1 / -1; }
.ops-recovery-targets .ops-recovery-policy { margin: 0; color: var(--ink-3); font-size: 12px; overflow-wrap: anywhere; }
.ops-recovery-result.failed > span, .ops-recovery-result.failed footer b { color: var(--danger); background: var(--danger-soft); }
.ops-drill-detail { margin-top: 4px; }
.ops-drill-detail pre, .ops-system-detail code { display: block; margin-top: 6px; white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ink-2); font-family: var(--mono); font-size: 11.5px; }
.ops-system-detail { margin-top: 4px; }
.ops-assignment-row > .ops-assignment-details { grid-column: 1 / -1; }
.ops-assignment-details p { margin-top: 6px; color: var(--ink-2); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }

/* Round 4: scoped work queues, comparisons and evidence disclosures. */
.operations-view .ops-user-draft-bar {
  padding: 8px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px;
  border-bottom: 1px solid var(--line); color: var(--ink-2); font-size: 12.5px;
}
.operations-view .ops-user-draft-filter { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; }
.operations-view .ops-user-draft-filter input { width: 16px; height: 16px; accent-color: var(--accent); }
.operations-view .ops-user-draft-bar small { color: var(--ink-3); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.operations-view .ops-user-draft-empty { padding: 16px; color: var(--ink-2); font-size: 13px; }
.operations-view :is(.ops-user-row, .ops-user-draft-empty)[hidden] { display: none; }
.operations-view .ops-user-controls { width: min(410px, 100%); grid-template-columns: minmax(0, 1fr) 82px 76px 34px; }
.operations-view .ops-user-controls [data-cancel-user-draft] { width: 34px; height: 34px; padding: 0; justify-content: center; }
.operations-view .ops-user-controls [data-cancel-user-draft] svg { width: 14px; height: 14px; }
.operations-view :is(.ops-user-draft-filter input, .ops-invite-state-filter, .ops-system-state-line button, [data-cancel-user-draft]):focus-visible {
  outline: 2px solid var(--accent); outline-offset: 2px;
}
.operations-view .ops-invite-state-filter {
  min-width: 128px; max-width: 100%; height: 34px; padding: 0 10px;
  color: var(--ink); background: var(--surface-2); border: 1px solid var(--line); border-radius: var(--r-sm); font-size: 12.5px;
}
.operations-view :is(.ops-invite-facts, .ops-evidence-facts, .ops-assignment-counts) { margin: 8px 0 0; display: grid; gap: 6px 12px; font-size: 12.5px; }
.operations-view .ops-invite-facts { grid-template-columns: minmax(72px, .8fr) minmax(72px, .8fr) minmax(0, 1.2fr) minmax(0, 1.3fr); }
.operations-view .ops-evidence-facts { grid-template-columns: minmax(0, 1fr); }
.operations-view .ops-assignment-counts { max-width: 620px; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 1fr)); }
.operations-view :is(.ops-invite-facts, .ops-evidence-facts, .ops-assignment-counts) > div { min-width: 0; }
.operations-view :is(.ops-invite-facts, .ops-evidence-facts, .ops-assignment-counts) dt { color: var(--ink-3); }
.operations-view :is(.ops-invite-facts, .ops-evidence-facts, .ops-assignment-counts) dd { margin: 2px 0 0; color: var(--ink-2); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.operations-view .ops-assignment-rate.unassigned { color: var(--ink-3); background: var(--surface-3); }
.operations-view .ops-evidence-row .ops-evidence-receipt { margin-top: 6px; color: var(--ink-3); font-size: 12px; }
.operations-view .ops-resilience-gate footer span { height: auto; min-height: 20px; white-space: normal; overflow-wrap: anywhere; }
.operations-view .ops-evidence-row aside { max-width: 160px; }
.operations-view .ops-evidence-row aside em { text-align: right; overflow-wrap: anywhere; }
.operations-view .ops-history-note { margin: 0; padding: 10px 16px; border-bottom: 1px solid var(--line); color: var(--ink-3); font-size: 12.5px; }
.operations-view .ops-release-history-row { align-items: start; }
.operations-view .ops-release-history-row > div { min-width: 0; overflow-wrap: anywhere; }
.operations-view .ops-release-history-detail > section { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.operations-view .ops-release-history-detail h3 { margin: 0 0 6px; color: var(--ink-2); font-size: 13px; font-weight: 600; }
.operations-view .ops-release-history-detail ul { margin: 0; padding: 0; list-style: none; }
.operations-view .ops-release-history-detail li { padding: 8px 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; border-bottom: 1px solid var(--line); }
.operations-view .ops-release-history-detail li:last-child { border-bottom: 0; }
.operations-view .ops-release-history-detail li > span { color: var(--ink-2); font-size: 12px; }
.operations-view .ops-release-history-detail li > p { grid-column: 1 / -1; white-space: pre-wrap; overflow-wrap: anywhere; }
.operations-view .ops-release-history-detail pre { margin-top: 8px; white-space: pre-wrap; overflow-wrap: anywhere; }
.operations-view .ops-system-state-line { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; }
.operations-view .ops-system-state-line button { min-height: 34px; display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-size: 12.5px; }
.operations-view .ops-system-state-line button svg { width: 14px; height: 14px; }
.operations-dialog .ops-review-facts { margin: 0; }

@media (max-width: 1180px) {
  .operations-view .ops-invite-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operations-view .ops-invite-layout { grid-template-columns: minmax(0, 1fr); }
  .operations-page [data-ops-view="assignments"] .ops-invite-layout { grid-template-columns: minmax(0, 1fr); }
  .ops-resilience-matrix, .ops-invite-create form > div { grid-template-columns: minmax(0, 1fr); }
  .ops-create-assignment form, .ops-create-assignment form > div { grid-template-columns: minmax(0, 1fr); }
  .ops-audit-row { grid-template-columns: 130px 8px minmax(0, 1fr); }
  .ops-audit-row > small { grid-column: 3; }
  .ops-audit-columns { grid-template-columns: 130px 8px minmax(0, 1fr); }
  .ops-audit-main, .ops-audit-columns > div { grid-template-columns: 100px minmax(0, 1fr) minmax(0, 1.2fr); }
  .ops-report-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .operations-view .ops-evidence-row aside em { text-align: left; }
  .operations-hero { align-items: start; flex-direction: column; gap: 14px; }
  .operations-hero h1 { font-size: 28px; }
  .operations-shell { width: calc(100% - 32px); padding: 20px 0 48px; }
  .operations-metrics article { padding: 12px 14px; }
  .operations-tabs { position: static; }
  .operations-tab-group { flex-wrap: nowrap; overflow-x: auto; padding: 4px 2px; scroll-padding-inline: 4px; }
  .operations-tabs button { flex: 0 0 auto; white-space: nowrap; }
  .operations-overview-grid, .ops-release-layout, .ops-resilience-layout,
  .ops-system-layout, .ops-resilience-ledgers { grid-template-columns: minmax(0, 1fr); }
  .operations-page .operations-overview-grid > :is(.ops-panel, .ops-state-map, .ops-overview-stack) { grid-column: 1; grid-row: auto; }
  .ops-release-hero, .ops-release-hero.is-empty, .ops-resilience-hero { grid-template-columns: minmax(0, 1fr); }
  .ops-state-track { grid-template-columns: 1fr 1fr; }
  .ops-toolbar-controls { width: 100%; }
  .ops-toolbar-controls label { flex: 1 1 220px; width: auto; }
  .ops-toolbar-controls > input, .ops-toolbar-controls select { flex: 1 1 140px; min-width: 0; width: auto; max-width: 100%; }
  .ops-queue-item { grid-template-columns: 34px minmax(0, 1fr) auto; }
  .ops-queue-item > .ops-queue-rank { display: none; }
  .ops-queue-item time { grid-column: 2; }
  .ops-queue-item > button { grid-column: 3; grid-row: 1 / span 2; }
  .ops-content-row { grid-template-columns: 34px minmax(0, 1fr); }
  .ops-content-row .ops-row-signal, .ops-content-row .ops-row-actions { grid-column: 1 / -1; }
  .ops-content-row .ops-row-signal { margin-left: 48px; justify-content: start; }
  .ops-user-editor > summary { grid-template-columns: 34px minmax(0, 1fr) 32px; }
  .ops-user-editor > summary > svg { grid-column: 3; grid-row: 1; }
  .ops-user-columns { display: none; }
  .ops-user-affiliation, .ops-user-current { grid-column: 2; }
  .ops-user-current { grid-template-columns: minmax(0, 1fr) 70px; }
  .ops-audit-main { grid-template-columns: minmax(0, 1fr); }
  .ops-audit-columns { display: none; }
  .ops-audit-row { grid-template-columns: minmax(0, 1fr); }
  .ops-audit-row > small { grid-column: 1; }
  .ops-audit-row > i { display: none; }
  .ops-release-kpis, .ops-recovery-targets > div:not(.load-note), .ops-dialog-grid,
  .ops-dialog-field > div { grid-template-columns: minmax(0, 1fr); }
  .ops-evidence-row, .ops-drill-row { grid-template-columns: minmax(0, 1fr); }
  .ops-evidence-row aside, .ops-drill-row aside { justify-items: start; }
}

@media (max-width: 640px) {
  .operations-view .ops-user-controls { width: 100%; grid-template-columns: 82px minmax(76px, 1fr) 34px; }
  .operations-view .ops-user-controls > label:first-child { grid-column: 1 / -1; }
  .operations-view .ops-invite-facts { grid-template-columns: minmax(0, 1fr); }
  .operations-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operations-metrics article:nth-child(even) { border-right: 0; }
  .operations-metrics article:nth-child(n+3) { border-top: 1px solid var(--line); }
  .operations-metrics article > div { grid-template-columns: minmax(0, 1fr); }
  .operations-metrics article strong { grid-column: 1; grid-row: 2; }
  .ops-release-history-row { grid-template-columns: 8px minmax(0, 1fr) auto; }
  .ops-release-history-row > span { grid-column: 2; }
  .ops-release-history-row > small { grid-column: 2; }
  .ops-release-history-row > b { grid-column: 3; grid-row: 1; }
  .ops-invite-row, .ops-backup-row { grid-template-columns: 34px minmax(0, 1fr); }
  .ops-invite-row > button, .ops-backup-row > div:last-child { grid-column: 2; justify-self: start; }
  .ops-review-facts > div { grid-template-columns: minmax(0, 1fr); gap: 3px; }
  .ops-report-controls, .operations-view .ops-create-invite form { grid-template-columns: minmax(0, 1fr); }
  .ops-user-controls { width: 100%; }
}

/* 훈련 과제 부여 */
.ops-assignment-list { min-height: 0; }
.ops-assignment-list:has(.load-note) { min-height: 104px; }
.ops-assignment-row {
  padding: 13px 16px; display: grid; grid-template-columns: minmax(0, 1fr) auto;
  align-items: center; gap: 10px;
}
.ops-assignment-row + .ops-assignment-row { border-top: 1px solid var(--line); }
.ops-assignment-row:hover { background: var(--surface-2); }
.ops-assignment-row span { display: block; color: var(--ink-2); font-size: 13px; }
.ops-assignment-row strong { display: block; margin: 4px 0; color: var(--ink); font-size: 14px; font-weight: 550; line-height: 1.5; }
.ops-assignment-row small { color: var(--ink-3); font-size: 13px; }
.ops-assignment-row .ops-assignment-binding-error { display: block; margin-top: 6px; color: var(--danger); font-weight: 550; }
.ops-assignment-rate {
  min-height: 30px; padding: 4px 10px; display: inline-flex; align-items: center;
  color: var(--accent); background: var(--accent-soft); border-radius: var(--r-sm);
  font-size: 14px; font-style: normal; font-weight: 550; font-variant-numeric: tabular-nums;
}
.ops-assignment-rate.pending { color: var(--amber); background: var(--amber-soft); }
.ops-assignment-rate.failed { color: var(--danger); background: var(--danger-soft); }
.ops-invite-create textarea {
  padding: 9px 11px; color: var(--ink); background: var(--surface-2);
  border: 1px solid var(--line); border-radius: var(--r-sm); outline: 0; font-size: 13px; resize: vertical;
}
.ops-invite-create textarea:focus { border-color: var(--accent); }

/* Round 5: shared comparison tracks and selected work details. */
.operations-page .operations-hero { margin-bottom: 12px; padding-bottom: 12px; }
.operations-page .operations-hero h1 { margin-top: 0; font-size: 24px; line-height: 32px; }
.operations-page .operations-tabs {
  position: static; padding: 0 0 10px; display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 8px 16px;
  background: var(--bg); border: 0; border-bottom: 1px solid var(--line-strong); border-radius: 0;
}
.operations-page .operations-tab-group { flex: 0 1 auto; min-width: 0; gap: 4px; }
.operations-page .operations-tab-group + .operations-tab-group { padding-top: 0; border-top: 0; }
.operations-page .operations-tab-group-label { width: auto; flex: 0 0 auto; margin-right: 4px; padding-left: 0; }
.operations-page .operations-tab-group:not(:has(.operations-tab-group-label))::before { content: attr(aria-label); flex: 0 0 auto; margin-right: 4px; color: var(--ink-3); font-size: 12px; font-weight: 600; }
.operations-page [data-admin-only][hidden], .operations-page.is-detail-tab .operations-metrics { display: none; }
.operations-page .operations-tabs button { min-height: 34px; padding: 5px 8px; font-size: 13px; }
.operations-page .operations-tabs button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }

.operations-page [data-ops-view="overview"].is-active { display: block; }
.operations-page [data-ops-view="overview"] > .operations-metrics { margin: 0 0 12px; }
.operations-page [data-ops-view="overview"] > .operations-overview-grid { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.operations-page [data-ops-view="overview"] .ops-overview-stack { grid-column: 1; grid-row: auto; }
.operations-page [data-ops-view="overview"] .ops-activity-panel { grid-column: 2; grid-row: auto; align-self: start; }
.operations-page .operations-metrics article strong { font-size: 22px; line-height: 28px; }
.operations-page .operations-metrics article small, .operations-page .operations-metrics article > button { font-size: 12.5px; }
.operations-page .ops-state-track > button { border-radius: 0; }
.operations-page .ops-state-track strong { font-size: 18px; }
.operations-page .ops-queue-item { grid-template-columns: 26px 34px minmax(0, 1fr) 68px 34px; gap: 8px; }
.operations-page .ops-activity-entry { grid-template-columns: 8px minmax(0, 1fr) 68px; }
.operations-page :is(.ops-queue-item, .ops-activity-entry) time { white-space: normal; overflow-wrap: anywhere; }

.operations-view :is(.ops-panel, .ops-state-map) { border-radius: 8px; }
.operations-view .ops-toolbar-controls { gap: 6px; }
.operations-view .ops-toolbar-controls label { width: 240px; }
.operations-view .ops-toolbar-controls select { max-width: 200px; }
.operations-view .ops-toolbar-controls .ops-query-action {
  width: 34px; height: 34px; min-height: 34px; padding: 0; display: inline-grid; place-items: center; flex: 0 0 34px;
  color: var(--ink-2); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-sm);
}
.operations-view .ops-query-action svg { width: 14px; height: 14px; }
.operations-view .ops-query-action:hover { color: var(--accent); border-color: var(--accent-line); }
.operations-view :is(.ops-query-action, .ops-report-editor > summary, .ops-assignment-details > summary):focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.operations-view .ops-list-columns {
  padding: 8px 16px; display: grid; gap: 12px; color: var(--ink-3); background: var(--surface-2); border-bottom: 1px solid var(--line); font-size: 12px;
}
.operations-view .ops-list-columns > span { min-width: 0; overflow-wrap: anywhere; }
.operations-view :is(.ops-review-context, .ops-assignment-details) section { margin-top: 10px; }
.operations-view :is(.ops-review-context, .ops-assignment-details, .ops-report-context, .ops-report-editor) h3 {
  margin: 0 0 6px; color: var(--ink-2); font-size: 12.5px; line-height: 20px; font-weight: 600;
}
.operations-view :is(.ops-review-context, .ops-report-context) p { margin: 0; color: var(--ink-2); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.operations-view :is(.ops-content-row, .ops-report-row, .ops-assignment-row, .ops-invite-row):focus-within { background: var(--surface-2); }

.operations-view .ops-content-list { --ops-content-columns: 34px minmax(0, 1fr) 142px 84px 208px; }
.operations-view :is(.ops-content-columns, .ops-content-row) { grid-template-columns: var(--ops-content-columns); gap: 6px 12px; }
.operations-view .ops-content-columns > span:first-child { grid-column: 1 / span 2; }
.operations-view .ops-content-row { align-items: start; }
.operations-view .ops-content-row > .ops-type-token { grid-column: 1; grid-row: 1; }
.operations-view .ops-content-row > .ops-row-main { grid-column: 2; grid-row: 1; }
.operations-view .ops-content-state { grid-column: 3; grid-row: 1; min-width: 0; display: grid; justify-items: start; gap: 6px; }
.operations-view .ops-content-state > div { min-width: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.operations-view .ops-content-row > .ops-row-signal { grid-column: 4; grid-row: 1; min-width: 0; justify-content: start; gap: 10px; }
.operations-view .ops-content-row > .ops-row-actions { grid-column: 5; grid-row: 1; min-width: 0; max-width: 100%; display: flex; flex-wrap: wrap; justify-content: end; gap: 4px; }
.operations-view .ops-content-row > .ops-review-context { grid-column: 2; grid-row: 2; margin-top: 0; }
.operations-view .ops-content-row > .ops-review-context[open] { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid var(--line); }
.operations-view .ops-content-row > .ops-review-note { grid-column: 1 / -1; grid-row: 3; margin: 0; padding: 6px 10px; border-left: 2px solid var(--amber-line); color: var(--ink-2); font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.operations-view .ops-content-row:not(:has(.ops-review-context[open])) > .ops-review-note { display: none; }
.operations-view .operations-table-panel { overflow: visible; }
.operations-view .ops-action-menu { position: relative; min-width: 0; width: 34px; height: 34px; flex: 0 0 34px; }
.operations-view .ops-action-menu-items { position: absolute; top: 100%; right: 0; z-index: 5; min-width: 180px; width: 180px; max-width: none; }
.operations-view .ops-content-row:has(.ops-action-menu[open]) { position: relative; z-index: 2; }

.operations-view .ops-report-list { --ops-report-columns: minmax(0, 1fr) 158px 152px 112px; }
.operations-view :is(.ops-report-columns, .ops-report-row) { grid-template-columns: var(--ops-report-columns); gap: 8px 12px; }
.operations-view .ops-report-row > header { grid-column: 2; grid-row: 1; min-width: 0; display: grid; align-content: start; gap: 6px; }
.operations-view .ops-report-row > .ops-report-target { grid-column: 1; grid-row: 1; min-width: 0; }
.operations-view .ops-report-target > div { min-width: 0; overflow-wrap: anywhere; }
.operations-view .ops-report-row > .ops-report-meta { grid-column: 3; grid-row: 1; min-width: 0; display: grid; align-content: start; gap: 6px; overflow-wrap: anywhere; }
.operations-view .ops-report-row > .ops-report-context { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding-top: 10px; border-top: 1px solid var(--line); }
.operations-view .ops-report-row:not(:has(.ops-report-editor[open])) > .ops-report-context { display: none; }
.operations-view .ops-report-context > section { min-width: 0; }
.operations-view .ops-report-row > .ops-report-editor { grid-column: 4; grid-row: 1; min-width: 0; align-self: start; }
.operations-view .ops-report-editor > summary { min-height: 34px; width: fit-content; margin-left: auto; padding: 5px 8px; border: 1px solid var(--line); border-radius: var(--r-sm); background: var(--surface); }
.operations-view .ops-report-row > .ops-report-editor[open] { grid-column: 1 / -1; grid-row: 3; }
.operations-view .ops-report-editor .ops-report-controls { max-width: none; }

.operations-view .ops-assignment-list { --ops-assignment-columns: minmax(0, 1fr) 320px 100px 100px; }
.operations-view :is(.ops-assignment-columns, .ops-assignment-row) { grid-template-columns: var(--ops-assignment-columns); gap: 8px 12px; align-items: start; }
.operations-view .ops-assignment-row > .ops-assignment-counts { margin: 0; grid-template-columns: minmax(140px, 2fr) repeat(2, minmax(64px, 1fr)); }
.operations-view .ops-assignment-row > .ops-assignment-rate { justify-self: start; max-width: 100%; min-height: 26px; font-size: 12.5px; overflow-wrap: anywhere; }
.operations-view .ops-assignment-row > .ops-assignment-details { grid-column: 4; }
.operations-view .ops-assignment-details > summary { min-height: 34px; display: flex; align-items: center; }
.operations-view .ops-assignment-row > .ops-assignment-details[open] { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid var(--line); }
.operations-view .ops-assignment-row:has(.ops-assignment-details[open]) { background: var(--surface-2); }

.operations-view .ops-invite-list { --ops-invite-columns: 34px minmax(0, 1fr) minmax(0, 2.4fr) 104px; }
.operations-view :is(.ops-invite-columns, .ops-invite-row) { grid-template-columns: var(--ops-invite-columns); gap: 8px 12px; align-items: start; }
.operations-view .ops-invite-columns > span:first-child { grid-column: 1 / span 2; }
.operations-view .ops-invite-identity { min-width: 0; overflow-wrap: anywhere; }
.operations-view .ops-invite-row > .ops-invite-facts { margin: 0; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.operations-view .ops-invite-row > button { justify-self: end; white-space: normal; }
.operations-view .ops-invite-row > .ops-invite-detail { grid-column: 2 / -1; margin-top: 0; }
.operations-view .ops-invite-row > .ops-invite-detail[open] { grid-column: 1 / -1; padding-top: 8px; border-top: 1px solid var(--line); }
.operations-view .ops-invite-row:has(.ops-invite-detail[open]) { background: var(--surface-2); }
.operations-view :is(.ops-user-editor[open], .ops-audit-row:has(.ops-audit-detail[open])) { background: var(--surface-2); }
.operations-view .ops-audit-list { --ops-audit-columns: 150px 8px minmax(0, 1fr) 80px 96px; }
.operations-view .ops-audit-row, .operations-view .ops-audit-columns { grid-template-columns: var(--ops-audit-columns); }
.operations-view .ops-audit-row > small { grid-column: 4; grid-row: 1; }
.operations-view .ops-audit-row > .ops-audit-detail { grid-column: 5; grid-row: 1; margin: 0; }
.operations-view .ops-audit-row > .ops-audit-detail[open] { grid-column: 1 / -1; grid-row: 2; padding-top: 8px; border-top: 1px solid var(--line); }

.operations-view :is(.ops-release-hero, .ops-resilience-hero) { padding: 12px 0; background: none; border: 0; border-block: 1px solid var(--line); border-radius: 0; }
.operations-view .ops-release-hero { grid-template-columns: minmax(0, 1fr) 148px 144px; }
.operations-view .ops-release-hero.is-empty { grid-template-columns: minmax(0, 1fr) 144px; }
.operations-view .ops-release-refresh { grid-column: 3; grid-row: 1; justify-self: end; }
.operations-view .ops-release-hero.is-empty .ops-release-refresh { grid-column: 2; }
.operations-view :is(.ops-release-score, .ops-resilience-ring) { padding: 0; background: none; border: 0; border-radius: 0; }
.operations-view .ops-release-score { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.operations-view .ops-release-score > small { flex-basis: 100%; }
.operations-view .ops-release-score > i { margin-top: 0; }
.operations-view :is(.ops-release-copy, .ops-resilience-copy) { min-width: 0; overflow-wrap: anywhere; }
.operations-view :is(.ops-release-meta, .ops-resilience-meta) { margin-top: 6px; }
.operations-view :is(.ops-release-check, .ops-resilience-gate) { grid-template-columns: 26px minmax(0, 1fr) 76px; }
.operations-view :is(.ops-release-check, .ops-resilience-gate) > i { justify-self: end; max-width: 100%; height: auto; min-height: 22px; overflow-wrap: anywhere; }
.operations-view .ops-release-kpis, .operations-view .ops-recovery-targets > div:not(.load-note) { padding: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.operations-view :is(.ops-release-kpis, .ops-recovery-targets) article { padding: 10px 16px; display: grid; grid-template-columns: minmax(0, 1fr) 110px minmax(0, 1fr); align-items: baseline; gap: 6px 12px; background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; }
.operations-view :is(.ops-release-kpis, .ops-recovery-targets) article strong { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.operations-view :is(.ops-release-kpis, .ops-recovery-targets) article span { overflow-wrap: anywhere; }
.operations-view .ops-recovery-targets .ops-recovery-policy { padding: 8px 16px; }
.operations-view .ops-release-history-row { grid-template-columns: 8px minmax(0, 1fr) 80px 150px 76px; }
.operations-view .ops-release-history-row > :is(span, small, b) { overflow-wrap: anywhere; }
.operations-view .ops-resilience-ledgers { grid-template-columns: minmax(0, 1fr); }
.operations-view .ops-evidence-facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.operations-view .ops-evidence-row { grid-template-columns: 30px minmax(0, 1fr) 160px; }
.operations-view .ops-drill-row { grid-template-columns: 8px minmax(0, 1fr) 160px; }
.operations-view .ops-backup-row { grid-template-columns: 38px minmax(0, 1fr) 116px; }
.operations-view .ops-backup-row > div:last-child { justify-content: end; }
.operations-view .ops-backup-row [data-delete-backup] { width: 34px; height: 34px; padding: 0; justify-content: center; }
.operations-view .ops-system-card { background: none; }
.operations-view .ops-system-state-line { justify-content: start; gap: 6px 16px; }

@media (max-width: 1180px) {
  .operations-view .ops-audit-list { --ops-audit-columns: 130px 8px minmax(0, 1fr) 80px 96px; }
  .operations-view .ops-toolbar-controls { flex: 1 1 100%; }
  .operations-view .ops-toolbar-controls label { flex: 1 1 240px; }
  .operations-view .ops-release-hero { grid-template-columns: minmax(0, 1fr) 148px; }
  .operations-view .ops-release-refresh { grid-column: 1 / -1; grid-row: auto; justify-self: start; }
}

@media (max-width: 900px) {
  .operations-page .operations-tabs { display: grid; gap: 6px; }
  .operations-page .operations-tab-group { max-width: 100%; }
  .operations-page .operations-tab-group-label { min-width: 60px; }
  .operations-page .operations-tab-group:not(:has(.operations-tab-group-label))::before { min-width: 60px; }
  .operations-page [data-ops-view="overview"] > .operations-overview-grid { grid-template-columns: minmax(0, 1fr); }
  .operations-page [data-ops-view="overview"] :is(.ops-overview-stack, .ops-activity-panel) { grid-column: 1; grid-row: auto; }
  .operations-page .ops-queue-item { grid-template-columns: 34px minmax(0, 1fr) 34px; }
  .operations-page .ops-queue-item > .ops-queue-rank { display: none; }
  .operations-page .ops-queue-item time { grid-column: 2; }
  .operations-page .ops-queue-item > button { grid-column: 3; grid-row: 1 / span 2; }
  .operations-view .ops-list-columns { display: none; }
  .operations-view .ops-content-row { grid-template-columns: 34px minmax(0, 1fr); }
  .operations-view .ops-content-row > :is(.ops-content-state, .ops-row-signal, .ops-row-actions) { grid-column: 2; grid-row: auto; justify-content: start; margin-left: 0; }
  .operations-view .ops-content-row > .ops-review-context { grid-column: 2; grid-row: auto; }
  .operations-view .ops-content-row > .ops-review-context[open], .operations-view .ops-content-row > .ops-review-note { grid-column: 1 / -1; grid-row: auto; }
  .operations-view .ops-report-row { grid-template-columns: minmax(0, 1fr); }
  .operations-view .ops-report-row > :is(header, .ops-report-target, .ops-report-meta, .ops-report-context, .ops-report-editor) { grid-column: 1; grid-row: auto; }
  .operations-view .ops-report-row > .ops-report-editor[open] { grid-column: 1; grid-row: auto; }
  .operations-view .ops-report-row > .ops-report-context { grid-template-columns: minmax(0, 1fr); }
  .operations-view .ops-report-editor > summary { margin-left: 0; }
  .operations-view .ops-assignment-row { grid-template-columns: minmax(0, 1fr) 100px; }
  .operations-view .ops-assignment-row > .ops-assignment-counts { grid-column: 1 / -1; grid-row: 2; }
  .operations-view .ops-assignment-row > .ops-assignment-rate { grid-column: 2; grid-row: 1; }
  .operations-view .ops-assignment-row > .ops-assignment-details { grid-column: 1 / -1; }
  .operations-view .ops-invite-row { grid-template-columns: 34px minmax(0, 1fr) 104px; }
  .operations-view .ops-invite-row > .ops-invite-facts { grid-column: 2 / -1; grid-row: 2; }
  .operations-view .ops-invite-row > button { grid-column: 3; grid-row: 1; }
  .operations-view .ops-audit-row { grid-template-columns: minmax(0, 1fr); }
  .operations-view .ops-audit-columns { display: none; }
  .operations-view .ops-audit-row > small { grid-column: 1; grid-row: auto; }
  .operations-view .ops-audit-row > .ops-audit-detail, .operations-view .ops-audit-row > .ops-audit-detail[open] { grid-column: 1; grid-row: auto; }
  .operations-view .ops-release-hero, .operations-view .ops-release-hero.is-empty { grid-template-columns: minmax(0, 1fr); }
  .operations-view .ops-release-refresh { grid-column: 1; }
  .operations-view .ops-release-hero.is-empty .ops-release-refresh { grid-column: 1; grid-row: auto; }
  .operations-view .ops-release-history-row { grid-template-columns: 8px minmax(0, 1fr) 76px; }
  .operations-view .ops-release-history-row > :is(span, small) { grid-column: 2; }
  .operations-view .ops-release-history-row > b { grid-column: 3; grid-row: 1; }
  .operations-view .ops-evidence-row, .operations-view .ops-drill-row { grid-template-columns: minmax(0, 1fr); }
  .operations-view .ops-evidence-facts { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .operations-page .operations-hero h1 { font-size: 22px; line-height: 30px; }
  .operations-view .ops-toolbar-controls :is(label, select) { max-width: 100%; }
  .operations-view .ops-invite-row { grid-template-columns: 34px minmax(0, 1fr); }
  .operations-view .ops-invite-row > button { grid-column: 2; grid-row: auto; justify-self: start; }
  .operations-view .ops-invite-row > .ops-invite-facts { grid-column: 2; grid-row: auto; grid-template-columns: minmax(0, 1fr); }
  .operations-view .ops-invite-row > .ops-invite-detail { grid-column: 2; }
  .operations-view .ops-assignment-row { grid-template-columns: minmax(0, 1fr); }
  .operations-view .ops-assignment-row > :is(.ops-assignment-counts, .ops-assignment-rate) { grid-column: 1; grid-row: auto; }
  .operations-view .ops-backup-row { grid-template-columns: 38px minmax(0, 1fr); }
  .operations-view .ops-backup-row > div:last-child { grid-column: 2; justify-content: start; }
  .operations-view :is(.ops-release-kpis, .ops-recovery-targets) article { grid-template-columns: minmax(0, 1fr) 110px; }
  .operations-view :is(.ops-release-kpis, .ops-recovery-targets) article span { grid-column: 1 / -1; }
}

/* Round 6: grouped subnavigation, owned creation panels and evidence rows. */
.operations-page { container-type: inline-size; container-name: operations; }
.operations-page .ops-workbench { display: grid; grid-template-columns: 176px minmax(0, 1fr); gap: 16px 24px; align-items: start; }
.operations-page .ops-workbench > .operations-hero { grid-column: 1 / -1; margin-bottom: 0; }
.operations-page .ops-workbench > .operations-tabs {
  grid-column: 1; grid-row: 2; margin: 0; padding: 0; display: grid; gap: 12px; align-items: start;
  background: none; border: 0;
}
.operations-page .ops-workbench > .operations-view { grid-column: 2; grid-row: 2; min-width: 0; }
.operations-page .ops-workbench .operations-tab-group { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2px; overflow: visible; }
.operations-page .ops-workbench .operations-tab-group + .operations-tab-group { padding-top: 12px; border-top: 1px solid var(--line); }
.operations-page .ops-workbench .operations-tab-group-label { width: auto; min-width: 0; margin: 0; padding: 4px 8px; }
.operations-page .ops-workbench .operations-tabs button {
  min-width: 0; width: 100%; min-height: 36px; padding: 6px 8px; display: flex; gap: 7px;
  border-radius: 6px; text-align: left; white-space: normal; overflow-wrap: anywhere;
}
.operations-page .ops-workbench .operations-tabs svg { display: block; width: 14px; height: 14px; flex: 0 0 14px; }
.operations-page .ops-workbench .operations-tabs button span { margin-left: auto; height: auto; min-height: 18px; flex: 0 0 auto; }
.operations-page .ops-workbench [data-admin-only][hidden],
.operations-page .ops-workbench [data-ops-view][aria-hidden="true"] { display: none; }
.operations-page .ops-workbench :is(.ops-panel, .ops-state-map) { background: none; border: 0; border-radius: 0; }
.operations-page .ops-workbench .ops-panel > header { min-height: 44px; padding-block: 8px; }
.operations-page .ops-workbench .ops-panel > header h2 { font-size: 14px; line-height: 22px; }
.operations-page .ops-workbench .ops-state-map { border-top: 1px solid var(--line); }
.operations-page .ops-workbench .ops-state-map > header { min-height: 40px; padding: 8px 0; border-bottom: 0; }
.operations-page .ops-workbench .ops-state-map h2 { font-size: 13px; line-height: 20px; }
.operations-page .ops-workbench [data-ops-view="overview"] > .operations-overview-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.operations-page .ops-workbench [data-ops-view="overview"] .ops-activity-panel { grid-column: 1 / -1; grid-row: auto; border-top: 1px solid var(--line); }
.operations-page .ops-workbench .ops-activity-list { padding-inline: 0; }
.operations-page .ops-workbench .ops-activity-entry { padding: 8px 0; }
.operations-page .ops-workbench .ops-activity-entry > div { min-width: 0; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr) auto; gap: 4px 12px; align-items: baseline; }
.operations-page .ops-workbench .ops-activity-entry :is(strong, p) { margin: 0; overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-activity-entry .ops-event-detail { margin: 0; }
.operations-page .ops-workbench .ops-activity-entry .ops-event-detail[open] { grid-column: 1 / -1; }
.operations-page .ops-workbench .ops-activity-panel > header { padding-inline: 0; }
.operations-page .ops-workbench .ops-priority-panel > header { padding-left: 0; }
.operations-page .ops-workbench .operations-metrics { margin: 16px 0 0; border: 0; border-block: 1px solid var(--line); border-radius: 0; background: none; }

.operations-page .ops-workbench .ops-content-row > .ops-review-context[open] { grid-column: 1 / span 4; }
.operations-page .ops-workbench .ops-content-row > .ops-review-note { grid-column: 1 / span 4; }
.operations-page .ops-workbench .ops-content-row:has(.ops-review-context[open]) > .ops-row-actions {
  grid-column: 5; grid-row: 2 / span 2; align-self: start; padding-top: 8px; border-top: 1px solid var(--line);
}
.operations-page .ops-workbench .ops-report-row > .ops-report-context { grid-column: 1 / span 2; grid-row: 2; grid-template-columns: minmax(0, 1fr); }
.operations-page .ops-workbench .ops-report-row > .ops-report-editor[open] { grid-column: 3 / -1; grid-row: 2; }
.operations-page .ops-workbench .ops-report-editor[open] > summary { margin-left: 0; }
.operations-page .ops-workbench .ops-report-context > section + section { padding-top: 10px; border-top: 1px solid var(--line); }
.operations-page .ops-workbench .ops-report-reason { font-weight: 600; }
.operations-page .ops-workbench .ops-report-context .ops-report-resolution { margin-top: 6px; }

.operations-page .ops-workbench :is(.ops-create-assignment, .ops-create-invite)[open] { border-block: 1px solid var(--line-strong); background: var(--surface-2); }
.operations-page .ops-workbench :is(.ops-create-assignment, .ops-create-invite) > summary {
  min-height: 40px; padding: 8px 16px; font-size: 14px; line-height: 24px;
}
.operations-page .ops-workbench .ops-create-assignment form { grid-template-columns: minmax(0, .9fr) minmax(0, 1.3fr); gap: 16px 24px; }
.operations-page .ops-workbench .ops-assignment-step[data-assignment-part="targets"] { grid-column: 1; grid-row: 1 / span 2; align-content: start; }
.operations-page .ops-workbench .ops-assignment-step[data-assignment-part="scenario"] { grid-column: 2; grid-row: 1; }
.operations-page .ops-workbench .ops-assignment-step[data-assignment-part="schedule"] { grid-column: 2; grid-row: 2; }
.operations-page .ops-workbench .ops-create-assignment .ops-form-actions { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.operations-page .ops-workbench .ops-create-assignment .ops-form-actions > button { width: auto; min-width: 100px; min-height: 40px; }
.operations-page .ops-workbench .ops-create-assignment :is(input, select) { height: 40px; }
.operations-page .ops-workbench .ops-create-assignment [data-ops-retry-assignment-refs] { width: auto; min-height: 40px; }
.operations-page .ops-workbench .ops-create-invite form { max-width: none; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.operations-page .ops-workbench .ops-create-invite form > label:first-child,
.operations-page .ops-workbench .ops-create-invite form > div { grid-column: auto; }
.operations-page .ops-workbench .ops-create-invite form > p { grid-column: 1 / -1; }
.operations-page .ops-workbench .ops-create-invite form > button { width: auto; }
.operations-page .ops-workbench .ops-assignment-draft-summary {
  margin: 0; padding: 0; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1.2fr) minmax(0, .8fr) minmax(0, 1fr);
  gap: 8px 12px; font-size: 12px;
}
.operations-page .ops-workbench .ops-assignment-draft-summary > div { min-width: 0; }
.operations-page .ops-workbench .ops-assignment-draft-summary dt { color: var(--ink-3); }
.operations-page .ops-workbench .ops-assignment-draft-summary dd { margin: 3px 0 0; color: var(--ink); overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-user-list { --ops-user-columns: 36px minmax(0, 1.2fr) minmax(0, 1fr) 190px 32px; }
.operations-page .ops-workbench :is(.ops-user-columns, .ops-user-editor > summary) { grid-template-columns: var(--ops-user-columns); }
.operations-page .ops-workbench .ops-user-editor > summary { padding-block: 10px; }
.operations-page .ops-workbench .ops-user-affiliation.ops-user-work-fields { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 2px 8px; }
.operations-page .ops-workbench .ops-user-affiliation.ops-user-work-fields > div:first-child { grid-column: 1 / -1; }
.operations-page .ops-workbench .ops-user-work-fields dt { white-space: nowrap; }
.operations-page .ops-workbench .ops-user-current { font-variant-numeric: tabular-nums; }
.operations-page .ops-workbench .ops-user-row.is-dirty { background: var(--amber-soft); }
.operations-page .ops-workbench .ops-user-draft-preview { position: absolute; width: 1px; height: 1px; margin: 0; overflow: hidden; clip-path: inset(50%); }
.operations-page .ops-workbench .ops-user-change-facts { min-width: 0; margin: 8px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; font-size: 12.5px; }
.operations-page .ops-workbench .ops-user-change-facts > div { min-width: 0; }
.operations-page .ops-workbench .ops-user-change-facts dt { color: var(--ink-3); }
.operations-page .ops-workbench .ops-user-change-facts dd { margin: 4px 0 0; white-space: pre-line; overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-user-change-facts > div:last-child { padding-left: 12px; border-left: 2px solid var(--amber-line); }
.operations-page .ops-workbench .ops-user-change-facts[hidden] { display: none; }
.operations-page .ops-workbench :is(.ops-review-context[open], .ops-report-context, .ops-user-edit-detail,
  .ops-invite-detail[open], .ops-audit-detail[open]) { padding-inline: 16px; }
.operations-page .ops-workbench .ops-invite-facts dd { font-variant-numeric: tabular-nums; }
.operations-page .ops-workbench .ops-invite-row > .ops-invite-facts,
.operations-page .ops-workbench .ops-invite-fact-columns { min-width: 0; display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1fr) minmax(0, 1.1fr) minmax(0, 1.35fr); gap: 8px 12px; }
.operations-page .ops-workbench .ops-invite-fact-columns > span { min-width: 0; overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-invite-facts dt { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.operations-page .ops-workbench .ops-invite-facts dd { margin: 0; }
.operations-page .ops-workbench .ops-invite-row[data-invite-state="stopped"] b { color: var(--ink-2); background: var(--surface-3); }
.operations-page .ops-workbench .ops-audit-list { --ops-audit-main-columns: minmax(80px, .8fr) minmax(0, 1.1fr) minmax(0, 1.2fr); }
.operations-page .ops-workbench :is(.ops-audit-main, .ops-audit-columns > div) { grid-template-columns: var(--ops-audit-main-columns); }
.operations-page .ops-workbench .ops-audit-main > :is(strong, p) { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-audit-detail > summary { min-height: 34px; display: flex; align-items: center; }
.operations-page .ops-workbench .ops-audit-changes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
.operations-page .ops-workbench .ops-audit-change { min-width: 0; }
.operations-page .ops-workbench :is(.ops-audit-change, .ops-audit-memo) h3 { margin: 8px 0; font-size: 13px; line-height: 20px; }
.operations-page .ops-workbench .ops-audit-change .ops-review-facts > div { grid-template-columns: 64px minmax(0, 1fr); }
.operations-page .ops-workbench .ops-audit-change .ops-review-facts dd { white-space: pre-wrap; }
.operations-page .ops-workbench .ops-audit-memo p { margin: 0 0 12px; font-size: 13px; white-space: pre-wrap; overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-audit-raw { padding-top: 8px; border-top: 1px solid var(--line); }

.operations-page .ops-workbench .ops-system-layout { grid-template-columns: minmax(0, 1fr); }
.operations-page .ops-workbench :is(.ops-system-card, .ops-system-columns) {
  padding: 10px 16px; display: grid; grid-template-columns: 116px minmax(0, 1fr) 164px; gap: 8px 16px; align-items: start;
  background: none; border: 0; border-bottom: 1px solid var(--line); border-radius: 0;
}
.operations-page .ops-workbench .ops-system-columns { color: var(--ink-3); font-size: 12px; }
.operations-page .ops-workbench .ops-system-card > .ops-system-service { color: var(--ink-2); font-size: 13px; line-height: 20px; }
.operations-page .ops-workbench .ops-system-card time { color: var(--ink-3); font-size: 12px; line-height: 20px; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-system-card.is-warning strong { color: var(--amber); }
.operations-page .ops-workbench .ops-system-observation,
.operations-page .ops-workbench .ops-system-evidence-columns { min-width: 0; display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr) minmax(0, 1fr); gap: 6px 16px; }
.operations-page .ops-workbench .ops-system-observation > :is(p, details) { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-system-next-action { min-width: 0; grid-column: 3; grid-row: 1; display: grid; gap: 4px; align-content: start; font-size: 12.5px; }
.operations-page .ops-workbench .ops-system-next-action span { overflow-wrap: anywhere; }
.operations-page .ops-workbench .ops-system-next-action button { min-height: 34px; display: inline-flex; align-items: center; gap: 6px; color: var(--accent); font-size: 12.5px; }
.operations-page .ops-workbench .ops-system-next-action button svg { width: 14px; height: 14px; }
.operations-page .ops-workbench .ops-system-next-action button:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.operations-page .ops-workbench .ops-release-layout { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; }
.operations-page .ops-workbench .ops-resilience-layout { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.operations-page .ops-workbench [data-ops-view="resilience"] > .ops-resilience-side { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 24px; margin-bottom: 16px; }
.operations-page .ops-workbench [data-ops-view="resilience"] > .ops-drill-panel { margin-bottom: 24px; }
.operations-page .ops-workbench #opsReleaseNextAction { margin-top: 8px; padding-left: 10px; border-left: 2px solid var(--amber-line); font-size: 12.5px; }
.operations-page .ops-workbench .ops-release-hero[data-status="passed"] #opsReleaseNextAction { border-color: var(--accent-line); }
.operations-page .ops-workbench .ops-backup-panel { margin: 0 0 16px; }
.operations-page .ops-workbench .ops-backup-risk-context { margin: 0; padding: 8px 16px; display: grid; gap: 4px; border-bottom: 1px solid var(--line); font-size: 12px; line-height: 20px; }
.operations-page .ops-workbench .ops-backup-risk-context > div { min-width: 0; display: grid; grid-template-columns: 126px minmax(0, 1fr); gap: 8px; }
.operations-page .ops-workbench .ops-backup-risk-context dt { color: var(--ink-2); font-weight: 550; }
.operations-page .ops-workbench .ops-backup-risk-context dd { margin: 0; color: var(--ink-3); overflow-wrap: anywhere; }
.operations-page .ops-workbench :is(.ops-release-score, .ops-resilience-ring) strong { font-size: 22px; line-height: 28px; }
.operations-page .ops-workbench .ops-resilience-ring { min-width: 0; }
.operations-page .ops-workbench .ops-resilience-gate { background: none; border-radius: 0; }
.operations-page .ops-workbench :is(.ops-release-meta, .ops-resilience-meta) { gap: 4px 16px; }
.operations-page .ops-workbench :is(.ops-release-meta, .ops-resilience-meta) span { height: auto; padding: 0; background: none; }

@container operations (max-width: 1180px) {
  .operations-page .ops-workbench { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench > .operations-tabs { grid-column: 1; grid-row: 2; gap: 4px; }
  .operations-page .ops-workbench > .operations-view { grid-column: 1; grid-row: 3; }
  .operations-page .ops-workbench .operations-tab-group { display: flex; flex-wrap: wrap; align-items: center; }
  .operations-page .ops-workbench .operations-tab-group + .operations-tab-group { padding-top: 4px; }
  .operations-page .ops-workbench .operations-tab-group-label { width: 92px; flex: 0 0 92px; }
  .operations-page .ops-workbench .operations-tabs button { width: auto; flex: 0 1 auto; }
  .operations-page .ops-workbench .ops-create-invite form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operations-page .ops-workbench .ops-assignment-draft-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@container operations (max-width: 900px) {
  .operations-page .ops-workbench [data-ops-view="overview"] > .operations-overview-grid,
  .operations-page .ops-workbench :is(.ops-release-layout, .ops-resilience-layout) { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench [data-ops-view="overview"] :is(.ops-overview-stack, .ops-activity-panel) { grid-column: 1; grid-row: auto; }
  .operations-page .ops-workbench .ops-activity-entry > div { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench :is(.ops-list-columns, .ops-user-columns, .ops-audit-columns, .ops-system-columns) { display: none; }
  .operations-page .ops-workbench .ops-content-row { grid-template-columns: 34px minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-content-row > :is(.ops-content-state, .ops-row-signal, .ops-row-actions, .ops-review-context) { grid-column: 2; grid-row: auto; justify-content: start; margin-left: 0; }
  .operations-page .ops-workbench .ops-content-row > :is(.ops-review-context[open], .ops-review-note) { grid-column: 1 / -1; grid-row: auto; }
  .operations-page .ops-workbench .ops-content-row:has(.ops-review-context[open]) > .ops-row-actions { grid-column: 1 / -1; grid-row: auto; padding-top: 0; border-top: 0; }
  .operations-page .ops-workbench .ops-report-row { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-report-row > :is(header, .ops-report-target, .ops-report-meta, .ops-report-context, .ops-report-editor) { grid-column: 1; grid-row: auto; }
  .operations-page .ops-workbench .ops-report-row > .ops-report-editor[open] { grid-column: 1; grid-row: auto; }
  .operations-page .ops-workbench .ops-report-row > .ops-report-context { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-report-editor > summary { margin-left: 0; }
  .operations-page .ops-workbench .ops-user-list { --ops-user-columns: 36px minmax(0, 1fr) 32px; }
  .operations-page .ops-workbench .ops-user-editor > summary > svg { grid-column: 3; grid-row: 1; }
  .operations-page .ops-workbench :is(.ops-user-affiliation, .ops-user-current) { grid-column: 2; }
  .operations-page .ops-workbench .ops-user-affiliation.ops-user-work-fields { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-create-assignment form { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-assignment-step[data-assignment-part] { grid-column: 1; grid-row: auto; }
  .operations-page .ops-workbench .ops-audit-row { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-audit-row > i { display: none; }
  .operations-page .ops-workbench .ops-audit-main { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-audit-changes { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-audit-row > :is(small, .ops-audit-detail, .ops-audit-detail[open]) { grid-column: 1; grid-row: auto; }
  .operations-page .ops-workbench .ops-assignment-row { grid-template-columns: minmax(0, 1fr) 100px; }
  .operations-page .ops-workbench .ops-assignment-row > .ops-assignment-counts { grid-column: 1 / -1; grid-row: 2; }
  .operations-page .ops-workbench .ops-assignment-row > .ops-assignment-rate { grid-column: 2; grid-row: 1; }
  .operations-page .ops-workbench .ops-assignment-row > .ops-assignment-details { grid-column: 1 / -1; }
  .operations-page .ops-workbench .ops-invite-row { grid-template-columns: 34px minmax(0, 1fr) 104px; }
  .operations-page .ops-workbench .ops-invite-row > .ops-invite-facts { grid-column: 2 / -1; grid-row: 2; }
  .operations-page .ops-workbench .ops-invite-row > button { grid-column: 3; grid-row: 1; }
  .operations-page .ops-workbench .ops-invite-row > .ops-invite-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operations-page .ops-workbench .ops-invite-facts dt { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
  .operations-page .ops-workbench .ops-system-card { grid-template-columns: 100px minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-system-card time { grid-column: 2; }
  .operations-page .ops-workbench .ops-system-observation,
  .operations-page .ops-workbench [data-ops-view="resilience"] > .ops-resilience-side { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-system-next-action { grid-column: 1; grid-row: auto; }
}

@container operations (max-width: 640px) {
  .operations-page .ops-workbench .operations-tab-group-label { flex-basis: 100%; }
  .operations-page .ops-workbench .ops-state-track { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operations-page .ops-workbench .ops-state-track > button:nth-child(even) { border-right: 0; }
  .operations-page .ops-workbench .ops-state-track > button:nth-child(n+3) { border-top: 1px solid var(--line); }
  .operations-page .ops-workbench .ops-assignment-draft-summary,
  .operations-page .ops-workbench .ops-create-invite form { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-create-invite form > div { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-create-assignment .ops-form-actions { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-create-assignment .ops-form-actions > button { justify-self: end; }
  .operations-page .ops-workbench .ops-user-change-facts { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-assignment-row { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-assignment-row > :is(.ops-assignment-counts, .ops-assignment-rate) { grid-column: 1; grid-row: auto; }
  .operations-page .ops-workbench .ops-invite-row { grid-template-columns: 34px minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-invite-row > button,
  .operations-page .ops-workbench .ops-invite-row > .ops-invite-facts { grid-column: 2; grid-row: auto; justify-self: start; }
  .operations-page .ops-workbench .ops-invite-row > .ops-invite-facts { grid-template-columns: minmax(0, 1fr); }
  .operations-page .ops-workbench .ops-backup-risk-context > div { grid-template-columns: minmax(0, 1fr); gap: 0; }
}
