/* === Styles extraits de auth.html === */
html, body { height: 100%; }

.auth-wrap {
  position: relative;
  z-index: 1;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 2rem 1.5rem;
}

/* ── LOGO ── */
.auth-logo {
  text-align: center;
  margin-bottom: 2rem;
  animation: fadeUp .5s ease both;
}
.auth-logo-title {
  font-family: var(--font-display);
  font-size: clamp(2.5rem, 8vw, 4rem);
  letter-spacing: .04em;
  line-height: .95;
}
.auth-logo-title span { color: var(--red); }
.auth-logo-sub {
  font-size: .65rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--gold);
  margin-top: .5rem;
}

/* ── CARD ── */
.auth-card {
  width: 100%;
  max-width: 420px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: var(--r-lg);
  backdrop-filter: blur(8px);
  overflow: hidden;
  animation: fadeUp .5s .1s ease both;
}

/* ── ONGLETS ── */
.auth-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.auth-tab {
  padding: .9rem;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
  color: var(--muted);
  font-family: var(--font-body);
  font-size: .82rem;
  cursor: pointer;
  transition: all .2s;
}
.auth-tab.active    { color: var(--white); border-bottom-color: var(--red); }
.auth-tab:hover:not(.active) { color: var(--white); background: rgba(255,255,255,.02); }

/* ── CORPS ── */
.auth-body { padding: 1.8rem; }

.auth-form         { display: none; }
.auth-form.active  { display: block; animation: fadeUp .3s ease both; }

.f-label {
  display: block;
  font-size: .65rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: .35rem;
  margin-top: 1rem;
}
.f-label:first-child { margin-top: 0; }

.two-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .8rem;
}

/* ── MOT DE PASSE OUBLIÉ ── */
.forgot-link {
  font-size: .72rem;
  color: var(--muted);
  text-align: right;
  margin-top: .35rem;
  cursor: pointer;
  transition: color .2s;
  user-select: none;
}
.forgot-link:hover { color: var(--gold); }

/* ── PILLS DISCIPLINES ── */
.disc-grid {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .4rem;
}

/* ── ÉCRAN EN ATTENTE ── */
.pending-screen {
  display: none;
  text-align: center;
  padding: 2.5rem 1.8rem;
  animation: fadeUp .4s ease both;
}
.pending-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  animation: fadeIn .4s ease both;
}
.pending-title {
  font-family: var(--font-display);
  font-size: 2rem;
  letter-spacing: .03em;
  margin-bottom: .6rem;
}
.pending-desc {
  font-size: .82rem;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}
.pending-email {
  display: inline-block;
  font-size: .75rem;
  color: var(--gold);
  background: rgba(248,231,2,.08);
  border: 1px solid rgba(248,231,2,.2);
  border-radius: var(--r-sm);
  padding: .3rem .8rem;
  margin-bottom: 1rem;
}

/* ── SUBMIT ── */
.auth-submit { margin-top: 1.4rem; }

/* ── FOOTER ── */
.auth-footer {
  text-align: center;
  font-size: .65rem;
  color: #333;
  margin-top: 1.5rem;
}
.auth-footer a { color: #444; text-decoration: none; transition: color .2s; }
.auth-footer a:hover { color: var(--muted); }

/* ── LOADING STATE ── */
.btn.loading { opacity: .6; cursor: not-allowed; }
/* Correctif PWA Android — clavier sur auth */
html, body {
  min-height: 100%;
  height: auto;
  overflow-x: hidden;
  overflow-y: auto;
}
body {
  -webkit-user-select: auto;
  user-select: auto;
}
.auth-wrap {
  min-height: 100dvh;
  padding-bottom: calc(2rem + env(safe-area-inset-bottom));
}
.auth-card, .auth-body, .auth-form {
  touch-action: manipulation;
}
.auth-card input,
.auth-card textarea,
.auth-card select {
  position: relative;
  z-index: 2;
  font-size: 16px !important;
  -webkit-user-select: text;
  user-select: text;
  touch-action: manipulation;
  caret-color: var(--gold);
}
.auth-card input:focus,
.auth-card textarea:focus,
.auth-card select:focus {
  outline: none;
  border-color: var(--red);
  box-shadow: 0 0 0 2px rgba(248,231,2,.12);
}
@media (max-width: 560px) {
  .auth-wrap {
    justify-content: flex-start;
    padding-top: max(1.2rem, env(safe-area-inset-top));
  }
  .auth-logo { margin-bottom: 1.2rem; }
}

/* ══════════════════════════════════════════════
   NOUVEAU v16 — Section enfant(s)
══════════════════════════════════════════════ */
.form-divider {
  border: none;
  border-top: 1px solid rgba(255,255,255,.06);
  margin: 1.4rem 0;
}
.enfant-section-label {
  font-size: .72rem;
  color: var(--muted);
  line-height: 1.5;
  margin-top: .2rem;
}
#enfant-section {
  margin-top: 1rem;
  animation: fadeUp .25s ease both;
}
.enfant-block {
  background: rgba(248,231,2,.04);
  border: 1px solid rgba(248,231,2,.15);
  border-left: 3px solid var(--gold);
  border-radius: var(--r-lg);
  padding: 1rem;
  margin-bottom: .8rem;
}
.enfant-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .8rem;
}
.enfant-title {
  font-size: .65rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--gold);
  font-weight: 500;
}
.enfant-remove {
  background: none;
  border: none;
  color: var(--muted);
  font-size: .75rem;
  cursor: pointer;
  padding: .1rem .4rem;
  border-radius: var(--r-sm);
  transition: all .2s;
  line-height: 1;
}
.enfant-remove:hover { color: var(--red); background: rgba(248,231,2,.08); }
.enfant-block .f-label { margin-top: .7rem; }
.enfant-block .f-label:first-of-type { margin-top: 0; }
.btn-add-enfant {
  width: 100%;
  justify-content: center;
  margin-top: .4rem;
  font-size: .78rem;
  border-style: dashed;
  opacity: .7;
  transition: opacity .2s;
}
.btn-add-enfant:hover { opacity: 1; }

/* ── SOUS-CATÉGORIES DANS LE FORMULAIRE ────────────────────── */
.form-subcats { margin-top: .5rem; }
.form-subcat-group { margin-bottom: .7rem; }
.form-subcat-lbl {
  font-size: .58rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gold); margin-bottom: .35rem;
  display: flex; align-items: center; gap: .4rem;
}
.form-subcat-lbl::after {
  content: ''; flex: 1; height: 1px; background: rgba(248,231,2,.2);
}

.u-auth-inline-1 { width:100%;justify-content:center }

.u-auth-inline-2 { justify-content:flex-start;margin-top:.8rem }

.u-auth-inline-3 { display:none }

.u-auth-inline-4 { margin-top:0 }

.u-auth-inline-5 { margin-top:0 }

.u-auth-inline-6 { color:#555;text-transform:none;letter-spacing:0 }

.u-auth-inline-7 { justify-content:flex-start;align-items:flex-start;gap:.6rem }

.u-auth-inline-8 { margin-top:.1rem;flex-shrink:0 }

.u-auth-inline-9 { display:none }

.u-mt-0 { margin-top: 0; }
.u-muted-normal { color: #555; text-transform: none; letter-spacing: 0; }


/* ── Préférences de rappels inscription — V70 ───────────────────── */
.reminder-pref-section{
  margin:1rem 0;
  padding:.95rem;
  border:1px solid rgba(248,231,2,.18);
  border-radius:var(--r-lg);
  background:rgba(248,231,2,.045);
}
.reminder-pref-section.u-hidden{display:none;}
.reminder-pref-head{display:flex;flex-direction:column;gap:.18rem;margin-bottom:.7rem;}
.reminder-pref-head strong{font-size:.78rem;color:var(--gold);letter-spacing:.04em;text-transform:uppercase;}
.reminder-pref-head span,.reminder-pref-help{font-size:.78rem;color:var(--muted);line-height:1.35;margin:0;}
.reminder-pref-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.75rem;
  padding:.7rem 0;
  border-top:1px solid rgba(255,255,255,.08);
}
.reminder-pref-row:first-child{border-top:none;}
.reminder-pref-title{font-size:.88rem;font-weight:700;color:var(--text);line-height:1.25;}
.reminder-pref-owner{font-size:.74rem;color:var(--muted);margin-top:.15rem;}
.reminder-pref-checks{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end;}
.reminder-pref-chip{
  display:inline-flex;align-items:center;gap:.28rem;
  padding:.36rem .5rem;border:1px solid rgba(248,231,2,.22);border-radius:999px;
  background:rgba(0,0,0,.18);font-size:.74rem;color:var(--text);white-space:nowrap;
}
.reminder-pref-chip input{width:auto;margin:0;accent-color:var(--gold);}
@media(max-width:560px){.reminder-pref-row{flex-direction:column}.reminder-pref-checks{justify-content:flex-start}}


/* RGPD v163 */
.privacy-consent-box{margin:16px 0 10px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.05)}
.privacy-consent-row{align-items:flex-start;margin:0}.privacy-consent-row a{color:#ffd36a;font-weight:800}.privacy-consent-help{margin:8px 0 0 34px;font-size:.84rem;line-height:1.45;color:rgba(255,255,255,.68)}

/* Droit à l’image — v180 */
.image-rights-box{margin:16px 0 10px;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:rgba(255,255,255,.045)}
.image-rights-title{font-weight:900;margin-bottom:6px;color:#fff}
.image-rights-info{display:grid;gap:8px;margin:10px 0 12px;padding:12px;border:1px solid rgba(255,211,106,.16);border-radius:14px;background:rgba(255,211,106,.055)}
.image-rights-info p{margin:0;color:rgba(255,255,255,.74);font-size:.84rem;line-height:1.45}.image-rights-info strong{color:#fff}
.image-rights-help,.image-rights-note{margin:0 0 10px;font-size:.84rem;line-height:1.45;color:rgba(255,255,255,.70)}
.image-rights-note{margin:10px 0 0;color:rgba(255,255,255,.58)}
.image-rights-choice{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;margin-top:8px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(255,255,255,.04);cursor:pointer}
.image-rights-choice input{margin-top:2px;accent-color:#ffd36a}
.image-rights-choice span{font-size:.92rem;font-weight:800;color:#fff;line-height:1.25}
.image-rights-choice-no{border-color:rgba(255,83,83,.28);background:rgba(255,83,83,.06)}


/* Correctif v180 — droit à l’image repliable */
.image-rights-details{display:block}
.image-rights-details summary{list-style:none;cursor:pointer;font-weight:900;color:#ffd36a;display:flex;align-items:center;justify-content:space-between;gap:10px;line-height:1.25}
.image-rights-details summary::-webkit-details-marker{display:none}
.image-rights-details summary::after{content:"⌄";font-size:1.1rem;transition:transform .18s ease;color:#fff}
.image-rights-details[open] summary::after{transform:rotate(180deg)}
.image-rights-details-body{display:grid;gap:8px;margin-top:10px}
.image-rights-details-body p{margin:0;color:rgba(255,255,255,.74);font-size:.84rem;line-height:1.45}

/* ── Inscription Google ── */
.google-register-box {
  margin-bottom: 1.2rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.auth-google-btn {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}
.auth-google-btn::before {
  content: 'G';
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.3rem;
  height: 1.3rem;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  color: #111;
  font-weight: 800;
  font-family: Arial, sans-serif;
}
.google-register-help,
.google-register-status {
  margin-top: .55rem;
  font-size: .72rem;
  line-height: 1.5;
  color: var(--muted);
}
.google-register-status {
  color: var(--gold);
}
.auth-google-locked {
  opacity: .78;
  cursor: not-allowed;
}

.auth-google-login-btn {
  margin-top: .75rem;
  width: 100%;
}
