/* ==============================================================
   CHABANIÈRE INFORMATIQUE — styles.css
   Styles du site public + interface admin
   Modifié séparément de index.html
   ============================================================== */


  :root{
    --navy:#0A0E17;
    --navy-soft:#10151F;
    --navy-2:#2DD4FF;
    --paper:#F4F6FB;
    --paper-alt:#E8ECF4;
    --surface:#FFFFFF;
    --brass:#6366F1;
    --brass-dark:#4338CA;
    --brass-bg:rgba(99,102,241,.12);
    --violet:#8B5CF6;
    --ink:#161B26;
    --ink-soft:#475068;
    --line:#DDE3EE;
    --line-dark:#1E2636;
    --radius:10px;
    --radius-lg:16px;
    --shadow-sm:0 2px 8px -2px rgba(10,14,23,.10);
    --shadow-md:0 14px 34px -12px rgba(10,14,23,.20);
    --shadow-lg:0 30px 70px -18px rgba(10,14,23,.30);
    --shadow-glow:0 0 0 1px rgba(99,102,241,.10), 0 18px 50px -14px rgba(45,212,255,.30);
    --grad-accent:linear-gradient(120deg, var(--brass) 0%, var(--violet) 45%, var(--navy-2) 100%);
    --ease:cubic-bezier(.22,.61,.36,1);

    /* Statuts admin (tableau de bord) — tokens dédiés pour ne pas réutiliser
       --navy-2/--violet, dont la teinte exacte est déjà calée sur d'autres
       usages (dégradés, halos hero). */
    --status-info:#22D3EE;       --status-info-bg:rgba(34,211,238,.1);
    --status-danger:#F87171;     --status-danger-bg:rgba(248,65,65,.1);
    --status-warning:#FBBF24;    --status-warning-bg:rgba(251,191,36,.1);
    --status-accent:#A78BFA;     --status-accent-bg:rgba(167,139,250,.1);
    --status-ok:#4ADE80;         --status-ok-bg:rgba(74,222,128,.1);

    /* ===== Charte graphique — Interface Administration =====
       Toujours en thème sombre, quel que soit le mode clair/sombre du site
       public (l'admin est un panneau plein écran indépendant). Remplace la
       dizaine de nuances de gris-bleu ad hoc (#384B65, #2C3E55, #6B7DB3...)
       qui s'étaient accumulées sans hiérarchie claire par une échelle de
       texte à 4 niveaux et une échelle de fond à 3 niveaux, nommées. */
    --adm-bg:#0A0E17;                      /* fond de la fenêtre */
    --adm-surface:#0E1525;                 /* cartes, panneaux, sidebar */
    --adm-surface-raised:rgba(255,255,255,.05); /* survol, ligne active, input */
    --adm-border:rgba(255,255,255,.08);
    --adm-text:#E7ECF5;                    /* texte principal, titres */
    --adm-text-soft:#9FB3D4;               /* texte secondaire, valeurs */
    --adm-text-muted:#5B7299;              /* labels, légendes */
    --adm-text-faint:#384B65;              /* texte tertiaire, désactivé */
  }

  /* Mode sombre automatique (suit le réglage du système/navigateur) : ne
     remappe que les tokens de surface/texte neutres. Les couleurs d'accent
     (--brass, --violet, --status-*) restent identiques — elles ont été
     conçues pour rester lisibles sur fond sombre (cf. écran de démarrage). */
  @media (prefers-color-scheme: dark){
    :root{
      --paper:var(--navy);
      --paper-alt:var(--navy-soft);
      --surface:#141A26;
      --ink:#E7ECF5;
      --ink-soft:#9FB3D4;
      --line:var(--line-dark);
      /* --brass (#6366F1) mesure 4.32:1 sur --paper sombre — sous le seuil
         AA (4.5:1) pour du texte normal. Teinte plus claire réservée au
         mode sombre (6.47:1), le mode clair n'est pas concerné. */
      --brass:#818CF8;
    }
  }

  *{box-sizing:border-box;}
  ::selection{background:rgba(99,102,241,.32); color:var(--navy);}
  html{scrollbar-width:thin; scrollbar-color:var(--brass) var(--paper);}
  ::-webkit-scrollbar{width:10px; height:10px;}
  ::-webkit-scrollbar-track{background:var(--paper);}
  ::-webkit-scrollbar-thumb{background:var(--grad-accent); border-radius:6px;}
  ::-webkit-scrollbar-thumb:hover{background:var(--brass-dark);}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background-color:var(--paper);
    color:var(--ink);
    font-family:'Inter', sans-serif;
    font-size:17.5px;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    font-feature-settings:"tnum" 1;
    position:relative;
  }
  body::after{
    content:"";
    position:fixed; inset:0; z-index:9999; pointer-events:none;
    opacity:.035; mix-blend-mode:overlay;
    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.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* ---------- ÉCRAN DE DÉMARRAGE ---------- */
  #bootScreen{
    position:fixed; inset:0; z-index:1000;
    background:var(--navy);
    display:flex; flex-direction:column;
    overflow:hidden;
  }
  #bootScreen.boot-done{opacity:0; visibility:hidden; transition:opacity .5s ease, visibility .5s ease;}

  .boot-skip{
    position:absolute; right:18px; bottom:18px; z-index:20;
    font-family:'Inter', sans-serif; font-size:12.5px; color:rgba(255,255,255,.6);
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.2);
    border-radius:999px; padding:7px 14px; cursor:pointer;
    opacity:0; animation:bootSkipIn .4s ease .8s forwards;
  }
  .boot-skip:hover{background:rgba(255,255,255,.16); color:#fff;}
  @keyframes bootSkipIn{ to{opacity:1;} }

  /* P1 — faux BIOS */
  .boot-bios{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
    padding-left:9%;
    font-family:'JetBrains Mono', monospace; font-size:13.5px; color:#4ADE80;
    animation:bootBiosOut .4s ease 1.9s forwards;
  }
  .boot-bios-line{
    margin:3px 0; opacity:0; transform:translateX(-6px);
    animation:bootLineInL .35s ease forwards;
  }
  .boot-bios-line:nth-child(1){animation-delay:.05s;}
  .boot-bios-line:nth-child(2){animation-delay:.27s;}
  .boot-bios-line:nth-child(3){animation-delay:.49s;}
  .boot-bios-line:nth-child(4){animation-delay:.71s;}
  .boot-bios-line:nth-child(5){animation-delay:.93s;}
  .boot-bios-line:nth-child(6){animation-delay:1.18s;}
  .boot-bios .blink{
    display:inline-block; width:7px; height:13px; background:#4ADE80; margin-left:6px;
    vertical-align:-2px; animation:bootBlink 1s steps(1) infinite;
  }
  @keyframes bootBlink{ 0%,50%{opacity:1;} 50.01%,100%{opacity:0;} }
  @keyframes bootLineInL{ to{opacity:1; transform:translateX(0);} }
  @keyframes bootBiosOut{ to{opacity:0; visibility:hidden;} }

  /* P2 — logo de la marque */
  .boot-logo-phase{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
    opacity:0;
    animation:bootLogoPhase 3.0s ease 2.0s forwards;
  }
  @keyframes bootLogoPhase{ 0%{opacity:0;} 16.6%{opacity:1;} 86.6%{opacity:1;} 100%{opacity:0;} }
  .boot-logo-mark{
    width:84px; height:84px;
    filter:drop-shadow(0 0 22px rgba(99,102,241,.55));
    opacity:0; transform:scale(.7);
    animation:bootMarkIn .7s cubic-bezier(.22,.61,.36,1) 2.1s forwards;
  }
  .boot-logo-word{
    font-family:'Sora', sans-serif; font-weight:700; font-size:21px; color:#fff;
    letter-spacing:.01em;
    opacity:0; transform:translateY(8px);
    animation:bootWordIn .6s ease 2.35s forwards;
  }
  .boot-logo-word em{font-style:normal; color:#5EEAD4;}
  @keyframes bootMarkIn{ to{opacity:1; transform:scale(1);} }
  @keyframes bootWordIn{ to{opacity:1; transform:translateY(0);} }

  /* P3 — démarrage noyau façon Linux (rapide, technique) */
  .boot-kernel{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
    padding-left:9%;
    font-family:'JetBrains Mono', monospace; font-size:13px; color:#A1A1AA;
    opacity:0;
    animation:bootKernelPhase 2.6s ease 4.7s forwards;
  }
  @keyframes bootKernelPhase{
    0%{opacity:0; transform:translateX(0);}
    15.4%{opacity:1; transform:translateX(0);}
    78%{opacity:1; transform:translateX(0);}
    80%{transform:translateX(-4px);}
    82%{transform:translateX(3px);}
    84%{transform:translateX(-2px);}
    86%{opacity:1; transform:translateX(0);}
    100%{opacity:0; transform:translateX(0);}
  }
  .boot-kernel-line{
    margin:3px 0; opacity:0; transform:translateX(-6px);
    animation:bootLineInL .3s ease forwards;
  }
  .boot-kernel-line .tag{color:#4ADE80; font-weight:600;}
  .boot-kernel-line:nth-child(1){animation-delay:4.85s;}
  .boot-kernel-line:nth-child(2){animation-delay:5.08s;}
  .boot-kernel-line:nth-child(3){animation-delay:5.31s;}
  .boot-kernel-line:nth-child(4){animation-delay:5.54s;}
  .boot-kernel-line:nth-child(5){animation-delay:5.77s;}
  .boot-kernel-line:nth-child(6){animation-delay:6.00s;}
  .boot-kernel-line:nth-child(7){animation-delay:6.23s;}

  /* P3.5 — petit pépin technique (surprise) */
  .boot-crash{
    position:absolute; inset:0;
    background:#1B1640;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    opacity:0;
    animation:bootCrashPhase 1.8s ease 7.0s forwards;
  }
  @keyframes bootCrashPhase{ 0%{opacity:0;} 16.7%{opacity:1;} 83.3%{opacity:1;} 100%{opacity:0;} }
  .boot-crash-inner{animation:bootShake .4s ease-in-out 7.0s;}
  @keyframes bootShake{
    0%, 100%{transform:translateX(0);}
    20%{transform:translate(-3px,1px);}
    40%{transform:translate(2px,-1px);}
    60%{transform:translate(-2px,1px);}
    80%{transform:translate(2px,0);}
  }
  .boot-crash-face{font-size:42px; opacity:0; animation:bootFade .3s ease 7.05s forwards;}
  .boot-crash-title{
    font-family:'Inter', sans-serif; font-weight:600; font-size:15.5px; color:#fff; text-align:center;
    opacity:0; animation:bootFade .3s ease 7.2s forwards;
  }
  .boot-crash-sub{
    font-family:'JetBrains Mono', monospace; font-size:11.5px; color:#A5A0D8;
    opacity:0; animation:bootFade .3s ease 7.45s forwards;
  }
  .boot-crash-code{
    font-family:'JetBrains Mono', monospace; font-size:11px; color:#71717A;
    opacity:0; animation:bootFade .3s ease 7.65s forwards;
  }

  /* P3.6 — auto-réparation (le clin d'œil métier) */
  .boot-repair{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    opacity:0;
    animation:bootRepairPhase 1.8s ease 8.6s forwards;
  }
  @keyframes bootRepairPhase{ 0%{opacity:0;} 16.7%{opacity:1;} 83.3%{opacity:1;} 100%{opacity:0;} }
  .boot-repair-icon{font-size:34px; opacity:0; transform:scale(.6); animation:bootPop .4s cubic-bezier(.22,.61,.36,1) 8.65s forwards;}
  @keyframes bootPop{ to{opacity:1; transform:scale(1);} }
  .boot-repair-title{
    font-family:'Inter', sans-serif; font-weight:600; font-size:15px; color:#fff; text-align:center;
    opacity:0; animation:bootFade .3s ease 8.9s forwards;
  }
  .boot-repair-tagline{
    font-family:'Sora', sans-serif; font-weight:700; font-size:15.5px; color:#5EEAD4;
    opacity:0; animation:bootFade .3s ease 9.15s forwards;
  }

  /* P4 — écran de configuration façon Windows, avec pourcentage */
  .boot-config{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
    opacity:0;
    animation:bootConfigPhase 3.2s ease 10.1s forwards;
  }
  @keyframes bootConfigPhase{ 0%{opacity:0;} 12.5%{opacity:1;} 87.5%{opacity:1;} 100%{opacity:0;} }
  .boot-spinner{position:relative; width:54px; height:54px;}
  .boot-spinner span{
    position:absolute; width:7px; height:7px; border-radius:50%;
    background:#fff; opacity:.2;
    animation:bootDot 1.2s ease-in-out infinite;
  }
  .boot-spinner span:nth-child(1){top:calc(50% - 22px); left:calc(50% - 3.5px); animation-delay:0s;}
  .boot-spinner span:nth-child(2){top:calc(50% - 11px); left:calc(50% + 15.5px); animation-delay:.1s;}
  .boot-spinner span:nth-child(3){top:calc(50% + 11px); left:calc(50% + 15.5px); animation-delay:.2s;}
  .boot-spinner span:nth-child(4){top:calc(50% + 22px); left:calc(50% - 3.5px); animation-delay:.3s;}
  .boot-spinner span:nth-child(5){top:calc(50% + 11px); left:calc(50% - 22.5px); animation-delay:.4s;}
  .boot-spinner span:nth-child(6){top:calc(50% - 11px); left:calc(50% - 22.5px); animation-delay:.5s;}
  @keyframes bootDot{ 0%,100%{opacity:.2; transform:scale(.8);} 50%{opacity:1; transform:scale(1);} }
  .boot-config-title{font-family:'Inter', sans-serif; font-weight:600; font-size:16px; color:#fff;}
  .boot-config-pct{font-family:'Sora', sans-serif; font-weight:700; font-size:30px; color:#5EEAD4;}
  .boot-config-sub{font-family:'Inter', sans-serif; font-size:12.5px; color:#71717A;}
  .boot-config-update{
    font-family:'Inter', sans-serif; font-size:11px; font-style:italic; color:#52525B;
    opacity:0; animation:bootConfigUpdateFlash 1.4s ease 11.2s forwards;
  }
  @keyframes bootConfigUpdateFlash{ 0%{opacity:0;} 25%{opacity:1;} 70%{opacity:1;} 100%{opacity:0;} }

  /* P5 — écran de connexion */
  .boot-login{
    position:absolute; inset:0;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
    opacity:0;
    animation:bootLoginPhase 2.4s ease 13.0s forwards;
  }
  @keyframes bootLoginPhase{ 0%{opacity:0;} 16.6%{opacity:1;} 83.3%{opacity:1;} 100%{opacity:0;} }
  .boot-login-avatar{
    width:52px; height:52px; border-radius:50%;
    background:var(--grad-accent);
    display:flex; align-items:center; justify-content:center;
    font-family:'Sora', sans-serif; font-weight:700; font-size:19px; color:#fff;
  }
  .boot-login-name{font-family:'Inter', sans-serif; font-weight:600; font-size:14.5px; color:#fff;}
  .boot-login-dots{display:flex; gap:7px;}
  .boot-login-dots span{
    width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.18);
    opacity:0; transform:scale(.4);
    animation:bootDotFill .25s ease forwards;
  }
  .boot-login-dots span:nth-child(1){animation-delay:13.25s;}
  .boot-login-dots span:nth-child(2){animation-delay:13.45s;}
  .boot-login-dots span:nth-child(3){animation-delay:13.65s;}
  .boot-login-dots span:nth-child(4){animation-delay:13.85s;}
  .boot-login-dots span:nth-child(5){animation-delay:14.05s;}
  .boot-login-dots span:nth-child(6){animation-delay:14.25s;}
  @keyframes bootDotFill{ to{opacity:1; transform:scale(1); background:#fff;} }
  .boot-login-status{
    font-family:'Inter', sans-serif; font-size:13px; color:#71717A;
    opacity:0; animation:bootFade .35s ease 14.65s forwards;
  }
  @keyframes bootFade{ to{opacity:1;} }

  /* P6 — Bienvenue */
  .boot-os-welcome{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-family:'Sora', sans-serif; font-weight:700; font-size:36px; color:#fff;
    opacity:0; transform:scale(.94);
    animation:bootWelcomeIn .7s cubic-bezier(.22,.61,.36,1) 15.1s forwards;
  }
  @keyframes bootWelcomeIn{ to{opacity:1; transform:scale(1);} }

  /* ---------- ÉCRAN D'EXTINCTION (à la déconnexion) ---------- */
  /* Sans cette règle, l'écran (position:static par défaut, hauteur 0 mais
     enfants en position:absolute) restait dans le flux et ses animations à
     délai fixe (.shut-bye etc.) se déclenchaient TOUJOURS environ 10s après
     n'importe quel chargement de page, faisant apparaître "À bientôt" en
     fantôme par-dessus le contenu — même sans jamais déclencher la séquence. */
  #shutdownScreen{display:none;}
  #shutdownScreen.active{display:block;}
  .shut-content{position:absolute; inset:0;}
  .shut-content.crt-off{animation:shutCrtOff .5s ease-in forwards;}
  @keyframes shutCrtOff{
    0%{transform:scaleY(1) scaleX(1); filter:brightness(1); opacity:1;}
    55%{transform:scaleY(1) scaleX(1); filter:brightness(2.4); opacity:1;}
    78%{transform:scaleY(.02) scaleX(1); filter:brightness(3); opacity:1;}
    100%{transform:scaleY(.02) scaleX(.04); filter:brightness(4); opacity:0;}
  }

  .shut-closing{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
    opacity:0; animation:shutClosingPhase 1.0s ease 0s forwards;
  }
  @keyframes shutClosingPhase{ 0%{opacity:0;} 30%{opacity:1;} 70%{opacity:1;} 100%{opacity:0;} }
  .shut-closing-text{font-family:'Inter', sans-serif; font-weight:600; font-size:15px; color:#fff;}

  .shut-kernel{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
    padding-left:9%; font-family:'JetBrains Mono', monospace; font-size:13px; color:#A1A1AA;
    opacity:0; animation:shutKernelPhase 2.6s ease .8s forwards;
  }
  @keyframes shutKernelPhase{ 0%{opacity:0;} 11.5%{opacity:1;} 88.5%{opacity:1;} 100%{opacity:0;} }
  .shut-kernel-line{margin:3px 0; opacity:0; transform:translateX(-6px); animation:bootLineInL .3s ease forwards;}
  .shut-kernel-line .tag{color:#F87171; font-weight:600;}
  .shut-kernel-line:nth-child(1){animation-delay:.95s;}
  .shut-kernel-line:nth-child(2){animation-delay:1.18s;}
  .shut-kernel-line:nth-child(3){animation-delay:1.41s;}
  .shut-kernel-line:nth-child(4){animation-delay:1.64s;}
  .shut-kernel-line:nth-child(5){animation-delay:1.87s;}
  .shut-kernel-line:nth-child(6){animation-delay:2.10s;}
  .shut-kernel-line:nth-child(7){animation-delay:2.33s;}

  /* P2.5 — un programme empêche l'arrêt (surprise) */
  .shut-blocked{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    opacity:0; animation:shutBlockedPhase 1.6s ease 3.2s forwards;
  }
  @keyframes shutBlockedPhase{ 0%{opacity:0;} 18.75%{opacity:1;} 81.25%{opacity:1;} 100%{opacity:0;} }
  .shut-blocked-icon{font-size:36px; opacity:0; animation:bootFade .3s ease 3.25s forwards;}
  .shut-blocked-title{
    font-family:'Inter', sans-serif; font-weight:600; font-size:15px; color:#fff; text-align:center;
    opacity:0; animation:bootFade .3s ease 3.4s forwards;
  }
  .shut-blocked-sub{
    font-family:'JetBrains Mono', monospace; font-size:11.5px; color:#FBBF24;
    opacity:0; animation:bootFade .3s ease 3.6s forwards;
  }

  .shut-forced{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
    opacity:0; animation:shutForcedPhase 1.8s ease 4.6s forwards;
  }
  @keyframes shutForcedPhase{ 0%{opacity:0;} 16.7%{opacity:1;} 83.3%{opacity:1;} 100%{opacity:0;} }
  .shut-forced-icon{font-size:34px; opacity:0; transform:scale(.6); animation:bootPop .4s cubic-bezier(.22,.61,.36,1) 4.65s forwards;}
  .shut-forced-title{
    font-family:'Inter', sans-serif; font-weight:600; font-size:15px; color:#fff; text-align:center;
    opacity:0; animation:bootFade .3s ease 4.85s forwards;
  }
  .shut-forced-tagline{
    font-family:'Sora', sans-serif; font-weight:700; font-size:15.5px; color:#5EEAD4;
    opacity:0; animation:bootFade .3s ease 5.05s forwards;
  }

  .shut-extinguish{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:22px;
    opacity:0; animation:shutExtinguishPhase 3.2s ease 6.2s forwards;
  }
  @keyframes shutExtinguishPhase{ 0%{opacity:0;} 12.5%{opacity:1;} 87.5%{opacity:1;} 100%{opacity:0;} }
  .shut-extinguish-title{font-family:'Inter', sans-serif; font-weight:600; font-size:16px; color:#fff;}
  .shut-extinguish-pct{font-family:'Sora', sans-serif; font-weight:700; font-size:30px; color:#F87171;}
  .shut-extinguish-sub{font-family:'Inter', sans-serif; font-size:12.5px; color:#71717A;}

  /* P4.5 — dernière ligne noyau, façon vrai shutdown Linux */
  .shut-acpi{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-family:'JetBrains Mono', monospace; font-size:13px; color:#4ADE80;
    opacity:0; animation:shutAcpiPhase .8s ease 9.2s forwards;
  }
  @keyframes shutAcpiPhase{ 0%{opacity:0;} 18.75%{opacity:1;} 81.25%{opacity:1;} 100%{opacity:0;} }

  .shut-bye{
    position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px;
    opacity:0; animation:shutByePhase 1.5s ease 9.8s forwards;
  }
  @keyframes shutByePhase{ 0%{opacity:0;} 20%{opacity:1;} 100%{opacity:1;} }
  .shut-bye-mark{
    width:56px; height:56px;
    filter:drop-shadow(0 0 18px rgba(99,102,241,.5));
    opacity:0; transform:scale(.8);
    animation:bootMarkIn .5s cubic-bezier(.22,.61,.36,1) 9.9s forwards;
  }
  .shut-bye-text{
    font-family:'Sora', sans-serif; font-weight:700; font-size:26px; color:#fff;
    opacity:0; animation:bootFade .4s ease 10.15s forwards;
  }
  .shut-bye-sub{
    font-family:'Inter', sans-serif; font-size:13px; color:#71717A;
    opacity:0; animation:bootFade .4s ease 10.4s forwards;
  }
  .shut-final-msg{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-family:'Inter', sans-serif; font-size:13.5px; color:#52525B;
    opacity:0; transition:opacity .8s ease; pointer-events:none;
  }
  .shut-final-msg.show{opacity:1;}

  @media (prefers-reduced-motion: reduce){
    #bootScreen{ animation:none; }
    #bootScreen *{ animation-duration:0.01ms !important; transition-duration:0.01ms !important; }
    #shutdownScreen{display:none !important;}
  }
  h1,h2,h3{
    font-family:'Sora', sans-serif;
    color:var(--navy);
    margin:0;
    font-weight:700;
    letter-spacing:-0.02em;
    line-height:1.1;
  }
  a{color:var(--navy-2); text-decoration:none;}
  img{max-width:100%; display:block;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 24px;}
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:13.5px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--brass-dark);
    font-weight:700;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px; height:1px;
    background:linear-gradient(90deg, var(--brass), transparent);
    display:inline-block;
  }
  :focus-visible{outline:2px solid var(--brass); outline-offset:3px;}

  /* ---------- RÉVÉLATION AU DÉFILEMENT ---------- */
  .reveal.in{opacity:1; transform:translateY(0);}
  .reveal-stagger > *{opacity:0; transform:translateY(18px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
  .reveal-stagger.in > *{opacity:1; transform:translateY(0);}
  .reveal-stagger.in > *:nth-child(1){transition-delay:.04s;}
  .reveal-stagger.in > *:nth-child(2){transition-delay:.1s;}
  .reveal-stagger.in > *:nth-child(3){transition-delay:.16s;}
  .reveal-stagger.in > *:nth-child(4){transition-delay:.22s;}
  .reveal-stagger.in > *:nth-child(5){transition-delay:.28s;}
  .reveal-stagger.in > *:nth-child(6){transition-delay:.34s;}
  @media (prefers-reduced-motion: reduce){
    .reveal, .reveal-stagger > *{opacity:1 !important; transform:none !important; transition:none !important;}
  }

  /* ---------- TRANSITION ENTRE PAGES (ONGLETS) ---------- */
  /* :not(.active) plutôt qu'un simple .tab-page{display:none;} — la section
     .hero porte aussi la classe .tab-page (page "accueil") et sa propre
     règle .hero{display:flex;...} arrive PLUS LOIN dans la feuille de style
     avec la même spécificité (une classe), donc gagnait systématiquement la
     cascade : le hero restait affiché en permanence quel que soit l'onglet
     actif. :not(.active) ajoute une classe de spécificité et gagne dans
     tous les cas, sans dépendre de l'ordre des règles dans le fichier. */
  .tab-page:not(.active){display:none;}
  .tab-page.active{display:block;}

  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background:rgba(10,14,23,.72);
    backdrop-filter:blur(18px) saturate(140%);
    -webkit-backdrop-filter:blur(18px) saturate(140%);
    border-bottom:1px solid rgba(99,102,241,.18);
  }
  /* Le menu mobile plein écran reste volontairement ouvert pendant la connexion admin
     (pour afficher son sous-menu). Si un toast de notification s'affiche à ce moment,
     il passait au-dessus du menu (z-index 200 > 100) et bloquait les clics dessous —
     on neutralise simplement le toast tant que le menu mobile est ouvert. */
  body:has(.nav ul.open) .site-toast{opacity:0 !important; visibility:hidden !important; pointer-events:none !important;}
  header::after{
    content:"";
    position:absolute; left:0; right:0; bottom:-1px; height:1px;
    background:var(--grad-accent); opacity:.5;
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    padding:16px 24px;
    max-width:1120px; margin:0 auto;
    position:relative;
  }
  .brand-mark{width:30px; height:30px; flex-shrink:0; filter:drop-shadow(0 0 0 rgba(34,211,238,0)); animation:markPulse 4s ease-in-out infinite;}
  @keyframes markPulse{
    0%, 100%{filter:drop-shadow(0 0 2px rgba(34,211,238,.15));}
    50%{filter:drop-shadow(0 0 7px rgba(34,211,238,.55));}
  }
  @media (prefers-reduced-motion: reduce){.brand-mark{animation:none;}}
  .brand em{color:var(--navy-2); font-style:normal;}
  nav ul{
    list-style:none; display:flex; gap:30px; margin:0; padding:0;
  }
  .visually-hidden{
    position:absolute; width:1px; height:1px; padding:0; margin:-1px;
    overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
  }
  /* Même traitement que "Quitter le site" : bouton-icône rond clairement
     cliquable, plutôt qu'un lien de texte grisé qui pouvait passer pour un
     lien cassé aux yeux d'un client. Le badge rouge (vérification tarifs en
     attente) devient un point dans le coin du bouton. */
  .nav-admin-item{margin-left:6px; display:flex; align-items:center;}
  .nav-admin-item a{
    position:relative;
    display:flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:50%;
    border:1px solid #3D4F70; color:#8993A8;
    transition:border-color .2s ease, box-shadow .2s ease, color .2s ease;
  }
  .nav-admin-item svg{width:16px; height:16px;}
  .nav-admin-item a:hover{
    border-color:var(--brass); color:var(--brass);
    box-shadow:0 0 14px -2px rgba(99,102,241,.55);
  }
  .nav-admin-item .price-alert-dot{
    position:absolute; top:-1px; right:-1px; margin-left:0;
  }
  /* "Quitter le site" : easter egg assumé (animation d'extinction façon
     terminal), pas un lien fonctionnel classique — un bouton-icône rond le
     signale clairement, plutôt qu'un lien de texte grisé qui pouvait passer
     pour un lien cassé. */
  .nav-quit-item{margin-left:6px; display:flex; align-items:center;}
  .nav-quit-item a{
    display:flex; align-items:center; justify-content:center;
    width:34px; height:34px; border-radius:50%;
    border:1px solid #3D4F70; color:#8993A8;
    transition:border-color .2s ease, box-shadow .2s ease, color .2s ease;
  }
  .nav-quit-item svg{width:16px; height:16px;}
  .nav-quit-item a:hover{
    border-color:var(--navy-2); color:var(--navy-2);
    box-shadow:0 0 14px -2px rgba(45,212,255,.55);
  }
  .nav-admin-item a:hover{opacity:1;}
  .nav-admin-item svg{width:15px; height:15px;}
  .nav-dropdown{position:relative;}
  /* ===== ADMIN — SOUS-MENU DROPDOWN ===== */
  .admin-submenu{
    position:absolute; top:calc(100% + 12px); right:0; z-index:60;
    list-style:none; margin:0; padding:10px; min-width:268px;
    background:linear-gradient(160deg, var(--adm-surface), #0A0E17);
    border:1px solid rgba(99,102,241,.22);
    border-radius:14px;
    box-shadow:0 24px 60px -12px rgba(0,0,0,.6), 0 0 0 1px rgba(99,102,241,.1);
    flex-direction:column; gap:0 !important;
    backdrop-filter:blur(14px);
  }
  .admin-submenu-header{
    padding:10px 12px 8px;
    font-family:'JetBrains Mono', monospace;
    font-size:10px; text-transform:uppercase; letter-spacing:.12em;
    color:#4B5E7C; border-bottom:1px solid rgba(255,255,255,.06); margin-bottom:6px;
    display:flex; align-items:center; gap:6px;
  }
  .admin-submenu-header::before{ content:""; width:6px; height:6px; border-radius:50%; background:#22D3EE; display:inline-block; box-shadow:0 0 6px #22D3EE; }
  .admin-submenu li{width:100%;}
  .admin-submenu a{
    display:flex; align-items:center; gap:10px; width:100%;
    padding:9px 12px; border-radius:8px; font-size:13.5px; font-weight:500;
    color:#C8D4E8; transition:background .15s, color .15s, transform .1s;
  }
  .admin-submenu a:hover{
    background:rgba(99,102,241,.18); color:#fff;
    transform:translateX(2px);
  }
  .admin-submenu svg{ width:15px; height:15px; flex-shrink:0; opacity:.8; }
  .admin-submenu a:hover svg{ opacity:1; }
  .admin-submenu-sep{
    border-top:1px solid rgba(255,255,255,.07);
    margin:6px 0; padding-top:6px;
  }
  .admin-submenu-group-label{
    padding:4px 12px 2px;
    font-family:'JetBrains Mono', monospace;
    font-size:9.5px; text-transform:uppercase; letter-spacing:.1em;
    color:#384B65;
  }
  nav ul li{position:relative;}
  nav ul li a{
    color:#E4E9F2; font-size:17px; font-weight:500;
    padding:6px 2px;
    position:relative;
    transition:color .2s ease;
    display:flex; align-items:center; gap:7px;
  }
  /* En largeur moyenne (beaucoup d'éléments de menu), on revient à une taille plus
     compacte pour éviter tout débordement, avant de passer au menu mobile à 840px. */
  @media (max-width:1400px){
    .brand{margin-right:16px; font-size:17px;}
    nav ul{gap:13px;}
    nav ul li a{font-size:13.5px;}
    }
  nav ul li a::after{
    content:"";
    position:absolute; left:2px; right:2px; bottom:0; height:2px;
    background:linear-gradient(90deg, var(--brass), var(--navy-2));
    transform:scaleX(0); transform-origin:left;
    transition:transform .25s var(--ease);
    border-radius:2px;
  }
  nav ul li a svg{width:16px; height:16px; display:none;}
  nav ul li a:hover{color:#fff;}
  nav ul li a:hover::after{transform:scaleX(1);}
  nav ul li a.active{color:#fff;}
  nav ul li a.active::after{transform:scaleX(1);}
  .nav-cta{
    display:inline-flex; align-items:center;
    padding:9px 18px; border-radius:8px;
    background:var(--brass); color:#fff; font-weight:700; font-size:14.5px;
    text-decoration:none; white-space:nowrap;
    transition:background .2s ease, box-shadow .2s ease, transform .15s ease;
    box-shadow:0 2px 8px rgba(99,102,241,.3);
  }
  .nav-cta:hover{
    background:var(--brass-dark); box-shadow:0 0 0 3px rgba(99,102,241,.3);
    transform:translateY(-1px);
  }
  .lang-switch{
    display:flex; gap:2px; border:1px solid rgba(99,102,241,.3);
    border-radius:var(--radius); padding:3px;
    background:rgba(255,255,255,.04);
    align-items:center;
  }
  .lang-switch button{
    background:none; border:none; color:#9FB3D4; font-family:'JetBrains Mono', monospace;
    font-size:11.5px; font-weight:600; padding:5px 9px; border-radius:5px; cursor:pointer;
    min-height:32px; min-width:34px;
    transition:color .15s ease, background .15s ease;
  }
  .lang-switch button.active{background:var(--brass); color:#fff; box-shadow:0 2px 6px rgba(99,102,241,.4);}
  .lang-switch button:hover:not(.active){color:#fff; background:rgba(255,255,255,.08);}
  @media (max-width:840px){
    .lang-switch button{ min-height:44px; min-width:44px; font-size:13px; }
  }

  @media (max-width:840px){
    nav ul{
      position:fixed; inset:0; top:0; left:0; right:0; bottom:0;
      width:100vw; height:100vh;
      background:
        linear-gradient(rgba(99,102,241,.10) 1px, transparent 1px),
        linear-gradient(90deg, rgba(99,102,241,.10) 1px, transparent 1px),
        var(--navy);
      background-size:36px 36px, 36px 36px, auto;
      flex-direction:column; gap:0;
      max-height:0; overflow:hidden;
      transition:max-height .3s cubic-bezier(.22,.61,.36,1), opacity .22s ease;
      opacity:0; pointer-events:none;
      align-items:stretch;
      justify-content:center;
      padding:0 8vw;
      z-index:100;
      counter-reset:navitem;
    }
    nav ul.open{max-height:100vh; opacity:1; overflow-y:auto; pointer-events:auto; transition:max-height .35s cubic-bezier(.22,.61,.36,1), opacity .25s ease;}
    nav ul li{
      padding:18px 0; border-top:1px solid rgba(99,102,241,.25);
      counter-increment:navitem;
      opacity:0; transform:translateY(14px);
      transition:opacity .35s ease, transform .35s ease;
    }
    nav ul li:first-child{border-top:none;}
    /* Le menu plein écran mobile empile des lignes pleine largeur — les
       boutons-icônes ronds (pensés pour la barre desktop) n'ont pas leur
       place ici, on revient à une ligne de texte normale comme les autres
       liens, pour "Administration" comme pour "Quitter le site". */
    .nav-admin-item{margin-left:0; padding-left:0; border-left:none;}
    .nav-admin-item a{
      width:auto; height:auto; border-radius:0; border:none; color:inherit;
      display:flex; align-items:center; gap:12px; justify-content:flex-start;
    }
    .nav-admin-item svg{display:none;}
    .nav-admin-item .visually-hidden{
      position:static; width:auto; height:auto; padding:0; margin:0;
      overflow:visible; clip:auto; white-space:normal;
    }
    .nav-admin-item .price-alert-dot{position:static; margin-left:6px;}
    .nav-quit-item{margin-left:0;}
    .nav-quit-item a{
      width:auto; height:auto; border-radius:0; border:none; color:inherit;
      display:flex; align-items:center; gap:12px; justify-content:flex-start;
    }
    .nav-quit-item svg{display:none;}
    .nav-quit-item .visually-hidden{
      position:static; width:auto; height:auto; padding:0; margin:0;
      overflow:visible; clip:auto; white-space:normal;
    }
    /* Sur mobile, le menu lui-même est déjà un plein écran : le sous-menu admin ne
       doit pas flotter en position absolue par-dessus l'élément suivant (Quitter le
       site) — il s'insère normalement dans le flux, pousse le reste vers le bas. */
    .admin-submenu{
      position:static; top:auto; right:auto; left:auto;
      width:100%; min-width:0; margin-top:14px; box-shadow:none;
      max-height:none !important; overflow:visible !important; opacity:1 !important;
    }
    nav ul.open li{opacity:1; transform:translateY(0);}
    nav ul.open li:nth-child(1){transition-delay:.05s;}
    nav ul.open li:nth-child(2){transition-delay:.1s;}
    nav ul.open li:nth-child(3){transition-delay:.15s;}
    nav ul.open li:nth-child(4){transition-delay:.2s;}
    nav ul.open li:nth-child(5){transition-delay:.25s;}
    nav ul.open li:nth-child(6){transition-delay:.3s;}
    nav ul li a{
      font-family:'Sora', sans-serif; font-size:clamp(24px, 6vw, 34px);
      font-weight:600; gap:16px;
    }
    nav ul li a::before{
      content:counter(navitem, decimal-leading-zero);
      font-family:'JetBrains Mono', monospace; font-size:14px; font-weight:400;
      color:var(--navy-2); border:1px solid rgba(34,211,238,.4);
      border-radius:50%; width:30px; height:30px;
      display:flex; align-items:center; justify-content:center;
      flex-shrink:0;
    }
    nav ul li a svg{display:block; width:22px; height:22px; color:var(--brass); flex-shrink:0;}
    nav ul li a::after{display:none;}
    nav ul li a:hover{color:var(--navy-2);}
    .nav-toggle{
      display:flex; align-items:center; justify-content:center;
      width:44px; height:44px; border-radius:10px; padding:0;
      background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
      font-size:20px; cursor:pointer; color:#E7ECF5; flex-shrink:0;
      transition:background .2s ease;
    }
    .nav-toggle:hover{ background:rgba(99,102,241,.2); border-color:rgba(99,102,241,.4); }
    .nav-cta{display:none;}
  }

  /* ---------- HERO ---------- */
  .hero{
    background:
      radial-gradient(120% 90% at 80% -10%, rgba(99,102,241,.25), transparent 55%),
      radial-gradient(90% 80% at 0% 110%, rgba(45,212,255,.18), transparent 55%),
      linear-gradient(180deg, #080C14 0%, var(--navy) 40%, var(--navy-soft) 100%);
    color:var(--paper);
    padding:80px 0 0;
    min-height:100vh;
    display:flex; flex-direction:column;
    position:relative;
    overflow:hidden;
  }
  .hero::before{
    content:"";
    position:absolute; inset:0;
    background-image:
      linear-gradient(rgba(99,102,241,.10) 1px, transparent 1px),
      linear-gradient(90deg, rgba(99,102,241,.10) 1px, transparent 1px);
    background-size:46px 46px;
    mask-image:radial-gradient(120% 80% at 70% 0%, rgba(0,0,0,.95), transparent 75%);
    pointer-events:none;
  }
  .hero::after{
    content:"";
    position:absolute; left:0; right:0; bottom:0;
    height:60px;
    background:var(--paper);
    clip-path:polygon(0 100%, 100% 100%, 100% 0, 0 60%);
  }
  .hero-photo{
    position:absolute; inset:0; z-index:0; pointer-events:none;
    overflow:hidden;
  }
  .hero-circuit-svg{
    position:absolute; top:-40px; right:-80px;
    width:60%; height:110%;
    opacity:.85;
    filter:drop-shadow(0 0 26px rgba(99,102,241,.25));
  }
  .hc-pulse{ animation:cpulse 2.8s ease-in-out infinite; }
  .hc-blink{ animation:cblink 1.6s ease-in-out infinite; }
  .hc-blink2{ animation:cblink 2.1s ease-in-out infinite .5s; }
  @keyframes cpulse{
    0%,100%{ r:3.5; opacity:.8; }
    50%{ r:6; opacity:1; filter:drop-shadow(0 0 6px rgba(34,211,238,.9)); }
  }
  @keyframes cblink{
    0%,100%{ opacity:.2; }
    50%{ opacity:1; filter:drop-shadow(0 0 4px rgba(34,211,238,.8)); }
  }
  @media (prefers-reduced-motion:reduce){ .hc-pulse,.hc-blink,.hc-blink2{ animation:none; } }
  @media (max-width:840px){ .hero-circuit-svg{ width:100%; right:-20px; opacity:.25; top:0; } }
  .hero-glow{
    position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none;
    animation:glowDrift 14s ease-in-out infinite alternate;
  }
  .hero-glow-1{
    width:420px; height:420px; top:-120px; right:-80px;
    background:radial-gradient(circle, rgba(99,102,241,.35), transparent 70%);
  }
  .hero-glow-2{
    width:340px; height:340px; bottom:-140px; left:8%;
    background:radial-gradient(circle, rgba(34,211,238,.22), transparent 70%);
    animation-delay:-7s;
  }
  @keyframes glowDrift{
    from{transform:translate(0,0) scale(1);}
    to{transform:translate(-24px,18px) scale(1.08);}
  }
  @media (prefers-reduced-motion: reduce){.hero-glow{animation:none;}}
  .signage{
    display:inline-flex; align-items:center; gap:12px;
    padding:10px 18px 10px 12px;
    border:1px solid rgba(99,102,241,.4);
    border-radius:999px;
    background:rgba(99,102,241,.08);
    box-shadow:0 0 24px -4px rgba(34,211,238,.35);
    margin-bottom:22px;
    animation:heroIn .7s var(--ease) backwards;
    animation-delay:.05s;
  }
  .signage svg{width:26px; height:26px; flex-shrink:0;}
  .signage span{
    font-family:'Sora', sans-serif; font-weight:600; font-size:15px; color:#fff;
  }
  .signage em{color:var(--navy-2); font-style:normal;}
  .hero-eyebrow{color:#9FB3D4; animation:heroIn .7s var(--ease) backwards; animation-delay:.15s;}
  .hero h1{
    font-size:clamp(42px, 6vw, 74px);
    line-height:1.02;
    letter-spacing:-0.035em;
    margin-top:18px;
    color:#fff;
    font-weight:800;
    animation:heroIn .7s var(--ease) backwards;
    animation-delay:.22s;
  }
  .hero h1 em{
    font-style:normal;
    background:linear-gradient(100deg, var(--navy-2) 0%, #A78BFA 50%, var(--navy-2) 100%);
    background-size:200% auto;
    -webkit-background-clip:text; background-clip:text; color:transparent;
    animation:shimmer 6s linear infinite;
  }
  @keyframes shimmer{ to { background-position:200% center; } }
  @media (prefers-reduced-motion: reduce){.hero h1 em{animation:none;}}
  .hero p.lead{
    margin-top:18px; max-width:540px;
    font-size:19px; line-height:1.6; color:#C9D2E5;
    animation:heroIn .7s var(--ease) backwards;
    animation-delay:.3s;
  }
  .hero-actions{
    display:flex; gap:14px; margin-top:30px; flex-wrap:wrap;
    animation:heroIn .7s var(--ease) backwards;
    animation-delay:.38s;
  }
  .hero-stats{
    display:flex; align-items:center; gap:24px;
    margin-top:40px; padding-top:32px;
    border-top:1px solid rgba(255,255,255,.08);
  }
  .hero-stat{ display:flex; flex-direction:column; gap:2px; }
  .hero-stat-n{ font-family:'Sora',sans-serif; font-size:24px; font-weight:800; color:#fff; letter-spacing:-.02em; }
  .hero-stat-l{ font-size:12px; color:#5B7299; text-transform:uppercase; letter-spacing:.06em; }
  .hero-stat-sep{ width:1px; height:32px; background:rgba(255,255,255,.1); }
  @media (max-width:480px){ .hero-stats{ gap:16px; } .hero-stat-n{ font-size:20px; } }

  @keyframes heroIn{
    from{opacity:0; transform:translateY(16px);}
    to{opacity:1; transform:translateY(0);}
  }
  @media (prefers-reduced-motion: reduce){
    .signage, .hero-eyebrow, .hero h1, .hero p.lead, .hero-actions, .hero-stats{animation:none;}
  }
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:15px 26px;
    font-family:'Inter', sans-serif;
    font-weight:700; font-size:16px;
    border-radius:var(--radius);
    border:1px solid transparent;
    cursor:pointer;
    position:relative; overflow:hidden;
    transition:transform .2s var(--ease), background .2s ease, color .15s ease, box-shadow .25s ease;
  }
  .btn::before{
    content:"";
    position:absolute; top:0; bottom:0; left:-60%; width:40%;
    background:linear-gradient(115deg, transparent, rgba(255,255,255,.35), transparent);
    transform:skewX(-20deg);
    transition:left .55s var(--ease);
    pointer-events:none;
  }
  .btn:hover::before{left:130%;}
  .btn-brass{background:var(--grad-accent); background-size:140% auto; color:#fff; box-shadow:0 8px 24px -8px rgba(99,102,241,.6);}
  .btn-brass:hover{background-position:right center; box-shadow:0 0 0 4px rgba(99,102,241,.2), 0 12px 30px -8px rgba(45,212,255,.55); transform:translateY(-2px);}
  .btn-outline{border-color:#5B7299; color:#E7ECF5;}
  .btn-outline:hover{border-color:var(--navy-2); color:#fff; box-shadow:0 0 0 4px rgba(34,211,238,.18); transform:translateY(-2px);}
  .btn:active{transform:translateY(1px);}
  @media (prefers-reduced-motion: reduce){.btn::before{display:none;}}

  .plaque{
    background:rgba(255,255,255,.06);
    backdrop-filter:blur(24px) saturate(160%); -webkit-backdrop-filter:blur(24px) saturate(160%);
    color:#E7ECF5;
    border:1px solid rgba(255,255,255,.12);
    border-radius:20px;
    padding:28px;
    box-shadow:0 0 0 1px rgba(99,102,241,.15), inset 0 1px 0 rgba(255,255,255,.08), 0 30px 60px -20px rgba(0,0,0,.5);
    animation:heroIn .7s var(--ease) backwards;
    animation-delay:.45s;
    transition:transform .3s var(--ease), box-shadow .3s ease;
  }
  .plaque:hover{
    transform:translateY(-4px);
    box-shadow:0 0 0 1px rgba(34,211,238,.25), inset 0 1px 0 rgba(255,255,255,.08), 0 40px 70px -20px rgba(0,0,0,.5);
  }
  @media (prefers-reduced-motion:reduce){.plaque{animation:none;}}
  .plaque h3{
    font-size:11px; text-transform:uppercase; letter-spacing:.12em;
    font-family:'JetBrains Mono', monospace; color:var(--navy-2);
    margin-bottom:18px; font-weight:600;
    display:flex; align-items:center; gap:8px;
  }
  .plaque h3::before{ content:""; display:block; width:20px; height:1px; background:var(--navy-2); }
  .plaque dl{margin:0; display:grid; gap:14px;}
  .plaque dt{ font-size:10px; color:#5B7299; font-family:'JetBrains Mono', monospace; text-transform:uppercase; letter-spacing:.06em; margin-bottom:2px; }
  .plaque dd{margin:0; font-size:15px; color:#E7ECF5; line-height:1.5;}
  .plaque dd a{color:#E7ECF5; text-decoration:underline; text-underline-offset:3px;}
  .plaque-badge{
    margin-top:18px; padding:12px 14px;
    background:rgba(34,211,238,.08); border:1px solid rgba(34,211,238,.2);
    border-radius:10px;
    font-size:13px; color:#9FB3D4;
    display:flex; align-items:center; gap:8px;
  }
  .plaque-badge strong{ color:var(--navy-2); }

  .hero > .wrap.hero-grid{
    flex:1; display:grid;
    grid-template-columns:1fr 400px;
    gap:60px; align-items:center;
    padding-top:60px; padding-bottom:100px;
    position:relative; z-index:2;
  }
  @media (max-width:1060px){
    .hero > .wrap.hero-grid{ grid-template-columns:1fr 340px; }
  }
  @media (max-width:840px){
    .hero > .wrap.hero-grid{ grid-template-columns:1fr; padding-bottom:80px; }
  }

  /* ---------- SECTION SHELL ---------- */
  .section{padding:104px 0; position:relative;}
  .section::before{
    content:"";
    position:absolute; top:0; left:0; right:0; height:1px;
    background-image:
      repeating-linear-gradient(90deg, rgba(99,102,241,.4) 0 6px, transparent 6px 14px),
      linear-gradient(90deg, transparent, rgba(45,212,255,.9) 50%, transparent);
    background-size:14px 1px, 220px 1px;
    background-repeat:repeat-x, no-repeat;
    background-position:0 0, -220px 0;
    animation:tracePulse 7s linear infinite;
  }
  @keyframes tracePulse{ to{ background-position:0 0, calc(100% + 220px) 0; } }
  @media (prefers-reduced-motion: reduce){ .section::before{animation:none;} }
  @media (max-width:700px){.section{padding:72px 0;}}
  .section-alt{
    background-color:var(--paper-alt);
  }

  /* ---------- PHOTOS DE COMPOSANTS (signature par page) ---------- */
  .page-art{
    position:absolute; top:0; right:0; z-index:0;
    width:min(560px, 50vw); height:480px;
    max-height:62%;
    pointer-events:none;
  }
  .page-art-frame{
    position:absolute; top:60px; right:-40px;
    width:480px; height:340px;
    border-radius:var(--radius-lg);
    overflow:hidden;
    box-shadow:var(--shadow-lg);
    border:1px solid rgba(255,255,255,.5);
  }
  .page-art-frame img{
    width:100%; height:100%; object-fit:cover;
    filter:saturate(1.05);
  }
  .page-art-frame::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(100deg, var(--paper) 0%, transparent 32%);
  }
  .page-art.dark .page-art-frame{border-color:rgba(255,255,255,.15);}
  .page-art.dark .page-art-frame::after{background:linear-gradient(100deg, var(--navy) 0%, transparent 38%);}
  @media (max-width:1180px){.page-art-frame{width:380px; height:280px;}}
  @media (max-width:760px){.page-art{display:none;}}
  .section .wrap{position:relative; z-index:1;}
  .section-head{max-width:640px; margin-bottom:52px;}
  .section-head h2{font-size:clamp(30px,3.8vw,44px); margin-top:14px; letter-spacing:-0.02em;}
  .section-head h2 .h2-accent{
    font-style:normal;
    background:var(--grad-accent);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .section-head p{margin-top:14px; color:#3A3730; font-size:17.5px; line-height:1.6;}

  /* ---------- TICKETS (services) ---------- */
  .ticket{
    background:var(--surface);
    border:1px solid var(--line);
    position:relative;
    padding:32px 28px 28px;
    border-radius:var(--radius-lg);
    transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
    overflow:hidden;
  }
  .ticket::before{
    content:"";
    position:absolute; top:0; left:0; right:0; height:3px;
    background:linear-gradient(90deg, var(--brass), var(--navy-2));
    transform:scaleX(0); transform-origin:left;
    transition:transform .35s var(--ease);
  }
  .ticket:hover{
    box-shadow:0 12px 36px -12px rgba(99,102,241,.30);
    transform:translateY(-3px);
    border-color:rgba(99,102,241,.25);
  }
  .ticket:hover::before{ transform:scaleX(1); }
  .ticket::after{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(135deg, rgba(99,102,241,.03) 0%, transparent 50%);
    opacity:0; transition:opacity .3s ease; pointer-events:none;
  }
  .ticket:hover::after{ opacity:1; }
  .ticket-no{
    font-family:'JetBrains Mono', monospace;
    font-size:11.5px; color:var(--brass-dark);
    letter-spacing:.08em; text-transform:uppercase;
  }
  .ticket-no::before{ content:"// "; opacity:.5; }
  .ticket-icon{
    width:48px; height:48px; border-radius:14px;
    display:flex; align-items:center; justify-content:center;
    margin:16px 0 10px;
    background:linear-gradient(135deg, rgba(99,102,241,.12), rgba(34,211,238,.06));
    color:var(--navy-2);
    transition:background .25s ease, transform .25s ease;
  }
  .ticket:hover .ticket-icon{ background:linear-gradient(135deg, rgba(99,102,241,.2), rgba(34,211,238,.12)); transform:scale(1.06); }
  .ticket-icon svg{ width:24px; height:24px; }
  .ticket h3{ font-size:19px; margin-bottom:10px; font-weight:700; }
  .ticket p{ font-size:14.5px; color:#5A6072; line-height:1.65; margin:0 0 14px; }
  .ticket .ticket-price{
    font-family:'JetBrains Mono', monospace; font-size:15px;
    font-weight:700; color:var(--brass-dark);
  }
  .ticket h3{font-size:20px; margin-bottom:8px;}
  .ticket p{margin:0; color:#4B473D; font-size:15.5px;}

  @media (max-width:760px){
    .ticket-grid{grid-template-columns:1fr;}
  }

  /* ---------- AUDIENCE (particuliers / pros) ---------- */
  .audience-cta-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:22px; }
  .audience-cta-row .btn{ font-size:14px; padding:10px 18px; }
  .audience-pro-contact{
    margin-top:18px; padding:10px 14px; border-radius:8px;
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.1);
    font-size:13px; color:#B9C4DC; display:flex; align-items:center; gap:7px;
  }
  .audience-pro-contact a{ color:var(--navy-2); text-decoration:none; font-weight:600; }
  .audience-grid{ border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
  .audience{
    padding:44px 40px;
    position:relative;
  }
  .audience::before{
    content:""; position:absolute; top:0; left:0; bottom:0; width:3px;
    background:var(--grad-accent); opacity:0;
    transition:opacity .3s ease;
  }
  .audience + .audience{border-left:1px solid var(--line);}
  .audience .eyebrow{margin-bottom:14px;}
  .audience h3{font-size:26px; margin-bottom:20px; font-weight:800; letter-spacing:-.02em;}
  .audience ul{margin:0; padding:0; list-style:none; display:grid; gap:11px;}
  .audience li{
    padding:10px 14px 10px 38px; position:relative; font-size:15px; color:#4A4540;
    background:rgba(99,102,241,.03); border-radius:8px;
    border:1px solid rgba(99,102,241,.06);
    transition:background .2s ease, border-color .2s ease;
  }
  .audience li:hover{ background:rgba(99,102,241,.06); border-color:rgba(99,102,241,.14); }
  .audience li::before{
    content:"✓"; position:absolute; left:12px; top:10px;
    color:var(--brass); font-weight:900; font-size:13px;
  }
  .audience.pro{
    background:
      radial-gradient(100% 120% at 100% 0%, rgba(99,102,241,.18), transparent 55%),
      var(--navy);
    color:#E7ECF5;
  }
  .audience.pro h3{color:#fff;}
  .audience.pro li{
    color:#B9C4DC; background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.08);
  }
  .audience.pro li:hover{ background:rgba(255,255,255,.08); border-color:rgba(34,211,238,.2); }
  .audience.pro li::before{color:var(--navy-2);}
  .audience.pro .eyebrow{color:#9FB3D4;}
  .audience.pro .eyebrow::before{background:var(--brass);}
  @media (max-width:760px){
    .audience-grid{grid-template-columns:1fr;}
    .audience + .audience{border-left:none; border-top:1px solid var(--line);}
  }

  /* ---------- TRUST POINTS ---------- */
  .trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
  .reveal{opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
  .reveal.in, .reveal-in{opacity:1; transform:none;}

  .trust-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden;}
  .trust{
    padding:32px 26px 28px;
    background:var(--surface);
    position:relative;
    transition:background .25s ease, box-shadow .25s ease;
  }
  .trust::before{
    content:""; position:absolute; inset:0;
    background:linear-gradient(135deg, rgba(99,102,241,.04) 0%, transparent 60%);
    opacity:0; transition:opacity .3s ease;
  }
  .trust:hover{ background:rgba(248,250,255,1); box-shadow:inset 0 0 0 1.5px rgba(99,102,241,.25); }
  .trust:hover::before{ opacity:1; }
  .trust-icon{
    width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center;
    margin-bottom:18px;
  }
  .trust-icon svg{ width:22px; height:22px; }
  .trust:nth-child(1) .trust-icon{ background:rgba(99,102,241,.1); }
  .trust:nth-child(1) .trust-icon svg{ stroke:var(--brass); }
  .trust:nth-child(2) .trust-icon{ background:rgba(34,211,238,.1); }
  .trust:nth-child(2) .trust-icon svg{ stroke:var(--navy-2); }
  .trust:nth-child(3) .trust-icon{ background:rgba(74,222,128,.1); }
  .trust:nth-child(3) .trust-icon svg{ stroke:#22C55E; }
  .trust:nth-child(4) .trust-icon{ background:rgba(251,191,36,.1); }
  .trust:nth-child(4) .trust-icon svg{ stroke:#F59E0B; }
  .trust .num{
    font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:.06em;
    text-transform:uppercase; color:#A0ABBA; margin-bottom:12px; display:block;
  }
  .trust h3{ font-size:16.5px; margin-bottom:8px; font-weight:700; }
  .trust p{ margin:0; font-size:14px; color:#5A6072; line-height:1.6; }
  @media (max-width:900px){ .trust-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:560px){ .trust-grid{ grid-template-columns:1fr; } }

  /* ---------- PROCESS ---------- */
  .process{ position:relative; }
  .process::before{
    content:""; position:absolute; top:36px; left:0; right:0; height:2px;
    background:linear-gradient(90deg, transparent 0%, var(--brass) 15%, var(--violet) 50%, var(--navy-2) 85%, transparent 100%);
    opacity:.3;
    z-index:0;
  }
  .step{
    padding:40px 28px 36px;
    background:transparent;
    position:relative; z-index:1;
    transition:background .25s ease;
    border-top:none;
  }
  .step::before{ display:none; }
  .step:hover{ background:rgba(99,102,241,.04); }
  .step-dot{
    width:14px; height:14px; border-radius:50%;
    background:var(--grad-accent);
    margin-bottom:22px;
    position:relative;
    box-shadow:0 0 0 4px rgba(99,102,241,.15);
  }
  .step:hover .step-dot{ box-shadow:0 0 0 6px rgba(99,102,241,.2), 0 0 14px rgba(34,211,238,.5); }
  .step .num{
    font-family:'Sora', sans-serif; font-size:48px; font-weight:800;
    color:transparent; -webkit-text-stroke:1.5px rgba(99,102,241,.25);
    display:block; margin-bottom:6px; letter-spacing:-0.04em;
    line-height:1; transition:color .25s ease, -webkit-text-stroke-color .25s ease;
  }
  .step:hover .num{ color:rgba(99,102,241,.08); -webkit-text-stroke-color:rgba(99,102,241,.5); }
  .step h3{ font-size:18px; margin-bottom:10px; font-weight:700; }
  .step p{ margin:0; font-size:14.5px; color:#5A6072; line-height:1.6; }
  @media (max-width:840px){
    .process{ grid-template-columns:1fr 1fr; }
    .process::before{ display:none; }
  }
  @media (max-width:560px){ .process{ grid-template-columns:1fr; } }

  /* ---------- CONTACT ---------- */
  .contact-grid-solo{grid-template-columns:1fr; max-width:560px; margin:0 auto;}
  .contact-alts{
    margin-top:24px; padding-top:20px; border-top:1px solid var(--line);
    display:flex; flex-direction:column; gap:12px;
  }
  .contact-alts-label{ font-size:13px; color:#8993A8; margin:0 0 4px; text-transform:uppercase; letter-spacing:.05em; font-family:'JetBrains Mono',monospace; }
  .contact-alt-row{
    display:flex; align-items:center; gap:10px; flex-wrap:wrap;
    font-size:15px;
  }
  .contact-alt-row svg{ color:#8993A8; flex-shrink:0; }
  .contact-alt-row a{ color:var(--navy-2); text-decoration:none; font-weight:600; }
  .contact-alt-row a:hover{ text-decoration:underline; }
  .copy-btn{
    background:rgba(99,102,241,.08); border:1px solid rgba(99,102,241,.2);
    color:var(--brass-dark); border-radius:6px; font-size:12px; padding:4px 10px;
    cursor:pointer; font-family:'Inter',sans-serif; font-weight:600;
    transition:background .15s, border-color .15s;
  }
  .copy-btn:hover{ background:rgba(99,102,241,.15); }
  .copy-btn.copied{ background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.3); color:#16A34A; }
  .contact-card{
    background:linear-gradient(155deg, var(--navy) 0%, #161B2C 100%);
    color:#E7ECF5; padding:44px 38px;
    position:relative; overflow:hidden;
  }
  .contact-card::before{
    content:"";
    position:absolute; top:0; bottom:0; right:-1px; width:0;
    border-right:2px dashed rgba(255,255,255,.18);
  }
  .contact-card::after{
    content:"";
    position:absolute; width:260px; height:260px; top:-100px; left:-80px;
    background:radial-gradient(circle, rgba(99,102,241,.28), transparent 70%);
    filter:blur(40px); pointer-events:none; z-index:0;
  }
  .contact-card .eyebrow{color:#9FB3D4; margin-bottom:18px; position:relative; z-index:1;}
  .contact-card .eyebrow::before{background:var(--brass);}
  .contact-card h3{color:#fff; font-size:22px; margin-bottom:24px; position:relative; z-index:1;}
  .contact-card dl{display:grid; gap:18px; margin:0 0 28px; position:relative; z-index:1;}
  .contact-card dt{font-family:'JetBrains Mono', monospace; font-size:11.5px; letter-spacing:.07em; text-transform:uppercase; color:#9FAEC4;}
  .contact-card dd{margin:4px 0 0; font-size:16px;}
  .contact-card dd a{color:#fff; border-bottom:1px solid var(--brass);}
  .note{font-size:12.5px; color:#9FAEC4; font-style:italic;}
  .map-link{
    display:inline-flex; align-items:center; gap:8px;
    font-family:'JetBrains Mono', monospace; font-size:13px;
    color:var(--brass); border:1px solid var(--brass);
    padding:9px 16px; border-radius:var(--radius);
    position:relative; z-index:1;
  }
  .map-link:hover{background:rgba(99,102,241,.14);}

  .form-card{
    background:var(--surface); padding:40px 36px;
    border:1px solid var(--line); border-radius:var(--radius-lg);
    box-shadow:var(--shadow-md);
  }
  .form-card h3{ font-size:21px; margin-bottom:10px; font-weight:800; }
  .form-card > p{ margin:0 0 28px; font-size:15px; color:#5A6072; line-height:1.6; }
  .field{ margin-bottom:20px; }
  .field label{
    display:block; font-family:'JetBrains Mono',monospace; font-size:11.5px;
    letter-spacing:.06em; text-transform:uppercase; color:var(--brass-dark); margin-bottom:8px;
  }
  .field input, .field textarea, .field select{
    width:100%; padding:13px 15px; font-size:15.5px;
    border:2px solid var(--line); background:var(--paper); color:var(--ink);
    font-family:'Inter',sans-serif; border-radius:var(--radius);
    transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
    outline:none;
  }
  .field input:focus, .field textarea:focus, .field select:focus{
    border-color:var(--brass); background:#fff;
    box-shadow:0 0 0 3px rgba(99,102,241,.12);
  }
  .form-foot{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-top:8px; }
  .form-status{ font-size:13.5px; color:#6b6553; }

  @media (max-width:840px){
    .contact-grid{ grid-template-columns:1fr; }
    .contact-card::before{ display:none; }
    .form-card{ padding:28px 22px; }
  }

  /* ---------- FOOTER ENRICHI ---------- */
  footer{
    background:var(--navy); color:#9FAEC4;
    padding:60px 0 0;
    border-top:1px solid rgba(99,102,241,.2);
    position:relative; overflow:hidden;
  }
  footer::before{
    content:"";
    position:absolute; top:0; left:0; right:0; height:2px;
    background:var(--grad-accent);
    opacity:.6;
  }
  .foot-grid{
    display:grid;
    grid-template-columns:1.6fr 1fr 1fr;
    gap:48px;
    padding-bottom:48px;
    border-bottom:1px solid rgba(255,255,255,.07);
  }
  .foot-col-brand .foot-brand-logo{
    display:flex; align-items:center; gap:10px; margin-bottom:14px;
  }
  .foot-brand{
    font-family:'Sora',sans-serif; font-weight:700; font-size:17px; color:#E7ECF5;
  }
  .foot-brand em{ color:var(--navy-2); font-style:normal; }
  .foot-desc{
    font-size:14px; line-height:1.7; color:#5B7299; margin:0 0 18px;
    max-width:280px;
  }
  .foot-badge{
    display:inline-flex; align-items:center; gap:7px;
    background:rgba(34,211,238,.07); border:1px solid rgba(34,211,238,.18);
    border-radius:8px; padding:8px 12px;
    font-size:12.5px; font-weight:600; color:var(--navy-2);
  }
  .foot-col-title{
    font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.1em;
    text-transform:uppercase; color:#4B5E7C; margin:0 0 16px; font-weight:500;
  }
  .foot-links{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; }
  .foot-links a{
    color:#7A8FA8; font-size:14.5px; text-decoration:none;
    transition:color .15s ease, transform .15s ease;
    display:inline-flex; align-items:center; gap:6px;
  }
  .foot-links a:hover{ color:#E7ECF5; transform:translateX(3px); }
  .foot-links a::before{ content:"→"; opacity:0; transition:opacity .15s ease; font-size:11px; }
  .foot-links a:hover::before{ opacity:1; }
  .foot-info{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:12px; }
  .foot-info li{
    display:flex; align-items:flex-start; gap:9px;
    font-size:14px; color:#7A8FA8; line-height:1.6;
    min-height:44px;
  }
  .foot-info li svg{ flex-shrink:0; margin-top:2px; opacity:.7; }
  .foot-info a{ color:#9FB3D4; text-decoration:none; transition:color .15s; }
  .foot-info a:hover{ color:var(--navy-2); }
  .foot-bottom{
    display:flex; justify-content:space-between; align-items:center;
    padding:20px 0; font-size:13px; color:#4B5E7C;
    flex-wrap:wrap; gap:10px;
  }
  .foot-bottom a{ color:#4B5E7C; text-decoration:none; transition:color .15s; }
  .foot-bottom a:hover{ color:#9FB3D4; }
  @media (max-width:900px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
  @media (max-width:600px){ .foot-grid{ grid-template-columns:1fr; gap:32px; } }

  /* ---------- SCROLL-TO-TOP ---------- */
  #scrollTopBtn{
    position:fixed; bottom:28px; right:28px; z-index:120;
    width:44px; height:44px; border-radius:50%;
    background:var(--grad-accent); color:#fff; border:none;
    display:flex; align-items:center; justify-content:center;
    cursor:pointer; box-shadow:0 4px 20px rgba(99,102,241,.5);
    opacity:0; transform:translateY(12px);
    transition:opacity .3s ease, transform .3s ease;
    pointer-events:none;
  }
  #scrollTopBtn.visible{
    opacity:1; transform:translateY(0);
    pointer-events:auto;
  }
  #scrollTopBtn:hover{
    box-shadow:0 6px 28px rgba(99,102,241,.7);
    transform:translateY(-2px);
  }

  /* ---------- ÉTAT VIDE BOUTIQUE ---------- */
  .shop-empty-state{
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    padding:60px 20px; text-align:center;
    color:#8993A8;
  }
  .shop-empty-state svg{
    width:64px; height:64px; opacity:.35; margin-bottom:20px;
  }
  .shop-empty-state h3{
    font-size:18px; font-weight:700; color:#5A6072; margin:0 0 8px;
  }
  .shop-empty-state p{ font-size:14.5px; margin:0; max-width:300px; }

  .hero, footer{position:relative;}
  .cursor-glow{
    position:absolute; inset:0; pointer-events:none; z-index:0;
    background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), rgba(99,102,241,.16), transparent 70%);
    opacity:0; transition:opacity .4s ease;
  }
  .cursor-glow-on{opacity:1;}
  .hero, footer{position:relative;}
  /* ---------- MONTAGE PC ---------- */
  .assembly-card{
    display:flex; gap:24px; align-items:flex-start; flex-wrap:wrap;
    background:var(--navy); color:#E7ECF5;
    border:1px solid rgba(99,102,241,.25);
    border-radius:var(--radius-lg); padding:28px 28px 28px 24px;
    margin-top:36px;
  }
  .assembly-card-icon{ font-size:32px; flex-shrink:0; margin-top:2px; }
  .assembly-card-content{ flex:1; min-width:220px; }
  .assembly-card-content h3{ font-size:20px; margin:0 0 8px; color:#fff; font-weight:800; }
  .assembly-card-content p{ font-size:14.5px; color:#B9C4DC; margin:0 0 12px; line-height:1.6; }
  .assembly-includes{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:6px; }
  .assembly-includes li{ font-size:13.5px; color:#9FB3D4; padding-left:18px; position:relative; }
  .assembly-includes li::before{ content:"✓"; position:absolute; left:0; color:#22D3EE; font-weight:700; }
  .assembly-card-price{ display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; min-width:130px; }
  .assembly-price{ font-size:36px; font-weight:900; color:#fff; letter-spacing:-.03em; }
  .assembly-label{ font-size:12px; color:#6B7DB3; text-transform:uppercase; letter-spacing:.08em; }

  /* ---------- RAPPEL AUTOMATIQUE ---------- */
  .callback-card{
    display:flex; gap:20px; align-items:center; flex-wrap:wrap;
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-lg); padding:24px; margin-top:16px;
  }
  .callback-icon{ font-size:32px; flex-shrink:0; }
  .callback-body{ flex:1; min-width:220px; }
  .callback-body h3{ font-size:17px; margin:0 0 6px; font-weight:700; }
  .callback-body p{ font-size:14px; color:#6B7DB3; margin:0 0 14px; }
  .callback-form{ display:flex; gap:8px; flex-wrap:wrap; }
  .callback-form input{
    flex:1; min-width:180px; padding:10px 14px;
    border:1px solid var(--line); border-radius:var(--radius);
    background:var(--paper); color:var(--ink); font-size:15px;
    font-family:'Inter',sans-serif;
  }
  .callback-form input:focus{ outline:none; border-color:var(--brass); }

  /* ---------- GALERIE AVANT/APRÈS ---------- */
  .before-after-section{ margin-top:44px; padding-top:36px; border-top:1px solid var(--line); }
  .before-after-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
  .ba-item{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
  .ba-label{ font-size:12px; font-family:'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.08em; color:#8993A8; padding:10px 14px 0; }
  .ba-panels{ display:grid; grid-template-columns:1fr 1fr; }
  .ba-panel{ position:relative; min-height:140px; display:flex; align-items:center; justify-content:center; }
  .ba-before{ background:rgba(239,68,68,.05); border-right:1px solid var(--line); }
  .ba-after{ background:rgba(34,211,238,.05); }
  .ba-panel-label{ position:absolute; top:8px; left:10px; font-size:11px; font-weight:700; font-family:'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.08em; }
  .ba-before .ba-panel-label{ color:#F87171; }
  .ba-after .ba-panel-label{ color:#22D3EE; }
  .ba-placeholder{ display:flex; flex-direction:column; align-items:center; gap:8px; color:#8993A8; font-size:12px; padding:10px; }
  .ba-panel img{ width:100%; height:140px; object-fit:cover; display:block; }
  .ba-desc{ font-size:13px; color:#6B7DB3; padding:10px 14px; border-top:1px solid var(--line); }
  @media (max-width:600px){ .before-after-grid{ grid-template-columns:1fr; } }
  .faq-section{ margin-top:44px; padding-top:36px; border-top:1px solid var(--line); }
  .faq-title{ font-size:20px; font-weight:800; margin:0 0 20px; color:var(--navy); }
  .faq-list{ display:flex; flex-direction:column; gap:10px; }
  .faq-item{
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius); overflow:hidden;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .faq-item[open]{ border-color:rgba(99,102,241,.3); box-shadow:0 4px 14px -4px rgba(99,102,241,.12); }
  .faq-item summary{
    padding:16px 20px; font-weight:700; font-size:15px; cursor:pointer;
    list-style:none; display:flex; justify-content:space-between; align-items:center;
    color:var(--navy); user-select:none;
  }
  .faq-item summary::-webkit-details-marker{ display:none; }
  .faq-item summary::after{
    content:"＋"; color:var(--brass); font-size:18px; font-weight:400;
    transition:transform .2s ease; flex-shrink:0; margin-left:12px;
  }
  .faq-item[open] summary::after{ transform:rotate(45deg); }
  .faq-item p{ margin:0; padding:0 20px 16px; font-size:14.5px; color:#4A4540; line-height:1.65; }

  /* ---------- BADGE OUVERT / FERMÉ ---------- */
  .open-badge{
    display:inline-flex; align-items:center; gap:6px;
    font-size:12.5px; font-family:'JetBrains Mono',monospace;
    padding:3px 10px; border-radius:20px; font-weight:600; white-space:nowrap;
  }
  .open-badge.open{ background:rgba(34,197,94,.12); color:#16A34A; }
  .open-badge.closed{ background:rgba(239,68,68,.10); color:#DC2626; }
  .open-badge::before{
    content:""; width:7px; height:7px; border-radius:50%;
    background:currentColor; display:inline-block;
    animation:badgePulse 2s infinite;
  }
  .open-badge.closed::before{ animation:none; }
  @keyframes badgePulse{ 0%,100%{opacity:1;} 50%{opacity:.4;} }

  /* ---------- AVIS CLIENTS ---------- */
  .reviews-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
    margin-top:40px; padding-top:36px;
    border-top:1px solid var(--line);
  }
  .review-card{
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-lg); padding:24px;
    display:flex; flex-direction:column; gap:14px;
    transition:box-shadow .2s ease, border-color .2s ease;
  }
  .review-card:hover{ border-color:rgba(99,102,241,.25); box-shadow:0 6px 24px -8px rgba(99,102,241,.18); }
  .review-stars{ color:#F59E0B; font-size:16px; letter-spacing:1px; }
  .review-text{ font-size:14.5px; color:#4A4540; line-height:1.65; margin:0; flex:1; font-style:italic; }
  .review-author{ display:flex; align-items:center; gap:10px; }
  .review-initials{
    width:36px; height:36px; border-radius:50%; flex-shrink:0;
    background:var(--grad-accent); display:flex; align-items:center; justify-content:center;
    color:var(--adm-text); font-weight:700; font-size:12px; font-family:'JetBrains Mono',monospace;
  }
  .review-city{ color:#8993A8; font-size:13px; font-weight:400; }
  @media (max-width:840px){ .reviews-grid{ grid-template-columns:1fr; } }

  /* ============================================================
     ADMIN SIDE PANEL — Interface plein écran
     ============================================================ */
  /* Fond "aurora" partagé par tout le poste : sidebar, topbar et contenu
     deviennent des panneaux vitrés semi-transparents posés SUR ce fond
     commun (au lieu de trois aplats sombres indépendants), pour que
     l'interface se lise comme une seule scène vivante plutôt qu'un
     empilement de rectangles gris. Dérive lentement, jamais statique. */
  #adminSidePanel{
    position:fixed; inset:0; z-index:180;
    display:flex; flex-direction:row;
    padding:18px; gap:0; box-sizing:border-box;
    /* Le halo n°1 suit la souris (--mx/--my posés par bindAdmParallax en JS,
       repli central si la souris n'a pas encore bougé) ; les deux autres
       dérivent lentement tout seuls via admAurora. */
    background:
      radial-gradient(1100px circle at var(--mx,15%) var(--my,20%), rgba(99,102,241,.4), transparent 55%),
      radial-gradient(950px circle at 88% 8%, rgba(34,211,238,.30), transparent 55%),
      radial-gradient(1000px circle at 55% 105%, rgba(167,139,250,.26), transparent 55%),
      var(--adm-bg);
    background-size:200% 200%, 200% 200%, 200% 200%, 100% 100%;
    background-repeat:no-repeat;
    animation:admFadeIn .25s ease both, admAurora 24s ease-in-out infinite alternate;
    color:var(--adm-text);
    font-family:'Inter',system-ui,sans-serif;
  }
  @keyframes admAurora{
    0%{ background-position:0 0, 100% 0%, 50% 100%, 0 0; }
    100%{ background-position:0 0, 75% 25%, 62% 82%, 0 0; }
  }
  @media (prefers-reduced-motion:reduce){ #adminSidePanel{ animation:admFadeIn .25s ease both; } }
  /* Poste flottant : la paire sidebar+contenu forme un seul bloc vitré aux
     coins arrondis, détaché des bords de l'écran — l'aurore déborde tout
     autour comme un halo, au lieu d'un panneau plein écran classique. */
  .adm-sidebar{ border-radius:20px 0 0 20px; box-shadow:-2px 0 40px -12px rgba(0,0,0,.6); }
  .adm-main{ border-radius:0 20px 20px 0; overflow:hidden; box-shadow:2px 0 40px -12px rgba(0,0,0,.6); position:relative; }
  .adm-main::before{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:1; border-radius:inherit;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
  }
  /* Voile de balayage façon écran holographique/HUD, très discret, posé sur
     l'ensemble du poste (sidebar + contenu) plutôt que sur un seul bloc —
     renforce l'idée de "système actif" sans gêner la lecture. */
  #adminSidePanel::after{
    content:""; position:absolute; inset:0; pointer-events:none; z-index:50;
    background:linear-gradient(180deg, transparent 0%, rgba(129,140,248,.05) 48%, transparent 100%);
    background-size:100% 240%;
    mix-blend-mode:screen;
    animation:admScan 9s linear infinite;
  }
  @keyframes admFadeIn{ from{opacity:0;transform:scale(.99)} to{opacity:1;transform:scale(1)} }
  @keyframes admBlip{
    0%,100%{ opacity:.6; box-shadow:0 0 0 0 currentColor; }
    50%{ opacity:1; box-shadow:0 0 6px 1px currentColor; }
  }
  @keyframes admScan{ 0%{ background-position:0 -140%; } 100%{ background-position:0 140%; } }
  @keyframes admUrgentPulse{
    0%,100%{ box-shadow:0 0 0 1px rgba(248,65,65,.12), 0 14px 30px -20px var(--sec-c); }
    50%{ box-shadow:0 0 18px 1px rgba(248,65,65,.32), 0 14px 30px -20px var(--sec-c); }
  }
  @media (prefers-reduced-motion:reduce){
    .adm-blip, .adm-status-dot, .adm-dash-icon::after, #adminSidePanel::after, .adm-dash-section.urgent{ animation:none !important; }
    .adm-status-dot::before{ display:none; }
  }

  /* SIDEBAR */
  .adm-sidebar{
    width:312px; flex-shrink:0;
    background:rgba(10,14,23,.6);
    backdrop-filter:blur(22px) saturate(140%); -webkit-backdrop-filter:blur(22px) saturate(140%);
    border-right:1px solid rgba(255,255,255,.07);
    display:flex; flex-direction:column;
    overflow-y:auto; overflow-x:hidden;
  }
  .adm-sidebar-top{
    padding:24px 20px; border-bottom:1px solid rgba(255,255,255,.05);
    background:radial-gradient(260px circle at 0% 0%, rgba(99,102,241,.10), transparent 70%);
  }
  .adm-sidebar-brand{
    display:flex; align-items:center; gap:12px;
    margin-bottom:20px;
  }
  .adm-sidebar-brand svg{ width:32px; height:32px; }
  .adm-brand-name{ font-family:'Sora',sans-serif; font-size:16.5px; font-weight:800; color:var(--adm-text); line-height:1.2; }
  .adm-brand-tag{ font-size:11px; font-family:'JetBrains Mono',monospace; text-transform:uppercase; letter-spacing:.1em; color:var(--adm-text-faint); }
  .adm-brand-tag::after{ content:"▌"; margin-left:3px; color:var(--brass); animation:admCursor 1.1s step-end infinite; }
  @keyframes admCursor{ 0%,49%{ opacity:1; } 50%,100%{ opacity:0; } }
  @media (prefers-reduced-motion:reduce){ .adm-brand-tag::after{ animation:none; } }
  .adm-user-chip{
    display:flex; align-items:center; gap:12px;
    background:linear-gradient(155deg, rgba(99,102,241,.08), transparent 70%), rgba(255,255,255,.035);
    border:1px solid rgba(255,255,255,.07);
    border-radius:12px; padding:13px 15px;
  }
  .adm-user-avatar{
    width:40px; height:40px; border-radius:9px; flex-shrink:0;
    background:linear-gradient(135deg,var(--brass),var(--status-info));
    box-shadow:0 6px 16px -6px var(--brass), inset 0 1px 0 rgba(255,255,255,.25);
    display:flex; align-items:center; justify-content:center;
    font-weight:800; font-size:15px; color:#fff; font-family:'Sora',sans-serif;
  }
  .adm-user-name{ font-size:14.5px; font-weight:700; color:var(--adm-text); line-height:1.3; }
  .adm-user-role{ font-size:12px; color:var(--adm-text-faint); font-family:'JetBrains Mono',monospace; }

  /* NAVIGATION — chaque entrée est numérotée en continu (façon menu de
     démarrage/BIOS) via un compteur CSS ; les libellés de groupe reprennent
     la syntaxe d'un commentaire de code ("// SECTION"), cohérent avec la
     police JetBrains Mono déjà utilisée pour tout ce qui est "technique"
     sur le site. */
  .adm-nav{ padding:14px 12px; flex:1; display:flex; flex-direction:column; gap:6px; counter-reset:adminav; }
  .adm-nav-group{ margin-bottom:6px; }
  .adm-nav-label{
    display:flex; align-items:center;
    font-family:'JetBrains Mono',monospace; font-size:10.5px; font-weight:700;
    text-transform:uppercase; letter-spacing:.12em; color:var(--adm-text-faint);
    padding:12px 12px 6px; margin-top:2px; cursor:default;
  }
  .adm-nav-label::before{ content:"// "; opacity:.7; }
  .adm-nav-item{
    display:flex; align-items:center; gap:12px; width:100%;
    padding:13px 14px; border-radius:9px; border:none; cursor:pointer;
    background:transparent; color:var(--adm-text-muted); font-size:14.5px; font-weight:500;
    font-family:'Inter',sans-serif; text-align:left;
    transition:background .15s, color .15s, transform .08s;
    position:relative;
    counter-increment:adminav;
  }
  .adm-nav-item::before{
    content:counter(adminav, decimal-leading-zero);
    font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:600;
    color:var(--adm-text-faint); flex-shrink:0; letter-spacing:0;
    transition:color .15s;
  }
  .adm-nav-item svg{ flex-shrink:0; opacity:.7; transition:opacity .15s; width:19px; height:19px; }
  .adm-nav-item:hover{ background:rgba(255,255,255,.05); color:var(--adm-text-soft); }
  .adm-nav-item:hover svg{ opacity:1; }
  .adm-nav-item:hover{ transform:translateX(2px); }
  .adm-nav-item.active{
    background:linear-gradient(90deg, rgba(99,102,241,.22), rgba(99,102,241,.05) 80%);
    color:#C4B5FD;
    box-shadow:inset 3px 0 0 var(--brass), 0 4px 14px -8px var(--brass);
  }
  .adm-nav-item.active::before{ color:var(--brass); }
  .adm-nav-item.active svg{ opacity:1; color:var(--brass); }
  .adm-nav-badge{
    margin-left:auto; flex-shrink:0;
    background:var(--status-danger); color:var(--adm-text); font-size:10px; font-weight:700;
    font-family:'JetBrains Mono',monospace;
    padding:2px 6px; border-radius:10px; min-width:18px; text-align:center;
  }
  .adm-badge-warn{ background:var(--status-warning); color:var(--adm-bg); }
  /* Indique qu'un clic ouvre une NOUVELLE FENÊTRE plutôt que de changer le
     contenu de celle-ci — sans ça, deux boutons d'apparence identique se
     comportent différemment, ce qui était la principale source de confusion
     signalée dans la navigation admin. */
  .adm-nav-external{
    margin-left:auto; flex-shrink:0;
    font-size:13px; color:var(--adm-text-muted); line-height:1;
  }
  .adm-nav-item:hover .adm-nav-external{ color:var(--adm-text-soft); }
  .adm-nav-item .adm-nav-badge + .adm-nav-external,
  .adm-nav-item .adm-nav-external + .adm-nav-badge{ margin-left:6px; }

  /* SIDEBAR FOOTER */
  .adm-sidebar-footer{
    padding:14px 12px; border-top:1px solid rgba(255,255,255,.05);
    display:flex; flex-direction:column; gap:8px;
  }
  .adm-close-btn, .adm-logout-btn{
    display:flex; align-items:center; gap:10px; width:100%;
    padding:12px 14px; border-radius:9px; border:1px solid;
    cursor:pointer; font-size:13.5px; font-weight:600;
    font-family:'Inter',sans-serif; transition:background .15s;
  }
  .adm-close-btn{
    background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.08); color:var(--adm-text-muted);
  }
  .adm-close-btn:hover{ background:rgba(255,255,255,.08); color:var(--adm-text); }
  .adm-logout-btn{
    background:rgba(248,65,65,.06); border-color:rgba(248,65,65,.15); color:var(--status-danger);
  }
  .adm-logout-btn:hover{ background:rgba(248,65,65,.12); }

  /* MAIN CONTENT */
  .adm-main{ flex:1; display:flex; flex-direction:column; min-width:0; overflow:hidden; }

  /* TOPBAR */
  .adm-topbar{
    display:flex; align-items:center; justify-content:space-between;
    padding:0 28px; height:60px; flex-shrink:0;
    border-bottom:1px solid rgba(255,255,255,.06);
    background:linear-gradient(180deg, rgba(99,102,241,.08), transparent), rgba(10,14,23,.45);
    backdrop-filter:blur(22px) saturate(140%); -webkit-backdrop-filter:blur(22px) saturate(140%);
  }
  .adm-topbar-left{ display:flex; align-items:baseline; gap:16px; }
  .adm-page-title{
    font-family:'Sora',sans-serif; font-size:24px; font-weight:900; margin:0; letter-spacing:-.01em;
    background:linear-gradient(100deg, var(--adm-text) 55%, var(--brass) 140%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .adm-page-title::before{ content:"> "; color:var(--brass); font-family:'JetBrains Mono',monospace; opacity:.9; }
  .adm-time{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--adm-text-faint); }
  .adm-time::before{ content:"["; opacity:.6; } .adm-time::after{ content:"]"; opacity:.6; }
  .adm-topbar-right{ display:flex; align-items:center; gap:10px; }
  .adm-status-chip{
    display:flex; align-items:center; gap:6px; padding:5px 12px;
    border-radius:20px; border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.03);
    font-size:12px; font-family:'JetBrains Mono',monospace; color:var(--adm-text-muted);
    text-transform:uppercase; letter-spacing:.04em;
  }
  .adm-status-dot{
    width:7px; height:7px; border-radius:50%; background:var(--status-ok); color:var(--status-ok);
    animation:admBlip 2.4s ease-in-out infinite; position:relative;
  }
  .adm-status-dot.closed{ background:var(--status-danger); color:var(--status-danger); animation:admBlip 1.1s ease-in-out infinite; }
  /* Anneau radar en rotation autour du témoin — évoque un balayage de
     surveillance plutôt qu'un simple point de couleur. */
  .adm-status-dot::before{
    content:""; position:absolute; inset:-6px; border-radius:50%;
    background:conic-gradient(from 0deg, transparent 0%, currentColor 6%, transparent 22%);
    opacity:.55; animation:admRadar 3s linear infinite;
  }
  @keyframes admRadar{ to{ transform:rotate(360deg); } }
  /* Coins tranchés façon panneau HUD, plutôt qu'un bouton arrondi classique —
     signature "haute technologie" réservée aux contrôles (les grandes
     cartes gardent leur cadre à coins de visée pour ne pas mélanger les
     deux grammaires visuelles sur un même élément). */
  .adm-topbar-btn{
    display:flex; align-items:center; gap:6px; padding:7px 14px;
    clip-path:polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 9px) 100%, 0 100%, 0 9px);
    border:1px solid rgba(255,255,255,.1);
    background:rgba(255,255,255,.04); color:var(--adm-text-muted); font-size:12.5px;
    font-weight:600; font-family:'Inter',sans-serif; cursor:pointer;
    transition:background .15s, color .15s, box-shadow .15s;
  }
  .adm-topbar-btn:hover{ background:rgba(255,255,255,.08); color:var(--adm-text); box-shadow:0 0 0 1px rgba(255,255,255,.08); }
  .adm-cmdk-kbd{
    font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; letter-spacing:.02em;
    background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.12);
    border-radius:4px; padding:1px 5px; margin-left:2px; color:var(--adm-text-muted);
  }

  /* PALETTE DE COMMANDES — même grammaire visuelle que le reste (verre,
     coins tranchés, numérotation monospace) pour rester cohérente avec la
     sidebar tout en se comportant comme un vrai "quick switcher". */
  .adm-cmdk-backdrop{
    position:fixed; inset:0; z-index:300;
    background:rgba(5,7,12,.55); backdrop-filter:blur(3px);
    display:flex; align-items:flex-start; justify-content:center;
    padding-top:14vh;
    animation:admFadeIn .15s ease both;
  }
  .adm-cmdk-panel{
    width:min(560px, 92vw); max-height:60vh; display:flex; flex-direction:column;
    background:linear-gradient(160deg, rgba(99,102,241,.10), transparent 40%), rgba(10,14,23,.92);
    backdrop-filter:blur(20px) saturate(140%); -webkit-backdrop-filter:blur(20px) saturate(140%);
    border:1px solid rgba(255,255,255,.1); border-radius:12px;
    box-shadow:0 24px 60px -16px rgba(0,0,0,.7), 0 0 0 1px rgba(99,102,241,.08);
    overflow:hidden;
  }
  .adm-cmdk-input-wrap{
    display:flex; align-items:center; gap:10px; padding:14px 16px;
    border-bottom:1px solid rgba(255,255,255,.08); color:var(--adm-text-muted); flex-shrink:0;
  }
  .adm-cmdk-input-wrap input{
    flex:1; background:none; border:none; outline:none; color:var(--adm-text);
    font-family:'Inter',sans-serif; font-size:14.5px;
  }
  .adm-cmdk-input-wrap input::placeholder{ color:var(--adm-text-faint); }
  .adm-cmdk-esc{
    font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
    border-radius:4px; padding:2px 6px; color:var(--adm-text-faint); flex-shrink:0;
  }
  .adm-cmdk-results{ overflow-y:auto; padding:8px; }
  .adm-cmdk-item{
    width:100%; display:flex; align-items:center; gap:10px; padding:9px 10px;
    border:none; background:transparent; border-radius:8px; cursor:pointer; text-align:left;
    color:var(--adm-text-soft); font-family:'Inter',sans-serif; font-size:13.5px;
  }
  .adm-cmdk-item.active{ background:rgba(99,102,241,.16); color:var(--adm-text); }
  .adm-cmdk-item.active .adm-cmdk-num{ color:var(--brass); }
  .adm-cmdk-num{
    font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600;
    color:var(--adm-text-faint); flex-shrink:0; width:16px;
  }
  .adm-cmdk-icon{ display:flex; flex-shrink:0; opacity:.85; }
  .adm-cmdk-label{ flex:1; }
  .adm-cmdk-group{
    font-family:'JetBrains Mono',monospace; font-size:10px; text-transform:uppercase;
    letter-spacing:.06em; color:var(--adm-text-faint); flex-shrink:0;
  }
  .adm-cmdk-external{ color:var(--adm-text-muted); flex-shrink:0; }
  .adm-cmdk-empty{ padding:24px; text-align:center; color:var(--adm-text-faint); font-size:13px; }

  /* CONTENT AREA — trame quadrillée façon plan/salle de contrôle, en clin
     d'œil au décor circuit du hero public (même esprit, dosage discret) ;
     deux halos radiaux ajoutent de la profondeur derrière la grille plutôt
     qu'un simple aplat sombre. */
  .adm-content{
    flex:1; overflow-y:auto; padding:28px;
    scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.1) transparent;
    background-color:rgba(6,9,16,.32);
    background-image:
      radial-gradient(760px circle at 8% -10%, rgba(99,102,241,.14), transparent 55%),
      radial-gradient(640px circle at 100% 0%, rgba(34,211,238,.09), transparent 55%),
      radial-gradient(circle 1.4px at 0 0, rgba(99,102,241,.5), transparent 1.6px),
      linear-gradient(rgba(99,102,241,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(99,102,241,.05) 1px, transparent 1px);
    background-repeat:no-repeat, no-repeat, repeat, repeat, repeat;
    background-size:100% 520px, 100% 520px, 32px 32px, 32px 32px, 32px 32px;
    background-position:0 0, 0 0, 0 0, 0 0, 0 0;
  }
  .adm-content::-webkit-scrollbar{ width:5px; }
  .adm-content::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.1); border-radius:4px; }

  /* DASHBOARD — KPI CARDS */
  /* Grille "bento" : la première carte (Fiches totales) devient un panneau
     vedette 2×2 plutôt qu'une case identique aux trois autres — casse la
     monotonie de la grille 4 colonnes uniforme et donne un vrai point focal
     à l'ouverture du tableau de bord. */
  .adm-kpi-grid{
    display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:1fr; grid-auto-flow:dense;
    gap:14px; margin-bottom:28px;
  }
  .adm-kpi:first-child{
    grid-column:span 2; grid-row:span 2;
    justify-content:space-between; padding:22px 22px 24px;
  }
  .adm-kpi:first-child .adm-kpi-icon{ width:46px; height:46px; border-radius:12px; font-size:18px; }
  .adm-kpi:first-child .adm-kpi-value{ font-size:68px; }
  .adm-kpi:first-child .adm-kpi-label{ font-size:13px; }
  @media (max-width:1280px){
    .adm-kpi:first-child{ grid-column:span 2; grid-row:span 1; }
    .adm-kpi:first-child .adm-kpi-value{ font-size:42px; }
  }
  /* Carte "verrière" : léger flou + dégradé teinté de la couleur du KPI en
     coin haut-gauche, plutôt qu'un aplat gris uniforme — donne du relief
     sans casser la sobriété du reste du panneau. */
  .adm-kpi{
    background:
      linear-gradient(155deg, var(--kpi-bg) 0%, transparent 55%),
      rgba(255,255,255,.035);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.07);
    border-radius:10px; padding:18px 16px;
    display:flex; flex-direction:column; gap:10px;
    transition:border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease;
    position:relative; overflow:visible;
  }
  .adm-kpi:hover{
    border-color:rgba(255,255,255,.14);
    background:linear-gradient(155deg, var(--kpi-bg) 0%, transparent 65%), rgba(255,255,255,.05);
    transform:translateY(-2px);
    box-shadow:0 16px 32px -18px var(--kpi-c);
  }
  /* Cadre "coins de visée" à la couleur du KPI, au lieu d'une simple barre
     pleine largeur — évoque un cadran d'instrument plutôt qu'une carte SaaS. */
  .adm-kpi::before, .adm-kpi::after{
    content:""; position:absolute; width:11px; height:11px; pointer-events:none;
    border-color:var(--kpi-c); opacity:.6; transition:opacity .2s, width .2s, height .2s;
  }
  .adm-kpi::before{ top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; border-radius:10px 0 0 0; }
  .adm-kpi::after{ bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; border-radius:0 0 10px 0; }
  .adm-kpi:hover::before, .adm-kpi:hover::after{ opacity:1; width:16px; height:16px; }
  .adm-kpi-top{ display:flex; align-items:center; justify-content:space-between; }
  .adm-kpi-icon{
    width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center;
    position:relative; box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  }
  .adm-blip{
    position:absolute; top:-3px; right:-3px; width:7px; height:7px; border-radius:50%;
    background:currentColor; animation:admBlip 2.4s ease-in-out infinite;
    box-shadow:0 0 8px 1px currentColor;
  }
  .adm-kpi-delta{ font-size:11px; font-family:'JetBrains Mono',monospace; padding:2px 7px; border-radius:6px; font-weight:700; }
  .adm-kpi-value{
    font-family:'Sora',sans-serif; font-size:36px; font-weight:900; letter-spacing:-.03em; line-height:1;
    background:linear-gradient(135deg, var(--adm-text) 40%, var(--kpi-c) 160%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .adm-kpi-label{ font-size:12px; color:var(--adm-text-muted); text-transform:uppercase; letter-spacing:.05em; font-family:'JetBrains Mono',monospace; }
  .adm-kpi-label::before{ content:"› "; color:var(--kpi-c); opacity:.8; }
  .adm-kpi-clickable{ cursor:pointer; }
  .adm-kpi-clickable:hover{
    border-color:var(--kpi-c);
    box-shadow:0 18px 36px -16px var(--kpi-c);
  }
  .adm-kpi-clickable:active{ transform:translateY(0); }
  .adm-kpi-arrow{
    font-size:16px; font-weight:700; opacity:0; color:var(--kpi-c);
    transition:opacity .15s, transform .15s;
    margin-left:auto;
  }
  .adm-kpi-clickable:hover .adm-kpi-arrow{ opacity:1; transform:translateX(3px); }

  /* DASHBOARD — SECTIONS
     Traitées comme des "moniteurs" de poste de contrôle : cadre de visée aux
     coins (--sec-c), tête façon bandeau d'instrument avec témoin lumineux et
     préfixe ">" en monospace — même grammaire visuelle que les cartes KPI et
     la sidebar numérotée, pour que tout le panneau se lise comme un seul
     poste cohérent plutôt qu'un empilement de widgets disparates. */
  .adm-dash-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .adm-dash-section{
    --sec-c:var(--adm-text-muted);
    --sec-bg:rgba(255,255,255,.03);
    background:radial-gradient(460px circle at 0% 0%, var(--sec-bg), transparent 70%), rgba(255,255,255,.022);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.06);
    border-radius:10px; overflow:visible; position:relative;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .adm-dash-section:hover{ box-shadow:0 14px 30px -20px var(--sec-c); }
  .adm-dash-section::before, .adm-dash-section::after{
    content:""; position:absolute; width:11px; height:11px; pointer-events:none; z-index:1;
    border-color:var(--sec-c); opacity:.6;
  }
  .adm-dash-section::before{ top:-1px; left:-1px; border-top:2px solid; border-left:2px solid; border-radius:10px 0 0 0; }
  .adm-dash-section::after{ bottom:-1px; right:-1px; border-bottom:2px solid; border-right:2px solid; border-radius:0 0 10px 0; }
  .adm-dash-section > .adm-dash-body, .adm-dash-section > .adm-dash-head{ position:relative; }
  .adm-dash-section .adm-dash-body{ overflow:hidden; border-radius:0 0 10px 10px; }
  .adm-dash-section.span2{ grid-column:span 2; }
  .adm-dash-section.urgent{
    --sec-c:#F87171; --sec-bg:rgba(248,65,65,.12); border-color:rgba(248,65,65,.22);
    animation:admUrgentPulse 2.2s ease-in-out infinite;
  }
  .adm-dash-section.ok, .adm-dash-section.adm-dash-quiet{ --sec-c:#4ADE80; --sec-bg:rgba(74,222,128,.10); border-color:rgba(74,222,128,.18); }
  .adm-dash-head{
    display:flex; align-items:center; gap:12px;
    padding:14px 16px; border-bottom:1px solid rgba(255,255,255,.04);
    border-radius:10px 10px 0 0;
  }
  .adm-dash-icon{
    width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center;
    font-size:14px; flex-shrink:0; position:relative; box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  }
  .adm-dash-icon::after{
    content:""; position:absolute; top:-2px; right:-2px; width:6px; height:6px; border-radius:50%;
    background:var(--sec-c); color:var(--sec-c); animation:admBlip 2.4s ease-in-out infinite;
    box-shadow:0 0 8px 1px currentColor;
  }
  .adm-dash-section.urgent .adm-dash-icon::after{ animation-duration:1.1s; }
  .adm-dash-htitle{ font-size:13.5px; font-weight:700; color:var(--adm-text-soft); flex:1; }
  .adm-dash-htitle::before{ content:"> "; font-family:'JetBrains Mono',monospace; color:var(--sec-c); opacity:.85; font-weight:600; }
  .adm-dash-count{ font-family:'JetBrains Mono',monospace; font-size:11px; font-weight:700; padding:2px 8px; border-radius:6px; }
  .adm-dash-body{ padding:0; }
  .adm-dash-row{
    display:flex; align-items:center; padding:10px 16px; gap:10px;
    border-bottom:1px solid rgba(255,255,255,.03); font-size:13px; color:var(--adm-text-soft);
    transition:background .1s;
  }
  .adm-dash-quiet-row{ font-style:italic; }
  .adm-dash-quiet .adm-dash-icon{ opacity:.8; }
  .adm-dash-row:last-child{ border-bottom:none; }
  .adm-dash-row:hover{ background:rgba(255,255,255,.03); }
  .adm-dash-row strong{ color:var(--adm-text-soft); }
  .adm-dash-row .adm-dash-meta{ margin-left:auto; font-size:11px; font-family:'JetBrains Mono',monospace; color:var(--adm-text-faint); }
  .adm-dash-done-btn{
    flex-shrink:0; font-size:10.5px; font-weight:700; font-family:'Inter',sans-serif;
    padding:4px 9px; border-radius:6px; border:1px solid rgba(74,222,128,.3);
    background:rgba(74,222,128,.08); color:var(--status-ok); cursor:pointer;
    transition:background .15s, transform .1s;
  }
  .adm-dash-done-btn:hover{ background:rgba(74,222,128,.18); transform:translateY(-1px); }
  .adm-dash-done-btn:active{ transform:translateY(0); }
  .adm-dash-empty{ padding:16px; font-size:13px; color:var(--adm-text-faint); text-align:center; }
  /* Répartition par type d'intervention : 4 mini-tuiles cliquables dans le
     corps de la carte "Prise en charge, SAV..." — chaque tuile ouvre la
     base de données déjà filtrée sur sa catégorie (cf. openDbNewTab côté JS). */
  .adm-breakdown-grid{
    display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:10px; padding:14px 16px;
  }
  .adm-breakdown-stat{
    --bk-c:var(--adm-text-muted);
    display:flex; flex-direction:column; gap:6px; padding:12px 14px; cursor:pointer;
    background:linear-gradient(155deg, color-mix(in srgb, var(--bk-c) 12%, transparent) 0%, transparent 65%), rgba(255,255,255,.03);
    border:1px solid rgba(255,255,255,.06); border-radius:8px; position:relative;
    transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
  }
  .adm-breakdown-stat:hover{
    border-color:var(--bk-c); transform:translateY(-2px);
    box-shadow:0 14px 28px -18px var(--bk-c);
  }
  .adm-breakdown-icon{ width:28px; height:28px; border-radius:7px; display:flex; align-items:center; justify-content:center; font-size:13px; }
  .adm-breakdown-value{ font-family:'Sora',sans-serif; font-size:26px; font-weight:900; color:var(--adm-text); letter-spacing:-.02em; line-height:1; }
  .adm-breakdown-label{ font-size:11.5px; color:var(--adm-text-muted); font-family:'JetBrains Mono',monospace; }
  .adm-breakdown-arrow{
    position:absolute; top:12px; right:12px; font-size:14px; font-weight:700; color:var(--bk-c);
    opacity:0; transition:opacity .15s, transform .15s;
  }
  .adm-breakdown-stat:hover .adm-breakdown-arrow{ opacity:1; transform:translateX(2px); }
  .adm-dash-action{
    display:flex; align-items:center; justify-content:space-between;
    padding:10px 16px; border-top:1px solid rgba(255,255,255,.04);
  }
  .adm-dash-btn{
    display:inline-flex; align-items:center; gap:5px; padding:7px 13px;
    clip-path:polygon(8px 0, 100% 0, 100% calc(100% - 8px), calc(100% - 8px) 100%, 0 100%, 0 8px);
    border:1px solid; background:transparent;
    font-size:12px; font-weight:600; cursor:pointer; font-family:'Inter',sans-serif;
    transition:background .15s, box-shadow .15s, transform .15s;
  }
  .adm-dash-btn:hover{
    background:rgba(255,255,255,.08);
    box-shadow:0 8px 20px -8px currentColor;
    transform:translateY(-1px);
  }
  .adm-dash-btn:active{ transform:translateY(0); }

  /* PRICE CHECK STATUS */
  .adm-price-status{
    display:flex; align-items:center; gap:12px;
    padding:14px 16px; font-size:13.5px;
  }
  .adm-price-ok{ color:var(--status-ok); }
  .adm-price-warn{ color:var(--status-danger); font-weight:600; }
  .adm-price-neutral{ color:var(--adm-text-muted); }

  /* PANELS INLINE (avis, galerie, backup) */
  .adm-panel-wrap{ max-width:680px; }
  .adm-panel-head{ margin-bottom:24px; }
  .adm-panel-head h2{ font-family:'Sora',sans-serif; font-size:22px; font-weight:800; color:var(--adm-text); margin:0 0 6px; }
  .adm-panel-head p{ font-size:13.5px; color:var(--adm-text-faint); margin:0; line-height:1.6; }
  .adm-field{ margin-bottom:14px; }
  .adm-field label{ display:block; font-size:11px; font-weight:700; color:var(--adm-text-faint); text-transform:uppercase; letter-spacing:.08em; font-family:'JetBrains Mono',monospace; margin-bottom:6px; }
  .adm-field input, .adm-field select, .adm-field textarea{
    width:100%; padding:10px 13px; border-radius:8px; box-sizing:border-box;
    background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
    color:var(--adm-text); font-size:14px; font-family:'Inter',sans-serif; outline:none;
    transition:border-color .15s, background .15s;
  }
  .adm-field input:focus, .adm-field select:focus, .adm-field textarea:focus{
    border-color:rgba(99,102,241,.5); background:rgba(99,102,241,.07);
  }
  .adm-field input::placeholder, .adm-field textarea::placeholder{ color:var(--adm-text-faint); }
  .adm-field select option{ background:var(--adm-bg); }
  .adm-btn{ display:inline-flex; align-items:center; gap:6px; padding:10px 18px; border-radius:9px; border:none; cursor:pointer; font-size:13.5px; font-weight:700; font-family:'Inter',sans-serif; transition:opacity .15s, transform .1s; }
  .adm-btn:hover{ opacity:.88; transform:translateY(-1px); }
  .adm-btn-primary{ background:linear-gradient(135deg,var(--brass),var(--brass-dark)); color:var(--adm-text); box-shadow:0 4px 14px rgba(99,102,241,.3); }
  .adm-btn-secondary{ background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1); color:var(--adm-text-soft); }
  .adm-btn-danger{ background:rgba(248,65,65,.1); border:1px solid rgba(248,65,65,.2); color:var(--status-danger); }
  .adm-card{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.07); border-radius:12px; padding:20px; margin-bottom:14px; }
  .adm-card-title{ font-size:14px; font-weight:700; color:var(--adm-text-soft); margin:0 0 6px; display:flex; align-items:center; gap:8px; }
  .adm-card-desc{ font-size:13px; color:var(--adm-text-faint); margin:0 0 14px; line-height:1.6; }
  .adm-stars{ display:flex; gap:4px; margin-bottom:8px; }
  .adm-star{ font-size:20px; cursor:pointer; color:var(--adm-text-faint); transition:color .1s; }
  .adm-star.on{ color:var(--status-warning); }
  .adm-btn-row{ display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; }
  .adm-separator{ border:none; border-top:1px solid rgba(255,255,255,.06); margin:20px 0; }

  /* ===== PANEL AVIS CLIENTS ===== */
  .rv-panel{ height:calc(100vh - 120px); display:flex; flex-direction:column; gap:0; overflow:hidden; }
  .rv-header{
    display:flex; align-items:center; justify-content:space-between;
    padding:0 0 20px; flex-shrink:0;
    border-bottom:1px solid rgba(255,255,255,.06); margin-bottom:20px;
  }
  .rv-title{ font-family:'Sora',sans-serif; font-size:22px; font-weight:800; color:var(--adm-text); margin:0 0 4px; }
  .rv-subtitle{ font-size:13px; color:var(--adm-text-faint); margin:0; font-family:'JetBrains Mono',monospace; }
  .rv-add-btn{
    display:flex; align-items:center; gap:7px; padding:10px 18px;
    border-radius:9px; border:none; cursor:pointer;
    background:linear-gradient(135deg,var(--brass),var(--brass-dark)); color:var(--adm-text);
    font-size:13px; font-weight:700; font-family:'Inter',sans-serif;
    box-shadow:0 4px 14px rgba(99,102,241,.35);
    transition:opacity .15s, transform .1s;
  }
  .rv-add-btn:hover{ opacity:.88; transform:translateY(-1px); }

  /* LAYOUT SPLIT */
  .rv-layout{ display:grid; grid-template-columns:300px 1fr; gap:20px; flex:1; overflow:hidden; }

  /* LISTE GAUCHE */
  .rv-list-col{ overflow-y:auto; display:flex; flex-direction:column; gap:8px; padding-right:4px; }
  .rv-list-col::-webkit-scrollbar{ width:4px; }
  .rv-list-col::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.08); border-radius:4px; }

  .rv-list-item{
    background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
    border-radius:12px; padding:14px 16px; cursor:pointer;
    transition:background .15s, border-color .15s, transform .1s;
    display:flex; align-items:flex-start; gap:10px;
  }
  .rv-list-item:hover{ background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.12); }
  .rv-list-item.active{
    background:rgba(99,102,241,.12); border-color:rgba(99,102,241,.35);
    box-shadow:0 0 0 1px rgba(99,102,241,.2);
  }
  .rv-list-item.hidden-item{ opacity:.45; }
  .rv-list-stars{ font-size:12px; color:var(--status-warning); flex-shrink:0; letter-spacing:1px; }
  .rv-list-body{ flex:1; min-width:0; }
  .rv-list-name{ font-size:13px; font-weight:700; color:var(--adm-text-soft); line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
  .rv-list-city{ font-size:12px; color:var(--adm-text-faint); font-weight:400; }
  .rv-list-text{ font-size:12px; color:var(--adm-text-faint); margin-top:3px; line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .rv-list-meta{ flex-shrink:0; display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
  .rv-hidden-badge{ font-size:9px; font-weight:700; font-family:'JetBrains Mono',monospace; padding:2px 6px; border-radius:4px; background:rgba(248,65,65,.12); color:var(--status-danger); text-transform:uppercase; letter-spacing:.05em; }
  .rv-list-arrow{ color:var(--adm-text-faint); opacity:0; transition:opacity .15s; }
  .rv-list-item:hover .rv-list-arrow, .rv-list-item.active .rv-list-arrow{ opacity:1; color:var(--brass); }

  /* COLONNE DROITE */
  .rv-editor-col{ display:flex; flex-direction:column; gap:16px; overflow-y:auto; }
  .rv-editor-col::-webkit-scrollbar{ width:4px; }
  .rv-editor-col::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.08); border-radius:4px; }

  /* FORMULAIRE D'ÉDITION */
  .rv-editor{
    background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07);
    border-radius:14px; overflow:hidden; flex-shrink:0;
  }
  .rv-editor-empty{
    padding:40px; text-align:center; color:var(--adm-text-faint);
    display:flex; flex-direction:column; align-items:center; gap:10px;
    font-size:13px; line-height:1.6;
  }
  .rv-editor-form{ padding:20px; display:flex; flex-direction:column; gap:16px; }
  .rv-editor-head{
    display:flex; align-items:center; justify-content:space-between;
    padding-bottom:14px; border-bottom:1px solid rgba(255,255,255,.06);
  }
  .rv-editor-num{ font-family:'JetBrains Mono',monospace; font-size:11px; color:var(--adm-text-faint); text-transform:uppercase; letter-spacing:.08em; }

  /* TOGGLE SWITCH */
  .rv-toggle{ display:flex; align-items:center; gap:8px; cursor:pointer; }
  .rv-toggle input{ display:none; }
  .rv-toggle-track{
    width:36px; height:20px; border-radius:10px; background:rgba(255,255,255,.1);
    position:relative; transition:background .2s;
  }
  .rv-toggle input:checked + .rv-toggle-track{ background:var(--brass); }
  .rv-toggle-thumb{
    position:absolute; top:2px; left:2px; width:16px; height:16px;
    border-radius:50%; background:#fff; transition:transform .2s;
    box-shadow:0 1px 4px rgba(0,0,0,.3);
  }
  .rv-toggle input:checked + .rv-toggle-track .rv-toggle-thumb{ transform:translateX(16px); }
  .rv-toggle-label{ font-size:12.5px; color:var(--adm-text-muted); font-weight:600; }

  /* ÉTOILES */
  .rv-star-row{ display:flex; align-items:center; gap:6px; }
  .rv-star-btn{
    background:none; border:none; cursor:pointer; font-size:26px;
    color:var(--adm-text-faint); transition:color .1s, transform .1s; line-height:1; padding:0;
  }
  .rv-star-btn.on{ color:var(--status-warning); }
  .rv-star-btn:hover{ transform:scale(1.2); }
  .rv-star-label{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--adm-text-faint); margin-left:4px; }

  /* CHAMPS ÉDITEUR */
  .rv-editor-field{ display:flex; flex-direction:column; gap:6px; }
  .rv-editor-label{ font-size:11px; font-weight:700; color:var(--adm-text-faint); text-transform:uppercase; letter-spacing:.08em; font-family:'JetBrains Mono',monospace; }
  .rv-editor-textarea, .rv-editor-input{
    background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.09);
    border-radius:9px; padding:10px 13px; color:var(--adm-text);
    font-family:'Inter',sans-serif; font-size:14px; outline:none; resize:none; width:100%; box-sizing:border-box;
    transition:border-color .15s, background .15s;
    line-height:1.6;
  }
  .rv-editor-textarea:focus, .rv-editor-input:focus{ border-color:rgba(99,102,241,.5); background:rgba(99,102,241,.06); }
  .rv-editor-textarea::placeholder, .rv-editor-input::placeholder{ color:var(--adm-text-faint); }
  .rv-char-count{ font-size:11px; color:var(--adm-text-faint); text-align:right; font-family:'JetBrains Mono',monospace; }
  .rv-editor-row2{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }

  /* ACTIONS ÉDITEUR */
  .rv-editor-actions{ display:flex; gap:8px; padding-top:4px; }
  .rv-save-btn{
    flex:1; display:flex; align-items:center; justify-content:center; gap:7px;
    padding:11px; border-radius:9px; border:none; cursor:pointer;
    background:linear-gradient(135deg,var(--brass),var(--brass-dark)); color:var(--adm-text);
    font-size:13.5px; font-weight:700; font-family:'Inter',sans-serif;
    transition:opacity .15s; box-shadow:0 4px 12px rgba(99,102,241,.3);
  }
  .rv-save-btn:hover{ opacity:.88; }
  .rv-del-btn{
    display:flex; align-items:center; gap:6px; padding:11px 16px;
    border-radius:9px; border:1px solid rgba(248,65,65,.2);
    background:rgba(248,65,65,.06); color:var(--status-danger);
    font-size:13px; font-weight:600; font-family:'Inter',sans-serif; cursor:pointer;
    transition:background .15s;
  }
  .rv-del-btn:hover{ background:rgba(248,65,65,.12); }

  /* APERÇU LIVE */
  .rv-preview-block{ flex-shrink:0; }
  .rv-preview-label{
    font-family:'JetBrains Mono',monospace; font-size:9.5px; font-weight:700;
    text-transform:uppercase; letter-spacing:.12em; color:var(--adm-text-faint);
    margin-bottom:10px;
  }
  .rv-preview-card{
    background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
    border-radius:14px; padding:18px 20px;
    display:flex; flex-direction:column; gap:12px;
    box-shadow:0 8px 24px rgba(0,0,0,.2);
  }
  .rv-preview-stars{ color:var(--status-warning); font-size:14px; letter-spacing:2px; }
  .rv-preview-text{
    font-size:14px; color:var(--adm-text-soft); line-height:1.65; margin:0;
    font-style:italic; min-height:44px;
  }
  .rv-preview-author{ display:flex; align-items:center; gap:10px; }
  .rv-preview-avatar{
    width:34px; height:34px; border-radius:50%; flex-shrink:0;
    background:linear-gradient(135deg,var(--brass),var(--status-info));
    display:flex; align-items:center; justify-content:center;
    font-weight:800; font-size:13px; color:var(--adm-text);
  }
  .rv-preview-city{ color:var(--adm-text-faint); font-size:13px; }

  /* RESPONSIVE */
  @media (max-width:1100px){ .rv-layout{ grid-template-columns:260px 1fr; } }
  @media (max-width:900px){ .rv-layout{ grid-template-columns:1fr; } .rv-list-col{ max-height:240px; } }

  /* ===== GALERIE — ZONES PHOTO ===== */
  .ga-photos-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  .ga-photo-col{ display:flex; flex-direction:column; gap:8px; }
  .ga-photo-label{ font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; font-family:'JetBrains Mono',monospace; }
  .ga-photo-label.before{ color:var(--status-danger); }
  .ga-photo-label.after{ color:var(--status-info); }
  .ga-photo-zone{
    position:relative; border-radius:10px; overflow:hidden; cursor:pointer;
    background:rgba(255,255,255,.04); border:1px dashed rgba(255,255,255,.1);
    min-height:130px; display:flex; align-items:center; justify-content:center;
    transition:border-color .15s, background .15s;
  }
  .ga-photo-zone:hover{ border-color:rgba(255,255,255,.2); background:rgba(255,255,255,.06); }
  .ga-photo-img{ width:100%; height:130px; object-fit:cover; display:block; }
  .ga-photo-overlay{
    position:absolute; inset:0; background:rgba(0,0,0,.55);
    display:flex; align-items:center; justify-content:center;
    color:var(--adm-text); font-size:13px; font-weight:700; opacity:0; transition:opacity .15s;
  }
  .ga-photo-zone:hover .ga-photo-overlay{ opacity:1; }
  .ga-photo-placeholder{ display:flex; flex-direction:column; align-items:center; gap:8px; color:var(--adm-text-faint); font-size:12px; padding:20px; }
  .ga-list-thumbs{ display:flex; gap:4px; flex-shrink:0; }
  .ga-list-thumb{ width:40px; height:40px; object-fit:cover; border-radius:6px; }
  .ga-list-thumb-empty{ width:40px; height:40px; border-radius:6px; border:1px dashed rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; font-size:10px; color:var(--adm-text-faint); font-family:'JetBrains Mono',monospace; font-weight:700; }
  .ga-list-thumb-after{ border-color:rgba(34,211,238,.2); color:rgba(34,211,238,.4); }

  /* ===== BACKUP ===== */
  .bkp-grid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-bottom:20px; }
  .bkp-card{ background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.07); border-radius:14px; padding:22px; display:flex; flex-direction:column; gap:14px; min-height:260px; }
  .bkp-card-icon{ width:46px; height:46px; border-radius:12px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
  .bkp-card-title{ font-size:16px; font-weight:700; color:var(--adm-text); margin:0; }
  .bkp-card-desc{ font-size:13.5px; color:var(--adm-text-faint); line-height:1.65; margin:0; }
  .bkp-card-desc code{ background:rgba(255,255,255,.06); padding:1px 5px; border-radius:4px; font-family:'JetBrains Mono',monospace; color:var(--adm-text-soft); font-size:12px; }
  .bkp-card-info{ display:flex; align-items:center; gap:7px; font-size:12px; color:var(--adm-text-faint); font-family:'JetBrains Mono',monospace; }
  .bkp-info-dot{ width:7px; height:7px; border-radius:50%; flex-shrink:0; }
  .bkp-info-dot.ok{ background:var(--status-ok); }
  .bkp-card-warn{ display:flex; align-items:center; gap:7px; background:rgba(248,65,65,.06); border:1px solid rgba(248,65,65,.15); border-radius:8px; padding:9px 12px; color:var(--status-danger); font-size:12.5px; }
  .bkp-import-label{ display:flex; align-items:center; justify-content:center; gap:7px; padding:11px; border-radius:9px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.04); color:var(--adm-text-soft); font-size:13px; font-weight:600; cursor:pointer; transition:background .15s; font-family:'Inter',sans-serif; }
  .bkp-import-label:hover{ background:rgba(255,255,255,.08); }
  .bkp-import-status{ font-size:13px; min-height:16px; font-weight:600; }
  .bkp-info-section{ background:rgba(255,255,255,.02); border:1px solid rgba(255,255,255,.05); border-radius:12px; padding:18px 20px; }
  .bkp-info-title{ font-size:12px; font-weight:700; color:var(--adm-text-faint); text-transform:uppercase; letter-spacing:.07em; font-family:'JetBrains Mono',monospace; margin-bottom:14px; }
  .bkp-info-items{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .bkp-info-item{ display:flex; align-items:center; gap:8px; font-size:13px; color:var(--adm-text-muted); }
  .bkp-item-dot{ width:8px; height:8px; border-radius:50%; flex-shrink:0; }
  @media (max-width:900px){ .bkp-grid{ grid-template-columns:1fr; } .bkp-info-items{ grid-template-columns:1fr; } }

  /* RESPONSIVE GLOBAL ADMIN */
  @media (max-width:1024px){ .adm-kpi-grid{ grid-template-columns:repeat(2,1fr); } .adm-dash-grid{ grid-template-columns:1fr; } .adm-dash-section.span2{ grid-column:auto; } }
  @media (max-width:768px){ .adm-sidebar{ width:240px; } }

  /* ===== ADMIN — FENÊTRE DE LOGIN ===== */
  .admin-login-panel{
    position:relative; z-index:1;
    background:linear-gradient(160deg, var(--adm-surface) 0%, var(--adm-bg) 100%);
    border:1px solid rgba(99,102,241,.25); border-radius:18px;
    padding:36px 32px 28px; width:min(400px, calc(100vw - 48px));
    box-shadow:0 40px 80px -20px rgba(0,0,0,.7), 0 0 0 1px rgba(99,102,241,.1), inset 0 1px 0 rgba(255,255,255,.06);
  }
  .admin-login-close{
    position:absolute; top:14px; right:14px;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08);
    border-radius:6px; width:28px; height:28px; cursor:pointer;
    color:var(--adm-text-soft); font-size:13px; display:flex; align-items:center; justify-content:center;
    transition:background .15s;
  }
  .admin-login-close:hover{ background:rgba(248,65,65,.15); color:var(--status-danger); }
  .admin-login-header{ text-align:center; margin-bottom:26px; }
  .admin-login-icon{
    width:54px; height:54px; border-radius:14px; margin:0 auto 14px;
    background:rgba(99,102,241,.12); border:1px solid rgba(99,102,241,.25);
    display:flex; align-items:center; justify-content:center;
  }
  .admin-login-title{ font-family:'Sora',sans-serif; font-size:20px; font-weight:800; color:var(--adm-text); margin:0 0 5px; }
  .admin-login-sub{ font-size:13px; color:var(--adm-text-muted); margin:0; }
  .admin-login-field{ margin-bottom:14px; }
  .admin-login-field label{
    display:flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700;
    color:var(--adm-text-soft); text-transform:uppercase; letter-spacing:.07em;
    font-family:'JetBrains Mono',monospace; margin-bottom:6px;
  }
  .admin-login-field input{
    width:100%; padding:11px 14px; border-radius:8px; box-sizing:border-box;
    background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
    color:var(--adm-text); font-size:15px; font-family:'Inter',sans-serif;
    transition:border-color .15s, background .15s; outline:none;
  }
  .admin-login-field input:focus{ border-color:rgba(99,102,241,.5); background:rgba(99,102,241,.08); }
  .admin-login-field input::placeholder{ color:#3B4E6A; }
  .admin-login-error{
    color:var(--status-danger); font-size:13px; margin:0 0 14px; display:none;
    background:rgba(248,65,65,.08); border:1px solid rgba(248,65,65,.2);
    border-radius:6px; padding:8px 12px; text-align:center;
  }
  .admin-login-btn{
    width:100%; padding:13px; border-radius:10px; border:none; cursor:pointer;
    background:linear-gradient(135deg,var(--brass),var(--brass-dark)); color:var(--adm-text);
    font-size:15px; font-weight:700; font-family:'Inter',sans-serif;
    display:flex; align-items:center; justify-content:center; gap:8px;
    transition:opacity .2s, transform .15s; margin-bottom:14px;
    box-shadow:0 4px 16px rgba(99,102,241,.35);
  }
  .admin-login-btn:hover{ opacity:.9; transform:translateY(-1px); }
  .admin-login-note{
    font-size:12px; color:var(--adm-text-faint); text-align:center; margin:0; line-height:1.5;
    border-top:1px solid rgba(255,255,255,.06); padding-top:14px;
  }
  .admin-login-note strong{ color:var(--adm-text-muted); }

  /* ===== MODALES ADMIN — THÈME DARK COHÉRENT ===== */
  .modal-panel{
    position:relative; background:var(--adm-surface); color:var(--adm-text);
    width:min(680px,100%); max-height:90vh; overflow-y:auto;
    border-radius:14px; border:1px solid rgba(99,102,241,.2);
    padding:0;
    box-shadow:0 30px 80px rgba(0,0,0,.6), 0 0 0 1px rgba(99,102,241,.08);
  }
  /* En-tête de modale admin */
  .modal-panel > h3,
  .modal-panel > .modal-close + h3,
  .modal-panel > button + h3{
    font-family:'Sora',sans-serif; font-size:18px; font-weight:800;
    color:var(--adm-text); margin:0; padding:22px 24px 0;
  }
  /* Sous-titre */
  .modal-panel > p:first-of-type{ color:var(--adm-text-muted); font-size:13.5px; padding:0 24px; margin:6px 0 18px; }
  /* Corps scrollable */
  .modal-panel > *:not(.modal-close){ padding-left:24px; padding-right:24px; }
  .modal-panel > .modal-close{ padding:0; }
  /* Bouton fermer */
  .modal-close{
    position:absolute; top:14px; right:14px; z-index:2;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.1);
    border-radius:7px; width:30px; height:30px;
    cursor:pointer; color:var(--adm-text-soft); font-size:14px;
    display:flex; align-items:center; justify-content:center;
    transition:background .15s, color .15s;
  }
  .modal-close:hover{ background:rgba(248,65,65,.15); color:var(--status-danger); }

  /* Champs dans modales dark */
  .modal .field label{ color:var(--adm-text-muted); font-family:'JetBrains Mono',monospace; font-size:11px; text-transform:uppercase; letter-spacing:.07em; }
  .modal .field input,
  .modal .field select,
  .modal .field textarea{
    background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
    color:var(--adm-text); border-radius:8px; padding:10px 13px; width:100%;
    font-family:'Inter',sans-serif; font-size:14.5px; outline:none;
    transition:border-color .15s, background .15s;
  }
  .modal .field input:focus,
  .modal .field select:focus,
  .modal .field textarea:focus{
    border-color:rgba(99,102,241,.5); background:rgba(99,102,241,.07);
  }
  .modal .field input::placeholder,
  .modal .field textarea::placeholder{ color:var(--adm-text-faint); }
  .modal .field select option{ background:var(--adm-surface); }

  /* Boîtes bank-box dans modales dark */
  .modal .bank-box{
    background:rgba(255,255,255,.04) !important; color:var(--adm-text);
    border:1px solid rgba(255,255,255,.07) !important; border-radius:10px !important;
  }
  .modal .bank-box dt{ color:var(--adm-text-muted) !important; }
  .modal .bank-box dd{ color:var(--adm-text) !important; }
  .modal .paypal-note{ color:var(--adm-text-muted) !important; }

  /* Tables dans modales dark */
  .modal table{ color:var(--adm-text-soft); }
  .modal th{ color:var(--adm-text-muted); border-bottom-color:rgba(255,255,255,.08); }
  .modal td{ border-bottom-color:rgba(255,255,255,.05); }

  /* Padding global des modales */
  #reviewsAdminModal .modal-panel,
  #backupModal .modal-panel,
  #mentionsLegalesModal .modal-panel,
  #galleryAdminModal .modal-panel{
    padding:24px;
  }
  #ownerModal .modal-panel{
    padding:28px 24px;
  }

  /* Séparateurs dans les modales dark */
  .modal hr{ border:none; border-top:1px solid rgba(255,255,255,.07); margin:18px 0; }

  /* Boutons dans les modales */
  .modal .btn-brass{ background:linear-gradient(135deg,var(--brass),var(--brass-dark)); box-shadow:0 4px 14px rgba(99,102,241,.25); }
  .modal .btn-outline{ border-color:rgba(255,255,255,.15); color:var(--adm-text); }
  .modal .btn-outline:hover{ background:rgba(255,255,255,.06); }

  /* Eyebrow dans modales dark */
  .modal .eyebrow{ color:var(--adm-text-muted); }
  .modal h3.section-title{ color:var(--adm-text); }

  /* Alertes dans les modales */
  .modal .alert-ok{ background:rgba(74,222,128,.08); border:1px solid rgba(74,222,128,.2); border-radius:8px; color:var(--status-ok); padding:10px 14px; font-size:13.5px; margin:10px 0; }
  .modal .alert-warn{ background:rgba(248,65,65,.08); border:1px solid rgba(248,65,65,.2); border-radius:8px; color:var(--status-danger); padding:10px 14px; font-size:13.5px; margin:10px 0; }

  /* Scroll dans les modales */
  .modal-panel::-webkit-scrollbar{ width:5px; }
  .modal-panel::-webkit-scrollbar-track{ background:transparent; }
  .modal-panel::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.1); border-radius:4px; }

  /* Contact dialog garde son style clair */
  #contactDialogModal .modal-panel{ background:var(--paper); color:var(--ink); border:none; box-shadow:var(--shadow-lg); }
  #contactDialogModal .modal-panel > h3{ color:var(--navy); padding:22px 24px 0; }
  #contactDialogModal .modal-panel > p:first-of-type{ color:var(--adm-text-muted); }
  #contactDialogModal .modal-close{ background:rgba(0,0,0,.05); border-color:var(--line); color:var(--adm-text-soft); }
  #contactDialogModal .field label{ color:var(--adm-text-soft); font-family:inherit; font-size:12.5px; text-transform:none; letter-spacing:0; }
  #contactDialogModal .field input,
  #contactDialogModal .field select,
  #contactDialogModal .field textarea{ background:var(--paper); border-color:var(--line); color:var(--ink); }
  #checkoutModal .modal-panel{ background:var(--paper); color:var(--ink); border:none; }
  #checkoutModal .modal-close{ background:rgba(0,0,0,.05); border-color:var(--line); }

  /* Modale mentions légales — garde un fond clair */
  #mentionsLegalesModal .modal-panel{ background:var(--paper); color:var(--ink); }
  #mentionsLegalesModal .modal-panel h3{ color:var(--navy); }
  #mentionsLegalesModal .modal-close{ background:rgba(0,0,0,.05); border-color:var(--line); color:var(--adm-text-soft); }

  /* ---------- ANIMATION PANIER ---------- */
  @keyframes cartBounce{
    0%{transform:scale(1);}
    30%{transform:scale(1.35);}
    60%{transform:scale(.9);}
    100%{transform:scale(1);}
  }
  .cart-count.bounce{ animation:cartBounce .4s var(--ease); }

  /* ---------- FOOTER MOBILE — liens plus cliquables ---------- */
  @media (max-width:600px){
    .foot-links a{ min-height:44px; display:flex; align-items:center; }
    .foot-info li{ min-height:48px; }
  }

  /* ---------- CONTACT LAYOUT 2 COLONNES ---------- */
  .contact-layout{ display:grid; grid-template-columns:1fr 1fr; gap:28px; margin-top:32px; }
  .contact-direct-card{
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-lg); padding:22px 24px;
  }
  .contact-map-col{ display:flex; flex-direction:column; gap:10px; }
  .contact-map-label{ font-size:13px; color:#8993A8; display:flex; align-items:center; gap:6px; }
  .contact-map-iframe{ width:100%; height:260px; border:1px solid var(--line); border-radius:var(--radius-lg); display:block; }
  .contact-map-link{ font-size:13px; color:var(--navy-2); text-decoration:none; }
  .contact-map-link:hover{ text-decoration:underline; }
  @media (max-width:840px){ .contact-layout{ grid-template-columns:1fr; } }

  /* ---------- CART BUTTON ---------- */
  .cart-btn{
    position:relative; background:none; border:1px solid #3D4F70; color:#E7ECF5;
    font-size:15px; padding:8px 14px; border-radius:var(--radius); cursor:pointer;
    font-family:'Inter', sans-serif; transition:border-color .15s ease;
  }
  .cart-btn:hover{border-color:var(--brass);}
  .cart-count{
    display:inline-flex; align-items:center; justify-content:center;
    background:var(--brass); color:var(--navy); font-weight:700;
    font-size:11.5px; min-width:18px; height:18px; border-radius:50%;
    padding:0 2px; margin-left:2px; vertical-align:middle;
  }
  .price-alert-dot{
    display:none; width:8px; height:8px; border-radius:50%;
    background:#F87171; margin-left:6px; vertical-align:middle;
    box-shadow:0 0 0 2px rgba(248,113,113,.3);
  }

  /* ---------- BOUTIQUE ---------- */
  .configurator-banner{
    display:flex; align-items:center; justify-content:space-between; gap:24px;
    width:100%; text-align:left;
    background:linear-gradient(120deg, var(--navy) 0%, var(--navy-soft) 100%);
    border:1px solid rgba(99,102,241,.3); border-radius:var(--radius-lg);
    padding:26px 28px; margin-bottom:28px;
    box-shadow:var(--shadow-md);
  }
  .configurator-banner-text h3{color:#fff; font-size:22px; margin:0 0 6px;}
  .configurator-banner-text p{color:#B9C4DC; font-size:14.5px; margin:0; max-width:520px;}
  .configurator-dropdown{position:relative; flex-shrink:0;}
  .configurator-dropdown-menu{
    display:none;
    position:absolute; top:calc(100% + 10px); right:0; z-index:30;
    list-style:none; margin:0; padding:8px; min-width:220px;
    background:var(--surface); border:1px solid var(--line); border-radius:10px;
    box-shadow:var(--shadow-lg);
  }
  .configurator-dropdown-menu.open{display:block;}
  .configurator-dropdown-menu li a{
    display:block; padding:10px 12px; border-radius:6px;
    font-family:'Inter', sans-serif; font-size:14.5px; font-weight:600; color:var(--ink);
  }
  .configurator-dropdown-menu li a:hover{background:rgba(99,102,241,.1); color:var(--brass-dark);}
  @media (max-width:760px){
    .configurator-banner{flex-direction:column; align-items:flex-start;}
    .configurator-dropdown{width:100%;}
    .configurator-dropdown-menu{left:0; right:0;}
  }
  .configurator-foot{display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:8px;}
  .configurator-table{width:100%; border-collapse:collapse; font-size:14.5px;}
  .configurator-table th{
    text-align:left; font-family:'JetBrains Mono', monospace; font-size:11px;
    text-transform:uppercase; letter-spacing:.05em; color:#6b7c95;
    padding:8px 10px; border-bottom:2px solid var(--ink);
  }
  .configurator-table td{
    padding:10px; border-bottom:1px solid var(--line); vertical-align:middle;
  }
  .cfg-field-label{font-family:'Sora', sans-serif; font-weight:700; color:var(--navy); white-space:nowrap;}
  .cfg-optional{
    display:block; font-family:'Inter',sans-serif; font-weight:400; font-size:11px; color:#8993A8;
  }
  .configurator-table select{
    width:100%; min-width:200px; padding:9px 10px; font-size:14px;
    border:1px solid var(--line); border-radius:6px; background:#fff; color:var(--ink);
    font-family:'Inter', sans-serif;
  }
  .cfg-double-label{
    display:flex; align-items:center; gap:6px; font-size:12px; color:#5C6B82;
    margin-top:6px; cursor:pointer;
  }
  .configurator-table td.cfg-price{
    font-family:'JetBrains Mono', monospace; font-weight:700; color:var(--brass-dark);
    white-space:nowrap; text-align:right;
  }
  .configurator-table tfoot td{border-bottom:none; font-size:18px; padding-top:14px;}
  @media (max-width:640px){
    .configurator-table, .configurator-table tbody, .configurator-table tr, .configurator-table td{display:block; width:100%;}
    .configurator-table thead{display:none;}
    .configurator-table tr{border-bottom:1px solid var(--line); padding:8px 0;}
    .configurator-table td{border-bottom:none; padding:4px 0;}
    .configurator-table td.cfg-price{text-align:left; font-size:16px;}
    .configurator-table select{min-width:0;}
  }
  .shop-tabs{
    display:flex; flex-wrap:wrap;
    gap:12px; margin-bottom:38px; align-items:flex-start; align-content:flex-start;
  }
  .shop-tab-group-label{
    width:100%; font-family:'JetBrains Mono',monospace; font-size:10.5px;
    text-transform:uppercase; letter-spacing:.1em; color:#8993A8;
    padding:10px 2px 2px; margin-top:4px;
  }
  .shop-tab-group-label:first-child{ margin-top:0; padding-top:2px; }
  .shop-tab{
    width:calc(20% - 10px); min-width:150px;
    font-family:'Sora', sans-serif; font-size:15px; font-weight:700;
    letter-spacing:0.01em;
    padding:0; border:1px solid var(--line); background:var(--paper);
    color:#fff; cursor:pointer; border-radius:var(--radius-lg);
    transition:transform .3s var(--ease), box-shadow .3s ease, border-color .3s ease;
    position:relative; overflow:hidden;
    aspect-ratio:4/3;
  }
  .shop-tab img{
    position:absolute; inset:0; width:100%; height:100%;
    object-fit:cover; transition:transform .5s var(--ease);
  }
  .shop-tab::before{
    content:"";
    position:absolute; inset:0;
    background:linear-gradient(195deg, rgba(10,14,23,.05) 0%, rgba(10,14,23,.78) 100%);
    transition:background .3s ease;
  }
  .shop-tab span{
    position:absolute; left:16px; right:16px; bottom:14px; z-index:1;
    text-align:left; line-height:1.25;
    text-shadow:0 2px 8px rgba(0,0,0,.4);
  }
  .shop-tab .tab-icon{
    position:absolute; top:12px; right:12px; z-index:1;
    width:34px; height:34px; border-radius:50%;
    background:rgba(10,14,23,.55); border:1px solid rgba(255,255,255,.2);
    display:flex; align-items:center; justify-content:center;
  }
  .cat-tab-edit-btn{
    position:absolute; bottom:8px; right:8px; z-index:3;
    background:rgba(10,14,23,.85); border:1px solid rgba(255,255,255,.3);
    border-radius:6px; font-size:12px; padding:3px 7px; cursor:pointer;
    opacity:0; transition:opacity .2s ease; line-height:1;
    pointer-events:auto;
  }
  .shop-tab:hover .cat-tab-edit-btn{ opacity:1; }
  .shop-tab svg{
    width:18px; height:18px; opacity:.95; flex-shrink:0;
    filter:drop-shadow(0 1px 3px rgba(0,0,0,.5));
  }
  .shop-tab:hover{
    transform:translateY(-5px) scale(1.02);
    box-shadow:0 20px 48px -16px rgba(0,0,0,.4), 0 0 0 1px rgba(99,102,241,.3);
  }
  .shop-tab.active{
    border-color:var(--navy-2);
    box-shadow:0 8px 32px -8px rgba(34,211,238,.4), 0 0 0 2.5px rgba(45,212,255,.6);
    transform:scale(1.02);
  }
  .shop-tab.active::before{background:linear-gradient(195deg, rgba(99,102,241,.22) 0%, rgba(10,14,23,.88) 100%);}
  .product-grid{display:grid; grid-template-columns:repeat(3, 1fr); gap:22px;}
  /* Liste compacte des articles d'une rubrique : petite icône (photo de la catégorie,
     partagée par tous les articles de cette rubrique), nom, prix, action — au lieu de
     grandes cartes illustrées répétant la même image à chaque fois. */
  .product-list{display:flex; flex-direction:column; gap:9px;}
  /* Skeleton screen — lignes grises animées pendant le rendu de la liste */
  .product-skeleton{display:flex; align-items:center; gap:14px; padding:10px 16px; background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);}
  .product-skeleton-thumb{width:44px; height:44px; flex-shrink:0; border-radius:8px; background:var(--line);}
  .product-skeleton-main{flex:1; display:flex; flex-direction:column; gap:6px;}
  .product-skeleton-line{height:12px; border-radius:4px; background:var(--line);}
  .product-skeleton-line.short{width:40%;}
  .product-skeleton-line.medium{width:65%;}
  .product-skeleton-line.long{width:90%;}
  .product-skeleton-price{width:70px; height:18px; border-radius:4px; background:var(--line); flex-shrink:0;}
  @keyframes skeleton-pulse{0%,100%{opacity:.5} 50%{opacity:1}}
  .product-skeleton *{animation:skeleton-pulse 1.4s ease-in-out infinite;}
  .product-row{
    background:var(--surface); border:1px solid var(--line); border-radius:var(--radius);
    padding:11px 16px; display:flex; align-items:center; gap:14px;
    transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
    position:relative;
  }
  .product-row::before{
    content:""; position:absolute; top:0; left:0; bottom:0; width:3px;
    border-radius:var(--radius) 0 0 var(--radius);
    background:var(--grad-accent); opacity:0;
    transition:opacity .25s ease;
  }
  .product-row:hover{ border-color:rgba(99,102,241,.3); box-shadow:0 4px 20px -8px rgba(99,102,241,.20); transform:translateX(2px); }
  .product-row:hover::before{ opacity:1; }
  .product-row-thumb{
    width:44px; height:44px; flex-shrink:0; border-radius:8px; overflow:hidden;
    background:var(--paper-alt); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center;
  }
  .product-row-thumb img{width:100%; height:100%; object-fit:cover;}
  a.product-row-thumb{cursor:pointer;}
  .product-row-main{flex:1; min-width:0;}
  .product-row-cat{font-family:'JetBrains Mono', monospace; font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--brass-dark);}
  .product-row-name{font-family:'Sora', sans-serif; color:var(--navy); font-size:15px; font-weight:700; margin:1px 0 2px; letter-spacing:-0.01em;}
  .product-row-desc{font-size:12.5px; color:#4B473D; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:560px;}
  .product-row-info-link{font-size:11.5px; color:var(--navy-2); text-decoration:underline; white-space:nowrap; display:inline-block; padding:4px 0; min-height:44px; line-height:36px;}
  .product-row-price{font-family:'JetBrains Mono', monospace; font-size:17px; color:var(--brass-dark); font-weight:700; flex-shrink:0; white-space:nowrap; min-width:82px; text-align:right; letter-spacing:-.01em;}
  .product-row-actions{display:flex; align-items:center; gap:10px; flex-shrink:0;}
  .product-row-stock-badge{
    display:inline-block; font-family:'JetBrains Mono',monospace; font-size:9.5px; font-weight:700;
    padding:2px 6px; border-radius:3px; margin-left:8px; vertical-align:middle;
  }
  @media (max-width:760px){
    .product-row{flex-wrap:wrap; padding:10px 14px;}
    .product-row-desc{display:none;}
    .product-row-price{min-width:0;}
  }
  @media (max-width:480px){
    .product-row-main{order:1; width:100%;}
    .product-row-thumb{order:0;}
    .product-row-actions{order:2; width:100%; justify-content:space-between; margin-top:6px; padding-left:58px;}
  }
  .product-card{
    background:var(--surface); border:1px solid var(--line);
    border-radius:var(--radius-lg);
    padding:24px 22px; display:flex; flex-direction:column;
    position:relative; overflow:hidden;
    transition:transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s ease;
  }
  .product-card::before{
    content:"";
    position:absolute; inset:0 0 auto 0; height:2px;
    background:var(--grad-accent);
    opacity:0; transition:opacity .3s ease;
  }
  .product-card:hover{
    transform:translateY(-5px);
    box-shadow:var(--shadow-lg);
    border-color:rgba(99,102,241,.4);
  }
  .product-card:hover::before{opacity:1;}
  .product-icon{width:30px; height:30px; color:var(--brass-dark); margin-bottom:10px;}
  .brand-logo{
    position:absolute; top:14px; right:14px; max-width:46px; max-height:24px;
    object-fit:contain;
  }
  .product-image{
    width:100%; height:170px; margin-bottom:14px;
    background:var(--paper-alt); border:1px solid var(--line);
    display:flex; align-items:center; justify-content:center; overflow:hidden;
    transition:background .25s ease;
    position:relative;
  }
  .product-image img{width:100%; height:100%; object-fit:cover; transition:transform .4s var(--ease);}
  .product-card:hover .product-image img{transform:scale(1.05);}
  .product-image.placeholder svg{width:72px; height:72px; color:var(--brass-dark); transition:transform .3s var(--ease), color .25s ease;}
  .product-card:hover .product-image.placeholder svg{transform:scale(1.08); color:var(--brass);}
  .product-image-link{cursor:pointer; text-decoration:none;}
  .product-image-badge{
    position:absolute; left:0; right:0; bottom:0; padding:6px 10px;
    background:rgba(16,19,28,.78); color:#fff; font-size:11px; font-weight:600;
    text-align:center; opacity:0; transform:translateY(100%);
    transition:opacity .2s ease, transform .2s ease;
  }
  .product-image-link:hover .product-image-badge{opacity:1; transform:translateY(0);}
  .product-cat{
    font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:.05em;
    text-transform:uppercase; color:var(--brass-dark); margin-bottom:10px;
  }
  .product-card h4{font-family:'Sora', sans-serif; color:var(--navy); font-size:18px; font-weight:700; margin:0 0 6px; letter-spacing:-0.01em;}
  .product-card p{margin:0; font-size:14px; color:#4B473D; flex:1;}
  .product-foot{display:flex; align-items:center; justify-content:space-between; margin-top:16px; gap:10px;}
  .product-price{font-family:'JetBrains Mono', monospace; font-size:19px; color:var(--brass-dark); font-weight:700; letter-spacing:-0.01em;}
  .btn-small{
    font-family:'Inter', sans-serif; font-weight:700; font-size:14.5px;
    padding:10px 18px; min-height:44px; border-radius:var(--radius); border:1px solid transparent;
    background:var(--brass); color:#fff; cursor:pointer; white-space:nowrap;
    transition:background .2s ease, box-shadow .2s ease, transform .15s ease;
    display:inline-flex; align-items:center; gap:6px;
  }
  .btn-small:hover{background:var(--brass-dark); box-shadow:0 4px 14px -2px rgba(99,102,241,.5); transform:translateY(-1px);}
  .btn-small:disabled{background:#16A34A; cursor:default; box-shadow:none; transform:none;}
  .btn-small.quote{background:none; border-color:var(--navy-2); color:var(--navy-2);}
  .btn-small.quote:hover{background:rgba(34,211,238,.1); box-shadow:none;}
  .shop-more{text-align:center; margin-top:30px;}
  .shop-more button{
    font-family:'JetBrains Mono', monospace; font-size:13px; color:var(--navy-2);
    background:none; border:1px solid var(--line); padding:10px 20px;
    border-radius:var(--radius); cursor:pointer; transition:border-color .2s ease, transform .15s ease;
  }
  .shop-more button:hover{border-color:var(--brass); transform:translateY(-1px);}
  .shop-note{font-size:13px; color:#8993A8; font-style:italic; margin-top:14px;}

  @media (max-width:900px){.product-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:580px){.product-grid{grid-template-columns:1fr;}}

  /* ---------- CART DRAWER ---------- */
  .overlay{
    position:fixed; inset:0; background:rgba(16,19,28,.6);
    opacity:0; visibility:hidden; transition:opacity .2s ease; z-index:90;
  }
  .overlay.open{opacity:1; visibility:visible;}
  .drawer{
    position:fixed; top:0; right:0; bottom:0; width:min(420px, 100%);
    background:var(--paper); z-index:91; display:flex; flex-direction:column;
    transform:translateX(100%); transition:transform .25s ease;
    border-left:3px solid var(--brass);
  }
  .drawer.open{transform:translateX(0);}
  .drawer-head{
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 24px; border-bottom:1px solid var(--line);
  }
  .drawer-head h3{font-size:19px;}
  .drawer-close{background:none; border:none; font-size:22px; cursor:pointer; color:var(--navy);}
  .drawer-body{flex:1; overflow-y:auto; padding:20px 24px;}
  .cart-row{display:flex; gap:12px; padding:14px 0; border-bottom:1px solid var(--line);}
  .cart-row-info{flex:1;}
  .cart-row-info h5{font-family:'Sora', sans-serif; font-size:15.5px; color:var(--navy); margin:0 0 4px;}
  .cart-row-price{font-family:'JetBrains Mono', monospace; font-size:13.5px; color:#4B473D;}
  .qty-ctrl{display:flex; align-items:center; gap:8px; margin-top:8px;}
  .qty-ctrl button{
    width:22px; height:22px; border:1px solid var(--line); background:#fff;
    cursor:pointer; font-size:13px; line-height:1; border-radius:var(--radius);
  }
  .qty-ctrl button:hover{border-color:var(--brass);}
  .cart-remove{font-size:12.5px; color:#E53E5C; background:none; border:none; cursor:pointer; padding:0; margin-top:8px;}
  .line-options{display:grid; gap:8px; margin-top:10px; padding:10px; background:var(--paper-alt); border:1px solid var(--line);}
  .line-option{display:flex; flex-direction:column; gap:3px; font-size:12px;}
  .line-option span{font-family:'JetBrains Mono', monospace; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--navy-2);}
  .line-option select{
    font-size:13px; padding:6px 8px; border:1px solid var(--line); background:#fff;
    color:var(--ink); border-radius:var(--radius); font-family:'Inter', sans-serif;
  }
  .line-option select:focus{border-color:var(--brass);}
  .cart-empty{color:#8993A8; font-size:14.5px; padding:30px 0; text-align:center;}
  .drawer-foot{padding:20px 24px; border-top:1px solid var(--line);}
  .cart-total-row{display:flex; justify-content:space-between; font-size:16px; margin-bottom:16px;}
  .cart-export-row{ display:flex; gap:8px; margin-top:10px; }
  .cart-export-btn{
    flex:1; display:flex; align-items:center; justify-content:center; gap:6px;
    padding:9px 10px; border-radius:8px; border:1px solid var(--line);
    background:var(--paper); color:#5B7299; font-size:13px; font-weight:600;
    cursor:pointer; font-family:'Inter',sans-serif;
    transition:background .15s, border-color .15s, color .15s;
  }
  .cart-export-btn:hover{ background:var(--paper-alt); border-color:var(--brass); color:var(--brass); }
  .cart-total-row strong{font-family:'JetBrains Mono', monospace; color:var(--navy);}
  .drawer-foot .btn{width:100%; justify-content:center;}

  /* ---------- CHECKOUT MODAL ---------- */
  .modal{
    position:fixed; inset:0; z-index:95; display:flex; align-items:center; justify-content:center;
    opacity:0; visibility:hidden; transition:opacity .2s ease; padding:24px;
  }
  .modal.open{opacity:1; visibility:visible;}
  .modal-backdrop{position:fixed; inset:0; background:rgba(16,19,28,.65);}
  .modal-panel{
    position:relative; background:var(--paper); width:min(640px, 100%);
    max-height:88vh; overflow-y:auto; border-top:6px solid var(--brass);
    padding:34px 32px;
  }
  .modal-close{position:absolute; top:18px; right:18px; background:none; border:none; font-size:22px; cursor:pointer; color:var(--navy);}
  /* La boîte de dialogue de contact laisse les deux menus de choix visibles derrière elle :
     pas de fond sombre, et ancrée dans un coin plutôt que centrée sur tout l'écran. */
  #contactDialogModal{align-items:flex-end; justify-content:flex-end;}
  #contactDialogBackdrop{background:transparent;}
  #contactDialogModal .modal-panel{box-shadow:var(--shadow-lg); max-height:80vh;}
  .modal-panel h3{font-size:22px; margin-bottom:6px;}
  .modal-sub{color:#4B473D; font-size:14.5px; margin-bottom:24px;}
  .order-summary{border:1px solid var(--line); padding:16px 18px; margin-bottom:22px; font-size:14.5px;}
  .order-summary-row{display:flex; justify-content:space-between; padding:5px 0;}
  .order-summary-total{border-top:1px dashed var(--line); margin-top:8px; padding-top:10px; font-weight:600; color:var(--navy);}
  .pay-options{display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:20px;}
  .pay-option{
    border:1px solid var(--line); padding:14px 16px; cursor:pointer;
    font-size:14.5px; display:flex; align-items:center; gap:10px;
  }
  .pay-option.active{border-color:var(--brass); background:rgba(99,102,241,.10);}
  .pay-option input{accent-color:var(--brass);}
  .bank-box{background:var(--navy); color:#E7ECF5; padding:18px 20px; font-size:14px; margin-bottom:18px; display:none;}
  .bank-box.show{display:block;}
  .bank-box dt{font-family:'JetBrains Mono', monospace; font-size:11px; text-transform:uppercase; color:#9FAEC4; letter-spacing:.05em;}
  .bank-box dd{margin:2px 0 10px; font-size:15px;}
  #paypalBox{display:none; margin-bottom:18px;}
  #paypalBox.show{display:block;}
  .paypal-note{font-size:12.5px; color:#8993A8; font-style:italic; margin-top:8px;}
  .confirm-box{text-align:center; padding:20px 0;}
  .confirm-box .order-no{font-family:'JetBrains Mono', monospace; color:var(--brass-dark); font-size:14px; margin-bottom:6px;}

  /* ---------- INVOICE / FACTURE ---------- */
  #invoiceArea{display:none;}
  .invoice{border:1px solid var(--line); padding:28px; margin-top:10px; background:#fff;}
  .invoice-head{display:flex; justify-content:space-between; align-items:flex-start; border-bottom:2px solid var(--brass); padding-bottom:16px; margin-bottom:16px;}
  .invoice-head h4{font-family:'Sora', sans-serif; font-size:18px; color:var(--navy); margin:0;}
  .invoice-head .meta{text-align:right; font-size:13px; color:#4B473D;}
  .invoice table{width:100%; border-collapse:collapse; font-size:14px; margin-bottom:16px;}
  .invoice th{text-align:left; font-family:'JetBrains Mono', monospace; font-size:11px; text-transform:uppercase; color:var(--brass-dark); padding:6px 0; border-bottom:1px solid var(--line);}
  .invoice td{padding:8px 0; border-bottom:1px solid #EFEAE0;}
  .invoice .right{text-align:right;}
  .invoice-total{display:flex; justify-content:flex-end; font-size:16px; font-weight:600; color:var(--navy);}

  /* ---------- PRESTATIONS & TARIFS ---------- */
  .price-list{
    border:1px solid var(--line); background:var(--surface);
    border-radius:var(--radius-lg); overflow:hidden;
    box-shadow:var(--shadow-sm);
  }
  .price-row{
    display:flex; justify-content:space-between; align-items:center; gap:16px;
    padding:20px 24px; border-bottom:1px solid var(--line);
    transition:background .2s ease, padding-left .2s ease;
    position:relative;
  }
  .price-row::before{
    content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
    background:var(--grad-accent); opacity:0;
    transition:opacity .2s ease;
  }
  .price-row:hover{ background:rgba(99,102,241,.03); padding-left:28px; }
  .price-row:hover::before{ opacity:1; }
  .price-row:last-child{border-bottom:none;}
  .price-row .pr-name{ font-family:'Sora',sans-serif; color:var(--navy); font-size:16.5px; font-weight:700; margin:0 0 4px; }
  .price-row .pr-desc{ font-size:13.5px; color:#5A6072; margin:0; line-height:1.5; }
  .price-row .pr-price{
    font-family:'JetBrains Mono',monospace; font-size:20px; color:var(--brass-dark);
    white-space:nowrap; font-weight:700; letter-spacing:-.02em;
    background:rgba(99,102,241,.06); padding:6px 12px; border-radius:8px;
    flex-shrink:0;
  }
  @media (max-width:560px){
    .price-row{ flex-direction:column; align-items:flex-start; gap:8px; }
    .price-row .pr-price{ font-size:18px; }
  }

  /* ---------- ONGLETS / PAGES ---------- */
  nav ul li a.active{color:#fff; border-color:var(--navy-2);}

  /* ---------- TOAST BIENVENUE / AU REVOIR ---------- */
  .site-toast{
    position:fixed; left:50%; bottom:28px; z-index:200;
    transform:translate(-50%, 20px);
    background:var(--navy); color:#fff;
    border:1px solid rgba(99,102,241,.5);
    border-radius:999px;
    padding:14px 18px 14px 20px;
    display:flex; align-items:center; gap:14px;
    font-family:'Inter', sans-serif; font-size:14px;
    box-shadow:0 12px 32px -8px rgba(34,211,238,.35), 0 4px 14px rgba(0,0,0,.3);
    opacity:0; visibility:hidden;
    transition:opacity .3s ease, transform .3s ease, visibility .3s;
    max-width:min(420px, calc(100vw - 32px));
  }
  .site-toast.show{opacity:1; visibility:visible; transform:translate(-50%, 0);}
  .site-toast button{
    background:none; border:none; color:#9FB3D4; cursor:pointer; font-size:14px;
    flex-shrink:0; line-height:1; padding:2px;
  }
  .site-toast button:hover{color:#fff;}
  @media (max-width:560px){
    .site-toast{left:16px; right:16px; transform:translateY(20px); bottom:18px; max-width:none;}
    .site-toast.show{transform:translateY(0);}
  }

  /* ---------- ESPACE BOUTIQUE (interne) ---------- */
  .owner-row{
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    padding:10px 14px; border-bottom:1px solid var(--line); font-size:14px;
  }
  .owner-row:last-child{border-bottom:none;}
  .owner-row .o-name{flex:1; color:var(--navy);}
  .owner-row .o-cat{font-family:'JetBrains Mono', monospace; font-size:10.5px; color:#8993A8; text-transform:uppercase; display:block;}
  .owner-row .o-price{font-family:'JetBrains Mono', monospace; font-size:13px; color:var(--navy); white-space:nowrap;}
  .owner-row .o-link{font-size:12.5px; white-space:nowrap;}
  .owner-row .o-alt{color:var(--brass); border:1px solid var(--brass); padding:3px 8px; border-radius:3px; font-size:11.5px;}
  .owner-row .o-alt:hover{background:rgba(99,102,241,.1);}
  .owner-row .o-link.missing{color:#9b9484; font-style:italic;}

  .record-row{
    display:flex; justify-content:space-between; align-items:center; gap:10px;
    padding:9px 12px; border-bottom:1px solid rgba(255,255,255,.1); font-size:13px; color:#E7ECF5;
  }
  .record-row:last-child{border-bottom:none;}
  .record-row .r-name{flex:1;}
  .record-row .r-type{font-family:'JetBrains Mono', monospace; font-size:10px; color:var(--navy-2); text-transform:uppercase; display:block;}
  .record-row .r-meta{font-family:'JetBrains Mono', monospace; font-size:11.5px; color:#9FB3D4; white-space:nowrap; text-align:right;}
  .record-empty{padding:14px; color:#9FB3D4; font-size:13px; text-align:center;}

  @media print{
    body *{visibility:hidden;}
    #invoiceArea, #invoiceArea *, #intakeArea, #intakeArea *, #loyaltyCardArea, #loyaltyCardArea *{visibility:visible;}
    #invoiceArea{display:block; position:absolute; top:0; left:0; right:0;}
    #intakeArea{display:block; position:absolute; top:0; left:0; right:0;}
    #loyaltyCardArea{display:block; position:absolute; top:0; left:0; right:0;}
    @page{size:A4; margin:10mm;}
  }

  /* ---------- CARTE DE FIDÉLITÉ ---------- */
  .loyalty-card{
    width:340px; border:2px solid var(--navy); border-radius:14px; overflow:hidden;
    font-family:'Inter', sans-serif; margin:0 auto 16px; background:#fff;
  }
  .loyalty-card-head{
    background:linear-gradient(135deg, var(--navy) 0%, var(--brass) 130%);
    color:#fff; padding:16px 18px;
  }
  .loyalty-card-head .lc-brand{font-family:'Sora', sans-serif; font-weight:700; font-size:16px;}
  .loyalty-card-head .lc-sub{font-family:'JetBrains Mono', monospace; font-size:10px; letter-spacing:.08em; text-transform:uppercase; opacity:.85; margin-top:2px;}
  .loyalty-card-body{padding:14px 18px;}
  .loyalty-card-body .lc-name{font-family:'Sora', sans-serif; font-weight:700; font-size:15px; color:var(--navy); margin-bottom:2px;}
  .loyalty-card-body .lc-no{font-family:'JetBrains Mono', monospace; font-size:10.5px; color:#8993A8; margin-bottom:12px;}
  .lc-stamps{display:grid; grid-template-columns:repeat(5, 1fr); gap:6px; margin-bottom:10px;}
  .lc-stamp{
    aspect-ratio:1; border:1.5px dashed var(--line); border-radius:10px;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    font-family:'JetBrains Mono', monospace; font-size:11px; color:#B9C0CC;
    padding:4px 2px; text-align:center;
  }
  .lc-stamp.filled{
    border-style:solid; border-color:var(--brass); background:var(--brass);
    color:#fff; font-weight:700;
  }
  .lc-stamp.filled .lc-stamp-check{font-size:14px; line-height:1;}
  .lc-stamp.filled .lc-stamp-date{font-size:8.5px; font-weight:400; opacity:.9; margin-top:2px; line-height:1.2; word-break:break-word;}
  .lc-reward{font-size:11px; color:#4B473D; text-align:center; border-top:1px dashed var(--line); padding-top:8px;}
  .lc-fields{margin:0 0 10px; font-size:12px;}
  .lc-fields div{display:flex; justify-content:space-between; gap:10px; padding:3px 0; border-bottom:1px dotted var(--line);}
  .lc-fields dt{color:#8993A8; font-family:'JetBrains Mono', monospace; font-size:10.5px; text-transform:uppercase; flex-shrink:0;}
  .lc-fields dd{margin:0; color:var(--navy); text-align:right; word-break:break-word;}
  @media print{
    .loyalty-card{box-shadow:none;}
  }

  /* ---------- FICHE DE PRISE EN CHARGE (double exemplaire, 1 page A4) ---------- */
  .intake-copy{
    border:1px solid var(--line); padding:24px 28px; background:#fff;
    font-size:14px; line-height:1.55;
  }
  .intake-copy + .intake-copy{
    margin-top:0; page-break-before:always; break-before:page;
  }
  .intake-tag{
    display:inline-block; font-family:'JetBrains Mono', monospace; font-size:10px;
    text-transform:uppercase; letter-spacing:.06em; color:#fff; background:var(--brass);
    padding:3px 8px; border-radius:3px; margin-bottom:8px;
  }
  .intake-head{display:flex; justify-content:space-between; align-items:flex-start; border-bottom:2px solid var(--brass); padding-bottom:8px; margin-bottom:10px;}
  .intake-head h4{font-family:'Sora', sans-serif; font-size:15px; color:var(--navy); margin:0;}
  .intake-head .meta{text-align:right; font-size:11px; color:#4B473D;}
  .intake-grid{display:grid; grid-template-columns:1fr 1fr; gap:4px 16px; margin-bottom:8px;}
  .intake-grid div{font-size:12px;}
  .intake-grid b{color:var(--navy);}
  .intake-block{margin-bottom:8px; font-size:12px;}
  .intake-block b{color:var(--navy); display:block; font-size:10.5px; text-transform:uppercase; letter-spacing:.04em; margin-bottom:2px; font-family:'JetBrains Mono', monospace;}
  .intake-sign{display:flex; justify-content:space-between; align-items:flex-end; margin-top:10px;}
  .intake-sign img{height:50px; border-bottom:1px solid var(--line);}
  .intake-sign .intake-sign-label{font-size:10px; color:#8993A8;}
  .intake-terms{font-size:9.5px; color:#8993A8; margin-top:8px; border-top:1px solid var(--line); padding-top:6px;}

  @media (max-width:600px){
    .pay-options{grid-template-columns:1fr;}
  }

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important; scroll-behavior:auto !important;}
  }


/* ========================================
   (suite)
   ======================================== */

' + adminTabStyle + '