/* ==========================================================================
   console.css — administration des recrutements
   Dépend de ui.css. Interface outil : dense, alignée, sans décor.
   Le thème suit le projet actif (body.admin-project-ng / admin-project-gf).
   ========================================================================== */

.admin-body { min-height: 100vh; font-size: 14px; }
.admin-body .country-line { position: sticky; top: 0; z-index: 30; }

/* Verrouillage : rien n'est visible avant validation serveur */
.admin-body #adminApp:not(.show) { display: none !important; }
html.admin-auth-locked .admin-body #adminApp { display: none !important; }
html.admin-auth-locked #adminProjectPicker { display: none !important; }
html.admin-authenticated .admin-body #loginView { display: none !important; }

/* En-tête ---------------------------------------------------------------- */
.admin-header {
  position: sticky; top: 3px; z-index: 20;
  display: flex; align-items: center; gap: var(--s4);
  min-height: 56px; padding: 0 var(--s5);
  border-bottom: 1px solid var(--line);
  background: var(--bg);
}
.admin-header .brand { display: flex; align-items: center; gap: var(--s3); min-width: 0; text-decoration: none; margin-right: auto; }
.admin-header .brand-logo {
  width: 40px; height: 28px; object-fit: cover; flex: none;
  border-radius: var(--r-sm); box-shadow: 0 0 0 1px var(--line-strong);
}
.admin-header .brand-logo.project-paladium-logo { width: 28px; }
.admin-header .brand-text { display: grid; gap: 1px; line-height: 1.15; }
.admin-header .brand-text strong { font-size: var(--t-md); font-weight: 700; }
.admin-header .brand-text small { font-size: var(--t-xs); color: var(--text-3); }

.project-picker { display: flex; align-items: center; gap: var(--s3); }
.project-picker.single-project { display: none; }
.project-picker-label { display: none; }
.project-picker-buttons { display: flex; gap: 2px; padding: 2px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--surface); }
.project-choice {
  display: flex; align-items: center; gap: var(--s2);
  min-height: 32px; padding: 0 var(--s3) 0 var(--s2);
  border: 0; border-radius: var(--r-sm); background: transparent;
  color: var(--text-2); text-align: left;
}
.project-choice:hover { background: var(--surface-2); color: var(--text); }
.project-choice img { width: 22px; height: 16px; object-fit: cover; border-radius: 3px; }
.project-choice.gf img { width: 16px; height: 16px; }
.project-choice span { display: grid; line-height: 1.1; }
.project-choice strong { font-size: var(--t-sm); font-weight: 600; }
.project-choice small { display: none; }
.project-choice.active { background: var(--surface-3); color: var(--text); box-shadow: inset 0 -2px 0 var(--accent); }

.admin-title { display: flex; align-items: center; gap: var(--s2); padding-left: var(--s4); border-left: 1px solid var(--line); }
.admin-title-icon { color: var(--text-3); }
.admin-title > div { display: grid; line-height: 1.2; }
.admin-title b { font-size: var(--t-sm); font-weight: 600; }
.admin-title span { font-size: var(--t-xs); color: var(--text-3); }

/* Espace de travail ------------------------------------------------------ */
.admin-workspace { display: grid; grid-template-columns: 200px minmax(0, 1fr); min-height: calc(100vh - 59px); }
.admin-side {
  position: sticky; top: 59px; align-self: start;
  display: flex; flex-direction: column; justify-content: space-between; gap: var(--s5);
  height: calc(100vh - 59px);
  padding: var(--s4) var(--s3);
  border-right: 1px solid var(--line);
}
.admin-tabs, .admin-side-foot { display: grid; gap: 2px; }
.admin-tab {
  display: flex; align-items: center; gap: var(--s3);
  width: 100%; min-height: 36px; padding: 0 var(--s3);
  border: 0; border-radius: var(--r-sm); background: transparent;
  color: var(--text-2); font-size: var(--t-sm); font-weight: 500; text-align: left;
}
.admin-tab .bi { width: 16px; font-size: 15px; color: var(--text-3); }
.admin-tab:hover { background: var(--surface-2); color: var(--text); }
.admin-tab.active { background: var(--surface-2); color: var(--text); font-weight: 600; box-shadow: inset 2px 0 0 var(--accent); }
.admin-tab.active .bi { color: var(--text); }
.logout-tab { color: var(--text-3); }

.admin-content { min-width: 0; padding: var(--s6) var(--s7) var(--s9); }
.admin-content-header { display: flex; align-items: center; gap: var(--s3); margin-bottom: var(--s5); }
.admin-content-header h1 { display: flex; align-items: center; gap: var(--s3); font-size: var(--t-2xl); font-weight: 700; letter-spacing: -.025em; }
.admin-project-badge { font-size: var(--t-sm); font-weight: 500; letter-spacing: 0; color: var(--text-3); }
.form-editor { display: none; }
.form-editor.show { display: block; }

/* Messages */
.admin-message { font-size: var(--t-sm); color: var(--text-3); }
.admin-message:empty { display: none; }
.error-text { color: var(--bad) !important; }
.empty, .empty-state { display: grid; justify-items: center; gap: var(--s2); padding: var(--s8) var(--s4); color: var(--text-3); text-align: center; font-size: var(--t-sm); }
.empty-state strong { color: var(--text-2); font-size: var(--t-md); font-weight: 600; }
.empty-state .bi, .empty .bi { font-size: 20px; }

/* Candidatures : liste + détail ----------------------------------------- */
.admin-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: var(--s5); align-items: start; }
.candidate-list {
  position: sticky; top: calc(59px + var(--s6));
  display: grid; align-content: start;
  max-height: calc(100vh - 59px - var(--s6) * 2);
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface);
  overflow: hidden;
}
.candidate-list-head { display: none; }
.filter-row { display: grid; grid-template-columns: repeat(4, auto); gap: 2px; padding: var(--s2); border-bottom: 1px solid var(--line); }
.filter-btn {
  min-height: 30px; padding: 0 var(--s2);
  border: 0; border-radius: var(--r-sm); background: transparent;
  color: var(--text-3); font-size: var(--t-xs); font-weight: 600; white-space: nowrap;
}
.filter-btn:hover { color: var(--text); background: var(--surface-2); }
.filter-btn.active { color: var(--text); background: var(--surface-3); }
#candidateRows { overflow-y: auto; }
.candidate-row {
  display: grid; gap: var(--s1);
  width: 100%; padding: var(--s3) var(--s4);
  border: 0; border-bottom: 1px solid var(--line); background: transparent;
  text-align: left; color: var(--text);
}
.candidate-row:last-child { border-bottom: 0; }
.candidate-row:hover { background: var(--surface-2); }
.candidate-row.active { background: var(--surface-3); box-shadow: inset 2px 0 0 var(--accent); }
.candidate-row-top { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.candidate-row-top strong { font-size: var(--t-md); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.candidate-row small { display: flex; align-items: center; gap: 6px; font-size: var(--t-xs); color: var(--text-3); font-variant-numeric: tabular-nums; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.candidate-detail {
  min-width: 0;
  border: 1px solid var(--line); border-radius: var(--r-lg);
  background: var(--surface);
}
.candidate-detail > * { padding-inline: var(--s6); }
.candidate-detail > .empty-state { padding: var(--s10) var(--s6); }
.detail-head {
  display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); flex-wrap: wrap;
  padding-block: var(--s5);
  border-bottom: 1px solid var(--line);
}
.detail-head-main { display: grid; gap: var(--s2); min-width: 0; }
.detail-identity { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2) var(--s4); }
.detail-identity h2, .detail-head h2 { font-size: var(--t-2xl); font-weight: 700; letter-spacing: -.025em; }
.detail-head p { font-size: var(--t-sm); color: var(--text-3); overflow-wrap: anywhere; }
.detail-head > div:first-child:not(.detail-head-main) { display: grid; gap: var(--s2); }
.detail-actions { display: flex; flex-wrap: wrap; gap: var(--s2); }
.detail-actions .btn { min-height: 38px; font-size: var(--t-sm); }

.candidate-snapshot { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding: 0 !important; border-bottom: 1px solid var(--line); }
.snapshot-item { display: grid; gap: var(--s1); align-content: start; padding: var(--s4) var(--s6); border-right: 1px solid var(--line); min-width: 0; }
.snapshot-item:last-child { border-right: 0; }
.snapshot-item span { font-size: var(--t-sm); color: var(--text-3); }
.snapshot-item strong { font-size: var(--t-md); font-weight: 600; line-height: 1.35; overflow-wrap: anywhere; }

.priority-section { display: grid; gap: var(--s3); padding-block: var(--s5); border-bottom: 1px solid var(--line); }
.priority-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5); }
.priority-answer { display: grid; gap: var(--s2); align-content: start; }
.priority-answer label { font-size: var(--t-sm); font-weight: 600; color: var(--text-2); }
.priority-answer p { font-size: var(--t-md); line-height: 1.6; white-space: pre-wrap; overflow-wrap: anywhere; }
.candidate-checks { display: flex; flex-wrap: wrap; gap: var(--s2) var(--s5); }
.check-chip { display: inline-flex; gap: 6px; font-size: var(--t-sm); color: var(--text-3); }
.check-chip strong { color: var(--text); font-weight: 600; }

/* Volets repliables : IA, réponses, note */
.ai-review-panel, .answers-disclosure, .admin-note-disclosure { border-bottom: 1px solid var(--line); padding-inline: 0 !important; }
.candidate-detail > details:last-child { border-bottom: 0; }
.ai-review-panel > summary, .answers-disclosure > summary, .admin-note-disclosure > summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
  min-height: 52px; padding: 0 var(--s6);
  font-size: var(--t-md); font-weight: 600;
  cursor: pointer; list-style: none;
}
.ai-review-panel > summary::-webkit-details-marker, .answers-disclosure > summary::-webkit-details-marker, .admin-note-disclosure > summary::-webkit-details-marker { display: none; }
.ai-review-panel > summary::after, .answers-disclosure > summary::after, .admin-note-disclosure > summary::after {
  content: "+"; font-family: var(--mono); font-weight: 400; color: var(--text-3); margin-left: var(--s2);
}
.ai-review-panel[open] > summary::after, .answers-disclosure[open] > summary::after, .admin-note-disclosure[open] > summary::after { content: "−"; }
.ai-review-panel > summary:hover, .answers-disclosure > summary:hover, .admin-note-disclosure > summary:hover { background: var(--surface-2); }
.ai-review-panel > summary span:first-child, .answers-disclosure > summary span:first-child { margin-right: auto; }
.disclosure-count { font-family: var(--mono); font-size: var(--t-xs); color: var(--text-3); font-weight: 500; }

.ai-score.empty { display: none; }
.ai-score { font-family: var(--mono); font-size: var(--t-sm); font-weight: 500; color: var(--text-3); }
.ai-score.excellent { color: var(--ok); }
.ai-score.good { color: #9fd86b; }
.ai-score.mid { color: var(--warn); }
.ai-score.low { color: var(--bad); }
.ai-review-body { display: grid; gap: var(--s4); padding: 0 var(--s6) var(--s5); }
.ai-summary { font-size: var(--t-md); color: var(--text); }
.ai-mini-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s5); }
.ai-mini-block { display: grid; gap: var(--s2); align-content: start; }
.ai-mini-block b { font-size: var(--t-sm); font-weight: 600; color: var(--text-2); }
.ai-mini-block ul { margin: 0; padding-left: 16px; display: grid; gap: var(--s1); font-size: var(--t-sm); color: var(--text-2); }
.ai-review-footer { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); padding-top: var(--s3); border-top: 1px solid var(--line); font-size: var(--t-xs); color: var(--text-3); }
.ai-empty, .ai-loading, .ai-error { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); font-size: var(--t-sm); color: var(--text-3); }
.ai-error { color: var(--bad); }
.ai-config { display: flex; flex-wrap: wrap; gap: var(--s2); }
.ai-config .dark-control { flex: 1 1 220px; min-height: var(--control-sm); }

.answers-compact-list { display: grid; grid-template-columns: minmax(0, 1fr); padding: 0 var(--s6) var(--s4); }
.answers-compact-list .answer, .candidate-detail > div > .answer {
  display: grid; gap: var(--s1); align-content: start;
  padding: var(--s3) 0; border-top: 1px solid var(--line);
}
.answers-compact-list .answer.wide { grid-column: 1 / -1; }
.answer label { font-size: var(--t-sm); color: var(--text-3); }
.answer > div { font-size: var(--t-md); white-space: pre-wrap; overflow-wrap: anywhere; }

.admin-note-body, .admin-note { display: grid; gap: var(--s3); padding: 0 var(--s6) var(--s5); }
.admin-note { padding: var(--s5) var(--s6); border-top: 1px solid var(--line); }
.admin-note label { font-size: var(--t-sm); font-weight: 600; }
.admin-note-body textarea, .admin-note textarea { min-height: 96px; }
.admin-save-row { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.admin-save-row .admin-message:empty { display: block; }
.staff-decision-footer { display: grid; gap: var(--s2); padding-block: var(--s4); }
.accept-link {
  padding: var(--s3) var(--s4);
  border-left: 3px solid var(--ok); border-radius: 0 var(--r-sm) var(--r-sm) 0;
  background: var(--ok-bg); font-size: var(--t-sm); line-height: 1.5;
}
.accept-link-url { margin-top: var(--s1); font-family: var(--mono); font-size: var(--t-xs); overflow-wrap: anywhere; }
.accept-link-url a { color: var(--info); }

/* Éditeur de formulaire -------------------------------------------------- */
.editor-shell { border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.editor-toolbar {
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--s3);
  padding: var(--s3) var(--s4) var(--s3) var(--s5);
  border-bottom: 1px solid var(--line);
}
.editor-toolbar > div:first-child { display: flex; align-items: baseline; gap: var(--s3); }
.editor-toolbar h2 { font-size: var(--t-md); font-weight: 600; }
.editor-actions { display: flex; gap: var(--s2); }
.editor-block {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: var(--s3);
  min-height: 52px; padding: var(--s2) var(--s3) var(--s2) var(--s5);
  border-bottom: 1px solid var(--line);
}
.editor-block:last-child { border-bottom: 0; }
.editor-block:hover { background: var(--surface-2); }
.drag-index { display: grid; place-items: center; width: 28px; height: 28px; border-radius: var(--r-sm); color: var(--text-3); }
.editor-block:has(.bi-layout-text-window) { background: var(--surface-2); }
.editor-block:has(.bi-layout-text-window) .drag-index { color: var(--accent-text, var(--text)); }
.editor-block:has(.bi-layout-text-window) .editor-copy strong { font-size: var(--t-md); }
.editor-copy { display: grid; gap: 2px; min-width: 0; }
.editor-copy strong { font-size: var(--t-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.editor-copy small { font-family: var(--mono); font-size: 11px; color: var(--text-3); }
.editor-buttons { display: flex; gap: 2px; opacity: .55; transition: opacity .15s ease; }
.editor-block:hover .editor-buttons, .editor-buttons:focus-within { opacity: 1; }
.editor-buttons [data-delete]:hover { color: var(--bad); border-color: color-mix(in srgb, var(--bad) 50%, transparent); }

/* Fenêtre modale */
.modal { position: fixed; inset: 0; z-index: 50; display: none; place-items: center; padding: var(--s5); background: rgba(5, 6, 8, .72); }
.modal.show { display: grid; }
.modal-card {
  display: grid; gap: var(--s4);
  width: min(620px, 100%); max-height: calc(100vh - 40px); overflow-y: auto;
  padding: var(--s6);
  border: 1px solid var(--line-strong); border-radius: var(--r-lg);
  background: var(--surface);
  box-shadow: 0 24px 64px rgba(0, 0, 0, .5);
}
.modal-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s3); }
.modal-head h3 { font-size: var(--t-xl); font-weight: 700; }
.modal-actions { display: flex; justify-content: flex-end; gap: var(--s2); padding-top: var(--s4); border-top: 1px solid var(--line); }
#questionOptions, #imageOptions { display: grid; gap: var(--s4); }
#questionOptions.hidden, #imageOptions.hidden { display: none; }

/* Champs admin */
.dark-field { display: grid; gap: var(--s2); min-width: 0; }
.dark-field > label { font-size: var(--t-sm); font-weight: 600; color: var(--text-2); }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); }
.switch-row { display: flex; align-items: center; gap: var(--s2); font-size: var(--t-sm); color: var(--text-2); }
.switch-row label { cursor: pointer; }
.input-with-icon { position: relative; }
.input-with-icon > .bi { position: absolute; left: var(--s3); top: 50%; transform: translateY(-50%); color: var(--text-3); pointer-events: none; }
.input-with-icon .dark-control { padding-left: 38px; }
.input-with-icon:has(.password-toggle) .dark-control { padding-right: 44px; }
.password-toggle {
  position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
  display: grid; place-items: center; width: 36px; height: 36px;
  border: 0; border-radius: var(--r-sm); background: transparent; color: var(--text-3);
}
.password-toggle:hover { color: var(--text); background: var(--surface-3); }

/* Réglages d'accès ------------------------------------------------------- */
.settings-shell { max-width: 640px; }
.settings-form { display: grid; gap: var(--s5); padding: var(--s6); }
.settings-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s4); padding-top: var(--s4); border-top: 1px solid var(--line); }
.settings-actions .admin-message { margin-right: auto; }
.gf-settings-open {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s4);
  padding: var(--s3) var(--s4); border: 1px solid var(--line); border-radius: var(--r-md); cursor: pointer;
}
.gf-settings-open span, .gf-mail-info span { display: grid; gap: 2px; }
.gf-settings-open strong, .gf-mail-info strong { font-size: var(--t-sm); font-weight: 600; }
.gf-settings-open small, .gf-mail-info small { font-size: var(--t-sm); color: var(--text-3); }
.gf-mail-info { display: flex; gap: var(--s3); padding: var(--s3) var(--s4); border-left: 3px solid var(--accent); background: var(--accent-soft); border-radius: 0 var(--r-sm) var(--r-sm) 0; }
.gf-mail-info .bi { margin-top: 2px; color: var(--accent-text, var(--text)); }

.discord-directory-search { position: relative; }
.discord-directory-search > .bi { position: absolute; left: var(--s3); top: 22px; transform: translateY(-50%); color: var(--text-3); pointer-events: none; z-index: 1; }
.discord-directory-search .dark-control { padding-left: 38px; }
.discord-directory-results {
  position: absolute; left: 0; right: 0; top: calc(100% + 4px); z-index: 10;
  display: grid; max-height: 280px; overflow-y: auto;
  border: 1px solid var(--line-strong); border-radius: var(--r-md);
  background: var(--surface-2); box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
}
.discord-directory-results.hidden { display: none; }
.discord-directory-item {
  display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: var(--s3);
  padding: var(--s2) var(--s3); border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left;
}
.discord-directory-item:last-child { border-bottom: 0; }
.discord-directory-item:hover { background: var(--surface-3); }
.discord-directory-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; overflow: hidden; background: var(--surface-3); font-size: 11px; font-weight: 700; }
.discord-directory-icon img { width: 100%; height: 100%; object-fit: cover; }
.discord-directory-copy { display: grid; min-width: 0; }
.discord-directory-copy strong { font-size: var(--t-sm); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.discord-directory-copy small { font-family: var(--mono); font-size: 11px; color: var(--text-3); }
.discord-directory-use { font-size: var(--t-xs); font-weight: 600; color: var(--text-3); }
.discord-directory-empty { padding: var(--s3) var(--s4); font-size: var(--t-sm); color: var(--text-3); }
.discord-directory-state { font-size: var(--t-sm); color: var(--text-3); }
.discord-directory-state.ok { color: var(--ok); }
.discord-directory-state.error, .discord-directory-state.bad { color: var(--bad); }

/* Comptes staff ---------------------------------------------------------- */
.staff-accounts-layout { display: grid; grid-template-columns: 360px minmax(0, 1fr); gap: var(--s5); align-items: start; }
.staff-create-card { padding: var(--s6); }
.staff-create-card > h2 { font-size: var(--t-md); font-weight: 600; margin-bottom: var(--s4); }
.staff-create-card .settings-form { padding: 0; }
.staff-permissions-box, .project-access-options { display: grid; border: 1px solid var(--line); border-radius: var(--r-md); }
.staff-permission, .project-access-option {
  display: flex; align-items: center; gap: var(--s3);
  min-height: 48px; padding: var(--s2) var(--s4);
  border-bottom: 1px solid var(--line); cursor: pointer;
}
.staff-permission:last-child, .project-access-option:last-child { border-bottom: 0; }
.staff-permission .bi { color: var(--text-3); }
.staff-permission span, .project-access-option span { display: grid; flex: 1; line-height: 1.25; }
.staff-permission b, .project-access-option strong { font-size: var(--t-sm); font-weight: 600; }
.staff-permission small, .project-access-option small { font-size: var(--t-xs); color: var(--text-3); }
.staff-permission.fixed { cursor: default; opacity: .7; }
.project-access-option input { order: -1; }
.project-access-box { display: grid; gap: var(--s2); }
.project-access-title { font-size: var(--t-sm); font-weight: 600; color: var(--text-2); }
.project-access-help { font-size: var(--t-sm); color: var(--text-3); }

.staff-list-card { overflow: hidden; }
.staff-accounts-list { display: grid; }
.staff-account { display: grid; gap: var(--s3); padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line); }
.staff-account:last-child { border-bottom: 0; }
.staff-account.disabled .staff-account-head strong { color: var(--text-3); }
.staff-account-head { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--s3); }
.staff-account-head > div:first-child { display: flex; align-items: baseline; gap: var(--s3); }
.staff-account-head strong { font-size: var(--t-md); font-weight: 600; }
.staff-account-head > div:first-child span { font-size: var(--t-xs); color: var(--text-3); }
.staff-account-badges { display: flex; flex-wrap: wrap; gap: var(--s3); }
.small-pill { display: inline-flex; align-items: center; gap: 5px; font-size: var(--t-xs); color: var(--text-3); }
.small-pill.decision { color: var(--text-2); }
.small-pill.project-ng::before, .small-pill.project-gf::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.staff-account-controls { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s3) var(--s5); }
.staff-project-controls { display: flex; flex-wrap: wrap; gap: var(--s5); }
.staff-project-controls label, .staff-inline-check { display: inline-flex; align-items: center; gap: var(--s2); font-size: var(--t-sm); color: var(--text-2); cursor: pointer; }
.staff-password-reset { display: flex; gap: var(--s2); flex: 1 1 100%; }
.staff-password-reset .dark-control { min-height: var(--control-sm); max-width: 320px; font-size: var(--t-sm); }
.staff-delete-row { margin-left: auto; }

/* Blacklist -------------------------------------------------------------- */
.blacklist-shell { display: grid; grid-template-columns: 420px minmax(0, 1fr); gap: var(--s5); align-items: start; }
.blacklist-card { display: grid; gap: var(--s4); padding: var(--s6); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); }
.blacklist-card > h2 { font-size: var(--t-md); font-weight: 600; }
.blacklist-card > p { margin-top: calc(var(--s3) * -1); font-size: var(--t-sm); color: var(--text-3); }
.blacklist-form { display: grid; gap: var(--s4); }
.blacklist-two { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s3); }
.blacklist-help { font-size: var(--t-sm); color: var(--text-3); line-height: 1.5; }
.blacklist-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--s3); }
.blacklist-status { margin-right: auto; font-size: var(--t-sm); color: var(--text-3); }
.blacklist-danger-note { padding: var(--s3) var(--s4); border-left: 3px solid var(--bad); border-radius: 0 var(--r-sm) var(--r-sm) 0; background: var(--bad-bg); font-size: var(--t-sm); color: var(--text-2); }
.blacklist-list-card { padding: 0; gap: 0; overflow: hidden; }
.blacklist-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--s4); padding: var(--s3) var(--s4) var(--s3) var(--s5); border-bottom: 1px solid var(--line); }
.blacklist-toolbar-copy { display: flex; align-items: baseline; gap: var(--s3); }
.blacklist-toolbar-copy h2 { font-size: var(--t-md); font-weight: 600; }
.blacklist-toolbar-copy span { font-size: var(--t-sm); color: var(--text-3); }
.blacklist-search { max-width: 260px; min-height: var(--control-sm); font-size: var(--t-sm); }
.blacklist-list { display: grid; }
.blacklist-entry { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--s4); padding: var(--s4) var(--s5); border-bottom: 1px solid var(--line); }
.blacklist-entry:last-child { border-bottom: 0; }
.blacklist-entry.inactive { opacity: .6; }
.blacklist-entry-main { display: grid; gap: var(--s1); min-width: 0; }
.blacklist-entry-top { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s2) var(--s3); }
.blacklist-entry-top strong { font-family: var(--mono); font-size: var(--t-sm); font-weight: 500; overflow-wrap: anywhere; }
.blacklist-chip { font-size: var(--t-xs); color: var(--text-3); }
.blacklist-chip + .blacklist-chip::before { content: "·"; margin-right: var(--s3); color: var(--line-strong); }
.blacklist-chip.scope-ng, .blacklist-chip.scope-gf { color: var(--accent-text); }
.blacklist-entry-reason { font-size: var(--t-sm); color: var(--text-2); }
.blacklist-entry-meta { font-size: var(--t-xs); color: var(--text-3); }
.blacklist-entry-actions { display: flex; gap: var(--s2); flex: none; }
.blacklist-empty { padding: var(--s8) var(--s4); text-align: center; font-size: var(--t-sm); color: var(--text-3); }

/* Connexion -------------------------------------------------------------- */
.admin-login { display: grid; place-items: center; min-height: calc(100vh - 59px); padding: var(--s7) 20px; }
.login-shell { width: min(400px, 100%); }
.login-visual, .login-icon { display: none; }
.login-box { display: grid; gap: var(--s4); }
.login-copy { margin-bottom: var(--s3); }
.login-copy h1 { font-size: var(--t-3xl); font-weight: 800; letter-spacing: -.035em; }
.login-remember { display: flex; align-items: center; gap: var(--s3); cursor: pointer; }
.login-remember-copy { display: grid; line-height: 1.25; }
.login-remember-copy strong { font-size: var(--t-sm); font-weight: 600; }
.login-remember-copy small { font-size: var(--t-xs); color: var(--text-3); }
.login-box .btn { margin-top: var(--s2); background: var(--text); color: var(--bg); }
.login-box .btn:hover { background: #fff; }
.login-box .admin-message { text-align: center; }

.mobile-detail-back { display: none; }

/* Responsive ------------------------------------------------------------- */
@media (max-width: 1180px) {
  .admin-grid { grid-template-columns: 260px minmax(0, 1fr); }
  .candidate-snapshot { grid-template-columns: 1fr 1fr; }
  .snapshot-item:nth-child(2) { border-right: 0; }
  .snapshot-item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
  .ai-mini-grid { grid-template-columns: 1fr; gap: var(--s3); }
  .staff-accounts-layout, .blacklist-shell { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
  .project-picker-label, .admin-title { display: none; }
  .admin-workspace { grid-template-columns: 1fr; }
  .admin-side {
    position: sticky; top: 59px; z-index: 15;
    flex-direction: row; align-items: center; height: auto;
    padding: var(--s2) var(--s4);
    border-right: 0; border-bottom: 1px solid var(--line);
    background: var(--bg);
    overflow-x: auto;
  }
  .admin-tabs, .admin-side-foot { display: flex; }
  .admin-tab { width: auto; white-space: nowrap; }
  .admin-tab.active { box-shadow: inset 0 -2px 0 var(--accent); }
  .admin-content { padding: var(--s5) var(--s4) var(--s9); }
  .candidate-list { position: static; max-height: none; }
}

@media (max-width: 760px) {
  .admin-header { padding: 0 var(--s4); gap: var(--s3); }
  .admin-header .brand-text small { display: none; }
  .project-choice { padding: 0 var(--s2); }
  .project-choice strong { font-size: var(--t-xs); }
  .admin-tab .bi { display: none; }
  .admin-grid { grid-template-columns: 1fr; }
  .admin-body:not(.mobile-detail-open) #candidateDetail { display: none !important; }
  .admin-body.mobile-detail-open .candidate-list,
  .admin-body.mobile-detail-open .admin-content-header { display: none !important; }
  .mobile-detail-back {
    display: flex; align-items: center; gap: var(--s2);
    width: 100%; min-height: 44px; padding: 0 var(--s4) !important;
    border: 0; border-bottom: 1px solid var(--line); background: transparent;
    color: var(--text-2); font-size: var(--t-sm);
  }
  .candidate-detail > * { padding-inline: var(--s4); }
  .ai-review-panel > summary, .answers-disclosure > summary, .admin-note-disclosure > summary { padding: 0 var(--s4); }
  .ai-review-body, .admin-note-body, .answers-compact-list { padding-inline: var(--s4); }
  .snapshot-item { padding: var(--s3) var(--s4); }
  .priority-grid, .answers-compact-list { grid-template-columns: 1fr; }
  .detail-actions { width: 100%; }
  .detail-actions .btn { flex: 1; }
  .two-col, .blacklist-two { grid-template-columns: 1fr; }
  .editor-toolbar { padding-left: var(--s4); }
  .editor-block { grid-template-columns: minmax(0, 1fr) auto; padding-left: var(--s4); }
  .drag-index { display: none; }
  .editor-buttons { opacity: 1; }
  .editor-buttons .icon-btn { width: 30px; }
  .settings-form, .staff-create-card, .blacklist-card { padding: var(--s5) var(--s4); }
  .blacklist-list-card { padding: 0; }
  .blacklist-entry { flex-direction: column; }
  .blacklist-toolbar { flex-wrap: wrap; }
  .blacklist-search { max-width: none; }
  .modal { padding: 0; place-items: end stretch; }
  .modal-card { width: 100%; max-height: 92vh; border-radius: var(--r-lg) var(--r-lg) 0 0; padding: var(--s5) var(--s4); }
}
