/* ===== Couche de connexion Supabase — interface du tableau inchangée ===== */
body.auth-pending > .wrap,
body.auth-pending > .toast{
  visibility:hidden !important;
  pointer-events:none !important;
}
.auth-gate{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:
    radial-gradient(circle at 20% 10%,rgba(47,111,237,.20),transparent 35%),
    radial-gradient(circle at 85% 90%,rgba(14,165,165,.20),transparent 38%),
    #10151A;
  font-family:'Inter',sans-serif;
}
.auth-gate[hidden]{display:none !important}
.auth-card{
  width:min(430px,100%);
  padding:30px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:24px;
  background:rgba(24,32,39,.96);
  box-shadow:0 24px 70px rgba(0,0,0,.42);
  color:#F2F5F7;
}
.auth-logo{
  width:54px;height:54px;margin:0 auto 16px;
  display:grid;place-items:center;
  border-radius:17px;
  background:linear-gradient(135deg,#0EA5A5,#2F6FED);
  font-size:26px;
  box-shadow:0 12px 28px rgba(47,111,237,.28);
}
.auth-card h2{margin:0;text-align:center;font:900 25px 'Manrope',sans-serif}
.auth-subtitle{margin:8px 0 22px;text-align:center;color:#A8B2BA;font-size:13px;line-height:1.5}
.auth-field{margin-top:14px}
.auth-field label{display:block;margin-bottom:7px;color:#D6DEE3;font-size:12px;font-weight:800}
.auth-field input{
  width:100%;padding:13px 14px;border:1px solid #3A4953;border-radius:12px;
  background:#11181D;color:#fff;outline:none;font-size:14px;
}
.auth-field input:focus{border-color:#45AEB5;box-shadow:0 0 0 3px rgba(69,174,181,.16)}
.auth-main-btn{
  width:100%;margin-top:20px;padding:13px 16px;border:0;border-radius:13px;
  background:linear-gradient(135deg,#0EA5A5,#2F8F96);color:#fff;font-weight:900;cursor:pointer;
}
.auth-main-btn:disabled{opacity:.58;cursor:wait}
.auth-links{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:16px}
.auth-link{padding:0;border:0;background:none;color:#8FDDE1;font-size:12px;font-weight:800;cursor:pointer}
.auth-message{display:none;margin-top:16px;padding:11px 12px;border-radius:11px;font-size:12px;line-height:1.45;text-align:center}
.auth-message.show{display:block}
.auth-message.error{background:#3A2020;color:#FFC6C6;border:1px solid #6A3434}
.auth-message.success{background:#173027;color:#CDE7D5;border:1px solid #315640}
.auth-config-note{margin-top:17px;color:#819099;font-size:10.5px;line-height:1.45;text-align:center}
.auth-user-badge{
  position:absolute;
  top:18px;
  right:22px;
  z-index:40;
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
  font-weight:700;
  letter-spacing:.01em;
  color:var(--soft);
  opacity:.72;
  pointer-events:none;
}
@media (max-width:900px){
  .auth-user-badge{position:static;display:block;margin:8px 18px 0 auto;width:max-content;max-width:calc(100% - 36px)}
}
.auth-logout-btn{
  padding:10px 14px;border:1.5px solid var(--line);border-radius:999px;background:var(--panel);
  color:var(--ink);font-size:12px;font-weight:800;cursor:pointer;
}
body.dark-mode .auth-logout-btn{background:#24313A;border-color:#3B4A55;color:#F2F5F7}

/* Panneau d’administration — visible uniquement pour les administrateurs */
.auth-admin-btn,.auth-logout-btn{
  border:1px solid rgba(14,165,165,.45);border-radius:999px;padding:8px 12px;
  background:#fff;color:#0b7285;font-size:11px;font-weight:800;cursor:pointer
}
.auth-logout-btn{border-color:#e1e5ea;color:#687386}
.auth-admin-overlay{position:fixed;inset:0;z-index:100000;background:rgba(4,10,18,.72);backdrop-filter:blur(5px);padding:24px;overflow:auto}
.auth-admin-overlay[hidden]{display:none}
.auth-admin-panel{width:min(900px,100%);margin:5vh auto;background:#f7f9fb;color:#17202a;border-radius:22px;padding:24px;box-shadow:0 30px 90px rgba(0,0,0,.35)}
.auth-admin-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.auth-admin-head h2{margin:3px 0 0;font-family:Manrope,sans-serif;font-size:26px}
.auth-admin-kicker{color:#0b8f96;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:900}
.auth-admin-close{width:38px;height:38px;border:0;border-radius:50%;background:#e9edf2;color:#516071;font-size:26px;line-height:1;cursor:pointer}
.auth-admin-help{margin:8px 0 18px;color:#6b7685;font-size:13px}
.auth-admin-list{display:grid;gap:10px}
.auth-admin-user{display:grid;grid-template-columns:minmax(220px,1fr) 150px 170px 110px;align-items:center;gap:12px;padding:14px;border:1px solid #e3e8ee;border-radius:15px;background:#fff}
.auth-admin-user-info{display:flex;flex-direction:column;gap:4px;min-width:0}.auth-admin-user-info strong{overflow:hidden;text-overflow:ellipsis}.auth-admin-user-info span{color:#8a94a2;font-size:11px}
.auth-admin-status{font-size:11px;font-weight:900}.auth-admin-status.approved{color:#16844a}.auth-admin-status.pending{color:#c36a13}
.auth-admin-role-label{font-size:10px;font-weight:900;color:#657180;text-transform:uppercase;letter-spacing:.05em}
.auth-admin-role{display:block;width:100%;margin-top:5px;padding:8px;border:1px solid #dbe2e9;border-radius:9px;background:#fff;color:#26313e;font-weight:700;text-transform:none;letter-spacing:0}
.auth-admin-toggle{border:0;border-radius:10px;padding:10px 12px;font-weight:900;cursor:pointer}.auth-admin-toggle.approve{background:#dff6e8;color:#157541}.auth-admin-toggle.block{background:#fde7e7;color:#a72e2e}
.auth-admin-message{display:none;margin:0 0 12px;padding:10px 12px;border-radius:10px;font-size:12px}.auth-admin-message.show{display:block}.auth-admin-message.success{background:#e3f7eb;color:#176f42}.auth-admin-message.error{background:#fdeaea;color:#9a3030}
.auth-admin-loading,.auth-admin-empty{padding:26px;text-align:center;color:#7b8795}
@media(max-width:760px){.auth-admin-user{grid-template-columns:1fr 1fr}.auth-admin-user-info{grid-column:1/-1}.auth-admin-panel{padding:17px}.auth-admin-overlay{padding:10px}}

/* ===== Administration V3 ===== */
.auth-admin-panel{width:min(1120px,100%)}
.auth-admin-toolbar{display:flex;gap:10px;margin:14px 0 16px}
.auth-admin-toolbar input{flex:1;min-width:0;padding:12px 14px;border:1px solid #dbe2e9;border-radius:12px;background:#fff;color:#26313e;font:700 13px Inter,sans-serif;outline:none}
.auth-admin-toolbar input:focus{border-color:#0ea5a5;box-shadow:0 0 0 3px rgba(14,165,165,.12)}
.auth-admin-refresh{padding:10px 14px;border:1px solid #cde0e4;border-radius:11px;background:#eaf8f8;color:#0b7285;font-weight:900;cursor:pointer}
.auth-admin-user{grid-template-columns:minmax(250px,1.4fr) 145px 145px 165px 190px}
.auth-admin-user-info strong{display:flex;align-items:center;gap:7px}.auth-self{padding:3px 7px;border-radius:999px;background:#e8f3ff;color:#2f6fed;font-size:9px;text-transform:uppercase}
.auth-admin-presence{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:900}.auth-admin-presence i{width:9px;height:9px;border-radius:50%;display:block}.auth-admin-presence.online{color:#16844a}.auth-admin-presence.online i{background:#23a55a;box-shadow:0 0 0 4px rgba(35,165,90,.12)}.auth-admin-presence.offline{color:#7b8795}.auth-admin-presence.offline i{background:#aab3bd}
.auth-admin-actions{display:flex;gap:7px}.auth-admin-actions button{flex:1}
.auth-admin-delete{border:0;border-radius:10px;padding:10px 9px;background:#f1f3f5;color:#687386;font-weight:900;cursor:pointer}
.auth-admin-delete:hover{background:#fdeaea;color:#a72e2e}
.auth-admin-user button:disabled,.auth-admin-user select:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:980px){.auth-admin-user{grid-template-columns:1fr 1fr}.auth-admin-user-info{grid-column:1/-1}.auth-admin-actions{grid-column:1/-1}}
@media(max-width:600px){.auth-admin-toolbar{flex-direction:column}.auth-admin-user{grid-template-columns:1fr}.auth-admin-user-info,.auth-admin-actions{grid-column:auto}}


/* ===== Ajustement V3.4 : commandes gauche / administration droite ===== */
@media (min-width:761px){
  .topbar .status{
    width:100%;
  }
  .topbar .auth-admin-btn{
    margin-left:auto;
  }
  .topbar .auth-logout-btn:not(:has(+ *)){
    /* La déconnexion reste accolée au bouton Administration. */
  }
}
@media (max-width:760px){
  .topbar .auth-admin-btn{margin-left:0}
}
