
  :root{
    --navy:#0E2A38;
    --navy-soft:#163C4E;
    --chalk:#F5F3EC;
    --lime:#CFFF5C;
    --coral:#FF5A3C;
    --ink:#16201F;
    --line:#D9D4C5;
    --muted:#6B7672;
    --white:#FFFFFF;
    --font-display:'Anton', sans-serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'JetBrains Mono', monospace;
    --radius:14px;
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;overflow-x:hidden;}
  body{
    margin:0;
    overflow-x:hidden;
    font-family:var(--font-body);
    color:var(--ink);
    background:var(--chalk);
    -webkit-font-smoothing:antialiased;
  }
  img,svg{max-width:100%;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;}
  h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;line-height:1.18;letter-spacing:0.3px;margin:0 0 .5em;text-transform:uppercase;}
  h1{line-height:1.12;}
  h3,h4{letter-spacing:0.2px;}
  p{line-height:1.55;margin:0 0 1em;color:var(--ink);}
  .mono{font-family:var(--font-mono);}
  .wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
  .visually-hidden{position:absolute;left:-9999px;}
  :focus-visible{outline:3px solid var(--coral);outline-offset:2px;}

  /* HEADER */
  header.site{
    position:sticky;top:0;z-index:50;
    background:var(--navy);
    border-bottom:1px solid rgba(255,255,255,.08);
  }
  .nav-row{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;max-width:1280px;margin:0 auto;gap:24px;min-height:56px;}
  .logo{display:flex;align-items:center;gap:8px;color:var(--white);font-family:var(--font-display);font-size:1.08rem;letter-spacing:.2px;white-space:nowrap;}
  .logo .brand-text{display:inline-flex;align-items:baseline;gap:0;}
  .logo .ext{color:var(--lime);}
  .logo .dot{width:10px;height:10px;border-radius:50%;background:var(--lime);display:inline-block;animation:pulse 1.8s infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
  nav.main-links{display:flex;gap:0;flex:1;justify-content:space-evenly;}
  nav.main-links a{color:rgba(255,255,255,.78);font-size:.88rem;font-weight:600;letter-spacing:.2px;padding:8px 4px;border-bottom:2px solid transparent;transition:.15s;white-space:nowrap;}
  nav.main-links a:hover,nav.main-links a.active{color:var(--white);border-bottom-color:var(--lime);}
  .mobile-logout-link{display:none!important;}
  .nav-right{display:flex;align-items:center;gap:10px;flex-shrink:0;}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:11px 20px;border-radius:999px;font-weight:700;font-size:.88rem;
    letter-spacing:.3px;transition:transform .15s,box-shadow .15s;white-space:nowrap;
  }
  .btn-coral{background:var(--coral);color:var(--white);}
  .btn-coral:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(255,90,60,.35);}
  .btn-lime{background:var(--lime);color:var(--navy);}
  .btn-lime:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(207,255,92,.35);}
  .btn-outline{border:1.5px solid var(--navy);color:var(--navy);background:transparent;}
  .btn-outline:hover{background:var(--navy);color:var(--white);}
  .btn-outline-light{border:1.5px solid rgba(255,255,255,.5);color:var(--white);}
  .btn-outline-light:hover{background:rgba(255,255,255,.12);}
  .btn-ghost{color:var(--navy);font-weight:600;font-size:.85rem;}
  .btn-sm{padding:7px 14px;font-size:.78rem;}
  .btn[disabled]{opacity:.4;cursor:not-allowed;}
  .burger{display:none;background:none;color:var(--white);font-size:1.6rem;}
  .language-switch{
    width:38px;height:34px;padding:0;border-radius:8px;
    border:1px solid rgba(255,255,255,.42);color:var(--white);
    font-family:var(--font-mono);font-size:.74rem;font-weight:800;
    background:rgba(255,255,255,.06);
  }
  .language-switch:hover{background:rgba(255,255,255,.14);}

  @media (max-width:900px){
    nav.main-links{
      display:none;
      position:absolute;top:100%;left:0;right:0;
      flex-direction:column;background:var(--navy);
      padding:10px 24px 18px;gap:4px;
      border-bottom:1px solid rgba(255,255,255,.08);
      box-shadow:0 14px 30px rgba(0,0,0,.25);
    }
    nav.main-links.open{display:flex;}
    nav.main-links a{padding:12px 4px;border-bottom:1px solid rgba(255,255,255,.06);}
    nav.main-links a.mobile-logout-link{display:none!important;color:var(--lime);font-weight:800;}
    nav.main-links a.mobile-logout-link.visible{display:block!important;}
    .burger{display:block;}
    .nav-row{flex-wrap:wrap;position:relative;}
    .language-switch{width:42px;height:42px;}
  }

  /* APP CONTAINER */
  #app{min-height:60vh;}
  section{padding:64px 0;}
  .section-tight{padding:42px 0;}
  .eyebrow{
    font-family:var(--font-mono);font-size:.74rem;letter-spacing:2px;text-transform:uppercase;
    color:var(--coral);font-weight:700;margin-bottom:10px;display:block;
  }
  .section-head{max-width:680px;margin-bottom:30px;}
  .section-head p{color:var(--muted);font-size:1.05rem;}

  /* HERO */
  .hero{background:var(--navy);color:var(--white);position:relative;overflow:hidden;padding:70px 0 90px;}
  .hero::after{
    content:"";position:absolute;inset:0;background:
      radial-gradient(circle at 85% 20%, rgba(207,255,92,.12), transparent 45%),
      radial-gradient(circle at 10% 80%, rgba(255,90,60,.10), transparent 40%);
    pointer-events:none;
  }
  .hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center;position:relative;z-index:1;}
  .hero-grid.hero-grid-single{grid-template-columns:minmax(0,760px);justify-content:center;text-align:center;}
  .hero-grid.hero-grid-single .hero-ctas,.hero-grid.hero-grid-single .hero-stats{justify-content:center;}
  .hero-grid.hero-grid-single p.lead{margin-left:auto;margin-right:auto;}
  @media (max-width:900px){.hero-grid{grid-template-columns:1fr;}}
  .hero h1{font-size:clamp(2.4rem,5vw,3.6rem);color:var(--white);margin-bottom:.5em;}
  .hero h1 span{color:var(--lime);}
  .hero p.lead{color:rgba(255,255,255,.78);font-size:1.12rem;max-width:480px;}
  .hero-ctas{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap;}
  .hero-stats{display:flex;gap:30px;margin-top:38px;flex-wrap:wrap;}
  .hero-stats div{font-family:var(--font-mono);}
  .hero-stats b{display:block;font-size:1.6rem;color:var(--lime);font-weight:700;}
  .hero-stats span{font-size:.78rem;color:rgba(255,255,255,.6);}
  .home-club-cta{text-align:center;background:var(--navy-soft);border-radius:var(--radius);padding:44px 30px;color:#fff;max-width:940px;margin:0 auto;}
  .responsive-two-col{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}
  .contact-layout{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;}

  /* SPLIT-FLAP BOARD */
  .board{
    background:#081A24;border-radius:var(--radius);padding:18px;
    border:1px solid rgba(255,255,255,.08);box-shadow:0 30px 60px rgba(0,0,0,.35);
    min-height:300px;box-sizing:border-box;display:flex;flex-direction:column;
  }
  #flap-board{flex:1;display:flex;flex-direction:column;}
  .board-head{
    display:flex;justify-content:space-between;align-items:center;
    font-family:var(--font-mono);font-size:.72rem;letter-spacing:1.5px;
    color:rgba(255,255,255,.5);padding:0 4px 10px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:8px;
    text-transform:uppercase;
  }
  .board-head .live{color:var(--lime);display:flex;align-items:center;gap:6px;}
  .board-head .live::before{content:"";width:7px;height:7px;background:var(--lime);border-radius:50%;animation:pulse 1.4s infinite;}
  .board-head .soon{color:rgba(255,255,255,.66);}
  .board-head .loading{color:rgba(255,255,255,.72);}
  .flap-row{
    display:grid;grid-template-columns:1.3fr 1fr .9fr .9fr;gap:8px;
    padding:10px 4px;border-bottom:1px dashed rgba(255,255,255,.08);
    font-family:var(--font-mono);font-size:.84rem;color:var(--white);
    transition:opacity .25s, transform .25s;
  }
  a.flap-row{text-decoration:none;color:var(--white);border-radius:8px;}
  a.flap-row:hover{background:rgba(255,255,255,.05);padding-left:8px;padding-right:8px;}
  .flap-row.flip{opacity:0;transform:translateY(-6px);}
  .flap-row .club{font-weight:700;color:var(--lime);}
  .flap-row .places{color:var(--coral);font-weight:700;text-align:right;}
  .flap-row .heure{color:rgba(255,255,255,.7);}
  .flap-row .city{color:rgba(255,255,255,.62);}
  .flap-empty{padding:18px 6px;color:rgba(255,255,255,.68);font-size:.9rem;line-height:1.45;margin:auto 0;}
  .discovery-board-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 4px;border:0;border-bottom:1px dashed rgba(255,255,255,.15);color:#fff;background:transparent;text-decoration:none;text-align:left;width:100%;font-family:inherit;cursor:pointer;min-height:66px;box-sizing:border-box;}
  .discovery-board-row:hover,.discovery-board-row:focus-visible{background:rgba(255,255,255,.06);}
  .discovery-board-row b{color:var(--lime);display:block;font-size:.9rem;}
  .discovery-board-row small{display:block;color:rgba(255,255,255,.75);line-height:1.5;overflow-wrap:anywhere;}
  .discovery-board-row span{font-size:.78rem;white-space:nowrap;}
  .discovery-board-note{font-size:.78rem;color:rgba(255,255,255,.75);line-height:1.5;margin:12px 4px 0;}
  .board.discovery-board{min-height:0;}
  .discovery-section{min-width:0;}
  .discovery-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
  .discovery-section-head h2{font-size:1.7rem;margin:6px 0 10px;}
  .discovery-section-head p{max-width:650px;margin:0;color:var(--muted);font-size:.92rem;}
  .discovery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
  .discovery-card{padding:20px;background:var(--white);border:1px solid var(--line);border-radius:8px;min-width:0;display:flex;flex-direction:column;gap:12px;}
  .discovery-card h3{font-size:1.2rem;margin:0;overflow-wrap:anywhere;}
  .discovery-card p{color:var(--muted);font-size:.86rem;margin:0;overflow-wrap:anywhere;}
  .discovery-card .tag{align-self:flex-start;white-space:normal;}
  .discovery-card .btn{align-self:flex-start;margin-top:auto;white-space:normal;text-align:center;}
  .discovery-more{margin-top:18px;}
  .discovery-directory{margin-top:30px;padding-top:24px;border-top:1px solid var(--line);}
  .discovery-directory .discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
  .discovery-directory .discovery-section-head h2{font-size:1.5rem;}
  .discovery-modal button[type="submit"]{width:100%;white-space:normal;}
  .discovery-modal [role="alert"]{color:#b3261e;margin:12px 0;}
  @media(max-width:900px){.discovery-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
  @media(max-width:540px){.discovery-grid,.discovery-directory .discovery-grid{grid-template-columns:minmax(0,1fr);}.discovery-card{padding:18px;}.discovery-section-head h2{font-size:1.5rem;}}

  /* HOW IT WORKS */
  .steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  @media (max-width:800px){.steps{grid-template-columns:1fr;}}
  .step{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px;}
  .step .num{font-family:var(--font-mono);color:var(--coral);font-weight:700;font-size:.8rem;letter-spacing:1px;}
  .step h3{font-size:1.3rem;margin-top:10px;}
  .step p{color:var(--muted);margin:0;}

  /* VALUE CARDS */
  .cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  @media (max-width:900px){.cards3{grid-template-columns:1fr;}}
  .vcard{
    border-radius:var(--radius);padding:30px 26px;background:var(--white);border:1px solid var(--line);
  }
  .vcard.dark{background:var(--navy);color:var(--white);border-color:var(--navy);}
  .vcard.dark p{color:rgba(255,255,255,.72);}
  .vcard .icon{
    width:46px;height:46px;border-radius:12px;background:var(--lime);display:flex;align-items:center;justify-content:center;
    font-family:var(--font-display);color:var(--navy);font-size:1.2rem;margin-bottom:18px;
  }
  .vcard h3{font-size:1.15rem;}

  .home-reviews{background:#F0F4F6;}
  .home-reviews .section-head{text-align:center;margin:0 auto 34px;}
  .home-reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
  .home-review-card{background:#fff;border:1px solid rgba(14,42,56,.10);border-radius:12px;padding:26px;box-shadow:0 18px 36px rgba(14,42,56,.08);}
  .home-review-top{display:flex;align-items:center;gap:14px;margin-bottom:18px;}
  .home-review-avatar{width:clamp(56px,5vw,66px);aspect-ratio:1/1;border-radius:50%;background-image:url('/member-avatars-generated.jpg');background-size:305% 305%;background-repeat:no-repeat;background-color:#EEF3F1;border:2px solid #fff;box-shadow:0 8px 18px rgba(14,42,56,.16);flex:0 0 auto;overflow:hidden;}
  .home-review-card b{display:block;color:var(--navy);font-size:1rem;margin-bottom:4px;}
  .home-review-stars{color:#F5B400;font-family:var(--font-mono);font-size:.82rem;font-weight:800;}
  .home-review-card p{font-size:.96rem;color:var(--ink);font-weight:650;font-style:italic;margin:0;line-height:1.55;}
  .home-review-meta{display:block;margin-top:12px;font-size:.76rem;color:var(--muted);}
  @media (max-width:900px){.home-reviews-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:640px){.home-reviews-grid{grid-template-columns:1fr;gap:14px;}.home-review-card{padding:20px;}.home-review-top{gap:12px;margin-bottom:14px;}.home-review-avatar{width:58px;}.home-reviews .section-head{text-align:left;margin-bottom:22px;}}

  .band{background:var(--navy);color:var(--white);}
  .band h2{color:var(--white);}

  footer.site{background:var(--navy);color:rgba(255,255,255,.6);padding:50px 0 30px;}
  .foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:30px;}
  @media (max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;}}
  footer.site h4{color:var(--white);font-size:.85rem;letter-spacing:1px;}
  footer.site a{display:block;color:rgba(255,255,255,.6);font-size:.88rem;padding:4px 0;}
  footer.site a:hover{color:var(--lime);}
  .foot-bottom{margin-top:36px;padding-top:20px;border-top:1px solid rgba(255,255,255,.1);font-size:.78rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;}
  .foot-pro-links{color:rgba(255,255,255,.4);}
  .foot-pro-links a{display:inline;color:rgba(255,255,255,.55);padding:0;font-size:inherit;text-decoration:underline;text-decoration-color:rgba(255,255,255,.25);}
  .foot-pro-links a:hover{color:var(--lime);}

  /* GENERIC PAGE HEADER BANNER */
  .page-banner{background:var(--navy);color:var(--white);padding:48px 0 42px;position:relative;overflow:hidden;}
  .page-banner::after{
    content:"";position:absolute;inset:0;background:radial-gradient(circle at 90% 0%, rgba(207,255,92,.10), transparent 50%);pointer-events:none;
  }
  .page-banner .wrap{display:flex;flex-direction:column;gap:14px;position:relative;z-index:1;}
  .page-banner h1{color:var(--white);font-size:clamp(1.7rem,3.6vw,2.5rem);margin:0;max-width:680px;}
  .page-banner p{color:rgba(255,255,255,.7);max-width:560px;margin:0;font-size:1.02rem;}
  .breadcrumb{font-family:var(--font-mono);font-size:.72rem;letter-spacing:1.5px;color:var(--lime);text-transform:uppercase;display:block;margin-bottom:6px;}

  /* RESERVATION PAGE */
  .resa-layout{display:grid;grid-template-columns:340px 1fr;gap:32px;align-items:start;}
  .public-map-layout{grid-template-columns:1fr 380px;}
  .coach-map-layout{grid-template-columns:1fr 340px;}
  .resa-layout > *{min-width:0;}
  @media (max-width:900px){.resa-layout{grid-template-columns:1fr;}}
  .panel{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:22px;}
  .panel h3{font-size:1rem;margin-bottom:14px;}
  .field{margin-bottom:16px;}
  .field label{display:block;font-size:.78rem;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px;}
  .field input,.field select,.field textarea{
    width:100%;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;font-family:inherit;font-size:.92rem;background:var(--chalk);
  }
  .field input:focus,.field select:focus,.field textarea:focus{border-color:var(--coral);}
  .field.address-field{position:relative;}
  .address-suggestions{
    position:absolute;left:0;right:0;top:calc(100% - 8px);z-index:800;
    background:var(--white);border:1px solid rgba(14,42,56,.16);border-radius:12px;
    box-shadow:0 14px 34px rgba(14,42,56,.16);overflow:hidden;display:none;
  }
  .address-option{width:100%;text-align:left;border:0;background:var(--white);padding:11px 12px;cursor:pointer;border-bottom:1px solid var(--line);}
  .address-option:last-child{border-bottom:0;}
  .address-option:hover,.address-option:focus{background:#F6FAEE;outline:none;}
  .address-main{display:block;font-weight:800;color:var(--navy);font-size:.9rem;}
  .address-sub{display:block;color:var(--muted);font-size:.78rem;margin-top:2px;}
  .address-helper{font-size:.74rem;color:var(--muted);margin-top:6px;}
  .chip-row{display:flex;gap:8px;flex-wrap:wrap;}
  .chip{
    padding:7px 13px;border-radius:999px;border:1.5px solid var(--line);font-size:.8rem;font-weight:600;background:var(--white);
  }
  .chip.active{background:var(--navy);color:var(--white);border-color:var(--navy);}

  .map-frame{
    position:relative;background:#E7EEDD;border-radius:var(--radius);
    height:300px;overflow:hidden;border:1px solid var(--line);margin-top:14px;z-index:0;
  }
  .seances-location-panel{margin-bottom:14px;}
  .seances-location-grid{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(220px,1fr) auto;gap:14px;align-items:end;}
  .seances-location-grid .field{margin-bottom:0;}
  .seances-map-shell{margin-bottom:20px;padding:16px;}
  .seances-map-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
  .seances-map-head h3{margin:0;font-size:1rem;}
  .seances-map-head p{margin:3px 0 0;color:var(--muted);font-size:.82rem;}
  .seances-map-shell .map-frame{height:220px;margin-top:0;}
  .seances-map-shell.expanded .map-frame{height:min(68vh,560px);}
  .seances-side-column{position:sticky;top:90px;align-self:start;}
  .seances-side-column .seances-location-grid{grid-template-columns:1fr;gap:12px;}
  .seances-side-column .seances-location-grid .btn{width:100%;}
  .seances-side-column .seances-map-shell{margin-bottom:0;}
  .seances-side-column .seances-map-shell .map-frame{height:230px;}
  .seances-side-column .seances-map-shell.expanded .map-frame{height:min(68vh,560px);}
  .map-loading{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
    font-family:var(--font-mono);font-size:.78rem;color:var(--muted);
  }
  .leaflet-pin{border-radius:50%;border:2px solid var(--white);box-shadow:0 2px 8px rgba(0,0,0,.4);}
  .leaflet-pin.club-pin{background:var(--coral);width:16px;height:16px;}
  .leaflet-pin.approximate-pin{background:#fff;border:3px solid var(--coral);}
  .map-status{max-width:220px;background:rgba(255,255,255,.96);color:var(--ink);padding:6px 9px;border-radius:4px;font:12px/1.4 var(--font-body);box-shadow:0 1px 5px rgba(0,0,0,.15);overflow-wrap:anywhere;}
  .map-status:empty{display:none;}
  .leaflet-pin.me-pin{background:var(--navy);width:18px;height:18px;box-shadow:0 0 0 5px rgba(14,42,56,.18),0 2px 8px rgba(0,0,0,.4);}
  .leaflet-pin.presence-pin{background:var(--lime);width:18px;height:18px;box-shadow:0 0 0 6px rgba(207,255,92,.22),0 3px 10px rgba(14,42,56,.35);}
  .leaflet-popup-content{font-family:var(--font-body);font-size:.86rem;line-height:1.35;min-width:190px;margin:12px 14px;}
  .map-popup-title{display:block;font-family:var(--font-body);font-weight:800;font-size:.98rem;line-height:1.25;text-transform:none;color:var(--navy);margin-bottom:4px;white-space:normal;}
  .map-popup-sub{display:block;color:var(--ink);font-weight:600;margin-bottom:3px;white-space:normal;}
  .map-popup-address{display:block;color:var(--muted);font-size:.8rem;white-space:normal;}

  .slot-card{
    display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;
    background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:14px;
    transition:box-shadow .25s, transform .25s, border-color .25s;
  }
  @media (max-width:640px){.slot-card{grid-template-columns:1fr;text-align:left;}}
  .highlighted{
    border-color:var(--lime) !important;
    box-shadow:0 0 0 3px rgba(207,255,92,.45), 0 14px 28px rgba(14,42,56,.14) !important;
    transform:translateY(-2px);
    position:relative;
  }
  .highlighted::before{
    content:"📍 Sélectionné sur la carte";
    position:absolute;top:-11px;left:16px;background:var(--navy);color:var(--lime);
    font-family:var(--font-mono);font-size:.65rem;font-weight:700;padding:2px 9px;border-radius:6px;letter-spacing:.3px;
  }
  .club-tarif-card{
    background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:16px;
    transition:box-shadow .25s, transform .25s, border-color .25s;position:relative;
  }
  .slot-card.promoted,.club-tarif-card.promoted{border-color:rgba(207,255,92,.9);box-shadow:0 12px 30px rgba(14,42,56,.10);}
  .slot-card.promoted{position:relative;}
  .slot-card.promoted::after,.club-tarif-card.promoted::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:linear-gradient(180deg,var(--lime),var(--coral));border-radius:var(--radius) 0 0 var(--radius);}
  .promo-badge{display:inline-flex;align-items:center;gap:6px;background:var(--lime);color:var(--navy);border-radius:999px;padding:4px 9px;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.4px;margin-left:8px;vertical-align:middle;}
  .promo-badge.boost{background:var(--coral);color:#fff;}
  .trust-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
  .trust-badge{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 11px;font-size:.78rem;font-weight:800;color:var(--navy);}
  .hero .trust-badge{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.18);color:#fff;}
  .urgency{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.68rem;font-weight:900;background:rgba(255,90,60,.1);color:var(--coral);}
  .admin-note{width:100%;min-height:64px;border:1.5px solid var(--line);border-radius:8px;padding:10px 12px;background:var(--chalk);font-family:inherit;font-size:.88rem;}
  .club-tarif-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
  .slot-badge{
    width:54px;height:54px;border-radius:12px;background:var(--navy);color:var(--lime);
    display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:1.4rem;flex-shrink:0;
  }
  .slot-info h4{margin:0 0 4px;font-size:1.05rem;text-transform:none;font-family:var(--font-body);font-weight:700;}
  .slot-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);font-family:var(--font-mono);}
  .tag{
    display:inline-flex;align-items:center;font-size:.68rem;font-weight:700;padding:3px 9px;border-radius:6px;
    text-transform:uppercase;letter-spacing:.5px;margin-right:6px;
  }
  .tag.lastmin{background:rgba(255,90,60,.12);color:var(--coral);}
  .tag.routine{background:rgba(14,42,56,.08);color:var(--navy);}
  .tag.groupe{background:rgba(207,255,92,.25);color:#5C7A1E;}
  .slot-price{text-align:right;}
  .slot-price b{font-family:var(--font-mono);font-size:1.2rem;display:block;}
  .slot-price span{font-size:.74rem;color:var(--muted);}

  /* PRICING / PACKS */
  .pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  @media (max-width:900px){.pricing-grid{grid-template-columns:1fr;}}
  .price-card{background:var(--white);border:1.5px solid var(--line);border-radius:var(--radius);padding:30px;position:relative;}
  .price-card.feat{border-color:var(--navy);box-shadow:0 16px 40px rgba(14,42,56,.12);}
  .price-card .ribbon{position:absolute;top:-12px;right:24px;background:var(--lime);color:var(--navy);font-size:.68rem;font-weight:800;padding:5px 10px;border-radius:6px;letter-spacing:.5px;}
  .price-card .amount{font-family:var(--font-display);font-size:2.4rem;margin:14px 0 4px;}
  .price-card .amount sup{font-size:1rem;font-family:var(--font-body);font-weight:700;}
  .price-card ul{list-style:none;padding:0;margin:18px 0;}
  .price-card li{padding:7px 0;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted);}
  .price-card li:first-child{border-top:none;}

  /* TABLES (dashboards) */
  table.dtable{width:100%;border-collapse:collapse;font-size:.86rem;}
  .dtable-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:4px;}
  @media (max-width:700px){
    table.dtable{font-size:.78rem;}
    table.dtable th, table.dtable td{padding:8px 8px;white-space:nowrap;}
  }
  table.dtable th{text-align:left;font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:10px 12px;border-bottom:2px solid var(--line);}
  table.dtable td{padding:12px 12px;border-bottom:1px solid var(--line);}
  table.dtable tr:hover td{background:rgba(14,42,56,.025);}
  .status-pill{display:inline-flex;align-items:center;justify-content:center;width:max-content;max-width:none;white-space:nowrap;overflow-wrap:normal;word-break:normal;font-size:.7rem;font-weight:700;padding:4px 10px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;line-height:1.2;}
  .status-pill.ok{background:rgba(46,160,67,.12);color:#1b7a32;}
  .status-pill.pending{background:rgba(255,170,0,.15);color:#a86400;}
  .status-pill.off{background:rgba(120,120,120,.15);color:#666;}
  .status-pill.cancelled{background:rgba(255,90,60,.12);color:var(--coral);}
  .btn-cancel{font-size:.74rem;font-weight:700;padding:6px 12px;border-radius:999px;border:1.5px solid var(--coral);color:var(--coral);background:transparent;}
  .btn-cancel:hover{background:var(--coral);color:#fff;}
  .btn-cancel[disabled]{border-color:var(--line);color:var(--muted);cursor:not-allowed;}
  .btn-cancel[disabled]:hover{background:transparent;color:var(--muted);}
  .mobile-sales-dock{display:none;}
  .booking-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;}
  .reservation-results{min-width:0;}
  .reservation-fast-panel{
    background:var(--white);
    border:1px solid var(--line);
    border-radius:var(--radius);
    padding:20px;
    margin-bottom:18px;
    display:grid;
    grid-template-columns:1.2fr auto;
    gap:16px;
    align-items:center;
    box-shadow:0 14px 30px rgba(14,42,56,.07);
  }
  .fast-metrics{display:flex;gap:10px;flex-wrap:wrap;}
  .fast-metric{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fbfaf5;min-width:110px;}
  .fast-metric b{display:block;font-family:var(--font-mono);font-size:1.1rem;color:var(--navy);}
  .fast-metric span{display:block;font-size:.68rem;text-transform:uppercase;letter-spacing:.45px;color:var(--muted);font-weight:800;}

  .dash-grid{display:grid;grid-template-columns:220px 1fr;gap:30px;}
  @media (max-width:850px){.dash-grid{grid-template-columns:1fr;}}
  @media (max-width:850px){.admin-messaging-grid{grid-template-columns:1fr!important;}}
  .dash-side{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px;height:fit-content;}
  .dash-side a{display:block;padding:10px 12px;border-radius:8px;font-weight:600;font-size:.88rem;color:var(--ink);margin-bottom:4px;}
  .dash-side a:hover,.dash-side a.active{background:var(--navy);color:var(--white);}
  .admin-content{min-width:0;}
	  .admin-table-scroll{
	    width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;
	    border:1px solid var(--line);border-radius:12px;background:var(--white);
	    margin:0 0 16px;box-shadow:0 8px 22px rgba(14,42,56,.05);
	  }
	  .admin-table-scroll table.dtable{min-width:720px;margin:0;border-collapse:collapse;}
	  .admin-section .admin-table-scroll table.dtable{display:table;overflow:visible;}
	  .prospect-list-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;}
	  .prospect-list-head > div:first-child{min-width:0;}
	  .prospect-filter-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:14px;border-top:1px solid var(--line);}
	  .prospect-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px;}
	  .prospect-search{flex:1 1 420px;min-width:260px;display:grid;grid-template-columns:minmax(220px,1fr) auto auto;gap:8px;align-items:center;}
	  .prospect-search input{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;font:inherit;}
	  .prospect-result-count{font-size:.78rem;color:var(--muted);white-space:nowrap;}
	  .prospect-pagination{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex:0 0 auto;}
	  .prospect-pagination .btn{min-height:34px;padding:7px 10px;font-size:.72rem;}
	  .prospect-pagination span{font-size:.76rem;color:var(--muted);white-space:nowrap;}
	  .prospect-pagination-bottom{margin:2px 0 18px;}
	  .prospect-import-audit{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:14px;padding:12px 14px;border:1px solid rgba(14,42,56,.12);border-radius:8px;background:#f8fbf8;}
	  .prospect-import-audit p{margin:0;color:var(--muted);font-size:.8rem;line-height:1.45;}
	  .prospect-import-audit-actions{display:flex;gap:8px;flex-wrap:wrap;}
	  .prospect-language-counts{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
	  .prospect-language-count{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border:1px solid var(--line);border-radius:999px;background:#fff;font-size:.72rem;font-weight:800;}
	  table.dtable.prospect-table{width:100%!important;min-width:1120px!important;font-size:.8rem;table-layout:fixed;}
	  .prospect-table th:nth-child(1),.prospect-table td:nth-child(1){width:17%;}
	  .prospect-table th:nth-child(2),.prospect-table td:nth-child(2){width:17%;}
	  .prospect-table th:nth-child(3),.prospect-table td:nth-child(3){width:20%;}
	  .prospect-table th:nth-child(4),.prospect-table td:nth-child(4){width:14%;}
	  .prospect-table th:nth-child(5),.prospect-table td:nth-child(5){width:12%;}
	  .prospect-table th:nth-child(6),.prospect-table td:nth-child(6){width:20%;}
	  .prospect-table td{vertical-align:top;line-height:1.35;overflow-wrap:anywhere;}
	  table.dtable.admin-clubs-table{min-width:980px!important;}
	  .admin-clubs-table th:nth-child(4),
	  .admin-clubs-table th:nth-child(5),
	  .admin-clubs-table th:nth-child(6),
	  .admin-clubs-table td:nth-child(4),
	  .admin-clubs-table td:nth-child(5),
	  .admin-clubs-table td:nth-child(6){white-space:nowrap;width:1%;}
	  table.dtable.prospect-wave-table{min-width:860px!important;}
	  .prospect-wave-table th:nth-child(-n+4),
	  .prospect-wave-table td:nth-child(-n+4){white-space:nowrap;width:1%;}
	  .prospect-wave-table th:last-child,
	  .prospect-wave-table td:last-child{min-width:340px;}
	  table.dtable.prospect-campaign-table{min-width:1120px!important;}
	  .prospect-campaign-table th,
	  .prospect-campaign-table td{overflow-wrap:normal;word-break:normal;}
	  .smtp-status-message{display:block;max-width:100%;color:var(--muted);font-size:.76rem;line-height:1.45;white-space:normal;overflow-wrap:break-word;word-break:normal;}
	  .prospect-table .prospect-main,.prospect-table .prospect-contact{min-width:0;max-width:none;}
	  .prospect-table .prospect-engagement{min-width:0;}
	  .prospect-status-note{display:block;margin-top:8px;padding:8px 9px;border-left:3px solid #d59a2b;border-radius:0 6px 6px 0;background:#fff8e8;color:#6f5823;font-size:.71rem;line-height:1.4;white-space:normal;}
	  .prospect-status-note.error{border-left-color:var(--coral);background:#fff1ee;color:#9d3525;}
	  .prospect-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;}
	  .prospect-metric{display:block;padding:6px 5px;border:1px solid var(--line);border-radius:6px;background:#fbfaf5;text-align:center;}
	  .prospect-metric b{display:block;font-family:var(--font-mono);font-size:.88rem;color:var(--navy);}
	  .prospect-metric small{display:block;margin-top:1px;color:var(--muted);font-size:.59rem;font-weight:800;text-transform:uppercase;}
	  .prospect-wave-label{display:block;margin-top:7px;color:var(--muted);font-size:.7rem;text-align:center;}
	  .prospect-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;width:100%;min-width:0;}
	  .prospect-actions > .btn,.prospect-actions > .btn-cancel{width:100%;min-width:0;min-height:34px;margin:0;padding:7px 8px;font-size:.68rem;}
	  .prospect-actions .prospect-action-wide{grid-column:1/-1;}
	  .prospect-more-actions{grid-column:1/-1;position:relative;}
	  .prospect-more-actions summary{min-height:34px;display:flex;align-items:center;justify-content:center;padding:7px 9px;border:1px solid var(--navy);border-radius:8px;color:var(--navy);background:#fff;font-size:.68rem;font-weight:800;cursor:pointer;list-style:none;}
	  .prospect-more-actions summary::-webkit-details-marker{display:none;}
	  .prospect-more-actions[open] summary{background:#f2f6f4;}
	  .prospect-more-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding-top:6px;}
	  .prospect-more-menu .btn,.prospect-more-menu .btn-cancel{width:100%;min-height:34px;margin:0;padding:7px 8px;font-size:.68rem;}
	  .prospect-more-menu .btn-cancel{grid-column:1/-1;}
	  .prospect-sub{display:block;font-size:.76rem;color:var(--muted);margin-top:3px;line-height:1.35;}
	  .prospect-note-preview{display:block;max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:.76rem;margin-top:4px;}
	  .prospect-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px;}
	  .kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:30px;}
  @media (max-width:850px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
  .kpi{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;}
  .kpi span.label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;}
  .kpi b{display:block;font-family:var(--font-mono);font-size:1.7rem;margin-top:6px;}
  .kpi small{color:var(--muted);font-size:.76rem;}

  .chart-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:24px;}
  .chart-card h4{font-size:.92rem;margin-bottom:4px;}
  .chart-card .sub{font-size:.78rem;color:var(--muted);margin-bottom:14px;display:block;}
  .chart-wrap{position:relative;height:240px;}
  .chart-fallback{position:absolute;inset:0;border:1px dashed rgba(14,42,56,.18);border-radius:12px;background:linear-gradient(180deg,#fff 0%,#fbfaf5 100%);padding:16px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;}
  .chart-fallback-title{font-weight:900;color:var(--navy);font-size:.86rem;}
  .chart-fallback-sub{color:var(--muted);font-size:.76rem;margin-top:4px;line-height:1.35;}
  .chart-fallback-bars{display:flex;align-items:flex-end;gap:9px;height:92px;margin-top:12px;border-bottom:1px solid var(--line);padding:0 4px 8px;}
  .chart-fallback-bar{flex:1;min-width:10px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,var(--coral),var(--navy));opacity:.92;}
  .chart-fallback-bar.zero{height:8px!important;background:#dfe6df;opacity:1;}
  .chart-fallback-labels{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-top:8px;color:var(--muted);font-size:.65rem;text-align:center;}
  .chart-fallback-donut{width:112px;height:112px;border-radius:50%;margin:10px auto;background:conic-gradient(var(--navy) 0 100%);position:relative;box-shadow:inset 0 0 0 12px rgba(255,255,255,.75);}
  .chart-fallback-donut::after{content:"";position:absolute;inset:30px;background:#fff;border-radius:50%;box-shadow:0 0 0 1px var(--line);}
  .chart-fallback-legend{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;color:var(--muted);font-size:.68rem;}
  .chart-fallback-dot{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:4px;vertical-align:-1px;}
  .charts-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
  @media (max-width:850px){.charts-row{grid-template-columns:1fr;}}
  .proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:24px;}
  @media (max-width:850px){.proj-grid{grid-template-columns:1fr;}}
  .proj-card{background:var(--navy);color:#fff;border-radius:var(--radius);padding:18px 20px;}
  .proj-card span.label{font-size:.7rem;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.5px;font-weight:700;}
  .proj-card b{display:block;font-family:var(--font-mono);font-size:1.5rem;color:var(--lime);margin-top:6px;}
  .proj-card small{color:rgba(255,255,255,.55);font-size:.74rem;}

  .club-detail-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:24px;margin-bottom:24px;}
  .club-detail-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:18px;}
  .club-detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 26px;font-size:.88rem;margin-bottom:6px;}
  @media (max-width:700px){.club-detail-grid{grid-template-columns:1fr;}}
  .club-detail-grid dt{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.4px;font-weight:700;}
  .club-detail-grid dd{margin:2px 0 10px;}
  .club-public-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:28px;align-items:stretch;}
  .club-public-photo{min-height:320px;border-radius:8px;overflow:hidden;background:var(--navy-soft);border:1px solid var(--line);}
  .club-public-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .photo-placeholder{height:100%;min-height:inherit;display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,var(--navy),var(--navy-soft));color:var(--lime);position:relative;overflow:hidden;}
  .photo-placeholder::before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.12);border-radius:8px;}
  .photo-placeholder .initials{font-family:var(--font-mono);font-weight:900;font-size:clamp(2.1rem,7vw,4.8rem);letter-spacing:2px;z-index:1;}
  .photo-placeholder.small{min-height:100%;}
  .photo-placeholder.small .initials{font-size:2rem;}
  .season-formula-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
  .season-formula-card{border:1px solid var(--line);border-radius:8px;padding:16px;background:#fff;}
  .season-formula-card h3{font-size:1rem;margin-bottom:8px;}
  .quick-days{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
  .quick-days label{border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:.8rem;cursor:pointer;background:#fff;}
  .quick-days input{margin-right:4px;}
  @media (max-width:760px){
    .club-public-hero{grid-template-columns:1fr;}
    .club-public-photo{min-height:220px;}
    .season-formula-grid{grid-template-columns:1fr;}
    .resa-layout,.public-map-layout,.coach-map-layout{grid-template-columns:1fr!important;}
    .resa-layout aside{position:static!important;top:auto!important;}
    .map-frame,.club-tarif-card{max-width:100%;}
    .dtable{display:block;max-width:100%;overflow-x:auto;font-size:.78rem;-webkit-overflow-scrolling:touch;}
    .dtable th,.dtable td{padding:9px 7px;}
  }
  .back-link{font-size:.84rem;font-weight:700;color:var(--muted);display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;cursor:pointer;}
  .back-link:hover{color:var(--coral);}
  .msg-card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;margin-bottom:12px;}
  .msg-card .top{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:6px;}
  .msg-card .sujet{font-weight:700;font-size:.9rem;}
  .msg-card .meta{font-size:.76rem;color:var(--muted);font-family:var(--font-mono);}
  .msg-card .body{font-size:.86rem;color:var(--ink);margin:6px 0 10px;}

  .toast{
    position:fixed;bottom:24px;right:24px;background:var(--navy);color:var(--white);padding:14px 20px;
    border-radius:10px;font-size:.88rem;font-weight:600;z-index:200;box-shadow:0 14px 30px rgba(0,0,0,.25);
    display:flex;align-items:center;gap:10px;transform:translateY(20px);opacity:0;transition:.25s;
  }
  .toast.show{transform:translateY(0);opacity:1;}
  .toast .dot{width:8px;height:8px;border-radius:50%;background:var(--lime);}

  .modal-overlay{
    position:fixed;inset:0;background:rgba(14,42,56,.55);display:none;align-items:center;justify-content:center;z-index:300;padding:20px;
  }
  .modal-overlay.show{display:flex;}
  .modal-box{background:var(--white);border-radius:var(--radius);padding:30px;max-width:440px;width:100%;position:relative;}
  .modal-box .close{position:absolute;top:14px;right:16px;font-size:1.3rem;color:var(--muted);}
  .modal-success{text-align:center;padding:8px 0 2px;}
  .modal-success .success-mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 16px;background:rgba(197,255,0,.22);color:var(--deep);font-weight:900;font-size:1.7rem;border:1px solid rgba(14,42,56,.1);}
  .modal-success h3{margin-bottom:8px;}
  .modal-success p{color:var(--muted);margin:0 auto 18px;max-width:340px;}
  .empty-state{text-align:center;padding:50px 20px;color:var(--muted);}
  .empty-state .glyph{font-size:2.4rem;margin-bottom:10px;}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  @media (max-width:700px){.form-grid{grid-template-columns:1fr;}}
  .commission-note{
    background:rgba(207,255,92,.15);border:1px solid rgba(14,42,56,.15);border-radius:10px;padding:14px 16px;font-size:.85rem;margin-top:10px;
  }
  .partner-contract{max-width:980px;margin:0 auto;}
  .partner-contract .terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0;}
  .partner-contract .term-card{border:1px solid var(--line);border-radius:8px;padding:16px;background:var(--chalk);}
  .partner-contract .term-card b{display:block;color:var(--navy);margin-bottom:6px;}
  .partner-contract .accept-list{display:grid;gap:10px;margin:18px 0;}
  .partner-contract .accept-line{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:start;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:.9rem;}
  .partner-contract .accept-line input{margin-top:3px;}
  .signature-proof{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0 0;}
  .signature-proof div{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff;}
  .signature-proof small{display:block;color:var(--muted);text-transform:uppercase;font-size:.66rem;font-weight:800;letter-spacing:.4px;margin-bottom:4px;}
  .accordion-item{border-bottom:1px solid var(--line);}
  .accordion-item button.q{
    width:100%;text-align:left;padding:18px 4px;font-weight:700;display:flex;justify-content:space-between;align-items:center;font-size:.96rem;
  }
  .accordion-item .a{display:none;padding:0 4px 18px;color:var(--muted);}
  .accordion-item.open .a{display:block;}
  .accordion-item.open button.q .arrow{transform:rotate(180deg);}
  .arrow{transition:transform .2s;}

  .badge-role{
    display:inline-flex;align-items:center;justify-content:center;min-width:20px;
    font-family:var(--font-mono);font-size:.68rem;background:var(--lime);color:var(--navy);padding:3px 8px;border-radius:999px;font-weight:800;
    text-transform:uppercase;margin-left:8px;line-height:1;
  }

  /* AUTHENTIFICATION */
  .auth-wrap{max-width:440px;margin:0 auto;}
  .auth-tabs{display:flex;gap:6px;background:var(--white);border:1px solid var(--line);border-radius:999px;padding:4px;margin-bottom:24px;}
  .auth-tabs button{flex:1;padding:10px;border-radius:999px;font-weight:700;font-size:.86rem;color:var(--muted);transition:.15s;}
  .auth-tabs button.active{background:var(--navy);color:#fff;}
  .auth-error{
    background:rgba(255,90,60,.1);border:1px solid rgba(255,90,60,.3);color:#b03a22;
    border-radius:8px;padding:10px 14px;font-size:.84rem;margin-bottom:14px;display:none;
  }
  .auth-error.show{display:block;}
  .auth-info{
    background:rgba(207,255,92,.18);border:1px solid rgba(14,42,56,.12);border-radius:8px;
    padding:10px 14px;font-size:.84rem;margin-bottom:14px;
  }
  .auth-code{font-family:var(--font-mono);font-size:1.3rem;letter-spacing:3px;font-weight:700;color:var(--navy);}
  .field input.field-error,.field select.field-error,.field textarea.field-error{
    border-color:var(--coral)!important;background:#FFF5F3;box-shadow:0 0 0 3px rgba(255,90,60,.14);
  }
  .cart-link{position:relative;}
  .cart-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--coral);color:#fff;font-size:.68rem;font-weight:800;margin-left:6px;}
  .checkout-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:18px;}
  .checkout-step{border:1px solid var(--line);border-radius:8px;padding:10px;background:#fff;font-size:.76rem;font-weight:800;color:var(--muted);}
  .checkout-step.active{background:var(--navy);color:#fff;border-color:var(--navy);}
  .checkout-step.done{background:rgba(46,160,67,.10);color:#1b7a32;border-color:rgba(46,160,67,.25);}
  @media(max-width:760px){.checkout-steps{grid-template-columns:1fr 1fr;}.checkout-step{font-size:.72rem;}}
  .risk-list{display:grid;gap:10px;}
  .risk-item{border:1px solid var(--line);border-left:4px solid var(--coral);border-radius:8px;padding:12px;background:#fff;display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;}
  .risk-item.ok{border-left-color:#1b7a32;}
  .client-compact-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:18px;}
  @media(max-width:800px){.client-compact-grid{grid-template-columns:1fr;}}
  .range-control{
    background:linear-gradient(180deg,#fff,#fbfaf5);
    border:1px solid rgba(14,42,56,.12);
    border-radius:12px;
    padding:14px 15px 13px;
    box-shadow:0 12px 28px rgba(14,42,56,.07);
  }
  .range-control:hover{border-color:rgba(14,42,56,.2);box-shadow:0 14px 32px rgba(14,42,56,.09);}
  .range-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;}
  .range-title{font-size:.68rem;text-transform:uppercase;letter-spacing:.55px;font-weight:900;color:var(--navy);}
  .range-value{
    font-family:var(--font-mono);font-size:.76rem;font-weight:900;color:var(--navy);
    background:var(--lime);border:1px solid rgba(14,42,56,.12);border-radius:999px;
    padding:5px 10px;min-width:62px;text-align:center;box-shadow:0 5px 12px rgba(207,255,92,.25);
  }
  .range-track-wrap{position:relative;height:32px;display:flex;align-items:center;--thumb-size:22px;--track-height:6px;}
  .range-track-wrap::before{
    content:"";position:absolute;left:calc(var(--thumb-size) / 2);right:calc(var(--thumb-size) / 2);top:50%;
    height:var(--track-height);transform:translateY(-50%);border-radius:999px;
    background:linear-gradient(180deg,rgba(14,42,56,.13),rgba(14,42,56,.07));
    box-shadow:inset 0 1px 2px rgba(14,42,56,.12);
  }
  .range-track-wrap::after{
    content:"";position:absolute;left:calc(var(--thumb-size) / 2);top:50%;height:var(--track-height);
    width:calc((100% - var(--thumb-size)) * var(--range-ratio, .1666));
    transform:translateY(-50%);border-radius:999px;
    background:linear-gradient(90deg,var(--coral),#ff8a73 48%,var(--lime));
    pointer-events:none;box-shadow:0 4px 10px rgba(255,90,60,.16);
  }
  .range-control input[type="range"]{appearance:none;position:relative;z-index:1;width:100%;height:32px;background:transparent;outline:none;display:block;margin:0;}
  .range-control input[type="range"]::-webkit-slider-runnable-track{height:var(--track-height);background:transparent;border-radius:999px;}
  .range-control input[type="range"]::-webkit-slider-thumb{appearance:none;width:var(--thumb-size);height:var(--thumb-size);border-radius:50%;background:radial-gradient(circle at 36% 34%,#fff 0 10%,#ff7a62 11%,var(--coral) 72%);border:3px solid var(--white);box-shadow:0 6px 16px rgba(255,90,60,.3),0 2px 8px rgba(14,42,56,.24);cursor:pointer;margin-top:calc((var(--track-height) - var(--thumb-size)) / 2);transition:transform .14s,box-shadow .14s;}
  .range-control input[type="range"]:focus-visible::-webkit-slider-thumb,
  .range-control input[type="range"]:hover::-webkit-slider-thumb{transform:scale(1.07);box-shadow:0 7px 18px rgba(255,90,60,.36),0 2px 10px rgba(14,42,56,.28);}
  .range-control input[type="range"]::-moz-range-track{height:var(--track-height);background:transparent;border-radius:999px;}
  .range-control input[type="range"]::-moz-range-progress{height:var(--track-height);background:transparent;}
  .range-control input[type="range"]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--coral);border:3px solid var(--white);box-shadow:0 6px 16px rgba(255,90,60,.3),0 2px 8px rgba(14,42,56,.24);cursor:pointer;}
  .range-ticks{display:grid;grid-template-columns:repeat(4,1fr);margin-top:4px;font-size:.63rem;color:rgba(14,42,56,.5);font-family:var(--font-mono);}
  .range-ticks span{position:relative;text-align:center;padding-top:8px;}
  .range-ticks span::before{content:"";position:absolute;top:0;left:50%;width:4px;height:4px;border-radius:50%;background:rgba(14,42,56,.24);transform:translateX(-50%);}
  .auth-link{font-size:.84rem;color:var(--muted);text-align:center;display:block;margin-top:16px;}
  .auth-link a{color:var(--coral);font-weight:700;}
  .forgot-link{display:block;text-align:right;font-size:.8rem;color:var(--muted);margin:-6px 0 16px;}
  .remember-check{display:flex;align-items:center;gap:8px;font-size:.84rem;color:var(--muted);margin-bottom:12px;cursor:pointer;}
  .remember-check input{width:16px;height:16px;accent-color:var(--coral);cursor:pointer;}
  .forgot-link:hover{color:var(--coral);}
  .client-preferences-panel{
    display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px;
  }
  @media (max-width:640px){
    body.has-mobile-sales-dock{padding-bottom:82px;}
    .wrap{padding:0 16px;}
    section{padding:32px 0;}
    .section-tight{padding:28px 0;}
    .nav-row{padding:8px 14px;gap:10px;}
    .logo{font-size:.98rem;}
    .nav-right{gap:6px;}
    .nav-right .btn{padding:8px 10px;font-size:.75rem;}
    .hero{padding:34px 0 28px;}
    .hero h1{font-size:2.1rem;}
    .hero p.lead{font-size:.98rem;}
    .hero-ctas .btn{width:100%;}
    .hero-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;text-align:center;margin-top:16px;margin-bottom:0;}
    .hero-stats div{min-width:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);border-radius:10px;padding:10px 5px;}
    .hero-stats b{font-size:1.05rem;line-height:1.05;}
    .hero-stats span{display:block;font-size:.57rem;line-height:1.15;}
    .home-club-cta{width:100%;margin:0 auto;padding:24px 16px;border-radius:12px;}
    .home-club-cta h2{font-size:1.55rem;}
    .home-club-cta .btn{width:100%;}
    .responsive-two-col,.contact-layout{grid-template-columns:1fr!important;gap:22px;}
    .coach-partner-grid{grid-template-columns:1fr!important;gap:22px;}
    .coach-partner-grid .panel{order:2;}
    .coach-partner-grid .partner-copy{order:1;text-align:left;}
    .contact-layout .panel{order:1;}
    .contact-layout .contact-copy{order:2;}
    .affiliation-benefits-grid{grid-template-columns:1fr!important;}
    .board{padding:12px;border-radius:10px;min-height:420px;}
    .flap-row{grid-template-columns:1fr;gap:3px;font-size:.78rem;}
    .flap-row .places{text-align:left;}
    .page-banner{padding:30px 0 26px;}
    .page-banner h1{font-size:1.8rem;}
    .page-banner .btn{width:100%;}
    .panel,.club-detail-card,.chart-card,.kpi{padding:16px;}
    .partner-contract .terms-grid{grid-template-columns:1fr;}
    .signature-proof{grid-template-columns:1fr 1fr;}
    .client-preferences-panel{align-items:stretch;}
    .client-preferences-panel .btn{width:100%;}
    .seances-location-grid{grid-template-columns:1fr;gap:12px;}
    .seances-location-grid .btn{width:100%;}
    .seances-map-shell{padding:14px;}
    .seances-map-shell .map-frame{height:210px;}
    .seances-map-shell.expanded .map-frame{height:440px;}
    .seances-side-column{position:static;order:1;}
    .map-frame{height:260px;}
    .reservation-results{order:2;}
    .reservation-search-panel{order:2;}
    .reservation-fast-panel{grid-template-columns:1fr;padding:16px;border-radius:12px;}
    .reservation-fast-panel .btn{width:100%;}
    .fast-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
    .fast-metric{min-width:0;padding:9px 10px;}
    .booking-action-grid{grid-template-columns:1fr;}
    .booking-action-grid .btn-coral{order:1;}
    .booking-action-grid .btn-outline{order:2;}
    .slot-card{padding:16px;gap:12px;}
    .slot-price{text-align:left;}
    .slot-price .btn{width:100%;}
    table.public-booking-table,
    table.public-booking-table thead,
    table.public-booking-table tbody,
    table.public-booking-table tr,
    table.public-booking-table td{display:block;width:100%;}
    table.public-booking-table thead{display:none;}
    table.public-booking-table tr{
      border:1px solid var(--line);
      border-radius:12px;
      padding:12px;
      margin-bottom:12px;
      background:#fff;
      box-shadow:0 10px 22px rgba(14,42,56,.06);
    }
    table.public-booking-table td{
      border-bottom:1px solid rgba(14,42,56,.08);
      padding:9px 0;
      white-space:normal;
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:flex-start;
    }
    table.public-booking-table td::before{
      content:attr(data-label);
      font-family:var(--font-mono);
      font-size:.67rem;
      text-transform:uppercase;
      letter-spacing:.4px;
      color:var(--muted);
      flex:0 0 82px;
    }
    table.public-booking-table td:last-child{border-bottom:0;padding-bottom:0;display:block;}
    table.public-booking-table td:last-child::before{display:none;}
    table.public-booking-table .btn{width:100%;}
    .mobile-sales-dock.visible{
      position:fixed;
      left:12px;
      right:12px;
      bottom:12px;
      z-index:80;
      display:grid;
      grid-template-columns:1.4fr .9fr;
      gap:8px;
      padding:9px;
      border-radius:18px;
      background:rgba(14,42,56,.96);
      border:1px solid rgba(255,255,255,.14);
      box-shadow:0 18px 40px rgba(0,0,0,.35);
      backdrop-filter:blur(12px);
    }
    .mobile-sales-dock .dock-primary,
    .mobile-sales-dock .dock-secondary{
      min-height:46px;
      border-radius:14px;
      display:flex;
      align-items:center;
      justify-content:center;
      gap:8px;
      font-weight:900;
      font-size:.84rem;
      text-decoration:none;
      border:0;
      cursor:pointer;
    }
    .mobile-sales-dock .dock-primary{background:var(--coral);color:#fff;}
    .mobile-sales-dock .dock-secondary{background:#fff;color:var(--navy);}
    .mobile-sales-dock .cart-count{margin-left:0;background:var(--lime);color:var(--navy);}
    .admin-section{padding:22px 0 44px;}
    .admin-section .wrap{padding:0 12px;}
    .admin-dash-grid{gap:16px;}
    .admin-nav{
      display:grid!important;
      grid-template-columns:repeat(2,minmax(0,1fr));
      gap:8px;
      overflow:visible;
      padding:12px;
      position:static!important;
      top:auto!important;
      border-radius:12px;
      box-shadow:0 10px 26px rgba(14,42,56,.08);
    }
    .admin-nav a{
      white-space:normal!important;
      margin:0!important;
      min-height:46px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:6px;
      padding:9px 9px;
      font-size:.74rem;
      line-height:1.2;
      border:1px solid rgba(14,42,56,.08);
      background:#fff;
    }
    .admin-nav a.active{background:var(--navy);border-color:var(--navy);color:#fff;}
    .admin-content{min-width:0;}
    .admin-content > h3{font-size:1rem!important;margin-top:20px!important;}
    .admin-section .panel,.admin-section .chart-card,.admin-section .club-detail-card{
      padding:14px;
      border-radius:12px;
      margin-bottom:14px!important;
    }
    .admin-section .panel[style*="display:flex"],
    .admin-section div[style*="display:flex"]{
      max-width:100%;
    }
    .admin-section .kpi-grid{
      grid-template-columns:1fr;
      gap:10px;
      margin-bottom:16px!important;
    }
    .admin-section .kpi{
      padding:14px;
      border-radius:12px;
    }
    .admin-section .kpi b{
      font-size:1.28rem;
      overflow-wrap:anywhere;
    }
    .admin-section .charts-row{
      gap:12px;
      margin-bottom:12px;
    }
    .admin-section .chart-wrap{height:210px;}
    .admin-section .map-frame{height:260px!important;}
    .admin-section .admin-table-scroll{
      margin:8px 0 16px;
      border-radius:12px;
    }
    .admin-section .admin-table-scroll::before{
      content:"Faites glisser le tableau horizontalement";
      display:block;
      padding:8px 10px;
      background:#fbfaf5;
      border-bottom:1px solid var(--line);
      color:var(--muted);
      font-size:.68rem;
      font-family:var(--font-mono);
    }
    .admin-section table.dtable,
    .admin-section .admin-table-scroll table.dtable{
      display:table!important;
      min-width:680px;
      font-size:.76rem;
      overflow:visible;
    }
    .admin-section table.dtable th,
    .admin-section table.dtable td{
      padding:9px 8px;
      white-space:normal;
      vertical-align:top;
    }
    .admin-section table.dtable th{white-space:nowrap;}
	    .admin-section .btn-sm,
	    .admin-section .btn-cancel{
	      min-height:34px;
	      padding:8px 10px;
	      font-size:.72rem;
	    }
	    .admin-section .prospect-tools{
	      display:grid;
	      grid-template-columns:1fr;
	      gap:10px;
	    }
	    .admin-section .prospect-search{
	      min-width:0;
	      display:grid;
	      grid-template-columns:1fr 1fr;
	    }
	    .admin-section .prospect-search input{
	      grid-column:1/-1;
	    }
	    .admin-section .prospect-search .btn{width:100%;}
	    .admin-section .prospect-list-head{display:block;}
	    .admin-section .prospect-pagination{justify-content:space-between;margin-top:12px;}
	    .admin-section .prospect-filter-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;}
	    .admin-section .prospect-filter-row .chip{flex:0 0 auto;}
	    .admin-section .prospect-import-audit{align-items:stretch;}
	    .admin-section .prospect-import-audit-actions{display:grid;grid-template-columns:1fr;width:100%;}
	    .admin-section .prospect-import-audit-actions .btn{width:100%;}
	    .admin-section .prospect-table-wrap{overflow:visible;border:0;box-shadow:none;background:transparent;}
	    .admin-section .prospect-table-wrap::before{display:none;}
	    .admin-section table.dtable.prospect-table,
	    .admin-section table.dtable.prospect-table tbody,
	    .admin-section table.dtable.prospect-table tr,
	    .admin-section table.dtable.prospect-table td{
	      display:block!important;
	      width:100%!important;
	      min-width:0!important;
	    }
	    .admin-section table.dtable.prospect-table{font-size:.78rem;table-layout:auto;}
	    .admin-section table.dtable.prospect-table thead{display:none;}
	    .admin-section table.dtable.prospect-table tr{
	      margin-bottom:12px;
	      padding:13px;
	      border:1px solid var(--line);
	      border-radius:12px;
	      background:#fff;
	      box-shadow:0 8px 20px rgba(14,42,56,.05);
	    }
	    .admin-section table.dtable.prospect-table td{
	      padding:8px 0!important;
	      border:0!important;
	    }
	    .admin-section table.dtable.prospect-table td + td{border-top:1px solid rgba(14,42,56,.08)!important;}
	    .admin-section table.dtable.prospect-table td::before{
	      content:attr(data-label);
	      display:block;
	      margin-bottom:5px;
	      color:var(--muted);
	      font-family:var(--font-mono);
	      font-size:.63rem;
	      font-weight:800;
	      text-transform:uppercase;
	    }
	    .admin-section .prospect-actions{min-width:0;grid-template-columns:1fr 1fr;}
	    .admin-section .prospect-metrics{grid-template-columns:repeat(4,minmax(0,1fr));}
    .admin-section .form-grid{grid-template-columns:1fr!important;gap:10px;}
    .admin-section .field{margin-bottom:12px;}
    .admin-section .field input,
    .admin-section .field select,
    .admin-section .field textarea{font-size:16px;}
    .admin-section pre{max-width:100%;font-size:.72rem!important;}
    .dash-side:not(.admin-nav){display:flex;gap:8px;overflow-x:auto;padding:10px;position:sticky;top:56px;z-index:20;}
    .dash-side:not(.admin-nav) a{white-space:nowrap;margin-bottom:0;flex:0 0 auto;}
    .kpi-grid{grid-template-columns:1fr;}
    .modal-box{max-height:86vh;overflow:auto;padding:22px;}
    .toast{left:16px;right:16px;bottom:16px;}
    footer.site .foot-grid{grid-template-columns:1fr;}
    footer.site{text-align:center;}
    footer.site .logo{justify-content:center;}
    footer.site p{margin-left:auto;margin-right:auto;}
    .foot-bottom{display:block;text-align:center;padding-top:30px;margin-top:34px;line-height:1.45;}
    .foot-pro-links{display:block;margin-top:14px;}
  }

  /* RESPONSIVE POLISH — garde-fous globaux pour éviter les chevauchements */
  #app *, .modal-box *, header.site *, footer.site *{min-width:0;}
  input,select,textarea,button{max-width:100%;}
  .panel,.vcard,.kpi,.chart-card,.club-detail-card,.msg-card,.step,.season-formula-card{
    overflow-wrap:anywhere;
  }
  .btn,.btn-sm,.btn-cancel,.chip{
    line-height:1.15;
    text-align:center;
  }
  .btn{min-height:40px;}
  .btn-sm,.btn-cancel{min-height:34px;}
  .form-grid > *,
  .cards3 > *,
  .kpi-grid > *,
  .dash-grid > *,
  .charts-row > *,
  .proj-grid > *,
  .resa-layout > *,
  .responsive-two-col > *,
  .contact-layout > *{min-width:0;}
  .field input,.field select,.field textarea{min-height:42px;}
  .field textarea{line-height:1.45;}
  .panel > :last-child,
  .vcard > :last-child,
  .kpi > :last-child,
  .chart-card > :last-child,
  .club-detail-card > :last-child{margin-bottom:0;}

  .modal-overlay{
    padding:clamp(12px,3vw,28px);
    overflow-y:auto;
    align-items:flex-start;
  }
  .modal-box{
    width:min(560px,100%);
    max-width:min(560px,100%);
    max-height:calc(100dvh - 32px);
    overflow:auto;
    margin:auto;
    padding:34px;
    padding-top:54px;
    box-shadow:0 26px 70px rgba(14,42,56,.28);
  }
  .modal-box .close{
    top:12px;
    right:12px;
    width:38px;
    height:38px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:#fff;
    border:1px solid var(--line);
    color:var(--navy);
    font-size:1.35rem;
    line-height:1;
    box-shadow:0 8px 18px rgba(14,42,56,.10);
    z-index:5;
  }
  .modal-box .close:hover{background:var(--navy);color:#fff;}
  .modal-box h1,.modal-box h2,.modal-box h3{padding-right:42px;}
  .modal-success h3{padding-right:0;}

  .dtable-scroll,.admin-table-scroll{max-width:100%;}
  table.dtable{table-layout:auto;}
  table.dtable th,table.dtable td{
    vertical-align:top;
    overflow-wrap:anywhere;
  }
  .admin-content .panel,
  .admin-content .chart-card,
  .admin-content .club-detail-card{max-width:100%;}
  .admin-content [style*="display:flex"],
  .admin-content [style*="display: flex"]{min-width:0;}

  @media (min-width:851px){
    .dash-side{
      position:sticky;
      top:78px;
      max-height:calc(100dvh - 100px);
      overflow:auto;
    }
    .dash-side a{line-height:1.25;}
    .admin-dash-grid{grid-template-columns:minmax(210px,240px) minmax(0,1fr);}
  }

  @media (max-width:900px){
    .wrap{max-width:100%;}
    .panel,.vcard,.kpi,.chart-card,.club-detail-card,.msg-card,.step{
      border-radius:12px;
    }
    .cards3,.steps,.pricing-grid,.season-formula-grid{gap:16px;}
    .home-reviews-grid{gap:16px;}
    .club-detail-head,
    .client-preferences-panel,
    .reservation-fast-panel,
    .msg-card .top{
      align-items:stretch;
    }
    .club-detail-head .btn,
    .client-preferences-panel .btn,
    .msg-card .btn{
      width:100%;
    }
    .dash-grid{
      grid-template-columns:1fr!important;
      gap:18px;
    }
    .dash-side{
      width:100%;
      max-width:100%;
      display:flex;
      gap:8px;
      overflow-x:auto;
      overflow-y:hidden;
      padding:10px;
      position:sticky;
      top:56px;
      z-index:25;
      border-radius:12px;
      scroll-snap-type:x proximity;
      -webkit-overflow-scrolling:touch;
    }
    .dash-side a{
      flex:0 0 auto;
      margin:0;
      white-space:nowrap;
      scroll-snap-align:start;
      min-height:40px;
      display:inline-flex;
      align-items:center;
      justify-content:center;
    }
    .admin-nav{
      position:static!important;
      overflow:visible!important;
      display:grid!important;
      grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .admin-nav a{
      white-space:normal!important;
      justify-content:center;
      text-align:center;
    }
  }

  @media (max-width:640px){
    body{font-size:15px;}
    .wrap{padding-left:16px;padding-right:16px;}
    .nav-row{min-height:56px;}
    .page-banner .wrap{gap:10px;}
    .page-banner p{font-size:.92rem;}
    .section-head{margin-bottom:22px;}
    .section-head p{font-size:.94rem;}
    .panel,.vcard,.kpi,.chart-card,.club-detail-card,.msg-card,.step{
      padding:16px;
    }
    .cards3,.steps,.kpi-grid,.charts-row,.proj-grid,.form-grid{
      gap:12px!important;
    }
    .field{margin-bottom:12px;}
    .field input,.field select,.field textarea{
      font-size:16px;
      min-height:44px;
      padding:11px 12px;
    }
    .btn{
      width:100%;
      white-space:normal;
      padding-left:14px;
      padding-right:14px;
    }
    .btn-sm{width:auto;}
    .hero-ctas .btn,
    .slot-price .btn,
    .reservation-fast-panel .btn,
    .auth-wrap .btn,
    .modal-box .btn{
      width:100%;
    }
    .fast-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;}
    .fast-metric{min-width:0;}
    .checkout-steps{grid-template-columns:1fr;gap:7px;}
    .checkout-step{padding:9px 10px;}
    .modal-overlay{padding:10px;}
    .modal-box{
      width:100%;
      max-width:100%;
      max-height:calc(100dvh - 20px);
      border-radius:14px;
      padding:22px;
      padding-top:56px;
    }
    .modal-box .close{
      top:10px;
      right:10px;
      width:40px;
      height:40px;
    }
    .modal-box h1,.modal-box h2,.modal-box h3{padding-right:0;}
    .modal-box > h3:first-of-type{padding-right:42px;}
    .admin-nav{grid-template-columns:1fr!important;}
    .admin-nav a{min-height:42px;}
    .admin-messaging-grid{grid-template-columns:1fr!important;}
    table.dtable{
      display:block;
      width:100%;
      max-width:100%;
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
    }
    table.dtable th,table.dtable td{white-space:normal;}
    .admin-section table.dtable,
    .admin-section .admin-table-scroll table.dtable{
      min-width:720px;
    }
    .prospect-actions{min-width:220px;}
    .signature-proof{grid-template-columns:1fr;}
    .partner-contract .accept-line{font-size:.84rem;}
    .foot-bottom{margin-bottom:8px;}
  }

  /* Finition smartphone — évite les chevauchements sur les petits écrans */
  @media (max-width:640px){
    #app,
    #app section,
    #app .wrap,
    #app .panel,
    #app .club-detail-card,
    #app .chart-card,
    #app .modal-box{
      max-width:100%;
      overflow-x:hidden;
    }
    #app h1,
    #app h2,
    #app h3,
    #app h4{
      line-height:1.12;
      overflow-wrap:anywhere;
      text-wrap:balance;
    }
    #app p,
    #app label,
    #app td,
    #app th,
    #app a,
    #app button,
    #app span,
    #app b,
    #app small{
      overflow-wrap:anywhere;
      word-break:normal;
    }
    .page-banner h1{font-size:1.65rem;}
    .page-banner p{max-width:100%;}
    .section-head h2{font-size:1.55rem;}
    .nav-row{
      display:grid;
      grid-template-columns:minmax(0,1fr) auto;
      align-items:center;
    }
    .logo{min-width:0;overflow:hidden;}
    .logo .brand-text{max-width:170px;overflow:hidden;text-overflow:ellipsis;}
    .nav-right{grid-column:2;justify-content:flex-end;min-width:0;}
    .cart-link{display:none;}
    #login-btn{padding:8px 10px;font-size:.72rem;}
    .burger{min-width:36px;text-align:right;}
    nav.main-links{padding-left:16px;padding-right:16px;}
    nav.main-links a{
      white-space:normal;
      line-height:1.25;
      min-height:42px;
      display:flex;
      align-items:center;
    }
    .hero h1{font-size:1.95rem;}
    .hero p.lead{max-width:100%;}
    .hero-stats{
      grid-template-columns:1fr;
      gap:8px;
    }
    .hero-stats div{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:10px;
      text-align:left;
      padding:10px 12px;
    }
    .hero-stats b{flex:0 0 auto;}
    .hero-stats span{font-size:.72rem;text-align:right;}
    .home-review-top{align-items:center;}
    .home-review-card{min-height:auto;}
    .home-review-card p{font-size:.92rem;}
    .club-tarif-card,
    .slot-card,
    .msg-card,
    .season-formula-card,
    .price-card,
    .home-review-card{
      width:100%;
      max-width:100%;
    }
    .club-tarif-head{
      display:grid;
      grid-template-columns:1fr;
      align-items:start;
      gap:12px;
    }
    .club-tarif-head > div{
      width:100%;
      min-width:0;
    }
    .club-tarif-head > div:last-child{
      justify-content:stretch!important;
      display:grid!important;
      grid-template-columns:1fr;
      gap:8px!important;
    }
    .club-tarif-head [style*="margin-left:48px"]{
      margin-left:0!important;
      margin-top:6px;
      display:block;
      line-height:1.4;
    }
    .club-tarif-card .btn,
    .club-tarif-card .btn-sm,
    .slot-card .btn,
    .slot-card .btn-sm,
    .price-card .btn,
    .season-formula-card .btn{
      width:100%;
    }
    .slot-card{
      grid-template-columns:1fr!important;
    }
    .slot-card .slot-price{
      width:100%;
      text-align:left!important;
    }
    .slot-badge{
      width:40px!important;
      height:40px!important;
      flex:0 0 40px;
    }
    .seances-side-column{
      width:100%;
      max-width:100%;
    }
    .seances-map-head{
      display:grid;
      grid-template-columns:1fr;
      gap:10px;
    }
    .seances-map-head .btn{
      width:100%;
    }
    .seances-side-column .seances-map-shell .map-frame{
      height:230px;
    }
    .seances-side-column .seances-map-shell.expanded .map-frame{
      height:min(78vh,520px);
    }
    .range-control{
      min-width:0;
    }
    .range-ticks{
      font-size:.58rem;
    }
    .chip-row{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }
    .chip{
      width:100%;
      min-height:36px;
      white-space:normal;
      display:flex;
      align-items:center;
      justify-content:center;
    }
    .responsive-two-col,
    .club-detail-grid,
    .pricing-grid,
    .season-formula-grid,
    .home-reviews-grid,
    .cards3,
    .steps,
    .form-grid,
    .checkout-steps,
    .charts-row,
    .proj-grid,
    .kpi-grid,
    .fast-metrics{
      grid-template-columns:1fr!important;
    }
    .panel [style*="display:flex"],
    .club-detail-card [style*="display:flex"],
    .modal-box [style*="display:flex"],
    .admin-content [style*="display:flex"]{
      flex-wrap:wrap!important;
      max-width:100%;
    }
    .panel [style*="flex:0 0"],
    .club-detail-card [style*="flex:0 0"],
    .modal-box [style*="flex:0 0"],
    .admin-content [style*="flex:0 0"]{
      flex:1 1 auto!important;
    }
    #app [style*="width:132px"],
    #app [style*="width:120px"],
    #app [style*="width:100px"],
    #app [style*="width:76px"]{
      max-width:100%!important;
    }
    .panel [style*="justify-content:space-between"],
    .club-detail-card [style*="justify-content:space-between"],
    .modal-box [style*="justify-content:space-between"],
    .admin-content [style*="justify-content:space-between"]{
      align-items:stretch!important;
    }
    .panel [style*="display:grid"],
    .modal-box [style*="display:grid"],
    .admin-content [style*="display:grid"]{
      max-width:100%;
    }
    table.public-booking-table td{
      display:block;
    }
    table.public-booking-table td::before{
      display:block;
      margin-bottom:4px;
      flex:initial;
    }
    table.public-booking-table td .btn,
    table.public-booking-table td .btn-sm{
      width:100%;
      margin-top:4px;
    }
    .dtable-scroll,
    .admin-table-scroll{
      overflow-x:auto;
      -webkit-overflow-scrolling:touch;
    }
    .admin-section .wrap{padding-left:10px;padding-right:10px;}
    .admin-section .panel,
    .admin-section .chart-card,
    .admin-section .club-detail-card{
      overflow:hidden;
    }
    .admin-section .btn,
    .admin-section .btn-sm,
    .admin-section .btn-cancel{
      white-space:normal;
      line-height:1.15;
    }
    .admin-section .prospect-search{
      grid-template-columns:1fr!important;
    }
    .admin-section [style*="max-height"]{
      max-height:65vh!important;
    }
    .admin-section .prospect-search .btn,
    .admin-section .prospect-tools .btn{
      width:100%;
    }
    .modal-box{
      overscroll-behavior:contain;
    }
    .modal-box .field{
      width:100%;
    }
    .modal-box table.dtable{
      min-width:620px;
    }
    .toast{
      left:12px;
      right:12px;
      width:auto;
      max-width:none;
      align-items:flex-start;
    }
  }

  @media (max-width:420px){
    .wrap{padding-left:14px;padding-right:14px;}
    .logo .brand-text{max-width:142px;}
    #login-btn{display:none;}
    .hero h1{font-size:1.75rem;}
    .page-banner h1{font-size:1.48rem;}
    .section-head h2{font-size:1.38rem;}
    .panel,
    .club-detail-card,
    .chart-card,
    .kpi,
    .msg-card,
    .step,
    .home-review-card{
      padding:14px;
    }
    .chip-row{
      grid-template-columns:1fr;
    }
    .home-review-top{
      align-items:flex-start;
    }
    .home-review-stars{
      font-size:.82rem;
    }
    .signature-proof{
      grid-template-columns:1fr!important;
    }
    .mobile-sales-dock.visible{
      grid-template-columns:1fr;
    }
  }

  /* Administration : navigation compacte et contenu lisible sur tous les écrans */
  .admin-mobile-nav{display:none;}
  .admin-page-banner{padding:30px 0 28px;}
  .admin-page-banner .wrap,
  .admin-section .admin-dash-grid{
    width:100%;
    max-width:1600px;
  }
  .admin-content .admin-table-scroll{
    width:100%;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    -webkit-overflow-scrolling:touch;
    border-radius:10px;
  }
  .admin-content .admin-table-scroll > table{margin-bottom:0;}
  .admin-content table.dtable{min-width:900px;}
  .admin-content table.dtable th{
    white-space:nowrap;
    overflow-wrap:normal;
    word-break:normal;
  }
  .admin-content table.dtable td{
    overflow-wrap:normal;
    word-break:normal;
  }
  .admin-content table.dtable .badge-role,
  .admin-content table.dtable .btn,
  .admin-content table.dtable .btn-sm,
  .admin-content table.dtable .btn-cancel{
    white-space:nowrap;
  }
  .admin-content table.dtable.prospect-campaign-table{
    width:1150px!important;
    min-width:1150px!important;
    table-layout:fixed;
  }
  .admin-content .prospect-campaign-table th,
  .admin-content .prospect-campaign-table td{
    white-space:normal;
    overflow-wrap:normal;
    word-break:normal;
    vertical-align:top;
  }
  .admin-content .prospect-campaign-table th:nth-child(1),
  .admin-content .prospect-campaign-table td:nth-child(1){width:80px;white-space:nowrap;}
  .admin-content .prospect-campaign-table th:nth-child(2),
  .admin-content .prospect-campaign-table td:nth-child(2){width:150px;}
  .admin-content .prospect-campaign-table th:nth-child(3),
  .admin-content .prospect-campaign-table td:nth-child(3){width:190px;}
  .admin-content .prospect-campaign-table th:nth-child(4),
  .admin-content .prospect-campaign-table td:nth-child(4){width:220px;overflow-wrap:anywhere;}
  .admin-content .prospect-campaign-table th:nth-child(5),
  .admin-content .prospect-campaign-table td:nth-child(5){width:150px;}
  .admin-content .prospect-campaign-table th:nth-child(6),
  .admin-content .prospect-campaign-table td:nth-child(6){width:120px;}
  .admin-content .prospect-campaign-table th:nth-child(7),
  .admin-content .prospect-campaign-table td:nth-child(7){width:240px;}
  .admin-content .prospect-campaign-table .status-pill{
    max-width:none;
    white-space:nowrap;
  }
  .admin-section-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    width:100%;
    min-height:42px;
    margin:26px 0 12px;
    padding:0 2px;
  }
  .admin-section-head:first-child{margin-top:0;}
  .admin-section-head > div{min-width:0;}
  .admin-section-head h2,
  .admin-section-head h3,
  .admin-section-head h4{margin:0;}
  .admin-section-head p{margin:4px 0 0;}
  .admin-section-head .btn,
  .admin-section-head .btn-sm,
  .admin-section-head .btn-cancel{
    flex:0 0 auto;
    width:auto;
    max-width:min(100%,360px);
    margin:0;
    white-space:normal;
  }
  .prospect-command-panel{
    margin-top:18px;
    padding-top:16px;
    border-top:1px solid var(--line);
  }
  .prospect-command-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    margin-bottom:12px;
  }
  .prospect-command-head h3{font-size:1rem;margin:0 0 3px;}
  .prospect-command-head p{font-size:.82rem;color:var(--muted);margin:0;line-height:1.45;}
  .prospect-command-bar{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
    gap:9px;
    width:100%;
  }
  .prospect-command-bar .btn,
  .prospect-command-bar .btn-sm{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:42px;
    margin:0;
    padding:9px 12px;
    white-space:normal;
    text-align:center;
    line-height:1.25;
  }
  .prospect-command-bar .btn[disabled]{opacity:.48;cursor:not-allowed;}
  .prospect-language-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:12px;
    margin:18px 0;
  }
  .prospect-language-choice{
    display:flex;
    align-items:flex-start;
    gap:12px;
    width:100%;
    min-height:116px;
    padding:18px;
    border:1px solid var(--line);
    border-radius:8px;
    background:#fff;
    color:var(--ink);
    text-align:left;
    cursor:pointer;
    transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
  }
  .prospect-language-choice:hover,
  .prospect-language-choice:focus-visible{
    border-color:var(--coral);
    box-shadow:0 8px 24px rgba(14,42,56,.1);
    transform:translateY(-1px);
    outline:none;
  }
  .prospect-language-choice.recommended{border-color:rgba(255,90,60,.58);}
  .prospect-language-flag{font-size:1.55rem;line-height:1;flex:0 0 auto;}
  .prospect-language-choice strong{display:block;font-size:1rem;margin-bottom:5px;}
  .prospect-language-choice small{display:block;color:var(--muted);line-height:1.45;}

  @media (min-width:901px){
    .admin-section .admin-dash-grid{
      grid-template-columns:210px minmax(0,1fr)!important;
      gap:16px!important;
      padding-left:18px;
      padding-right:18px;
    }
    .admin-page-banner .wrap{
      padding-left:18px;
      padding-right:18px;
    }
    .admin-content table.dtable.prospect-campaign-table{
      width:100%!important;
      min-width:0!important;
    }
    .admin-content .prospect-campaign-table th:nth-child(1),
    .admin-content .prospect-campaign-table td:nth-child(1){width:7%;}
    .admin-content .prospect-campaign-table th:nth-child(2),
    .admin-content .prospect-campaign-table td:nth-child(2){width:13%;}
    .admin-content .prospect-campaign-table th:nth-child(3),
    .admin-content .prospect-campaign-table td:nth-child(3){width:17%;}
    .admin-content .prospect-campaign-table th:nth-child(4),
    .admin-content .prospect-campaign-table td:nth-child(4){width:20%;}
    .admin-content .prospect-campaign-table th:nth-child(5),
    .admin-content .prospect-campaign-table td:nth-child(5){width:14%;}
    .admin-content .prospect-campaign-table th:nth-child(6),
    .admin-content .prospect-campaign-table td:nth-child(6){width:11%;}
    .admin-content .prospect-campaign-table th:nth-child(7),
    .admin-content .prospect-campaign-table td:nth-child(7){width:18%;}
  }

  @media (max-width:1100px){
    .admin-page-banner{padding:22px 0 20px;}
    .admin-page-banner .wrap{align-items:stretch!important;}
    .admin-page-banner .btn{width:100%;}
    .admin-section .admin-dash-grid{grid-template-columns:minmax(0,1fr)!important;gap:14px!important;}
    .admin-nav{display:none!important;}
    .admin-mobile-nav{
      display:grid;
      grid-template-columns:minmax(0,1fr);
      gap:6px;
      position:relative;
      top:auto;
      z-index:35;
      width:100%;
      padding:10px 12px;
      background:rgba(255,255,255,.97);
      border:1px solid var(--line);
      border-radius:10px;
      box-shadow:0 8px 22px rgba(14,42,56,.10);
      backdrop-filter:blur(8px);
    }
    .admin-mobile-nav label{
      margin:0;
      color:var(--muted);
      font-size:.72rem;
      font-weight:800;
      text-transform:uppercase;
      letter-spacing:0;
    }
    .admin-mobile-nav select{
      width:100%;
      min-height:44px;
      margin:0;
      padding:10px 38px 10px 12px;
      border:1px solid rgba(14,42,56,.22);
      border-radius:8px;
      background-color:#fff;
      color:var(--navy);
      font:700 16px/1.2 var(--font-body);
    }
  }

  @media (max-width:640px){
    .admin-section{padding-top:16px;}
    .admin-page-banner h1{font-size:1.45rem;}
    .admin-page-banner p{font-size:.88rem;line-height:1.4;}
    .admin-content{width:100%;overflow:visible;}
    .admin-content h1,
    .admin-content h2,
    .admin-content h3{overflow-wrap:anywhere;}
    .admin-content .admin-table-scroll .btn,
    .admin-content .admin-table-scroll .btn-sm,
    .admin-content .admin-table-scroll .btn-cancel{
      width:auto;
      min-width:max-content;
    }
    .admin-content .club-detail-head > div:last-child{
      display:grid!important;
      grid-template-columns:minmax(0,1fr)!important;
      width:100%;
    }
    .admin-section-head{
      display:grid;
      grid-template-columns:minmax(0,1fr);
      align-items:stretch;
      gap:10px;
      margin:22px 0 12px;
      padding:0;
    }
    .admin-section-head .btn,
    .admin-section-head .btn-sm,
    .admin-section-head .btn-cancel{
      width:100%;
      max-width:none;
    }
    .prospect-language-grid{grid-template-columns:minmax(0,1fr);}
    .prospect-language-choice{min-height:0;}
    .prospect-command-head{display:block;}
    .prospect-command-bar{grid-template-columns:minmax(0,1fr);}
  }

  .analytics-consent{
    position:fixed;
    z-index:10020;
    left:50%;
    bottom:max(18px, env(safe-area-inset-bottom));
    width:min(720px, calc(100% - 32px));
    transform:translateX(-50%);
    background:#fff;
    color:var(--ink);
    border:1px solid var(--line);
    border-radius:8px;
    box-shadow:0 18px 50px rgba(14,42,56,.22);
    padding:18px;
  }
  .analytics-consent h2{font-size:1.05rem;margin:0 0 7px;}
  .partner-onboarding{align-items:start;gap:32px;}
  .partner-onboarding > *{min-width:0;}
  .partner-modes{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:10px;}
  .partner-modes button{padding:12px 8px;white-space:normal;line-height:1.4;font:600 .88rem var(--font-body);border:0;background:transparent;color:var(--muted);border-bottom:3px solid transparent;cursor:pointer;}
  .partner-modes button[aria-selected="true"]{border-color:var(--coral);color:var(--navy);}
  .partner-onboarding [hidden]{display:none!important;}
  .partner-pilot-steps{padding:0;list-style:none;counter-reset:pilot;margin:24px 0;}
  .partner-pilot-steps li{counter-increment:pilot;display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line);}
  .partner-pilot-steps li::before{content:counter(pilot);font:700 1rem var(--font-mono);color:var(--coral);}
  .partner-pilot-steps p{margin:5px 0 0;color:var(--muted);line-height:1.6;font-size:.9rem;}
  .partner-terms-summary{padding:18px 0;border-top:1px solid var(--line);font-size:.9rem;line-height:1.65;}
  .partner-terms-summary h3{font-size:1.1rem;margin:0 0 10px;}
  .partner-terms-summary p{margin:6px 0;}
  .partner-help-error{color:#9a241a;background:#fff0ed;padding:12px;border:1px solid #e8b6ae;border-radius:6px;margin:12px 0;}
  .partner-lead-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0;}
  .partner-lead-metrics > div{border-bottom:2px solid var(--line);padding:12px 0;}
  .partner-lead-metrics b{display:block;font:700 1.5rem var(--font-mono);margin-top:8px;}
  .partner-lead-metrics span{font-size:.8rem;color:var(--muted);}
  .admin-content table.dtable.partner-lead-table{width:100%!important;min-width:0!important;table-layout:fixed;}
  .admin-content table.partner-lead-table td{overflow-wrap:anywhere;white-space:normal;vertical-align:top;}
  .partner-lead-table th:nth-child(1){width:27%;}
  .partner-lead-table th:nth-child(2){width:30%;}
  .partner-lead-table th:nth-child(3){width:23%;}
  .partner-lead-table th:nth-child(4){width:20%;}
  .partner-lead-table select{width:100%;max-width:100%;min-width:0;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:6px;background:#fff;font:inherit;}
  .partner-lead-table .btn{margin-top:8px;}
  .partner-lead-table tr[hidden]{display:none!important;}
  @media(max-width:900px){.partner-onboarding > #partner-onboarding-form{order:-1;}}
  @media(max-width:700px){
    .admin-content table.dtable.partner-lead-table,.partner-lead-table tbody{display:block;}
    .partner-lead-table thead{display:none;}
    .partner-lead-table tr{display:block;margin-bottom:12px;padding:8px;background:#fff;border:1px solid var(--line);border-radius:8px;}
    .admin-content table.partner-lead-table td{display:block;width:100%;padding:10px 8px;font-size:.88rem;border:0;}
    .partner-lead-table td[data-label]::before{content:attr(data-label);display:block;font-weight:600;font-size:.75rem;color:var(--muted);margin-bottom:5px;}
  }
  @media(max-width:640px){.partner-onboarding{gap:24px;}.partner-lead-metrics{grid-template-columns:repeat(2,minmax(0,1fr));}.partner-modes button{font-size:.82rem;}}
  .analytics-consent p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.5;}
  .analytics-consent-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:14px;}
  .analytics-preferences-btn{
    padding:0;
    border:0;
    background:transparent;
    color:inherit;
    font:inherit;
    text-decoration:underline;
    cursor:pointer;
  }
  @media (max-width:640px){
    .analytics-consent{bottom:max(10px, env(safe-area-inset-bottom));width:calc(100% - 20px);padding:15px;}
    .analytics-consent-actions{display:grid;grid-template-columns:1fr;}
    .analytics-consent-actions .btn{width:100%;}
  }
.seo-copy { max-width:900px; line-height:1.7; overflow-wrap:break-word; }
.seo-copy > section { padding:16px 0; }
.seo-copy h2 { margin:0 0 12px; font-size:1.5rem; }
.seo-copy p { margin:0 0 20px; }
.seo-guide-links { margin-top:28px; }
.seo-guide-links ul { padding-left:20px; }
.seo-guide-links li { margin:12px 0; }
.seo-entity-photo { display:block; width:100%; max-width:720px; height:auto; aspect-ratio:12/7; object-fit:cover; margin:24px 0; }
.seo-partner-list { list-style:none; padding:0; }
.seo-partner-list li { padding:16px 0; border-bottom:1px solid var(--line); }
.seo-partner-list span { display:block; color:var(--muted); }
