:root {
  --surface-app: #f8fafc;
  --surface-panel: #ffffff;
  --surface-subtle: #f1f5f9;
  --surface-selected: #f1f5f9;
  --surface-hover: #f8fafc;
  --text-primary: #0f172a;
  --text-secondary: #475569;
  --text-muted: #64748b;
  --border: #cbd5e1;
  --border-strong: #94a3b8;
  --primary: #000000;
  --primary-hover: #000000;
  --critical: #b91c1c;
  --critical-bg: #fef2f2;
  --warning: #b45309;
  --warning-bg: #fffbeb;
  --success: #047857;
  --success-bg: #ecfdf5;
  --info: #000000;
  --info-bg: #f1f5f9;
  --focus: #000000;
  --nav: #000000;
  --nav-muted: #a3a3a3;
  --shadow-overlay: 0 8px 24px rgb(15 23 42 / 16%);
  --radius: 0;
  --rail-right-width: 400px;
  --rail-left-width: min(480px, 42vw);
  /* Explicit Linux-friendly stacks: generic `system-ui`/`sans-serif` resolve to DejaVu Sans on
     the GB10 and `monospace` to DejaVu Sans Mono, which renders numerals wide and uneven. */
  --font-sans: Inter, "Ubuntu Sans", "Noto Sans", Ubuntu, "Liberation Sans", "Segoe UI", Roboto, system-ui, -apple-system, sans-serif;
  --font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "JetBrains Mono", "Ubuntu Sans Mono", "Ubuntu Mono", "Liberation Mono", "DejaVu Sans Mono", monospace;
  font-family: var(--font-sans);
  color: var(--text-primary);
  background: var(--surface-app);
  font-synthesis: none;
  font-variant-numeric: tabular-nums;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; }
body { min-width: 0; font-size: 13px; line-height: 1.45; background: var(--surface-app); }
button, input, select, textarea { font: inherit; color: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button { border: 0; }
fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
legend { padding: 0; }
time { font-variant-numeric: tabular-nums; }
h1[tabindex="-1"]:focus { outline: 0; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}
button:disabled, input:disabled, textarea:disabled { cursor: not-allowed; opacity: .56; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; pointer-events: none; }
.icon.sm { width: 14px; height: 14px; }
.icon.lg { width: 20px; height: 20px; }
/* .mono = identifiers, file names, tool names, log text. Numeric quantities use .num (sans, tabular). */
.mono, .data { font-family: var(--font-mono); font-variant-numeric: tabular-nums; letter-spacing: 0; }
.num, .tabular { font-family: var(--font-sans); font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1, "lnum" 1; }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; clip: rect(0 0 0 0); overflow: hidden; white-space: nowrap; border: 0; }

.app-shell { display: grid; grid-template-columns: min-content minmax(0, 1fr); width: 100%; height: 100vh; overflow: hidden; }
.left-nav { position: relative; z-index: 20; width: 208px; background: var(--nav); color: #e5e5e5; display: flex; flex-direction: column; min-width: 0; min-height: 0; border-right: 1px solid #000; overflow: hidden; contain: paint; transition: width 240ms cubic-bezier(.4, 0, .2, 1); }
.app-shell.is-nav-collapsed .left-nav { width: 56px; }
.brand { position: relative; height: 64px; display: flex; align-items: center; gap: 8px; padding: 0 6px; border-bottom: 1px solid #2a2a2a; overflow: hidden; }
.brand .mark { display: grid; place-items: center; width: 44px; height: 44px; flex-shrink: 0; overflow: hidden; contain: strict; }
.brand .mark img { display: block; width: 28px; height: 28px; max-width: 28px; max-height: 28px; filter: invert(1); }
.brand-copy { overflow: hidden; white-space: nowrap; min-width: 0; flex: 1; padding-right: 44px; transition: opacity 120ms linear; }
.brand-copy strong { display: block; color: #fafafa; font-size: 13px; line-height: 16px; }
.nav-section-label { padding: 20px 16px 7px; color: #737373; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; overflow: hidden; white-space: nowrap; max-height: 40px; transition: opacity 120ms linear, max-height 240ms cubic-bezier(.4, 0, .2, 1), padding 240ms cubic-bezier(.4, 0, .2, 1); }
.nav-list { display: grid; gap: 2px; padding: 0 6px; overflow: hidden; }
.left-nav a:focus-visible { outline-color: #e5e5e5; }
.nav-link { position: relative; min-height: 44px; display: flex; align-items: center; gap: 10px; padding: 0 0 0 14px; color: #d4d4d4; border-radius: var(--radius); text-decoration: none; }
.nav-link:hover { background: #1a1a1a; color: #fff; text-decoration: none; }
.nav-link.active { color: #fff; background: #1f1f1f; }
.nav-link.active::before { content: ""; position: absolute; left: -6px; top: 8px; bottom: 8px; width: 3px; background: #fff; }
.nav-link > span:not(.nav-count) { overflow: hidden; white-space: nowrap; min-width: 0; transition: opacity 120ms linear; }
.nav-count { margin-left: auto; margin-right: 8px; min-width: 20px; height: 20px; display: grid; place-items: center; padding: 0 6px; border-radius: 10px; background: #333; color: #e5e5e5; font-size: 11px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; transition: opacity 120ms linear; }
.nav-link.active .nav-count { background: #fff; color: #000; }
.nav-bottom { margin-top: auto; border-top: 1px solid #2a2a2a; padding: 12px 6px; overflow: hidden; }
.nav-system { display: grid; grid-template-columns: 8px minmax(0, 1fr); gap: 4px 9px; align-items: center; padding: 8px 14px; }
.nav-system .system-dot { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 2px rgb(52 211 153 / 14%); }
.nav-system strong, .nav-system small { overflow: hidden; white-space: nowrap; transition: opacity 120ms linear; }
.nav-system strong { font-size: 11px; font-weight: 600; color: #e5e5e5; }
.nav-system small { grid-column: 2; color: #737373; font-size: 10px; }
.nav-toggle { position: absolute; top: 10px; right: 0; width: 44px; height: 44px; display: grid; place-items: center; color: #d4d4d4; background: transparent; border: 0; cursor: pointer; z-index: 2; overflow: hidden; }
.nav-toggle .icon, .nav-toggle svg { pointer-events: none; }
.nav-toggle .icon { transition: transform 240ms cubic-bezier(.4, 0, .2, 1); }
.nav-toggle:hover { background: #1a1a1a; color: #fff; }
.nav-toggle:focus-visible { outline-color: #e5e5e5; }
.app-shell.is-nav-collapsed .brand-copy,
.app-shell.is-nav-collapsed .nav-section-label,
.app-shell.is-nav-collapsed .nav-link > span:not(.nav-count),
.app-shell.is-nav-collapsed .nav-count,
.app-shell.is-nav-collapsed .nav-system strong,
.app-shell.is-nav-collapsed .nav-system small { opacity: 0; pointer-events: none; }
.app-shell.is-nav-collapsed .nav-section-label { max-height: 0; padding-top: 0; padding-bottom: 0; }
.app-shell.is-nav-collapsed .brand { height: 108px; align-items: flex-start; padding: 10px 6px 0; }
.app-shell.is-nav-collapsed .nav-toggle { top: 58px; left: 6px; right: auto; width: 44px; }
.app-shell.is-nav-collapsed .nav-toggle .icon { transform: rotate(180deg); }

.workspace { min-width: 0; height: 100vh; display: grid; grid-template-rows: 48px 28px minmax(0, 1fr); }
.global-header { display: flex; align-items: center; min-width: 0; padding: 0 12px 0 16px; background: var(--surface-panel); border-bottom: 1px solid var(--border); z-index: 10; }
.breadcrumb { min-width: 160px; display: flex; align-items: center; gap: 6px; color: var(--text-secondary); white-space: nowrap; }
.breadcrumb strong { color: var(--text-primary); font-weight: 600; }
.header-spacer { flex: 1; }
.header-scope { height: 32px; display: flex; align-items: center; gap: 8px; padding: 0 10px; white-space: nowrap; background: var(--surface-panel); border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; }
.header-scope:hover { background: var(--surface-hover); border-color: var(--border-strong); }
.header-search { width: clamp(170px, 20vw, 284px); height: 32px; margin-left: 8px; display: flex; align-items: center; gap: 7px; padding: 0 9px; color: var(--text-muted); background: var(--surface-app); border: 1px solid var(--border); border-radius: var(--radius); }
.header-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; }
.header-search:focus-within { border-color: var(--focus); box-shadow: 0 0 0 1px var(--focus); }
.contained-badge { height: 32px; display: flex; align-items: center; gap: 6px; margin-left: 8px; padding: 0 10px; color: var(--success); background: var(--success-bg); border: 1px solid #a7f3d0; border-radius: var(--radius); font: inherit; font-weight: 600; white-space: nowrap; cursor: pointer; }
.workspace-body { position: relative; min-width: 0; min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); overflow: hidden; }
.workspace-body.has-rail { grid-template-columns: minmax(0, 1fr); }
.page { min-width: 0; min-height: 0; overflow-y: auto; overflow-x: hidden; background: var(--surface-app); }
.page-inner { min-height: 100%; padding: 16px; }
.page-inner.compact { padding: 12px 16px 16px; }

.module-header { min-height: 52px; display: flex; align-items: flex-start; gap: 16px; margin-bottom: 12px; }
.title-block { min-width: 0; }
h1 { margin: 0; font-size: 23px; line-height: 30px; font-weight: 650; letter-spacing: -.015em; }
h2 { margin: 0; font-size: 15px; line-height: 22px; font-weight: 650; }
h3 { margin: 0; font-size: 13px; line-height: 20px; font-weight: 650; }
p { margin: 0; }
.subtitle { margin-top: 3px; color: var(--text-secondary); font-size: 12px; }
.header-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.btn { min-height: 34px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 0 11px; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface-panel); color: var(--text-primary); font-weight: 600; cursor: pointer; white-space: nowrap; }
.btn:hover { background: var(--surface-hover); border-color: var(--border-strong); text-decoration: none; }
.btn.primary { color: #fff; background: var(--primary); border-color: var(--primary); }
.btn.primary:hover { background: var(--primary-hover); }
.btn.danger { color: var(--critical); border-color: #fecaca; background: var(--critical-bg); }
.btn.sm { min-height: 30px; padding: 0 9px; font-size: 12px; }
.btn.icon-only { width: 34px; padding: 0; }
.btn.loading::before { content: ""; width: 12px; height: 12px; border: 2px solid rgb(255 255 255 / 45%); border-top-color: #fff; border-radius: 50%; animation: spin .8s linear infinite; }
.kbd { min-width: 19px; height: 18px; display: inline-grid; place-items: center; padding: 0 4px; border: 1px solid var(--border); border-bottom-color: var(--border-strong); border-radius: 3px; color: var(--text-muted); background: var(--surface-panel); font: 10px var(--font-mono); }

.tabs { display: flex; align-items: flex-end; height: 34px; gap: 18px; border-bottom: 1px solid var(--border); }
.tab { position: relative; height: 34px; padding: 0 1px; display: inline-flex; align-items: center; gap: 6px; background: transparent; color: var(--text-secondary); cursor: pointer; font-weight: 600; }
.tab .badge { font-variant-numeric: tabular-nums; }
.tab:hover { color: var(--text-primary); }
.tab.active { color: var(--primary); }
.tab.active::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--primary); }
.refresh-line { display: flex; align-items: center; gap: 6px; color: var(--text-muted); font-size: 11px; }
.live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); }

.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.metric-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.metric-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 2px;
  width: 100%;
  min-width: 0;
  min-height: 88px;
  padding: 10px 12px;
  text-align: left;
  background: var(--surface-panel);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  cursor: pointer;
  appearance: none;
}
.metric-card:hover { border-color: var(--border-strong); background: var(--surface-hover); }
.metric-card.active { border-color: var(--primary); box-shadow: inset 3px 0 0 var(--primary); background: var(--surface-selected); }
.metric-head { display: flex; align-items: center; gap: 6px; width: 100%; }
.metric-label { display: block; min-width: 0; color: var(--text-secondary); font-size: 11px; font-weight: 600; line-height: 1.2; text-transform: uppercase; letter-spacing: .04em; }
.metric-info { position: relative; margin-left: auto; width: 20px; height: 20px; display: grid; place-items: center; padding: 0; color: var(--text-muted); background: transparent; border: 0; border-radius: 50%; cursor: pointer; flex: 0 0 auto; }
.metric-info:hover, .metric-info:focus, .metric-info[aria-expanded="true"] { color: var(--primary); background: var(--surface-selected); outline: 0; }
.metric-info .icon { width: 14px; height: 14px; }
.metric-tip { display: none; position: absolute; top: calc(100% + 6px); right: 0; z-index: 8; width: min(240px, 70vw); padding: 8px 10px; color: var(--text-secondary); background: var(--surface-panel); border: 1px solid var(--border); border-radius: 8px; box-shadow: var(--shadow-overlay); font-size: 11px; font-weight: 500; letter-spacing: 0; text-transform: none; line-height: 1.45; text-align: left; white-space: normal; }
.metric-info:hover .metric-tip, .metric-info:focus .metric-tip, .metric-info[aria-expanded="true"] .metric-tip { display: block; }
.intelligence-page .metric-card { cursor: default; }
.intelligence-page .metric-card:hover { background: var(--surface-panel); border-color: var(--border); }
.metric-value {
  display: block;
  margin: 2px 0 0;
  font-family: var(--font-sans);
  font-size: 28px;
  line-height: 1.05;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  letter-spacing: -.02em;
  white-space: nowrap;
}
.metric-note { display: block; margin-top: 2px; color: var(--text-muted); font-size: 11px; line-height: 1.3; }
.metric-card.critical .metric-value { color: var(--critical); }
.metric-card.warning .metric-value { color: var(--warning); }
.metric-card.info .metric-value { color: var(--info); }

.panel { background: var(--surface-panel); border: 1px solid var(--border); border-radius: var(--radius); }
.panel-header { min-height: 43px; display: flex; align-items: center; gap: 9px; padding: 0 12px; border-bottom: 1px solid var(--border); }
.panel-header .header-actions { gap: 4px; }
.panel-body { padding: 12px; }
.section-note { color: var(--text-secondary); font-size: 11px; }

.inbox-layout { min-height: 492px; display: grid; grid-template-columns: minmax(0, 1fr); }
.filter-menu { position: relative; z-index: 12; display: flex; align-self: stretch; flex: 0 0 auto; border-right: 1px solid var(--border); }
.filter-menu:has(.filter-popover.is-open) { z-index: 30; }
.filter-trigger {
  min-height: 48px;
  height: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 0 18px;
  color: var(--text-primary);
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: background-color 180ms ease-out;
}
.filter-trigger:hover { background: var(--surface-hover); }
.filter-trigger[aria-expanded="true"] { background: var(--surface-subtle); }
.filter-trigger.has-filters { color: var(--text-primary); }
.filter-trigger-copy { display: inline-flex; align-items: baseline; gap: 8px; min-width: 0; }
.filter-trigger-copy strong { font-size: 12px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; }
.filter-applied {
  min-width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  padding: 0 5px;
  color: #fff;
  background: var(--text-primary);
  font-size: 11px;
  font-weight: 650;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.filter-summary { max-width: 180px; overflow: hidden; color: var(--text-secondary); font-size: 12px; font-weight: 500; letter-spacing: 0; text-transform: none; text-overflow: ellipsis; white-space: nowrap; }
.filter-caret { transition: transform 180ms ease-out; }
.filter-trigger[aria-expanded="true"] .filter-caret { transform: rotate(180deg); }
.filter-popover {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  z-index: 20;
  width: min(420px, calc(100vw - 48px));
  background: var(--surface-panel);
  border: 1px solid var(--text-primary);
  opacity: 0;
  transform: translateY(-8px);
  visibility: hidden;
  pointer-events: none;
  transition: opacity 180ms ease-out, transform 180ms ease-out, visibility 180ms;
}
.filter-popover.is-open { opacity: 1; transform: translateY(0); visibility: visible; pointer-events: auto; }
.filter-popover.is-open.is-entering { opacity: 0; transform: translateY(-8px); }
.filter-popover-head {
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 16px;
  border-bottom: 1px solid var(--border);
}
.filter-popover-head span { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--text-primary); }
.filter-clear { min-height: 44px; padding: 0 4px; background: transparent; color: var(--primary); cursor: pointer; font-size: 12px; font-weight: 600; }
.filter-clear:hover { color: var(--primary-hover); }
.filter-grid { display: grid; grid-template-columns: 1fr 1fr; }
.filter-group { margin: 0; padding: 12px 16px 14px; border: 0; border-right: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.filter-group:nth-child(2n) { border-right: 0; }
.filter-group:nth-last-child(-n+2) { border-bottom: 0; }
.filter-group legend, .filter-group-title { display: block; margin-bottom: 6px; padding: 0; color: var(--text-muted); font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.filter-option { position: relative; min-height: 44px; display: flex; align-items: center; gap: 10px; margin: 0 -8px; padding: 0 8px; cursor: pointer; }
.filter-option input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.filter-check { width: 16px; height: 16px; flex: 0 0 16px; border: 1px solid var(--border-strong); background: var(--surface-panel); transition: background-color 160ms ease-out, border-color 160ms ease-out; }
.filter-check::after { content: ""; display: block; width: 8px; height: 4px; margin: 4px 0 0 3px; border-left: 1.5px solid #fff; border-bottom: 1.5px solid #fff; transform: rotate(-45deg) scale(0); transition: transform 160ms ease-out; }
.filter-option.is-on .filter-check, .filter-option:has(input:checked) .filter-check { background: var(--text-primary); border-color: var(--text-primary); }
.filter-option.is-on .filter-check::after, .filter-option:has(input:checked) .filter-check::after { transform: rotate(-45deg) scale(1); }
.filter-option:hover { background: var(--surface-hover); }
.filter-option.is-locked { cursor: default; opacity: .56; }
.filter-option.is-locked:hover { background: transparent; }
.filter-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.filter-option .count { margin-left: auto; color: var(--text-muted); font-size: 11px; font-variant-numeric: tabular-nums; }
.filter-option:focus-within .filter-check { outline: 2px solid var(--focus); outline-offset: 2px; }
.table-panel { min-width: 0; overflow: visible; }
.table-scroll { min-width: 0; overflow: auto; }
.table-toolbar { position: relative; z-index: 6; min-height: 48px; display: flex; align-items: stretch; gap: 10px; padding: 0 10px 0 0; border-bottom: 1px solid var(--border); }
.table-toolbar > :not(.filter-menu) { align-self: center; }
.table-count { font-weight: 650; }
.table-sort { margin-left: auto; color: var(--text-muted); font-size: 11px; }
.object-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.object-table th { height: 34px; padding: 0 7px; color: var(--text-secondary); background: var(--surface-subtle); border-bottom: 1px solid var(--border); font-size: 10px; font-weight: 700; letter-spacing: .025em; text-align: left; text-transform: uppercase; white-space: nowrap; }
.object-table td { height: 52px; padding: 6px 7px; border-bottom: 1px solid #e2e8f0; vertical-align: middle; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.object-table td.num { padding-inline: 6px; font-variant-numeric: tabular-nums; color: var(--text-secondary); }
.object-table td.incident-cell { white-space: normal; }
.object-table td.incident-cell .object-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; line-height: 1.3; }
.object-table td.incident-cell .object-id { white-space: nowrap; }
.object-table tbody tr { cursor: pointer; background: var(--surface-panel); }
.object-table tbody tr:hover { background: var(--surface-hover); }
.object-table tbody tr.selected { background: var(--surface-selected); box-shadow: inset 3px 0 0 var(--primary); }
.object-table tbody tr:focus { outline: 2px solid var(--focus); outline-offset: -2px; }
/* Fixed columns; the Incident column takes the remainder and wraps to two lines instead of clipping. */
.table-panel { container-type: inline-size; }
.object-table th:nth-child(1) { width: 62px; }
.object-table th:nth-child(3) { width: 64px; }
.object-table th:nth-child(4) { width: 84px; }
.object-table th:nth-child(5) { width: 108px; }
.object-table th:nth-child(6) { width: 54px; }
.object-table th:nth-child(7) { width: 66px; }
@container (max-width: 640px) {
  .object-table th:nth-child(6), .object-table td:nth-child(6) { display: none; }
}
@container (max-width: 520px) {
  .object-table th:nth-child(4), .object-table td:nth-child(4) { display: none; }
}
.object-title { display: block; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.object-id { display: block; color: var(--text-muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; }
.status { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; color: var(--text-secondary); font-size: 11px; font-weight: 650; white-space: nowrap; }
.status::before { content: ""; width: 7px; height: 7px; flex: 0 0 auto; border-radius: 50%; background: currentColor; }
.status.critical, .text-critical { color: var(--critical); }
.status.warning, .text-warning { color: var(--warning); }
.status.success, .text-success { color: var(--success); }
.status.info, .text-info { color: var(--info); }
.status.neutral { color: var(--text-muted); }
.badge { display: inline-flex; align-items: center; gap: 5px; min-height: 22px; max-width: 100%; padding: 0 8px; border: 1px solid var(--border); border-radius: 11px; color: var(--text-secondary); background: var(--surface-panel); font-size: 11px; font-weight: 650; line-height: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.badge.critical { color: var(--critical); background: var(--critical-bg); border-color: #fecaca; }
.badge.warning { color: var(--warning); background: var(--warning-bg); border-color: #fde68a; }
.badge.success { color: var(--success); background: var(--success-bg); border-color: #a7f3d0; }
.badge.info { color: var(--info); background: var(--info-bg); border-color: var(--border); }
.badge.dark { color: #e2e8f0; background: #1e293b; border-color: #334155; }

.utility-rail { position: fixed; top: 48px; right: 0; bottom: 0; width: var(--rail-right-width); min-width: 0; min-height: 0; display: grid; grid-template-rows: 52px minmax(0, 1fr); background: var(--surface-panel); border-left: 1px solid var(--border); overflow: hidden; box-shadow: var(--shadow-overlay); z-index: 40; }
.utility-rail.is-entering { animation: utility-rail-slide-in .24s cubic-bezier(.22, 1, .36, 1) both; }
.rail-resize { position: absolute; top: 0; bottom: 0; width: 8px; z-index: 3; padding: 0; border: 0; background: transparent; cursor: ew-resize; touch-action: none; }
.utility-rail:not([data-rail-side="left"]) .rail-resize { left: 0; }
[data-rail-side="left"] .rail-resize { right: 0; left: auto; }
.rail-resize::after { content: ""; position: absolute; top: 0; bottom: 0; width: 2px; background: transparent; }
.utility-rail:not([data-rail-side="left"]) .rail-resize::after { left: 0; }
[data-rail-side="left"] .rail-resize::after { right: 0; }
.rail-resize:hover::after, .rail-resize:focus-visible::after, .rail-resize.is-dragging::after { background: var(--primary); }
html.is-rail-resizing, html.is-rail-resizing * { cursor: ew-resize !important; user-select: none !important; }
.rail-header { display: flex; align-items: center; gap: 9px; padding: 0 12px; border-bottom: 1px solid var(--border); }
.rail-title { min-width: 0; }
.rail-title strong { display: block; line-height: 17px; }
.rail-title span { display: block; color: var(--text-muted); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rail-header-actions { margin-left: auto; display: flex; gap: 4px; }
.rail-body { min-height: 0; overflow-y: auto; padding: 14px; }
.rail-section { padding: 13px 0; border-bottom: 1px solid #e2e8f0; }
.rail-section:first-child { padding-top: 0; }
.rail-section:last-child { border-bottom: 0; }
.rail-kicker { margin-bottom: 5px; color: var(--text-muted); font-size: 10px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.rail-heading { margin-bottom: 5px; font-size: 16px; line-height: 22px; font-weight: 650; }
.key-grid { display: grid; grid-template-columns: 98px minmax(0, 1fr); gap: 7px 10px; margin-top: 10px; }
.key-grid dt { color: var(--text-muted); }
.key-grid dd { margin: 0; min-width: 0; font-weight: 550; }
.rail-actions { display: grid; gap: 7px; margin-top: 12px; }
.rail-actions.inline { grid-template-columns: 1fr 1fr; }
.object-preview-rail { grid-template-rows: 52px minmax(0, 1fr) auto; }
.object-preview-rail .rail-body { padding: 0 16px 16px; }
.preview-identity { padding: 18px 0 15px; border-bottom: 1px solid var(--border); }
.preview-identity .rail-heading { margin: 0; font-size: 18px; line-height: 24px; }
.preview-badges { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.preview-context { margin-top: 9px; color: var(--text-secondary); font-size: 12px; line-height: 18px; }
.preview-section { padding: 15px 0; border-bottom: 1px solid var(--border); }
.preview-section-title { display: block; font-size: 13px; line-height: 18px; }
.preview-section > p { margin-top: 4px; color: var(--text-secondary); font-size: 12px; line-height: 18px; }
.preview-section .cite-button { display: flex; align-items: center; max-width: 100%; min-width: 0; min-height: 38px; margin-top: 9px; padding: 0 8px; overflow: hidden; white-space: nowrap; }
.preview-section .cite-button > span:not(.mono) { flex-shrink: 0; }
.preview-section .cite-button .mono { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.preview-parts { padding-top: 7px; }
.preview-parts span { margin-right: 5px; color: var(--text-muted); font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.preview-gap { display: inline-flex; margin-top: 9px; color: var(--text-muted); font-size: 11px; }
.preview-stages { display: grid; gap: 9px; margin-top: 11px; }
.preview-stages > div { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 8px; align-items: start; }
.preview-stage-mark { width: 18px; height: 18px; display: grid; place-items: center; color: var(--text-muted); border: 1px solid var(--border-strong); border-radius: 50%; }
.preview-stage-mark.complete { color: var(--success); background: var(--success-bg); border-color: #bbf7d0; }
.preview-stages strong, .preview-stages small { display: block; }
.preview-stages strong { font-size: 12px; line-height: 16px; }
.preview-stages small { margin-top: 1px; color: var(--text-muted); font-size: 10px; line-height: 15px; }
.preview-callout { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 9px; margin-top: 15px; padding: 11px; color: var(--text-secondary); background: var(--surface-subtle); border: 1px solid var(--border); border-radius: var(--radius); }
.preview-callout.unavailable { color: var(--text-secondary); background: #fff7ed; border-color: #fed7aa; }
.preview-callout strong { display: block; color: var(--text-primary); font-size: 12px; }
.preview-callout p { margin-top: 3px; font-size: 11px; line-height: 17px; }
.preview-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 9px; }
.preview-fact { min-width: 0; padding: 9px 10px; background: var(--surface-subtle); border: 1px solid var(--border); border-radius: var(--radius); }
.preview-fact span, .preview-fact strong { display: block; }
.preview-fact span { color: var(--text-muted); font-size: 10px; line-height: 14px; }
.preview-fact strong { margin-top: 2px; overflow-wrap: anywhere; font-size: 12px; line-height: 16px; }
.preview-details { border-bottom: 1px solid var(--border); }
.preview-details summary { padding: 13px 0; color: var(--text-secondary); cursor: pointer; font-size: 11px; font-weight: 650; }
.preview-details[open] { padding-bottom: 13px; }
.preview-details[open] summary { color: var(--text-primary); }
.preview-details .key-grid, .preview-meta { margin: 0; }
.preview-meta { padding: 15px 0; }
.preview-actions { display: grid; gap: 7px; padding: 12px 16px 14px; background: var(--surface-panel); border-top: 1px solid var(--border); box-shadow: 0 -8px 18px rgba(15, 23, 42, .04); }
.preview-actions-secondary { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.preview-actions .btn { width: 100%; }
.preview-actions .btn:disabled { cursor: not-allowed; opacity: .55; }
.pipeline-mini { display: grid; gap: 0; margin-top: 10px; }
.pipeline-step { position: relative; min-height: 42px; display: grid; grid-template-columns: 18px 1fr auto; gap: 8px; align-items: start; }
.pipeline-step:not(:last-child)::after { content: ""; position: absolute; top: 16px; left: 6px; bottom: -4px; width: 1px; background: var(--border); }
.pipeline-dot { position: relative; z-index: 1; width: 13px; height: 13px; margin-top: 2px; display: grid; place-items: center; color: white; background: var(--success); border-radius: 50%; }
.pipeline-dot.running { background: var(--info); }
.pipeline-dot.failed { background: var(--critical); }
.pipeline-step strong { display: block; font-size: 11px; }
.pipeline-step span { color: var(--text-muted); font-size: 11px; }
.pipeline-step time { color: var(--text-muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.rail-trigger { position: absolute; right: 16px; bottom: 16px; z-index: 50; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 0 14px; writing-mode: horizontal-tb; transform: none; color: #fff; background: var(--primary); border: 1px solid var(--primary); border-radius: 0; font-size: 12px; font-weight: 650; cursor: pointer; box-shadow: var(--shadow-overlay); }
.rail-trigger:hover { background: var(--primary-hover); border-color: var(--primary-hover); }
.workspace-body:not(.has-rail) .page-inner { padding-right: 16px; }

.context-capsule { padding: 0 0 10px; border-bottom: 1px solid #e2e8f0; }
.context-head { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; color: var(--text-muted); }
.context-head strong { font-size: 11px; font-weight: 650; color: var(--text-secondary); }
.context-head button { margin-left: auto; padding: 2px; background: transparent; color: var(--primary); cursor: pointer; font-size: 11px; }
.context-grid { display: grid; grid-template-columns: 76px 1fr; gap: 3px 8px; font-size: 11px; }
.context-grid span:nth-child(odd) { color: var(--text-muted); }
.context-grid strong { font-weight: 550; min-width: 0; overflow-wrap: anywhere; }
.evidence-flags { display: flex; flex-wrap: wrap; gap: 4px 12px; margin-top: 7px; }
.evidence-flags .badge { min-height: 0; padding: 0; border: 0; background: transparent; color: var(--text-muted); font-weight: 550; }
.evidence-flags .badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--border); }
.evidence-flags .badge.success::before { background: var(--success); }
.evidence-flags .badge.warning::before { background: var(--warning); }
.evidence-flags .badge.success, .evidence-flags .badge.warning { color: var(--text-secondary); }
.suggestions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.suggestion { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; text-align: left; color: var(--text-secondary); background: var(--surface-panel); border: 1px solid var(--border); border-radius: 0; font-size: 12px; font-weight: 600; cursor: pointer; white-space: normal; }
.suggestion:hover { color: var(--primary); background: var(--surface-selected); border-color: var(--border-strong); }
.suggestion .icon { display: none; }
.assist-message { margin-top: 16px; padding: 0; border: 0; background: transparent; }
.assist-message.user { margin-left: 24px; padding: 8px 12px; color: var(--text-primary); background: var(--surface-subtle); border-left: 2px solid var(--border-strong); border-radius: 0; }
.assist-message .sender { margin-bottom: 4px; color: var(--text-muted); font-size: 10px; font-weight: 650; text-transform: uppercase; letter-spacing: .08em; }
.assist-message p + p { margin-top: 8px; }
.assist-message .key-grid { margin-top: 8px; padding: 8px 10px; background: var(--surface-subtle); border: 1px solid var(--border); border-radius: 0; }
.assist-message .key-grid dd.mono { overflow-wrap: anywhere; }
.citation-list { display: flex; flex-wrap: wrap; gap: 4px 6px; margin-top: 8px; }
.citation-link { min-height: 32px; max-width: 100%; display: inline-flex; align-items: center; gap: 6px; padding: 4px 8px; color: var(--primary); background: transparent; border: 1px solid var(--border); border-radius: 0; text-align: left; cursor: pointer; }
.citation-link:hover { border-color: var(--primary); background: var(--surface-selected); }
.citation-link span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.assist-state { margin-top: 12px; padding: 10px 12px; border: 1px solid var(--border); border-left: 3px solid var(--info); background: var(--info-bg); border-radius: 0; }
.assist-state.error { border-left-color: var(--critical); background: var(--critical-bg); }
.assist-state.warning { border-left-color: var(--warning); background: var(--warning-bg); }
.assist-state.offline { border-left-color: var(--text-muted); background: var(--surface-subtle); }
.assist-state strong { display: flex; align-items: center; gap: 7px; margin-bottom: 4px; }
.progress-track { height: 4px; margin-top: 10px; overflow: hidden; background: var(--surface-subtle); }
.progress-track span { display: block; width: 64%; height: 100%; background: var(--info); animation: progress 1.3s ease-in-out infinite alternate; }
.assist-details { margin-top: 14px; border: 0; }
.assist-details summary { min-height: 28px; display: flex; align-items: center; gap: 6px; padding: 0; color: var(--text-muted); cursor: pointer; font-size: 11px; font-weight: 600; list-style: none; }
.assist-details summary::-webkit-details-marker { display: none; }
.assist-details summary:hover { color: var(--text-secondary); }
.assist-details[open] summary { border-bottom: 0; }
.assist-details .pipeline-mini { padding: 6px 0 0 4px; margin: 0; }
.assist-details + .btn { width: auto !important; align-self: flex-start; min-height: 26px; margin-top: 2px !important; padding: 0 2px; border: 0; background: transparent; color: var(--primary); font-size: 11px; font-weight: 600; }
.assist-details + .btn:hover { text-decoration: underline; }
.composer { position: sticky; bottom: -14px; margin: 15px -14px -14px; padding: 10px 14px 12px; background: var(--surface-panel); border-top: 1px solid var(--border); }
.composer-box { display: grid; grid-template-columns: minmax(0, 1fr) 44px; align-items: end; background: var(--surface-panel); border: 1px solid var(--border); border-radius: 0; }
.composer-box:focus-within { border-color: var(--focus); outline: 2px solid var(--focus); outline-offset: 2px; }
.composer textarea { width: 100%; min-width: 0; min-height: 44px; max-height: 140px; resize: none; padding: 11px 12px; background: transparent; border: 0; border-radius: 0; }
.composer textarea:focus { outline: 0; }
.composer-box .btn { position: static; width: 44px; min-width: 44px; min-height: 44px; border-radius: 0; border: 0; border-left: 1px solid var(--primary); }
.composer-hint { margin-top: 6px; color: var(--text-muted); font-size: 11px; }

.detail-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 7px; color: var(--text-secondary); font-size: 11px; }
.detail-meta span { display: inline-flex; align-items: center; gap: 5px; }
.twin-panel { margin-bottom: 8px; overflow: hidden; }
.twin-panel .inspection-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 280px); min-height: 260px; }
.twin-panel .inspection-body .twin-mount { height: 260px; }
.twin-panel .inspection-body .part-detail { border-top: 0; border-left: 1px solid var(--border); max-height: 260px; }
.twin-panel.inspection-expanded { position: fixed; inset: 8px; z-index: 40; display: grid; grid-template-rows: auto minmax(0, 1fr); margin: 0; box-shadow: var(--shadow-overlay); }
.twin-panel.inspection-expanded .inspection-body { min-height: 0; height: 100%; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); }
.twin-panel.inspection-expanded .twin-frame,
.twin-panel.inspection-expanded .twin-mount { height: 100%; min-height: 0; }
.twin-panel.inspection-expanded .inspection-body .part-detail { max-height: none; }
.twin-status { margin-left: auto; color: var(--text-muted); font-size: 11px; }
.twin-status[data-state="failed"] { color: var(--critical); }
.twin-frame { display: block; width: 100%; height: 260px; border: 0; background: var(--surface-subtle); }
.twin-mount { position: relative; overflow: hidden; }
.question-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-bottom: 10px; }
.question-grid.is-revealed { outline: 2px solid var(--primary); outline-offset: 4px; }
.question-card { min-height: 136px; padding: 11px 12px; background: var(--surface-panel); border: 1px solid var(--border); border-top: 3px solid var(--border-strong); border-radius: var(--radius); }
.question-card.action { border-top-color: var(--primary); }
.question-card.trust { border-top-color: var(--success); }
.question-number { color: var(--text-muted); font-size: 11px; font-weight: 600; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.question-card h2 { margin: 3px 0 6px; }
.question-card p { color: var(--text-secondary); font-size: 12px; }
.inline-citations { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.cite-button { display: inline-flex; align-items: center; gap: 4px; min-height: 22px; max-width: 100%; padding: 2px 6px; color: var(--primary); background: var(--info-bg); border: 1px solid var(--border); border-radius: var(--radius); cursor: pointer; font-size: 11px; white-space: nowrap; }
.cite-button:hover { border-color: var(--primary); }
.detail-grid { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(280px, .82fr); gap: 8px; margin-bottom: 8px; }
.timeline { display: grid; gap: 0; padding: 4px 0; }
.timeline-row { position: relative; min-height: 46px; display: grid; grid-template-columns: 23px minmax(0, 1fr) 64px; gap: 7px; padding: 5px 0; }
.timeline-row:not(:last-child)::before { content: ""; position: absolute; left: 7px; top: 24px; bottom: -8px; width: 1px; background: var(--border); }
.timeline-icon { position: relative; width: 15px; height: 15px; margin-top: 2px; display: grid; place-items: center; color: #fff; background: var(--success); border-radius: 50%; }
.timeline-copy strong { display: block; font-size: 11px; }
.timeline-copy span { color: var(--text-muted); font-size: 11px; }
.timeline-time { text-align: right; color: var(--text-muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.condition-numbers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-bottom: 1px solid #e2e8f0; }
.condition-number { min-width: 0; padding: 9px 10px; border-right: 1px solid #e2e8f0; }
.condition-number:last-child { border-right: 0; }
.condition-number span { display: block; color: var(--text-muted); font-size: 10px; text-transform: uppercase; letter-spacing: .04em; }
.condition-number strong { display: block; margin-top: 3px; font-family: var(--font-sans); font-size: 18px; line-height: 1.1; font-weight: 650; font-variant-numeric: tabular-nums; font-feature-settings: "tnum" 1, "lnum" 1; letter-spacing: -.02em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.condition-number strong small { font-size: 12px; font-weight: 600; color: var(--text-secondary); margin-left: 2px; }
.trend-chart { padding: 8px 10px 5px; }
.trend-chart svg { width: 100%; height: 78px; display: block; }
.chart-grid { stroke: #e2e8f0; stroke-width: 1; }
.chart-line { fill: none; stroke: var(--warning); stroke-width: 2; vector-effect: non-scaling-stroke; }
.chart-area { fill: #fffbeb; }
.chart-dot { fill: var(--warning); stroke: #fff; stroke-width: 2; }
.work-order { padding: 11px 12px; }
.work-order-callout { display: flex; align-items: flex-start; gap: 9px; padding: 9px; background: var(--info-bg); border-left: 3px solid var(--primary); }
.work-order-callout strong { display: block; }
.work-order-callout p { margin-top: 3px; color: var(--text-secondary); font-size: 12px; }
.activity-list { display: grid; }
.activity-item { min-height: 44px; display: grid; grid-template-columns: 58px 18px 1fr; gap: 8px; align-items: start; padding: 8px 0; border-bottom: 1px solid #e2e8f0; }
.activity-item:last-child { border-bottom: 0; }
.activity-item time { color: var(--text-muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.activity-item .event-mark { width: 8px; height: 8px; margin-top: 4px; border-radius: 50%; background: var(--border-strong); }
.activity-item strong { display: block; font-size: 11px; }
.activity-item p { color: var(--text-muted); font-size: 11px; }
.limit-note { display: flex; gap: 8px; padding: 8px 10px; color: var(--warning); background: var(--warning-bg); border: 1px solid #fde68a; font-size: 11px; line-height: 1.4; }

.floor-page { height: 100%; min-height: 600px; display: grid; grid-template-rows: auto minmax(0, 1fr); padding: 12px; overflow: hidden; }
.floor-header { display: flex; align-items: center; gap: 12px; margin-bottom: 10px; }
.floor-header .header-actions { flex-wrap: nowrap; }
.floor-stage { position: relative; min-height: 0; overflow: hidden; background: #e2e8f0; border: 1px solid var(--border-strong); border-radius: var(--radius); touch-action: none; overscroll-behavior: none; }
.floor-mount { position: absolute; inset: 0; }
.floor-overlay { position: absolute; top: 12px; left: 12px; width: 216px; max-height: calc(100% - 76px); display: grid; grid-template-rows: auto minmax(0, 1fr); background: rgb(255 255 255 / 96%); border: 1px solid var(--border); box-shadow: 0 3px 10px rgb(15 23 42 / 10%); z-index: 2; }
.floor-overlay-header { min-height: 40px; display: flex; align-items: center; gap: 6px; padding: 0 10px; border-bottom: 1px solid var(--border); font-weight: 650; }
.tree { padding: 8px; overflow-y: auto; }
.tree-row { min-height: 30px; display: flex; align-items: center; gap: 6px; padding: 0 7px; border-radius: 2px; color: var(--text-secondary); font-size: 12px; }
.tree-row.indent-1 { padding-left: 20px; cursor: pointer; }
.tree-row.indent-1:hover { background: var(--surface-hover); color: var(--text-primary); }
.tree-row.indent-2 { padding-left: 34px; }
.tree-row.selected { color: var(--primary); background: var(--surface-selected); font-weight: 650; }
.tree-count { margin-left: auto; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tree-row > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tree-count.muted { color: var(--text-muted); font-weight: 400; }
.tree-note { margin: 6px 7px 0; color: var(--text-muted); font-size: 11px; }
.tree-cell > summary { list-style: none; cursor: pointer; font-weight: 600; color: var(--text-primary); }
.tree-cell > summary::-webkit-details-marker { display: none; }
.tree-cell > summary::before { content: ""; width: 0; height: 0; border-style: solid; border-width: 4px 0 4px 5px; border-color: transparent transparent transparent var(--text-muted); transition: transform .12s; }
.tree-cell[open] > summary::before { transform: rotate(90deg); }
.tree-cell-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.floor-legend { position: absolute; left: 12px; bottom: 12px; display: flex; gap: 12px; padding: 7px 9px; background: rgb(255 255 255 / 96%); border: 1px solid var(--border); font-size: 11px; z-index: 2; }
.floor-legend span { display: flex; align-items: center; gap: 5px; }
.floor-legend i { width: 8px; height: 8px; border-radius: 50%; background: var(--success); }
.floor-legend .critical { background: var(--critical); }
.floor-legend .warning { background: var(--warning); }
.floor-legend .unmonitored { background: #c9d1db; border: 1px solid var(--border-strong); }
.floor-legend .floor-license { margin-left: 6px; padding-left: 12px; border-left: 1px solid var(--border); color: var(--text-muted); }
.process-strip { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.process-chip { display: inline-flex; padding: 2px 7px; border: 1px solid var(--border); background: var(--surface); font-size: 11px; color: var(--text-muted); transition: background 0.3s, color 0.3s, border-color 0.3s; }
.process-chip[data-busy="1"] { border-color: #a7f3d0; background: var(--success-bg); color: var(--success); font-weight: 600; }
.fleet-pointers { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.condition-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; margin-top: 8px; }
.condition-tile { display: flex; flex-direction: column; background: var(--surface-panel); border: 1px solid var(--border); }
.condition-tile.is-flag { border-color: var(--critical); box-shadow: inset 3px 0 0 var(--critical); }
.condition-main { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px 8px; color: inherit; min-height: 148px; text-decoration: none; }
.condition-main:hover, .condition-chip:hover { text-decoration: none; }
.condition-tile header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.condition-tile header span { color: var(--text-muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.condition-tile .sparkline { width: 100%; height: 44px; display: block; }
.condition-meta { display: flex; align-items: center; gap: 8px; }
.condition-tile .cite { margin: 0; color: var(--text-muted); font-size: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.condition-chip { margin: 0 12px 10px; align-self: flex-start; padding: 1px 7px; border: 1px solid var(--critical); color: var(--critical); background: var(--critical-bg); font: 600 10px var(--font-mono); }
.station-board { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px; margin-top: 8px; }
.station-card { display: flex; flex-direction: column; background: var(--surface-panel); border: 1px solid var(--border); min-height: 148px; }
.station-main { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; color: inherit; flex: 1; }
.station-card header { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.station-card header span { color: var(--text-muted); font-size: 11px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.station-tags { display: grid; gap: 3px; }
.station-tag { display: flex; justify-content: space-between; gap: 8px; font-size: 11px; }
.station-tag span { color: var(--text-muted); }
.station-affordance { margin: 0 12px 10px; align-self: flex-start; color: var(--primary); font-size: 11px; font-weight: 600; }
.segmented { display: inline-flex; }
.segmented .btn { border-radius: 0; }
.segmented .btn + .btn { margin-left: -1px; }

/* Persistent Floor twin: fixed overlay outside #app, positioned over [data-floor-mount]. */
.floor-live { position: fixed; z-index: 1; overflow: hidden; background: #e6eaf0; touch-action: none; overscroll-behavior: none; }
.floor-live[hidden] { display: none; }
.floor-frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; background: #e6eaf0; pointer-events: auto; touch-action: none; }
.floor-labels { position: absolute; left: 0; top: 0; width: 0; height: 0; overflow: visible; pointer-events: none; z-index: 2; }
.floor-label { position: absolute; transform: translate(-50%, calc(-100% - 6px)); pointer-events: auto; display: inline-flex; align-items: center; gap: 4px; min-height: 18px; padding: 0 5px; border: 1px solid var(--border-strong); background: rgb(255 255 255 / 92%); color: var(--text-secondary); font: 600 10px/1 var(--font-sans); cursor: pointer; white-space: nowrap; box-shadow: 0 1px 2px rgb(15 23 42 / 12%); }
.floor-label::after { content: ""; position: absolute; left: 50%; bottom: calc(-1 * var(--stem, 6px)); width: 1px; height: var(--stem, 6px); background: var(--border-strong); }
.floor-label.unmonitored { color: var(--text-muted); font-weight: 500; border-color: var(--border); }
.floor-label.monitored { color: var(--text-primary); border-color: var(--text-secondary); }
.floor-label small { font-size: 9px; font-weight: 500; color: var(--text-muted); }
.floor-label:hover, .floor-label.hover { border-color: var(--primary); color: var(--primary); }
.floor-label.selected { color: var(--primary); border-color: var(--primary); background: var(--surface-selected); box-shadow: 0 0 0 1px var(--primary); }
.floor-label.critical { color: var(--critical); border-color: var(--critical); background: var(--critical-bg); }
.floor-label.critical small { color: var(--critical); font-weight: 700; }
.floor-label.critical .icon { width: 11px; height: 11px; }
.floor-label:focus-visible { outline: 2px solid var(--focus); outline-offset: 1px; }
@media (prefers-reduced-motion: reduce) { .tree-cell > summary::before { transition: none; } }

.asset-summary { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 8px; margin-bottom: 8px; align-items: stretch; }
.asset-score { display: grid; place-items: center; min-height: 0; text-align: center; }
.asset-score > div { width: 100%; text-align: center; }
.asset-score-value { display: block; color: var(--warning); font-size: 22px; line-height: 1; font-weight: 700; font-variant-numeric: tabular-nums; }
.asset-score strong { display: block; margin-top: 8px; font-size: 13px; }
.asset-score span { display: block; margin-top: 2px; color: var(--text-muted); font-size: 11px; }
.asset-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.asset-fact { padding: 8px; border-right: 1px solid #e2e8f0; line-height: 1.2; }
.asset-fact:last-child { border-right: 0; }
.asset-fact span { display: block; color: var(--text-muted); font-size: 10px; text-transform: uppercase; }
.asset-fact strong { display: block; margin-top: 4px; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.asset-columns { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(300px, .85fr); gap: 8px; }
.simple-table { width: 100%; border-collapse: collapse; }
.simple-table th { height: 32px; padding: 0 9px; color: var(--text-secondary); background: var(--surface-subtle); border-bottom: 1px solid var(--border); text-align: left; font-size: 10px; text-transform: uppercase; }
.simple-table td { height: 42px; padding: 0 9px; border-bottom: 1px solid #e2e8f0; font-size: 12px; }
.simple-table tr:last-child td { border-bottom: 0; }
.evidence-list { display: grid; }
.evidence-row { min-height: 48px; display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px solid #e2e8f0; }
.evidence-row:last-child { border-bottom: 0; }
.evidence-row strong { display: block; font-size: 11px; }
.evidence-row > div span { display: block; color: var(--text-muted); font-size: 11px; }
.evidence-row button { background: transparent; color: var(--primary); cursor: pointer; font-size: 11px; }
.evidence-row > .badge { white-space: nowrap; }

.system-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 8px; background: var(--surface-panel); border: 1px solid var(--border); }
.system-cell { min-width: 0; min-height: 58px; padding: 9px 11px; border-right: 1px solid var(--border); }
.system-cell:last-child { border-right: 0; }
.system-cell span { display: block; color: var(--text-muted); font-size: 10px; text-transform: uppercase; }
.system-cell strong { display: flex; align-items: center; gap: 6px; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
.intel-layout { display: grid; grid-template-columns: minmax(320px, .86fr) minmax(0, 1.14fr); gap: 8px; }
.run-list { display: grid; }
.run-row { min-height: 61px; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; padding: 9px 10px; border-bottom: 1px solid #e2e8f0; cursor: pointer; }
.run-row:hover { background: var(--surface-hover); }
.run-row.selected { background: var(--surface-selected); box-shadow: inset 3px 0 0 var(--primary); }
.run-row:last-child { border-bottom: 0; }
.run-main { min-width: 0; }
.run-main strong { display: block; font-size: 11px; }
.run-main span { color: var(--text-muted); font-size: 11px; }
.run-side { text-align: right; }
.run-side time { display: block; margin-top: 4px; color: var(--text-muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.trace-header { padding: 11px 12px; border-bottom: 1px solid var(--border); }
.trace-title { display: flex; align-items: center; gap: 8px; }
.trace-title .badge { margin-left: auto; flex: 0 0 auto; }
.trace-title h2 { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.trace-meta { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 5px; color: var(--text-muted); font-size: 11px; }
.trace-stages { padding: 7px 12px; }
.trace-stage { border-bottom: 1px solid #e2e8f0; }
.trace-stage:last-child { border-bottom: 0; }
.trace-summary { min-height: 43px; display: grid; grid-template-columns: 18px 35px minmax(0, 1fr) auto; gap: 7px; align-items: center; cursor: pointer; list-style: none; }
.trace-summary::-webkit-details-marker { display: none; }
.trace-stage[open] .trace-summary { color: var(--primary); }
.trace-stage-label { color: var(--text-muted); font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.trace-summary strong { font-size: 11px; color: var(--text-primary); }
.trace-summary time { color: var(--text-muted); font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.trace-body { margin: 0 0 10px 52px; padding: 9px; background: var(--surface-subtle); border: 1px solid var(--border); font-size: 11px; }
.trace-body dl { display: grid; grid-template-columns: 78px minmax(0, 1fr); gap: 5px 8px; margin: 0; }
.trace-body dd { overflow-wrap: anywhere; }
.trace-body dt { color: var(--text-muted); }
.trace-body dd { margin: 0; min-width: 0; }
.event-log { margin-top: 8px; padding: 7px 8px; color: #cbd5e1; background: #0f172a; font: 11px/1.5 var(--font-mono); overflow-wrap: anywhere; }

.evidence-document { padding: 11px; background: #f8fafc; border: 1px solid var(--border); font: 11.5px/1.55 var(--font-mono); overflow-wrap: anywhere; }
.evidence-document mark { color: var(--text-primary); background: #fef3c7; }
.signal-plot { margin: 10px 0; padding: 8px; border: 1px solid var(--border); background: var(--surface-panel); }
.signal-plot svg { display: block; width: 100%; height: 104px; }
.wave-line { fill: none; stroke: var(--info); stroke-width: 1.5; }
.signal-axis { stroke: #cbd5e1; stroke-width: 1; }
.viewer-toolbar { display: flex; gap: 7px; margin-bottom: 11px; }

.empty-state { min-height: 220px; display: grid; place-items: center; padding: 32px; text-align: center; }
.empty-state .icon { width: 30px; height: 30px; margin: 0 auto 8px; color: var(--text-muted); }
.empty-state p { max-width: 300px; margin: 4px auto 12px; color: var(--text-secondary); }

@keyframes spin { to { transform: rotate(360deg); } }
@keyframes progress { from { width: 35%; } to { width: 78%; } }
@keyframes utility-rail-slide-in { from { transform: translateX(100%); } to { transform: translateX(0); } }
@keyframes l2-report-rail-slide-in { from { transform: translateX(-100%); } to { transform: translateX(0); } }

@media (max-width: 1280px) {
  .question-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .header-search { width: 190px; }
}

@media (max-width: 1180px) {
  .header-search { width: 150px; }
  .contained-badge { padding: 0 8px; }
  .metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .metric-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .metric-card { padding-inline: 9px; }
  .asset-facts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .asset-fact:nth-child(2) { border-right: 0; }
  .asset-fact:nth-child(-n+2) { border-bottom: 1px solid #e2e8f0; }
}

@media (max-width: 720px) {
  .filter-grid { grid-template-columns: 1fr; }
  .filter-group { border-right: 0; }
  .filter-group:nth-last-child(-n+2) { border-bottom: 1px solid var(--border); }
  .filter-group:last-child { border-bottom: 0; }
  .filter-summary { display: none; }
  .utility-rail { width: min(100vw, var(--rail-right-width)); }
  .rail-trigger { right: 12px; bottom: 12px; }
  .header-search { display: none; }
  .breadcrumb { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .contained-badge span { display: none; }
  .metric-grid, .metric-grid.five { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric-card { min-height: 80px; }
  .metric-value { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* Viewport-fit refinements for screenshot gate. */
.incident-detail-page .header-actions .btn { min-height: 44px; }
.incident-detail-page .question-card { min-height: 116px; padding: 8px 10px; }
.incident-detail-page .timeline-row { min-height: 39px; padding: 2px 0; }
.incident-detail-page .panel-body { padding: 9px 10px; }
.incident-detail-page .condition-number { padding: 7px 9px; }
.incident-detail-page .trend-chart { padding-top: 5px; }
.incident-detail-page .trend-chart svg { height: 61px; }
.incident-detail-page .work-order { padding: 8px 10px; }
.incident-detail-page .activity-item { min-height: 37px; padding: 5px 0; }
.incident-detail-page .wo-l2-pair { display: inline-flex; align-items: center; gap: 6px; margin-left: auto; flex: 0 0 auto; }
.incident-detail-page .wo-l2-pair .badge,
.incident-detail-page .wo-l2-pair .btn.sm { min-height: 22px; height: 22px; box-sizing: border-box; line-height: 1; }

/* Incident UI lab — URL-selectable information hierarchies. */
.incident-layout-switcher { min-height: 38px; display: flex; align-items: center; gap: 4px; margin: 8px 0 10px; padding: 4px; background: var(--surface-subtle); border: 1px solid var(--border); border-radius: var(--radius); }
.incident-layout-switcher > span { padding: 0 7px; color: var(--text-muted); font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.incident-layout-option { min-height: 28px; padding: 0 10px; color: var(--text-secondary); background: transparent; border: 1px solid transparent; border-radius: 2px; cursor: pointer; font-size: 11px; font-weight: 650; }
.incident-layout-option:hover { color: var(--text-primary); background: var(--surface-panel); border-color: var(--border); }
.incident-layout-option.active { color: var(--primary); background: var(--surface-panel); border-color: var(--primary); }
.incident-sections { display: flex; flex-direction: column; gap: 8px; }
.incident-sections > * { margin-bottom: 0; }
.incident-overview { order: 1; }
.incident-guided { order: 2; display: none; }
.incident-3d { order: 3; }
.incident-live { order: 4; }
.incident-work { order: 5; }
.incident-action-copy { color: var(--text-primary) !important; font-size: 14px !important; font-weight: 650; line-height: 1.35; }
.action-state { display: block; margin-top: 7px; color: var(--warning); font-size: 11px; font-weight: 650; }
.incident-mini-facts { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 3px 8px; margin-top: 8px; font-size: 11px; }
.incident-mini-facts dt { color: var(--text-muted); }
.incident-mini-facts dd { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.snapshot-locator { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 9px; padding: 9px 10px; border-top: 1px solid var(--border); font-size: 11px; }
.snapshot-locator span { color: var(--text-muted); }
.snapshot-locator strong { min-width: 0; overflow-wrap: anywhere; }
.incident-guided .panel-header { align-items: flex-start; }
.incident-guided .panel-header h2 { margin-top: 2px; }
.response-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--border); }
.response-steps article { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 8px; padding: 13px; border-right: 1px solid var(--border); }
.response-steps article:last-child { border-right: 0; }
.response-step-number { width: 24px; height: 24px; display: grid; place-items: center; color: var(--primary); background: var(--surface-selected); border: 1px solid var(--primary); border-radius: 50%; font-size: 11px; font-weight: 750; }
.response-steps strong { display: block; margin-bottom: 4px; font-size: 12px; }
.response-steps p { min-height: 34px; margin-bottom: 8px; color: var(--text-secondary); font-size: 11px; }
.incident-3d .panel-header > div:first-child,
.incident-live .panel-header > div:first-child,
.incident-work .panel-header > div:first-child { min-width: 0; }
.incident-3d .panel-header h2,
.incident-live .panel-header h2,
.incident-work .panel-header h2 { margin-top: 2px; }

.incident-layout-action .incident-overview { grid-template-columns: minmax(300px, 1.35fr) repeat(2, minmax(0, 1fr)); }
.incident-layout-action .question-card.action { background: var(--warning-bg); border-color: #fde68a; border-top-color: var(--warning); }
.incident-layout-action .incident-3d { order: 2; }
.incident-layout-action .incident-work { order: 3; }
.incident-layout-action .incident-live { order: 4; }

.incident-layout-guided .incident-guided { order: 1; display: block; }
.incident-layout-guided .incident-overview { order: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.incident-layout-guided .question-card.action { display: none; }
.incident-layout-guided .incident-3d { order: 3; }
.incident-layout-guided .incident-work { order: 4; }
.incident-layout-guided .incident-live { order: 5; }

.incident-layout-evidence .incident-3d { order: 1; }
.incident-layout-evidence .incident-3d .twin-frame { height: 340px; }
.incident-layout-evidence .incident-live { order: 2; grid-template-columns: minmax(0, 1.12fr) minmax(300px, .88fr); }
.incident-layout-evidence .incident-overview { order: 3; }
.incident-layout-evidence .question-card.action { order: 3; }
.incident-layout-evidence .incident-work { order: 4; }

@media (max-width: 980px) {
  .incident-layout-switcher { align-items: stretch; flex-wrap: wrap; }
  .incident-layout-switcher > span { width: 100%; padding-top: 3px; }
  .incident-layout-action .incident-overview,
  .incident-layout-guided .incident-overview,
  .incident-layout-evidence .incident-overview,
  .incident-layout-evidence .incident-live { grid-template-columns: 1fr; }
  .response-steps { grid-template-columns: 1fr; }
  .response-steps article { border-right: 0; border-bottom: 1px solid var(--border); }
  .response-steps article:last-child { border-bottom: 0; }
}

/* Incident UI lab v2 — portrait 3D rail plus L1/L2 working surface. */
.incident-workspace { display: grid; grid-template-columns: minmax(310px, 360px) minmax(0, 1fr); gap: 10px; align-items: start; }
.incident-visual-column { position: sticky; top: 0; min-width: 0; }
.incident-main-column { min-width: 0; display: flex; flex-direction: column; gap: 8px; }
.incident-main-column > * { margin: 0; }
.incident-3d { height: min(760px, calc(100vh - 178px)); min-height: 590px; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; }
.incident-3d .panel-header { min-height: 48px; }
.incident-3d .twin-frame,
.incident-layout-evidence .incident-3d .twin-frame { width: 100%; height: 100%; min-height: 0; }
.incident-3d-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; padding: 10px 11px; border-top: 1px solid var(--border); }
.incident-3d-footer > div:not(.incident-3d-controls) { min-width: 0; }
.incident-3d-footer span { display: block; color: var(--text-muted); font-size: 10px; letter-spacing: .04em; text-transform: uppercase; }
.incident-3d-footer strong { display: block; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.incident-3d-controls { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.decision-strip { min-height: 116px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; gap: 11px; align-items: start; padding: 13px; background: var(--warning-bg); border-left: 3px solid var(--warning); }
.decision-icon { width: 30px; height: 30px; display: grid; place-items: center; color: var(--warning); background: var(--surface-panel); border: 1px solid #fde68a; }
.decision-copy h2 { margin: 2px 0 5px; font-size: 15px; }
.decision-copy p { color: var(--text-primary); font-size: 13px; font-weight: 650; line-height: 1.4; }
.decision-actions { min-width: 176px; display: flex; flex-direction: column; align-items: stretch; gap: 6px; }
.decision-actions .cite-button { max-width: 230px; }
.incident-analysis { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.incident-l1, .incident-l2 { min-width: 0; overflow: hidden; }
.level-label { display: inline-flex; align-items: center; min-height: 18px; padding: 1px 6px; border: 1px solid currentColor; font-size: 9px; font-weight: 750; letter-spacing: .05em; }
.level-label.l1 { color: var(--success); background: var(--success-bg); }
.level-label.l2 { color: var(--primary); background: var(--surface-selected); }
.incident-l1 .panel-header, .incident-l2 .panel-header { align-items: flex-start; padding-top: 9px; padding-bottom: 9px; }
.incident-l1 .panel-header h2, .incident-l2 .panel-header h2 { margin-top: 3px; }
.incident-l1 .trend-chart { padding: 9px 10px 5px; }
.incident-l1 .trend-chart svg { height: 108px; }
.l2-summary { padding: 10px 11px 8px; }
.l2-summary > p { color: var(--text-secondary); font-size: 11px; line-height: 1.45; }
.l2-summary .incident-mini-facts { grid-template-columns: 86px minmax(0, 1fr); }
.l2-summary .incident-mini-facts dd { white-space: normal; }
.l2-citations { display: flex; flex-wrap: wrap; gap: 5px; padding: 8px 10px; border-top: 1px solid var(--border); }
.chart-gap { min-height: 118px; display: grid; place-items: center; padding: 16px; color: var(--text-muted); background: var(--surface-subtle); font-size: 11px; text-align: center; }
.peak-chart { margin: 0; padding: 9px 11px 10px; border-top: 1px solid var(--border); background: var(--surface-subtle); }
.peak-legend { display: flex; justify-content: space-between; gap: 8px; margin-bottom: 7px; color: var(--text-muted); font-size: 9px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; }
.peak-row { display: grid; grid-template-columns: 58px minmax(60px, 1fr) 62px 58px; gap: 6px; align-items: center; min-height: 22px; font-size: 10px; }
.peak-track { height: 7px; overflow: hidden; background: var(--surface-subtle); }
.peak-track i { display: block; height: 100%; background: var(--primary); }
.peak-row strong, .peak-row small { font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.peak-row small { color: var(--text-muted); }
.peak-chart figcaption { margin-top: 7px; color: var(--text-muted); font-size: 9px; line-height: 1.35; }
.incident-layout-action .incident-main-column .incident-overview { order: 1; }
.incident-layout-action .incident-main-column .incident-guided { display: none; }
.incident-layout-action .incident-main-column .incident-analysis { order: 2; }
.incident-layout-action .incident-main-column .incident-work { order: 3; }
.incident-layout-guided .incident-main-column .incident-guided { order: 1; display: block; }
.incident-layout-guided .incident-main-column .incident-overview { order: 2; }
.incident-layout-guided .incident-main-column .incident-analysis { order: 3; }
.incident-layout-guided .incident-main-column .incident-work { order: 4; }
.incident-layout-guided .response-steps { grid-template-columns: 1fr; }
.incident-layout-guided .response-steps article { border-right: 0; border-bottom: 1px solid var(--border); }
.incident-layout-guided .response-steps article:last-child { border-bottom: 0; }
.incident-layout-evidence .incident-main-column .incident-analysis { order: 1; grid-template-columns: 1fr; }
.incident-layout-evidence .incident-main-column .incident-overview { order: 2; }
.incident-layout-evidence .incident-main-column .incident-guided { display: none; }
.incident-layout-evidence .incident-main-column .incident-work { order: 3; }
.l2-report-rail { position: absolute; top: 0; left: 0; right: auto; bottom: 0; width: var(--rail-left-width); border-left: 0; border-right: 1px solid var(--border); z-index: 45; box-shadow: var(--shadow-overlay); }
.l2-report-rail.is-entering { animation-name: l2-report-rail-slide-in; }
.workspace-body.has-rail:has(.l2-report-rail) { grid-template-columns: minmax(0, 1fr); }
.workspace-body.has-left-rail .rail-trigger { display: inline-flex; }
.workspace-body.has-right-rail .rail-trigger { display: none; }
.workspace-body.has-left-rail.has-right-rail .l2-report-rail { width: min(var(--rail-left-width), calc(100% - var(--rail-right-width))); }
.report-status { margin-bottom: 12px; padding: 12px; background: var(--warning-bg); border: 1px solid #fde68a; }
.report-status h2 { margin: 8px 0 4px; }
.report-status p { color: var(--text-secondary); font-size: 11px; }
.report-action { margin: 6px 0 10px; padding: 9px; background: #fef3c7; border-left: 3px solid var(--warning); font-size: 13px; font-weight: 650; line-height: 1.4; }
.report-features { display: grid; gap: 6px; margin: 7px 0 10px; }
.report-features article { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 7px; padding: 8px; background: var(--surface-subtle); border: 1px solid var(--border); }
.report-features article > span { width: 20px; height: 20px; display: grid; place-items: center; color: var(--primary); border: 1px solid var(--primary); border-radius: 50%; font-size: 9px; font-weight: 750; }
.report-features p { color: var(--text-secondary); font-size: 11px; line-height: 1.45; }

@media (max-width: 1120px) {
  .incident-workspace { grid-template-columns: minmax(280px, 320px) minmax(0, 1fr); }
  .incident-analysis { grid-template-columns: 1fr; }
  .decision-strip { grid-template-columns: 30px minmax(0, 1fr); }
  .decision-actions { grid-column: 2; min-width: 0; }
}

@media (max-width: 820px) {
  .incident-workspace { grid-template-columns: 1fr; }
  .incident-visual-column { position: static; }
  .incident-3d { height: 480px; min-height: 480px; }
  .l2-report-rail { width: min(100vw, var(--rail-left-width)); }
}

.intelligence-page .page-inner { padding-top: 10px; padding-bottom: 10px; }
.intelligence-page .module-header { min-height: 46px; margin-bottom: 8px; }
.intelligence-page .metric-grid { margin-bottom: 8px; }
.intelligence-page .metric-card { min-height: 82px; padding: 8px 10px; }
.intelligence-page .metric-value { margin-top: 2px; font-size: 22px; line-height: 1; }
.intelligence-page .system-cell { min-height: 50px; padding: 6px 9px; }
.intelligence-page .trace-header { padding: 8px 10px; }
.intelligence-page .trace-summary { min-height: 38px; }
.intelligence-page .trace-body { margin-bottom: 6px; padding: 6px 8px; line-height: 1.35; }
.intelligence-page .run-row { min-height: 55px; padding-block: 7px; }

/* Maintenance Assist — operations copilot rail: header / scrolling thread / footer */
.assist-rail { grid-template-rows: 52px minmax(0, 1fr) auto; }
.assist-rail .rail-body { display: flex; flex-direction: column; gap: 0; padding: 12px 16px; }
.assist-rail .rail-body > * { flex: 0 0 auto; min-width: 0; }
.assist-rail .context-capsule { position: relative; z-index: 4; width: max-content; max-width: 100%; margin: 0 0 8px; padding: 0; border: 0; background: transparent; }
.assist-rail .context-trigger { min-height: 32px; display: inline-flex; align-items: center; gap: 8px; width: max-content; max-width: 100%; padding: 0 8px; margin: 0; color: var(--text-secondary); background: var(--surface-panel); border: 1px solid var(--border); border-radius: 0; cursor: pointer; font: inherit; }
.assist-rail .context-trigger:hover { background: var(--surface-hover); border-color: var(--border-strong); }
.assist-rail .context-trigger > .icon:first-child { color: var(--text-muted); }
.assist-rail .context-trigger > .icon:last-child { margin-left: 0; color: var(--text-muted); transition: transform 180ms ease-out; }
.assist-rail .context-capsule[data-open] .context-trigger { border-color: var(--text-primary); }
.assist-rail .context-capsule[data-open] .context-trigger > .icon:last-child { transform: rotate(180deg); }
.assist-rail .context-summary { min-width: 0; display: flex; align-items: baseline; overflow: hidden; }
.assist-rail .context-summary strong { font-size: 12px; font-weight: 600; color: var(--text-primary); white-space: nowrap; }
.assist-rail .context-detail { width: min(260px, calc(100vw - 48px)); margin-top: 4px; padding: 10px 12px; background: var(--surface-panel); border: 1px solid var(--text-primary); }
.assist-rail .suggestion { width: auto; max-width: 100%; min-height: 32px; padding: 0 10px; flex: 0 0 auto; align-self: flex-start; white-space: nowrap; }
.assist-rail .context-change { display: inline-block; margin-top: 8px; padding: 0; background: transparent; color: var(--primary); cursor: pointer; font-size: 11px; font-weight: 600; }
.assist-rail .context-change:hover { text-decoration: underline; }
.assist-rail .evidence-flags { margin: 0 0 8px; padding: 0; }
.assist-rail .assist-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin: 8px 0 0; padding: 0; color: var(--text-secondary); text-align: left; }
.assist-rail .assist-empty .icon { width: 16px; height: 16px; color: var(--text-muted); }
.assist-rail .assist-empty p { max-width: 100%; font-size: 12px; line-height: 1.5; }
.assist-rail .assist-message:not(.user) { padding-right: 0; }
.assist-rail .assist-run { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; margin-top: auto; padding-top: 12px; }
.assist-rail .assist-details { flex: 1 1 auto; margin: 0; }
.assist-rail .assist-details[open] { flex-basis: 100%; }
.assist-rail .assist-details summary .status { margin-left: 6px; }
.assist-rail .assist-details .pipeline-step { min-height: 34px; }
.assist-rail .assist-details + .btn { width: auto !important; min-height: 24px; margin: 0 !important; padding: 0 2px; border: 0; background: transparent; color: var(--primary); font-size: 11px; font-weight: 600; }
.assist-rail .assist-details + .btn:hover { text-decoration: underline; }
.assist-rail .assist-footer { padding: 12px 16px 14px; background: var(--surface-panel); border-top: 1px solid var(--border); }
.assist-rail .assist-footer .suggestions { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: flex-start; margin: 0 0 8px; }
.assist-rail .composer { position: static; margin: 0; padding: 0; border: 0; background: transparent; }

/* Asset 360 · 3D render of one station (twin ?view=part). Portrait panel in a sticky left column. */
.asset-layout { min-width: 0; }
.asset-layout.has-render { display: grid; grid-template-columns: minmax(320px, 380px) minmax(0, 1fr); gap: 10px; align-items: start; }
.asset-layout.has-render .asset-main { min-width: 0; }
.asset-layout.has-render .asset-summary { grid-template-columns: 120px minmax(0, 1fr); }
.asset-layout.has-render .asset-columns { grid-template-columns: 1fr; }
.render-column { position: sticky; top: 0; min-width: 0; }
.render-panel { margin: 0; display: grid; grid-template-rows: 43px minmax(0, 1fr) auto; height: min(920px, calc(100vh - 120px)); min-height: 680px; }
.render-panel .panel-header .twin-status { margin-left: auto; }
.render-body { min-height: 0; display: grid; grid-template-rows: minmax(0, 3fr) minmax(0, 1fr); } /* render keeps ~3/4 of the column; part facts scroll below */
.render-mount { position: relative; min-height: 0; overflow: hidden; background: #e6eaf0; }
.part-live { position: fixed; z-index: 1; overflow: hidden; background: #e6eaf0; }
.part-live[hidden] { display: none; }
.part-detail { position: relative; z-index: 2; min-width: 0; min-height: 0; overflow-y: auto; border-top: 1px solid var(--border); }
.part-detail-body { display: grid; gap: 8px; align-content: start; padding: 12px; }
.part-detail-body .rail-heading { margin: 0; }
.part-detail-body .rail-actions { display: flex; flex-wrap: wrap; gap: 6px; }
.part-detail-body .section-note { margin: 0; }
.part-detail-body .key-grid dd { min-width: 0; overflow-wrap: anywhere; }
.render-note { margin: 0; padding: 6px 12px; border-top: 1px solid var(--border); color: var(--text-muted); font-size: 11px; }
@media (max-width: 1280px) { .asset-layout.has-render { grid-template-columns: minmax(280px, 320px) minmax(0, 1fr); } .render-panel { min-height: 640px; } }

.demo-disclosure { padding: 6px 16px; font-size: 11px; background: #eef0f3; color: #41464f; border-bottom: 1px solid #d9dde3; }

.demo-disclosure { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.utility-rail { top: 76px; }
.utility-rail.l2-report-rail { top: 0; left: 0; }
