/* ══════════════════════════════════════════════════════════════════
   CTRL S — ADMINISTRATION (s'appuie sur les tokens de styles.css)
   ══════════════════════════════════════════════════════════════════ */

/* ── Porte d'entrée (code équipe) ───────────────────────────────── */
.gate{
  min-height:70vh;display:flex;align-items:center;justify-content:center;
  padding:20px;
}
.gate-box{
  width:100%;max-width:420px;text-align:center;
  background:var(--carte);border:1px solid var(--bordure);
  border-radius:var(--r-lg);padding:36px 30px;position:relative;overflow:hidden;
}
.gate-box::before{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--corail),var(--violet-clair));
}
.gate-title{
  font-family:var(--f-titre);font-weight:800;font-size:20px;color:#fff;
  margin:16px 0 6px;
}
.gate-sub{font-size:13.5px;color:var(--muted);margin-bottom:22px}
.gate .f-input{text-align:center;font-size:16px;letter-spacing:.06em}
.gate .btn-cta{border:none;cursor:pointer;width:100%;justify-content:center;margin-top:12px;padding:13px}
.gate-err{display:none;margin-top:12px;font-size:13px;color:var(--corail);font-weight:600}
.gate-err.on{display:block}

/* ── Application ────────────────────────────────────────────────── */
.adm{display:none}
.adm.on{display:block}
.adm-cols{display:grid;grid-template-columns:1fr;gap:22px;margin-top:24px}
@media(min-width:900px){.adm-cols{grid-template-columns:.9fr 1.1fr}}

.panel{
  background:var(--carte);border:1px solid var(--bordure);
  border-radius:var(--r-lg);padding:22px;
}
.panel-title{
  display:flex;align-items:center;gap:10px;
  font-family:var(--f-titre);font-weight:800;font-style:italic;
  text-transform:uppercase;letter-spacing:.1em;font-size:13.5px;
  color:var(--violet-clair);margin-bottom:16px;
}
.panel-title::after{content:'';height:1px;flex:1;background:var(--bordure)}
.panel-title .n{color:var(--corail)}

/* formulaires */
.f-lab{
  display:block;font-family:var(--f-titre);font-weight:800;
  text-transform:uppercase;letter-spacing:.1em;font-size:10.5px;
  color:var(--violet-clair);margin:0 0 6px;
}
.f-input,.f-select{
  width:100%;background:var(--prune);
  border:1.5px solid var(--bordure);border-radius:var(--r-sm);
  color:var(--beige);font-family:var(--f-texte);font-size:14px;
  padding:10px 12px;outline:none;transition:border-color .15s;
}
.f-input:focus,.f-select:focus{border-color:var(--corail)}
.f-hint{font-size:11px;color:var(--muted);margin-top:4px}
.f-row{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}
@media(min-width:560px){
  .f-row.deux{grid-template-columns:1fr 1fr}
  .f-row.trois{grid-template-columns:1fr 1fr 1fr}
}
.f-err{display:none;font-size:12.5px;color:var(--corail);font-weight:600;margin-top:8px}
.f-err.on{display:block}
.btn-cta{border:none;cursor:pointer}
.btn-mini{
  font-family:var(--f-titre);font-weight:800;text-transform:uppercase;
  letter-spacing:.08em;font-size:10px;color:var(--beige);
  background:none;border:1px solid var(--bordure);border-radius:14px;
  padding:5px 12px;cursor:pointer;transition:all .15s;
}
.btn-mini:hover{border-color:var(--violet-clair);color:var(--violet-clair)}
.btn-mini.danger:hover{border-color:var(--corail);color:var(--corail)}

/* bascule lien / fichier */
.src-tabs{display:flex;gap:6px;margin-bottom:10px}
.src-tab{
  font-family:var(--f-titre);font-weight:800;text-transform:uppercase;
  letter-spacing:.08em;font-size:10.5px;color:var(--muted);
  background:var(--prune);border:1px solid var(--bordure);border-radius:14px;
  padding:6px 14px;cursor:pointer;transition:all .15s;
}
.src-tab.on{background:var(--violet);border-color:var(--violet-clair);color:#fff}
.file-drop{
  border:1.5px dashed var(--bordure);border-radius:var(--r-sm);
  padding:14px;text-align:center;font-size:13px;color:var(--muted);
  cursor:pointer;transition:border-color .15s;
}
.file-drop:hover{border-color:var(--violet-clair)}
.file-drop.ok{border-color:var(--sable);color:var(--sable)}

/* listes */
.liste{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.li{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:var(--prune);border:1px solid var(--bordure);
  border-left:3px solid var(--tc, var(--bordure));
  border-radius:var(--r-sm);padding:10px 13px;font-size:13.5px;
}
.li .lb{flex:1;min-width:180px;font-weight:600;color:#fff}
.li .sub{font-size:11px;color:var(--muted);width:100%;order:3}
.badge{
  font-family:var(--f-titre);font-weight:800;text-transform:uppercase;
  letter-spacing:.07em;font-size:9.5px;
  border:1px solid var(--bordure);border-radius:10px;padding:2px 8px;
  color:var(--muted);flex:none;
}
.badge.type{color:var(--tc);border-color:color-mix(in srgb,var(--tc) 45%,transparent)}
.badge.lock{color:var(--sable);border-color:color-mix(in srgb,var(--sable) 45%,transparent)}
.badge.online{color:#7ee081;border-color:rgba(126,224,129,.4)}
.li-actions{display:flex;gap:6px;flex:none;margin-left:auto}

/* toast */
.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(8px);
  z-index:120;opacity:0;pointer-events:none;
  font-family:var(--f-titre);font-weight:800;font-size:13px;color:#fff;
  background:var(--violet);border:1px solid var(--violet-clair);
  border-radius:22px;padding:12px 22px;
  box-shadow:0 10px 34px rgba(0,0,0,.5);
  transition:opacity .2s,transform .2s;
}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
