/* =============================================================================
   ESPACE UTILISATEUR (refonte v2)
   Pages : connexion.php, mdp_oublie.php, mdp_reinitialisation.php,
           mon_compte.php, contact.php

   Chargé APRÈS /css/v2/home-refonte.css, dont il réutilise les variables
   (--hv3-*) et les composants (.hv3-btn, .hv3-cta-band…). Les classes propres
   à ces pages utilisent le préfixe .acc-.

   SOMMAIRE
   1. Réglages de page
   2. En-tête de page (titre + sous-titre)
   3. Mise en page : carte seule / carte + argumentaire
   4. Carte, onglets
   5. Formulaires (champs, mot de passe, messages)
   6. Mon compte (profil, rapports, zone sensible)
   7. Contact
   8. Responsive
   ============================================================================= */


/* =============================================================================
   1. RÉGLAGES DE PAGE
   ============================================================================= */

.acc-page main.acc-main {
  background-size: 100% 760px;
  overflow-x: clip;
}

.acc-page [hidden] { display: none !important; }

.acc-section {
  padding: 34px 0 88px;
}


/* =============================================================================
   2. EN-TÊTE DE PAGE
   ============================================================================= */

.acc-head {
  max-width: 640px;
  margin: 0 auto 30px;
  text-align: center;
}

.acc-h1 {
  font-weight: 800;
  font-size: 36px;
  line-height: 1.15;
  letter-spacing: -.6px;
  color: var(--hv3-navy);
  margin: 0 0 10px;
}

.acc-h1-accent {
  background-image: linear-gradient(100deg, #FF1C60 0%, #FE6A56 70%, #FF8A5B 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: var(--hv3-match);
}

.acc-sub {
  font-size: 16px;
  line-height: 1.55;
  color: var(--hv3-muted);
  margin: 0;
}


/* =============================================================================
   3. MISE EN PAGE
   ============================================================================= */

/* Carte seule, centrée (mot de passe, contact) */
.acc-narrow {
  max-width: 480px;
  margin: 0 auto;
}

/* Carte + argumentaire (connexion) */
.acc-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 460px);
  gap: 56px;
  align-items: center;
  max-width: 1040px;
  margin: 0 auto;
}

.acc-pitch .hv3-eyebrow { margin-bottom: 10px; }

.acc-pitch-title {
  font-weight: 800;
  font-size: 34px;
  line-height: 1.15;
  letter-spacing: -.6px;
  color: var(--hv3-navy);
  margin: 0 0 14px;
}

.acc-pitch-lead {
  font-size: 16px;
  line-height: 1.65;
  color: var(--hv3-muted);
  margin: 0 0 26px;
}

.acc-benefits {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 14px;
}

.acc-benefit {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 16px;
  border-radius: var(--hv3-radius-sm);
  background: rgba(255, 255, 255, .7);
  border: 1px solid var(--hv3-border);
}

.acc-benefit-ico {
  flex: 0 0 40px;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 19px;
  background: var(--hv3-match-soft);
}

.acc-benefit-ico-place { background: var(--hv3-place-soft); }
.acc-benefit-ico-navy  { background: var(--hv3-navy-soft); }

.acc-benefit strong {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--hv3-navy);
  margin-bottom: 2px;
}

.acc-benefit span {
  font-size: 14px;
  line-height: 1.5;
  color: var(--hv3-muted);
}


/* =============================================================================
   4. CARTE, ONGLETS
   ============================================================================= */

.acc-card {
  background: #FFFFFF;
  border: 1px solid var(--hv3-border);
  border-radius: var(--hv3-radius);
  box-shadow: var(--hv3-shadow);
  padding: 34px 34px 30px;
}

.acc-card + .acc-card { margin-top: 22px; }

.acc-card-ico {
  width: 56px;
  height: 56px;
  margin: 0 auto 16px;
  border-radius: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  background: var(--hv3-navy-soft);
}

.acc-card-title {
  font-weight: 700;
  font-size: 22px;
  line-height: 1.25;
  color: var(--hv3-navy);
  margin: 0 0 6px;
}

.acc-card-text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--hv3-muted);
  margin: 0 0 22px;
}

.acc-center { text-align: center; }

/* Onglets "Se connecter / Créer un compte" (contrôle segmenté) */
.acc-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4px;
  padding: 4px;
  margin: 0 0 26px;
  border-radius: 100px;
  background: var(--hv3-soft);
  border: 1px solid var(--hv3-border);
}

.acc-tab {
  display: block;
  padding: 11px 12px;
  border-radius: 100px;
  font-size: 14.5px;
  font-weight: 700;
  text-align: center;
  color: var(--hv3-muted);
  transition: background var(--hv3-ease), color var(--hv3-ease), box-shadow var(--hv3-ease);
}

.acc-tab:hover { color: var(--hv3-navy); }

.acc-tab.is-active {
  color: var(--hv3-navy);
  background: #FFFFFF;
  box-shadow: 0 4px 12px -6px rgba(24, 20, 87, .35);
}

.acc-panel-switch {
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid var(--hv3-border);
  font-size: 14px;
  text-align: center;
  color: var(--hv3-muted);
}

.acc-link {
  font-weight: 700;
  color: var(--hv3-navy);
  text-decoration: underline;
  text-decoration-color: rgba(24, 20, 87, .25);
  text-underline-offset: 3px;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}

.acc-link:hover {
  color: var(--hv3-match);
  text-decoration-color: currentColor;
}


/* =============================================================================
   5. FORMULAIRES
   ============================================================================= */

.acc-form { text-align: left; }

.acc-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}

.acc-field { margin: 0 0 16px; }

.acc-label-line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}

.acc-label {
  display: block;
  margin: 0 0 7px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--hv3-navy);
}

.acc-label-link {
  font-size: 13px;
  font-weight: 600;
  color: var(--hv3-muted);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.acc-label-link:hover { color: var(--hv3-match); }

.acc-page .acc-input {
  display: block;
  width: 100%;
  height: 50px;
  padding: 0 16px;
  font-size: 15.5px;
  color: var(--hv3-navy);
  background: #FFFFFF;
  border: 1.5px solid var(--hv3-border);
  border-radius: 12px;
  box-shadow: none;
  transition: border-color var(--hv3-ease), box-shadow var(--hv3-ease);
}

.acc-page .acc-input::placeholder { color: #A9ABC6; }

.acc-page .acc-input:hover { border-color: #CFCDE6; }

/* outline est neutralisé en !important par global-style.css : on passe par box-shadow */
.acc-page .acc-input:focus {
  border-color: var(--hv3-navy);
  box-shadow: 0 0 0 4px rgba(24, 20, 87, .12);
}

/* Erreur affichée seulement après une première saisie ou un envoi */
.acc-page .acc-form.is-submitted .acc-input:invalid,
.acc-page .acc-input.is-touched:invalid {
  border-color: #E5484D;
}

.acc-hint {
  margin: 6px 0 0;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--hv3-muted);
}

/* Mot de passe : bouton afficher / masquer */
.acc-pass {
  position: relative;
}

.acc-page .acc-pass .acc-input { padding-right: 52px; }

.acc-pass-toggle {
  position: absolute;
  top: 50%;
  right: 6px;
  transform: translateY(-50%);
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--hv3-muted);
  cursor: pointer;
}

.acc-pass-toggle:hover { color: var(--hv3-navy); background: var(--hv3-soft); }
.acc-pass-toggle svg { width: 20px; height: 20px; }
.acc-pass-toggle .acc-eye-off { display: none; }
.acc-pass-toggle[aria-pressed="true"] .acc-eye-on  { display: none; }
.acc-pass-toggle[aria-pressed="true"] .acc-eye-off { display: block; }

/* Pot de miel anti-robots : invisible mais présent dans le formulaire */
.acc-hp {
  position: absolute !important;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

/* Bouton principal (bleu nuit, couleur neutre du compte) */
.acc-submit {
  width: 100%;
  margin-top: 6px;
  color: #FFFFFF;
  background-image: linear-gradient(110deg, #1D1766 0%, #3F2F9A 55%, #1D1766 100%);
  box-shadow: 0 10px 22px -10px rgba(24, 20, 87, .7);
  cursor: pointer;
}

.acc-submit:hover { color: #FFFFFF; box-shadow: 0 14px 26px -10px rgba(24, 20, 87, .75); }

.acc-btn-ghost {
  color: var(--hv3-navy);
  background: #FFFFFF;
  border: 1.5px solid var(--hv3-border);
}

.acc-btn-ghost:hover { color: var(--hv3-navy); border-color: #CFCDE6; }

/* Messages (erreur / succès) */
.acc-alert {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  margin: 0 0 20px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

.acc-alert-ico { flex: 0 0 auto; font-size: 16px; line-height: 1.3; }

.acc-alert-error {
  color: #A1252B;
  background: #FFF0F1;
  border: 1px solid #FFD3D6;
}

.acc-alert-success {
  color: #0B6F66;
  background: var(--hv3-place-soft);
  border: 1px solid #BDEFE7;
}

.acc-alert a { color: inherit; font-weight: 700; text-decoration: underline; }

.acc-legal {
  margin: 14px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
  text-align: center;
  color: var(--hv3-muted);
}

.acc-legal a { color: var(--hv3-navy); text-decoration: underline; text-underline-offset: 2px; }

.acc-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 18px;
  font-size: 14px;
  font-weight: 600;
  color: var(--hv3-muted);
}

.acc-back:hover { color: var(--hv3-navy); }


/* =============================================================================
   6. MON COMPTE
   ============================================================================= */

.acc-account {
  max-width: 820px;
  margin: 0 auto;
}

/* Carte d'identité : avatar + nom + déconnexion */
.acc-profile {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px 26px;
  margin-bottom: 18px;
  background: #FFFFFF;
  border: 1px solid var(--hv3-border);
  border-radius: var(--hv3-radius);
  box-shadow: var(--hv3-shadow-sm);
}

.acc-avatar {
  flex: 0 0 60px;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 21px;
  font-weight: 800;
  letter-spacing: .5px;
  color: #FFFFFF;
  background-image: linear-gradient(135deg, #FF1C60 0%, #FE6A56 100%);
  box-shadow: 0 8px 18px -8px rgba(255, 28, 96, .6);
}

.acc-profile-txt { flex: 1 1 auto; min-width: 0; }

.acc-profile-name {
  font-size: 20px;
  font-weight: 700;
  color: var(--hv3-navy);
  margin: 0 0 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.acc-profile-mail {
  font-size: 14px;
  color: var(--hv3-muted);
  margin: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.acc-logout {
  flex: 0 0 auto;
  padding: 11px 18px;
  font-size: 14px;
}

.acc-logout svg { width: 16px; height: 16px; }

/* Onglets de rubrique */
.acc-nav {
  display: flex;
  gap: 6px;
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
  border-bottom: 1px solid var(--hv3-border);
}

.acc-nav-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  margin-bottom: -1px;
  border: 0;
  border-bottom: 3px solid transparent;
  background: none;
  font-size: 15px;
  font-weight: 700;
  color: var(--hv3-muted);
  cursor: pointer;
  transition: color var(--hv3-ease), border-color var(--hv3-ease);
}

.acc-nav-btn:hover { color: var(--hv3-navy); }

.acc-nav-btn[aria-selected="true"] {
  color: var(--hv3-navy);
  border-bottom-color: var(--hv3-match);
}

.acc-nav-count {
  min-width: 22px;
  padding: 2px 7px;
  border-radius: 100px;
  font-size: 12px;
  font-weight: 700;
  color: var(--hv3-navy);
  background: var(--hv3-navy-soft);
}

.acc-account .acc-card { padding: 30px; }

.acc-card-head { margin-bottom: 22px; }
.acc-card-head .acc-card-text { margin: 0; }

.acc-form-foot {
  display: flex;
  justify-content: flex-end;
  margin-top: 6px;
}

.acc-form-foot .acc-submit { width: auto; }

/* Rapports PDF */
.acc-reports {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}

.acc-report {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 16px;
  border: 1px solid var(--hv3-border);
  border-radius: var(--hv3-radius-sm);
  transition: border-color var(--hv3-ease), background var(--hv3-ease), transform var(--hv3-ease);
}

.acc-report:hover {
  border-color: #CFCDE6;
  background: var(--hv3-soft);
  transform: translateY(-1px);
}

.acc-report-ico {
  flex: 0 0 42px;
  width: 42px;
  height: 42px;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .5px;
  color: #E0104F;
  background: var(--hv3-match-soft);
}

.acc-report-txt { flex: 1 1 auto; min-width: 0; }

.acc-report-name {
  display: block;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--hv3-navy);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.acc-report-date { font-size: 13px; color: var(--hv3-muted); }

.acc-report-dl {
  flex: 0 0 auto;
  font-size: 13.5px;
  font-weight: 700;
  color: var(--hv3-navy);
  white-space: nowrap;
}

.acc-report:hover .acc-report-dl { color: var(--hv3-match); }

.acc-empty {
  padding: 30px 16px;
  text-align: center;
  border: 1.5px dashed var(--hv3-border);
  border-radius: var(--hv3-radius-sm);
}

.acc-empty-ico { font-size: 30px; line-height: 1; margin-bottom: 10px; }

.acc-empty p {
  margin: 0 0 16px;
  font-size: 15px;
  color: var(--hv3-muted);
}

/* Zone sensible : suppression du compte */
.acc-danger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 18px;
  padding: 18px 22px;
  border: 1px solid #FFD3D6;
  border-radius: var(--hv3-radius-sm);
  background: #FFFAFA;
}

.acc-danger strong {
  display: block;
  font-size: 15px;
  color: var(--hv3-navy);
  margin-bottom: 2px;
}

.acc-danger span {
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--hv3-muted);
}

.acc-btn-danger {
  flex: 0 0 auto;
  padding: 11px 18px;
  font-size: 14px;
  color: #C42D33;
  background: #FFFFFF;
  border: 1.5px solid #FFC2C6;
}

.acc-btn-danger:hover { color: #FFFFFF; background: #E5484D; border-color: #E5484D; }


/* =============================================================================
   7. CONTACT
   ============================================================================= */

.acc-mail {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 6px 6px 18px;
  margin: 0 0 16px;
  border: 1.5px solid var(--hv3-border);
  border-radius: 100px;
  background: var(--hv3-soft);
}

.acc-mail-addr {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 16px;
  font-weight: 700;
  color: var(--hv3-navy);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  text-align: left;
}

.acc-copy {
  flex: 0 0 auto;
  padding: 9px 16px;
  font-size: 13.5px;
  cursor: pointer;
}

.acc-copy.is-done { color: #0B6F66; border-color: #BDEFE7; background: var(--hv3-place-soft); }

.acc-mail-cta { width: 100%; }

.acc-topics {
  list-style: none;
  padding: 0;
  margin: 26px 0 0;
  display: grid;
  gap: 8px;
  text-align: left;
}

.acc-topics li {
  display: flex;
  gap: 10px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--hv3-muted);
}

.acc-topics li span { flex: 0 0 auto; }

.acc-help {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  max-width: 820px;
  margin: 34px auto 0;
}

.acc-help-link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 18px;
  border-radius: var(--hv3-radius-sm);
  border: 1px solid var(--hv3-border);
  background: #FFFFFF;
  transition: transform var(--hv3-ease), box-shadow var(--hv3-ease);
}

.acc-help-link:hover {
  transform: translateY(-2px);
  box-shadow: var(--hv3-shadow-sm);
}

.acc-help-link strong { font-size: 15px; color: var(--hv3-navy); }
.acc-help-link span { font-size: 13.5px; line-height: 1.5; color: var(--hv3-muted); }


/* =============================================================================
   8. RESPONSIVE
   ============================================================================= */

@media (max-width: 991px) {
  .acc-split {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
    max-width: 520px;
  }

  /* Sur mobile, le formulaire passe avant l'argumentaire */
  .acc-split .acc-card { order: -1; }

  .acc-pitch-title { font-size: 26px; }
}

@media (max-width: 767px) {
  .acc-page main.acc-main { background-size: 100% 560px; }

  .acc-section { padding: 20px 0 56px; }
  .acc-head { margin-bottom: 22px; }
  .acc-h1 { font-size: 27px; letter-spacing: -.3px; }
  .acc-sub { font-size: 14.5px; }

  .acc-card,
  .acc-account .acc-card { padding: 24px 18px 22px; border-radius: 18px; }

  .acc-row { grid-template-columns: 1fr; gap: 0; }

  .acc-profile { flex-wrap: wrap; padding: 18px; gap: 14px; }
  .acc-avatar { flex-basis: 50px; width: 50px; height: 50px; font-size: 18px; }
  .acc-profile-txt { flex-basis: calc(100% - 64px); }
  .acc-logout { width: 100%; }

  .acc-nav-btn { padding: 12px 10px; font-size: 14px; }

  .acc-form-foot .acc-submit { width: 100%; }

  .acc-report-dl span { display: none; }

  .acc-danger { flex-direction: column; align-items: stretch; text-align: left; }

  .acc-help { grid-template-columns: 1fr; }
}
