/* Doit passer avant tout le reste : sans cette règle, [hidden] est plus
   faible que .admin-login{display:flex} et les deux écrans se superposent. */
[hidden]{display:none !important;}

/* ---------- Écran de connexion ---------- */
.admin-body{background:var(--bg);}
.admin-login{
  min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1.5rem;
  background:var(--navy-800);
}
.admin-login-card{
  background:#fff;border-radius:var(--radius-lg);padding:2.4rem;max-width:24rem;width:100%;
  display:flex;flex-direction:column;gap:1rem;box-shadow:var(--shadow-card);
}
.admin-login-card .brand-mark{margin-bottom:.4rem;}
.admin-login-card h1{font-size:1.5rem;color:var(--navy-800);}
.admin-login-card > p{color:var(--text-muted);margin-top:-.6rem;}
.admin-login-card label{font-size:.85rem;font-weight:700;color:#3a4666;}
.admin-login-card input{
  margin-top:.45rem;width:100%;border:1px solid var(--border);border-radius:.8rem;
  background:#fbfcff;padding:.8rem .9rem;font-size:.95rem;outline:none;
}
.admin-login-card input:focus{border-color:var(--orange-dark);box-shadow:0 0 0 4px rgba(226,104,28,.14);}
.admin-back-link{text-align:center;font-size:.85rem;color:var(--text-muted);margin-top:.3rem;}
.admin-back-link:hover{color:var(--navy-800);}
.admin-error{background:#fdecec;color:#b23a3a;padding:.7rem .9rem;border-radius:.7rem;font-size:.85rem;font-weight:600;}
.admin-success{background:#e9f8ee;color:#227a45;padding:.7rem .9rem;border-radius:.7rem;font-size:.85rem;font-weight:600;}

/* ---------- Structure générale ---------- */
.admin-header{background:var(--navy-800);color:#fff;}
.admin-header-row{display:flex;align-items:center;justify-content:space-between;height:72px;}
.btn-ghost-dark{border:1px solid var(--border);color:var(--navy-800);background:transparent;}
.admin-header .btn-ghost-dark{border-color:rgba(255,255,255,.35);color:#fff;}
.admin-header .btn-ghost-dark:hover{background:rgba(255,255,255,.08);}

.admin-tabs{background:#fff;border-bottom:1px solid var(--border);}
.admin-tabs-row{display:flex;gap:.5rem;overflow-x:auto;}
.admin-tab{
  background:none;border:0;padding:1rem .3rem;font-weight:700;color:var(--text-muted);
  border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap;margin-right:1.6rem;
}
.admin-tab.active{color:var(--navy-800);border-bottom-color:var(--orange);}

.admin-main{padding:2.4rem 1.5rem 4rem;}
.admin-panel{display:none;}
.admin-panel.active{display:block;}
.admin-panel-head{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1.6rem;}
.admin-panel-head h2, .admin-panel > h2{font-size:1.5rem;color:var(--navy-800);margin-bottom:1.6rem;}
.admin-panel-head h2{margin-bottom:0;}
.admin-hint{color:var(--text-muted);font-size:.9rem;}

/* ---------- Liste de formules ---------- */
.admin-list{display:flex;flex-direction:column;gap:.8rem;}
.admin-list-item{
  background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);
  padding:1.1rem 1.3rem;display:flex;align-items:center;gap:1rem;cursor:pointer;transition:border-color .15s ease;
}
.admin-list-item:hover{border-color:var(--orange);}
.admin-list-thumb{width:52px;height:52px;border-radius:.7rem;object-fit:cover;flex:none;background:var(--navy-100);}
.admin-list-item-body{flex:1;min-width:0;}
.admin-list-item-body strong{display:block;color:var(--navy-800);font-size:1rem;}
.admin-list-item-body span{display:block;font-size:.82rem;color:var(--text-muted);margin-top:.2rem;}
.admin-badge{
  font-size:.7rem;font-weight:700;padding:.25rem .6rem;border-radius:99px;background:var(--navy-100);color:var(--navy-800);flex:none;
}
.admin-badge-off{background:#fdecec;color:#b23a3a;}

/* ---------- Galerie admin ---------- */
.admin-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;}
.admin-gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1;background:var(--navy-100);}
.admin-gallery-item img{width:100%;height:100%;object-fit:cover;}
.admin-gallery-remove{
  position:absolute;top:.5rem;right:.5rem;width:30px;height:30px;border-radius:50%;
  background:rgba(6,20,45,.7);color:#fff;border:0;font-size:1.1rem;cursor:pointer;
}

/* ---------- Formulaires admin ---------- */
.admin-form{display:flex;flex-direction:column;gap:1.2rem;max-width:34rem;}
.admin-form fieldset{border:1px solid var(--border);border-radius:var(--radius-md);padding:1.2rem 1.3rem;display:flex;flex-direction:column;gap:1rem;}
.admin-form legend{font-weight:700;color:var(--navy-800);padding:0 .4rem;font-size:.9rem;}
.admin-form label{font-size:.85rem;font-weight:700;color:#3a4666;display:block;}
.admin-form input, .admin-form textarea{
  margin-top:.45rem;width:100%;border:1px solid var(--border);border-radius:.8rem;
  background:#fbfcff;padding:.75rem .85rem;font-size:.92rem;font-family:inherit;outline:none;resize:vertical;
}
.admin-form input:focus, .admin-form textarea:focus{border-color:var(--orange-dark);box-shadow:0 0 0 4px rgba(226,104,28,.14);}
.admin-checkbox-row{display:flex;align-items:center;gap:.6rem;font-weight:500;}
.admin-checkbox-row input{width:16px;height:16px;margin:0;accent-color:var(--orange-dark);}
.admin-file-btn{display:inline-flex;cursor:pointer;}
.admin-form-actions{display:flex;justify-content:space-between;gap:1rem;}

.admin-hero-preview{
  border-radius:var(--radius-md);overflow:hidden;background:var(--navy-100);
  aspect-ratio:16/6;display:flex;align-items:center;justify-content:center;
}
.admin-hero-preview img{width:100%;height:100%;object-fit:cover;}
.admin-hero-preview p{color:var(--text-muted);font-size:.85rem;padding:1rem;text-align:center;}
.admin-hero-actions{display:flex;gap:.8rem;flex-wrap:wrap;}

.admin-phones-list{display:flex;flex-direction:column;gap:.6rem;}
.admin-phone-row{display:flex;gap:.6rem;}
.admin-phone-row input{margin-top:0;}
.admin-phone-remove{
  background:var(--bg);border:1px solid var(--border);border-radius:.7rem;width:42px;flex:none;
  cursor:pointer;font-size:1.1rem;color:var(--text-muted);
}

.admin-formula-photo-preview img{margin-top:.6rem;max-width:160px;border-radius:.7rem;}

/* ---------- Table inscriptions ---------- */
.admin-table-wrap{overflow-x:auto;}
.admin-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--radius-md);overflow:hidden;font-size:.85rem;}
.admin-table th, .admin-table td{padding:.8rem 1rem;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;}
.admin-table th{background:var(--navy-100);color:var(--navy-800);font-weight:700;}
.admin-table select{border:1px solid var(--border);border-radius:.5rem;padding:.35rem .5rem;font-size:.82rem;}

@media (max-width:640px){
  .admin-form{max-width:none;}
}

@media (max-width:480px){
  .admin-header-row{height:auto;flex-wrap:wrap;padding-block:.8rem;gap:.6rem;}
  .admin-header .btn-ghost-dark{padding:.55rem .95rem;font-size:.82rem;}
  .admin-form-actions{flex-wrap:wrap;gap:.75rem;}
  .admin-phone-row{flex-wrap:wrap;}
  .admin-phone-row input{min-width:0;flex:1 1 100%;}
  .admin-phone-remove{flex:none;margin-left:auto;}
  .admin-main{padding:1.6rem 1.1rem 3rem;}
}

@media (max-width:480px){
  .modal{padding:1.4rem;}
  .modal-close{top:.8rem;right:.8rem;}
  .admin-login-card{padding:1.6rem;}
}
