/* Page: delegation (owned by the delegation page module) */
/* The delegation advisor's operator page: requests, simulator, backtests and
   health tabs, their result tables and the drawers they open. Drawers are
   appended to <body>, so the drawer rules are scoped to .delegation-*
   classes, not to .page-delegation. Tokens come from tokens.css. */

.page-delegation {
  display: flex;
  flex-direction: column;
  gap: var(--sp-5);
}

.page-delegation .delegation-banners {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.page-delegation .delegation-banners:empty {
  display: none;
}

/* ---- filters, pager, forms ---- */
.page-delegation .delegation-filters {
  align-items: flex-end;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4) 0;
}

.delegation-inline-field {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--sp-2);
  margin: 0;
}

.delegation-inline-field .field-label {
  margin: 0;
  white-space: nowrap;
}

.delegation-inline-field .field-hint,
.delegation-inline-field .field-error:empty {
  display: none;
}

.page-delegation .delegation-pager {
  padding: 0 var(--sp-4) var(--sp-3);
}

.page-delegation .delegation-form {
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.page-delegation .delegation-status {
  min-height: 24px;
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-12);
  flex: 1 1 auto;
  min-width: 0;
  justify-content: flex-end;
}

.page-delegation .delegation-result {
  border-top: 1px solid var(--border);
  padding-top: var(--sp-4);
}

/* ---- summary strip ---- */
.delegation-summary {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-3) var(--sp-5);
  padding: var(--sp-3) var(--sp-4);
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
}

.delegation-summary > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.delegation-summary dt {
  font-size: var(--fs-12);
  color: var(--muted);
}

.delegation-summary dd {
  margin: 0;
  font-size: var(--fs-16);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.delegation-freshness {
  margin: 0;
}

/* ---- severity: icon + text label, colour only as a third cue ---- */
.delegation-findings {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-1);
  align-items: center;
}

.delegation-finding,
.delegation-count,
.delegation-sev,
.delegation-code {
  font-family: var(--font-mono);
  font-size: var(--fs-12);
  gap: 4px;
}

.delegation-sev,
.delegation-count {
  font-family: var(--font-sans);
}

.delegation-sev-icon.sev-block { color: var(--critical); }
.delegation-sev-icon.sev-warning { color: var(--warning-text, var(--warning)); }
.delegation-sev-icon.sev-info { color: var(--muted); }

.delegation-legend {
  gap: var(--sp-2) var(--sp-5);
  padding: var(--sp-3) var(--sp-4) 0;
}

/* ---- table cells ---- */
.delegation-match,
.delegation-official {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
}

.delegation-teams,
.delegation-official-name {
  font-weight: 600;
}

.delegation-role {
  white-space: nowrap;
}

td.delegation-message {
  white-space: normal;
  min-width: 260px;
  max-width: 64ch;
  line-height: 1.4;
}

.delegation-slots td,
.delegation-candidates td,
.delegation-blocked td {
  vertical-align: top;
}

.delegation-slots td.actions {
  width: 1%;
  white-space: nowrap;
}

/* ---- nested cards ---- */
.delegation-subcard {
  background: var(--surface);
}

.delegation-subcard .card-header {
  padding-top: var(--sp-3);
  padding-bottom: var(--sp-3);
}

.delegation-subcard .card-title {
  font-size: var(--fs-14);
}

.delegation-candidates-head {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}

.delegation-meta {
  margin: 0;
}

/* ---- health tab ---- */
.page-delegation .delegation-health-grid {
  display: grid;
  gap: var(--sp-5);
  grid-template-columns: 1fr;
  align-items: start;
}

@media (min-width: 1280px) {
  .page-delegation .delegation-health-grid {
    grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
  }
}

.page-delegation .delegation-catalogue:empty {
  display: none;
}

/* ---- raw JSON ---- */
.delegation-raw {
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  padding: var(--sp-2) var(--sp-3);
}

.delegation-raw > summary {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  cursor: pointer;
  list-style: none;
  font-weight: 600;
  font-size: var(--fs-14);
  padding: var(--sp-1) 0;
}

.delegation-raw > summary::-webkit-details-marker {
  display: none;
}

.delegation-raw > summary:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-control);
}

.delegation-raw-chevron {
  transition: transform var(--ease);
}

.delegation-raw[open] .delegation-raw-chevron {
  transform: rotate(90deg);
}

.delegation-raw .json-view {
  margin-top: var(--sp-2);
  max-height: 480px;
  overflow: auto;
}

@media (prefers-reduced-motion: reduce) {
  .delegation-raw-chevron {
    transition: none;
  }
}

/* ---- narrow screens ---- */
@media (max-width: 720px) {
  .delegation-summary {
    gap: var(--sp-2) var(--sp-4);
  }

  .delegation-summary dd {
    font-size: var(--fs-14);
  }

  td.delegation-message {
    min-width: 200px;
  }

  .page-delegation .delegation-status {
    justify-content: flex-start;
  }
}

/* ---- numbers and times never wrap ---- */
.delegation-requests td.num,
.delegation-requests td:first-child,
.delegation-slots td:first-child,
.delegation-candidates td.num,
.delegation-backtests td:first-child,
.delegation-backtests td:nth-child(2),
.delegation-backtests td.num {
  white-space: nowrap;
}

/* ---- findings overview, metrics ---- */
.delegation-code-overview {
  padding: var(--sp-3) var(--sp-4) 0;
}

.delegation-strong {
  font-weight: 600;
}

.delegation-metrics td.num,
.delegation-weeks td.num,
.delegation-weeks td:first-child {
  white-space: nowrap;
}

.delegation-notes {
  margin: 0;
  padding-left: var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  color: var(--muted);
  font-size: var(--fs-12);
}

.delegation-metrics td {
  vertical-align: top;
}

td.delegation-codes-cell {
  min-width: 220px;
}

/* ---- simulator: check and propose action groups ---- */
.page-delegation .delegation-actions {
  display: grid;
  gap: var(--sp-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
}

@media (max-width: 900px) {
  .page-delegation .delegation-actions {
    grid-template-columns: 1fr;
  }
}

.page-delegation .delegation-action {
  margin: 0;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: var(--radius-card);
  padding: var(--sp-3) var(--sp-4) var(--sp-4);
  display: flex;
  flex-direction: column;
  gap: var(--sp-3);
}

.page-delegation .delegation-action > legend {
  padding: 0 var(--sp-1);
  font-weight: 600;
  font-size: var(--fs-14);
}

/* ---- proposal table ---- */
.delegation-compare {
  font-size: var(--fs-12);
  gap: 4px;
}

.delegation-alternatives > summary {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-1);
  cursor: pointer;
  list-style: none;
  white-space: nowrap;
  font-size: var(--fs-12);
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.delegation-alternatives > summary::-webkit-details-marker {
  display: none;
}

.delegation-alternatives > summary:focus-visible {
  outline: none;
  box-shadow: var(--focus-ring);
  border-radius: var(--radius-control);
}

.delegation-alternatives[open] .delegation-raw-chevron {
  transform: rotate(90deg);
}

.delegation-alternatives-body {
  display: flex;
  flex-direction: column;
  gap: var(--sp-2);
  margin-top: var(--sp-2);
  min-width: 520px;
}

.delegation-parts {
  gap: var(--sp-1) var(--sp-4);
}

td.delegation-figures {
  white-space: normal;
  min-width: 220px;
}
