/* ════════════════════════════════════════════════════════
   VARIABLES & RESET
════════════════════════════════════════════════════════ */
:root {
  --bg:        #08080e;
  --bg2:       #0d0d16;
  --surface:   #14141f;
  --surface2:  #1c1c2b;
  --surface3:  #26263a;
  --border:    rgba(255,255,255,0.06);
  --border2:   rgba(255,255,255,0.12);
  --accent:    #6d5efc;
  --accent2:   #a99bff;
  --gold:      #f5c842;
  --success:   #3dd68c;
  --error:     #ff4d6d;
  --info:      #60a5fa;
  --text:      #f4f3ee;
  --text2:     #a3a2b8;
  --text3:     #57566f;
  --radius:    16px;
  --radius-sm: 10px;
  --radius-lg: 22px;
  --ease:      cubic-bezier(0.4,0,0.2,1);
  --ease-out:  cubic-bezier(0.22,1,0.36,1);
  --font-d:    'Syne', sans-serif;
  --font-b:    'DM Sans', sans-serif;
  /* Reliefs & profondeur */
  --shadow-sm: 0 1px 2px rgba(0,0,0,0.3);
  --shadow-md: 0 6px 22px -6px rgba(0,0,0,0.5);
  --shadow-lg: 0 24px 60px -12px rgba(0,0,0,0.65);
  --grad-surface: linear-gradient(160deg,rgba(255,255,255,0.035),rgba(255,255,255,0) 42%);
  --grad-accent:  linear-gradient(135deg,#8f7dff,#6d5efc 55%,#5a44e0);
  --hairline: inset 0 1px 0 rgba(255,255,255,0.05);
  --violet:   #8b5cff;
  --spring:   cubic-bezier(0.34,1.56,0.64,1);
  --grad-brand: linear-gradient(115deg,#9d8bff,#6d5efc 42%,#4f8ff7 125%);
  --glass:    rgba(22,22,34,0.5);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;color-scheme:dark;}
body{font-family:var(--font-b);background:var(--bg);color:var(--text);min-height:100vh;overflow-x:hidden;}
button{cursor:pointer;font-family:var(--font-b);border:none;}
input,select,textarea{font-family:var(--font-b);color-scheme:dark;}
/* Menus déroulants natifs (statut, arrondissement…) — fond sombre cohérent */
select option{background:var(--surface);color:var(--text);}
select{
  appearance:none;-webkit-appearance:none;-moz-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239998b0' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;padding-right:30px !important;
}
::-webkit-scrollbar{width:5px;}
::-webkit-scrollbar-thumb{background:var(--surface3);border-radius:3px;}

/* ════════════════════════════════════════════════════════
   BACKGROUND
════════════════════════════════════════════════════════ */
.bg-mesh {
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(ellipse 70% 50% at 15% 0%,   rgba(109,94,252,0.13) 0%,transparent 60%),
    radial-gradient(ellipse 50% 40% at 85% 100%,  rgba(94,80,180,0.13) 0%,transparent 60%),
    radial-gradient(ellipse 40% 60% at 50% 50%,   rgba(16,16,40,0.8)   0%,transparent 100%);
}

/* ════════════════════════════════════════════════════════
   VIEWS
════════════════════════════════════════════════════════ */
.view { display:none; position:relative; z-index:1; }
.view.active { display:block; animation:fadeIn .3s ease; }
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* ════════════════════════════════════════════════════════
   NAVBAR (accueil + inscription)
════════════════════════════════════════════════════════ */
.navbar {
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;
  padding:0 40px;
  height:64px;
  background:rgba(10,10,18,0.85);
  backdrop-filter:blur(16px);
  border-bottom:1px solid var(--border);
}
.navbar-logo {
  font-family:var(--font-d);font-weight:800;font-size:1.15rem;
  color:var(--accent);letter-spacing:0.1em;cursor:pointer;
}
.navbar-logo span{display:block;font-size:0.6rem;color:var(--text3);letter-spacing:0.08em;font-weight:400;margin-top:1px;}
.navbar-spacer{flex:1;}
.navbar-back {
  display:none;align-items:center;gap:6px;
  background:transparent;color:var(--text2);font-size:0.82rem;
  padding:6px 12px;border-radius:var(--radius-sm);
  border:1px solid var(--border2);
  transition:all .18s;margin-right:12px;
}
.navbar-back:hover{color:var(--text);background:var(--surface);}
.navbar-back.show{display:flex;}
.btn-admin {
  background:transparent;
  border:1px solid var(--border2);
  color:var(--text2);
  font-size:0.78rem;font-weight:600;
  padding:7px 16px;border-radius:var(--radius-sm);
  transition:all .18s;
  letter-spacing:0.04em;
}
.btn-admin:hover{color:var(--text);border-color:var(--border2);background:var(--surface);}

/* ════════════════════════════════════════════════════════
   VIEW : ACCUEIL
════════════════════════════════════════════════════════ */
.home-hero {
  max-width:900px;margin:0 auto;
  padding:80px 40px 60px;
  text-align:center;
}
.home-hero-badge {
  display:inline-flex;align-items:center;gap:6px;
  background:rgba(109,94,252,0.1);border:1px solid rgba(109,94,252,0.25);
  color:var(--accent2);font-size:0.72rem;font-weight:600;
  padding:5px 14px;border-radius:100px;
  letter-spacing:0.06em;text-transform:uppercase;
  margin-bottom:24px;
}
.home-hero-title {
  font-family:var(--font-d);font-weight:800;
  font-size:clamp(2rem,5vw,3.2rem);
  line-height:1.1;color:var(--text);
  margin-bottom:18px;
}
.home-hero-title em{color:var(--accent);font-style:normal;}
.home-hero-sub {
  font-size:1rem;color:var(--text2);line-height:1.7;
  max-width:520px;margin:0 auto 48px;font-weight:300;
}

.home-events {
  max-width:1100px;margin:0 auto;
  padding:0 40px 80px;
}
.home-events-title {
  font-family:var(--font-d);font-weight:700;font-size:1.1rem;
  color:var(--text);margin-bottom:6px;
}
.home-events-sub{font-size:0.82rem;color:var(--text3);margin-bottom:28px;}

/* Mes inscriptions (exposant connecté) */
.home-mes-ins{max-width:1100px;margin:0 auto;padding:24px 40px 0;}
.mes-ins-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin-bottom:8px;}
.mes-ins-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px;}
.mes-ins-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;}
.mes-ins-name{font-family:var(--font-d);font-weight:700;font-size:0.98rem;color:var(--text);}
.mes-ins-meta{font-size:0.76rem;color:var(--text3);margin-bottom:12px;line-height:1.5;}
.mes-ins-stats{display:flex;gap:8px;text-align:center;}
.mes-ins-stats span{flex:1;font-size:0.7rem;color:var(--text3);line-height:1.6;}
.mes-ins-stats strong{font-family:var(--font-d);font-size:0.95rem;color:var(--accent);}
@media (max-width:680px){.home-mes-ins{padding:24px 24px 0;}}

.events-grid {
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(320px,1fr));
  gap:20px;
}

.ev-card {
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius);
  overflow:hidden;
  cursor:pointer;
  transition:all .22s var(--ease);
  position:relative;
}
.ev-card:hover {
  border-color:rgba(109,94,252,0.4);
  transform:translateY(-3px);
  box-shadow:0 12px 40px rgba(0,0,0,0.4);
}
.ev-card-accent {
  height:3px;
  background:linear-gradient(90deg,var(--accent),var(--accent2));
}
.ev-card-body{padding:22px 22px 18px;}
.ev-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px;}
.ev-card-badge-wrap{display:flex;flex-direction:column;gap:6px;align-items:flex-end;}

.ev-card-date {
  font-size:0.72rem;font-weight:600;
  color:var(--accent2);text-transform:uppercase;letter-spacing:0.07em;
  margin-bottom:5px;
}
.ev-card-name {
  font-family:var(--font-d);font-weight:700;font-size:1.05rem;
  color:var(--text);line-height:1.2;margin-bottom:4px;
}
.ev-card-addr{font-size:0.76rem;color:var(--text3);}

.ev-card-stats {
  display:flex;gap:0;
  border-top:1px solid var(--border);
  margin-top:16px;
}
.ev-card-stat {
  flex:1;padding:12px 16px;
  border-right:1px solid var(--border);
}
.ev-card-stat:last-child{border-right:none;}
.ev-card-stat-val {
  font-family:var(--font-d);font-weight:700;font-size:1rem;color:var(--text);
}
.ev-card-stat-lbl{font-size:0.62rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.06em;margin-top:2px;}

/* Pied de page public */
.site-footer{max-width:1100px;margin:0 auto;padding:32px 40px 60px;border-top:1px solid var(--border);text-align:center;}
.site-footer-brand{font-family:var(--font-d);font-weight:700;font-size:0.92rem;color:var(--text2);margin-bottom:12px;}
.site-footer-links{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin-bottom:14px;}
.site-footer-links a{font-size:0.8rem;color:var(--text3);cursor:pointer;text-decoration:none;transition:color .18s;}
.site-footer-links a:hover{color:var(--accent);}
.site-footer-copy{font-size:0.72rem;color:var(--text3);}
@media (max-width:680px){.site-footer{padding:28px 20px 48px;}}

/* Pages légales */
.legal-wrap{max-width:780px;margin:0 auto;padding:40px;}
.legal-toc{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px;}
.legal-toc a{font-size:0.78rem;color:var(--text2);background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:7px 14px;cursor:pointer;transition:all .18s;}
.legal-toc a:hover{color:var(--accent);border-color:var(--border2);}
.legal-note{background:rgba(245,200,66,0.08);border:1px solid rgba(245,200,66,0.25);border-radius:var(--radius-sm);padding:12px 16px;font-size:0.8rem;color:var(--gold);line-height:1.5;margin-bottom:28px;}
.legal-section{margin-bottom:36px;scroll-margin-top:90px;}
.legal-section h2{font-family:var(--font-d);font-weight:800;font-size:1.5rem;color:var(--text);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border);}
.legal-section h3{font-family:var(--font-d);font-weight:700;font-size:1rem;color:var(--accent2);margin:18px 0 8px;}
.legal-section p{font-size:0.88rem;color:var(--text2);line-height:1.65;margin-bottom:10px;}
.legal-section ul{list-style:none;margin:8px 0;}
.legal-section li{font-size:0.85rem;color:var(--text2);line-height:1.7;padding-left:16px;position:relative;}
.legal-section li::before{content:'•';position:absolute;left:0;color:var(--accent);}
.legal-section strong{color:var(--text);}
@media (max-width:680px){.legal-wrap{padding:24px 20px;}}

/* Tarifs élégants (carte publique) */
.ev-tarifs{display:flex;gap:8px;margin-top:16px;}
.ev-tarif{
  flex:1;text-align:center;padding:12px 6px;border-radius:var(--radius-sm);
  background:var(--surface2);border:1px solid var(--border);
  transition:border-color .18s var(--ease),transform .18s var(--ease);
}
.ev-tarif-val{
  font-family:var(--font-d);font-weight:800;font-size:1.25rem;color:var(--accent);
  line-height:1;letter-spacing:-0.01em;
}
.ev-tarif-val span{font-size:0.68rem;font-weight:600;color:var(--text3);margin-left:1px;}
.ev-tarif-lbl{font-size:0.6rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.07em;margin-top:6px;}
.ev-tarif--arr .ev-tarif-val{color:var(--text);}
.ev-card:hover .ev-tarif{border-color:var(--border2);transform:translateY(-1px);}
.ev-card:hover .ev-tarif--arr{border-color:var(--border);transform:none;}

.progress-bar{height:3px;background:var(--surface3);border-radius:2px;overflow:hidden;margin:14px 0 0;}
.progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:2px;transition:width .4s var(--ease);}

.ev-card-footer {
  padding:14px 22px;
  border-top:1px solid var(--border);
  background:var(--surface2);
}
.btn-inscrire {
  width:100%;
  background:linear-gradient(135deg,var(--accent),#5a44e0);
  color:white;
  font-family:var(--font-d);font-weight:700;
  font-size:0.88rem;letter-spacing:0.04em;
  padding:12px 20px;border-radius:var(--radius-sm);
  transition:all .2s var(--ease);
  box-shadow:0 3px 14px rgba(109,94,252,0.25);
}
.btn-inscrire:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(109,94,252,0.4);}
.btn-inscrire:disabled{opacity:0.4;cursor:not-allowed;transform:none;}

/* badge statut */
.badge {
  display:inline-flex;align-items:center;gap:3px;
  padding:3px 9px;border-radius:100px;
  font-size:0.65rem;font-weight:600;letter-spacing:0.03em;
}
.badge::before{content:'●';font-size:0.45rem;}
.badge-green {background:rgba(61,214,140,0.12);color:var(--success);border:1px solid rgba(61,214,140,0.2);}
.badge-orange{background:rgba(109,94,252,0.12);color:var(--accent2);border:1px solid rgba(109,94,252,0.2);}
.badge-red   {background:rgba(255,77,109,0.12);color:var(--error);border:1px solid rgba(255,77,109,0.2);}
.badge-gray  {background:rgba(148,163,184,0.1);color:var(--text3);border:1px solid var(--border2);}
.badge-blue  {background:rgba(96,165,250,0.12);color:var(--info);border:1px solid rgba(96,165,250,0.2);}
.badge-gold  {background:rgba(245,200,66,0.12);color:var(--gold);border:1px solid rgba(245,200,66,0.2);}

/* ════════════════════════════════════════════════════════
   VIEW : INSCRIPTION
════════════════════════════════════════════════════════ */
.form-layout {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:calc(100vh - 64px);
}

.form-brand {
  background:var(--bg2);
  border-right:1px solid var(--border);
  padding:60px 56px;
  display:flex;flex-direction:column;justify-content:center;
  position:sticky;top:64px;height:calc(100vh - 64px);
}
.form-brand-event-label {
  font-size:0.65rem;text-transform:uppercase;letter-spacing:0.1em;
  color:var(--text3);font-weight:600;margin-bottom:16px;
}
.form-brand-event-name {
  font-family:var(--font-d);font-weight:800;font-size:1.6rem;
  color:var(--text);line-height:1.2;margin-bottom:8px;
}
.form-brand-event-date {color:var(--accent2);font-size:0.85rem;font-weight:500;margin-bottom:4px;}
.form-brand-event-addr {color:var(--text3);font-size:0.78rem;margin-bottom:32px;}
.form-brand-sep {width:40px;height:2px;background:var(--accent);border-radius:1px;margin-bottom:32px;}
.form-brand-feats {display:flex;flex-direction:column;gap:14px;}
.form-brand-feat {display:flex;align-items:center;gap:12px;font-size:0.83rem;color:var(--text2);}
.form-brand-feat-icon {
  width:34px;height:34px;border-radius:8px;
  background:rgba(109,94,252,0.1);border:1px solid rgba(109,94,252,0.18);
  display:flex;align-items:center;justify-content:center;font-size:0.95rem;flex-shrink:0;
}
.form-brand-tarifs {
  margin-top:32px;
  background:var(--surface);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:16px 18px;
}
.form-brand-tarifs-title {font-size:0.65rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--text3);font-weight:600;margin-bottom:10px;}
.form-brand-tarif-row {display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid var(--border);}
.form-brand-tarif-row:last-child{border-bottom:none;}
.form-brand-tarif-label{font-size:0.82rem;color:var(--text2);}
.form-brand-tarif-price{font-family:var(--font-d);font-weight:700;font-size:0.88rem;color:var(--accent);}

/* Panneau formulaire droite */
.form-panel {
  padding:40px 48px 60px;
  overflow-y:auto;
  max-height:calc(100vh - 64px);
}

@media(max-width:860px){
  .form-layout{grid-template-columns:1fr;}
  .form-brand{display:none;}
  .form-panel{padding:28px 24px 60px;max-height:none;}
  .navbar{padding:0 20px;}
  .home-hero{padding:50px 24px 40px;}
  .home-events{padding:0 24px 60px;}
}

/* Stepper */
.stepper{display:flex;align-items:center;margin-bottom:32px;}
.step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative;}
.step-line{flex:1;height:2px;background:var(--border);transition:background .25s;margin-top:-14px;}
.step-line.done{background:var(--accent);}
.step-dot{
  width:30px;height:30px;border-radius:50%;
  background:var(--surface);border:2px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-d);font-weight:700;font-size:0.72rem;
  color:var(--text3);transition:all .25s;position:relative;z-index:1;
}
.step.active .step-dot{background:var(--accent);border-color:var(--accent);color:white;box-shadow:0 0 0 4px rgba(109,94,252,0.2);}
.step.done .step-dot{background:var(--success);border-color:var(--success);color:white;}
.step-label{font-size:0.58rem;color:var(--text3);margin-top:5px;text-transform:uppercase;letter-spacing:0.07em;font-weight:600;white-space:nowrap;transition:color .25s;}
.step.active .step-label{color:var(--accent);}
.step.done .step-label{color:var(--success);}

/* Panel title */
.panel-title{font-family:var(--font-d);font-weight:700;font-size:1.4rem;color:var(--text);margin-bottom:4px;line-height:1.2;}
.panel-sub{font-size:0.83rem;color:var(--text2);margin-bottom:26px;font-weight:300;}

/* Form fields */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;}
.field label{font-size:0.68rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:0.08em;}
.field input,.field select,.field textarea{
  background:var(--surface);border:1.5px solid var(--border2);border-radius:var(--radius-sm);
  padding:12px 15px;color:var(--text);font-size:0.9rem;outline:none;width:100%;
  transition:border-color .18s,box-shadow .18s,background .18s;-webkit-appearance:none;
}
.field input::placeholder,.field textarea::placeholder{color:var(--text3);}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--accent);background:var(--surface2);
  box-shadow:0 0 0 3px rgba(109,94,252,0.1);
}
.field input.valid{border-color:var(--success);}
.field input.error,.field select.error{border-color:var(--error);}
.field select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239998b0' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 13px center;padding-right:34px;cursor:pointer;
}
.field textarea{resize:none;min-height:70px;}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.field-hint{font-size:0.7rem;color:var(--text3);}
.field-error{font-size:0.7rem;color:var(--error);display:none;}
.field-error.show{display:block;}

/* Panel switching */
.panel{display:none;animation:fadeIn .25s ease;}
.panel.active{display:block;}

/* Catégorie */
.categorie-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
.categorie-option{
  background:var(--surface);border:2px solid var(--border);
  border-radius:var(--radius-sm);padding:14px;cursor:pointer;
  transition:all .18s;display:flex;align-items:center;gap:10px;
}
.categorie-option:hover{border-color:var(--border2);background:var(--surface2);}
.categorie-option.selected{border-color:var(--accent);background:rgba(109,94,252,0.06);}
.categorie-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0;}
.categorie-option.selected .categorie-radio{border-color:var(--accent);background:var(--accent);}
.categorie-option.selected .categorie-radio::after{content:'';width:6px;height:6px;border-radius:50%;background:white;}
.categorie-name{font-weight:600;font-size:0.85rem;color:var(--text);}
.categorie-desc{font-size:0.67rem;color:var(--text3);margin-top:1px;}

/* Siret box */
.siret-box{background:rgba(96,165,250,0.05);border:1px solid rgba(96,165,250,0.2);border-radius:var(--radius-sm);padding:14px 16px;margin-top:10px;animation:fadeIn .25s ease;}
.siret-box-header{display:flex;align-items:center;gap:10px;margin-bottom:12px;}
.siret-box-icon{font-size:1.2rem;}
.siret-box-title{font-size:0.85rem;font-weight:600;color:var(--info);}
.siret-box-sub{font-size:0.7rem;color:var(--text3);margin-top:1px;}

/* Métrage */
.metrage-recap{display:flex;align-items:center;justify-content:space-between;background:rgba(109,94,252,0.06);border:1px solid rgba(109,94,252,0.18);border-radius:var(--radius-sm);padding:11px 16px;margin-top:10px;}
.metrage-recap-label{font-size:0.8rem;color:var(--text2);font-weight:500;}
.metrage-recap-price{font-family:var(--font-d);font-weight:800;font-size:1.2rem;color:var(--accent);}

/* Paiement options */
.paiement-options{display:flex;flex-direction:column;gap:8px;margin-bottom:14px;}
.paiement-option{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;cursor:pointer;transition:all .18s;display:flex;align-items:center;gap:12px;}
.paiement-option:hover{border-color:var(--border2);background:var(--surface2);}
.paiement-option.selected{border-color:var(--accent);background:rgba(109,94,252,0.05);}
.paiement-icon{width:36px;height:36px;border-radius:7px;background:rgba(255,255,255,0.05);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.paiement-info{flex:1;}
.paiement-name{font-weight:500;font-size:0.88rem;color:var(--text);}
.paiement-desc{font-size:0.72rem;color:var(--text3);margin-top:2px;}
.paiement-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0;}
.paiement-option.selected .paiement-radio{border-color:var(--accent);background:var(--accent);}
.paiement-option.selected .paiement-radio::after{content:'';width:6px;height:6px;border-radius:50%;background:white;}
.paiement-badge{display:inline-block;background:rgba(99,91,255,0.15);border:1px solid rgba(99,91,255,0.3);color:#a5a0ff;font-size:0.58rem;font-weight:700;padding:2px 6px;border-radius:3px;letter-spacing:0.05em;text-transform:uppercase;vertical-align:middle;margin-left:5px;}
.paiement-badge--orange{background:rgba(245,200,66,0.12);border-color:rgba(245,200,66,0.3);color:var(--gold);}

/* Récap */
.recap-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:16px;}
.recap-section{padding:14px 18px;border-bottom:1px solid var(--border);}
.recap-section:last-child{border-bottom:none;}
.recap-section-title{font-size:0.62rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--text3);font-weight:700;margin-bottom:8px;}
.recap-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.recap-row:last-child{margin-bottom:0;}
.recap-label{font-size:0.8rem;color:var(--text2);}
.recap-value{font-size:0.82rem;font-weight:500;color:var(--text);}
.recap-total{background:rgba(109,94,252,0.07);border:1px solid rgba(109,94,252,0.18);border-radius:var(--radius-sm);padding:14px 18px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.recap-total-label{font-family:var(--font-d);font-weight:600;font-size:0.88rem;color:var(--text2);}
.recap-total-amount{font-family:var(--font-d);font-weight:800;font-size:1.7rem;color:var(--accent);}

/* CGU */
.cgu-check{display:flex;align-items:flex-start;gap:11px;padding:12px 0;cursor:pointer;}
.cgu-checkbox{width:20px;height:20px;border-radius:5px;border:2px solid var(--border2);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:all .18s;background:var(--surface);}
.cgu-checkbox.checked{background:var(--accent);border-color:var(--accent);}
.cgu-checkbox.checked::after{content:'✓';color:white;font-size:0.72rem;font-weight:700;}
.cgu-text{font-size:0.78rem;color:var(--text2);line-height:1.5;}
.cgu-text a{color:var(--accent2);}

/* Stripe */
.stripe-label{font-size:0.68rem;font-weight:600;color:var(--text3);text-transform:uppercase;letter-spacing:0.08em;display:flex;align-items:center;gap:6px;margin-bottom:8px;}
.stripe-badge{background:#635BFF;color:white;font-size:0.55rem;padding:2px 5px;border-radius:3px;letter-spacing:.05em;}
.stripe-container{background:var(--surface);border:1.5px solid var(--border2);border-radius:var(--radius-sm);padding:14px 16px;margin-bottom:10px;}
.stripe-info{display:flex;align-items:center;gap:6px;font-size:0.7rem;color:var(--text3);}

/* Boutons form */
.btn-form{width:100%;padding:15px 24px;border-radius:var(--radius-sm);font-family:var(--font-d);font-weight:700;font-size:0.9rem;letter-spacing:0.04em;border:none;cursor:pointer;transition:all .2s var(--ease);display:flex;align-items:center;justify-content:center;gap:8px;margin-top:20px;position:relative;}
.btn-form-primary{background:linear-gradient(135deg,var(--accent),#5a44e0);color:white;box-shadow:0 4px 20px rgba(109,94,252,0.28);}
.btn-form-primary:hover{transform:translateY(-1px);box-shadow:0 6px 28px rgba(109,94,252,0.4);}
.btn-form-primary:disabled{opacity:0.45;cursor:not-allowed;transform:none;box-shadow:none;}
.btn-form-secondary{background:transparent;color:var(--text2);border:1px solid var(--border2);margin-top:10px;}
.btn-form-secondary:hover{border-color:var(--border2);color:var(--text);background:var(--surface);}
.btn-loading::after{content:'';width:16px;height:16px;border:2px solid rgba(255,255,255,0.3);border-top-color:white;border-radius:50%;animation:spin .8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

/* Sms notice */
.sms-notice{background:rgba(245,200,66,0.07);border:1px solid rgba(245,200,66,0.2);border-radius:var(--radius-sm);padding:11px 14px;display:flex;align-items:center;gap:9px;font-size:0.78rem;color:var(--gold);margin-bottom:16px;}

/* Success */
.success-screen{display:none;flex-direction:column;align-items:center;text-align:center;padding:40px 0;}
.success-screen.show{display:flex;animation:fadeIn .4s ease;}
.success-icon{width:80px;height:80px;background:rgba(61,214,140,0.1);border:2px solid rgba(61,214,140,0.3);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.2rem;margin-bottom:22px;animation:popIn .5s cubic-bezier(0.34,1.56,0.64,1) .1s both;}
@keyframes popIn{from{transform:scale(0.6);opacity:0}to{transform:scale(1);opacity:1}}
.success-title{font-family:var(--font-d);font-weight:800;font-size:1.5rem;color:var(--text);margin-bottom:8px;}
.success-sub{font-size:0.85rem;color:var(--text2);line-height:1.6;margin-bottom:28px;max-width:320px;}
.success-emplacement{font-family:var(--font-d);font-weight:800;font-size:3rem;color:var(--accent);text-align:center;line-height:1;margin:8px 0 4px;}
.success-emplacement-label{text-align:center;font-size:0.72rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.08em;}

/* Shake animation */
@keyframes shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-6px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(4px)}}

/* ════════════════════════════════════════════════════════
   VIEW : ADMIN LOGIN
════════════════════════════════════════════════════════ */
.login-wrap {
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:40px 24px;
}
.login-card {
  background:var(--surface);border:1px solid var(--border2);
  border-radius:18px;width:100%;max-width:400px;
  padding:40px 36px;
  box-shadow:0 24px 80px rgba(0,0,0,0.5);
}
.login-logo{font-family:var(--font-d);font-weight:800;font-size:1.4rem;color:var(--accent);letter-spacing:0.1em;margin-bottom:4px;}
.login-title{font-family:var(--font-d);font-weight:700;font-size:1rem;color:var(--text);margin-bottom:4px;margin-top:24px;}
.login-sub{font-size:0.8rem;color:var(--text3);margin-bottom:28px;}
.login-error{background:rgba(255,77,109,0.1);border:1px solid rgba(255,77,109,0.25);color:var(--error);font-size:0.8rem;padding:10px 14px;border-radius:var(--radius-sm);margin-bottom:16px;display:none;}
.login-error.show{display:block;}
.login-btn{width:100%;background:linear-gradient(135deg,var(--accent),#5a44e0);color:white;font-family:var(--font-d);font-weight:700;font-size:0.9rem;padding:13px 20px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all .2s;margin-top:20px;letter-spacing:0.04em;}
.login-btn:hover{transform:translateY(-1px);box-shadow:0 6px 24px rgba(109,94,252,0.35);}
.login-back{display:block;text-align:center;margin-top:16px;font-size:0.78rem;color:var(--text3);cursor:pointer;background:none;border:none;width:100%;}
.login-back:hover{color:var(--text2);}
.login-divider{display:flex;align-items:center;gap:10px;margin:16px 0 0;color:var(--text3);font-size:0.75rem;}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:var(--border);}
.login-btn-google{width:100%;background:var(--surface2);border:1.5px solid var(--border2);color:var(--text);font-family:var(--font-d);font-weight:600;font-size:0.87rem;padding:12px 20px;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:10px;letter-spacing:0.02em;}
.login-btn-google:hover{background:var(--surface3);border-color:var(--text3);transform:translateY(-1px);}

/* ════════════════════════════════════════════════════════
   VIEW : ADMIN DASHBOARD
════════════════════════════════════════════════════════ */
/* ── Layout ─────────────────────────────────────────── */
.admin-layout{display:flex;height:100vh;}
.admin-main{flex:1;display:flex;flex-direction:column;overflow:hidden;}
.admin-content{flex:1;overflow-y:auto;padding:28px 32px;}

/* ── Topbar ─────────────────────────────────────────── */
.admin-topbar{
  height:60px;background:var(--bg2);border-bottom:1px solid var(--border);
  display:flex;align-items:center;padding:0 28px;gap:14px;flex-shrink:0;
}
.admin-topbar-title{
  font-family:var(--font-d);font-weight:700;font-size:1rem;color:var(--text);flex:1;
}

/* ── Sidebar ─────────────────────────────────────────── */
.admin-sidebar{
  width:240px;background:var(--bg);border-right:1px solid var(--border);
  display:flex;flex-direction:column;flex-shrink:0;
}
.admin-sidebar-logo{
  padding:22px 20px 18px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;gap:10px;
}
.admin-sidebar-logo .logo-mark{
  width:34px;height:34px;background:var(--accent);border-radius:8px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-d);font-weight:800;font-size:0.75rem;color:white;letter-spacing:0.02em;
  flex-shrink:0;
}
.admin-sidebar-logo .logo-text .name{
  font-family:var(--font-d);font-weight:800;font-size:0.9rem;color:var(--text);letter-spacing:0.06em;
}
.admin-sidebar-logo .logo-text .sub{
  font-size:0.58rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.08em;margin-top:1px;
}
.admin-section-label{
  padding:16px 16px 5px;font-size:0.57rem;text-transform:uppercase;
  letter-spacing:0.14em;color:var(--text3);font-weight:700;
}
.nav-item{
  display:flex;align-items:center;gap:10px;padding:10px 14px;margin:1px 10px;
  border-radius:var(--radius-sm);font-size:0.82rem;font-weight:500;color:var(--text2);
  cursor:pointer;transition:all .15s var(--ease);position:relative;
}
.nav-item:hover{background:var(--surface);color:var(--text);}
.nav-item.active{
  background:linear-gradient(90deg,rgba(109,94,252,0.15),rgba(109,94,252,0.05));
  color:var(--accent);font-weight:600;
}
.nav-item.active::before{
  content:'';position:absolute;left:-10px;top:6px;bottom:6px;
  width:3px;background:var(--accent);border-radius:0 3px 3px 0;
}
.nav-icon{font-size:1rem;width:20px;text-align:center;flex-shrink:0;line-height:1;}
.nav-badge{
  margin-left:auto;background:var(--accent);color:white;
  font-size:0.58rem;font-weight:700;padding:2px 7px;border-radius:100px;min-width:20px;text-align:center;
}

/* ── Sidebar footer ──────────────────────────────────── */
.admin-sidebar-footer{
  margin-top:auto;padding:14px 12px;border-top:1px solid var(--border);
}
.sidebar-user{display:flex;align-items:center;gap:10px;}
.sidebar-avatar{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  background:linear-gradient(135deg,var(--accent),#7c3aed);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--font-d);font-weight:700;font-size:0.8rem;color:white;
}
.sidebar-user-name{
  font-size:0.78rem;font-weight:600;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:120px;
}
.sidebar-user-role{font-size:0.6rem;color:var(--text3);margin-top:1px;}

/* Admin pages */
.admin-page{display:none;}
.admin-page.active{display:block;animation:fadeIn .2s ease;}

/* ── Stats grid ──────────────────────────────────────── */
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:24px;}
.stat-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  padding:20px 22px;position:relative;overflow:hidden;
  transition:border-color .2s var(--ease),transform .2s var(--ease),box-shadow .2s;
}
.stat-card:hover{
  border-color:var(--border2);transform:translateY(-2px);
  box-shadow:0 8px 24px rgba(0,0,0,0.25);
}
/* Bande colorée en haut au hover */
.stat-card::after{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:var(--glow-bar,linear-gradient(90deg,var(--accent),transparent));
  opacity:0;transition:opacity .2s;
}
.stat-card:hover::after{opacity:1;}
.stat-label{
  font-size:0.65rem;color:var(--text3);text-transform:uppercase;
  letter-spacing:0.1em;margin-bottom:12px;font-weight:700;display:flex;align-items:center;gap:5px;
}
.stat-value{
  font-family:var(--font-d);font-weight:800;font-size:2rem;color:var(--text);
  line-height:1;margin-bottom:10px;letter-spacing:-0.02em;
}
.stat-sub{font-size:0.7rem;color:var(--text3);margin-top:5px;}
.stat-trend{
  display:inline-flex;align-items:center;gap:4px;font-size:0.68rem;
  font-weight:600;padding:3px 9px;border-radius:100px;
}
.trend-up{background:rgba(61,214,140,0.12);color:var(--success);}
.trend-neutral{background:rgba(148,163,184,0.08);color:var(--text2);}
.trend-warn{background:rgba(245,200,66,0.12);color:var(--gold);}

/* Cards + tables */
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:18px;}
.card-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;}
.card-title{font-family:var(--font-d);font-weight:700;font-size:0.88rem;color:var(--text);flex:1;}
.card-sub{font-size:0.72rem;color:var(--text3);}
.table{width:100%;border-collapse:collapse;}
.table th{padding:9px 14px;text-align:left;font-size:0.62rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--text3);border-bottom:1px solid var(--border);font-weight:700;background:var(--surface2);}
.table td{padding:11px 14px;font-size:0.8rem;border-bottom:1px solid var(--border);color:var(--text2);}
.table tr:last-child td{border-bottom:none;}
.table tr:hover td{background:rgba(255,255,255,0.015);}
.table td strong{color:var(--text);font-weight:500;}

/* Admin form */
.admin-field{display:flex;flex-direction:column;gap:5px;margin-bottom:13px;}
.admin-field label{font-size:0.65rem;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:0.08em;}
.admin-field input,.admin-field select,.admin-field textarea{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:9px 13px;color:var(--text);font-size:0.85rem;outline:none;transition:border-color .18s,box-shadow .18s;width:100%;-webkit-appearance:none;}
.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(109,94,252,0.1);}
.admin-field input::placeholder{color:var(--text3);}
.admin-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%239998b0' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;padding-right:30px;cursor:pointer;}
.admin-field textarea{resize:vertical;}
.admin-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.admin-form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}

/* Buttons admin */
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:var(--radius-sm);font-size:0.78rem;font-weight:700;font-family:var(--font-d);border:none;cursor:pointer;transition:all .18s;white-space:nowrap;letter-spacing:0.03em;}
.btn-primary{background:var(--accent);color:white;box-shadow:0 3px 12px rgba(109,94,252,0.28);}
.btn-primary:hover{background:var(--accent2);transform:translateY(-1px);}
.btn-ghost{background:transparent;color:var(--text2);border:1px solid var(--border2);}
.btn-ghost:hover{background:var(--surface2);color:var(--text);}
.btn-danger{background:rgba(255,77,109,0.1);color:var(--error);border:1px solid rgba(255,77,109,0.2);}
.btn-danger:hover{background:rgba(255,77,109,0.2);}
.btn-success{background:rgba(61,214,140,0.1);color:var(--success);border:1px solid rgba(61,214,140,0.2);}
.btn-success:hover{background:rgba(61,214,140,0.2);}
.btn-sm{padding:5px 10px;font-size:0.72rem;}

/* Toolbar */
.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;flex-wrap:wrap;}
.search-box{flex:1;min-width:200px;position:relative;}
.search-box input{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:8px 12px 8px 35px;color:var(--text);font-size:0.82rem;outline:none;width:100%;transition:border-color .18s;}
.search-box input:focus{border-color:var(--accent);}
.search-box::before{content:'🔍';position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:0.75rem;pointer-events:none;}

/* Modal */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.72);backdrop-filter:blur(5px);z-index:200;display:none;align-items:center;justify-content:center;padding:20px;}
.modal-overlay.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border2);border-radius:16px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;animation:popIn .25s cubic-bezier(0.34,1.56,0.64,1);}
.modal-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px;}
.modal-title{font-family:var(--font-d);font-weight:700;font-size:0.95rem;color:var(--text);flex:1;}
.modal-close{width:28px;height:28px;border-radius:50%;background:var(--surface2);border:none;color:var(--text3);font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;}
.modal-close:hover{background:var(--error);color:white;}
.modal-body{padding:22px;}
.modal-footer{padding:14px 22px;border-top:1px solid var(--border);display:flex;gap:8px;justify-content:flex-end;}

/* Progress bar admin */
.progress-bar-admin{height:4px;background:var(--surface3);border-radius:2px;overflow:hidden;margin-bottom:12px;}
.progress-fill-admin{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent2));border-radius:2px;}

/* Event card admin */
.admin-events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;}
.admin-ev-card{
  background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);
  overflow:hidden;transition:all .25s var(--ease);display:flex;flex-direction:column;
}
.admin-ev-card:hover{border-color:var(--border2);transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,0.3);}
.admin-ev-card-top{
  padding:18px 18px 14px;
  background:linear-gradient(135deg,rgba(109,94,252,0.08),rgba(124,58,237,0.06));
  border-bottom:1px solid var(--border);position:relative;
}
.admin-ev-card-status{position:absolute;top:14px;right:14px;}
.admin-ev-date{
  font-size:0.68rem;color:var(--accent2);font-weight:700;
  text-transform:uppercase;letter-spacing:0.08em;margin-bottom:5px;
}
.admin-ev-name{
  font-family:var(--font-d);font-weight:700;font-size:1rem;
  color:var(--text);line-height:1.25;padding-right:60px;
}
.admin-ev-addr{font-size:0.7rem;color:var(--text3);margin-top:5px;display:flex;align-items:center;gap:3px;}
.admin-ev-body{padding:14px 18px;flex:1;}
.admin-ev-stats{display:flex;gap:0;margin-bottom:12px;background:var(--surface2);border-radius:var(--radius-sm);overflow:hidden;}
.admin-ev-stat{flex:1;padding:10px 12px;text-align:center;border-right:1px solid var(--border);}
.admin-ev-stat:last-child{border-right:none;}
.admin-ev-stat-val{font-family:var(--font-d);font-weight:700;font-size:1rem;color:var(--text);}
.admin-ev-stat-lbl{font-size:0.58rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.05em;margin-top:2px;}
.admin-ev-actions{display:flex;gap:8px;padding:12px 18px;border-top:1px solid var(--border);background:var(--surface2);}

/* Toast */
.toast-container{position:fixed;top:18px;right:18px;z-index:999;display:flex;flex-direction:column;gap:7px;}
.toast{background:var(--surface2);border:1px solid var(--border2);border-radius:var(--radius-sm);padding:10px 16px;font-size:0.8rem;color:var(--text);box-shadow:0 8px 30px rgba(0,0,0,0.4);display:flex;align-items:center;gap:8px;min-width:260px;animation:slideIn .3s cubic-bezier(0.34,1.56,0.64,1);}
@keyframes slideIn{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}

/* Section title */
.section-title{font-family:var(--font-d);font-weight:800;font-size:1.2rem;color:var(--text);margin-bottom:4px;}
.section-sub{font-size:0.8rem;color:var(--text3);margin-bottom:20px;}

/* Banner error */
.banner{position:fixed;top:16px;left:50%;transform:translateX(-50%);z-index:999;max-width:420px;width:90%;border-radius:10px;padding:12px 18px;font-size:0.85rem;display:flex;align-items:center;gap:9px;box-shadow:0 8px 30px rgba(0,0,0,0.5);opacity:0;transition:opacity .3s;pointer-events:none;}
.banner.show{opacity:1;}
.banner-error{background:#2d1018;border:1px solid rgba(255,77,109,0.4);color:var(--error);}
.banner-success{background:#0d2419;border:1px solid rgba(61,214,140,0.3);color:var(--success);}

/* ════ MOBILE SIDEBAR ════ */
.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.55);z-index:49;backdrop-filter:blur(2px);}
.sidebar-overlay.open{display:block;}
.hamburger{display:none;background:transparent;border:1px solid var(--border2);color:var(--text2);padding:6px 11px;border-radius:var(--radius-sm);font-size:1.15rem;cursor:pointer;transition:all .18s;line-height:1;}
.hamburger:hover{background:var(--surface);color:var(--text);}
@media(max-width:768px){
  .hamburger{display:flex;align-items:center;justify-content:center;}
  .admin-sidebar{position:fixed;top:0;left:0;bottom:0;z-index:50;transform:translateX(-100%);transition:transform .25s var(--ease);}
  .admin-sidebar.open{transform:translateX(0);box-shadow:6px 0 30px rgba(0,0,0,0.5);}
  .admin-layout{display:block;height:auto;}
  .admin-main{height:100vh;display:flex;flex-direction:column;}
  .admin-content{padding:16px;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .admin-events-grid{grid-template-columns:1fr;}
}

/* ════ CB EMPREINTE FORM ════ */
.cb-form-card{background:var(--surface2);border:1.5px solid var(--border2);border-radius:var(--radius);padding:20px;margin-bottom:14px;}
.cb-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.cb-input-valid{border-color:var(--success) !important;box-shadow:0 0 0 3px rgba(61,214,140,0.12) !important;}
.cb-input-error{border-color:var(--error) !important;box-shadow:0 0 0 3px rgba(255,77,109,0.12) !important;}
.stripe-element-wrap{background:var(--surface3);border:1.5px solid var(--border2);border-radius:var(--radius-sm);padding:13px 14px;transition:border-color .2s,box-shadow .2s;}
.stripe-element-wrap.focused{border-color:var(--accent);box-shadow:0 0 0 3px rgba(109,94,252,0.15);}
.stripe-element-wrap.invalid{border-color:var(--error);box-shadow:0 0 0 3px rgba(255,77,109,0.12);}
.stripe-element-wrap.complete{border-color:var(--success);box-shadow:0 0 0 3px rgba(61,214,140,0.12);}
.stripe-card-errors{font-size:0.78rem;color:var(--error);margin-top:6px;min-height:18px;}
.cb-number-wrap{position:relative;}
.cb-card-icon{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:0.85rem;color:var(--text3);pointer-events:none;}
.cb-banner-warn{background:rgba(255,77,109,0.07);border:1px solid rgba(255,77,109,0.25);border-radius:var(--radius-sm);padding:12px 16px;display:flex;align-items:center;gap:9px;font-size:0.82rem;color:var(--error);margin-bottom:16px;}
.cb-banner-ok{background:rgba(61,214,140,0.07);border:1px solid rgba(61,214,140,0.25);border-radius:var(--radius-sm);padding:12px 16px;display:flex;align-items:center;gap:9px;font-size:0.82rem;color:var(--success);margin-bottom:12px;}
.cb-banner-info{background:rgba(109,94,252,0.06);border:1px solid rgba(109,94,252,0.2);border-radius:var(--radius-sm);padding:12px 16px;display:flex;align-items:center;gap:9px;font-size:0.82rem;color:var(--accent2);margin-bottom:16px;}
.mode-final-option{background:var(--surface);border:2px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;cursor:pointer;transition:all .18s;display:flex;align-items:center;gap:12px;margin-bottom:8px;}
.mode-final-option:hover{border-color:var(--border2);background:var(--surface2);}
.mode-final-option.selected{border-color:var(--accent);background:rgba(109,94,252,0.05);}
.mode-final-radio{width:18px;height:18px;border-radius:50%;border:2px solid var(--border);display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0;}
.mode-final-option.selected .mode-final-radio{border-color:var(--accent);background:var(--accent);}
.mode-final-option.selected .mode-final-radio::after{content:'';width:6px;height:6px;border-radius:50%;background:white;}
.mode-final-info{flex:1;}
.mode-final-name{font-weight:500;font-size:0.88rem;color:var(--text);}
.mode-final-desc{font-size:0.72rem;color:var(--text3);margin-top:2px;}
.mode-detail{background:rgba(109,94,252,0.05);border:1px solid rgba(109,94,252,0.15);border-radius:var(--radius-sm);padding:12px 16px;margin-top:6px;font-size:0.82rem;color:var(--text2);display:none;}

/* ════ RESIDENT LEGAL SECTION ════ */
.resident-legal-box{background:rgba(109,94,252,0.04);border:1.5px solid rgba(109,94,252,0.2);border-radius:var(--radius-sm);padding:14px 16px;margin-top:4px;}
.resident-legal-title{font-size:0.75rem;font-weight:700;color:var(--accent2);display:flex;align-items:center;gap:6px;margin-bottom:10px;text-transform:uppercase;letter-spacing:0.4px;}
.resident-legal-law{font-size:0.72rem;color:var(--text3);line-height:1.6;margin-bottom:12px;padding:8px 10px;background:rgba(0,0,0,0.12);border-radius:4px;border-left:3px solid rgba(109,94,252,0.4);}
.legal-check-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer;}
.legal-checkbox{width:20px;height:20px;border-radius:4px;border:2px solid var(--border2);background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:all .18s;cursor:pointer;}
.legal-checkbox.checked{background:var(--accent);border-color:var(--accent);}
.legal-checkbox.checked::after{content:'✓';font-size:0.72rem;color:#fff;font-weight:700;}
.legal-checkbox.error-check{border-color:var(--error);box-shadow:0 0 0 3px rgba(255,77,109,0.15);}
.legal-check-text{font-size:0.78rem;color:var(--text2);line-height:1.5;flex:1;cursor:pointer;}
.legal-check-text strong{color:var(--text);}
.ci-field-hint{font-size:0.68rem;color:var(--text3);margin-top:4px;display:flex;align-items:center;gap:4px;}

/* ════ BYPASS DEV BUTTON ════ */
.btn-bypass-dev{background:transparent;border:1.5px dashed #6d5efc55;border-radius:var(--radius-sm);padding:10px 16px;color:#6d5efc99;font-size:0.8rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s;letter-spacing:0.3px;}
.btn-bypass-dev:hover{background:rgba(109,94,252,0.08);border-color:#6d5efc99;color:#6d5efc;}

/* ════ CHEQUE SCHEMA v2 ════ */
.cheque-schema{padding:4px 0 2px;}
.cheque-schema-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;}
.cheque-schema-icon{width:28px;height:28px;background:linear-gradient(135deg,#c4952a,#e8b84b);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:0.85rem;flex-shrink:0;}
.cheque-schema-title{font-size:0.82rem;font-weight:700;color:var(--text);letter-spacing:0.2px;}
.cheque-schema-sub{font-size:0.71rem;color:var(--text3);margin-top:1px;}
/* ─ La carte chèque ─ */
.cheque-card{background:linear-gradient(160deg,#f7f1e0 0%,#ede4c8 100%);border-radius:12px;overflow:hidden;box-shadow:0 6px 24px rgba(0,0,0,0.28),0 1px 0 rgba(255,255,255,0.6) inset;}
.cheque-card-stripe{height:6px;background:linear-gradient(90deg,#1a3567 33.33%,#b71c1c 33.33%,#b71c1c 66.66%,#c4952a 66.66%);}
.cheque-card-body{padding:16px 18px 14px;}
/* Top row */
.cheque-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;}
.cheque-bank{display:flex;align-items:center;gap:8px;}
.cheque-bank-logo{width:32px;height:32px;background:linear-gradient(135deg,#1a3567,#2a5298);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:0.65rem;font-weight:800;color:#fff;letter-spacing:-0.5px;flex-shrink:0;}
.cheque-bank-info{line-height:1.3;}
.cheque-bank-name{font-size:0.72rem;font-weight:700;color:#1a3567;letter-spacing:0.2px;}
.cheque-bank-rib{font-size:0.58rem;color:#8a7a55;font-family:'Courier New',monospace;letter-spacing:0.5px;}
.cheque-date-pill{background:rgba(255,255,255,0.7);border:1px solid rgba(196,149,42,0.4);border-radius:20px;padding:5px 12px;text-align:center;}
.cheque-date-label{font-size:0.55rem;color:#8a7a55;text-transform:uppercase;letter-spacing:0.5px;display:block;margin-bottom:1px;font-family:'DM Sans',sans-serif;}
.cheque-date-value{font-size:0.74rem;font-weight:600;color:#2a1a00;font-family:'Courier New',monospace;display:block;}
/* Montant en lettres */
.cheque-section{margin-bottom:12px;}
.cheque-section-label{font-size:0.6rem;color:#8a7a55;text-transform:uppercase;letter-spacing:0.5px;margin-bottom:5px;font-family:'DM Sans',sans-serif;display:flex;align-items:center;gap:5px;}
.cheque-step-dot{width:16px;height:16px;background:var(--accent);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:0.58rem;font-weight:700;color:#fff;flex-shrink:0;font-family:'DM Sans',sans-serif;}
.cheque-lettres-field{background:rgba(255,255,255,0.75);border:1.5px solid rgba(196,149,42,0.5);border-radius:8px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;}
.cheque-lettres-text{font-size:0.82rem;color:#3a2a00;font-style:italic;flex:1;}
.cheque-euros-tag{font-size:0.68rem;font-weight:600;color:#8a7a55;background:rgba(196,149,42,0.15);padding:2px 7px;border-radius:10px;white-space:nowrap;flex-shrink:0;}
/* Bottom row */
.cheque-bottom{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:end;}
.cheque-ordre-field{background:rgba(255,255,255,0.75);border:1.5px solid #1a3567;border-radius:8px;padding:6px 12px;}
.cheque-ordre-name{font-size:0.82rem;font-weight:700;color:#1a3567;letter-spacing:0.3px;}
.cheque-montant-box{background:rgba(255,255,255,0.9);border:2px solid rgba(196,149,42,0.7);border-radius:8px;padding:8px 14px;text-align:center;min-width:86px;box-shadow:0 2px 8px rgba(0,0,0,0.08);}
.cheque-montant-amount{font-size:1.05rem;font-weight:800;color:#1a1000;display:block;letter-spacing:0.5px;}
.cheque-sig-box{text-align:center;min-width:70px;}
.cheque-sig-line{width:70px;height:28px;border-bottom:1.5px solid #2a1a00;display:block;position:relative;}
.cheque-sig-line::after{content:'paraphes';font-size:0.48rem;color:#bbb;text-transform:uppercase;letter-spacing:0.3px;position:absolute;bottom:-12px;left:0;right:0;text-align:center;font-family:'DM Sans',sans-serif;}
/* MICR */
.cheque-micr{margin-top:16px;padding:8px 18px;background:rgba(0,0,0,0.06);font-family:'Courier New',monospace;font-size:0.52rem;color:#9a8a6a;letter-spacing:2.5px;border-top:1px solid rgba(196,149,42,0.2);}
/* Instructions */
.cheque-instructions{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:5px;}
.cheque-instr-row{display:flex;align-items:flex-start;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:7px 9px;}
.cheque-instr-num{width:18px;height:18px;background:var(--accent);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:0.62rem;font-weight:700;color:#fff;flex-shrink:0;margin-top:1px;}
.cheque-instr-text{font-size:0.71rem;color:var(--text2);line-height:1.4;}
.cheque-instr-text strong{color:var(--text);display:block;font-size:0.72rem;}
/* Envoi banner */
.cheque-envoi{margin-top:8px;background:rgba(109,94,252,0.06);border:1px solid rgba(109,94,252,0.18);border-radius:8px;padding:10px 14px;display:flex;align-items:center;gap:10px;}
.cheque-envoi-icon{font-size:1.1rem;flex-shrink:0;}
.cheque-envoi-text{font-size:0.75rem;color:var(--text2);line-height:1.5;}

/* ════ MODAL CONFIRM DELETE ════ */
.confirm-icon{font-size:2.5rem;text-align:center;margin:16px 0 10px;}
.confirm-title{font-family:var(--font-d);font-weight:700;font-size:1rem;color:var(--text);text-align:center;margin-bottom:6px;}
.confirm-text{font-size:0.83rem;color:var(--text3);text-align:center;line-height:1.6;}
/* ════ JOUR J — PLAN VISUEL DES EMPLACEMENTS ════ */
.jj-plan-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:0.72rem;color:var(--text2);}
.jj-plan-legend span{display:inline-flex;align-items:center;gap:5px;}
.jj-plan-legend .lg{width:12px;height:12px;border-radius:3px;display:inline-block;}
.lg-libre{background:var(--surface3);border:1px solid var(--border2);}
.lg-attente{background:var(--gold);}
.lg-present{background:var(--success);}
.lg-absent{background:var(--error);}
.jj-plan-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;padding:14px 4px 4px;}
.jj-plan-empty{grid-column:1/-1;padding:24px;text-align:center;color:var(--text3);font-size:0.85rem;}
.jj-cell{position:relative;aspect-ratio:1/1;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--border2);background:var(--surface3);transition:transform .12s var(--ease),box-shadow .12s var(--ease);overflow:hidden;}
.jj-cell-num{font-family:var(--font-d);font-weight:700;font-size:0.95rem;line-height:1;}
.jj-cell-nom{font-size:0.6rem;opacity:.85;max-width:100%;padding:0 3px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.jj-libre{color:var(--text3);}
.jj-attente{background:rgba(245,200,66,0.16);border-color:rgba(245,200,66,0.5);color:var(--gold);cursor:pointer;}
.jj-present{background:rgba(61,214,140,0.16);border-color:rgba(61,214,140,0.55);color:var(--success);cursor:pointer;}
.jj-absent{background:rgba(255,77,109,0.14);border-color:rgba(255,77,109,0.5);color:var(--error);cursor:pointer;}
.jj-cell[onclick]:hover{transform:translateY(-2px);box-shadow:0 4px 14px rgba(0,0,0,0.3);z-index:2;}


/* ════════════════════════════════════════════════════════════
   ✨ REDESIGN "CGMP STUDIO" — verre • profondeur • mouvement
   Sombre premium + animations façon Apple.
   100% visuel : aucune classe, structure ou fonction modifiée.
════════════════════════════════════════════════════════════ */

/* ── Keyframes ── */
@keyframes fadeIn{from{opacity:0;transform:translateY(10px) scale(.995)}to{opacity:1;transform:none}}
@keyframes revealUp{from{opacity:0;transform:translateY(26px) scale(.97)}to{opacity:1;transform:none}}
@keyframes meshDrift{0%{transform:translate3d(0,0,0) scale(1.06)}50%{transform:translate3d(-3.5%,2.5%,0) scale(1.16)}100%{transform:translate3d(0,0,0) scale(1.06)}}
@keyframes sheen{0%{transform:translateX(-160%) skewX(-20deg)}100%{transform:translateX(280%) skewX(-20deg)}}
@keyframes rippleExpand{to{transform:scale(2.8);opacity:0}}
@keyframes shimmerText{0%{background-position:0% 50%}100%{background-position:200% 50%}}
@keyframes pulseRing{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes popSpring{0%{opacity:0;transform:scale(.92) translateY(14px)}100%{opacity:1;transform:none}}

/* ── Fond vivant ── */
body{background:radial-gradient(150% 130% at 50% -20%,#14141f 0%,var(--bg) 56%);}
.bg-mesh{
  background:
    radial-gradient(42% 40% at 12% -2%,  rgba(109,94,252,0.22),transparent 60%),
    radial-gradient(40% 38% at 88% 4%,   rgba(139,92,255,0.18),transparent 60%),
    radial-gradient(52% 50% at 80% 102%, rgba(94,80,180,0.13),transparent 64%);
  animation:meshDrift 30s ease-in-out infinite;will-change:transform;
}
.bg-mesh::after{content:'';position:absolute;inset:0;background:radial-gradient(120% 95% at 50% 0%,transparent 50%,rgba(0,0,0,0.6));}
.bg-mesh::before{content:'';position:absolute;inset:-20%;opacity:.04;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* ── Scrollbar ── */
::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-thumb{background:rgba(255,255,255,0.10);border-radius:8px;border:3px solid transparent;background-clip:padding-box;}
::-webkit-scrollbar-thumb:hover{background:rgba(109,94,252,0.55);background-clip:padding-box;}

/* ── Navbar verre ── */
.navbar{background:rgba(9,9,15,0.55);backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);border-bottom:1px solid var(--border);}
.navbar-logo{background:var(--grad-brand);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmerText 7s linear infinite;}

/* ── Transitions de vues ── */
.view.active{animation:fadeIn .5s var(--ease-out);}
.admin-page.active{animation:none;}
.admin-page.active>*{animation:revealUp .6s var(--ease-out) both;}
.admin-page.active>*:nth-child(1){animation-delay:0s}
.admin-page.active>*:nth-child(2){animation-delay:.05s}
.admin-page.active>*:nth-child(3){animation-delay:.10s}
.admin-page.active>*:nth-child(4){animation-delay:.15s}
.admin-page.active>*:nth-child(5){animation-delay:.20s}
.admin-page.active>*:nth-child(6){animation-delay:.25s}
.admin-page.active>*:nth-child(n+7){animation-delay:.30s}

/* ── Révélation au scroll (JS ajoute .reveal / .in-view) ── */
.reveal{opacity:0;transform:translateY(26px) scale(.985);transition:opacity .75s var(--ease-out) var(--rd,0ms),transform .75s var(--ease-out) var(--rd,0ms);will-change:opacity,transform;}
.reveal.in-view{opacity:1;transform:none;}

/* ── Cartes verre ── */
.card,.mes-ins-card,.recap-card{
  background:linear-gradient(168deg,rgba(255,255,255,0.055),rgba(255,255,255,0.01) 40%),var(--surface);
  border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-md),var(--hairline);
  overflow:hidden;
}
.card-header{border-bottom:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,0.03),transparent);}

/* ── Stat cards ── */
.stats-grid{gap:16px;}
.stat-card{
  background:linear-gradient(168deg,rgba(255,255,255,0.06),rgba(255,255,255,0.012) 42%),var(--surface);
  border:1px solid var(--border);border-radius:var(--radius);
  box-shadow:var(--shadow-md),var(--hairline);isolation:isolate;overflow:hidden;
  transition:transform .45s var(--spring),box-shadow .35s var(--ease-out),border-color .35s var(--ease-out);
}
.stat-card::before{content:'';position:absolute;top:-45%;right:-25%;width:190px;height:190px;border-radius:50%;z-index:-1;
  background:var(--glow,radial-gradient(circle,rgba(109,94,252,0.20),transparent 70%));filter:blur(10px);opacity:.5;transition:opacity .4s,transform .6s var(--ease-out);}
.stat-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-lg),0 0 0 1px var(--border2),var(--hairline);}
.stat-card:hover::before{opacity:1;transform:scale(1.18);}
.stat-value{font-size:2.3rem;letter-spacing:-0.03em;}

/* ── Sidebar ── */
.admin-sidebar{background:linear-gradient(180deg,#0c0c16,#070710);border-right:1px solid var(--border);}
.admin-sidebar-logo .logo-mark{background:var(--grad-brand);border-radius:11px;box-shadow:0 6px 18px rgba(109,94,252,0.4),inset 0 1px 0 rgba(255,255,255,0.3);}
.nav-item{border-radius:11px;transition:background .25s var(--ease),color .2s,transform .35s var(--spring);}
.nav-item:hover{background:rgba(255,255,255,0.045);transform:translateX(3px);}
.nav-item.active{background:linear-gradient(90deg,rgba(109,94,252,0.20),rgba(109,94,252,0.02));box-shadow:inset 0 0 0 1px rgba(109,94,252,0.22);color:var(--accent2);}
.nav-item.active::before{left:-10px;top:8px;bottom:8px;width:3px;border-radius:0 4px 4px 0;background:var(--grad-accent);box-shadow:0 0 14px rgba(109,94,252,0.8);animation:pulseRing 3s ease-in-out infinite;}
.nav-badge{box-shadow:0 2px 10px rgba(109,94,252,0.5);}
.sidebar-avatar{box-shadow:0 6px 18px rgba(139,92,255,0.35),inset 0 1px 0 rgba(255,255,255,0.3);}

/* ── Topbar ── */
.admin-topbar{background:rgba(13,13,22,0.7);border-bottom:1px solid var(--border);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);}
.admin-topbar-title{letter-spacing:-0.01em;}

/* ── Boutons ── */
.btn,.btn-inscrire,.btn-form,.login-btn,.login-btn-google{position:relative;overflow:hidden;}
.btn{border-radius:11px;transition:transform .35s var(--spring),box-shadow .25s var(--ease),background .25s,color .2s,border-color .2s;}
.btn:active{transform:scale(.96);}
.btn-primary{background:var(--grad-accent);box-shadow:0 6px 18px rgba(109,94,252,0.35),inset 0 1px 0 rgba(255,255,255,0.25);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(109,94,252,0.5),inset 0 1px 0 rgba(255,255,255,0.3);}
.btn-ghost{background:rgba(255,255,255,0.03);border:1px solid var(--border2);}
.btn-ghost:hover{background:rgba(255,255,255,0.07);border-color:rgba(255,255,255,0.22);transform:translateY(-1px);}
.btn-danger:hover,.btn-success:hover{transform:translateY(-1px);}
.btn-inscrire,.btn-form-primary,.login-btn{background:var(--grad-accent);border-radius:13px;box-shadow:0 6px 22px rgba(109,94,252,0.34),inset 0 1px 0 rgba(255,255,255,0.25);}
.btn-inscrire:hover,.btn-form-primary:hover,.login-btn:hover{transform:translateY(-2px);box-shadow:0 14px 34px rgba(109,94,252,0.5);}
/* Balayage lumineux (sheen) via ::before pour ne pas ecraser le spinner ::after */
.btn-primary::before,.btn-inscrire::before,.btn-form-primary::before,.login-btn::before{
  content:'';position:absolute;top:0;left:0;width:45%;height:100%;pointer-events:none;z-index:1;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,0.45),transparent);
  transform:translateX(-160%) skewX(-20deg);}
.btn-primary:hover::before,.btn-inscrire:hover::before,.btn-form-primary:hover::before,.login-btn:hover::before{animation:sheen .85s var(--ease-out);}
/* Ripple (JS) */
.ripple{position:absolute;border-radius:50%;background:rgba(255,255,255,0.4);transform:scale(0);animation:rippleExpand .65s var(--ease-out);pointer-events:none;z-index:2;}

/* ── Tables ── */
.table th{background:linear-gradient(180deg,rgba(28,28,43,0.96),rgba(28,28,43,0.72));backdrop-filter:blur(6px);position:sticky;top:0;z-index:3;}
.table td{border-bottom:1px solid var(--border);}
.table tbody tr{transition:background .18s var(--ease);}
.table tbody tr:hover td{background:rgba(109,94,252,0.05);}

/* ── Cartes événements (public + admin) ── */
.ev-card,.admin-ev-card{position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(168deg,rgba(255,255,255,0.06),rgba(255,255,255,0.012) 42%),var(--surface);
  border:1px solid var(--border);box-shadow:var(--shadow-md),var(--hairline);
  transition:transform .45s var(--spring),box-shadow .4s var(--ease-out),border-color .4s;}
.ev-card:hover,.admin-ev-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg),0 0 0 1px rgba(109,94,252,0.3);}
/* Halo qui suit le curseur (JS met --mx/--my) */
.ev-card::after,.admin-ev-card::after{content:'';position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,0.10),transparent 60%);}
.ev-card:hover::after,.admin-ev-card:hover::after{opacity:1;}
.ev-card-accent{height:4px;background:var(--grad-brand);}
.ev-tarif{background:rgba(255,255,255,0.03);transition:transform .35s var(--spring),border-color .3s,background .3s;}
.ev-tarif-val{transition:transform .35s var(--spring);}
.ev-card:hover .ev-tarif{transform:translateY(-2px);}
.ev-tarif--arr .ev-tarif-val{background:linear-gradient(180deg,#fff,#c9c8d6);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
.admin-ev-card-top{background:linear-gradient(135deg,rgba(109,94,252,0.12),rgba(139,92,255,0.08));}

/* ── Inputs ── */
.field input,.field select,.field textarea,.admin-field input,.admin-field select,.admin-field textarea{
  transition:border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s;}
.field input:focus,.field select:focus,.field textarea:focus,
.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus,
.search-box input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(109,94,252,0.16),0 1px 2px rgba(0,0,0,0.4);background:var(--surface2);}
.search-box input{background:rgba(255,255,255,0.03);border-radius:11px;transition:border-color .25s,box-shadow .25s,background .25s;}

/* ── Badges ── */
.badge{border-radius:999px;backdrop-filter:blur(4px);}

/* ── Modales ── */
.modal-overlay{background:rgba(4,4,9,0.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);}
.modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--hairline);
  background:linear-gradient(168deg,rgba(255,255,255,0.06),rgba(255,255,255,0.012) 40%),var(--surface);
  animation:popSpring .5s var(--spring);}

/* ── Login ── */
.login-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--hairline);
  background:linear-gradient(168deg,rgba(255,255,255,0.06),rgba(255,255,255,0.012) 40%),var(--surface);}
.login-logo{background:var(--grad-brand);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmerText 7s linear infinite;}

/* ── Toasts ── */
.toast{border-radius:13px;background:rgba(24,24,37,0.92);backdrop-filter:blur(14px);box-shadow:var(--shadow-lg);}

/* ── Hero accueil ── */
.home-hero-title{background:linear-gradient(180deg,#fff,#cfced9);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;letter-spacing:-0.02em;}
.home-hero-title em{-webkit-text-fill-color:initial;background:var(--grad-brand);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shimmerText 5s linear infinite;}
.home-hero-badge{backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 rgba(255,255,255,0.08);}

/* ── Stepper ── */
.step-dot{transition:all .4s var(--spring);}
.step.active .step-dot{box-shadow:0 0 0 5px rgba(109,94,252,0.18),0 4px 14px rgba(109,94,252,0.4);}
.step-line{transition:background .5s var(--ease-out);}

/* ── Plan Jour J ── */
.jj-cell{box-shadow:var(--hairline);transition:transform .35s var(--spring),box-shadow .25s var(--ease-out),background .25s;}
.jj-cell[onclick]{box-shadow:var(--shadow-sm),var(--hairline);}
.jj-cell[onclick]:hover{transform:translateY(-4px) scale(1.05);box-shadow:var(--shadow-md);z-index:2;}

/* ── Numéro d'emplacement (succès inscription) ── */
.success-emplacement{background:var(--grad-brand);background-size:200% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:shimmerText 4s linear infinite;}

/* ── Respect de prefers-reduced-motion ── */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;animation-delay:0ms !important;transition-duration:.001ms !important;}
  .reveal{opacity:1 !important;transform:none !important;}
  .bg-mesh{animation:none !important;}
}
