/* =========================================================
   CLINIQUE DE L'ESPOIR — espace médecin (back-office)
   ========================================================= */
:root{
  --bleu-nuit:#0B2F5C; --bleu-primaire:#155EA8; --bleu-vif:#1E76D6;
  --bleu-clair:#EAF3FC; --bleu-brume:#F5F9FE; --blanc:#FFFFFF;
  --encre:#0B2545; --gris:#5A6B82; --liseret:#E1EAF6; --rouge:#C3423F;
  --vert:#1E9E6A;
}
*{box-sizing:border-box;}
body{margin:0;font-family:'Work Sans',system-ui,sans-serif;color:var(--encre);background:var(--bleu-brume);}
a{text-decoration:none;color:inherit;}

/* ---------- Écran de connexion ---------- */
.login-screen{
  min-height:100vh;display:grid;place-items:center;
  background:radial-gradient(1000px 500px at 50% -10%, var(--bleu-clair), var(--bleu-brume) 60%);
  padding:24px;
}
.login-card{
  background:#fff;border:1px solid var(--liseret);border-radius:20px;
  padding:44px 38px;width:100%;max-width:400px;
  box-shadow:0 24px 50px -25px rgba(11,47,92,.4);
  text-align:center;
}
.login-card img{width:64px;height:64px;border-radius:50%;margin-bottom:14px;}
.login-card h1{font-family:'Fraunces',serif;font-size:21px;margin:0 0 4px;color:var(--bleu-nuit);}
.login-card p.sub{color:var(--gris);font-size:13.5px;margin:0 0 26px;}
.champ{text-align:left;margin-bottom:16px;}
.champ label{display:block;font-size:12.8px;font-weight:600;color:var(--bleu-nuit);margin-bottom:6px;}
.champ input, .champ select, .champ textarea{
  width:100%;padding:11px 13px;border-radius:10px;border:1.5px solid var(--liseret);
  font-size:14.5px;font-family:inherit;color:var(--encre);background:#fff;
}
.champ input:focus, .champ select:focus, .champ textarea:focus{outline:none;border-color:var(--bleu-vif);}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:10px;font-weight:600;font-size:14px;border:1px solid transparent;cursor:pointer;}
.btn-primary{background:var(--bleu-primaire);color:#fff;width:100%;}
.btn-primary:hover{background:var(--bleu-vif);}
.btn-ghost{background:#fff;border-color:var(--liseret);color:var(--bleu-nuit);}
.btn-danger{background:#fff;border-color:#F3D3D2;color:var(--rouge);}
.alerte{padding:12px 14px;border-radius:10px;font-size:13.5px;margin-bottom:18px;text-align:left;}
.alerte-erreur{background:#FCEBEA;color:var(--rouge);border:1px solid #F3D3D2;}
.alerte-succes{background:#E9F8F0;color:var(--vert);border:1px solid #C9EDD9;}

/* ---------- Coquille du back-office ---------- */
.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh;}
.sidebar{background:var(--bleu-nuit);color:#DCEAFB;padding:26px 18px;display:flex;flex-direction:column;}
.sidebar .brand{display:flex;align-items:center;gap:10px;padding:0 8px 22px;border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:18px;}
.sidebar .brand img{width:38px;height:38px;border-radius:50%;}
.sidebar .brand strong{font-family:'Fraunces',serif;font-size:15px;color:#fff;display:block;line-height:1.2;}
.sidebar .brand span{font-size:11px;color:#8FB1DA;}
.sidebar nav{display:flex;flex-direction:column;gap:3px;flex:1;}
.sidebar nav a{padding:11px 12px;border-radius:10px;font-size:14px;font-weight:500;color:#BFD6F2;display:flex;align-items:center;gap:10px;}
.sidebar nav a svg{width:18px;height:18px;stroke:#8FB1DA;flex:none;}
.sidebar nav a:hover{background:rgba(255,255,255,.06);color:#fff;}
.sidebar nav a.actif{background:var(--bleu-primaire);color:#fff;}
.sidebar nav a.actif svg{stroke:#fff;}
.sidebar .operateur{padding:12px;background:rgba(255,255,255,.06);border-radius:12px;font-size:12.5px;margin-top:10px;}
.sidebar .operateur strong{display:block;color:#fff;font-size:13.5px;margin-bottom:2px;}
.sidebar .deconnexion{margin-top:10px;text-align:center;font-size:13px;color:#F3B4B0;padding:9px;border-radius:10px;}
.sidebar .deconnexion:hover{background:rgba(255,255,255,.06);}

.main{padding:30px 38px 60px;}
.topbar-admin{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px;flex-wrap:wrap;gap:14px;}
.topbar-admin h1{font-family:'Fraunces',serif;font-size:24px;margin:0;color:var(--bleu-nuit);}
.topbar-admin p{margin:4px 0 0;font-size:13.5px;color:var(--gris);}

.cards-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:30px;}
.stat-card{background:#fff;border:1px solid var(--liseret);border-radius:16px;padding:20px 22px;}
.stat-card span.label{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--gris);font-weight:600;}
.stat-card strong{display:block;font-family:'Fraunces',serif;font-size:28px;color:var(--bleu-nuit);margin-top:6px;}

.panel{background:#fff;border:1px solid var(--liseret);border-radius:16px;padding:26px;margin-bottom:26px;}
.panel h2{font-size:17px;margin:0 0 18px;color:var(--bleu-nuit);}
.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;flex-wrap:wrap;gap:12px;}

table{width:100%;border-collapse:collapse;font-size:14px;}
th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.6px;color:var(--gris);padding:10px 14px;border-bottom:2px solid var(--liseret);}
td{padding:13px 14px;border-bottom:1px solid var(--liseret);color:var(--encre);}
tr:last-child td{border-bottom:none;}
tr:hover td{background:var(--bleu-brume);}
.badge-sexe{padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;}
.badge-F{background:#FCE9F1;color:#B23A73;}
.badge-M{background:var(--bleu-clair);color:var(--bleu-primaire);}
.lien-voir{color:var(--bleu-primaire);font-weight:600;font-size:13.5px;}
.lien-voir:hover{text-decoration:underline;}
.vide{text-align:center;color:var(--gris);padding:40px 10px;font-size:14px;}

.grille-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.pleine-largeur{grid-column:1/-1;}
@media(max-width:720px){.grille-form{grid-template-columns:1fr;}}

.fiche-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin-bottom:22px;}
.fiche-tete h1{font-family:'Fraunces',serif;font-size:23px;margin:0;color:var(--bleu-nuit);}
.fiche-infos{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:8px;}
.fiche-infos div span{display:block;font-size:11.5px;text-transform:uppercase;color:var(--gris);letter-spacing:.5px;margin-bottom:3px;}
.fiche-infos div strong{font-size:14.5px;color:var(--encre);}

.acte-item{border-left:3px solid var(--bleu-primaire);padding:14px 18px;background:var(--bleu-brume);border-radius:0 12px 12px 0;margin-bottom:14px;}
.acte-item .acte-tete{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--gris);margin-bottom:6px;}
.acte-item .acte-tete strong{color:var(--bleu-nuit);font-size:14.5px;}
.acte-item p{margin:4px 0;font-size:14px;color:var(--encre);}
.acte-item .champ-mini{font-size:12.5px;color:var(--gris);}

@media(max-width:900px){
  .shell{grid-template-columns:1fr;}
  .sidebar{position:sticky;top:0;z-index:40;flex-direction:row;align-items:center;padding:12px 16px;overflow-x:auto;}
  .sidebar .brand{border:0;margin:0;padding:0 14px 0 0;}
  .sidebar nav{flex-direction:row;}
  .sidebar .operateur,.sidebar .deconnexion{display:none;}
  .cards-stats{grid-template-columns:1fr 1fr;}
  .fiche-infos{grid-template-columns:1fr 1fr;}
}
