.ops-view {
  --ops-bg: #f7f8f4;
  --ops-surface: #fff;
  --ops-raised: #edf1e7;
  --ops-stripe: #f5f7f0;
  --ops-text: #263021;
  --ops-muted: #54614b;
  --ops-line: #c6cebb;
  --ops-control: #849376;
  --ops-link: #365b19;
  --ops-warn-bg: #fff2d2;
  --ops-warn: #775000;
  --ops-danger-bg: #ffebe7;
  --ops-danger: #98352b;
  --ops-success-bg: #e5f0d9;
  --ops-success: #355d20;
  --ops-active-bg: #e5effb;
  --ops-active: #255781;
  color-scheme: light;
  color: var(--ops-text);
  background: var(--ops-bg);
  font-size: 15px;
  line-height: 1.45;
  display: grid;
  gap: 14px;
  min-width: 0;
  max-width: 100%;
}
html[data-theme="dark"] .ops-view {
  --ops-bg: #151913;
  --ops-surface: #1d231a;
  --ops-raised: #2b3325;
  --ops-stripe: #242b20;
  --ops-text: #edf2e7;
  --ops-muted: #b7c2ac;
  --ops-line: #47533e;
  --ops-control: #758866;
  --ops-link: #d4ef9a;
  --ops-warn-bg: #44361a;
  --ops-warn: #f2d68f;
  --ops-danger-bg: #44251f;
  --ops-danger: #ffb1a4;
  --ops-success-bg: #293e21;
  --ops-success: #c3e2ac;
  --ops-active-bg: #233c50;
  --ops-active: #b4d7fa;
  color-scheme: dark;
}
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) .ops-view {
    --ops-bg: #151913;
    --ops-surface: #1d231a;
    --ops-raised: #2b3325;
    --ops-stripe: #242b20;
    --ops-text: #edf2e7;
    --ops-muted: #b7c2ac;
    --ops-line: #47533e;
    --ops-control: #758866;
    --ops-link: #d4ef9a;
    --ops-warn-bg: #44361a;
    --ops-warn: #f2d68f;
    --ops-danger-bg: #44251f;
    --ops-danger: #ffb1a4;
    --ops-success-bg: #293e21;
    --ops-success: #c3e2ac;
    --ops-active-bg: #233c50;
    --ops-active: #b4d7fa;
    color-scheme: dark;
  }
}
.ops-view *, .ops-view *::before, .ops-view *::after { box-sizing: border-box; }
.ops-view :is(h1, h2, h3, p) { margin: 0; color: inherit; }
.ops-view h1 { font-size: 24px; font-weight: 600; line-height: 1.25; }
.ops-view h2 { font-size: 20px; font-weight: 600; line-height: 1.35; }
.ops-view h3 { font-size: 16px; font-weight: 600; }
.ops-heading, .ops-dialog-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; min-width: 0; }
.ops-heading > div, .ops-dialog-heading > div { min-width: 0; }
.ops-refresh { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.ops-read-status { color: var(--ops-muted); font-size: 14px; min-width: 104px; }
.ops-refresh-motion { display: inline-flex; width: 18px; align-items: center; }
.ops-refresh-motion[hidden] { display: inline-flex; visibility: hidden; }
.ops-spinner { display: inline-block; width: 17px; height: 17px; border: 2px solid var(--ops-line); border-top-color: var(--ops-link); border-right-color: var(--ops-link); border-radius: 50%; animation: ops-spin .8s linear infinite; }
@keyframes ops-spin { to { transform: rotate(360deg); } }
.ops-view .ops-button {
  color: var(--ops-text);
  background: var(--ops-surface);
  border: 1px solid var(--ops-control);
  border-radius: 6px;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.3;
  min-height: 40px;
  padding: 8px 12px;
  white-space: normal;
  cursor: pointer;
}
.ops-view .ops-button:hover:not(:disabled) { color: var(--ops-text); background: var(--ops-raised); border-color: var(--ops-link); }
.ops-view .ops-button:disabled { opacity: .65; cursor: default; }
.ops-view .ops-button[hidden] { display: none; }
.ops-detail-feedback { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; flex: 0 0 auto; min-height: 24px; }
.ops-view :is(button, input, select, a, [tabindex]):focus-visible { outline: 2px solid var(--ops-link); outline-offset: 3px; }
.ops-view .ops-secondary { display: block; color: var(--ops-muted); font-size: 14px; font-weight: 400; }
.ops-status-strip { display: flex; align-items: center; gap: 10px 18px; flex-wrap: wrap; min-height: 34px; }
.ops-badge { display: inline-block; width: fit-content; border: 1px solid var(--ops-line); background: var(--ops-raised); color: var(--ops-text); border-radius: 5px; padding: 3px 7px; font-size: 14px; line-height: 1.35; font-weight: 550; }
.ops-badge.ops-warning { color: var(--ops-warn); background: var(--ops-warn-bg); }
.ops-badge.ops-danger { color: var(--ops-danger); background: var(--ops-danger-bg); }
.ops-badge.ops-success { color: var(--ops-success); background: var(--ops-success-bg); }
.ops-badge.ops-active { color: var(--ops-active); background: var(--ops-active-bg); }
.ops-badge.ops-stale { color: var(--ops-warn); background: var(--ops-surface); border-style: dashed; }
.ops-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: 0; }
.ops-view .ops-filters :is(input, select) { min-width: 0; width: auto; max-width: 100%; min-height: 42px; padding: 8px 10px; margin: 0; color: var(--ops-text); background: var(--ops-surface); border: 1px solid var(--ops-control); border-radius: 6px; font-size: 15px; }
.ops-view .ops-filters input { width: min(310px, 100%); }
.ops-view .ops-filters input::placeholder { color: var(--ops-muted); }
.ops-filters > .ops-secondary { margin-left: auto; }
.ops-scroll { position: relative; width: 100%; min-width: 0; max-width: 100%; max-height: min(65vh, 680px); min-height: 190px; overflow: auto; overscroll-behavior: contain; border: 1px solid var(--ops-line); border-radius: 8px; background: var(--ops-surface); scrollbar-gutter: stable; }
.ops-launches-view > .ops-scroll { max-height: var(--report-grid-max-height, 85dvh); min-height: 0; }
.ops-view .ops-table { width: 100%; min-width: 1000px; table-layout: fixed; border-collapse: separate; border-spacing: 0; color: var(--ops-text); background: var(--ops-surface); font-size: 15px; }
.ops-view .ops-table[hidden] { display: none; }
.ops-view .ops-table :is(th, td) { padding: 9px 12px; border-bottom: 1px solid var(--ops-line); text-align: left; vertical-align: middle; overflow-wrap: anywhere; color: inherit; }
.ops-view .ops-table thead th { position: sticky; top: 0; z-index: 2; color: var(--ops-muted); background: var(--ops-raised); font-size: 14px; font-weight: 600; }
.ops-table tbody tr:nth-child(even) { background: var(--ops-stripe); }
.ops-table tbody tr:hover { background: var(--ops-raised); }
.ops-table tbody tr:last-child td { border-bottom: none; }
.ops-table th:nth-child(1) { width: 26%; }
.ops-table th:nth-child(2) { width: 22%; }
.ops-table th:nth-child(3) { width: 24%; }
.ops-table th:nth-child(4) { width: 15%; }
.ops-table th:nth-child(5) { width: 13%; }
.ops-view .ops-launches-table { min-width: 850px; }
.ops-launches-table th:nth-child(1) { width: 30%; }
.ops-launches-table th:nth-child(2) { width: 28%; }
.ops-launches-table th:nth-child(3) { width: 13%; }
.ops-launches-table th:nth-child(4) { width: 18%; }
.ops-launches-table th:nth-child(5) { width: 11%; }
.ops-identity, .ops-state, .ops-next, .ops-progress-cell, .ops-metrics { display: grid; gap: 4px; }
.ops-identity strong { font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ops-next > span { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ops-identity > .ops-secondary { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ops-context, .ops-state > .ops-next { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ops-actions { display: grid; justify-items: start; gap: 5px; }
.ops-actions .ops-link { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ops-created { font-variant-numeric: tabular-nums; color: var(--ops-muted); }
.ops-view .ops-jobs-table td { padding-block: 8px; }
.ops-view progress { width: 100%; max-width: 170px; height: 6px; margin: 2px 0 0; border: none; background: var(--ops-line); accent-color: var(--ops-link); border-radius: 6px; overflow: hidden; }
.ops-view progress::-webkit-progress-bar { background: var(--ops-line); }
.ops-view progress::-webkit-progress-value { background: var(--ops-link); }
.ops-view progress::-moz-progress-bar { background: var(--ops-link); }
.ops-metric, .ops-metric-pair { font-size: 16px; font-variant-numeric: tabular-nums; }
.ops-metric-pair { display: flex; flex-wrap: wrap; gap: 5px 14px; }
.ops-metric-pair > span { white-space: nowrap; }
.ops-metric-pair strong { font-weight: 600; }
.ops-view .ops-link { color: var(--ops-link); text-decoration: underline; text-underline-offset: 3px; font-size: 15px; overflow-wrap: anywhere; }
.ops-view .ops-link[aria-disabled="true"] { color: var(--ops-muted); text-decoration: none; cursor: default; }
.ops-empty { padding: 32px 20px; color: var(--ops-muted); font-size: 15px; }
.ops-empty[hidden] { display: none; }
.ops-view > .ops-button { justify-self: start; }
.ops-fetch-error { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; border: 1px solid var(--ops-line); border-radius: 7px; padding: 10px 12px; background: var(--ops-warn-bg); color: var(--ops-warn); }
.ops-fetch-error[hidden] { display: none; }
.ops-view .ops-dialog { position: fixed; inset: 0 0 0 auto; width: min(660px, calc(100vw - 24px)); max-width: calc(100vw - 24px); height: 100dvh; max-height: 100dvh; margin: 0; padding: 22px; border: 0; border-left: 1px solid var(--ops-line); border-radius: 12px 0 0 12px; color: var(--ops-text); background: var(--ops-surface); box-shadow: -10px 0 36px #0003; overflow: hidden; }
.ops-dialog[open] { display: flex; flex-direction: column; gap: 18px; }
.ops-dialog::backdrop { background: #14200f80; }
.ops-dialog-heading { flex: 0 0 auto; }
.ops-dialog-heading h2 { overflow-wrap: anywhere; }
.ops-dialog-heading p { margin-top: 6px; }
.ops-dialog-heading > button { flex: 0 0 auto; }
.ops-tabs { display: flex; gap: 6px; flex: 0 0 auto; border-bottom: 1px solid var(--ops-line); padding-bottom: 10px; }
.ops-tabs .ops-button[aria-selected="true"] { color: var(--ops-link); background: var(--ops-raised); border-color: var(--ops-link); }
.ops-detail-panel { display: grid; align-content: start; gap: 22px; min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 3px 8px 16px 3px; overflow-wrap: anywhere; }
.ops-detail-section { display: grid; gap: 8px; }
.ops-fields { display: grid; grid-template-columns: minmax(105px, 30%) minmax(0, 1fr); gap: 10px 16px; margin: 0; }
.ops-fields dt { color: var(--ops-muted); font-weight: 400; }
.ops-fields dd { margin: 0; color: var(--ops-text); }
.ops-detail-table { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 14px; }
.ops-detail-table :is(th, td) { text-align: left; padding: 10px 8px; border-bottom: 1px solid var(--ops-line); vertical-align: top; overflow-wrap: anywhere; }
.ops-detail-table th { position: sticky; top: -3px; background: var(--ops-raised); font-weight: 600; }
.ops-detail-table tbody tr:nth-child(even) { background: var(--ops-stripe); }
.ops-activity time { color: var(--ops-muted); font-size: 14px; }
.ops-evidence summary { cursor: pointer; color: var(--ops-link); min-height: 40px; }
.ops-evidence .ops-fields { display: block; }
.ops-evidence dt { margin-top: 12px; }
.ops-evidence dd { margin-top: 4px; white-space: pre-wrap; }
.ops-sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 650px) {
  .ops-heading { flex-direction: column; gap: 12px; }
  .ops-refresh { width: 100%; }
  .ops-view h1 { font-size: 22px; }
  .ops-view .ops-button { min-height: 44px; }
  .ops-view .ops-filters input { width: 100%; }
  .ops-view .ops-filters select { flex: 1 1 125px; min-height: 44px; }
  .ops-filters > .ops-secondary { width: 100%; margin-left: 0; }
  .ops-status-strip { gap: 8px 12px; }
  .ops-scroll { max-height: 60dvh; }
  .ops-view .ops-jobs-table { width: 1000px; min-width: 1000px; }
  .ops-jobs-table th:nth-child(1) { width: 218px; }
  .ops-jobs-table th:nth-child(2) { width: 140px; }
  .ops-jobs-table th:nth-child(3) { width: 322px; }
.ops-jobs-table th:nth-child(4) { width: 165px; }
.ops-jobs-table th:nth-child(5) { width: 155px; }
  .ops-view .ops-launches-table { width: 795px; min-width: 795px; }
  .ops-launches-table th:nth-child(1) { width: 160px; }
  .ops-launches-table th:nth-child(2) { width: 180px; }
  .ops-launches-table th:nth-child(3) { width: 110px; }
  .ops-launches-table th:nth-child(4) { width: 240px; }
  .ops-launches-table th:nth-child(5) { width: 105px; }
  .ops-view .ops-dialog { width: calc(100vw - 12px); max-width: calc(100vw - 12px); padding: 16px 12px; }
  .ops-dialog-heading { gap: 10px; }
  .ops-dialog-heading h2 { font-size: 18px; }
  .ops-fields { grid-template-columns: minmax(90px, 32%) minmax(0, 1fr); gap: 10px; }
  .ops-tabs .ops-button { flex: 1; }
}
@media (prefers-reduced-motion: reduce) { .ops-spinner { animation: none; } }
