/* RDV App — L'Art de la Coiffure */
:root{
  --or:#c9a96e;
  --or-dark:#a88950;
  --noir:#1a1a1a;
  --noir-soft:#2a2a2a;
  --gris:#666;
  --gris-clair:#e8e4dd;
  --beige:#f6f1ea;
  --blanc:#fffdfa;
  --rouge:#c0392b;
  --vert:#27ae60;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Montserrat',system-ui,-apple-system,sans-serif;
  background:var(--beige);
  color:var(--noir);
  line-height:1.6;
  font-size:16px;
  min-height:100vh;
}
h1,h2,h3,h4{font-family:'Playfair Display',Georgia,serif;font-weight:400;letter-spacing:.5px}
.uppercase{
  text-transform:uppercase;
  letter-spacing:3px;
  font-size:.75rem;
  color:var(--or);
  font-weight:500;
}
a{color:var(--or-dark);text-decoration:none}

/* HEADER */
.rdv-header{
  background:var(--noir);
  color:#fff;
  padding:20px 24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}
.rdv-header .logo{
  font-family:'Playfair Display',serif;
  font-size:1.4rem;
  color:#fff;
}
.rdv-header .logo span{color:var(--or);font-style:italic;font-size:.85em}
.rdv-header .back{
  color:#fff;
  font-size:.85rem;
  letter-spacing:1px;
  text-transform:uppercase;
  opacity:.8;
  padding:10px 14px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:8px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
}

/* CONTAINER */
.rdv-wrap{
  max-width:780px;
  margin:0 auto;
  padding:32px 20px 80px;
}
.rdv-hero{
  text-align:center;
  margin-bottom:40px;
}
.rdv-hero h1{
  font-size:2.2rem;
  margin:12px 0 10px;
  color:var(--noir);
}
.rdv-hero p{color:var(--gris);max-width:520px;margin:0 auto;font-size:1.05rem}

/* STEPPER */
.stepper{
  display:flex;
  justify-content:center;
  gap:8px;
  margin:30px 0 40px;
  flex-wrap:wrap;
}
.step{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:.8rem;
  color:var(--gris);
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:1px;
}
.step .num{
  width:30px;height:30px;
  border-radius:50%;
  background:var(--gris-clair);
  color:var(--gris);
  display:flex;align-items:center;justify-content:center;
  font-weight:600;
  font-size:.85rem;
  font-family:'Montserrat',sans-serif;
  letter-spacing:0;
}
.step.active .num{background:var(--or);color:#fff}
.step.done .num{background:var(--noir);color:var(--or)}
.step.active{color:var(--noir)}
.step-sep{width:30px;height:1px;background:var(--gris-clair);align-self:center}

/* CARD */
.card{
  background:#fff;
  border-radius:16px;
  padding:28px 24px;
  box-shadow:0 2px 12px rgba(26,26,26,.06);
  margin-bottom:20px;
}
.card h2{font-size:1.5rem;margin-bottom:6px}
.card .sub{color:var(--gris);font-size:.95rem;margin-bottom:24px}

/* PRESTATIONS */
.prestations{display:grid;gap:14px}
.presta-card{
  border:2px solid var(--gris-clair);
  border-radius:12px;
  padding:18px 20px;
  cursor:pointer;
  transition:all .25s;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  min-height:44px;
  background:#fff;
}
.presta-card:hover{border-color:var(--or);transform:translateY(-2px)}
.presta-card.selected{border-color:var(--or);background:var(--beige)}
.presta-card .nom{font-family:'Playfair Display',serif;font-size:1.2rem;color:var(--noir)}
.presta-card .meta{font-size:.85rem;color:var(--gris);margin-top:4px}
.presta-card .prix{font-family:'Playfair Display',serif;font-size:1.4rem;color:var(--or-dark)}

/* DATE PICKER */
.date-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(95px,1fr));
  gap:10px;
}
.date-btn{
  background:#fff;
  border:2px solid var(--gris-clair);
  border-radius:10px;
  padding:12px 8px;
  text-align:center;
  cursor:pointer;
  transition:all .2s;
  min-height:64px;
  font-family:'Montserrat',sans-serif;
}
.date-btn:hover:not(:disabled){border-color:var(--or)}
.date-btn.selected{background:var(--noir);color:#fff;border-color:var(--noir)}
.date-btn.selected .day-num{color:var(--or)}
.date-btn:disabled{opacity:.35;cursor:not-allowed}
.date-btn .day-name{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:inherit;opacity:.7}
.date-btn .day-num{font-size:1.4rem;font-weight:600;display:block;margin:2px 0}
.date-btn .day-month{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;opacity:.7}

/* CRENEAUX */
.creneaux{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(85px,1fr));
  gap:8px;
  margin-top:20px;
}
.creneau-btn{
  background:#fff;
  border:2px solid var(--gris-clair);
  border-radius:10px;
  padding:12px 8px;
  cursor:pointer;
  font-size:.95rem;
  font-family:'Montserrat',sans-serif;
  font-weight:500;
  min-height:44px;
  transition:all .2s;
}
.creneau-btn:hover:not(:disabled){border-color:var(--or)}
.creneau-btn.selected{background:var(--or);color:#fff;border-color:var(--or)}
.creneau-btn:disabled{opacity:.3;cursor:not-allowed;text-decoration:line-through}
.creneau-empty{
  text-align:center;
  padding:30px 20px;
  color:var(--gris);
  font-style:italic;
}

/* FORMS */
.form-group{margin-bottom:18px}
.form-group label{
  display:block;
  font-size:.8rem;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:var(--noir);
  margin-bottom:8px;
  font-weight:500;
}
.form-group input,
.form-group textarea,
.form-group select{
  width:100%;
  padding:14px 14px;
  border:2px solid var(--gris-clair);
  border-radius:10px;
  font-size:16px;
  font-family:'Montserrat',sans-serif;
  background:#fff;
  color:var(--noir);
  transition:border-color .2s;
}
.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus{outline:none;border-color:var(--or)}
.form-group textarea{min-height:90px;resize:vertical}

/* BOUTONS */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:14px 28px;
  border-radius:10px;
  font-size:.85rem;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:2px;
  cursor:pointer;
  border:none;
  font-family:'Montserrat',sans-serif;
  min-height:48px;
  transition:all .25s;
}
.btn-or{background:var(--or);color:#fff;box-shadow:0 4px 12px rgba(201,169,110,.3)}
.btn-or:hover{background:var(--or-dark);transform:translateY(-1px)}
.btn-noir{background:var(--noir);color:#fff}
.btn-noir:hover{background:var(--noir-soft)}
.btn-ghost{background:transparent;color:var(--noir);border:2px solid var(--gris-clair)}
.btn-ghost:hover{border-color:var(--noir)}
.btn:disabled{opacity:.4;cursor:not-allowed}

.actions{display:flex;gap:12px;justify-content:space-between;margin-top:24px;flex-wrap:wrap}
.actions .btn{flex:1;min-width:140px}

/* RECAP */
.recap{
  background:var(--beige);
  border-radius:12px;
  padding:20px;
  margin-bottom:24px;
}
.recap-line{
  display:flex;
  justify-content:space-between;
  padding:8px 0;
  border-bottom:1px dashed var(--gris-clair);
  font-size:.95rem;
}
.recap-line:last-child{border:none;font-weight:600;padding-top:14px;font-size:1.05rem}
.recap-line .label{color:var(--gris);text-transform:uppercase;letter-spacing:1px;font-size:.75rem;font-weight:500}
.recap-line .val{color:var(--noir);text-align:right;font-weight:500}

/* SUCCESS */
.success-screen{
  text-align:center;
  padding:50px 20px;
}
.success-icon{
  width:80px;height:80px;
  background:var(--vert);
  border-radius:50%;
  margin:0 auto 24px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;
}
.success-screen h2{font-size:2rem;margin-bottom:12px}
.success-screen p{color:var(--gris);max-width:440px;margin:0 auto 24px;font-size:1.05rem}

/* ===== ADMIN ===== */
.admin-body{background:#f5f3ee}
.admin-header{
  background:var(--noir);
  color:#fff;
  padding:18px 24px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:12px;
}
.admin-header h1{font-size:1.3rem;color:#fff;font-weight:500}
.admin-header h1 span{color:var(--or);font-style:italic}
.admin-header .logout{color:#fff;opacity:.7;font-size:.85rem;padding:8px 14px;border:1px solid rgba(255,255,255,.2);border-radius:8px}
.admin-wrap{max-width:1100px;margin:0 auto;padding:24px 20px}

.tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}
.tab{
  padding:12px 20px;
  background:#fff;
  border:none;
  border-radius:10px;
  cursor:pointer;
  font-size:.85rem;
  text-transform:uppercase;
  letter-spacing:1.5px;
  font-weight:500;
  font-family:'Montserrat',sans-serif;
  color:var(--gris);
  min-height:44px;
}
.tab.active{background:var(--noir);color:var(--or)}

.stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  gap:14px;
  margin-bottom:24px;
}
.stat-card{
  background:#fff;
  border-radius:12px;
  padding:18px;
  text-align:center;
}
.stat-card .num{font-family:'Playfair Display',serif;font-size:2rem;color:var(--noir);display:block}
.stat-card .lbl{font-size:.75rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--gris);margin-top:4px;display:block}

.rdv-list{display:flex;flex-direction:column;gap:12px}
.rdv-item{
  background:#fff;
  border-radius:12px;
  padding:16px 18px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:14px;
  align-items:center;
  border-left:4px solid var(--gris-clair);
}
.rdv-item.en_attente{border-left-color:var(--or)}
.rdv-item.confirme{border-left-color:var(--vert)}
.rdv-item.annule{border-left-color:var(--rouge);opacity:.6}
.rdv-date{
  text-align:center;
  padding-right:14px;
  border-right:1px solid var(--gris-clair);
  min-width:70px;
}
.rdv-date .d{font-family:'Playfair Display',serif;font-size:1.8rem;color:var(--noir);display:block;line-height:1}
.rdv-date .m{font-size:.7rem;text-transform:uppercase;letter-spacing:1px;color:var(--gris)}
.rdv-date .h{font-size:.95rem;color:var(--or-dark);font-weight:600;margin-top:4px;display:block}
.rdv-info .nom{font-weight:600;font-size:1.05rem}
.rdv-info .meta{font-size:.85rem;color:var(--gris);margin-top:4px}
.rdv-info .meta a{color:var(--or-dark)}
.rdv-info .presta{font-size:.85rem;color:var(--noir);margin-top:4px;font-weight:500}
.rdv-actions{display:flex;flex-direction:column;gap:6px}
.rdv-actions button{
  padding:8px 14px;
  border:none;
  border-radius:8px;
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:1px;
  cursor:pointer;
  font-family:'Montserrat',sans-serif;
  font-weight:500;
  min-height:36px;
}
.btn-confirm{background:var(--vert);color:#fff}
.btn-cancel{background:var(--rouge);color:#fff}
.btn-del{background:#eee;color:var(--gris)}

.badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:20px;
  font-size:.7rem;
  text-transform:uppercase;
  letter-spacing:1px;
  font-weight:600;
  margin-top:6px;
}
.badge.en_attente{background:#fff3d6;color:#8a6d1a}
.badge.confirme{background:#d6f5e0;color:#1a6d3a}
.badge.annule{background:#f5d6d2;color:#8a2a1a}

/* LOGIN */
.login-screen{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:var(--noir);
}
.login-box{
  background:#fff;
  padding:40px 30px;
  border-radius:16px;
  max-width:380px;
  width:100%;
  text-align:center;
}
.login-box h1{font-size:1.6rem;margin-bottom:8px}
.login-box p{color:var(--gris);margin-bottom:24px}

/* MESSAGES */
.msg-list{display:flex;flex-direction:column;gap:12px;margin-top:24px}
.msg-item{
  background:#fff;
  border-radius:12px;
  padding:16px 18px;
  border-left:4px solid var(--or);
}
.msg-item .from{font-weight:600}
.msg-item .meta{font-size:.8rem;color:var(--gris);margin:4px 0 10px}
.msg-item .corps{font-size:.95rem;color:var(--noir-soft)}

/* RESPONSIVE */
@media(max-width:600px){
  .rdv-hero h1{font-size:1.7rem}
  .step{font-size:0;gap:0}
  .step .num{font-size:.85rem}
  .step-sep{width:20px}
  .card{padding:22px 18px}
  .actions{flex-direction:column-reverse}
  .actions .btn{width:100%}
  .rdv-item{grid-template-columns:auto 1fr;gap:10px}
  .rdv-actions{grid-column:1/-1;flex-direction:row}
  .rdv-actions button{flex:1}
}
