/* The /admin section: wider shell, dense tables, small badges.
   Loaded before application.css (Propshaft sorts alphabetically), so every
   rule here that reshapes a shared component is written to out-specify it. */

.shell.wide { max-width: 900px; }

.stats.four { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 520px) {
  .stats.four { grid-template-columns: repeat(2, 1fr); }
}

.adminsplit { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 640px) {
  .adminsplit { grid-template-columns: 1fr; }
}

/* Roster and exercise tables read as data, not as prose: the first column is
   the label you scan, so it keeps full contrast. */
table.data.roster td:first-child { color: var(--ink); }
table.data td a { color: var(--accent); text-decoration: none; }
table.data td.dim, table.data .dim { color: var(--muted); }

.kind {
  display: inline-block;
  padding: 1px 6px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #fff;
  vertical-align: 1px;
}
.kind.lift   { background: var(--lift); }
.kind.cardio { background: var(--cardio); }
.kind.admin  { background: var(--ink); }

/* One row of the weekly table, drawn to scale — the shape of the week beside
   its numbers, so a quiet stretch is visible without reading every cell. */
th.barcol, td.barcol { width: 30%; text-align: left; padding-left: 10px; }
.barcol i {
  display: inline-block;
  height: 8px;
  border-radius: 2px;
  vertical-align: middle;
}
.barcol .bar-l { background: var(--lift); }
.barcol .bar-c { background: var(--cardio); }
.barcol .bar-w { background: var(--accent); }

.adminsearch { display: flex; gap: 8px; margin-bottom: 14px; }
.adminsearch input[type="search"] {
  flex: 1;
  min-width: 0;
  padding: 8px 10px;
  font: inherit;
  font-size: 14px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
}
.adminsearch .btn { width: auto; flex: 0 0 auto; }

.adminactions { display: flex; gap: 8px; padding: 6px 0 8px; }
.card.danger { border-color: #f2d2d2; }

.card .daygroup:first-of-type { margin-top: 4px; }

/* The activity feed reuses the log's entry row, but nothing here is editable —
   the right-hand slot carries when it was logged instead. */
.entry .edit.dim { color: var(--muted); font-variant-numeric: tabular-nums; }
