/* Panel de fundadores. Todo cuelga de body.admin para no tocar la landing. */
.admin-bar { border-bottom: 1px solid var(--border); }
.admin-bar-inner { display: flex; align-items: center; justify-content: space-between; height: 56px; }
.admin-bar-tag {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0;
  color: var(--graphite);
}

/* `.admin` delante: .wrap define padding y, según el orden de carga, lo pisaría. */
.admin .admin-main { padding-block: 48px 96px; max-width: 1140px; }
.admin-head { display: flex; gap: 24px; align-items: flex-end; justify-content: space-between; margin-bottom: 32px; }
.admin-title { font-size: clamp(26px, 3vw, 34px); margin: 0 0 10px; }
.admin-lede, .admin-empty { color: var(--graphite); margin: 0; }
.admin-flash {
  border: 0; background: var(--ocre-claro);
  border-radius: 8px; padding: 10px 14px; margin: 0 0 28px; color: var(--chalk); max-width: none;
}

.admin-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.admin-table th {
  text-align: left; font-family: var(--mono); font-size: 11px; letter-spacing: 0;
  color: var(--graphite); font-weight: 500;
  padding: 0 12px 10px; border-bottom: 1px solid var(--border);
}
.admin-table td { padding: 14px 12px; border-bottom: 1px solid var(--border); vertical-align: middle; }
.admin-table tr.is-off td { color: var(--graphite); }
.admin-num { font-family: var(--mono); color: var(--graphite); width: 60px; }
.admin-url { max-width: 280px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-url a { color: var(--text-soft); }
.admin-actions { display: flex; gap: 16px; align-items: center; justify-content: flex-end; }
.admin-actions form { margin: 0; }
.admin-danger {
  background: none; border: 0; padding: 0; cursor: pointer;
  font: inherit; color: var(--red);
}

.admin-form { display: grid; gap: 20px; max-width: 560px; margin-top: 28px; }
.admin-form label { display: grid; gap: 8px; }
.admin-form label > span { font-size: 14px; color: var(--text-soft); }
.admin-form label em { color: var(--graphite); font-style: normal; }
.admin-form input[type="text"],
.admin-form input[type="url"],
.admin-form input[type="number"],
.admin-form input[type="email"],
.admin-form input[type="password"],
.admin-form select,
.admin-form textarea,
.admin-filters input[type="search"],
.admin-filters select {
  font: inherit; color: var(--chalk); background: var(--surface);
  border: 1px solid var(--border); border-radius: 8px; padding: 11px 13px;
}
.admin-form input:focus-visible { outline: 2px solid var(--reactor); outline-offset: 1px; }
.admin-row { display: flex; gap: 20px; align-items: flex-end; flex-wrap: wrap; }
.admin-row input[type="number"] { width: 100px; }
.admin-form .admin-check { display: flex; gap: 10px; align-items: center; padding-bottom: 12px; }
.admin-errors {
  border: 1px solid rgba(230, 48, 59, 0.5); background: rgba(230, 48, 59, 0.08);
  border-radius: 8px; padding: 12px 14px;
}
.admin-errors p { margin: 0; color: #ffb4b8; }

.admin-nav { display: flex; gap: 20px; align-items: center; font-size: 14px; }
.admin-nav a { color: var(--text-soft); }

/* Reportes de la app */
.admin-filters { display: flex; gap: 12px; align-items: center; margin-bottom: 24px; }
.admin-filters input[type="search"] { flex: 1; }
.admin-message { font-size: 17px; line-height: 1.6; margin: 0 0 32px; max-width: 70ch; }

/* Entrar y cambiar contraseña: formulario estrecho (sin pisar el general). */
.admin-form-narrow { max-width: 360px; }
.admin-form .btn { justify-self: start; }
.admin-form textarea { line-height: 1.5; resize: vertical; }
.admin-flash-alert { background: var(--border); color: var(--text); }
.admin-link { background: none; border: 0; padding: 0; font: inherit; color: var(--text-soft); cursor: pointer; }

/* Completar un reporte */
.admin-badge {
  display: inline-block; font-family: var(--mono); font-size: 11px;
  border: 1px solid var(--border); border-radius: 999px; padding: 2px 8px; color: var(--text-soft);
}
.admin-badge.is-done { color: var(--graphite); }
.admin-quick { display: flex; gap: 12px; flex-wrap: wrap; margin: 0 0 32px; }
.admin-original { color: var(--graphite); font-size: 14px; margin: -20px 0 32px; }
.admin-original summary { cursor: pointer; }

/* Lista de espera: el número, y en el color de la marca los reservados (1–10). */
.signup-num { font-weight: 600; color: var(--tinta-suave); }
.signup-num.is-reserved { color: var(--marca); }
.admin-head .admin-actions { display: flex; gap: 10px; flex-shrink: 0; }
.admin-head .admin-actions .btn { white-space: nowrap; }
/* Invitaciones */
.admin-subtitle { font-size: 22px; margin: 56px 0 16px; }
.admin-sub { color: var(--graphite); font-size: 13px; }
.admin-badge.invite-downloaded { color: var(--hecho-texto); border-color: currentColor; }
.admin-badge.invite-opened { color: var(--adelante-texto); border-color: currentColor; }
.admin-badge.invite-not_sent { color: var(--cuidado-texto); border-color: currentColor; }

/* Botón pequeño, para las filas de una tabla (Invitar en la lista de espera). */
.btn-sm { padding: 7px 14px; font-size: 13.5px; }
.admin-actions form { margin: 0; }
.admin-actions .admin-link, .admin-actions a, .admin-num { white-space: nowrap; }
.course-summary { margin: 0 0 14px; font-weight: 600; }
