/* admin-view-directory.css — layout for the UCR Directory + UCR detail views.
 * Zero literals: tokens/classes from admin-tokens.css + admin-components.css.
 * Scoped: .dir-* under #ucr-directory-view, .ucd-* under #ucr-detail-view. */

/* ── Directory toolbar ───────────────────────────────────────────────────── */

#ucr-directory-view .dir-toolbar { gap: var(--sp-3); }
#ucr-directory-view .dir-search { width: 280px; flex-shrink: 0; }
#ucr-directory-view .dir-toolbar > select { width: auto; min-width: 0; }
#ucr-directory-view .dir-toolbar > .sort-label { margin-left: auto; }
#ucr-directory-view .dir-toolbar > .sort-label strong { color: var(--ink); }

/* Chip tones when the filter is active (ISC-47: danger / warn) */
.chip-filter.dir-chip-danger[aria-pressed="true"] {
  background: var(--danger-bg);
  border-color: var(--danger-border);
  color: var(--danger-ink);
}
.chip-filter.dir-chip-warn[aria-pressed="true"],
.chip-filter.dir-chip-warn.has-count {
  background: var(--warn-bg);
  border-color: var(--warn-border);
  color: var(--warn-ink);
}
.chip-filter.dir-chip-danger[aria-pressed="true"],
.chip-filter.dir-chip-warn[aria-pressed="true"],
.chip-filter.dir-chip-warn.has-count { font-weight: 600; }

/* ── Directory table ─────────────────────────────────────────────────────── */

.dir-table-card table { table-layout: auto; }
.dir-table th { white-space: nowrap; }
.dir-table th .th-sort {
  border: 0;
  background: none;
  padding: 0;
  font: inherit;
  color: inherit;
  min-height: 0;
  letter-spacing: inherit;
  text-transform: inherit;
}
.dir-table th.is-sorted { color: var(--ink); }
.dir-table td { vertical-align: middle; }
.dir-table .dir-num { text-align: right; font-family: var(--font-mono); }
.dir-table .dir-num .th-sort { justify-self: end; }
.dir-table th.dir-num .th-sort { margin-left: auto; }
.dir-table td.dir-updated { text-align: right; white-space: nowrap; }
.dir-table th.dir-updated { text-align: right; }

/* Per-row "Run analysis": compact pill so the table stays dense. */
.dir-table td.dir-action { text-align: right; white-space: nowrap; }
.dir-run {
  min-height: var(--control-h-xs);
  padding: 0 var(--sp-3);
  border-radius: var(--r-pill);
  font-size: var(--fs-label);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.dir-run svg { width: 12px; height: 12px; }

.dir-brand { display: inline-flex; align-items: baseline; gap: var(--sp-2); min-width: 0; }
.dir-brand a { color: var(--ink); font-weight: 600; }
.dir-brand a:hover { color: var(--accent-deep); }
.dir-brand .dir-brand-sub {
  font-size: var(--fs-label);
  color: var(--ink-muted);
  overflow-wrap: anywhere;
}
.dir-brand .dir-brand-sub.mono { font-family: var(--font-mono); }

tr.dir-row { cursor: pointer; }
tr.dir-row:hover td { background: var(--surface-2); }
tr.dir-row:focus-visible { outline: none; }
tr.dir-row:focus-visible td { background: var(--surface-2); }
tr.dir-row.row-outlier:hover td { background: var(--warn-bg); }

.dir-count-warn {
  padding: 2px 8px;
  border-radius: var(--r-sm);
  background: var(--warn-bg);
  color: var(--warn-ink);
  font-weight: 500;
}
.dir-outlier-note { font-size: var(--fs-label); color: var(--warn-ink); }
.dir-checking { color: var(--ink-faint); }

/* ── Directory pager ─────────────────────────────────────────────────────── */

.dir-pager {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--fs-small);
  color: var(--ink-2);
}
.dir-pager-pages { display: flex; gap: 6px; align-items: center; }
.dir-pager-pages button {
  min-width: var(--control-h-sm);
  height: var(--control-h-sm);
  padding: 0 var(--sp-3);
  border-radius: var(--r-sm);
}
.dir-pager-pages button[aria-current="page"] {
  background: var(--ink);
  border-color: var(--ink);
  color: var(--white);
}
.dir-pager-ellipsis { padding: 0 var(--sp-1); color: var(--ink-muted); }

/* ── Detail: hide the legacy heading once the module owns the view ───────── */

#ucr-detail-view.ucd-on .ucr-detail-heading { display: none; }
#ucr-detail-view .ucr-detail-body { gap: var(--sp-6); }

/* ── Detail: breadcrumb ──────────────────────────────────────────────────── */

.ucd-breadcrumb {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
}
.ucd-breadcrumb .ucd-synced { margin-left: auto; }

/* ── Detail: header card ─────────────────────────────────────────────────── */

.ucd-head {
  padding: var(--sp-6) var(--sp-8);
  gap: var(--sp-5);
}
.ucd-head-top {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--sp-6);
}
.ucd-head-main { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.ucd-head-main h1 { font-size: 44px; line-height: 1; }
.ucd-chips {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.ucd-domain-link { font-size: var(--fs-item); font-weight: 500; }
.ucd-copy {
  width: var(--control-h-xs);
  height: var(--control-h-xs);
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--ink-2);
}
.ucd-sep { width: 1px; height: 18px; background: var(--border); }
.ucd-missing {
  border-radius: var(--r-pill);
  color: var(--warn-ink);
  border-color: var(--warn-border);
}
.ucd-missing:hover { background: var(--warn-bg); }
.ucd-dates { font-size: var(--fs-small); color: var(--ink-muted); }

.ucd-actions {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.ucd-actions .btn, .ucd-actions > button { min-height: 44px; border-radius: var(--r-lg); padding: 0 var(--sp-4); font-size: var(--fs-body); }
.ucd-actions-note {
  flex-basis: 100%;
  font-size: var(--fs-label);
  color: var(--ink-muted);
  text-align: right;
}
.ucd-actions-note.ucd-danger { color: var(--danger-ink); }
.ucd-menu-wrap { position: relative; }
.ucd-actions .ucd-icon-btn { width: 44px; padding: 0; display: inline-flex; align-items: center; justify-content: center; }
.ucd-icon-wrap { display: inline-flex; }
/* Long error text wraps instead of running off-screen. */
[data-tooltip].tooltip-open::after { white-space: normal; width: max-content; max-width: 280px; }

/* Lightweight tooltip: data-tooltip on any positioned control. */
[data-tooltip] { position: relative; }
[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  padding: 4px 8px;
  border-radius: var(--r-md, 6px);
  background: var(--ink);
  color: var(--paper);
  font-size: var(--fs-label);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transition: opacity 120ms ease;
  z-index: 40;
}
[data-tooltip]:hover::after,
[data-tooltip]:focus-visible::after,
[data-tooltip].tooltip-open::after { opacity: 1; }
.ucd-menu {
  position: absolute;
  top: calc(100% + var(--sp-1));
  right: 0;
  min-width: 200px;
  padding: var(--sp-1);
  background: var(--paper);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  box-shadow: var(--shadow-pop);
  z-index: 30;
  display: flex;
  flex-direction: column;
}
.ucd-menu button {
  border: 0;
  background: transparent;
  text-align: left;
  padding: 9px 10px;
  border-radius: var(--r-sm);
  font-size: var(--fs-small);
  color: var(--ink-2);
  min-height: 0;
}
.ucd-menu button:hover { background: var(--tint); }
.ucd-menu button:disabled { color: var(--ink-faint); }

/* ── Detail: status strip ────────────────────────────────────────────────── */

.ucd-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--sp-3);
}
.ucd-stat {
  padding: 14px var(--sp-4);
  border-radius: 14px;
  background: var(--surface-3);
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: var(--ink);
}
.ucd-stat.ucd-danger { background: var(--danger-bg); }
.ucd-stat.ucd-danger .stat-label { color: var(--danger-ink); }
.ucd-stat.ucd-danger .ucd-stat-value { color: var(--danger-ink); }
.ucd-stat.ucd-warn { background: var(--warn-bg); }
.ucd-stat.ucd-warn .stat-label { color: var(--warn-ink); }
.ucd-stat-value {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-item);
  font-weight: 600;
}
.ucd-stat-note { font-size: var(--fs-small); color: var(--ink-muted); }
.ucd-stat.ucd-danger .ucd-stat-note { color: var(--danger-ink-2); }
.ucd-dot-hollow {
  width: 8px; height: 8px;
  border-radius: var(--r-xs);
  border: 2px solid var(--ink-faint);
  box-sizing: border-box;
}

/* ── Detail: integrity checks ────────────────────────────────────────────── */

.ucd-checks { padding: 0; overflow: hidden; }
.ucd-checks-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: 22px var(--sp-8);
  border-bottom: 1px solid var(--tint-2);
}
.ucd-checks-head h2 { margin: 0; }
.ucd-checks-title { display: flex; align-items: baseline; gap: 14px; }
.ucd-checks-counters { display: flex; gap: var(--sp-2); align-items: center; }

.ucd-check {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr) 200px 120px;
  gap: var(--sp-5);
  align-items: center;
  padding: var(--sp-4) var(--sp-8);
  border-bottom: 1px solid var(--tint);
}
.ucd-check .sev { justify-self: start; }
.ucd-check .scope { justify-self: start; font-size: var(--fs-label); color: var(--ink-muted); }
.ucd-check .scope.systemic {
  padding: 4px 10px;
  border-radius: var(--r-pill);
  border: 1px solid var(--accent-border);
  color: var(--accent-deep);
  font-weight: 500;
}
.ucd-check .ucd-check-link { justify-self: end; font-size: var(--fs-small); font-weight: 600; }
.ucd-check-main { display: flex; flex-direction: column; gap: var(--sp-1); }
.ucd-check-title { font-size: var(--fs-item); font-weight: 600; }
.ucd-check-evidence { font-family: var(--font-mono); font-size: 12.5px; color: var(--ink-2); }

.sev-critical {
  padding: 4px 10px;
  border-radius: var(--r-sm);
  background: var(--danger-ink);
  color: var(--white);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.sev-warning {
  padding: 3px 9px;
  border-radius: var(--r-sm);
  border: 1px solid var(--warn-border);
  background: var(--warn-bg);
  color: var(--warn-ink);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.04em;
}
.sev-passed {
  padding: 3px 9px;
  border-radius: var(--r-sm);
  border: 1px solid var(--ok-border);
  background: var(--ok-bg);
  color: var(--ok-ink);
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.04em;
}

.ucd-checks-passed {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: 14px var(--sp-8);
  background: var(--surface-2);
  font-size: var(--fs-small);
  color: var(--ink-2);
}
.ucd-checks-passed strong { color: var(--ok-ink); }

/* ── Detail: section nav ─────────────────────────────────────────────────── */

.ucd-nav {
  display: flex;
  gap: var(--sp-1);
  padding: 6px;
  background: var(--tint-2);
  border-radius: 14px;
  align-self: flex-start;
  flex-wrap: wrap;
}
.ucd-nav a {
  padding: 10px var(--sp-4);
  border-radius: var(--r-md);
  font-size: var(--fs-body);
  color: var(--ink-2);
}
.ucd-nav a:hover { color: var(--ink); background: var(--paper); }

/* ── Detail: shared section chrome ───────────────────────────────────────── */

.ucd-card {
  padding: var(--sp-6) var(--sp-8);
  gap: var(--sp-5);
}
.ucd-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  flex-wrap: wrap;
}
.ucd-card-head h2 { margin: 0; font-size: 22px; }
.ucd-card-sub { font-size: var(--fs-small); color: var(--ink-muted); }
.ucd-two {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--sp-6);
}
.ucd-two-wide { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); }
.ucd-label {
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ink-muted);
}
.ucd-big { font-family: var(--font-display); font-size: 48px; font-weight: 700; line-height: 1; }
.ucd-mid { font-family: var(--font-display); font-size: 28px; font-weight: 700; line-height: 1.1; }

/* ── Detail: ECG ─────────────────────────────────────────────────────────── */

.ucd-ecg-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--sp-8);
}
.ucd-ecg-left {
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
  padding-right: var(--sp-8);
  border-right: 1px solid var(--tint-2);
}
.ucd-ecg-def { font-size: var(--fs-h3); line-height: 1.5; color: var(--ink-2); }
.ucd-ecg-dl {
  margin: 0;
  display: grid;
  grid-template-columns: 136px minmax(0, 1fr);
  column-gap: var(--sp-5);
}
.ucd-ecg-dl dt {
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--tint);
  font-size: var(--fs-small);
  font-weight: 600;
  color: var(--ink-2);
}
.ucd-ecg-dl dd {
  margin: 0;
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--tint);
  font-size: var(--fs-body);
  line-height: 1.5;
}
.ucd-ecg-dl dd.ucd-empty-cell { color: var(--ink-muted); font-style: italic; }
.ucd-ecg-dl > :last-child, .ucd-ecg-dl > :nth-last-child(2) { border-bottom: 0; }
.ucd-approved {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
  padding-top: var(--sp-5);
  border-top: 1px solid var(--tint-2);
}
.ucd-approved-head { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-4); }
.ucd-approved-warn { display: flex; align-items: center; gap: 6px; font-size: var(--fs-small); color: var(--warn-ink); }
.ucd-cat-list { display: flex; flex-wrap: wrap; gap: var(--sp-2); }
.ucd-cat {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-2);
  padding: 7px var(--sp-3);
  border-radius: var(--r-md);
  border: 1px solid var(--border);
  background: var(--surface-2);
  font-size: var(--fs-body);
}
#ucr-detail-view mark, .mark-warn {
  background: var(--warn-bg);
  color: var(--warn-ink);
  padding: 0 var(--sp-1);
  border-radius: var(--r-xs);
}
.ucd-empty-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding: 18px var(--sp-5);
  border: 1px dashed var(--border-strong);
  border-radius: 14px;
  background: var(--surface-2);
}
.ucd-empty-box .ucd-empty-title { font-size: var(--fs-item); font-weight: 600; }
.ucd-empty-box .ucd-empty-note { font-size: var(--fs-small); color: var(--ink-muted); }

/* ── Detail: classification table ────────────────────────────────────────── */

.ucd-cls-legend { display: flex; gap: 18px; font-size: var(--fs-small); color: var(--ink-2); }
.ucd-legend-key { display: inline-flex; align-items: center; gap: 6px; }
.ucd-legend-swatch { width: 12px; height: 12px; border-radius: var(--r-xs); }
.ucd-legend-swatch.core { background: var(--accent-strong); }
.ucd-legend-swatch.adjacent { background: var(--accent-soft); }
.ucd-legend-swatch.off { background: var(--border-soft); border: 1px solid var(--border-strong); box-sizing: border-box; }
.ucd-legend-swatch.none { background: var(--border-soft); border: 1px solid var(--border-strong); box-sizing: border-box; }
.ucd-legend-swatch.hatch {
  background: repeating-linear-gradient(135deg, var(--border-soft) 0 4px, var(--tint) 4px 8px);
}

.ucd-cls-table { width: 100%; border-collapse: collapse; font-size: var(--fs-body); }
.ucd-cls-table th {
  padding: 0 0 10px;
  font-size: var(--fs-label);
  font-weight: 600;
  letter-spacing: 0.06em;
  color: var(--ink-muted);
  text-align: left;
}
.ucd-cls-table td, .ucd-cls-table tbody th {
  padding: var(--sp-4) 0;
  border-top: 1px solid var(--tint-2);
}
.ucd-cls-table tbody th { text-align: left; font-weight: 600; }
.ucd-cls-table .num { text-align: right; font-family: var(--font-mono); font-size: var(--fs-item); }
.ucd-cls-table .num.total { font-weight: 500; }
.ucd-cls-table .num.warn { color: var(--warn-ink); font-weight: 500; }
.ucd-cls-table .num.bad { color: var(--danger-ink); font-weight: 500; }
.ucd-cls-table .not-computed {
  text-align: right;
  font-size: var(--fs-small);
  color: var(--ink-muted);
  font-style: italic;
}
.ucd-cls-dist { padding-left: var(--sp-8) !important; }
.ucd-cls-note { font-size: var(--fs-small); color: var(--ink-muted); }
.ucd-callouts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--sp-3); }

.bar-stack .fill-adjacent { background: var(--accent-soft); }
.bar-stack .fill-hatch {
  background: repeating-linear-gradient(135deg, var(--border-soft) 0 4px, var(--tint) 4px 8px);
}

/* ── Detail: keywords ────────────────────────────────────────────────────── */

.ucd-kw-hero { display: flex; align-items: baseline; gap: var(--sp-3); }
.ucd-kw-hero > span:not(.ucd-big) { font-size: var(--fs-body); color: var(--ink-2); }
.ucd-demand { display: flex; flex-direction: column; gap: var(--sp-3); }
.ucd-demand-row {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr) 72px;
  gap: var(--sp-3);
  align-items: center;
  font-size: var(--fs-body);
}
.ucd-demand-row > span:first-child { color: var(--ink-2); }
.ucd-demand-row .meta-mono { text-align: right; }
.ucd-track {
  height: 10px;
  border-radius: var(--r-xs);
  background: var(--tint);
  overflow: hidden;
}
.ucd-track i {
  display: block;
  height: 100%;
  width: var(--bar-pct, 0%);
  border-radius: var(--r-xs);
  background: var(--accent);
}
.ucd-foot-actions { display: flex; gap: 10px; margin-top: auto; flex-wrap: wrap; }
.ucd-expand { display: flex; flex-wrap: wrap; gap: var(--sp-2); }

/* ── Detail: competitors ─────────────────────────────────────────────────── */

.ucd-cells {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border: 1px solid var(--tint-2);
  border-radius: 14px;
  overflow: hidden;
}
.ucd-cell {
  padding: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  border-right: 1px solid var(--tint-2);
}
.ucd-cell:last-child { border-right: 0; }
.ucd-cell .ucd-cell-num { font-family: var(--font-display); font-size: 36px; font-weight: 700; line-height: 1; }
.ucd-cell .ucd-cell-note { font-size: var(--fs-small); color: var(--ink-2); }
.ucd-cell .ucd-cell-note.warn { color: var(--warn-ink); }
.ucd-cell.accent { background: var(--accent-bg); }
.ucd-cell.accent .stat-label, .ucd-cell.accent .ucd-cell-num { color: var(--accent-deep); }

/* ── Detail: modules ─────────────────────────────────────────────────────── */

.ucd-mod-hero { display: flex; align-items: flex-end; gap: 28px; }
.ucd-mod-bar-wrap { flex-grow: 1; display: flex; flex-direction: column; gap: var(--sp-2); padding-bottom: var(--sp-1); }
.ucd-mod-legend { display: flex; justify-content: space-between; font-size: var(--fs-small); color: var(--ink-2); }
.ucd-mod-families { display: flex; flex-direction: column; border-top: 1px solid var(--tint-2); }
.ucd-mod-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 200px 60px;
  gap: var(--sp-4);
  align-items: center;
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--tint);
  font-size: var(--fs-body);
}
.ucd-mod-row:last-child { border-bottom: 0; }
.ucd-mod-row .meta-mono { text-align: right; }
.ucd-mod-name { overflow-wrap: anywhere; }

/* ── Detail: governance ──────────────────────────────────────────────────── */

.ucd-stage {
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--tint);
}
.ucd-stage:last-of-type { border-bottom: 0; }
.ucd-stage .ucd-stage-name { flex-grow: 1; font-size: var(--fs-body); }
.ucd-stage .ucd-stage-state { font-size: var(--fs-small); color: var(--ok-ink); font-weight: 500; }
.ucd-stage .ucd-stage-state.bad { color: var(--danger-ink); }
.ucd-stage .ucd-stage-state.warn { color: var(--warn-ink); }
.ucd-stage .ucd-stage-state.muted { color: var(--ink-muted); font-weight: 400; }
.ucd-stage .meta-mono.bad { color: var(--danger-ink); }
.ucd-stage-icon {
  width: 24px; height: 24px;
  border-radius: var(--r-pill);
  background: var(--ok-bg);
  color: var(--ok-ink);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: var(--fs-label);
  font-weight: 700;
}
.ucd-stage-icon.bad { background: var(--danger-bg); color: var(--danger-ink); }
.ucd-stage-icon.warn { background: var(--warn-bg); color: var(--warn-ink); }
.ucd-stage-icon.muted { background: var(--tint-2); color: var(--ink-muted); }
.ucd-log-latest {
  padding: 14px var(--sp-4);
  border-radius: var(--r-lg);
  background: var(--surface-3);
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.ucd-log-latest .mono { font-size: 12.5px; color: var(--ink-2); }
.ucd-log-list { display: flex; flex-direction: column; gap: var(--sp-2); }
.ucd-log-event {
  font-family: var(--font-mono);
  font-size: var(--fs-label);
  color: var(--ink-2);
  display: flex;
  gap: var(--sp-2);
  flex-wrap: wrap;
}
.ucd-log-event.bad { color: var(--danger-ink); }
.ucd-log-event .ucd-log-phase { color: var(--ink-faint); }

/* ── Detail: misc ────────────────────────────────────────────────────────── */

.ucd-detail-error { color: var(--danger-ink); }

/* Module-rendered extras (admin-directory.js) */

/* Missing-field chips (".tag ucd-missing" for "Brand name missing",
 * ".chip-action ucd-missing" for "… missing · Enrich"): dashed warn outline. */
.ucd-missing { background: transparent; border-style: dashed; border-width: 1px; }

/* The Integrity stat is a link to #checks — keep it ink, hint on hover. */
a.ucd-stat:hover { color: var(--ink); }
a.ucd-stat:hover .ucd-stat-value { color: var(--accent-deep); }

/* ⋯ overflow trigger: square icon button in the 44px action row. */
.ucd-menu-wrap > button {
  width: 44px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* Flag line under the ECG primary category (industry mismatch etc.). */
.ucd-flag { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-small); color: var(--warn-ink); }
.ucd-flag.danger { color: var(--danger-ink); }

/* Classification table: label column fixed, numeric headers right-aligned. */
.ucd-cls-table thead th:first-child { width: 150px; }
.ucd-cls-table thead th.numh { width: 88px; text-align: right; }
.ucd-cls-table .ucd-dist { display: flex; align-items: center; gap: 10px; }
.ucd-cls-table .ucd-dist .bar-stack { flex-grow: 1; }
.ucd-dist-note { font-size: var(--fs-label); color: var(--warn-ink); white-space: nowrap; }

/* Expandable chip/module-id lists under the View/See toggles. */
.ucd-expand { padding-top: var(--sp-1); }
.ucd-cat.mono { font-family: var(--font-mono); font-size: var(--fs-label); }
.ucd-log-list { padding-top: var(--sp-1); }

/* Section footer actions match the 44px mockup controls. */
.ucd-foot-actions > * {
  min-height: 44px;
  border-radius: var(--r-lg);
  padding: 0 var(--sp-4);
  font-size: var(--fs-body);
}

@media (max-width: 1100px) {
  .ucd-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ucd-check { grid-template-columns: 104px minmax(0, 1fr); }
  .ucd-check .scope, .ucd-check .ucd-check-link { grid-column: 2; justify-self: start; }
  .ucd-ecg-grid, .ucd-two, .ucd-two-wide { grid-template-columns: minmax(0, 1fr); }
  .ucd-ecg-left { padding-right: 0; border-right: 0; }
  .ucd-callouts { grid-template-columns: minmax(0, 1fr); }
}

/* V21 / V23 report chips: each opens its report in a new tab. Outlined = the
   V23 has no stored copy yet and opens the live UCR Manager render. */
.dir-table .dir-report-chip { text-decoration: none; cursor: pointer; }
.dir-table .dir-report-chip:hover,
.dir-table .dir-report-chip:focus-visible { filter: brightness(.95); text-decoration: underline; }
.dir-table .dir-report-live { background: transparent; color: var(--accent-deep); box-shadow: inset 0 0 0 1px var(--accent-bg); }
