:root{--bg:#060810;--cyan:#00d4ff;--sl-block-title:#44ff00;--sl-desc-h:#3acd04;--green:#39ff14;--red:#ff2244;--border:rgba(0,212,255,.13);--border2:#1a2f4a;--text:#b8c8d8;--label:#16fa56;--font:'Courier New',Courier,monospace;--font-mono:'JetBrains Mono','Courier New',monospace}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:var(--font);min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:2rem 1rem 3rem;gap:0}
@keyframes pulse-ring{0%{transform:scale(.85);opacity:.9}100%{transform:scale(1.8);opacity:0}}
@keyframes scan{0%{transform:translateY(-100%)}100%{transform:translateY(100vh)}}
body::after{content:'';position:fixed;top:0;left:0;width:100%;height:3px;background:linear-gradient(transparent,var(--cyan),transparent);opacity:.15;animation:scan 10s linear infinite;pointer-events:none;z-index:999}
/* ── Hero logo (SL-HERO-LOGO-01) : demande utilisateur explicite de restaurer
   le logo animé au-dessus du bloc description, distinct du logo compact de
   la nav unifiée (nav.css .nav-logo-*, ~30px) — celui-ci reprend les
   dimensions ORIGINALES (56px) de l'ancien header page_login() supprimé
   lors de NAV-DEDUP-HEADER-01. Réutilise @keyframes pulse-ring (ligne 4). */
.sl-hero{display:flex;flex-direction:column;align-items:center;gap:.9rem;width:100%;max-width:480px;padding:1.8rem 0 1.4rem}
.sl-hero-logo-wrap{position:relative;width:56px;height:56px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sl-hero-ring{position:absolute;border-radius:50%;border:1px solid var(--cyan);animation:pulse-ring 2.4s ease-out infinite}
.sl-hero-ring--1{width:56px;height:56px;animation-delay:0s;opacity:.7}
.sl-hero-ring--2{width:56px;height:56px;animation-delay:.8s;opacity:.5}
.sl-hero-ring--3{width:56px;height:56px;animation-delay:1.6s;opacity:.3}
.sl-hero-core{width:38px;height:38px;border-radius:50%;background:rgba(0,212,255,.08);border:1px solid rgba(0,212,255,.4);display:flex;align-items:center;justify-content:center;position:relative;z-index:1;box-shadow:0 0 12px rgba(0,212,255,.3)}
.sl-hero-img{width:24px;height:24px;filter:drop-shadow(0 0 4px var(--cyan))}
.sl-hero-name{font-size:1.1rem;font-weight:700;letter-spacing:.18em;color:var(--label)}
@media(prefers-reduced-motion:reduce){.sl-hero-ring{animation:none}}
@media(max-width:520px){.sl-hero{padding:1.4rem 0 1rem}.sl-hero-name{font-size:.95rem}}

/* ── Blocs cockpit ── */
.sl-block{width:100%;max-width:480px;border:1px solid var(--border);border-radius:6px;background:rgba(8,11,20,.85);padding:1.7rem 1.8rem;margin-bottom:1rem;position:relative;overflow:hidden}
.sl-block::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--cyan),transparent);opacity:.35}
.sl-block-title{font-size:.68rem;letter-spacing:.18em;color:var(--sl-block-title);text-transform:uppercase;margin-bottom:1.25rem;opacity:.85}
/* ── Bloc description ── */
.sl-desc-h{font-size:0.95rem;font-weight:700;color:var(--sl-desc-h);margin-bottom:.6rem;line-height:1.35;letter-spacing:.01em}
.sl-desc-p{font-size:.8rem;color:rgb(230 243 255);line-height:1.7}
/* ── Formulaire ── */
.sl-field{margin-bottom:1.1rem}
.sl-field label{display:block;font-size:.68rem;font-weight:700;color:rgb(250 250 250);letter-spacing:.1em;text-transform:uppercase;margin-bottom:.4rem}
.sl-field input{width:100%;background:#040810;border:1px solid rgba(0,212,255,.2);border-radius:5px;padding:.72rem .9rem;color:var(--label);font-family:var(--font);font-size:.88rem;transition:border-color .18s,box-shadow .18s;-webkit-appearance:none}
.sl-field input:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,212,255,.1)}
.sl-field input::placeholder{color:rgba(144,196,232,.22)}
.sl-hint{font-size:.68rem;color:var(--sl-block-title);margin-top:.25rem}
.sl-submit{width:100%;background:rgba(0,212,255,.06);border:1px solid rgba(0,212,255,.28);border-radius:5px;padding:.8rem;color:var(--cyan);font-family:var(--font);font-size:.82rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .2s,box-shadow .2s;margin-top:.5rem}
.sl-submit:hover{background:rgba(0,212,255,.12);box-shadow:0 0 16px rgba(0,212,255,.14)}
.sl-links{margin-top:1.4rem;padding-top:1.2rem;border-top:1px solid rgba(0,212,255,.07);display:flex;flex-direction:column;align-items:center;gap:.55rem}
.sl-links a,.sl-btn-outline{color:rgb(227 243 255);text-decoration:none;font-size:.77rem;letter-spacing:.04em;transition:color .2s}
.sl-links a:hover,.sl-btn-outline:hover{color:var(--cyan)}
.sl-btn-outline{display:block;width:100%;text-align:center;padding:.48rem;border:1px solid rgba(0,212,255,.16);border-radius:4px}
/* ── Erreur ── */
.sl-err{display:flex;align-items:flex-start;gap:.55rem;background:rgba(255,34,68,.06);border:1px solid rgba(255,34,68,.28);border-radius:5px;padding:.72rem;margin-bottom:1.15rem;color:rgba(255,110,130,.9);font-size:.82rem;line-height:1.45}
.sl-err-icon{flex-shrink:0;width:15px;height:15px;background:rgba(255,34,68,.14);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700}
/* ── Bloc features ── */
.sl-feats{display:flex;flex-direction:column;gap:.72rem}
.sl-feat{display:flex;align-items:center;gap:.7rem;font-size:.8rem;color:var(--text)}
.sl-feat-dot{width:5px;height:5px;border-radius:50%;background:var(--cyan);flex-shrink:0;box-shadow:0 0 5px rgba(0,212,255,.7)}
/* ── Bloc cockpit label (texte seul, sans lien) ── */
.sl-cockpit-label{text-align:center;color:rgba(57,121,255,.8);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;margin:0}
@media(max-width:520px){body{padding:1.2rem .75rem 2rem}.sl-block{padding:1.3rem 1.1rem}}
/* ─── COOKIE-BANNER-LOGIN-01 : bandeau consentement cookie ────────────────── */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:100;background:rgba(6,8,16,.97);border-top:1px solid var(--border2);padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem;backdrop-filter:blur(6px)}
.cookie-banner__text{color:var(--text);font-size:.88rem}
.cookie-banner__actions{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.cookie-banner__link{color:var(--label);font-size:.8rem;text-decoration:none}
.cookie-banner__link:hover{color:var(--cyan)}
.legal-btn{padding:.5rem 1.5rem;border:none;border-radius:4px;font-family:var(--font-mono);font-size:.88rem;cursor:pointer;transition:opacity .15s}
.legal-btn:hover{opacity:.85}
.legal-btn--accept{background:rgba(57,255,20,.15);color:var(--green);border:1px solid rgba(57,255,20,.4)}
.legal-btn--refuse{background:rgba(255,34,68,.12);color:var(--red);border:1px solid rgba(255,34,68,.3)}
@media(max-width:600px){.cookie-banner{flex-direction:column;align-items:flex-start}}
/* ─── LANG-PUBLIC-01 : sélecteur FR/EN pages publiques ────────────────────── */
.pub-lang-selector{display:flex;gap:.5rem;align-items:center}
.pub-lang-btn{background:transparent;border:1px solid var(--border2,#1a2f4a);color:var(--text-muted,#8a9bb0);border-radius:4px;padding:.2rem .6rem;font-size:.75rem;cursor:pointer;font-family:var(--font-mono,'JetBrains Mono','Courier New',monospace);letter-spacing:.05em;transition:border-color .15s,color .15s}
.pub-lang-btn:hover{border-color:var(--cyan,#00d4ff);color:var(--cyan,#00d4ff)}
.pub-lang-btn--active{border-color:var(--green,#39ff14);color:var(--green,#39ff14);font-weight:600;pointer-events:none}
@media(max-width:520px){.pub-lang-selector{gap:.3rem}}
