/* Administrare: mobile-first, colturi drepte, paleta din site.css */
body.admin {
  font-family: 'Outfit', sans-serif;
  background: var(--cream);
  color: var(--text);
  min-height: 100vh;
}

.admin-wrap {
  max-width: 960px;
  margin: 0 auto;
  padding: 24px 16px;
}

.admin-header {
  background: var(--paper);
  border-bottom: 1px solid var(--border);
}

.admin-header .admin-wrap {
  padding-top: 12px;
  padding-bottom: 12px;
}

.admin-header-inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.admin-brand {
  font-family: 'Cinzel', serif;
  font-weight: 600;
  letter-spacing: 0.08em;
  color: var(--crimson);
}

.admin-nav {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.admin-nav a {
  color: var(--text);
  text-decoration: none;
  font-size: 0.9rem;
}

.admin-nav a:hover {
  color: var(--crimson2);
}

.admin-user {
  color: var(--text2);
  font-size: 0.85rem;
  overflow-wrap: anywhere;
}

.inline-form {
  display: inline;
}

.admin-title {
  font-family: 'Cinzel', serif;
  font-weight: 600;
  font-size: 1.5rem;
  margin-bottom: 16px;
}

.admin-form {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 420px;
  margin-top: 16px;
}

.admin-form label {
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text2);
}

.admin-form input[type='email'],
.admin-form input[type='password'],
.admin-form input[type='text'] {
  width: 100%;
  padding: 12px;
  font: inherit;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--paper);
  color: var(--text);
}

.admin-form button {
  margin-top: 8px;
}

p + .alert {
  margin-top: 16px;
}

.alert {
  border-left: 3px solid var(--crimson);
  background: var(--crimson-pale);
  color: var(--crimson);
  padding: 12px 16px;
  margin: 0 0 16px;
  list-style: none;
  max-width: 420px;
}

.btn-primary,
.btn-outline {
  font-family: 'Outfit', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  border-radius: 0;
  padding: 12px 20px;
  cursor: pointer;
}

.btn-primary {
  background: var(--crimson);
  color: #fff;
  border: 1px solid var(--crimson);
}

.btn-primary:hover {
  background: var(--crimson2);
}

.btn-outline {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--text);
}

.admin-logout {
  padding: 8px 14px;
}

.table-scroll {
  overflow-x: auto;
}

/* Formular public de inscriere */
body.public-form {
  font-family: 'Outfit', sans-serif;
  background: var(--cream);
  color: var(--text);
  min-height: 100vh;
}

.form-wrap {
  max-width: 560px;
  margin: 0 auto;
  padding: 24px 16px;
}

.form-back {
  display: inline-block;
  margin-bottom: 16px;
  padding: 10px 0;
  color: var(--text2);
  text-decoration: none;
  font-size: 0.9rem;
}

.reg-form {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.reg-form label {
  display: block;
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text2);
}

.reg-form fieldset {
  display: flex;
  flex-direction: column;
  gap: 16px;
  border: 1px solid var(--border);
  background: var(--paper);
  padding: 16px;
  margin: 0;
  min-width: 0;
}

.reg-form legend {
  padding: 0 6px;
  background: var(--cream);
  font-family: 'Cinzel', serif;
  font-size: 0.95rem;
  color: var(--text);
}

.reg-form input:not([type='checkbox']),
.reg-form select {
  display: block;
  width: 100%;
  min-height: 44px;
  margin-top: 6px;
  padding: 10px 12px;
  font: inherit;
  font-size: 1rem;
  letter-spacing: normal;
  text-transform: none;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--paper);
  color: var(--text);
}

.reg-form label.check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  min-height: 44px;
  font-size: 0.9rem;
  letter-spacing: normal;
  text-transform: none;
}

.reg-form .check input {
  flex: 0 0 auto;
  width: 24px;
  height: 24px;
  margin: 2px 0 0;
}

.reg-form .check a {
  color: var(--crimson);
}

.reg-form button {
  min-height: 48px;
}

.hp {
  position: absolute;
  left: -9999px;
}

.form-errors {
  border-left: 3px solid var(--crimson);
  background: var(--crimson-pale);
  color: var(--crimson);
  padding: 12px 16px;
  margin: 0 0 16px;
}

.form-errors ul {
  margin: 0;
  padding-left: 18px;
}

.form-wrap .muted {
  margin-top: 24px;
  color: var(--text2);
  font-size: 0.9rem;
}

.form-wrap .muted a {
  color: var(--crimson);
  display: inline-block;
  padding: 10px 2px;
}

.form-wrap a.btn-outline {
  display: inline-block;
  text-decoration: none;
  min-height: 44px;
  line-height: 20px;
}

/* Inscrieri */
.muted { color: var(--text2); }

.flash-ok {
  border-left: 3px solid var(--sage);
  background: var(--sage-pale);
  color: var(--text);
  padding: 12px 16px;
  margin: 0 0 16px;
}

.status-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }

.status-filters a,
.back-link {
  display: inline-block;
  padding: 10px 14px;
  min-height: 44px;
  line-height: 24px;
  border: 1px solid var(--border);
  background: var(--paper);
  color: var(--text);
  text-decoration: none;
  font-size: 0.85rem;
}

.back-link { border: 0; background: none; padding-left: 0; }

.status-filters a.active { background: var(--text); border-color: var(--text); color: #fff; }

.status-filters .count {
  display: inline-block;
  min-width: 1.6em;
  padding: 0 6px;
  margin-left: 4px;
  text-align: center;
  font-size: 0.75rem;
  line-height: 1.6;
  background: var(--cream2);
  color: var(--text2);
}

.status-filters a.active .count { background: rgba(255, 255, 255, 0.2); color: #fff; }

.admin-table {
  width: 100%;
  min-width: 720px;
  border-collapse: collapse;
  background: var(--paper);
  font-size: 0.9rem;
}

.admin-table th,
.admin-table td {
  padding: 10px 12px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--border);
}

.admin-table th {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text2);
}

.admin-table a { color: var(--crimson); display: inline-block; padding: 6px 0; }

.badge {
  display: inline-block;
  padding: 3px 10px;
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.badge-noua { background: var(--gold-pale); color: var(--gold); }
.badge-acceptata { background: var(--sage-pale); color: var(--sage); }
.badge-refuzata { background: var(--crimson-pale); color: var(--crimson); }

.admin-subtitle {
  font-family: 'Cinzel', serif;
  font-weight: 600;
  font-size: 1.1rem;
  margin: 24px 0 8px;
}

.detail { display: grid; grid-template-columns: 1fr; gap: 2px 16px; margin: 16px 0; }

.detail dt {
  font-size: 0.75rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text2);
  margin-top: 10px;
}

.detail dd { margin: 0; overflow-wrap: anywhere; }

@media (min-width: 560px) {
  .detail { grid-template-columns: 180px 1fr; }
  .detail dt { margin-top: 0; padding: 6px 0; }
  .detail dd { padding: 6px 0; }
}

.admin-form select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  font: inherit;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--paper);
  color: var(--text);
}

.action-row { display: flex; flex-wrap: wrap; gap: 12px; }
.action-row form { margin: 0; }

.action-row button,
.action-row a.btn-outline,
.admin-form button { min-height: 44px; }

.action-row a.btn-outline { display: inline-block; text-decoration: none; line-height: 20px; }

.btn-sage {
  font-family: 'Outfit', sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  border-radius: 0;
  padding: 12px 20px;
  cursor: pointer;
  background: var(--sage);
  color: #fff;
  border: 1px solid var(--sage);
}

.btn-sage:hover { background: var(--sage2); }

.danger-zone { margin-top: 32px; }
.danger-zone a { display: inline-block; padding: 10px 0; color: var(--crimson); }

/* Orar admin */
a.btn-primary.add-slot { display: inline-block; text-decoration: none; margin-bottom: 8px; }
button.btn-primary.add-slot:disabled { opacity: 0.45; cursor: not-allowed; margin-bottom: 8px; }
.row-inactive { opacity: 0.6; }
.admin-form input[type="time"],
.admin-form input[type="text"] {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  font: inherit;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--paper);
  color: var(--text);
}
.admin-form label { display: block; margin-top: 12px; }
.admin-form label.check { display: flex; align-items: center; gap: 8px; }
.admin-form label.check input { width: 20px; height: 20px; }
.alert ul { margin: 0; padding-left: 18px; }
.action-row a.btn-outline { padding: 12px 20px; color: var(--text); display: inline-flex; align-items: center; box-sizing: border-box; }

/* grupuri de bife în formulare de admin (discipline predate) */
.admin-form fieldset.check-group {
  border: 1px solid var(--border);
  margin: 16px 0 0;
  padding: 8px 12px 12px;
}
.admin-form fieldset.check-group legend { padding: 0 6px; }

.rules {
  --info: #2c5f8a;      /* ton informativ doar pentru admin (nu face parte din paleta site-ului) */
  --info-pale: #e8f0f7;
  margin: 0 0 20px;
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold);
  background: var(--paper);
  font-size: 0.85rem;
  color: var(--text2);
}
.rules summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 8px 16px;
  cursor: pointer;
  list-style: none;
}
.rules summary::-webkit-details-marker { display: none; }
.rules-title { color: var(--text); font-size: 0.8rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; }
.rules-toggle { flex: none; color: var(--info); font-size: 0.72rem; font-weight: 500; white-space: nowrap; }
.rules-hint-open,
.rules-hint-close {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  border: 1px solid transparent;
}
.rules-icon { flex: none; width: 14px; height: 14px; }
.rules details:not([open]) .rules-hint-close,
.rules details[open] .rules-hint-open { display: none; }
.rules summary:hover .rules-hint-open,
.rules summary:hover .rules-hint-close { background: var(--info-pale); border-color: rgba(44, 95, 138, 0.3); }
.rules summary:focus-visible { outline: 2px solid var(--info); outline-offset: -2px; }
.rules ul { margin: 0; padding: 0 16px 12px 34px; }
.rules li { margin: 4px 0; }

.filter-note, .registrations-info { margin: 0 0 16px; font-size: 0.9rem; }

.admin-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid var(--border);
  background: var(--paper);
  color: var(--text);
  font: inherit;
  font-size: 0.95rem;
  line-height: 1.5;
}

.admin-form fieldset.mode-choice { margin-bottom: 20px; }
.admin-form input[type='email'] { box-sizing: border-box; }

#add-students { max-width: none; }
#add-students #mode-one { max-width: 420px; }

.action-note { margin: 8px 0 0; font-size: 0.9rem; }

/* butoane mici, pe un singur rând, în toate tabelele de admin (grupe, instructori) */
.admin-table .action-row { flex-wrap: nowrap; gap: 6px; }
.admin-table .action-row button,
.admin-table .action-row a.btn-outline {
  min-height: 30px;
  padding: 5px 9px;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  white-space: nowrap;
}

/* Căutare și filtre în lista de înscrieri (ADR 0029) */
.registrations-filter { display: flex; flex-direction: column; gap: 10px; margin: 0 0 16px; }
.registrations-filter .field { display: flex; flex-direction: column; gap: 4px; }
.registrations-filter label { font-size: 0.8rem; color: var(--text2); }
.registrations-filter input[type='search'],
.registrations-filter select {
  width: 100%;
  height: 44px;
  padding: 0 12px;
  box-sizing: border-box;
  font: inherit;
  line-height: 1.2;
  border: 1px solid var(--border);
  border-radius: 0;
  background: var(--paper);
  color: var(--text);
}
.registrations-filter .field-actions { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 12px; }
.registrations-filter .field-actions button,
.registrations-filter .field-actions a.btn-outline { min-height: 44px; padding: 10px 18px; box-sizing: border-box; display: inline-flex; align-items: center; text-decoration: none; }
.registrations-filter .field-actions a.btn-outline { color: var(--text); }
.admin-table th { vertical-align: bottom; }
.admin-table th .sort-link { color: inherit; text-decoration: none; white-space: nowrap; padding: 0; }
.sort-link:hover { text-decoration: underline; }

@media (min-width: 861px) {
  .registrations-filter { flex-direction: row; flex-wrap: wrap; align-items: flex-end; }
  .registrations-filter .field-search { flex: 1 1 240px; }
  .registrations-filter .field:not(.field-search):not(.field-actions) { flex: 0 1 170px; }
  .registrations-filter .field-search { flex: 1 1 200px; }
}
