/* dashboard.css: the governance overview.
 *
 * Reuses app.css's panel/kpi/split chrome so this reads as the same console.
 * Only the parts app.css has no vocabulary for live here: the refusal
 * breakdown bars, list rows, and the empty/error note.
 */

.dash-note {
  padding: 1rem 1.1rem;
  color: #5b6472;
  font-size: 0.9rem;
}

.dash-cta { padding: 0 1.1rem 1.1rem; }

/* ---- Stat row ---------------------------------------------------- */

/* The gate's two stats arrive together and must not reflow the row when
 * they land, so their slot is a contents-level wrapper. */
.kpi-slot-pair { display: contents; }
.kpi-slot { display: contents; }

.kpi-hint {
  font-size: 0.72rem;
  color: #8b95a3;
  margin-top: 0.15rem;
}

/* ---- Refusal breakdown ------------------------------------------- */

.dash-reasons { padding: 0.85rem 1.1rem 1.1rem; }

.dash-reason + .dash-reason {
  margin-top: 0.9rem;
  padding-top: 0.9rem;
  border-top: 1px solid #f0f3f7;
}

.dash-reason-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
}

.dash-reason-label { font-weight: 500; font-size: 0.92rem; }

.dash-reason-count {
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.9rem;
  color: #3d4652;
}

.dash-bar {
  height: 6px;
  border-radius: 3px;
  background: #eef1f5;
  margin: 0.45rem 0 0.35rem;
  overflow: hidden;
}

.dash-bar-fill {
  height: 100%;
  border-radius: 3px;
  background: #a01818;
  min-width: 2px;
}

.dash-reason-hint { font-size: 0.8rem; color: #5b6472; }

/* ---- List rows --------------------------------------------------- */

.dash-row {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  padding: 0.6rem 1.1rem;
  border-top: 1px solid #f0f3f7;
}

.dash-row:first-child { border-top: none; }

/* A linked row must not read as body text with a blue underline: it keeps
   the row's own type and earns a hover instead. */
a.dash-row-link {
  color: inherit;
  text-decoration: none;
}

a.dash-row-link:hover,
a.dash-row-link:focus-visible {
  background: #f6f8fb;
}

.dash-row-main { flex: 1; min-width: 0; }

.dash-row-primary {
  font-size: 0.9rem;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.dash-row-secondary {
  font-size: 0.78rem;
  color: #5b6472;
  margin-top: 0.1rem;
  overflow-wrap: anywhere;
}

.dash-tag {
  flex: none;
  font-family: "IBM Plex Mono", ui-monospace, monospace;
  font-size: 0.7rem;
  text-transform: lowercase;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  background: #eef1f5;
  color: #3d4652;
}

.dash-tag.ok { background: #e7f4ec; color: #1a6b3a; }
.dash-tag.warn { background: #fdf5e6; color: #8a5a00; }
.dash-tag.danger { background: #fdeaea; color: #a01818; }
