
:root{
  --bleu-nuit:#0a1c3a;
  --bleu-profond:#112b4d;
  --or:#F0B429;
  --or-clair:#FFD27F;
  --orange:#FF8C42;
  --texte-clair:#F5F7FA;
  --texte-doux:rgba(245,247,250,0.68);
  --verre:rgba(255,255,255,0.05);
  --verre-fort:rgba(255,255,255,0.09);
  --bordure-verre:rgba(255,255,255,0.12);
  --bordure-or:rgba(240,180,41,0.35);
  --ombre-douce:0 20px 50px rgba(0,0,0,0.35);
  --rapide:0.2s cubic-bezier(.4,0,.2,1);
  --moyen:0.45s cubic-bezier(.4,0,.2,1);
  --font-titre:'DM Serif Display', Georgia, serif;
  --font-corps:'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  /* accent dynamique du portail sélectionné (mis à jour en JS) */
  --accent:#F0B429;
  --accent-clair:#FFD27F;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
body{
  font-family:var(--font-corps);color:var(--texte-clair);background:var(--bleu-nuit);
  line-height:1.6;min-height:100vh;overflow-x:hidden;
}
img{max-width:100%;display:block;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
a{text-decoration:none;color:inherit;}
input{font-family:inherit;}
label{display:block;}

a:focus-visible, button:focus-visible, input:focus-visible{
  outline:3px solid var(--accent);outline-offset:3px;border-radius:4px;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.01ms !important; transition-duration:0.01ms !important;}
}

@keyframes apparait-monte{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}

/* ==========================================================================
   MISE EN PAGE GÉNÉRALE — écran divisé en deux
   ========================================================================== */
.page-connexion{min-height:100vh;display:flex;}

/* ---------- Volet visuel (image du portail) ---------- */
.volet-visuel{
  position:relative;flex:1 1 52%;min-height:46vh;overflow:hidden;
  display:flex;flex-direction:column;justify-content:space-between;
  background:var(--bleu-profond);
}
.volet-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:opacity 0.45s ease, transform 8s linear;opacity:1;transform:scale(1.04);}
.volet-image.transition{opacity:0;}
.volet-voile{
  position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(10,28,58,0.55) 0%, rgba(10,28,58,0.35) 38%, rgba(8,16,34,0.92) 100%);
  transition:background var(--moyen);
}
.volet-voile::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 15% 100%, color-mix(in srgb, var(--accent) 30%, transparent) 0%, transparent 55%);
  transition:background var(--moyen);
}

.portails-nav{position:relative;z-index:2;padding:28px 28px 0;}
.portails-switch{
  position:relative;display:inline-flex;flex-wrap:wrap;gap:4px;
  background:rgba(10,28,58,0.55);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  padding:5px;border-radius:13px;border:1px solid var(--bordure-verre);
}
.indicateur-portail{
  position:absolute;top:5px;bottom:5px;left:5px;width:0;
  background:linear-gradient(135deg, var(--accent-clair), var(--accent));border-radius:9px;
  transition:left var(--moyen), width var(--moyen), background var(--rapide);z-index:0;
}
.portail-pill{
  position:relative;z-index:1;padding:9px 16px;border-radius:9px;font-weight:600;font-size:0.83rem;
  color:rgba(245,247,250,0.75);transition:color var(--rapide);white-space:nowrap;
}
.portail-pill.actif{color:#1a1204;}

.volet-texte{position:relative;z-index:2;padding:34px 34px 42px;max-width:520px;}
.volet-tag{
  display:inline-block;font-size:0.76rem;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--accent-clair);margin-bottom:14px;transition:color var(--rapide);
}
.volet-titre{
  font-family:var(--font-titre);font-weight:400;font-size:clamp(1.7rem,3.2vw,2.5rem);line-height:1.2;margin-bottom:14px;
}
.volet-accroche{font-size:0.98rem;color:rgba(245,247,250,0.82);max-width:440px;}

/* ---------- Volet formulaire ---------- */
.volet-form{
  flex:1 1 48%;max-width:560px;display:flex;flex-direction:column;justify-content:center;
  padding:56px clamp(28px,6vw,72px);position:relative;
}
.btn-retour{
  display:inline-flex;align-items:center;gap:8px;font-size:0.83rem;font-weight:600;
  color:var(--texte-clair);background:var(--verre);border:1.5px solid var(--bordure-verre);
  padding:9px 16px 9px 14px;border-radius:999px;
  transition:border-color var(--rapide), background var(--rapide), transform var(--rapide), color var(--rapide);
}
.btn-retour svg{width:14px;height:14px;flex-shrink:0;transition:transform var(--rapide);}
.btn-retour:hover{border-color:var(--accent);background:rgba(255,255,255,0.09);color:var(--accent-clair);}
.btn-retour:hover svg{transform:translateX(-3px);}

.retour-site{position:absolute;top:28px;left:clamp(28px,6vw,72px);z-index:5;}

.form-logo{display:flex;align-items:center;gap:9px;font-family:var(--font-titre);font-size:1.25rem;margin-bottom:44px;
  opacity:0;animation:apparait-monte 0.6s ease 0.05s forwards;}
.form-logo img{height:36px;width:auto;flex-shrink:0;}
.form-logo .accent{color:var(--orange);}

.form-zone{opacity:0;animation:apparait-monte 0.6s ease 0.15s forwards;}
.form-zone-cachee{display:none;}

.form-eyebrow{
  display:block;font-size:0.78rem;font-weight:700;letter-spacing:0.07em;text-transform:uppercase;
  color:var(--accent);margin-bottom:10px;transition:color var(--rapide);
}
.form-titre{font-family:var(--font-titre);font-weight:400;font-size:1.7rem;margin-bottom:10px;color:var(--texte-clair);}
.form-sous-titre{font-size:0.92rem;color:var(--texte-doux);margin-bottom:32px;max-width:420px;}

.champ{margin-bottom:20px;}
.champ span{display:block;font-size:0.83rem;font-weight:600;color:rgba(245,247,250,0.85);margin-bottom:8px;}
.champ input{
  width:100%;padding:13px 16px;border-radius:11px;border:1.5px solid var(--bordure-verre);
  background:var(--verre);color:var(--texte-clair);font-size:0.94rem;
  transition:border-color var(--rapide), box-shadow var(--rapide);
}
.champ input::placeholder{color:rgba(245,247,250,0.32);}
.champ input:focus{
  border-color:var(--accent);outline:none;
  box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 18%, transparent);
}
.champ-mdp-zone{position:relative;}
.champ-mdp-zone input{padding-right:46px;}
.bouton-oeil{
  position:absolute;right:6px;top:50%;transform:translateY(-50%);width:34px;height:34px;border-radius:8px;
  display:flex;align-items:center;justify-content:center;color:var(--texte-doux);transition:color var(--rapide), background var(--rapide);
}
.bouton-oeil:hover{color:var(--texte-clair);background:rgba(255,255,255,0.06);}
.bouton-oeil svg{width:19px;height:19px;}
.bouton-oeil .icone-barree{display:none;}
.bouton-oeil.visible .icone-ouvert{display:none;}
.bouton-oeil.visible .icone-barree{display:block;}

.ligne-options{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:28px;}
.case-souvenir{display:flex;align-items:center;gap:8px;font-size:0.85rem;color:var(--texte-doux);cursor:pointer;}
.case-souvenir input{accent-color:var(--accent);width:16px;height:16px;cursor:pointer;}
.lien-oublie{font-size:0.85rem;font-weight:600;color:var(--accent-clair);transition:color var(--rapide);}
.lien-oublie:hover{color:var(--texte-clair);}

.btn-connexion{
  width:100%;padding:15px;border-radius:11px;font-weight:700;font-size:0.96rem;color:#1a1204;
  background:linear-gradient(180deg, var(--accent-clair), var(--accent));
  box-shadow:0 10px 28px color-mix(in srgb, var(--accent) 30%, transparent), inset 0 1px 0 rgba(255,255,255,0.4);
  transition:transform var(--rapide), box-shadow var(--rapide), background var(--rapide);
}
.btn-connexion:hover{transform:translateY(-2px);}

.note-demo{margin-top:20px;font-size:0.78rem;color:rgba(245,247,250,0.4);text-align:center;}

.lien-retour{margin-bottom:26px;}

.confirmation-oubli{
  display:flex;align-items:flex-start;gap:10px;margin-top:22px;padding:16px 18px;border-radius:12px;
  background:rgba(110,231,168,0.09);border:1px solid rgba(110,231,168,0.35);color:#B7F3D3;font-size:0.88rem;
  opacity:0;max-height:0;overflow:hidden;transition:opacity var(--moyen), max-height var(--moyen), margin var(--moyen);
}
.confirmation-oubli.visible{opacity:1;max-height:120px;}
.confirmation-oubli svg{width:18px;height:18px;flex-shrink:0;margin-top:1px;}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:900px){
  .page-connexion{flex-direction:column;}
  .volet-visuel{min-height:42vh;flex:none;}
  .volet-form{max-width:none;padding:44px 24px 56px;}
  .retour-site{position:static;display:inline-flex;margin-bottom:28px;}
  .form-logo{margin-bottom:34px;}
}
@media (max-width:480px){
  .volet-texte{padding:24px 22px 30px;}
  .portails-nav{padding:20px 20px 0;}
  .portail-pill{padding:8px 12px;font-size:0.78rem;}
  .form-logo img{height:30px;}
}

.api-alert{display:none;margin:0 0 18px;padding:13px 15px;border-radius:10px;background:rgba(240,100,100,.1);border:1px solid rgba(255,120,120,.4);color:#ffd0d0;font-size:.9rem}
.api-alert.visible{display:block}
.piege-antibot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
