/* =========================================================
   RHUYS SPORT KLUB — style.css
   Palette : océan / aqua / sable / écume / corail / encre
   Polices : piles système (aucun fichier à héberger, RGPD).
   ========================================================= */

:root{
  --ocean:#0a4c63;
  --ocean-deep:#083b4d;
  --aqua:#17b0bd;
  --aqua-soft:#8fd7dd;
  --sand:#f4ecdd;
  --foam:#eaf6f5;
  --coral:#ff6a3d;
  --coral-dark:#e8542a;
  --ink:#12303a;
  --muted:#5b7078;
  --line:#d7e3e5;
  --white:#ffffff;
  --radius:16px;
  --radius-lg:26px;
  --shadow:0 18px 40px -22px rgba(10,76,99,.45);
  --shadow-sm:0 6px 20px -12px rgba(10,76,99,.4);
  --maxw:1120px;
  --font-display:"Segoe UI",Roboto,"Helvetica Neue",Arial,system-ui,sans-serif;
  --font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;font-family:var(--font-body);color:var(--ink);
  background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;
}
a{color:var(--ocean);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--font-display);line-height:1.1;margin:0 0 .4em;font-weight:700}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.muted{color:var(--muted)}
.skip{position:absolute;left:-999px}
.skip:focus{left:12px;top:12px;background:var(--ink);color:#fff;padding:8px 14px;border-radius:8px;z-index:200}
:focus-visible{outline:3px solid var(--aqua);outline-offset:2px;border-radius:6px}

/* ---------- Boutons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.5em;justify-content:center;
  font-family:var(--font-display);font-weight:700;font-size:1rem;
  padding:.72em 1.35em;border-radius:999px;border:2px solid transparent;
  cursor:pointer;transition:transform .15s ease, box-shadow .2s ease, background .2s;
  text-decoration:none;line-height:1;
}
.btn:hover{text-decoration:none;transform:translateY(-2px)}
.btn-coral{background:var(--coral);color:#fff;box-shadow:var(--shadow-sm)}
.btn-coral:hover{background:var(--coral-dark);color:#fff}
.btn-ocean{background:var(--ocean);color:#fff}
.btn-ocean:hover{background:var(--ocean-deep);color:#fff}
.btn-ghost{background:transparent;border-color:currentColor;color:var(--ocean)}
.btn-ghost:hover{background:var(--foam)}
.btn-block{width:100%}
.btn-sm{padding:.5em 1em;font-size:.9rem}

/* ---------- Header / nav ---------- */
.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.92);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:70px;gap:16px}
.brand{display:inline-flex;align-items:center;gap:.55em;color:var(--ocean);font-family:var(--font-display);
  font-weight:800;font-size:1.15rem;text-decoration:none;flex:0 0 auto}
.brand:hover{text-decoration:none}
.brand-mark{color:var(--aqua);display:inline-flex}
.brand-logo{display:block;border-radius:50%;object-fit:contain}

.nav{flex:1;display:flex;align-items:center;justify-content:space-between;gap:14px;min-width:0}
.header-right{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.nav-links{display:flex;align-items:center;gap:2px;flex-wrap:nowrap}
.nav-links a{position:relative;color:var(--ink);font-weight:500;font-size:.92rem;padding:8px 9px;border-radius:8px;white-space:nowrap;transition:color .15s}
.nav-links a::after{content:"";position:absolute;left:9px;right:9px;bottom:3px;height:2px;background:var(--ocean);border-radius:2px;transform:scaleX(0);transform-origin:left;transition:transform .2s ease}
.nav-links a:hover{color:var(--ocean);text-decoration:none}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1)}
.nav-links a.active{color:var(--ocean);font-weight:600}
.nav-actions{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.nav-actions .nav-login{color:var(--ink);font-weight:500}
.nav-actions .nav-login:hover{color:var(--ocean);text-decoration:none}
.nav-actions .btn{color:#fff}
.nav-actions .btn-ghost{color:var(--ocean)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{width:26px;height:3px;background:var(--ocean);border-radius:2px;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

/* ---------- Flash ---------- */
.flash-zone{margin-top:16px;display:grid;gap:8px}
.flash{padding:12px 16px;border-radius:12px;font-weight:500}
.flash-success{background:#e5f6ee;border:1px solid #34a86f;color:#155c39}
.flash-error{background:#ffe9e2;border:1px solid var(--coral);color:#9a3417}
.flash-info{background:var(--foam);border:1px solid var(--aqua);color:var(--ocean)}

/* ---------- Hero ---------- */
.hero{position:relative;background:linear-gradient(160deg,var(--ocean) 0%,var(--ocean-deep) 55%,#062d3b 100%);
  color:#fff;overflow:hidden;padding:78px 0 130px}
.hero .wrap{position:relative;z-index:3}
.hero-eyebrow{display:inline-flex;align-items:center;gap:.5em;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.25);color:#dff5f7;padding:.4em .9em;border-radius:999px;
  font-size:.85rem;font-weight:600;margin-bottom:22px}
.hero h1{font-size:clamp(2.4rem,6vw,4.2rem);font-weight:800;max-width:14ch;letter-spacing:-.02em}
.hero h1 .accent{color:var(--aqua-soft)}
.hero p.lead{font-size:clamp(1.05rem,2.2vw,1.3rem);max-width:46ch;color:#cfe8ec;margin:.8em 0 1.8em}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px}
.hero-stats{display:flex;gap:30px;flex-wrap:wrap;margin-top:44px}
.hero-stats .stat{display:flex;flex-direction:column}
.hero-stats .num{font-family:var(--font-display);font-weight:800;font-size:1.9rem;color:#fff}
.hero-stats .lbl{font-size:.82rem;color:#a9d3da;text-transform:uppercase;letter-spacing:.08em}
/* vague animée en bas du hero */
.hero-waves{position:absolute;left:0;right:0;bottom:-2px;z-index:2;line-height:0}
.hero-waves svg{width:200%;height:120px;display:block;animation:drift 14s linear infinite}
@keyframes drift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.hero-waves svg{animation:none}}

/* ---------- Sections ---------- */
.section{padding:74px 0}
.section.alt{background:var(--foam)}
.section.sand{background:var(--sand)}
.section-head{max-width:640px;margin-bottom:38px}
.eyebrow{display:inline-block;font-family:var(--font-display);font-weight:700;font-size:.8rem;
  letter-spacing:.14em;text-transform:uppercase;color:var(--coral);margin-bottom:10px}
.section-head h2{font-size:clamp(1.9rem,4vw,2.7rem);color:var(--ocean)}
.section-head p{color:var(--muted);font-size:1.08rem;margin:0}

/* ---------- Grilles ---------- */
.grid{display:grid;gap:22px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-4{grid-template-columns:repeat(4,1fr)}

/* ---------- Cartes activité ---------- */
.activity{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:30px 26px;box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .2s, box-shadow .2s}
.activity:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.activity .ico{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;
  background:var(--foam);color:var(--ocean);margin-bottom:18px}
.activity.longe .ico{background:#dcf1f3;color:var(--aqua)}
.activity.nordique .ico{background:#e9f3dc;color:#3f8f4a}
.activity h3{font-size:1.35rem;color:var(--ocean)}
.activity p{color:var(--muted);margin:.3em 0 0}
.activity .wave-corner{position:absolute;right:-20px;bottom:-20px;color:var(--foam);opacity:.7}

/* ---------- Carte événement ---------- */
.event-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s}
.event-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.event-card .ec-top{padding:16px 20px;background:linear-gradient(135deg,var(--ocean),var(--aqua));color:#fff}
.event-card .ec-date{font-family:var(--font-display);font-weight:700;font-size:1.02rem}
.event-card .ec-body{padding:18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.event-card h3{font-size:1.2rem;margin:0;color:var(--ink)}
.event-card .ec-meta{color:var(--muted);font-size:.92rem;display:flex;flex-wrap:wrap;gap:12px}
.event-card .ec-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:8px}
.badge{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:.32em .7em;border-radius:999px}
.badge-longe{background:#dcf1f3;color:#0b6b76}
.badge-nordique{background:#e4f2dd;color:#3d7a32}
.badge-randonnee{background:#efe7d4;color:#8a6d1f}
.badge-autre{background:#e9ecef;color:#4b5a60}
.badge-full{background:#ffe0d7;color:#b23d1c}
.places{font-size:.85rem;color:var(--muted);font-weight:600}

/* ---------- Cartes / panneaux génériques ---------- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow-sm)}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow-sm)}

/* ---------- Bloc tarif / rejoindre ---------- */
.join{display:grid;grid-template-columns:1.2fr .8fr;gap:32px;align-items:center}
.price-card{background:linear-gradient(160deg,var(--ocean),var(--ocean-deep));color:#fff;
  border-radius:var(--radius-lg);padding:34px;box-shadow:var(--shadow);text-align:center}
.price-card .amount{font-family:var(--font-display);font-weight:800;font-size:3.4rem;line-height:1}
.price-card .amount small{font-size:1.1rem;font-weight:600}
.price-card ul{list-style:none;padding:0;margin:20px 0;text-align:left;display:grid;gap:10px}
.price-card li{display:flex;gap:.6em;color:#d7ecef}
.price-card li::before{content:"✓";color:var(--aqua-soft);font-weight:800}

/* ---------- Formulaires ---------- */
.form-page{max-width:560px;margin:0 auto}
.form-narrow{max-width:640px}
.field{margin-bottom:16px}
.field label{display:block;font-weight:600;margin-bottom:6px;font-size:.95rem}
.field input,.field select,.field textarea{
  width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;
  font-size:1rem;font-family:var(--font-body);background:var(--surface);color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--aqua);outline:none;
  box-shadow:0 0 0 3px rgba(23,176,189,.2)}
.field textarea{min-height:120px;resize:vertical}
.field .hint{font-size:.82rem;color:var(--muted);margin-top:4px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.check-list{display:flex;flex-wrap:wrap;gap:10px}
.check-list label{display:inline-flex;align-items:center;gap:.4em;background:var(--foam);
  border:1px solid var(--line);padding:.5em .9em;border-radius:999px;font-weight:500;cursor:pointer}
.check-list input{width:auto}

/* ---------- Page titre ---------- */
.page-hero{background:var(--ocean);color:#fff;padding:56px 0 40px}
.page-hero h1{font-size:clamp(2rem,5vw,3rem);margin:0}
.page-hero p{color:#cfe8ec;margin:.4em 0 0;max-width:60ch}
.breadcrumb{font-size:.85rem;color:#a9d3da;margin-bottom:10px}
.breadcrumb a{color:#dff5f7}

/* ---------- Tableaux (admin) ---------- */
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
table.data{width:100%;border-collapse:collapse;min-width:640px}
table.data th,table.data td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);font-size:.92rem}
table.data th{background:var(--foam);font-family:var(--font-display);color:var(--ocean);font-weight:700}
table.data tr:last-child td{border-bottom:0}
.pill{display:inline-block;padding:.25em .7em;border-radius:999px;font-size:.75rem;font-weight:700}
.pill-attente{background:var(--surface)2d6;color:#8a6410}
.pill-actif{background:#e5f6ee;color:#1c7a48}
.pill-inactif{background:var(--surface-2);color:#556}

/* ---------- Forum ---------- */
.forum-cat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;
  box-shadow:var(--shadow-sm);margin-bottom:16px}
.forum-cat h3{margin:0 0 4px;color:var(--ocean)}
.topic-row{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 0;border-bottom:1px solid var(--line)}
.topic-row:last-child{border-bottom:0}
.topic-row .t-main{min-width:0}
.topic-row .t-title{font-weight:600;color:var(--ink)}
.topic-row .t-meta{font-size:.82rem;color:var(--muted)}
.topic-row .t-count{font-weight:700;color:var(--ocean);white-space:nowrap}
.post{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;margin-bottom:14px;box-shadow:var(--shadow-sm)}
.post .post-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:.85rem;color:var(--muted)}
.post .post-author{font-weight:700;color:var(--ocean)}
.post .post-body{white-space:pre-wrap}

/* ---------- Admin layout ---------- */
.admin-shell{display:grid;grid-template-columns:230px 1fr;min-height:100vh}
.admin-side{background:var(--ocean-deep);color:#cfe8ec;padding:24px 16px}
.admin-side .brand{color:#fff;margin-bottom:24px}
.admin-side a{display:block;color:#bcdfe5;padding:10px 12px;border-radius:10px;margin-bottom:4px;font-weight:500}
.admin-side a:hover,.admin-side a.active{background:rgba(255,255,255,.1);color:#fff;text-decoration:none}
.admin-main{padding:32px}
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:30px}
.stat-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.stat-box .n{font-family:var(--font-display);font-weight:800;font-size:2rem;color:var(--ocean);line-height:1}
.stat-box .l{color:var(--muted);font-size:.9rem}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.inline-form{display:inline}

/* ---------- Vague de séparation footer ---------- */
.site-footer{background:var(--ocean-deep);color:#cfe8ec;position:relative;margin-top:60px;padding-bottom:24px}
.wave-top{position:absolute;top:-1px;left:0;right:0;transform:translateY(-99%);line-height:0}
.wave-top svg{width:100%;height:48px;display:block;fill:var(--ocean-deep)}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:30px;padding-top:46px}
.site-footer h4{color:#fff;font-size:1rem;margin-bottom:12px}
.site-footer a{display:block;color:#bcdfe5;padding:3px 0}
.site-footer .brand--footer{color:#fff;margin-bottom:12px}
.site-footer .muted{color:#8fb3bc}
.social-link{display:inline-flex!important;align-items:center;gap:.5em;margin-top:6px;
  padding:7px 14px;border:1px solid rgba(255,255,255,.22);border-radius:999px;
  color:#fff;font-weight:600;font-size:.9rem;transition:background .15s,border-color .15s}
.social-link:hover{background:var(--aqua);border-color:var(--aqua)}
.social-link svg{flex:0 0 auto}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:1px solid rgba(255,255,255,.12);
  margin-top:30px;padding-top:18px;font-size:.85rem;color:#8fb3bc}

/* ---------- Utilitaires ---------- */
.text-center{text-align:center}
.mt-2{margin-top:20px}.mt-3{margin-top:30px}
.stack>*+*{margin-top:14px}
.empty{background:var(--foam);border:1px dashed var(--aqua);border-radius:var(--radius);
  padding:30px;text-align:center;color:var(--muted)}
.tag-row{display:flex;flex-wrap:wrap;gap:10px}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .grid-3,.grid-4{grid-template-columns:1fr 1fr}
  .join{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr}
  .stat-grid{grid-template-columns:1fr 1fr}
  .admin-shell{grid-template-columns:1fr}
  .admin-side{display:flex;flex-wrap:wrap;gap:6px;padding:14px}
  .admin-side .brand{width:100%;margin-bottom:8px}
  .admin-side a{margin:0}
  .admin-side .side-label,.admin-side .side-sep{display:none}
}
@media (max-width:680px){
  .grid-3,.grid-4,.grid-2,.form-row{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr}
  .section{padding:52px 0}
}

/* ===== Header responsive (menu mobile) ===== */
@media (max-width:980px){
  .nav-toggle{display:flex}
  .nav{position:fixed;inset:70px 0 auto 0;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;
    background:var(--surface);border-bottom:1px solid var(--line);padding:14px 22px 22px;
    transform:translateY(-135%);transition:transform .28s ease;box-shadow:var(--shadow);
    max-height:calc(100vh - 70px);overflow:auto;z-index:99}
  .nav.open{transform:translateY(0)}
  .nav-links{flex-direction:column;align-items:stretch;gap:0;width:100%}
  .nav-links a{padding:14px 4px;border-bottom:1px solid var(--line);border-radius:0;font-size:1rem}
  .nav-links a::after{display:none}
  .nav-links a.active{color:var(--ocean)}
  .nav-actions{flex-direction:column;align-items:stretch;gap:10px;margin-top:16px;width:100%}
  .nav-actions .btn,.nav-actions .nav-login{width:100%;text-align:center}
  .nav-actions .nav-login{padding:12px 0}
}

/* ===== Composants ajoutés (v0.1.0) ===== */

/* Barre de filtres + segments */
.filterbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:24px}
.seg-group{display:inline-flex;flex-wrap:wrap;gap:6px;background:var(--foam);padding:5px;border-radius:999px}
.seg{padding:.4em 1em;border-radius:999px;font-size:.9rem;font-weight:600;color:var(--ocean);text-decoration:none;transition:background .15s,color .15s}
.seg:hover{background:#dcefee}
.seg-on{background:var(--ocean);color:#fff}
.seg-on:hover{background:var(--ocean)}

/* Galerie photos */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.photo-item{position:relative;display:block;border-radius:12px;overflow:hidden;background:var(--foam);box-shadow:var(--shadow);text-decoration:none;color:inherit}
.photo-item img{display:block;width:100%;height:170px;object-fit:cover;transition:transform .3s ease}
.photo-item:hover img{transform:scale(1.05)}
.photo-item .photo-cap,.photo-cap{position:absolute;left:0;right:0;bottom:0;padding:16px 10px 8px;
  font-size:.8rem;font-weight:600;color:#fff;background:linear-gradient(transparent,rgba(10,48,60,.85))}
figure.photo-item{margin:0}
figure.photo-item .inline-form{position:absolute;top:6px;right:6px}
figure.photo-item .inline-form button{background:rgba(255,255,255,.9)}

/* Carte OSM */
.map-embed{border-radius:14px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line);height:300px}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
@media (max-width:560px){ .map-embed{height:240px} }

/* Pages légales */
.legal{max-width:820px}
.legal p{line-height:1.75;color:var(--ink)}

/* Liens légaux du footer */
.footer-legal{display:inline-flex;gap:14px;flex-wrap:wrap}
.footer-legal a{color:#bcdfe5;padding:0}
.footer-legal a:hover{color:#fff}

/* ===== Composants ajoutés (v0.2.0) ===== */

/* Météo & infos ligne */
.weather-box{display:flex;align-items:center;gap:12px;background:var(--foam);border-radius:12px;padding:12px 14px}
.weather-emoji{font-size:2rem;line-height:1}
.info-line{background:#eef7f8;border-left:3px solid var(--aqua);padding:8px 12px;border-radius:6px}

/* Trombinoscope */
.member-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:18px;text-align:center;box-shadow:var(--shadow)}
.member-card img{width:110px;height:110px;border-radius:50%;object-fit:cover;margin:0 auto 12px;display:block}
.member-avatar{width:110px;height:110px;border-radius:50%;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;
  background:var(--ocean);color:#fff;font-family:var(--font-display);font-weight:800;font-size:2rem}
.member-card h3{margin:0 0 4px;color:var(--ink)}
.member-role{color:var(--aqua);font-weight:600;margin:0}

/* Parcours d'accueil */

/* ===== Espace membre (v0.2.1) ===== */
.espace-hero-inner{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.espace-hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.espace-hero-actions .btn-ghost{color:#fff;border-color:rgba(255,255,255,.55)}
.espace-hero-actions .btn-ghost:hover{background:rgba(255,255,255,.14)}
.espace-hero-actions .btn-ocean{background:#fff;color:var(--ocean)}
.espace-hero-actions .btn-ocean:hover{background:var(--foam)}

/* Tuiles de résumé */
.acct-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:4px}
.tile-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.tile-value{font-family:var(--font-display);font-weight:800;color:var(--ocean);font-size:1.35rem;line-height:1.1}
.tile-value.big{font-size:2.2rem}
.tile-value.warn{color:var(--coral)}
.tile-sub{font-size:.85rem;color:var(--muted)}
.tile-sub a{color:var(--ocean);font-weight:600}

/* Grille dashboard */
.dash{display:grid;grid-template-columns:1.55fr 1fr;gap:24px;align-items:start}
.dash-side{display:flex;flex-direction:column;gap:24px}

/* Blocs / cartes */
.card-block{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 22px;box-shadow:var(--shadow)}
.card-block + .card-block{margin-top:24px}
.dash-side .card-block + .card-block{margin-top:0}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px}
.card-head h2{margin:0;color:var(--ocean);font-size:1.2rem}

/* Listes de sorties */
.sortie-list{display:flex;flex-direction:column}
.sortie-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);
  color:inherit;text-decoration:none;transition:background .12s}
.sortie-row:last-child{border-bottom:0}
.sortie-row:hover{background:var(--foam);border-radius:10px;padding-left:8px;padding-right:8px}
.sr-date{flex:0 0 auto;width:54px;height:54px;border-radius:12px;background:var(--foam);
  display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.sr-day{font-family:var(--font-display);font-weight:800;color:var(--ocean);font-size:1.25rem}
.sr-mon{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
.sr-body{flex:1;min-width:0}
.sr-body strong{display:block;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-body .muted{font-size:.85rem}
.sortie-row.past .sr-date{background:var(--surface-2)}
.sortie-row.past .sr-day{color:#5b7078}

/* Divers espace */
.doc-line{margin:0 0 10px}
.file-form{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.file-form input[type=file]{font-size:.9rem}

@media (max-width:900px){
  .acct-tiles{grid-template-columns:1fr}
  .dash{grid-template-columns:1fr}
}

/* =========================================================
   THÈME BRETON — Gwenn ha Du (noir & blanc)
   Redéfinit la palette et neutralise les teintes marines.
   ========================================================= */
:root{
  --ocean:#141414;
  --ocean-deep:#000000;
  --aqua:#333333;
  --aqua-soft:#c9c9c9;
  --sand:#f2f2f2;
  --foam:#f4f4f4;
  --coral:#141414;
  --coral-dark:#000000;
  --ink:#161616;
  --muted:#6b6b6b;
  --line:#e3e3e3;
  --shadow:0 18px 40px -22px rgba(0,0,0,.35);
  --shadow-sm:0 6px 20px -12px rgba(0,0,0,.30);
}


/* Focus visible en gris foncé (sur fond clair) */
:focus-visible{outline:3px solid #333;outline-offset:2px}

/* Hero */
.hero{background:linear-gradient(160deg,#1c1c1c 0%,#000 100%)}
.hero .eyebrow, .hero-eyebrow{border-color:rgba(255,255,255,.3);color:#eaeaea;background:rgba(255,255,255,.12)}
.hero p.lead{color:#dcdcdc}
.hero-stats .lbl{color:#bdbdbd}
.page-hero{background:#141414}
.page-hero p{color:#dcdcdc}
.breadcrumb{color:#c4c4c4}
.breadcrumb a{color:#fff}

/* Cartes / event / prix en niveaux de gris */
.event-card .ec-top{background:linear-gradient(135deg,#141414,#3a3a3a)}
.price-card{background:linear-gradient(160deg,#1c1c1c,#000)}
.price-card li{color:#dcdcdc}

/* Icônes d'activité */
.activity .ico{background:var(--surface-2);color:#141414}
.activity.longe .ico{background:var(--surface-2);color:#141414}
.activity.nordique .ico{background:var(--surface-2);color:#141414}
[data-theme="dark"] .activity .ico{color:#eaeaea}
[data-theme="dark"] .activity.longe .ico{color:#7fd6e0}
[data-theme="dark"] .activity.nordique .ico{color:#8fe0a0}

/* Badges de type — gris, différenciés par la teinte */
.badge-longe{background:#e9e9e9;color:#1a1a1a}
.badge-nordique{background:#ededed;color:#1a1a1a}
.badge-randonnee{background:#e2e2e2;color:#1a1a1a}
.badge-autre{background:#eeeeee;color:#333}
.badge-full{background:#141414;color:#fff}

/* Pastilles de statut — B&W, distinctes par le style */
.pill{background:var(--surface-2);color:#333}
.pill-actif{background:#141414;color:#fff}
.pill-attente{background:var(--surface);color:#141414;box-shadow:inset 0 0 0 1.5px #141414}
.pill-inactif{background:#e6e6e6;color:#666}

/* Messages flash — palette neutre, accent danger conservé pour la lisibilité */
.flash{border-left:4px solid #141414}
.flash-success{background:var(--surface-2);border:1px solid var(--line);border-left:4px solid #141414;color:var(--ink)}
.flash-info{background:var(--surface-2);border:1px solid var(--line);border-left:4px solid #6b6b6b;color:var(--ink)}
.flash-error{background:#f7ecec;border:1px solid #e3c9c4;border-left:4px solid #b23a2a;color:#7c2618}

/* Ligne info (marée) */
.info-line{background:var(--surface-2);border-left-color:#141414}
.weather-box{background:var(--surface-2)}

/* Trombinoscope */
.member-role{color:#333}

/* Sidebar admin & footer — texte en gris neutre sur fond noir */
.admin-side{color:#d8d8d8}
.admin-side a{color:#c4c4c4}
.site-footer{color:#d8d8d8}
.site-footer a{color:#c4c4c4}
.site-footer .muted{color:#9a9a9a}
.footer-legal a{color:#c4c4c4}
.social-link:hover{background:#fff;border-color:#fff;color:#000}

/* ===== Hero accueil : logo animé (v0.2.2) ===== */
.hero-inner{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero-copy{min-width:0}

.hero-logo{position:relative;display:flex;align-items:center;justify-content:center;min-height:min(44vw,420px)}
.hero-logo-img{position:relative;z-index:2;width:min(34vw,340px);height:auto;border-radius:50%;
  filter:drop-shadow(0 26px 55px rgba(0,0,0,.55));
  animation:logoIn .9s cubic-bezier(.2,.8,.2,1) both, logoFloat 6s ease-in-out 1s infinite}

.hero-logo .ripple{position:absolute;top:50%;left:50%;width:min(34vw,340px);aspect-ratio:1;
  border:2px solid rgba(255,255,255,.32);border-radius:50%;
  transform:translate(-50%,-50%) scale(.62);opacity:0;
  animation:ripple 4.8s ease-out infinite}
.hero-logo .ripple:nth-child(2){animation-delay:1.6s}
.hero-logo .ripple:nth-child(3){animation-delay:3.2s}

@keyframes logoIn{from{opacity:0;transform:scale(.82) translateY(12px)}to{opacity:1;transform:none}}
@keyframes logoFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
@keyframes ripple{
  0%{opacity:.5;transform:translate(-50%,-50%) scale(.62)}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.4)}
}

@media (max-width:820px){
  .hero-inner{grid-template-columns:1fr;text-align:center;gap:18px}
  .hero-copy{order:2}
  .hero-logo{order:1;min-height:auto}
  .hero-logo-img{width:min(58vw,230px)}
  .hero-logo .ripple{width:min(58vw,230px)}
  .hero-cta,.hero-stats{justify-content:center}
  .hero h1{margin-left:auto;margin-right:auto}
}

@media (prefers-reduced-motion:reduce){
  .hero-logo-img{animation:none}
  .hero-logo .ripple{display:none}
}

/* =========================================================
   MODE CLAIR / SOMBRE
   ========================================================= */
:root{ --surface:#ffffff; --surface-2:#f2f2f2; }

:root[data-theme="dark"]{
  --ocean:#f0f0f0;        /* texte/titres clairs */
  --ocean-deep:#000000;   /* fonds hero/footer restent noirs */
  --aqua:#c4c4c4;
  --aqua-soft:#dcdcdc;
  --sand:#151515;
  --foam:#1e1e1e;
  --coral:#f0f0f0;        /* CTA clair */
  --coral-dark:#ffffff;
  --ink:#e9e9e9;
  --muted:#9d9d9d;
  --line:#2c2c2c;
  --white:#161616;
  --surface:#1a1a1a;
  --surface-2:#242424;
  --shadow:0 18px 40px -22px rgba(0,0,0,.75);
  --shadow-sm:0 6px 20px -12px rgba(0,0,0,.6);
}

/* Composants à couleur littérale : ajustements sombres */
[data-theme="dark"] body{background:#0f0f0f}
[data-theme="dark"] .site-header{background:rgba(17,17,17,.92)}
[data-theme="dark"] a{color:#e8e8e8}
[data-theme="dark"] .btn-ocean{color:#111}
[data-theme="dark"] .btn-ocean:hover{background:#fff;color:#111}
[data-theme="dark"] .btn-coral{color:#111}
[data-theme="dark"] .btn-coral:hover{color:#111}
[data-theme="dark"] .formula-btn,[data-theme="dark"] .formula-btn:hover{color:#111}
[data-theme="dark"] .seg-on{color:#111}
[data-theme="dark"] .pill{background:var(--surface-2);color:#cfcfcf}
[data-theme="dark"] .pill-actif{background:#f0f0f0;color:#111}
[data-theme="dark"] .pill-attente{background:var(--surface);color:#eaeaea;box-shadow:inset 0 0 0 1.5px #eaeaea}
[data-theme="dark"] .pill-inactif{background:#2a2a2a;color:#a8a8a8}
[data-theme="dark"] .badge-longe,
[data-theme="dark"] .badge-nordique,
[data-theme="dark"] .badge-randonnee,
[data-theme="dark"] .badge-autre{background:#2a2a2a;color:#e6e6e6}
[data-theme="dark"] .badge-full{background:#f0f0f0;color:#111}
[data-theme="dark"] .flash-success{background:var(--surface-2);border-color:var(--line);border-left-color:#f0f0f0;color:var(--ink)}
[data-theme="dark"] .flash-info{background:var(--surface-2);border-color:var(--line);color:var(--ink)}
[data-theme="dark"] .flash-error{background:#2a1b19;border-color:#5a2f28;border-left-color:#e07a68;color:#f0b7ae}
[data-theme="dark"] .info-line{background:var(--surface-2);border-left-color:#f0f0f0}
[data-theme="dark"] .weather-box{background:var(--surface-2)}
[data-theme="dark"] .member-avatar{background:#f0f0f0;color:#111}
[data-theme="dark"] .sortie-row:hover{background:var(--surface-2)}
[data-theme="dark"] .sortie-row.past .sr-date{background:#2a2a2a}
[data-theme="dark"] .sortie-row.past .sr-day{color:#bbb}
[data-theme="dark"] :focus-visible{outline-color:#cccccc}

/* Bouton bascule de thème */
.theme-toggle{background:transparent;border:1px solid var(--line);border-radius:999px;
  width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;
  cursor:pointer;color:var(--ocean);flex:0 0 auto;transition:background .15s,border-color .15s}
.theme-toggle:hover{background:var(--foam)}
.theme-toggle svg{width:18px;height:18px}
.theme-toggle .ic-sun{display:none}
[data-theme="dark"] .theme-toggle .ic-sun{display:block}
[data-theme="dark"] .theme-toggle .ic-moon{display:none}

/* ===== Espace : profil centré + footer compact (v0.2.2) ===== */
.profile-wrap{max-width:760px;margin:0 auto 26px}
.profile-wrap .card-block + .card-block{margin-top:22px}
.profile-card{padding:28px 30px}
.profile-card h2{margin:0;font-size:1.55rem}
.profile-head{display:flex;align-items:center;gap:16px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.profile-avatar{width:66px;height:66px;border-radius:50%;background:var(--ocean);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);
  font-weight:800;font-size:1.5rem;flex:0 0 auto;letter-spacing:.02em}
[data-theme="dark"] .profile-avatar{color:#111}
.profile-card .form-row{gap:18px}
.profile-card .field input{padding:12px 14px}

.dash-sorties{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
@media (max-width:820px){ .dash-sorties{grid-template-columns:1fr} }

/* Footer compact */
.site-footer{margin-top:42px;padding-bottom:16px}
.wave-top svg{height:30px}
.footer-grid{gap:22px;padding-top:28px;grid-template-columns:1.5fr 1fr 1fr}
.site-footer h4{margin-bottom:8px;font-size:.95rem}
.site-footer a{padding:2px 0;font-size:.92rem}
.site-footer .brand--footer{margin-bottom:8px}
.brand--footer .brand-logo{width:26px;height:26px}
.footer-bottom{margin-top:16px;padding-top:12px;font-size:.8rem}
.social-link{margin-top:4px;padding:6px 12px;font-size:.85rem}

/* ===== Contact ===== */
.contact-list{list-style:none;padding:0;margin:0 0 14px}
.contact-list li{display:flex;gap:12px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
.contact-list li:last-child{border-bottom:0}
.contact-list .ci-ic{flex:0 0 auto;width:22px;text-align:center}
.contact-info .social-link{background:var(--ocean);border-color:var(--ocean);color:#fff}
.contact-info .social-link:hover{background:var(--ocean-deep);border-color:var(--ocean-deep);color:#fff}
[data-theme="dark"] .contact-info .social-link{color:#111}
[data-theme="dark"] .contact-info .social-link:hover{background:#fff;border-color:#fff;color:#111}

/* ===== Deux formules d'adhésion (accueil) ===== */
.formula-cards{display:grid;gap:16px;align-content:start}
.join-stack{display:block}
.join-head{max-width:900px;margin-bottom:26px}
.join-points{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:6px}
.formula-cards--4{grid-template-columns:repeat(4,1fr)}
.formula-cards--4 .formula-card{display:flex;flex-direction:column;text-align:center}
.formula-cards--4 .formula-name{min-height:2.6em;display:flex;align-items:center;justify-content:center}
.formula-cards--4 .amount{margin:2px 0}
.formula-cards--4 .formula-sub{min-height:2.6em;display:flex;align-items:center;justify-content:center}
.formula-cards--4 .formula-btn{margin-top:auto}
@media (max-width:960px){ .formula-cards--4{grid-template-columns:repeat(2,1fr)} }
@media (max-width:520px){ .formula-cards--4{grid-template-columns:1fr} .formula-cards--4 .formula-name,.formula-cards--4 .formula-sub{min-height:0} }
.formula-card{padding:22px 24px}
.formula-card .formula-name{font-family:var(--font-display);font-weight:700;
  font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#dcdcdc;margin-bottom:6px}
.formula-card .amount{font-size:2.6rem}
.formula-card .amount small{font-size:1rem;font-weight:600;color:#cfcfcf}
.formula-card .formula-sub{color:#dcdcdc;margin:.3em 0 16px;font-size:.92rem}
.formula-btn{background:#fff;color:#111}
.formula-btn:hover{background:#e9e9e9;color:#111}

/* ===== Admin : suivi des cotisations ===== */
.cotis-form{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.cotis-form select,.cotis-form input{padding:6px 8px;font-size:.85rem;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}
.cotis-form input[type=date]{width:140px}
.row-unpaid td{background:var(--surface-2)}
[data-theme="dark"] .row-unpaid td{background:#22201c}

/* Colonne de texte lisible */
.prose-wrap{max-width:760px}
.prose-wrap p{margin:0 0 1em;color:var(--ink)}

/* ===== Organigramme du bureau (pro) ===== */
.org{--org-line:var(--line);text-align:center;padding-top:6px}

/* Rangée présidence */
.org-row--top{position:relative;display:flex;justify-content:center;gap:26px;flex-wrap:wrap;padding-bottom:30px}
.org-row--top::after{content:"";position:absolute;left:50%;bottom:0;width:2px;height:30px;background:var(--org-line);transform:translateX(-50%)}

/* Rangée des membres (ligne 2) */
.org-row--members{position:relative;display:flex;justify-content:center;gap:20px;flex-wrap:wrap;padding-top:30px}
.org-row--members::before{content:"";position:absolute;top:0;left:12.5%;right:12.5%;height:2px;background:var(--org-line)}
.org-row--members .org-card{min-width:180px}
.org-row--members .org-card::before{content:"";position:absolute;top:-30px;left:50%;width:2px;height:30px;background:var(--org-line);transform:translateX(-50%)}

/* Libellé de pôle (non utilisé en 2 lignes, conservé) */
.org-dept{font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);background:var(--surface);padding:2px 12px;border:1px solid var(--line);
  border-radius:999px;margin-bottom:2px;position:relative;z-index:1}

/* Carte membre */
.org-card{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;
  background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px 22px 18px;
  box-shadow:var(--shadow-sm);min-width:210px;
  animation:orgIn .55s cubic-bezier(.2,.8,.2,1) backwards;transition:transform .16s,box-shadow .16s,border-color .16s}
.org-card:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:var(--ocean)}
.org-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:var(--foam);color:var(--ocean);font-family:var(--font-display);font-weight:800;font-size:1.2rem;
  letter-spacing:.02em;margin-bottom:12px;border:1px solid var(--line)}
[data-theme="dark"] .org-avatar{color:#f0f0f0}
.org-role{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin-bottom:3px}
.org-name{font-family:var(--font-display);font-weight:700;color:var(--ocean);font-size:1.08rem;line-height:1.15}

/* Co-présidence : mise en avant */
.org-card--lead{border-color:var(--ocean);border-width:2px;padding-top:22px}
.org-card--lead::before{content:"";position:absolute;top:0;left:22px;right:22px;height:3px;border-radius:0 0 3px 3px;background:var(--ocean)}
.org-card--lead .org-avatar{background:var(--ocean);color:#fff;border-color:var(--ocean);width:60px;height:60px;font-size:1.3rem}
[data-theme="dark"] .org-card--lead .org-avatar{color:#111}

/* Adjoints : légèrement estompés */
.org-card--sub{position:relative}
.org-card--sub::before{content:"";position:absolute;top:-26px;left:50%;width:2px;height:26px;background:var(--org-line);transform:translateX(-50%)}
.org-card--sub .org-avatar{width:48px;height:48px;font-size:1.05rem}

@keyframes orgIn{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:none}}

@media (max-width:820px){
  /* 4 membres -> 2 par ligne */
  .org-row--members{gap:16px}
  .org-row--members::before{display:none}
  .org-row--members .org-card::before{display:none}
  .org-row--members .org-card{flex:1 1 40%;min-width:200px}
}
@media (max-width:680px){
  .org-row--members{flex-direction:column;align-items:center}
  .org-card{min-width:240px;width:100%;max-width:320px}
}
@media (prefers-reduced-motion:reduce){
  .org-card{animation:none}
}

/* ===== Footer encore plus compact + Facebook en icône ===== */
.site-footer{margin-top:32px;padding-bottom:14px}
.wave-top svg{height:22px}
.footer-grid{gap:18px;padding-top:22px}
.site-footer h4{margin-bottom:6px;font-size:.9rem}
.site-footer p{margin:.3em 0}
.site-footer a{padding:2px 0;font-size:.9rem}
.footer-bottom{margin-top:12px;padding-top:10px;font-size:.78rem}
.brand--footer .brand-text{font-size:1.05rem}
.social-link--icon{width:40px;height:40px;padding:0;border-radius:50%;justify-content:center;margin-top:8px}
.social-link--icon svg{margin:0}

/* ===== Pages légales ===== */
.legal h2{color:var(--ocean);font-size:1.25rem;margin:1.6em 0 .5em}
.legal h2:first-child{margin-top:0}
.legal p{margin:0 0 1em;color:var(--ink)}
.legal ul{margin:0 0 1em;padding-left:1.2em;color:var(--ink)}
.legal li{margin:.35em 0}
.legal a{color:var(--ocean);text-decoration:underline}

/* ===== Page "Qui sommes-nous" : cartes de valeurs ===== */
.value-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:26px 24px;
  box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s}
.value-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.value-ic{width:52px;height:52px;border-radius:14px;display:inline-flex;align-items:center;justify-content:center;
  background:var(--foam);color:var(--ocean);margin-bottom:14px}
.value-ic svg{width:26px;height:26px}
.value-card h3{color:var(--ocean);margin:0 0 8px;font-size:1.15rem}
.value-card p{color:var(--ink);margin:0}
.lead-p{font-size:1.12rem;font-weight:500;color:var(--ink);border-left:3px solid var(--ocean);padding-left:16px}
.text-center{text-align:center}

/* ===== Page galerie ===== */
.gallery-block{margin-bottom:40px}
.gallery-block:last-child{margin-bottom:0}
.gallery-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.gallery-head h2{margin:0}

/* ===== Admin : mise en forme homogène ===== */
.admin-main h1{font-size:1.6rem;color:var(--ocean);margin:0 0 2px}
.admin-main > p.sub{color:var(--muted);margin:0 0 22px}
.admin-side .side-label{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;
  color:#8a8a8a;font-weight:700;margin:14px 12px 6px}
.admin-side .side-sep{height:1px;background:rgba(255,255,255,.14);margin:14px 8px}

.admin-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:22px 24px;box-shadow:var(--shadow-sm)}
.admin-card + .admin-card{margin-top:20px}
.admin-card > h2{margin:0 0 16px;font-size:1.1rem;color:var(--ocean);
  padding-bottom:12px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:10px}
/* Labels de champ atténués : hiérarchie claire titre de bloc / label (marche aussi en thème monochrome) */
.admin-card .field label{color:var(--muted)}
.admin-card .hint{margin-top:-6px}

/* Grille de réglages */
.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start}
.settings-grid .admin-card{margin-top:0}
.admin-card--wide{grid-column:1 / -1}
.admin-card--danger{border-color:#e3c9c4}
.admin-card--danger > h2{color:var(--coral)}
.settings-actions{position:sticky;bottom:0;background:linear-gradient(var(--surface-2),var(--surface-2));
  margin-top:22px;padding:14px 0;display:flex;justify-content:flex-end;gap:10px;
  border-top:1px solid var(--line)}
[data-theme="dark"] .settings-actions{background:transparent}

/* Compteur / badge d'en-tête de carte */
.card-count{font-size:.75rem;font-weight:700;background:var(--ocean);color:#fff;border-radius:999px;padding:2px 10px}
[data-theme="dark"] .card-count{color:#111}

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

/* ===== Fiche d'adhésion ===== */
.adhesion-form{display:flex;flex-direction:column;gap:20px}
.form-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:20px 22px;box-shadow:var(--shadow-sm);margin:0}
.form-card > legend{font-family:var(--font-display);font-weight:700;color:var(--ocean);
  font-size:1.05rem;padding:0 8px;margin-left:-8px}

/* Choix de formule (cartes radio) */
.formule-choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:14px}
.formule-opt{position:relative;display:flex;cursor:pointer}
.formule-opt input{position:absolute;opacity:0;inset:0;cursor:pointer}
.formule-body{flex:1;display:flex;flex-direction:column;gap:2px;border:2px solid var(--line);border-radius:12px;
  padding:14px 16px;transition:border-color .15s,background .15s}
.formule-opt:hover .formule-body{border-color:var(--aqua)}
.formule-opt input:checked + .formule-body{border-color:var(--ocean);background:var(--foam)}
.formule-opt input:focus-visible + .formule-body{outline:3px solid #999;outline-offset:2px}
.formule-t{font-family:var(--font-display);font-weight:700;color:var(--ocean)}
.formule-p{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--ink)}
.formule-p small{font-size:.7rem;font-weight:600;color:var(--muted)}
.formule-s{font-size:.82rem;color:var(--muted)}

/* Consentements */
.consent{display:flex;gap:.6em;align-items:flex-start;font-weight:400;margin-bottom:12px;line-height:1.5}
.consent:last-child{margin-bottom:0}
.consent input{width:auto;margin-top:.25em;flex:0 0 auto}

@media (max-width:560px){ .formule-choice{grid-template-columns:1fr} }

/* Boutons du hero (fond toujours sombre) lisibles dans les deux thèmes */
.hero .btn-coral{background:#fff;color:#111}
.hero .btn-coral:hover{background:#e9e9e9;color:#111}

/* ===== Affinages responsive (mobile) ===== */
@media (max-width:600px){
  .wrap{padding:0 16px}
  .hero{padding:56px 0 92px}
  .hero-waves svg{height:82px}
  .section{padding:46px 0}
  .section-head{margin-bottom:26px}
  .page-hero{padding:40px 0 30px}
  .breadcrumb{font-size:.8rem}
  .card{padding:20px 18px}
  .card-block,.form-card,.admin-card{padding-left:18px;padding-right:18px}
  .event-card .ec-top,.event-card .ec-body{padding-left:16px;padding-right:16px}
  .profile-card{padding:22px 20px}
}
@media (max-width:480px){
  /* CTA pleine largeur, faciles à toucher */
  .hero-cta,.hero-cta .btn{width:100%}
  .hero-cta .btn{flex:1 1 100%}
  .text-center .tag-row{flex-direction:column}
  .text-center .tag-row .btn{width:100%}
  .sr-date{width:48px;height:48px}
  .sr-day{font-size:1.1rem}
  .formule-p{font-size:1.25rem}
}

/* ===== Pièces jointes (espace membre) ===== */
.doc-block{margin-top:24px}
.doc-list{list-style:none;padding:0;margin:0 0 4px}
.doc-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);
  border-radius:12px;background:var(--surface-2);margin-bottom:8px;flex-wrap:wrap}
.doc-ic{flex:0 0 auto}
.doc-name{flex:1 1 auto;min-width:0;color:var(--ocean);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-meta{flex:0 0 auto;color:var(--muted);font-size:.82rem}
.doc-del{flex:0 0 auto}
@media (max-width:520px){
  .doc-meta{flex:1 1 100%;order:3}
  .doc-del{margin-left:auto}
}

/* ===== Sorties fusionnées : sous-titres de groupe ===== */
.sortie-group-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);
  font-weight:700;margin:18px 0 6px;padding-top:12px;border-top:1px solid var(--line)}
.sortie-list > .sortie-group-label:first-child{margin-top:0;padding-top:0;border-top:0}

/* ===== Liste événements (cartes horizontales, style ELC) ===== */
.evt-list{display:flex;flex-direction:column;gap:18px}
.evt{display:flex;gap:26px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);
  border-radius:16px;padding:24px 26px;box-shadow:var(--shadow-sm);transition:box-shadow .15s}
.evt:hover{box-shadow:var(--shadow)}
.evt.past{opacity:.82}
.evt-date{flex:0 0 88px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding-right:26px;border-right:1px solid var(--line);min-height:96px}
.evt-day{font-family:var(--font-display);font-weight:800;font-size:2.9rem;line-height:1;color:var(--ocean)}
.evt-mon{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700;font-size:.78rem;margin-top:4px}
.evt-year{color:var(--muted);font-size:.78rem;margin-top:2px}
.evt-main{flex:1 1 auto;min-width:0}
.evt-title{font-family:var(--font-display);font-size:1.5rem;margin:10px 0 8px;line-height:1.15}
.evt-title a{color:var(--ink)}
.evt-title a:hover{color:var(--ocean);text-decoration:none}
.evt-meta{display:flex;flex-wrap:wrap;gap:18px;color:var(--muted);font-size:.92rem;margin-bottom:10px}
.evt-mi{display:inline-flex;align-items:center;gap:7px}
.evt-mi svg{width:15px;height:15px;flex:0 0 auto;color:var(--ocean)}
.evt-desc{color:var(--ink);margin:0 0 14px;max-width:82ch}
.evt-share{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.evt-share-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin-right:2px}
.evt-sh{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);display:inline-flex;
  align-items:center;justify-content:center;color:var(--ocean);background:var(--surface);cursor:pointer;
  padding:0;transition:background .15s,color .15s,border-color .15s}
.evt-sh:hover{background:var(--ocean);color:#fff;border-color:var(--ocean);text-decoration:none}
.evt-sh.copied{background:var(--ocean);color:#fff;border-color:var(--ocean)}
.evt-sh svg{width:16px;height:16px}
[data-theme="dark"] .evt-sh:hover,[data-theme="dark"] .evt-sh.copied{color:#111}
.evt-status{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:10px;text-align:right;min-width:110px}
.evt-badge{font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;padding:8px 16px;border-radius:8px}
.evt-badge--up{background:var(--ocean);color:#fff}
[data-theme="dark"] .evt-badge--up{color:#111}
.evt-badge--past{background:var(--surface-2);color:var(--muted)}
.evt-cta{white-space:nowrap}
.evt-places{font-size:.82rem;color:var(--muted)}

@media (max-width:760px){
  .evt{flex-wrap:wrap;gap:14px;padding:20px}
  .evt-date{flex:0 0 auto;flex-direction:row;align-items:baseline;gap:8px;border-right:0;
    border-bottom:1px solid var(--line);padding:0 0 12px;width:100%;min-height:0;justify-content:flex-start}
  .evt-day{font-size:2rem}
  .evt-mon,.evt-year{margin-top:0}
  .evt-main{flex:1 1 100%}
  .evt-status{width:100%;flex-direction:row;align-items:center;justify-content:space-between;min-width:0;text-align:left}
}

/* ===== RIB / confirmation d'adhésion ===== */
.confirm-card{text-align:left}
.confirm-check{width:56px;height:56px;border-radius:50%;background:var(--ocean);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:800;margin-bottom:14px}
[data-theme="dark"] .confirm-check{color:#111}
.rib-card{border:1px solid var(--line);border-radius:14px;background:var(--surface-2);padding:18px 20px;margin-top:6px}
.rib-head{font-family:var(--font-display);font-weight:700;color:var(--ocean);margin-bottom:12px}
.rib-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.rib-row:last-child{border-bottom:0}
.rib-l{flex:0 0 96px;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.rib-v{flex:1 1 auto;min-width:0;color:var(--ink);font-weight:600;word-break:break-word}
.rib-iban{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em}
.rib-copy{flex:0 0 auto;background:var(--ocean);color:#fff;border:0;border-radius:8px;padding:6px 12px;
  font-size:.8rem;font-weight:600;cursor:pointer;transition:opacity .15s}
.rib-copy:hover{opacity:.85}
.rib-copy.copied{background:#2e7d32}
[data-theme="dark"] .rib-copy{color:#111}
@media (max-width:520px){ .rib-l{flex:1 1 100%} }

/* ===== Modale (popup) ===== */
.modal{position:fixed;inset:0;z-index:2000;display:none}
.modal.open{display:block}
.modal-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55)}
.modal-dialog{position:relative;max-width:760px;margin:5vh auto;background:var(--surface);border:1px solid var(--line);
  border-radius:16px;box-shadow:var(--shadow);max-height:90vh;display:flex;flex-direction:column;overflow:hidden;
  animation:modalIn .2s ease}
@keyframes modalIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 22px;border-bottom:1px solid var(--line)}
.modal-head h2{margin:0;color:var(--ocean);font-size:1.3rem;font-family:var(--font-display)}
.modal-close{background:none;border:0;font-size:1.9rem;line-height:1;color:var(--muted);cursor:pointer;padding:0 4px}
.modal-close:hover{color:var(--ink)}
.modal-body{padding:20px 22px;overflow:auto}
.modal--prod .modal-dialog{max-width:940px}
@media (max-width:640px){
  .modal-dialog{margin:0;max-width:100%;min-height:100vh;max-height:100vh;border-radius:0;border:0}
}

/* ===== Page contact (refonte) ===== */
.contact-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:28px}
.contact-tile{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px 20px;
  box-shadow:var(--shadow-sm);text-align:center;transition:transform .15s,box-shadow .15s}
.contact-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.ct-ic{width:48px;height:48px;border-radius:12px;background:var(--foam);color:var(--ocean);
  display:inline-flex;align-items:center;justify-content:center;margin-bottom:12px}
.ct-ic svg{width:22px;height:22px}
.contact-tile h3{font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;margin:0 0 6px}
.contact-tile p,.contact-tile > a{color:var(--ink);font-weight:600;margin:0;word-break:break-word;display:block}
.contact-tile > a:hover{color:var(--ocean);text-decoration:none}
.ct-link{display:inline-block;margin-top:8px;font-size:.85rem;color:var(--ocean);font-weight:600}

.contact-form-card textarea{min-height:150px}
.contact-aside{display:flex;flex-direction:column;gap:16px}
.contact-aside .panel{margin:0}
.aff-badge{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.aff-badge .ct-ic{margin:0;flex:0 0 auto}
.social-link--full{display:inline-flex;align-items:center;gap:10px;width:100%;justify-content:center;
  border:1px solid var(--line);border-radius:10px;padding:10px 14px;color:var(--ocean);font-weight:600;transition:background .15s,color .15s}
.social-link--full:hover{background:var(--ocean);color:#fff;text-decoration:none}
[data-theme="dark"] .social-link--full:hover{color:#111}

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

/* ===== Onglets de filtre événements (style soulignement) ===== */
.evt-tabbar{display:flex;justify-content:flex-end;margin-bottom:6px}
.evt-tabs{display:flex;gap:30px;flex-wrap:wrap;border-bottom:1px solid var(--line);margin-bottom:26px}
.evt-tab{position:relative;padding:12px 2px;color:var(--muted);font-family:var(--font-display);font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;white-space:nowrap;transition:color .15s}
.evt-tab span{font-weight:600;opacity:.65}
.evt-tab:hover{color:var(--ink);text-decoration:none}
.evt-tab.is-active{color:var(--ocean)}
.evt-tab.is-active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:3px;
  background:var(--ocean);border-radius:3px 3px 0 0}
@media (max-width:600px){
  .evt-tabs{gap:20px;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}
  .evt-tab{font-size:.82rem}
}

/* ===== Barre d'actions sous la carte (contact) ===== */
.map-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 22px;margin-top:14px;box-shadow:var(--shadow-sm)}
.ma-info{display:flex;align-items:center;gap:14px;min-width:0}
.ma-ic{width:40px;height:40px;border-radius:10px;background:var(--foam);color:var(--ocean);
  display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.ma-ic svg{width:20px;height:20px}
.ma-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700}
.ma-addr{color:var(--ink);font-weight:600;word-break:break-word}
.ma-btns{display:flex;gap:10px;flex-wrap:wrap}
@media (max-width:640px){
  .map-actions{flex-direction:column;align-items:stretch}
  .ma-btns{width:100%}
  .ma-btns .btn{flex:1 1 auto;text-align:center}
}

/* ===== Forum (refonte) ===== */
.forum-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.forum-search{display:flex;align-items:center;gap:6px;flex:1 1 260px;max-width:440px;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:5px 6px 5px 18px;
  box-shadow:var(--shadow-sm);transition:border-color .15s,box-shadow .15s}
.forum-search:focus-within{border-color:var(--ocean);box-shadow:0 0 0 3px rgba(11,79,108,.15)}
.forum-search input{flex:1 1 auto;border:0;background:transparent;outline:none;padding:9px 0;
  font-size:.95rem;font-family:var(--font-body);color:var(--ink)}
.forum-search input::placeholder{color:var(--muted)}
.forum-search input:focus{border:0;box-shadow:none}
.forum-search button{flex:0 0 auto;border-radius:999px}

.topic-list{display:flex;flex-direction:column;gap:10px}
.topic-card{display:flex;gap:14px;align-items:flex-start;background:var(--surface);border:1px solid var(--line);
  border-radius:12px;padding:14px 16px;box-shadow:var(--shadow-sm);transition:box-shadow .15s,border-color .15s;color:inherit}
.topic-card:hover{box-shadow:var(--shadow);text-decoration:none}
.topic-card.unread{border-left:3px solid var(--ocean)}
.t-avatar{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--foam);color:var(--ocean);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:.9rem}
.t-body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.t-title{font-weight:700;color:var(--ocean);display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.t-new{font-size:.62rem;text-transform:uppercase;letter-spacing:.04em;background:var(--coral);color:#fff;padding:1px 7px;border-radius:999px;font-weight:700}
.t-excerpt{color:var(--ink);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.t-excerpt b{color:var(--ocean)}
.t-meta{color:var(--muted);font-size:.8rem}
.t-cat{font-weight:600}

.cat-list{display:flex;flex-direction:column;gap:10px}
.cat-card{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--surface);
  border:1px solid var(--line);border-radius:12px;padding:14px 16px;box-shadow:var(--shadow-sm);transition:box-shadow .15s;color:inherit}
.cat-card:hover{box-shadow:var(--shadow);text-decoration:none}
.cat-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.cat-main strong{color:var(--ocean)}
.cat-main .muted{font-size:.85rem}
.cat-stats{display:flex;flex-direction:column;align-items:flex-end;gap:2px;color:var(--muted);font-size:.8rem;white-space:nowrap;flex:0 0 auto}

/* Messages d'un sujet */
.post{display:flex;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:14px;
  padding:16px 18px;margin-bottom:14px;box-shadow:var(--shadow-sm)}
.post-side{flex:0 0 auto}
.post-avatar{width:44px;height:44px;border-radius:50%;background:var(--foam);color:var(--ocean);
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800}
.post-content{flex:1 1 auto;min-width:0}
.post-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:baseline;margin-bottom:6px}
.post-author{font-weight:700;color:var(--ocean);display:inline-flex;align-items:center;gap:8px}
.badge-bureau{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;background:var(--ocean);color:#fff;padding:2px 7px;border-radius:6px;font-weight:700}
[data-theme="dark"] .badge-bureau{color:#111}
.post-date{color:var(--muted);font-size:.85rem}
.post-body{color:var(--ink);line-height:1.6;word-break:break-word}
.post-body a{color:var(--ocean);text-decoration:underline}
.post-actions{display:flex;gap:14px;margin-top:10px;align-items:center;flex-wrap:wrap}
.post-actions .inline-form{display:inline}
.post-link{background:none;border:0;color:var(--muted);cursor:pointer;font-size:.85rem;font-weight:600;padding:0}
.post-link:hover{color:var(--ocean)}
.post-link--danger{color:var(--coral)}
.edit-form{margin-top:12px}
.edit-form textarea{width:100%}

.pager{display:flex;gap:6px;flex-wrap:wrap;margin-top:18px;justify-content:center}
.pager-link{min-width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:8px;color:var(--ink);font-weight:600}
.pager-link:hover{border-color:var(--ocean);text-decoration:none}
.pager-link.is-active{background:var(--ocean);color:#fff;border-color:var(--ocean)}
[data-theme="dark"] .pager-link.is-active{color:#111}

@media (max-width:600px){
  .forum-toolbar{flex-direction:column;align-items:stretch}
  .forum-search{max-width:none}
  .cat-card{flex-wrap:wrap}
}

/* Modales légales (texte long) */
.modal--legal .modal-dialog{max-width:820px}
.modal--legal .modal-body.legal h2{font-size:1.15rem;color:var(--ocean);margin:18px 0 8px}
.modal--legal .modal-body.legal h2:first-child{margin-top:0}
.modal--legal .modal-body.legal p,.modal--legal .modal-body.legal li{line-height:1.6}

/* Encadré d'avertissement (formulaires) */
.notice-warn{background:#fff7ed;border:1px solid #f0d9b5;color:#7a4f18;border-radius:10px;padding:12px 14px;font-size:.92rem;line-height:1.5}
[data-theme="dark"] .notice-warn{background:#2a2113;border-color:#5a4a26;color:#e8d3a8}
/* Badges de complétude */
.dossier-ok{display:inline-flex;align-items:center;gap:6px;background:#e6f4ea;color:#1e7a34;border:1px solid #b7e0c2;border-radius:999px;padding:3px 12px;font-weight:700;font-size:.8rem}
.dossier-ko{display:inline-flex;align-items:center;gap:6px;background:#fdecec;color:#c0392b;border:1px solid #f5c6c6;border-radius:999px;padding:3px 12px;font-weight:700;font-size:.8rem}
.dossier-miss{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}

/* Mon espace : deux colonnes (profil | documents & sorties) */
.espace-left,.espace-right{display:flex;flex-direction:column;gap:20px}
.espace-left .card-block,.espace-right .card-block{margin:0}
.espace-left .profile-card{max-width:none}

/* Admin cotisations : formulaire d'enregistrement aligné */
.cotis-table td{vertical-align:top}
.cotis-form{display:flex;flex-wrap:wrap;gap:14px 20px;align-items:flex-end;width:100%}
.cf-field{display:flex;flex-direction:column;gap:5px;flex:1 1 140px;min-width:0}
.cf-field > span{font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.cotis-form select,.cotis-form input{height:40px;border:1px solid var(--line);border-radius:8px;padding:0 12px;background:var(--surface);color:var(--ink);width:100%}
.cotis-form select{min-width:0}
.cf-amount{flex:0 0 120px}
.cf-date{flex:0 0 180px}
.cf-actions{display:flex;gap:8px;align-items:center;padding-bottom:1px;flex:0 0 auto}
.cf-actions .inline-form{display:inline}
.cotis-unpay{margin-top:6px}
@media (max-width:900px){ .cotis-form{gap:8px} .cotis-form select{min-width:120px} }

/* Admin adhérents : panneau de gestion dépliable */
.manage-row > td{background:var(--surface-2);padding:16px 18px}
.manage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;align-items:start}
.manage-group{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:14px}
.manage-group.mg-wide{grid-column:1/-1}
.mg-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.manage-group .inline-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:0}
.manage-group input[type="date"],.manage-group input[name="fonction"]{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font-size:.85rem;background:var(--surface);color:var(--ink)}
.manage-group input[name="fonction"]{width:180px}
.manage-group input[type="file"]{font-size:.78rem;max-width:190px}
.mg-bureau{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.mg-photo{width:44px;height:44px;border-radius:50%;object-fit:cover}
[data-toggle-row].open{background:var(--ocean);color:#fff;border-color:var(--ocean)}
[data-theme="dark"] [data-toggle-row].open{color:#111}

/* Bouton d'upload en un clic */
.file-btn{cursor:pointer;display:inline-flex;align-items:center}
.file-btn input[type="file"]{display:none}

/* Galerie : lightbox (popup photo) */
.lightbox{position:fixed;inset:0;z-index:3000;display:none;align-items:center;justify-content:center;
  background:rgba(0,0,0,.9);padding:30px}
.lightbox.open{display:flex}
.lb-img{max-width:92vw;max-height:88vh;border-radius:8px;box-shadow:0 12px 48px rgba(0,0,0,.55);object-fit:contain}
.lb-close{position:absolute;top:16px;right:22px;background:none;border:0;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer;padding:0}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.14);border:0;color:#fff;
  font-size:2.2rem;line-height:1;width:52px;height:52px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center}
.lb-nav:hover{background:rgba(255,255,255,.28)}
.lb-prev{left:18px}
.lb-next{right:18px}
@media (max-width:600px){ .lb-nav{width:42px;height:42px;font-size:1.7rem} .lb-close{top:8px;right:14px;font-size:2.2rem} }

/* ===== Raffinements responsive / mobile ===== */
@media (max-width:768px){
  .section{padding:50px 0}
  .page-hero{padding:40px 0 28px}
  .admin-main{padding:20px 15px}
  .breadcrumb{font-size:.82rem}
}
@media (max-width:600px){
  .wrap{padding:0 15px}
  .section{padding:40px 0}
  .btn{padding:.72em 1.15em}
  .hero-cta{gap:10px}
  .hero-cta .btn{flex:1 1 auto;text-align:center}
  .hero-stats{gap:20px;margin-top:28px}
  .hero-stats .num{font-size:1.6rem}
  .stat-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}
  .stat-box{padding:14px}
  .stat-box .n{font-size:1.55rem}
  .toolbar h1{font-size:1.45rem}
  table.data th,table.data td{padding:10px}
  .modal-body{padding:16px}
  .modal-head{padding:14px 16px}
  .form-card{padding:16px}
  .card,.panel{padding:18px}
  .section-head h2{font-size:1.5rem}
}
@media (max-width:400px){
  .stat-grid{grid-template-columns:1fr}
  .hero-stats{gap:14px}
  .wrap{padding:0 13px}
}

/* ===== Zone de dépôt de fichier (dropzone) ===== */
.upload-zone{position:relative;border:2px dashed var(--line);border-radius:14px;background:var(--surface-2);
  padding:26px 20px;text-align:center;transition:border-color .2s,background .2s}
.upload-zone:hover,.upload-zone.drag{border-color:var(--ocean);background:var(--foam)}
.upload-zone.has-file{border-style:solid;border-color:var(--ocean);background:var(--foam)}
.upload-inner{display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;color:var(--ink);margin:0}
.up-ic{width:46px;height:46px;border-radius:12px;background:var(--surface);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;color:var(--ocean)}
.up-ic svg{width:24px;height:24px}
.upload-title{font-family:var(--font-display);font-weight:700;color:var(--ocean)}
.upload-sub{font-size:.85rem;color:var(--muted)}
.upload-file{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-weight:600;color:var(--ocean);font-size:.9rem;
  background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:6px 14px}
.upload-file[hidden]{display:none}
.upload-clear{border:0;background:var(--surface-2);color:var(--muted);width:20px;height:20px;line-height:1;border-radius:50%;
  cursor:pointer;font-size:15px;display:inline-flex;align-items:center;justify-content:center;padding:0;margin-left:2px;flex:0 0 auto}
.upload-clear:hover{background:var(--coral);color:#fff}

/* Panneau Gérer : lignes compactes */
.manage-list{background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mrow{display:flex;gap:14px;align-items:center;padding:9px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.mrow:last-child{border-bottom:0}
.mrow-label{flex:0 0 auto;min-width:120px;white-space:nowrap;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;line-height:1.2}
.mrow-ctrl{flex:1 1 260px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mrow-ctrl .inline-form{display:inline-flex;gap:6px;align-items:center;margin:0}
.mrow-ctrl input[type="date"],.mrow-ctrl input[name="fonction"],.mrow-ctrl select,.mrow-ctrl input[name="poste"]{height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:.85rem;background:var(--surface);color:var(--ink)}
.mrow-ctrl select{padding-right:28px;cursor:pointer;max-width:100%}
.mrow-ctrl input[name="fonction"]{width:150px}

@media (max-width:600px){ .mrow-label{flex:1 1 100%} }

[data-theme="dark"] .dossier-ok{background:#12331d;color:#7fd694;border-color:#2c5a38}
[data-theme="dark"] .dossier-ko{background:#3a1717;color:#f0908a;border-color:#5c2a2a}

/* Panneau Gérer : formulaire d'infos inline */
.manage-edit{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:16px;margin:12px 0}
.me-head{font-family:var(--font-display);font-weight:700;color:var(--ocean);margin-bottom:12px;font-size:.95rem}
.manage-edit .form-row{margin-bottom:0}
.manage-edit .field{margin-bottom:12px}
.me-check{display:inline-flex;gap:8px;align-items:center;font-size:.9rem}
.me-check input{width:auto}

/* Panneau Gérer : blocs pliables */
.mblock{border:1px solid var(--line);border-radius:10px;margin-bottom:10px;background:var(--surface);overflow:hidden}
.mblock:last-child{margin-bottom:0}
.mblock > summary{cursor:pointer;padding:12px 16px;font-family:var(--font-display);font-weight:700;color:var(--ocean);
  list-style:none;display:flex;align-items:center;gap:8px;user-select:none}
.mblock > summary::-webkit-details-marker{display:none}
.mblock > summary::before{content:"\25B8";transition:transform .15s ease;display:inline-block;font-size:.9em}
.mblock[open] > summary::before{transform:rotate(90deg)}
.mblock > summary:hover{background:var(--surface-2)}
.mblock .manage-edit,.mblock .manage-list{margin:0;border:0;border-top:1px solid var(--line);border-radius:0}

/* Ligne adhérent cliquable */
.row-toggle{cursor:pointer;transition:background .12s}
.row-toggle:hover{background:var(--foam)}
[data-theme="dark"] .row-toggle:hover{background:rgba(255,255,255,.05)}
.row-toggle.open{background:var(--foam)}
[data-theme="dark"] .row-toggle.open{background:rgba(255,255,255,.05)}
.row-chev{display:inline-block;color:var(--ocean);font-size:1.05em;transition:transform .15s ease}
.row-toggle.open .row-chev{transform:rotate(90deg)}

/* Zone de dépôt compacte (panneau admin) */
.upload-zone.upload-sm{padding:16px 14px}
.upload-zone.upload-sm .up-ic{width:38px;height:38px}
.upload-zone.upload-sm .upload-sub{font-size:.8rem}

/* Masque les flèches des champs nombre */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}
input[type="number"]{-moz-appearance:textfield;appearance:textfield}

/* Historique des cotisations */
.histo-line{display:flex;gap:14px;align-items:center;padding:5px 0;border-bottom:1px dashed var(--line);font-size:.85rem}
.histo-line:last-child{border-bottom:0}
.histo-del{margin-left:auto}
.histo-del-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:18px;line-height:1;padding:0 4px;border-radius:4px}
.histo-del-btn:hover{color:var(--coral);background:var(--surface-2)}
.histo-edit-btn{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;line-height:1;padding:0 4px;border-radius:4px}
.histo-edit-btn:hover{color:var(--ocean);background:var(--surface-2)}
.histo-line .histo-edit-form{display:none;flex-wrap:wrap;gap:6px;align-items:center;width:100%}
.histo-line .histo-edit-form input[type="date"],.histo-line .histo-edit-form input[type="text"],
.histo-line .histo-edit-form input[type="number"],.histo-line .histo-edit-form select{height:32px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font-size:.85rem;background:var(--surface);color:var(--ink)}
.histo-line .histo-edit-form input[type="number"]{width:90px}
.histo-line.editing .histo-date,.histo-line.editing .histo-saison,.histo-line.editing .histo-montant,
.histo-line.editing .histo-mode,.histo-line.editing .histo-edit-btn,.histo-line.editing .histo-del{display:none}
.histo-line.editing .histo-edit-form{display:flex}
.histo-date{color:var(--muted);min-width:82px}
.histo-saison{color:var(--muted);min-width:78px}
.histo-montant{font-weight:700;color:var(--ocean);min-width:70px}
.histo-mode{color:var(--muted)}

/* Boutons d'action en emoji */
.btn-icon{padding:.4em .55em;font-size:1rem;line-height:1;min-width:36px;text-align:center}

/* Pastille de compteur dans la sidebar admin */
.side-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;
  border-radius:999px;background:var(--coral);color:#fff;font-size:.72rem;font-weight:700;margin-left:4px}

/* Popup détail événement */
.evt-modal-body{overflow-y:auto;max-height:90vh;padding:0}
.evt-modal-body .section{padding:24px 0}
.evt-modal-body > .evt-modal-head{padding:22px 26px 0}
.evt-modal-loading{padding:40px;text-align:center;color:var(--muted)}
#evt-modal .modal-close{position:absolute;right:14px;top:12px;z-index:3;background:var(--surface);border:1px solid var(--line);border-radius:50%;width:34px;height:34px}

/* ===== Correctifs mode sombre : texte lisible sur accent clair ===== */
[data-theme="dark"] .confirm-check,
[data-theme="dark"] .rib-copy,
[data-theme="dark"] .badge-bureau,
[data-theme="dark"] .pager-link.is-active,
[data-theme="dark"] .t-new,
[data-theme="dark"] .side-badge,
[data-theme="dark"] .btn-icon,
[data-theme="dark"] .social-link--full:hover{color:#111}
[data-theme="dark"] .notice-warn{background:#241d12;border-color:#4a3a20;color:#e8c98f}
[data-theme="dark"] .rib-copy.copied{color:#fff}
[data-theme="dark"] .stat-box .n{color:var(--ink)}

/* Bascule de thème dans la sidebar admin */
/* Même gabarit que les liens du menu (retrait, hauteur, taille) pour rester aligné avec eux */
.admin-theme-toggle{display:block;width:100%;text-align:left;background:none;border:0;cursor:pointer;
  font:inherit;font-size:.94rem;font-weight:500;color:inherit;padding:10px 12px;margin-bottom:4px;border-radius:10px;opacity:.85}
.admin-theme-toggle:hover{opacity:1;background:rgba(255,255,255,.1)}
.admin-theme-toggle .att-light{display:none}
.admin-theme-toggle .att-dark{display:inline}
[data-theme="dark"] .admin-theme-toggle .att-light{display:inline}
[data-theme="dark"] .admin-theme-toggle .att-dark{display:none}

/* Formulaire d'infos adhérent : grille compacte 4 colonnes */
.me-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.create-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.create-grid .field{margin:0}
.create-grid .field--full{grid-column:1 / -1}
@media (max-width:560px){ .create-grid{grid-template-columns:1fr} }
.me-grid .field{margin:0}
.me-grid .me-2{grid-column:span 2}
.me-grid .me-3{grid-column:span 3}
.me-grid .me-4{grid-column:1 / -1}
.pricing-addon{margin-top:16px;padding-top:16px;border-top:1px solid var(--line,#e5e7eb)}
.card-divider{border-top:1px solid var(--line);margin:20px 0}
/* En-tête section Commandes (boutique) */
.cmd-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.cmd-title{display:flex;align-items:center;gap:12px;min-width:0}
.cmd-title svg{width:22px;height:22px;color:var(--ocean);flex:0 0 auto}
.cmd-title h2{margin:0}
.cmd-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.cmd-search-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 14px}
.cmd-search-bar .mbox-search{flex:1 1 280px;max-width:420px}
.cmd-search-count{font-size:.85rem;color:var(--muted)}
.cmd-search-count[hidden]{display:none}
.cmd-ref{display:inline-block;margin:3px 0 2px;padding:1px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;color:var(--ink);user-select:all}
.cmd-ca{display:flex;flex-direction:column;align-items:flex-end;line-height:1.15}
.cmd-ca-lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.cmd-ca-val{font-family:var(--font-display);font-weight:700;color:var(--ocean);font-size:1.2rem}
@media (max-width:560px){
  .cmd-actions{width:100%;justify-content:space-between}
  .cmd-ca{align-items:flex-start}
}
/* Modale de confirmation (remplace window.confirm) */
.confirm-dialog{max-width:420px;text-align:center}
.confirm-dialog .modal-body{padding:26px 24px}
.confirm-ic{width:52px;height:52px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb, var(--coral) 12%, transparent);color:var(--coral)}
.confirm-ic svg{width:26px;height:26px}
.confirm-msg{margin:0 0 20px;font-size:1.02rem;color:var(--ink);line-height:1.4}
.confirm-actions{display:flex;gap:10px;justify-content:center}
.confirm-ok{background:var(--coral);border:1px solid var(--coral);color:#fff}
.confirm-ok:hover{filter:brightness(.94)}
[data-theme="dark"] .confirm-ok{color:#111}
@media (max-width:1000px){ .me-grid{grid-template-columns:repeat(2,1fr)} .me-grid .me-2{grid-column:span 1} .me-grid .me-3{grid-column:1 / -1} }
@media (max-width:560px){ .me-grid{grid-template-columns:1fr} .me-grid .me-2{grid-column:span 1} }

/* Boutique */
.boutique-grid{gap:28px}
.shop-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}
.shop-photo{position:relative;line-height:0}
.shop-photo img{width:100%;height:auto;display:block;object-fit:cover}
.shop-flag{position:absolute;bottom:12px;left:12px;background:var(--surface);color:var(--ocean);font-weight:700;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.05em;padding:5px 11px;border-radius:999px;box-shadow:var(--shadow-sm);opacity:.96}
.shop-info{padding:22px 24px 26px}
.shop-price{font-family:var(--font-display);font-weight:800;font-size:2.3rem;color:var(--ocean);margin:6px 0 4px}
.shop-opt{background:var(--foam);border:1px solid var(--line);border-radius:12px;padding:12px 14px;font-size:.9rem;margin:12px 0 0}
.shop-form{position:relative}
.shop-check{display:flex;gap:9px;align-items:center;font-weight:500;margin:6px 0 12px}
.shop-check input{width:auto}
.shop-total{background:var(--foam);border-radius:12px;padding:12px 16px;margin:8px 0 16px;font-weight:600}
.shop-total strong{color:var(--ocean);font-size:1.15rem}
.link-btn{background:none;border:0;padding:0;color:var(--ocean);font:inherit;font-size:.85rem;cursor:pointer;text-decoration:underline}
/* Catalogue */
.shop-catalog{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:22px}
.shop-tile{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;
  overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .15s,box-shadow .15s;text-decoration:none;color:inherit}
.shop-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow);text-decoration:none}
.shop-tile-photo{position:relative;line-height:0;aspect-ratio:4/3;background:var(--surface-2)}
.shop-tile-photo img{width:100%;height:100%;object-fit:cover;display:block}
.shop-tile-info{padding:16px 18px 18px;display:flex;flex-direction:column;align-items:flex-start;gap:2px}
.shop-tile-info h3{margin:0;font-size:1.1rem}
.shop-tile-price{font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:var(--ocean)}
/* Statuts commande */
.cmd-statut{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-weight:600;font-size:.82rem;cursor:pointer}
.cmd-nouvelle{background:#fdecec;color:#c0392b;border-color:#f2c4c0}
.cmd-payee{background:#eaf3fb;color:#1e6bb8;border-color:#c3ddf2}
.cmd-prete{background:#fff6e5;color:#a9701a;border-color:#f0dcb0}
.cmd-remise{background:#e6f4ea;color:#1e7a34;border-color:#bfe3c8}
[data-theme="dark"] .cmd-nouvelle{background:#3a1f1e;color:#f3b5af;border-color:#5c2e2b}
[data-theme="dark"] .cmd-payee{background:#16303f;color:#9cccf0;border-color:#28516b}
[data-theme="dark"] .cmd-prete{background:#3a2f16;color:#e8c98f;border-color:#5c4a20}
[data-theme="dark"] .cmd-remise{background:#173a24;color:#9fdcb0;border-color:#285c39}
@media (max-width:760px){ .boutique-grid{grid-template-columns:1fr} }

/* Note pratique sous les activités */
.activity-note{text-align:left;margin-top:14px;color:var(--muted);font-size:.88rem;
  background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.activity-note strong{color:var(--ink)}

/* Panier */
.nav-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;color:inherit;border-radius:10px}
.nav-cart svg{width:20px;height:20px}
.nav-cart:hover{background:var(--surface-2);text-decoration:none}
.nav-cart-badge{position:absolute;top:0;right:0;min-width:17px;height:17px;padding:0 4px;border-radius:999px;
  background:var(--coral);color:#fff;font-size:.68rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}
[data-theme="dark"] .nav-cart-badge{color:#111}
.cart-line{display:flex;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.cart-thumb{width:64px;height:64px;object-fit:cover;border-radius:10px;flex:0 0 auto}
.cart-line-info{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}
.cart-line-actions{display:flex;align-items:center;gap:14px;margin-top:6px}
.cart-line-actions select{padding:4px 8px}
.cart-line-total{font-weight:700;color:var(--ocean);white-space:nowrap}
.cart-sum{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0 4px;font-size:1.1rem}
.cart-sum strong{font-family:var(--font-display);font-size:1.6rem;color:var(--ocean)}

/* Photo dans l'organigramme */
.org-photo{object-fit:cover;padding:0}
.org-card--lead .org-photo{width:60px;height:60px}

/* Graphe de fréquentation (barres) */
.chart-bars{display:flex;align-items:flex-end;gap:3px;height:180px;overflow-x:auto;padding-top:8px;padding-bottom:30px}
.chart-bar{flex:1 1 auto;min-width:14px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;overflow:visible}
.chart-bar-fill{width:70%;max-width:26px;background:var(--ocean);border-radius:4px 4px 0 0;transition:height .3s;min-height:2px}
.chart-bar:hover .chart-bar-fill{background:var(--coral)}
.chart-bar-lbl{font-size:.58rem;color:var(--muted);margin-top:8px;white-space:nowrap;transform:rotate(-55deg);transform-origin:center right;height:0}
.chart-bar{background:none;border:0;padding:0;cursor:pointer}
.chart-bar .chart-bar-fill{transition:background .15s,opacity .15s}
.chart-bar:hover .chart-bar-fill{background:var(--coral)}
.chart-bar.is-selected .chart-bar-fill{background:var(--coral)}
.freq-tip{margin-top:14px}
.freq-tip-table{border-collapse:collapse;font-size:.9rem}
.freq-tip-table th{text-align:left;color:var(--muted);font-weight:600;padding:4px 18px 4px 0;white-space:nowrap}
.freq-tip-table td{font-weight:700;color:var(--ocean);padding:4px 0}
.chart-detail{margin-top:16px;padding:14px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;font-size:.95rem}
.chart-detail .cd-date{font-weight:700;color:var(--ink)}
.chart-detail .cd-stat{display:inline-flex;align-items:baseline;gap:6px;margin-right:18px}


/* Catalogue : nom cliquable + tuile non-lien */
.shop-tile-name{text-decoration:none;color:inherit}
.shop-tile-name:hover h3{color:var(--ocean)}
.shop-tile-name h3{margin:0}

/* Panier en tiroir (slide-in droite) */
.cart-drawer{position:fixed;inset:0;z-index:1200;visibility:hidden;pointer-events:none}
.cart-drawer.open{visibility:visible;pointer-events:auto}
.cart-drawer-overlay{position:absolute;inset:0;background:rgba(0,0,0,.45);opacity:0;transition:opacity .25s}
.cart-drawer.open .cart-drawer-overlay{opacity:1}
.cart-drawer-panel{position:absolute;top:0;right:0;height:100%;width:min(400px,92vw);background:var(--surface);
  box-shadow:-12px 0 40px rgba(0,0,0,.25);display:flex;flex-direction:column;transform:translateX(100%);
  transition:transform .28s ease;overflow:hidden}
.cart-drawer.open .cart-drawer-panel{transform:translateX(0)}
.cart-drawer-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}
.cart-drawer-head h2{margin:0;font-size:1.2rem}
.cart-drawer-close{background:none;border:0;font-size:1.8rem;line-height:1;cursor:pointer;color:var(--muted);padding:0 4px}
.cart-drawer-close:hover{color:var(--ink)}
.cart-drawer-body{flex:1 1 auto;overflow-y:auto;padding:16px 20px 22px}
.drawer-empty{text-align:center;color:var(--muted);padding:40px 10px;display:flex;flex-direction:column;gap:14px;align-items:center}
.drawer-line{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line)}
.drawer-thumb{width:56px;height:56px;object-fit:cover;border-radius:8px;flex:0 0 auto}
.drawer-line-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:3px}
.drawer-ctrl{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}
.drawer-ctrl select{padding:3px 6px;font-size:.85rem}
.drawer-line-total{font-weight:700;color:var(--ocean);white-space:nowrap}
.drawer-sum{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0;font-size:1.05rem;margin-top:4px}
.drawer-sum strong{font-family:var(--font-display);font-size:1.5rem;color:var(--ocean)}

/* ===== Garde-fous & polish mobile (v0.5.0) ===== */
html,body{overflow-x:hidden}
img{height:auto}
@media (max-width:600px){
  /* Évite le zoom auto iOS au focus des champs */
  input,select,textarea{font-size:16px}
  .drawer-ctrl select,.cotis-form select,.cotis-form input{font-size:16px}
  /* Cibles tactiles plus confortables */
  .btn{padding:.8em 1.3em}
  .btn-sm{padding:.6em 1.1em}
  .theme-toggle,.nav-cart{width:42px;height:42px}
  /* Titres un peu resserrés */
  h1{font-size:clamp(1.8rem,7vw,2.4rem)}
  h2{font-size:clamp(1.4rem,5.5vw,1.9rem)}
  /* Tiroir panier plein écran pour le confort */
  .cart-drawer-panel{width:100%}
  /* Grille boutique : 2 colonnes serrées au lieu de cartes trop larges */
  .shop-catalog{grid-template-columns:repeat(2,1fr);gap:12px}
}
@media (max-width:380px){
  .shop-catalog{grid-template-columns:1fr}
  .brand-text{font-size:1rem}
}

/* ===== Trombinoscope par pôles (v0.5.2) ===== */
.bureau-poles{display:flex;flex-direction:column;gap:36px}
.pole-title{font-family:var(--font-display);color:var(--ocean);font-size:1.1rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.05em;margin:0 0 18px;padding-bottom:10px;
  border-bottom:2px solid var(--line);position:relative}
.pole-title::after{content:"";position:absolute;left:0;bottom:-2px;width:56px;height:2px;background:var(--ocean)}
.pole-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:20px}
.trombi-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:22px 16px 20px;transition:transform .2s ease,box-shadow .2s ease}
.trombi-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.trombi-photo{width:132px;height:132px;border-radius:50%;object-fit:cover;
  border:3px solid var(--foam);box-shadow:0 4px 14px rgba(0,0,0,.1);margin-bottom:6px}
.trombi-initials{display:flex;align-items:center;justify-content:center;background:var(--ocean);
  color:#fff;font-family:var(--font-display);font-weight:700;font-size:2.3rem}
[data-theme="dark"] .trombi-initials{color:#111}
.trombi-name{font-family:var(--font-display);font-weight:700;color:var(--ink);font-size:1.02rem}
.trombi-role{color:var(--muted);font-size:.88rem}
@media (max-width:600px){
  .pole-cards{grid-template-columns:repeat(2,1fr);gap:14px}
  .trombi-photo{width:108px;height:108px}
}

/* ===== Menu « Ajouter à mon agenda » ===== */
.cal-menu{position:relative;display:inline-block}
.cal-menu>summary{list-style:none;cursor:pointer;display:inline-flex}
.cal-menu>summary::-webkit-details-marker{display:none}
.cal-menu-pop{position:absolute;top:calc(100% + 8px);left:0;z-index:40;min-width:250px;
  background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);
  padding:6px;display:flex;flex-direction:column;gap:2px}
.cal-menu-pop a{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 12px;border-radius:9px;color:var(--ink);font-weight:500;font-size:.95rem;text-decoration:none}
.cal-menu-pop a small{color:var(--muted);font-weight:400;font-size:.78rem}
.cal-menu-pop a:hover{background:var(--foam);color:var(--ocean)}
@media (max-width:520px){ .cal-menu-pop{right:0;left:auto} }

/* Menu agenda en pleine largeur (fiche événement) */
.cal-menu--block{display:block}
.cal-menu--block>summary{width:100%}
.cal-menu--block .cal-menu-pop{left:0;right:0;min-width:0}

/* Stock par taille (admin) */
.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;margin-top:4px}
.stock-cell{display:flex;flex-direction:column;gap:3px;font-size:.82rem}
.stock-cell span{color:var(--muted);font-weight:600}
.stock-cell input{padding:6px 8px}

/* Marées (fiche séance) */
.tide-box{display:flex;align-items:center;gap:12px;background:var(--foam);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
.tide-icon{font-size:1.6rem;line-height:1}

/* Journal d'audit */
.hist-badge{display:inline-block;background:var(--foam);color:var(--ocean);font-size:.76rem;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}
[data-theme="dark"] .hist-badge{background:#1e2a2e;color:#cfe6ee}

/* ===== Console admin — refonte (v0.5.5) ===== */
/* Barre latérale : sections */
.admin-side .side-label{display:block;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:#7fa8b3;
  margin:18px 12px 6px;font-weight:700}
.admin-side .side-label:first-of-type{margin-top:6px}
.admin-side a{font-size:.94rem}
.admin-side a.active{background:rgba(255,255,255,.14);color:#fff;font-weight:600}
.admin-main{max-width:1180px}

/* En-tête de page uniforme */
.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px;flex-wrap:wrap}
.page-head h1{margin:0}
.page-head .sub{margin:6px 0 0}
.page-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* Cartes : en-tête interne */
.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:14px}
.card-head h2{margin:0;font-size:1.1rem;color:var(--ocean)}

/* Bloc « À traiter » */
.todo-card{border-left:4px solid var(--coral)}
.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.todo-list a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:10px;background:var(--surface-2);
  color:var(--ink);text-decoration:none;transition:background .15s,transform .15s}
.todo-list a:hover{background:var(--foam);transform:translateX(3px)}
.todo-ico{font-size:1.15rem;line-height:1}
.todo-label{flex:1 1 auto;font-weight:500}
.todo-count{min-width:30px;height:26px;padding:0 9px;border-radius:999px;background:var(--ocean);color:#fff;
  font-weight:700;font-size:.85rem;display:inline-flex;align-items:center;justify-content:center}
.todo-list a.is-urgent .todo-count{background:var(--coral)}
.todo-arrow{color:var(--muted)}
.todo-empty{color:var(--muted);padding:10px 4px}
[data-theme="dark"] .todo-list a{background:#1a1a1a}
[data-theme="dark"] .todo-list a:hover{background:#242424}
[data-theme="dark"] .todo-count{color:#111}
[data-theme="dark"] .todo-list a.is-urgent .todo-count{color:#111}

/* Indicateurs cliquables */
.stat-link{text-decoration:none;color:inherit;display:block;transition:transform .15s,box-shadow .15s}
.stat-box.stat-link{display:flex;flex-direction:column;align-items:flex-start;gap:4px;justify-content:center}
.stat-link:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
/* Grille du tableau de bord : deux colonnes de même hauteur, alignées */
.dash-cols{align-items:stretch}
.dash-cols > .admin-card{display:flex;flex-direction:column;height:100%;margin-top:0}
.dash-cols > .admin-card .table-wrap,.dash-cols > .admin-card .stack{flex:1 1 auto}

/* ===== Fiche adhérent à onglets (façon FlowRH) ===== */
.fiche{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.fiche-head{display:flex;align-items:center;gap:20px;padding:26px 28px;background:var(--surface);border-bottom:1px solid var(--line)}
.fiche-back{flex:0 0 auto;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;color:var(--ink);text-decoration:none;transition:background .15s,transform .15s}
.fiche-back svg{width:20px;height:20px}
.fiche-back:hover{background:var(--surface-2);transform:translateX(-2px)}
.fiche-avatar-ring{flex:0 0 auto;width:96px;height:96px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  background:color-mix(in srgb, var(--ocean) 12%, transparent)}
.fiche-avatar{width:76px;height:76px;border-radius:50%;background:var(--ocean);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:700;font-size:1.7rem}
[data-theme="dark"] .fiche-avatar{color:#111}
.fiche-id h3{margin:0;font-size:1.9rem;font-family:var(--font-display);letter-spacing:-.01em}
.fiche-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.status-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 12px;border-radius:999px}
.status-tag.tag-on{background:#e4f4e4;color:#2e7d32}
.status-tag.tag-off{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.status-tag.tag-wait{background:#fff3e0;color:#b26a00}
.status-tag.tag-role{background:color-mix(in srgb, var(--ocean) 12%, transparent);color:var(--ocean)}
[data-theme="dark"] .status-tag.tag-on{background:#183a1f;color:#8fe0a0}
[data-theme="dark"] .status-tag.tag-wait{background:#3a2c14;color:#f0c584}
.fiche-tabs{display:flex;gap:6px;padding:8px 10px;margin:0;background:var(--surface);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow-x:auto}
.fiche-tab{background:none;border:0;padding:10px 18px;font-weight:600;font-size:.95rem;color:var(--muted);
  cursor:pointer;white-space:nowrap;border-radius:999px;display:inline-flex;align-items:center;gap:9px;
  transition:background .15s,color .15s,box-shadow .15s}
.fiche-tab svg{width:18px;height:18px;flex:0 0 auto;opacity:.85}
.fiche-tab:hover{color:var(--ink);background:var(--surface-2)}
.fiche-tab.is-active{background:var(--ocean);color:#fff;box-shadow:0 3px 10px color-mix(in srgb, var(--ocean) 32%, transparent)}
.fiche-tab.is-active svg{opacity:1}
[data-theme="dark"] .fiche-tab.is-active{color:#111}
.fiche-tab.is-active .fiche-tab-count{background:#fff;color:var(--ocean)}
.fiche-panel{display:none;padding:26px 28px}
.fiche-panel.is-active{display:block;animation:fadeIn .2s ease}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@media (max-width:600px){
  .fiche-head{gap:14px;padding:18px}
  .fiche-back{width:38px;height:38px}
  .fiche-avatar-ring{width:74px;height:74px}
  .fiche-avatar{width:58px;height:58px;font-size:1.3rem}
  .fiche-id h3{font-size:1.35rem}
  .fiche-tab{padding:10px 14px;font-size:.88rem}
  .fiche-panel{padding:18px}
}

/* ===== Fiche adhérent : en-tête allégé (v0.6.35) — limité à .fiche-adh, n'affecte ni Paramètres ni Événements ===== */
.fiche-adh{overflow:visible}
.fiche-adh .fiche-head{display:block;padding:16px 24px 20px;border-radius:14px 14px 0 0;border-bottom:0}
.fiche-crumb{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;font-weight:600;color:var(--muted);text-decoration:none;transition:color .15s}
.fiche-crumb svg{width:16px;height:16px;transition:transform .15s}
.fiche-crumb:hover{color:var(--ink)}
.fiche-crumb:hover svg{transform:translateX(-2px)}
.fiche-head-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:14px}
.fiche-adh .fiche-avatar{flex:0 0 auto;width:52px;height:52px;font-size:1.1rem}
.fiche-adh .fiche-id{flex:1 1 220px;min-width:0}
.fiche-adh .fiche-id h3{font-size:1.35rem;line-height:1.25;overflow-wrap:anywhere}
.fiche-status{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:3px 0 0;font-size:.88rem;color:var(--muted)}
.fiche-dot{width:8px;height:8px;border-radius:50%;background:var(--muted);flex:0 0 auto}
.fiche-dot.tag-on{background:#2e9d48}
.fiche-dot.tag-wait{background:#e08a00}
.fiche-sep{opacity:.6}
/* Élément signalé depuis la liste « Dossier incomplet » : halo ambre pendant quelques secondes */
.is-flash{position:relative;border-radius:12px;box-shadow:0 0 0 3px rgba(224,138,0,.55), 0 0 0 9px rgba(224,138,0,.16);background:color-mix(in srgb, #e08a00 9%, transparent);transition:box-shadow .3s,background .3s}
.field.is-flash{padding:8px;margin-left:-8px;margin-right:-8px}
@media (prefers-reduced-motion:no-preference){
  @keyframes flashPulse{0%,100%{box-shadow:0 0 0 3px rgba(224,138,0,.55), 0 0 0 9px rgba(224,138,0,.16)}50%{box-shadow:0 0 0 3px rgba(224,138,0,.9), 0 0 0 14px rgba(224,138,0,.05)}}
  .is-flash{animation:flashPulse 1.1s ease-in-out 3}
}
/* Parcours d'adhésion affiché dans la fiche d'une demande en attente */
/* Parcours d'adhésion : zone repliable */
.fiche-parcours{margin:16px 0 0;border-top:1px solid var(--line);padding-top:12px}
.fiche-parcours summary{list-style:none;display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;font-size:.84rem;color:var(--muted);width:fit-content;max-width:100%;padding:2px 6px 2px 0;border-radius:8px}
.fiche-parcours summary::-webkit-details-marker{display:none}
.fiche-parcours summary:hover{color:var(--ink)}
.fiche-parcours summary:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
.fiche-parcours-chev{flex:0 0 auto;width:14px;height:14px;transition:transform .15s}
.fiche-parcours[open] .fiche-parcours-chev{transform:rotate(90deg)}
.fiche-parcours-titre{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.fiche-parcours-etat{padding:2px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:.76rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fiche-parcours-etat.is-done{background:#e8f5ec;border-color:#bfe3c9;color:#1f6b33}
[data-theme="dark"] .fiche-parcours-etat.is-done{background:#16301d;border-color:#28563a;color:#8fdba3}
.fiche-parcours .fiche-steps{margin-top:14px}
.fiche-steps{list-style:none;display:flex;gap:0;margin:18px 0 0;padding:0}
.fiche-steps li{flex:1 1 0;min-width:0;display:flex;align-items:flex-start;gap:10px;padding:0 14px 0 0}
.fiche-steps li + li{padding-left:14px;border-left:1px solid var(--line)}
.fiche-step-num{flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--line);background:var(--surface-2);font-size:.74rem;font-weight:700;color:var(--muted)}
.fiche-step-txt{min-width:0;display:flex;flex-direction:column;line-height:1.3}
.fiche-step-txt strong{font-size:.86rem;font-weight:600;color:var(--muted)}
.fiche-step-txt small{font-size:.76rem;color:var(--muted)}
.fiche-steps li.is-done .fiche-step-num{background:#2e9d48;border-color:#2e9d48;color:#fff}
.fiche-steps li.is-done .fiche-step-txt strong{color:var(--ink)}
.fiche-steps li.is-current .fiche-step-num{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.fiche-steps li.is-current .fiche-step-txt strong{color:var(--ink)}
@media (max-width:760px){
  .fiche-steps{flex-direction:column;gap:10px}
  .fiche-steps li + li{padding-left:0;border-left:0}
}
.adh-flag--ok{background:#e8f5ec;border-color:#bfe3c9;color:#1f6b33}
[data-theme="dark"] .adh-flag--ok{background:#16301d;border-color:#28563a;color:#8fdba3}
/* Étapes annoncées au demandeur après l'envoi du bulletin */
.adh-steps{margin:0 0 16px;padding-left:22px;display:flex;flex-direction:column;gap:8px;text-align:left;line-height:1.5}
.role-hint{font-size:.8rem;color:var(--muted)}
.role-hint[hidden]{display:none}
/* Onglet Administration de la fiche : groupes de réglages (libellé et explication à gauche, action à droite) */
.adm{max-width:900px}
.adm-title{margin:22px 0 8px 2px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-family:inherit}
.adm-title:first-child{margin-top:0}
.adm-title--danger{color:#d64545}
.adm-card{background:var(--surface);border:1px solid var(--line);border-radius:14px}
.adm-card--danger{border-color:color-mix(in srgb, #d64545 40%, var(--line))}
.adm-row{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 20px;border-top:1px solid var(--line)}
.adm-row:first-child{border-top:0}
.adm-txt{flex:1 1 auto;min-width:0}
.adm-label{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.96rem;font-weight:600;color:var(--ink)}
.adm-txt p{margin:3px 0 0;font-size:.86rem;line-height:1.5;color:var(--muted);max-width:62ch}
.adm-ctl{flex:0 0 auto;display:flex;align-items:center;gap:8px}
.adm-ctl form{margin:0}
.adm-ctl .btn{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.adm-ctl .btn svg{width:15px;height:15px}
.adm-inline{display:flex;align-items:center;gap:8px}
.adm-inline input[type=date]{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);font:inherit;font-size:.9rem}
.adm-inline input[type=date]:focus{outline:none;border-color:var(--ocean);box-shadow:0 0 0 3px color-mix(in srgb, var(--ocean) 18%, transparent)}
.adm-inline.is-flash,.adm-inline input.is-flash{border-radius:10px}
.btn.adm-danger-btn{background:none;border:1px solid color-mix(in srgb, #d64545 55%, var(--line));color:#d64545}
.btn.adm-danger-btn:hover{background:#d64545;border-color:#d64545;color:#fff}
@media (max-width:700px){
  .adm-row{flex-direction:column;align-items:flex-start;gap:12px;padding:16px}
  .adm-ctl{width:100%}
  .adm-inline{flex-wrap:wrap}
}
/* Contrôle du domaine d'une adresse e-mail pendant la saisie */
.email-check{margin:6px 0 0;font-size:.84rem;line-height:1.45;font-weight:600}
.email-check[hidden]{display:none}
.email-check.is-ko{color:#d64545}
.email-check.is-warn{color:#b86a00}
[data-theme="dark"] .email-check.is-ko{color:#f0908a}
[data-theme="dark"] .email-check.is-warn{color:#f0c584}
.email-check-fix{background:none;border:0;padding:0;font:inherit;font-weight:700;color:inherit;text-decoration:underline;cursor:pointer}
input.is-email-ko{border-color:#d64545 !important}
/* Statut et rôle en étiquettes, pour les détacher visuellement du nom */
.fiche-adh .fiche-status{gap:6px;margin-top:8px}
.fiche-tag{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);
  font-size:.78rem;font-weight:600;line-height:1.4;color:var(--ink);white-space:nowrap}
.fiche-tag .fiche-dot{width:7px;height:7px}
.fiche-tag--tag-on{background:#e8f5ec;border-color:#bfe3c9;color:#1f6b33}
.fiche-tag--tag-wait{background:#fff3e0;border-color:#f1d3a0;color:#8a5200}
.fiche-tag--tag-off{color:var(--muted)}
[data-theme="dark"] .fiche-tag--tag-on{background:#16301d;border-color:#28563a;color:#8fdba3}
[data-theme="dark"] .fiche-tag--tag-wait{background:#3a2c14;border-color:#5a4520;color:#f0c584}
.fiche-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.fiche-alert{position:relative}
.fiche-alert summary{list-style:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;user-select:none;
  padding:8px 12px;border-radius:10px;font-size:.85rem;font-weight:600;background:#fff3e0;color:#8a5200;border:1px solid #f1d3a0}
.fiche-alert summary::-webkit-details-marker{display:none}
.fiche-alert summary svg{width:16px;height:16px;flex:0 0 auto}
.fiche-alert summary:hover{border-color:#e0b46a}
.fiche-alert summary:focus-visible,.fiche-alert-list button:focus-visible,.fiche-crumb:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
.fiche-alert-chev{transition:transform .15s}
.fiche-alert[open] .fiche-alert-chev{transform:rotate(180deg)}
.fiche-alert-list{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:100%;width:max-content;max-width:min(320px,80vw);
  list-style:none;margin:0;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.fiche-alert-list button{display:block;width:100%;text-align:left;background:none;border:0;padding:8px 10px;border-radius:8px;
  font:inherit;font-size:.88rem;color:var(--ink);cursor:pointer}
.fiche-alert-list button:hover{background:var(--surface-2)}
[data-theme="dark"] .fiche-alert summary{background:#3a2c14;color:#f0c584;border-color:#5a4520}
[data-theme="dark"] .fiche-alert summary:hover{border-color:#7a5e2c}
.fiche-adh .fiche-tabs{gap:26px;padding:0 24px}
.fiche-adh .fiche-tab{padding:13px 0;border-radius:0;font-size:.92rem;gap:7px;box-shadow:inset 0 -2px 0 transparent}
.fiche-adh .fiche-tab svg{display:none}
.fiche-adh .fiche-tab:hover{background:none;color:var(--ink)}
.fiche-adh .fiche-tab.is-active,[data-theme="dark"] .fiche-adh .fiche-tab.is-active{background:none;color:var(--ink);box-shadow:inset 0 -2px 0 var(--ocean)}
.fiche-adh .fiche-tab-count,.fiche-adh .fiche-tab.is-active .fiche-tab-count,[data-theme="dark"] .fiche-adh .fiche-tab-count{background:var(--surface-2);color:var(--muted);border:1px solid var(--line);margin-left:0}
.admin-bare .fiche-crumb{display:none}
.admin-bare .fiche-head-row{margin-top:0}
@media (max-width:600px){
  .fiche-adh .fiche-head{padding:14px 16px 16px}
  .fiche-adh .fiche-avatar{width:44px;height:44px;font-size:1rem}
  .fiche-adh .fiche-id h3{font-size:1.15rem}
  .fiche-actions,.fiche-alert{flex:1 1 100%}
  .fiche-alert summary{display:flex}
  .fiche-alert-chev{margin-left:auto}
  .fiche-alert-list{left:0;right:0;width:auto;max-width:none}
  .fiche-adh .fiche-tabs{gap:20px;padding:0 16px}
  .fiche-adh .fiche-tab{padding:12px 0;font-size:.88rem}
}

/* Espace membre : même fiche à onglets que côté bureau, en lecture seule (v0.6.35) */
.espace-fiche{margin-top:6px}
.espace-fiche .fiche-head-row{margin-top:0}
.espace-fiche .fiche-view > .card-block{margin:0}
.espace-fiche .es-cal-actions{display:flex;gap:8px;flex-wrap:wrap}
.espace-fiche .edit-form{margin-top:0}
.ico{width:1.1em;height:1.1em;vertical-align:-.18em;flex:0 0 auto}
.info-card-head .btn .ico,.fiche-alert summary .ico{width:15px;height:15px;color:inherit}
.doc-ic .ico{width:20px;height:20px;color:var(--muted);vertical-align:middle}
.link-btn{background:none;border:0;padding:0;font:inherit;color:var(--ocean);text-decoration:underline;cursor:pointer}
.link-btn:hover{text-decoration:none}
.espace-fiche .sortie-row--open{flex-wrap:wrap}
.espace-fiche .sortie-row--open .sr-body{flex:1 1 180px}
.docs-intro{margin:0 0 10px;color:var(--muted)}
.doc-new{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;background:var(--ocean);color:var(--surface);font-size:.68rem;font-weight:700;letter-spacing:.03em;vertical-align:middle}
/* Verrou par bloc de documents (bureau) et état « Modifiable » (adhérent) */
.doc-lock-form{margin:0 0 0 auto;flex:0 0 auto}
.info-card-head > span + .doc-lock-form{margin-left:8px}
.doc-lock-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:8px;cursor:pointer;
  border:1px solid var(--line);background:var(--surface-2);color:var(--muted);transition:background .15s,color .15s,border-color .15s}
.info-card-head .doc-lock-btn svg{width:16px;height:16px;color:inherit}
.doc-lock-btn:hover{color:var(--ink);border-color:var(--muted)}
.doc-lock-btn:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
.doc-lock-btn.is-open{background:#fff3e0;color:#8a5200;border-color:#f1d3a0}
[data-theme="dark"] .doc-lock-btn.is-open{background:#3a2c14;color:#f0c584;border-color:#5a4520}
.doc-unl-tag{margin-left:auto;flex:0 0 auto;font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px;background:#fff3e0;color:#8a5200;border:1px solid #f1d3a0}
.info-card-head > span + .doc-unl-tag{margin-left:8px}
[data-theme="dark"] .doc-unl-tag{background:#3a2c14;color:#f0c584;border-color:#5a4520}
.docs-notice{display:flex;align-items:flex-start;gap:10px;margin:0 0 18px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-size:.9rem;line-height:1.5;color:var(--ink)}
.docs-notice svg{flex:0 0 auto;width:18px;height:18px;margin-top:2px;color:var(--muted)}
.docs-notice--todo{align-items:center;flex-wrap:wrap;border-color:#f1d3a0;background:#fff3e0;color:#8a5200}
.docs-notice--todo svg{color:inherit;margin-top:0}
.docs-notice--todo > span{flex:1 1 220px}
.docs-notice--todo form{margin:0}
[data-theme="dark"] .docs-notice--todo{border-color:#5a4520;background:#3a2c14;color:#f0c584}
.fiche-tab-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#e08a00;flex:0 0 auto}
@media (max-width:600px){ .espace-fiche .fiche-panel{padding:16px} }

/* ===== Espace membre : emojis et animations (v0.6.36) =====
   Tout le mouvement est sous prefers-reduced-motion:no-preference : rien ne bouge si l'utilisateur a demandé moins d'animations. */
.emo{display:inline-block;font-style:normal;line-height:1}
.espace-fiche .fiche-tab .emo,.fiche-adh .fiche-tab .emo{font-size:1.05em;transition:transform .2s}
.espace-fiche .info-card,.espace-fiche .card-block,.espace-fiche .tile,.espace .espace-next{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.espace-fiche .fiche-tab{transition:color .18s,box-shadow .22s}
@media (prefers-reduced-motion:no-preference){
  @keyframes espIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
  @keyframes espPop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}100%{opacity:1;transform:none}}
  @keyframes espWave{0%,60%,100%{transform:rotate(0)}10%,30%{transform:rotate(16deg)}20%,40%{transform:rotate(-10deg)}50%{transform:rotate(12deg)}}
  @keyframes espFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
  @keyframes espPulse{0%,100%{box-shadow:0 0 0 0 rgba(224,138,0,.45)}60%{box-shadow:0 0 0 8px rgba(224,138,0,0)}}
  /* Arrivée de la page */
  .espace .espace-annonce,.espace .espace-next,.espace .espace-fiche{animation:espIn .45s ease both}
  .espace .espace-next{animation-delay:.06s}
  .espace .espace-fiche{animation-delay:.12s}
  .espace-fiche .fiche-avatar{animation:espPop .5s .2s cubic-bezier(.2,.8,.3,1.2) both}
  .emo-wave{transform-origin:70% 80%;animation:espWave 1.8s .4s ease-in-out 2}
  .emo-float{animation:espFloat 2.6s ease-in-out infinite}
  /* Changement d'onglet : le panneau glisse, ses blocs arrivent en cascade */
  .espace-fiche .fiche-panel.is-active{animation:espIn .28s ease both}
  .espace-fiche .fiche-panel.is-active .fiche-view > *,
  .espace-fiche .fiche-panel.is-active .docs-grid > *{animation:espIn .36s ease both}
  .espace-fiche .fiche-panel.is-active .fiche-view > *:nth-child(2),.espace-fiche .fiche-panel.is-active .docs-grid > *:nth-child(2){animation-delay:.05s}
  .espace-fiche .fiche-panel.is-active .fiche-view > *:nth-child(3),.espace-fiche .fiche-panel.is-active .docs-grid > *:nth-child(3){animation-delay:.1s}
  .espace-fiche .fiche-panel.is-active .fiche-view > *:nth-child(4),.espace-fiche .fiche-panel.is-active .docs-grid > *:nth-child(4){animation-delay:.15s}
  .espace-fiche .fiche-panel.is-active .fiche-view > *:nth-child(5),.espace-fiche .fiche-panel.is-active .docs-grid > *:nth-child(5){animation-delay:.2s}
  .espace-fiche .fiche-panel.is-active .fiche-view > *:nth-child(n+6),.espace-fiche .fiche-panel.is-active .docs-grid > *:nth-child(n+6){animation-delay:.25s}
  /* Survols */
  .espace-fiche .info-card:hover,.espace-fiche .card-block:hover,.espace-fiche .tile:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(0,0,0,.12)}
  .espace-fiche .fiche-tab:hover .emo,.espace-fiche .fiche-tab.is-active .emo,
  .fiche-adh .fiche-tab:hover .emo,.fiche-adh .fiche-tab.is-active .emo{transform:translateY(-2px) scale(1.15)}
  .espace-fiche .upload-zone:hover .up-ic{animation:espFloat .9s ease-in-out infinite}
  .espace-fiche .sortie-row{transition:transform .15s ease}
  .espace-fiche .sortie-row:hover{transform:translateX(3px)}
  .espace-fiche .btn{transition:transform .12s ease,filter .15s}
  .espace-fiche .btn:active{transform:scale(.96)}
  /* L'alerte « À faire » attire l'œil sans clignoter */
  .espace-fiche .fiche-alert:not([open]) summary{animation:espPulse 2.4s ease-out 3}
  .espace-fiche .fiche-alert-list{animation:espIn .18s ease both}
}

/* ===== Menus plus vivants (v0.6.37) : barre latérale de l'admin + menu du site =====
   Uniquement des transitions et de petites animations CSS, coupées si « réduire les animations » est activé. */
.admin-side a:not(.brand):not(.side-view){position:relative;transition:background .18s ease,color .18s ease,padding-left .18s ease}
.admin-side a:not(.brand):not(.side-view)::before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;border-radius:3px;background:currentColor;transform:translateY(-50%);transition:height .2s ease}
.admin-side a.active:not(.brand)::before{height:60%}
.admin-side a:not(.brand):not(.side-view):hover{padding-left:17px}
.admin-side a:not(.brand):not(.side-view):hover::before{height:38%}
.admin-side a.active:not(.brand):hover::before{height:60%}
.admin-side .brand .brand-logo{transition:transform .35s ease}
.admin-side .brand:hover .brand-logo{transform:rotate(-8deg) scale(1.08)}
.admin-side a.side-view svg{transition:transform .2s ease}
.admin-side a.side-view:hover svg{transform:translate(2px,-2px)}
.admin-theme-toggle{transition:background .18s ease,transform .12s ease}
.admin-theme-toggle:active{transform:scale(.97)}
.nav-links a{transition:color .15s,transform .15s ease,background .15s}
.nav-links a:hover{transform:translateY(-1px)}
.nav-links a::after{transform-origin:center}
.nav-cart,.theme-toggle{transition:background .15s,transform .15s ease}
.nav-cart:hover,.theme-toggle:hover{transform:translateY(-1px) scale(1.06)}
.nav-cart:active,.theme-toggle:active{transform:scale(.94)}
.nav-actions .btn{transition:transform .15s ease,filter .15s,box-shadow .15s}
.nav-actions .btn:hover{transform:translateY(-1px)}
@media (prefers-reduced-motion:no-preference){
  @keyframes menuBadge{0%,100%{transform:scale(1)}50%{transform:scale(1.18)}}
  @keyframes menuIn{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
  @keyframes menuDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
  /* Pastilles de notification (messages, commandes, panier) : trois battements à l'arrivée */
  .side-badge,.nav-cart-badge{animation:menuBadge 1s ease-in-out .4s 3}
  /* L'entrée active glisse en place au chargement */
  .admin-side a.active:not(.brand){animation:menuIn .3s ease both}
}
@media (max-width:980px) and (prefers-reduced-motion:no-preference){
  /* Menu mobile du site : les liens descendent en cascade à l'ouverture */
  .nav.open .nav-links a,.nav.open .nav-actions{animation:menuDown .28s ease both}
  .nav.open .nav-links a:nth-child(1){animation-delay:.04s}
  .nav.open .nav-links a:nth-child(2){animation-delay:.08s}
  .nav.open .nav-links a:nth-child(3){animation-delay:.12s}
  .nav.open .nav-links a:nth-child(4){animation-delay:.16s}
  .nav.open .nav-links a:nth-child(5){animation-delay:.2s}
  .nav.open .nav-links a:nth-child(6){animation-delay:.24s}
  .nav.open .nav-links a:nth-child(n+7){animation-delay:.28s}
  .nav.open .nav-actions{animation-delay:.32s}
  .nav-links a:hover{transform:translateX(4px)}
}
@media (prefers-reduced-motion:reduce){
  .admin-side a:not(.brand):not(.side-view):hover{padding-left:12px}
  .nav-links a:hover,.nav-cart:hover,.theme-toggle:hover,.nav-actions .btn:hover{transform:none}
}

/* ===== Page Paramètres (v0.6.37) : navigation latérale par rubrique + lignes de réglage ===== */
.set-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:start}
.set-nav{position:sticky;top:20px;display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 40px);overflow-y:auto;padding-right:4px}
.set-nav-label{margin:18px 0 6px 12px;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.set-nav-label:first-child{margin-top:0}
.set-nav .fiche-tab{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;padding:9px 12px;border:0;border-radius:10px;
  background:none;color:var(--muted);font-size:.92rem;font-weight:500;text-align:left;cursor:pointer;box-shadow:none;transition:background .15s,color .15s}
.set-nav .fiche-tab svg{width:17px;height:17px;flex:0 0 auto;opacity:.85}
.set-nav .fiche-tab span{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.set-nav .fiche-tab:hover{background:var(--surface-2);color:var(--ink)}
.set-nav .fiche-tab.is-active,[data-theme="dark"] .set-nav .fiche-tab.is-active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--line)}
.set-nav .fiche-tab:focus-visible{outline:2px solid var(--ocean);outline-offset:1px}
.set-main{min-width:0;max-width:860px}
.set-panel.fiche-panel{padding:0}
.set-head{margin:0 0 16px}
.set-head h2{margin:0;font-size:1.3rem;color:var(--ink)}
.set-head p{margin:4px 0 0;color:var(--muted);font-size:.93rem;line-height:1.5;max-width:60ch}
.set-card{background:var(--surface);border:1px solid var(--line);border-radius:14px}
.set-card--danger{border-color:color-mix(in srgb, var(--coral) 45%, var(--line))}
.set-row{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:8px 28px;padding:18px 22px;border-top:1px solid var(--line);align-items:start}
.set-row:first-child{border-top:0}
.set-row--stack{grid-template-columns:minmax(0,1fr)}
.set-label{display:block;margin:0;font-weight:600;font-size:.95rem;color:var(--ink);line-height:1.4}
.set-row-label .set-label{padding-top:9px}
.set-row--stack .set-row-label .set-label{padding-top:0}
.set-hint{margin:3px 0 0;font-size:.83rem;line-height:1.45;color:var(--muted)}
.set-row-ctl{min-width:0}
.set-row-ctl input:not([type="checkbox"]),.set-row-ctl textarea{width:100%;box-sizing:border-box;padding:10px 12px;border:1px solid var(--line);border-radius:10px;
  background:var(--surface-2);color:var(--ink);font:inherit;font-size:.95rem;transition:border-color .15s,box-shadow .15s}
.set-row-ctl textarea{min-height:0;resize:vertical;line-height:1.5}
.set-row-ctl textarea.set-long{min-height:300px}
.set-row-ctl input:focus,.set-row-ctl textarea:focus{outline:none;border-color:var(--ocean);box-shadow:0 0 0 3px color-mix(in srgb, var(--ocean) 18%, transparent)}
.set-row-ctl .pw-wrap input:not([type="checkbox"]){padding-right:42px}
.set-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.02em}
.set-inline{display:flex;gap:12px;flex-wrap:wrap}
.set-mini{flex:1 1 160px;min-width:0;display:flex;flex-direction:column;gap:5px}
.set-mini--sm{flex:0 0 110px}
.set-mini > span{font-size:.78rem;font-weight:600;color:var(--muted)}
.set-unit{display:flex;align-items:center;gap:8px;max-width:210px}
.set-unit span{color:var(--muted);font-weight:600}
.set-switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;padding-top:6px;font-size:.95rem;color:var(--ink)}
.set-switch input{position:absolute;opacity:0;width:1px;height:1px}
.set-switch-ui{flex:0 0 auto;position:relative;width:42px;height:24px;border-radius:999px;background:var(--line);transition:background .18s}
.set-switch-ui::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .18s}
.set-switch input:checked + .set-switch-ui{background:var(--ocean)}
.set-switch input:checked + .set-switch-ui::after{transform:translateX(18px)}
[data-theme="dark"] .set-switch input:checked + .set-switch-ui::after{background:#111}
.set-card--danger .set-switch input:checked + .set-switch-ui{background:#d64545}
.set-card--danger .set-switch input:checked + .set-switch-ui::after{background:#fff}
.set-switch input:focus-visible + .set-switch-ui{outline:2px solid var(--ocean);outline-offset:2px}
.set-test{display:flex;gap:10px;flex-wrap:wrap}
.set-test input{flex:1 1 220px}
.set-test .btn{flex:0 0 auto}
.set-url{display:flex;align-items:center;gap:10px}
.set-url code{flex:1 1 auto;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);
  font-size:.8rem;white-space:nowrap;overflow-x:auto;scrollbar-width:thin}
.set-url .btn{flex:0 0 auto}
.set-search{position:relative;margin:0 0 14px}
.set-search svg{position:absolute;left:11px;top:50%;width:15px;height:15px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.set-search input{width:100%;box-sizing:border-box;padding:9px 12px 9px 33px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem}
.set-search input:focus{outline:none;border-color:var(--ocean);box-shadow:0 0 0 3px color-mix(in srgb, var(--ocean) 18%, transparent)}
.set-search-empty{margin:0 12px 8px;font-size:.85rem;color:var(--muted)}
.set-nav [hidden]{display:none !important}
.set-card--gap{margin-bottom:16px}
.set-row--title{background:var(--surface-2);border-radius:14px 14px 0 0;padding-top:14px;padding-bottom:14px}
.set-row--title .set-label{padding-top:0}
.set-var{display:inline-block;padding:1px 6px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);font-size:.78rem;color:var(--ink)}
.set-default-btn{margin-top:8px}
.set-count{margin:6px 0 0;font-size:.8rem;color:var(--muted);text-align:right}
.set-count.is-over{color:#d64545;font-weight:600}
.set-preview-label{margin:14px 0 6px;font-size:.78rem;font-weight:600;color:var(--muted)}
.set-preview{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.set-preview svg{flex:0 0 auto;width:20px;height:20px;margin-top:2px;color:var(--muted)}
.set-preview p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.5}
.set-preview[hidden]{display:none}
.set-check{margin:6px 0 0;font-size:.83rem;font-weight:600}
.set-check.is-ok{color:#2e9d48}
.set-check.is-ko{color:#d64545}
.set-check[hidden]{display:none}
.set-status{margin:0 0 10px;padding-top:9px;font-size:.95rem;font-weight:600;display:flex;align-items:center;gap:8px}
.set-status::before{content:"";width:9px;height:9px;border-radius:50%;flex:0 0 auto}
.set-status--ok::before{background:#2e9d48}
.set-status--warn::before{background:#e08a00}
.set-files{list-style:none;margin:0;padding:0;max-height:300px;overflow-y:auto;border:1px solid var(--line);border-radius:10px;scrollbar-width:thin}
.set-files li{display:flex;align-items:center;gap:14px;padding:8px 12px;border-top:1px solid var(--line);font-size:.9rem}
.set-files li:first-child{border-top:0}
.set-file-date{flex:1 1 auto;min-width:0}
.set-file-size{flex:0 0 auto;color:var(--muted);font-size:.83rem}
.page-head > .btn{align-self:center}
.set-savebar{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:16px;margin-top:20px;padding:14px 0;
  background:linear-gradient(to top, var(--bg, var(--surface-2)) 70%, transparent)}
.set-dirty{display:inline-flex;align-items:center;gap:8px;font-size:.88rem;font-weight:600;color:#b86a00}
.set-dirty::before{content:"";width:8px;height:8px;border-radius:50%;background:#e08a00}
.set-dirty[hidden]{display:none}
[data-theme="dark"] .set-dirty{color:#f0c584}
@media (prefers-reduced-motion:no-preference){ .set-panel.is-active{animation:fadeIn .2s ease both} }
@media (max-width:900px){
  .set-layout{grid-template-columns:minmax(0,1fr);gap:16px}
  .set-nav{position:static;flex-direction:row;max-height:none;overflow-x:auto;overflow-y:hidden;gap:6px;padding:0 0 6px;scrollbar-width:thin}
  .set-nav-label{display:none}
  .set-nav .fiche-tab{flex:0 0 auto;width:auto;border:1px solid var(--line);background:var(--surface)}
  .set-nav .fiche-tab.is-active,[data-theme="dark"] .set-nav .fiche-tab.is-active{background:var(--ocean);color:var(--surface);border-color:var(--ocean);box-shadow:none}
}
@media (max-width:640px){
  .set-row{grid-template-columns:minmax(0,1fr);padding:16px}
  .set-row-label .set-label{padding-top:0}
  .set-url{flex-direction:column;align-items:stretch}
}

/* ===== Messages (admin) : présentation « boîte de réception » (v0.6.38) ===== */
.mbox{display:grid;grid-template-columns:220px minmax(0,1fr);gap:28px;align-items:start}
.mbox-nav{position:sticky;top:20px;display:flex;flex-direction:column;gap:2px}
.mbox-nav-label{margin:16px 0 6px 12px;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mbox-link{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border:0;border-radius:10px;background:none;color:var(--muted);
  font:inherit;font-size:.92rem;font-weight:500;text-align:left;text-decoration:none;cursor:pointer;transition:background .15s,color .15s}
.mbox-link svg{width:17px;height:17px;flex:0 0 auto}
.mbox-link > span{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbox-link:hover{background:var(--surface-2);color:var(--ink);text-decoration:none}
.mbox-link.is-active{background:var(--surface);color:var(--ink);font-weight:600;box-shadow:inset 0 0 0 1px var(--line)}
.mbox-link:focus-visible{outline:2px solid var(--ocean);outline-offset:1px}
.mbox-add{color:var(--muted);font-size:.88rem}
.mbox-count{flex:0 0 auto;min-width:20px;padding:1px 7px;border-radius:999px;font-size:.74rem;font-weight:600;text-align:center;background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.mbox-count--new{background:var(--ocean);color:var(--surface);border-color:var(--ocean)}
.mbox-sep{height:1px;background:var(--line);margin:10px 6px}
.mbox-main{min-width:0;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.mbox-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 20px 14px}
.mbox-head h2{margin:0;font-size:1.2rem;color:var(--ink)}
.mbox-head p{margin:2px 0 0;font-size:.86rem;color:var(--muted)}
.mbox-head p strong{color:var(--ink);font-weight:600}
.mbox-danger,.btn.mbox-danger{color:#d64545;border-color:color-mix(in srgb, #d64545 45%, var(--line))}
.mbox-danger svg{width:15px;height:15px;vertical-align:-.15em}
.mbox-toolbar{display:flex;align-items:center;gap:12px;padding:10px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-2)}
.mbox-all{display:flex;align-items:center;flex:0 0 auto;cursor:pointer}
.mbox-all input,.msg-check{width:16px;height:16px;margin:0;cursor:pointer;accent-color:var(--ocean)}
.mbox-search{position:relative;flex:1 1 auto;min-width:0;max-width:420px}
.mbox-search svg{position:absolute;left:11px;top:50%;width:15px;height:15px;transform:translateY(-50%);color:var(--muted);pointer-events:none}
.mbox-search input{width:100%;box-sizing:border-box;padding:8px 12px 8px 33px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem}
.mbox-search input:focus{outline:none;border-color:var(--ocean);box-shadow:0 0 0 3px color-mix(in srgb, var(--ocean) 18%, transparent)}
.mbox-filter{display:inline-flex;align-items:center;margin-left:auto;cursor:pointer}
.mbox-filter input{position:absolute;opacity:0;width:1px;height:1px}
.mbox-filter span{padding:6px 14px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.85rem;font-weight:600;color:var(--muted);transition:background .15s,color .15s,border-color .15s}
.mbox-filter input:checked + span{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.mbox-filter input:focus-visible + span{outline:2px solid var(--ocean);outline-offset:2px}
.mbox .msg-bulkbar{margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:8px 20px;background:color-mix(in srgb, var(--ocean) 8%, var(--surface))}
.msg-bulkbar[hidden]{display:none}
.mbox-list{display:block}
.mbox .msg-card{position:relative;margin:0;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;overflow:visible}
.mbox .msg-card:last-of-type{border-bottom:0}
.mbox .msg-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}
.mbox .msg-card.msg-unread::before{background:var(--ocean)}
.mbox .msg-card.msg-unread{border-color:var(--line);background:color-mix(in srgb, var(--ocean) 4%, transparent)}
.mbox .msg-check-wrap{position:absolute;left:20px;top:50%;transform:translateY(-50%);z-index:2;display:flex}
.mbox .msg-header{display:flex;align-items:center;gap:14px;width:100%;padding:13px 20px 13px 50px;background:none;border:0;text-align:left;font:inherit;color:inherit;cursor:pointer;transition:background .12s}
.mbox .msg-header:hover{background:var(--surface-2)}
.mbox .msg-header:focus-visible{outline:2px solid var(--ocean);outline-offset:-2px}
.msg-avatar{flex:0 0 auto;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line);font-size:.78rem;font-weight:700;color:var(--muted)}
.msg-unread .msg-avatar{background:var(--ocean);border-color:var(--ocean);color:var(--surface)}
.mbox .msg-head-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.msg-line1{display:flex;align-items:center;gap:8px;min-width:0}
.mbox .msg-from{flex:0 1 auto;min-width:0;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-unread .msg-from{font-weight:700}
.msg-tag{flex:0 0 auto;padding:1px 8px;border:1px solid var(--line);border-radius:999px;font-size:.7rem;font-weight:600;color:var(--muted);background:var(--surface-2)}
.mbox .msg-date{margin-left:auto;flex:0 0 auto;font-size:.8rem;color:var(--muted);white-space:nowrap}
.msg-unread .msg-date{color:var(--ink);font-weight:600}
.msg-line2{display:block;font-size:.88rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbox .msg-subject{display:inline;color:var(--ink);font-size:inherit;overflow:visible;white-space:normal}
.msg-unread .msg-subject{font-weight:600}
.msg-excerpt{color:var(--muted)}
.mbox-noresult,.mbox-empty p{margin:0;color:var(--muted)}
.mbox-noresult{padding:28px 20px;text-align:center}
.mbox-noresult[hidden]{display:none}
.mbox-empty{display:flex;flex-direction:column;align-items:center;gap:10px;padding:56px 20px;border-top:1px solid var(--line)}
.mbox-empty svg{width:36px;height:36px;color:var(--muted);opacity:.6}
/* Fenêtre de lecture d'un message */
.msg-modal .modal-dialog.msg-read{max-width:640px;padding:0;overflow:hidden;border-radius:16px}
.msg-read-head{display:flex;align-items:center;gap:14px;padding:20px 24px 16px}
.msg-read-avatar{width:44px;height:44px;font-size:.9rem;background:var(--ocean);border-color:var(--ocean);color:var(--surface)}
.msg-read-who{flex:1 1 auto;min-width:0}
.msg-read-who h2{margin:0;font-size:1.1rem;line-height:1.3;color:var(--ink);font-family:inherit;font-weight:700;overflow-wrap:anywhere}
.msg-read-who p{margin:2px 0 0;font-size:.84rem;color:var(--muted)}
.msg-read-close{flex:0 0 auto;width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:50%;background:none;color:var(--muted);cursor:pointer;transition:background .15s,color .15s}
.msg-read-close svg{width:18px;height:18px}
.msg-read-close:hover{background:var(--surface-2);color:var(--ink)}
.msg-read-close:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
.msg-read-subject{display:flex;align-items:baseline;gap:12px;padding:12px 24px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-2)}
.msg-read-subject span{flex:0 0 auto;font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.msg-read-subject strong{flex:1 1 auto;min-width:0;font-size:1rem;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
.msg-read-body{max-height:calc(90vh - 190px);overflow-y:auto}
.msg-modal .msg-body{display:block;padding:0}
.msg-meta{display:flex;flex-wrap:wrap;gap:6px 28px;margin:0;padding:16px 24px 0}
.msg-meta > div{display:flex;align-items:baseline;gap:8px;min-width:0}
.msg-meta dt{font-size:.78rem;color:var(--muted)}
.msg-meta dd{margin:0;font-size:.9rem;min-width:0;overflow-wrap:anywhere}
.msg-meta a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.msg-meta a:hover{text-decoration-color:currentColor}
.msg-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;line-height:1.65;color:var(--ink);padding:18px 24px 24px;margin:0;min-height:90px;border:0;background:none;border-radius:0;max-height:none}
.msg-modal .msg-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 24px;border-top:1px solid var(--line);background:var(--surface-2)}
.msg-act-main{display:inline-flex;align-items:center;gap:7px}
.msg-act-main svg{width:15px;height:15px}
.msg-act-group{display:flex;align-items:center;gap:2px;flex-wrap:wrap;margin-left:4px}
.msg-act{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border:0;border-radius:8px;background:none;color:var(--ink);font:inherit;font-size:.86rem;font-weight:500;cursor:pointer;transition:background .15s}
.msg-act svg{width:15px;height:15px}
.msg-act:hover{background:color-mix(in srgb, var(--ink) 8%, transparent)}
.msg-act:focus-visible{outline:2px solid var(--ocean);outline-offset:1px}
.msg-act--danger{color:#d64545}
.msg-act--danger:hover{background:color-mix(in srgb, #d64545 12%, transparent)}
.msg-modal .msg-actions .msg-del{margin-left:auto}
.msg-move-form{display:inline-flex;align-items:center;gap:8px;margin-left:6px;padding-left:10px;border-left:1px solid var(--line)}
.msg-move-label{font-size:.82rem;color:var(--muted)}
.msg-move-form select{height:32px;max-width:160px}
@media (max-width:600px){
  .msg-modal .modal-dialog.msg-read{margin:0;max-width:none;min-height:100vh;border-radius:0;border:0}
  .msg-read-head,.msg-read-subject,.msg-meta,.msg-text,.msg-modal .msg-actions{padding-left:16px;padding-right:16px}
  .msg-read-body{max-height:none}
  .msg-act-main{flex:1 1 100%;justify-content:center}
  .msg-act-group{margin-left:0}
  .msg-move-form{margin-left:0;padding-left:0;border-left:0}
}
.msg-modal-sub #msg-modal-subject{font-weight:600;color:var(--ink)}
@media (max-width:900px){
  .mbox{grid-template-columns:minmax(0,1fr);gap:14px}
  .mbox-nav{position:static;flex-direction:row;overflow-x:auto;gap:6px;padding-bottom:6px;scrollbar-width:thin}
  .mbox-nav-label,.mbox-sep{display:none}
  .mbox-link{flex:0 0 auto;width:auto;border:1px solid var(--line);background:var(--surface)}
  .mbox-link.is-active{background:var(--ocean);color:var(--surface);border-color:var(--ocean);box-shadow:none}
  .mbox-link.is-active .mbox-count{background:var(--surface);color:var(--ink)}
}
@media (max-width:600px){
  .mbox-toolbar{flex-wrap:wrap;padding:10px 14px}
  .mbox-search{order:3;flex:1 1 100%;max-width:none}
  .mbox .msg-header{padding:12px 14px 12px 42px;gap:10px}
  .mbox .msg-check-wrap{left:14px}
  .msg-avatar{display:none}
  .mbox-head{padding:16px 14px 12px}
}

/* ===== Boutique (admin) : indicateurs, onglets Commandes / Produits, commandes regroupées (v0.6.40) ===== */
/* Bouton d'action principal d'une page d'admin : taille contenue, pour ne pas écraser le titre */
.page-head > .btn{padding:.55em 1.1em;font-size:.9rem;gap:6px}
.page-head > .btn svg{width:15px;height:15px;vertical-align:-.18em}
.shop-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 22px}
.shop-kpi{display:flex;flex-direction:column;gap:2px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);min-width:0}
.shop-kpi-label{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.shop-kpi strong{font-family:var(--font-display);font-size:1.6rem;line-height:1.2;color:var(--ink)}
.shop-kpi strong small{font-size:.9rem;font-weight:500;color:var(--muted)}
.shop-kpi-sub{font-size:.82rem;color:var(--muted)}
.shop-kpi--alert{border-color:color-mix(in srgb, var(--ocean) 55%, var(--line));box-shadow:inset 3px 0 0 var(--ocean)}
.shop-kpi--warn{border-color:#f1d3a0;box-shadow:inset 3px 0 0 #e08a00}
[data-theme="dark"] .shop-kpi--warn{border-color:#5a4520}
.shop{background:var(--surface);border:1px solid var(--line);border-radius:14px}
.shop-tabs{display:flex;gap:26px;padding:0 22px;border-bottom:1px solid var(--line)}
.shop-tabs .fiche-tab{display:inline-flex;align-items:center;gap:8px;padding:14px 0;border:0;border-radius:0;background:none;color:var(--muted);font:inherit;font-size:.95rem;font-weight:600;cursor:pointer;box-shadow:inset 0 -2px 0 transparent;transition:color .15s,box-shadow .2s}
.shop-tabs .fiche-tab:hover{background:none;color:var(--ink)}
.shop-tabs .fiche-tab.is-active,[data-theme="dark"] .shop-tabs .fiche-tab.is-active{background:none;color:var(--ink);box-shadow:inset 0 -2px 0 var(--ocean)}
.shop-tab-count{min-width:20px;padding:1px 7px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:.74rem;font-weight:600;color:var(--muted);text-align:center}
.shop-panel.fiche-panel{padding:20px 22px 22px}
.shop-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.shop-toolbar .mbox-search{flex:1 1 240px;max-width:340px}
.shop-toolbar .mbox-search input{background:var(--surface-2)}
.shop-chips{display:flex;gap:6px;flex-wrap:wrap}
.shop-chip{padding:6px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--muted);font:inherit;font-size:.84rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.shop-chip b{margin-left:3px;font-weight:700;color:var(--ink)}
.shop-chip:hover{color:var(--ink);border-color:var(--muted)}
.shop-chip.is-active{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.shop-chip.is-active b{color:inherit}
.shop-chip:focus-visible,.shop-icon-btn:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
.shop-export{margin-left:auto;display:inline-flex;align-items:center;gap:6px}
.shop-export svg{width:15px;height:15px}
.shop-count{margin:0 0 12px;font-size:.85rem;color:var(--muted)}
.shop-count[hidden]{display:none}
.shop-orders{display:flex;flex-direction:column;gap:12px}
.shop-order{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.shop-order.is-new{box-shadow:inset 3px 0 0 var(--ocean)}
.shop-order.is-done{opacity:.72}
.shop-order.is-done:hover,.shop-order.is-done:focus-within{opacity:1}
.shop-order-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:6px 22px;align-items:center;padding:14px 18px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.shop-order-who{min-width:0;display:flex;flex-direction:column;gap:2px}
.shop-order-who strong{font-size:1rem;color:var(--ink);overflow-wrap:anywhere}
.shop-order-contact{font-size:.84rem;color:var(--muted);overflow-wrap:anywhere}
.shop-order-contact a{color:inherit;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px}
.shop-order-contact a:hover{color:var(--ink)}
.shop-order-meta{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.shop-order-meta .cmd-ref{margin:0}
.shop-order-date{font-size:.8rem;color:var(--muted);white-space:nowrap}
.shop-order-total{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2;padding-left:22px;border-left:1px solid var(--line)}
.shop-order-total span{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.shop-order-total strong{font-family:var(--font-display);font-size:1.15rem;color:var(--ink);white-space:nowrap}
.shop-lines{list-style:none;margin:0;padding:0}
.shop-line{display:flex;align-items:center;gap:14px;padding:11px 18px;border-top:1px solid var(--line)}
.shop-line:first-child{border-top:0}
.shop-line-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:1px}
.shop-line-name{font-weight:600;color:var(--ink)}
.shop-line-detail{font-size:.84rem;color:var(--muted)}
.shop-line-price{flex:0 0 auto;font-weight:600;white-space:nowrap}
.shop-line form{margin:0;flex:0 0 auto}
.shop-order-msg{margin:0;padding:11px 18px;border-top:1px solid var(--line);font-size:.9rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.shop-order-msg span{display:block;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:2px}
.shop-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.shop-icon-btn svg{width:15px;height:15px}
.shop-icon-btn:hover{color:var(--ink);border-color:var(--muted);text-decoration:none}
.shop-icon-btn--danger:hover{color:#d64545;border-color:color-mix(in srgb, #d64545 55%, var(--line));background:color-mix(in srgb, #d64545 8%, transparent)}
.shop-empty{border-top:0;padding:48px 20px}
.shop-hint{margin:0 0 14px;font-size:.86rem;color:var(--muted)}
.shop-table{border:1px solid var(--line);border-radius:12px;overflow-x:auto}
.shop-table table.data{margin:0}
.shop-prod-img{width:64px}
.shop-prod-img img{display:block;width:48px;height:48px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}
.shop-prod-sizes{display:block;font-size:.8rem;color:var(--muted);margin-top:2px}
.shop-prod-price{font-weight:600;white-space:nowrap}
.prod-row.is-hidden-prod strong,.prod-row.is-hidden-prod .shop-prod-price{color:var(--muted)}
.prod-row.is-hidden-prod img{opacity:.55;filter:grayscale(1)}
.shop-pill{display:inline-flex;align-items:center;padding:3px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:.76rem;font-weight:600;color:var(--muted);white-space:nowrap}
.shop-pill--ok{background:#e8f5ec;border-color:#bfe3c9;color:#1f6b33}
.shop-pill--ko{background:#fdecec;border-color:#f2c0c0;color:#a12c2c}
[data-theme="dark"] .shop-pill--ok{background:#16301d;border-color:#28563a;color:#8fdba3}
[data-theme="dark"] .shop-pill--ko{background:#3a1717;border-color:#6a2a2a;color:#f0908a}
.shop-th-actions{text-align:right}
.shop-td-actions{white-space:nowrap;text-align:right}
.shop-td-actions > *{vertical-align:middle;margin-left:6px}
.shop-td-actions form{display:inline-block;margin:0 0 0 6px}
@media (max-width:1000px){ .shop-kpis{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:700px){
  .shop-order-head{grid-template-columns:minmax(0,1fr) auto}
  .shop-order-meta{grid-column:1 / -1;flex-direction:row;align-items:center;gap:10px;order:3}
  .shop-order-total{padding-left:0;border-left:0}
  .shop-line{flex-wrap:wrap;gap:8px 12px}
  .shop-line-main{flex:1 1 100%}
  .shop-export{margin-left:0}
  .shop-panel.fiche-panel{padding:16px}
  .shop-tabs{padding:0 16px}
}
@media (max-width:520px){ .shop-kpis{grid-template-columns:minmax(0,1fr)} }

/* ===== Adhérents (admin) : indicateurs cliquables + tableau (v0.6.41) ===== */
a.shop-kpi--link{text-decoration:none;color:inherit;transition:border-color .15s,transform .15s,box-shadow .15s}
a.shop-kpi--link:hover{border-color:var(--muted);text-decoration:none;transform:translateY(-1px)}
a.shop-kpi--link.is-current{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
a.shop-kpi--link:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
.shop-pill--warn{background:#fff3e0;border-color:#f1d3a0;color:#8a5200}
[data-theme="dark"] .shop-pill--warn{background:#3a2c14;border-color:#5a4520;color:#f0c584}
.adh{background:var(--surface);border:1px solid var(--line);border-radius:14px}
.adh-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:16px 20px}
.adh-toolbar .mbox-search{flex:1 1 260px;max-width:380px}
.adh-toolbar .mbox-search input{background:var(--surface-2)}
.adh-count{font-size:.85rem;color:var(--muted)}
.adh-count[hidden]{display:none}
.adh-tools{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.adh-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--surface-2);font-size:.88rem;color:var(--muted)}
.adh-summary strong{color:var(--ink);font-weight:600}
.adh-summary-chip{padding:2px 10px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-size:.8rem;font-weight:600;color:var(--ink)}
.adh-summary a{margin-left:auto;font-size:.84rem}
.adh-table-wrap{overflow-x:auto;border-radius:0 0 14px 14px}
.adh-table{width:100%;border-collapse:collapse}
.adh-table thead th{padding:11px 16px;text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap}
.adh-table thead th:first-child,.adh-table tbody td:first-child{padding-left:20px}
.adh-row>td{padding:12px 16px;border-top:1px solid var(--line);vertical-align:middle;font-size:.92rem}
.adh-table tbody tr:first-child>td{border-top:0}
.adh-row{cursor:pointer;transition:background .12s}
.adh-row:hover>td{background:var(--surface-2)}
/* Ligne entière verte (dossier complet) ou orange (quelque chose reste à traiter) */
.adh-row.is-ok>td{background:color-mix(in srgb, #2e9d48 11%, var(--surface))}
.adh-row.is-todo>td{background:color-mix(in srgb, #e08a00 13%, var(--surface))}
.adh-row.is-ok:hover>td{background:color-mix(in srgb, #2e9d48 18%, var(--surface))}
.adh-row.is-todo:hover>td{background:color-mix(in srgb, #e08a00 21%, var(--surface))}
.adh-row.is-ok>td:first-child{box-shadow:inset 4px 0 0 #2e9d48}
.adh-row.is-todo>td:first-child{box-shadow:inset 4px 0 0 #e08a00}
/* Violet : cotisation payée, mais il reste un document ou une information à fournir.
   (Le bleu se confondait avec le vert en thème sombre : le violet tranche avec le vert comme avec l'orange.) */
.adh-row.is-partial>td{background:color-mix(in srgb, #9b5de5 20%, var(--surface))}
.adh-row.is-partial:hover>td{background:color-mix(in srgb, #9b5de5 29%, var(--surface))}
.adh-row.is-partial>td:first-child{box-shadow:inset 4px 0 0 #9b5de5}
/* Vert un peu plus franc, pour s'écarter davantage du violet */
.adh-row.is-ok>td{background:color-mix(in srgb, #2e9d48 16%, var(--surface))}
.adh-row.is-ok:hover>td{background:color-mix(in srgb, #2e9d48 24%, var(--surface))}
.adh-row.is-ok .adh-flag,.adh-row.is-todo .adh-flag,.adh-row.is-partial .adh-flag{background:var(--surface);border-color:var(--line);color:var(--ink)}
.adh-row.is-ok .adh-avatar,.adh-row.is-todo .adh-avatar,.adh-row.is-partial .adh-avatar{background:var(--surface)}
.adh-legend{margin-left:auto;display:inline-flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--muted)}
.adh-legend span{display:inline-flex;align-items:center;gap:6px}
.adh-lg{display:inline-block;width:11px;height:11px;border-radius:3px}
.adh-lg--ok{background:#2e9d48}
.adh-lg--partial{background:#9b5de5}
.adh-lg--todo{background:#e08a00}
.adh-summary a + .adh-legend{margin-left:14px}
.adh-who{display:flex;align-items:center;gap:12px;min-width:0}
.adh-avatar{flex:0 0 auto;width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-2);border:1px solid var(--line);font-size:.78rem;font-weight:700;color:var(--muted)}
.adh-row:hover .adh-avatar{background:var(--surface)}
.adh-id{display:flex;flex-direction:column;gap:1px;min-width:0}
.adh-id strong{font-size:.96rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adh-id span{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adh-c-statut{white-space:nowrap}
.adh-role{margin-left:2px;font-size:.84rem;font-weight:500;color:var(--muted)}
.adh-id strong .adh-role{display:inline;font-size:.84rem;color:var(--muted)}
.adh-c-formule{color:var(--ink);white-space:nowrap}
.adh-muted{color:var(--muted);font-size:.86rem}
.adh-ech{display:inline-flex;flex-direction:column;line-height:1.25;white-space:nowrap;color:var(--ink)}
.adh-ech small{font-size:.74rem;font-weight:600}
.adh-ech--warn small{color:#b86a00}
.adh-ech--bad,.adh-ech--bad small{color:#d64545}
[data-theme="dark"] .adh-ech--warn small{color:#f0c584}
[data-theme="dark"] .adh-ech--bad,[data-theme="dark"] .adh-ech--bad small{color:#f0908a}
.adh-flags{display:flex;flex-wrap:wrap;gap:5px}
.adh-flag{display:inline-flex;align-items:center;padding:2px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface-2);font-size:.74rem;font-weight:600;color:var(--muted);white-space:nowrap}
.adh-flag--warn{background:#fff3e0;border-color:#f1d3a0;color:#8a5200}
.adh-flag--new{background:var(--ink);border-color:var(--ink);color:var(--surface)}
[data-theme="dark"] .adh-flag--warn{background:#3a2c14;border-color:#5a4520;color:#f0c584}
.adh-c-go{width:34px;padding-left:0 !important;color:var(--muted)}
.adh-c-go svg{width:16px;height:16px;display:block;opacity:.5;transition:transform .15s,opacity .15s}
.adh-row:hover .adh-c-go svg{opacity:1;transform:translateX(2px)}
@media (max-width:1150px){ .adh-c-formule{display:none} }
@media (max-width:900px){ .adh-c-ech{display:none} .adh-tools{margin-left:0} }
@media (max-width:640px){
  .adh-c-cotis,.adh-c-go{display:none}
  .adh-toolbar{padding:14px}
  .adh-summary{padding:10px 14px}
  .adh-table thead th:first-child,.adh-table tbody td:first-child{padding-left:14px}
  .adh-row>td{padding:11px 10px}
  .adh-id span{white-space:normal}
}

/* ===== Planning des animateurs (admin, v0.6.41) ===== */
.plan-nav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 10px}
.plan-week{font-size:1.05rem;color:var(--ink);min-width:0}
.plan-legend{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap;font-size:.84rem;color:var(--muted)}
.plan-legend span{display:inline-flex;align-items:center;gap:6px}
.plan-dot{display:inline-block;width:14px;height:14px;border-radius:5px;border:1px dashed var(--line);background:transparent}
.plan-dot--present{border:1px solid #2e9d48;background:#2e9d48}
.plan-dot--absent{border:1px solid #d64545;background:#d64545}
.plan-dot--vacances{border:1px solid #2f7fd1;background:#2f7fd1}
.plan-help{margin:0 0 18px;font-size:.88rem;color:var(--muted);max-width:80ch}
.plan-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:0 0 20px}
.plan-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line)}
.plan-card-head h2{margin:0;font-size:1.1rem;color:var(--ink)}
.plan-status{font-size:.82rem;color:var(--muted)}
.plan-status.is-ok{color:#2e9d48}
.plan-status.is-err{color:#d64545;font-weight:600}
.plan-table-wrap{overflow-x:auto}
.plan-table{width:100%;border-collapse:collapse;min-width:640px}
.plan-table th,.plan-table td{padding:8px 6px;text-align:center;border-top:1px solid var(--line)}
.plan-table thead th{border-top:0;padding:10px 6px;font-weight:600;vertical-align:top;color:var(--muted)}
.plan-th-name{text-align:left !important;padding-left:20px !important;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle !important}
.plan-th-week{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle !important;width:128px}
.plan-day{display:block;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase}
.plan-date{display:block;font-size:1.05rem;font-weight:700;color:var(--ink);line-height:1.2}
.plan-seances{display:inline-block;margin-top:3px;padding:1px 7px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:.68rem;font-weight:600;color:var(--muted);white-space:nowrap}
.plan-table .is-today{background:color-mix(in srgb, var(--ocean) 7%, transparent)}
.plan-table thead .is-today .plan-date{color:var(--ocean)}
.plan-table thead .is-past .plan-date{color:var(--muted)}
.plan-name{padding-left:20px !important;text-align:left !important;font-weight:500;color:var(--ink);white-space:nowrap}
.plan-name-in{display:flex;align-items:center;gap:10px}
.plan-name .adh-avatar{width:32px;height:32px;font-size:.72rem}
.plan-name em{margin-left:4px;padding:1px 7px;border-radius:999px;background:var(--ink);color:var(--surface);font-style:normal;font-size:.68rem;font-weight:600}
.plan-table tr.is-me > th,.plan-table tr.is-me > td{background:color-mix(in srgb, var(--ink) 3%, transparent)}
.plan-cell{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:0;border-radius:10px;border:1px dashed var(--line);background:transparent;color:transparent;cursor:pointer;transition:background .12s,border-color .12s,transform .1s}
.plan-cell::after{content:"";font-size:1rem;font-weight:700;line-height:1}
.plan-cell.is-present{border:1px solid #2e9d48;background:#2e9d48;color:#fff}
.plan-cell.is-present::after{content:"✓"}
.plan-cell.is-absent{border:1px solid #d64545;background:#d64545;color:#fff}
.plan-cell.is-absent::after{content:"✕"}
.plan-cell.is-vacances{border:1px solid #2f7fd1;background:#2f7fd1;color:#fff}
.plan-cell.is-vacances::after{content:"V";font-size:.82rem}
button.plan-cell.is-vacances:hover{border-color:#2466ab}
/* Demi-journées : la case est coupée en diagonale, matin en haut à gauche, après-midi en bas à droite */
.plan-cell.is-split{--am:transparent;--pm:transparent;border:1px solid var(--muted);background:linear-gradient(135deg, var(--am) 0 49%, var(--surface) 49% 51%, var(--pm) 51% 100%)}
.plan-cell.is-split::after{content:""}
.plan-cell.am-present{--am:#2e9d48} .plan-cell.am-absent{--am:#d64545} .plan-cell.am-vacances{--am:#2f7fd1}
.plan-cell.pm-present{--pm:#2e9d48} .plan-cell.pm-absent{--pm:#d64545} .plan-cell.pm-vacances{--pm:#2f7fd1}
/* Motif saisi : petit point dans l'angle ; le texte est dans l'infobulle */
.plan-cell{position:relative}
.plan-cell[data-motif]::before{content:"";position:absolute;top:-3px;right:-3px;width:9px;height:9px;border-radius:50%;background:var(--ink);border:2px solid var(--surface)}
/* Séance programmée ce jour-là pour cet animateur */
.plan-cell.has-seance{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px color-mix(in srgb, var(--ocean) 55%, transparent)}
.plan-cell.is-conflit{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px #e08a00}
.plan-dot--seance{border:2px solid color-mix(in srgb, var(--ocean) 70%, transparent);background:transparent}
.plan-alerte{display:flex;gap:12px;align-items:flex-start;margin:0 0 16px;padding:13px 16px;border:1px solid #f1d3a0;border-radius:12px;background:#fff3e0;color:#5c3a00}
.plan-alerte svg{flex:0 0 auto;width:20px;height:20px;margin-top:1px;color:#b86a00}
.plan-alerte strong{display:block;font-size:.95rem}
.plan-alerte ul{margin:4px 0 0;padding-left:18px;font-size:.88rem;line-height:1.5}
[data-theme="dark"] .plan-alerte{border-color:#5a4520;background:#3a2c14;color:#ffe2b0}
[data-theme="dark"] .plan-alerte svg{color:#f0c584}
/* Choix Semaine / Mois */
.plan-vues{margin-left:6px}
.plan-vues a.shop-chip{text-decoration:none}
/* Jours fériés et week-ends */
.plan-table .is-ferie{background:color-mix(in srgb, #9b5de5 9%, transparent)}
.plan-table thead .is-ferie .plan-date{color:#9b5de5}
.plan-ferie{display:block;margin-top:2px;font-size:.64rem;font-weight:600;color:#9b5de5;line-height:1.2;white-space:normal;max-width:84px;margin-left:auto;margin-right:auto}
[data-theme="dark"] .plan-ferie,[data-theme="dark"] .plan-table thead .is-ferie .plan-date{color:#c9a6ff}
.plan-table .is-we{background:color-mix(in srgb, var(--ink) 3%, transparent)}
/* Vue mensuelle : cases compactes, une colonne par jour */
.plan-table--mois{min-width:920px}
.plan-table--mois th,.plan-table--mois td{padding:5px 1px}
.plan-table--mois thead th{padding:7px 1px}
.plan-table--mois .plan-day{font-size:.6rem;letter-spacing:0}
.plan-table--mois .plan-date{font-size:.8rem}
.plan-table--mois .plan-cell{width:22px;height:22px;border-radius:6px}
.plan-table--mois .plan-cell::after{font-size:.66rem}
.plan-table--mois .plan-cell.is-vacances::after{font-size:.6rem}
.plan-table--mois .plan-cell[data-motif]::before{width:7px;height:7px;top:-3px;right:-3px}
.plan-table--mois .plan-name,.plan-table--mois .plan-th-name{padding-left:14px !important;font-size:.84rem;position:sticky;left:0;background:var(--surface);z-index:1}
.plan-table--mois tfoot .plan-name{background:var(--surface-2)}
.plan-table--mois .plan-total{min-width:18px;height:18px;padding:0 3px;font-size:.68rem}
.plan-seance-dot{display:block;width:5px;height:5px;margin:3px auto 0;border-radius:50%;background:var(--ocean)}
/* « Ma semaine » : une ligne par jour, affichée seulement sur petit écran */
.plan-moi{display:none}
.plan-moi-list{list-style:none;margin:0;padding:0}
.plan-moi-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--line)}
.plan-moi-list li:first-child{border-top:0}
.plan-moi-list li.is-today{background:color-mix(in srgb, var(--ocean) 7%, transparent)}
.plan-moi-list li.is-past{opacity:.65}
.plan-moi-date{display:flex;flex-direction:column;min-width:0}
.plan-moi-date strong{font-size:.98rem;color:var(--ink)}
.plan-moi-date em{font-style:normal;font-size:.72rem;color:#9b5de5}
.plan-moi-acts{display:flex;gap:16px;flex:0 0 auto}
.plan-moi-act{display:flex;flex-direction:column;align-items:center;gap:4px}
.plan-moi-act small{font-size:.66rem;color:var(--muted);white-space:nowrap}
.plan-moi .plan-cell{width:46px;height:46px;border-radius:12px}
.plan-moi .plan-cell::after{font-size:1.15rem}
@media (max-width:700px){ .plan-moi{display:block} }
.plan-periode-motif{flex:1 1 220px}
.plan-periode-motif input{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);font:inherit;font-size:.9rem;width:100%;box-sizing:border-box}
/* Saisie d'une période (plusieurs jours d'un coup) */
.plan-periode{margin:0 0 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.plan-periode summary{list-style:none;display:flex;align-items:center;gap:10px;padding:13px 18px;cursor:pointer;user-select:none;font-weight:600;font-size:.94rem;color:var(--ink)}
.plan-periode summary::-webkit-details-marker{display:none}
.plan-periode summary:focus-visible{outline:2px solid var(--ocean);outline-offset:-2px;border-radius:14px}
.plan-periode-plus{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line);background:var(--surface-2);font-weight:700;line-height:1;transition:transform .15s}
.plan-periode[open] .plan-periode-plus{transform:rotate(45deg)}
.plan-periode-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin:0;padding:4px 18px 12px;border-top:1px solid var(--line);padding-top:14px}
.plan-periode-form label{display:flex;flex-direction:column;gap:5px;margin:0;font-size:.78rem;font-weight:600;color:var(--muted)}
.plan-periode-form select,.plan-periode-form input[type=date]{height:36px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink);font:inherit;font-size:.9rem;min-width:140px}
.plan-periode-form select:focus,.plan-periode-form input:focus{outline:none;border-color:var(--ocean);box-shadow:0 0 0 3px color-mix(in srgb, var(--ocean) 18%, transparent)}
.plan-periode-hint{margin:0;padding:0 18px 14px;font-size:.82rem;color:var(--muted)}
@media (max-width:640px){ .plan-periode-form label{flex:1 1 140px} .plan-periode-form .btn{flex:1 1 100%;justify-content:center} }
button.plan-cell:hover{border-style:solid;border-color:var(--muted);transform:scale(1.06)}
button.plan-cell.is-present:hover{border-color:#237c38}
button.plan-cell.is-absent:hover{border-color:#b33636}
button.plan-cell:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
button.plan-cell:active{transform:scale(.94)}
.plan-cell.is-locked{cursor:default;opacity:.8}
.plan-cell.is-locked.is-none{border-style:dotted;opacity:.5}
.plan-table td.is-past .plan-cell{opacity:.6}
.plan-week-actions{white-space:nowrap}
.plan-week-actions .shop-icon-btn{width:30px;height:30px;margin:0 1px}
.plan-wk--present:hover{color:#2e9d48;border-color:#2e9d48}
.plan-wk--absent:hover{color:#d64545;border-color:#d64545}
.plan-table tfoot th,.plan-table tfoot td{background:var(--surface-2);border-top:1px solid var(--line)}
.plan-table tfoot tr th:first-child{border-radius:0 0 0 14px}
.plan-table tfoot tr td:last-child{border-radius:0 0 14px 0}
.plan-foot-label{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.plan-total{display:inline-flex;align-items:center;justify-content:center;min-width:28px;height:24px;padding:0 6px;border-radius:999px;background:#e8f5ec;border:1px solid #bfe3c9;color:#1f6b33;font-size:.82rem;font-weight:700}
.plan-total.is-zero{background:transparent;border-color:var(--line);color:var(--muted)}
[data-theme="dark"] .plan-total{background:#16301d;border-color:#28563a;color:#8fdba3}
[data-theme="dark"] .plan-total.is-zero{background:transparent;border-color:var(--line);color:var(--muted)}
@media (max-width:700px){
  .plan-legend{margin-left:0;flex:1 1 100%}
  .plan-name{padding-left:12px !important}
  .plan-th-name{padding-left:12px !important}
  .plan-cell{width:34px;height:34px}
}

/* ===== Statistiques (admin, v0.6.43) ===== */
.stt-period{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:0 0 18px}
.stt-period a.shop-chip{text-decoration:none}
.stt-range{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0;font-size:.86rem;color:var(--muted)}
.stt-range label{display:inline-flex;align-items:center;gap:6px;margin:0;font-weight:500}
.stt-range input[type=date]{height:34px;padding:0 10px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink);font:inherit;font-size:.86rem}
.stt-evol{font-weight:700;color:var(--ink)}
.stt-evol.is-up{color:#2e9d48}
.stt-evol.is-down{color:#d64545}
.stt-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;margin:0 0 20px}
.stt-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px 14px}
.stt-card-head h2{margin:0;font-size:1.1rem;color:var(--ink)}
.stt-card-head p{margin:3px 0 0;font-size:.86rem;color:var(--muted)}
.stt-card-head p strong{color:var(--ink);font-weight:600}
.stt-legend{display:inline-flex;align-items:center;gap:7px;font-size:.82rem;color:var(--muted);white-space:nowrap}
.stt-legend i{width:12px;height:12px;border-radius:3px;background:var(--ocean)}
.stt-chart-wrap{display:flex;gap:10px;padding:0 22px}
.stt-yaxis{flex:0 0 auto;display:flex;flex-direction:column;justify-content:space-between;height:200px;padding-top:2px;font-size:.7rem;color:var(--muted);text-align:right;min-width:26px}
.stt-chart.chart-bars{flex:1 1 auto;min-width:0;height:226px;gap:2px;padding:0 0 26px;align-items:flex-end;
  background:linear-gradient(to bottom, var(--line) 1px, transparent 1px) 0 0 / 100% 100px no-repeat,
             linear-gradient(to bottom, var(--line) 1px, transparent 1px) 0 100px / 100% 100px no-repeat;
  border-bottom:0;box-shadow:inset 0 -27px 0 var(--surface), inset 0 -28px 0 var(--line)}
.stt-chart .chart-bar{min-width:6px;height:200px;position:relative;justify-content:flex-end}
.stt-chart .chart-bar-fill{width:78%;max-width:34px;border-radius:5px 5px 0 0;background:var(--ocean);opacity:.85}
.stt-chart .chart-bar:hover .chart-bar-fill,.stt-chart .chart-bar.is-selected .chart-bar-fill{background:var(--ocean);opacity:1;box-shadow:0 0 0 2px color-mix(in srgb, var(--ocean) 30%, transparent)}
.stt-chart .chart-bar.is-empty::after{content:"";position:absolute;bottom:0;left:50%;width:4px;height:2px;margin-left:-2px;border-radius:2px;background:var(--line)}
.stt-chart .chart-bar-lbl{position:absolute;top:100%;left:50%;transform:translateX(-50%);margin-top:7px;height:auto;font-size:.68rem;color:var(--muted);white-space:nowrap}
.stt-chart .chart-bar:focus-visible{outline:2px solid var(--ocean);outline-offset:1px;border-radius:5px}
.stt-tip{margin:14px 22px 0;padding:10px 14px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.stt-tip[hidden]{display:none}
.stt-tip .freq-tip-table,.stt-tip .freq-tip-table tbody{display:flex;flex-wrap:wrap;gap:6px 28px}
.stt-tip .freq-tip-table tr{display:flex;align-items:baseline;gap:8px}
.stt-tip .freq-tip-table th{padding:0;font-size:.78rem;font-weight:500}
.stt-tip .freq-tip-table td{padding:0;color:var(--ink);font-weight:700}
.stt-foot{margin:0;padding:12px 22px 16px;font-size:.8rem;color:var(--muted)}
.stt-table-wrap{overflow-x:auto;border-top:1px solid var(--line);border-radius:0 0 14px 14px}
.stt-table{width:100%;border-collapse:collapse}
.stt-table th{padding:10px 14px;text-align:left;font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap}
.stt-table td{padding:11px 14px;border-top:1px solid var(--line);font-size:.92rem;vertical-align:middle}
.stt-table tbody tr:first-child td{border-top:0}
.stt-table tbody tr:hover td{background:var(--surface-2)}
.stt-table th:first-child,.stt-table td:first-child{padding-left:22px}
.stt-table th:last-child,.stt-table td:last-child{padding-right:22px}
.stt-rank{width:36px;color:var(--muted);font-variant-numeric:tabular-nums}
.stt-num{text-align:right !important;white-space:nowrap;font-variant-numeric:tabular-nums}
.stt-muted{color:var(--muted)}
.stt-file{display:block;font-size:.76rem;color:var(--muted)}
.stt-barcol{width:32%;min-width:120px}
.stt-bar{display:block;height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.stt-bar i{display:block;height:100%;border-radius:999px;background:var(--ocean);opacity:.8}
.stt-note{margin:0 0 8px;font-size:.82rem;color:var(--muted)}
@media (max-width:760px){
  .stt-barcol{display:none}
  .stt-yaxis{display:none}
  .stt-chart-wrap{padding:0 14px}
  .stt-card-head{padding:16px 14px 12px}
  .stt-table th:first-child,.stt-table td:first-child{padding-left:14px}
  .stt-table th:last-child,.stt-table td:last-child{padding-right:14px}
  .stt-tip{margin:14px 14px 0}
  .stt-foot{padding:12px 14px 14px}
}

/* ===== Documents (admin, v0.6.43) : liste à gauche, ajout à droite ===== */
.cdoc{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:22px;align-items:start}
.cdoc-list,.cdoc-add{background:var(--surface);border:1px solid var(--line);border-radius:14px}
.cdoc-head{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 22px 14px;border-bottom:1px solid var(--line)}
.cdoc-head h2,.cdoc-add h2{margin:0;font-size:1.1rem;color:var(--ink)}
.cdoc-head p{margin:3px 0 0;font-size:.86rem;color:var(--muted)}
.cdoc-head .mbox-search{flex:0 1 260px}
.cdoc-head .mbox-search input{background:var(--surface-2)}
.cdoc-rows{list-style:none;margin:0;padding:0}
.cdoc-row{display:flex;align-items:center;gap:14px;padding:13px 22px;border-top:1px solid var(--line);transition:background .12s}
.cdoc-row:first-child{border-top:0}
.cdoc-row:hover{background:var(--surface-2)}
.cdoc-type{flex:0 0 auto;width:46px;height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--muted)}
.cdoc-type svg{width:18px;height:18px}
.cdoc-type em{font-style:normal;font-size:.56rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.cdoc-type--pdf{color:#c0392b;border-color:color-mix(in srgb, #c0392b 30%, var(--line));background:color-mix(in srgb, #c0392b 7%, var(--surface))}
.cdoc-type--img{color:#2471a3;border-color:color-mix(in srgb, #2471a3 30%, var(--line));background:color-mix(in srgb, #2471a3 7%, var(--surface))}
[data-theme="dark"] .cdoc-type--pdf{color:#f0908a}
[data-theme="dark"] .cdoc-type--img{color:#8fc3ea}
.cdoc-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.cdoc-info strong{font-size:.98rem;color:var(--ink);overflow-wrap:anywhere}
.cdoc-info span{font-size:.82rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cdoc-actions{flex:0 0 auto;display:flex;align-items:center;gap:6px}
.cdoc-actions form{margin:0}
.cdoc-add{padding:20px 22px 22px;position:sticky;top:20px}
.cdoc-add-sub{margin:4px 0 16px;font-size:.86rem;color:var(--muted)}
.cdoc-add form{margin:0}
.cdoc-add .field{margin:0 0 14px}
.cdoc-add .upload-zone.upload-sm{padding:14px 12px}
.cdoc-add .btn-block{width:100%;justify-content:center;text-align:center}
@media (max-width:980px){
  .cdoc{grid-template-columns:minmax(0,1fr)}
  .cdoc-add{position:static;order:-1}
}
@media (max-width:600px){
  .cdoc-row{padding:12px 14px;gap:10px}
  .cdoc-head{padding:16px 14px 12px}
  .cdoc-info span{white-space:normal}
  .cdoc-add{padding:16px 14px}
}

/* ===== Séances et compétitions (admin, v0.6.43) : liste ===== */
.adh-toolbar .shop-chips a.shop-chip{text-decoration:none}
.ev-chips-type{padding-left:12px;border-left:1px solid var(--line)}
.evl-search{margin-left:auto;flex:0 1 260px !important}
.adh-summary .adh-count{margin-left:auto}
.evl-table .evl-row>td{padding-top:11px;padding-bottom:11px}
.evl-c-date{white-space:nowrap;width:1%}
.evl-date{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;width:50px;height:50px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);vertical-align:middle;line-height:1.1}
.evl-day{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--ink)}
.evl-mon{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.evl-time{display:inline-block;margin-left:10px;font-size:.84rem;color:var(--muted);vertical-align:middle}
.evl-row.is-past .evl-date{opacity:.6}
.evl-row.is-past .adh-id strong{color:var(--muted)}
.evl-c-insc{white-space:nowrap;min-width:110px}
.evl-insc{font-size:.9rem;color:var(--muted)}
.evl-insc strong{color:var(--ink);font-weight:700}
.evl-insc em{font-style:normal;font-size:.72rem;font-weight:700;color:#b86a00;text-transform:uppercase;letter-spacing:.04em}
[data-theme="dark"] .evl-insc em{color:#f0c584}
.evl-fill{margin-top:5px;max-width:110px;height:5px}
.evl-insc.is-full + .evl-fill i{background:#e08a00}
.evl-c-actions{width:1%;white-space:nowrap}
.evl-table thead .evl-c-actions{text-align:right}
.evl-actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}
.evl-actions form{margin:0}
@media (max-width:1100px){ .evl-c-type{display:none} .evl-search{margin-left:0;flex:1 1 100% !important} .ev-chips-type{padding-left:0;border-left:0} }
@media (max-width:820px){ .evl-c-etat{display:none} .evl-time{display:block;margin:4px 0 0} }
@media (max-width:640px){ .evl-c-insc{display:none} }

/* ===== Aperçu « vue en tant que » (administrateurs, v0.6.48) ===== */
.vue-menu{position:relative}
.vue-menu summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;user-select:none}
.vue-menu summary::-webkit-details-marker{display:none}
.vue-menu summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);margin-top:-3px;opacity:.7;transition:transform .15s}
.vue-menu[open] summary::after{transform:rotate(-135deg);margin-top:3px}
.vue-pop{display:flex;flex-direction:column;gap:2px;padding:6px;border-radius:12px}
.vue-pop form{margin:0}
.vue-opt{display:block;width:100%;text-align:left;padding:8px 10px;border:0;border-radius:8px;background:none;font:inherit;font-size:.9rem;font-weight:500;color:inherit;cursor:pointer}
.vue-opt:hover{background:rgba(255,255,255,.1)}
.vue-opt.is-current{font-weight:700}
.vue-opt.is-current::before{content:"✓ "}
/* Dans le menu latéral de l'admin */
.admin-side .vue-menu{margin:6px 0 4px}
.admin-side .vue-menu summary{padding:9px 12px;border:1px solid rgba(255,255,255,.18);border-radius:10px;font-size:.92rem;font-weight:600;color:inherit}
.admin-side .vue-menu summary:hover{background:rgba(255,255,255,.08)}
.admin-side .vue-pop{margin-top:4px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
/* Barre fixe pendant un aperçu : toujours visible, pour pouvoir revenir au rôle réel */
.vue-bar{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:9000;display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
  max-width:calc(100vw - 24px);padding:10px 14px;border-radius:14px;background:#3a2c14;border:1px solid #e08a00;color:#ffe2b0;box-shadow:0 12px 34px rgba(0,0,0,.45);font-size:.9rem}
.vue-bar-txt strong{color:#fff}
.vue-bar form{margin:0}
.vue-bar .vue-menu summary{padding:6px 12px;border:1px solid rgba(255,255,255,.3);border-radius:999px;font-weight:600;color:#fff}
.vue-bar .vue-menu--up .vue-pop{position:absolute;bottom:calc(100% + 8px);left:0;min-width:210px;background:#241b0c;border:1px solid #5a4520;color:#fff}
.vue-back{padding:7px 14px;border:0;border-radius:999px;background:#e08a00;color:#1a1204;font:inherit;font-size:.88rem;font-weight:700;cursor:pointer}
.vue-back:hover{background:#f39c12}
.vue-back:focus-visible,.vue-opt:focus-visible,.vue-menu summary:focus-visible{outline:2px solid #fff;outline-offset:2px}
body:has(.vue-bar){padding-bottom:84px}
@media print{ .vue-bar{display:none} }
@media (max-width:520px){ .vue-bar{left:12px;right:12px;transform:none;bottom:10px} }

/* Onglet Séances de la fiche (timeline) */
.fiche-tab-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;
  border-radius:999px;background:var(--ocean);color:#fff;font-size:.68rem;font-weight:700;margin-left:2px}
[data-theme="dark"] .fiche-tab-count{color:#111}
.seance-timeline{list-style:none;margin:8px 0 0;padding:0;position:relative}
.seance-timeline::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--line)}
.seance-item{position:relative;padding:0 0 16px 28px}
.seance-item:last-child{padding-bottom:0}
.seance-dot{position:absolute;left:2px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--muted);border:2px solid var(--surface-2);z-index:1}
.seance-item.is-future .seance-dot{background:var(--coral)}
.seance-titre{font-weight:600;color:var(--ink);text-decoration:none}
.seance-titre:hover{color:var(--ocean)}
.seance-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:3px;font-size:.85rem;color:var(--muted)}
.ins-pill{font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:999px}
.ins-ok{background:#e4f4e4;color:#2e7d32}
.ins-wait{background:#fff3e0;color:#b26a00}
.ins-off{background:#fde8e8;color:#c0392b}
[data-theme="dark"] .ins-ok{background:#183a1f;color:#8fe0a0}
[data-theme="dark"] .ins-wait{background:#3a2c14;color:#f0c584}
[data-theme="dark"] .ins-off{background:#3a1c1c;color:#f0a0a0}

/* ===== Liste adhérents façon FlowRH ===== */
.list-search{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}
.list-search-input{flex:0 1 300px;display:flex;align-items:center;gap:8px;background:var(--surface);
  border:1px solid var(--line);border-radius:14px;padding:0 16px;box-shadow:var(--shadow-sm)}
.list-search-input svg{width:20px;height:20px;color:var(--muted);flex:0 0 auto}
.list-search-input input{flex:1 1 auto;border:0;background:none;padding:10px 0;font-size:.92rem;color:var(--ink);outline:none}
.list-sort{display:flex;align-items:center;gap:8px}
.list-sort span{font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.list-sort{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:3px}
.sort-opt{padding:5px 11px;border-radius:999px;font-weight:600;font-size:.82rem;color:var(--muted);text-decoration:none}
.sort-opt:hover{color:var(--ink)}
.sort-opt.is-active{background:var(--ocean);color:#fff}
[data-theme="dark"] .sort-opt.is-active{color:#111}

.roster{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm)}
.roster-table{width:100%;border-collapse:collapse;table-layout:fixed}
.roster-head th{text-align:left;padding:16px 22px;background:var(--surface-2);border-bottom:1px solid var(--line);
  font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.roster-head .rh-status{width:150px}
.roster-head .rh-formule{width:180px}
.roster-head .rh-dossier{width:150px}
.rh-count{color:var(--ocean)}
.roster-row{cursor:pointer;transition:background .12s}
.roster-row>td{border-top:1px solid var(--line);padding:16px 22px;vertical-align:middle}
.roster-row:hover>td{background:var(--surface-2)}
.roster-row.open>td{background:var(--foam)}
.rc-name-in{display:flex;align-items:center;gap:14px}
.roster-avatar{width:44px;height:44px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);
  display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--muted);font-size:.95rem;flex:0 0 auto}
.roster-id{display:flex;flex-direction:column;gap:2px;min-width:0}
.roster-id strong{font-size:1.02rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.roster-id .muted{font-size:.84rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rc-formule .roster-formule{font-weight:600;color:var(--ink)}
.rc-dossier{white-space:nowrap}
.roster-formule{font-weight:600;color:var(--ink)}
.manage-row>td{padding:0 22px 22px;border:0}
@media (max-width:760px){
  .roster-head{display:none}
  .roster-table,.roster-table tbody,.roster-row{display:block}
  .roster-row>td{display:block;padding:4px 18px;border-top:0}
  .roster-row>td.rc-name{padding-top:16px}
  .roster-row>td.rc-dossier{padding-bottom:16px;border-bottom:1px solid var(--line)}
  .roster-row:not(:first-child)>td.rc-name{border-top:1px solid var(--line)}
  .manage-row,.manage-row>td{display:block;padding:0 12px 16px}
}

/* ===== Cartes d'infos dans la fiche (style FlowRH) ===== */
.fiche-view{display:flex;flex-direction:column;gap:18px}
.info-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:22px 24px;box-shadow:var(--shadow-sm)}
.info-card-head{display:flex;align-items:center;gap:12px;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.info-card-head svg{width:22px;height:22px;color:var(--ocean);flex:0 0 auto}
.info-card-head h3{margin:0;font-family:var(--font-display);font-size:1.05rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink)}
.info-edit-btn{margin-left:auto}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 40px}
.info-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
.info-cell--wide{grid-column:1 / -1}
.info-label{font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:700}
.info-value{font-size:1.02rem;color:var(--ocean);font-weight:500;word-break:break-word}
@media (max-width:600px){ .info-grid{grid-template-columns:1fr;gap:16px} .info-card{padding:18px} }

/* En-tête de page avec icône (façon FlowRH) */
.page-title{display:flex;align-items:center;gap:14px}
.page-title-ico{width:40px;height:40px;flex:0 0 auto;display:flex;align-items:center;justify-content:center;color:var(--ocean)}
.page-title-ico svg{width:30px;height:30px}
.page-title h1{margin:0}
.page-title .sub{margin:2px 0 0}
.btn-plus{font-weight:700;font-size:1.05em}
.cal-menu>summary .filter-caret{font-size:.8em;opacity:.8}
/* Menu Filtres (réutilise cal-menu) */
.filter-menu .cal-menu-pop{left:auto;right:0;min-width:220px}
.filter-menu-pop a.is-active{background:var(--foam);color:var(--ocean);font-weight:700}
.filter-menu-pop a span{margin-left:auto;color:var(--ocean)}
.filter-menu-pop .menu-label{margin:10px 12px 4px;font-size:.66rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.filter-menu-pop .menu-label:first-child{margin-top:4px}
.filter-menu-pop .menu-reset{margin-top:6px;border-top:1px solid var(--line);color:var(--muted);font-size:.86rem}
.filter-menu-pop a .menu-main{margin:0;color:inherit;display:flex;flex-direction:column;gap:1px}
.filter-menu-pop a .menu-main small{font-size:.76rem;font-weight:400;color:var(--muted)}
.filter-menu summary svg{width:15px;height:15px}
.filter-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--surface);color:var(--ink);font-size:.7rem;font-weight:700}
[data-theme="dark"] .filter-badge{background:#111;color:#f0f0f0}
.filter-menu-pop{max-height:70vh;overflow-y:auto}
.active-filter{background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:9px 14px;
  font-size:.9rem;color:var(--muted);margin-bottom:16px}
.active-filter strong{color:var(--ink)}

/* ===== Historique façon FlowRH ===== */
.hist-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.hist-actions .inline-form{display:inline}
.hist-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:12px}
.hist-filter-grid .field{margin:0}
.hist-count{font-size:.85rem;color:var(--muted)}
.hist-table td{vertical-align:middle}
.hist-details{color:var(--ink)}
.hist-badge{display:inline-block;font-size:.78rem;font-weight:600;padding:4px 11px;border-radius:999px;white-space:nowrap}
.hb-grey{background:var(--surface-2);color:var(--muted);border:1px solid var(--line)}
.hb-green{background:#e4f4e4;color:#2e7d32}
.hb-orange{background:#fdf0dd;color:#b26a00}
.hb-blue{background:#e3eefc;color:#1c5fb0}
.hb-red{background:#fde8e8;color:#c0392b}
[data-theme="dark"] .hb-green{background:#183a1f;color:#8fe0a0}
[data-theme="dark"] .hb-orange{background:#3a2c14;color:#f0c584}
[data-theme="dark"] .hb-blue{background:#152a45;color:#a9cdf5}
[data-theme="dark"] .hb-red{background:#3a1c1c;color:#f0a0a0}
@media (max-width:760px){ .hist-filter-grid{grid-template-columns:1fr 1fr} }
@media (max-width:480px){ .hist-filter-grid{grid-template-columns:1fr} }

/* ===== Formulaire en sections (cartes) — séance & autres ===== */
.form-cards{display:flex;flex-direction:column;gap:18px;max-width:860px}
.form-cards .info-card{padding:22px 24px}
.form-cards .me-check,.ev-form .me-check{display:flex;align-items:center;gap:.6em;margin-top:12px;font-weight:500}
.form-cards .me-check input,.ev-form .me-check input{width:auto}
.recur-box{background:var(--foam);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-top:8px}
.form-submit-bar{display:flex;justify-content:flex-end;gap:10px;align-items:center;
  position:sticky;bottom:0;background:var(--surface);padding:14px 0;border-top:1px solid var(--line);margin-top:2px}
@media (max-width:600px){ .form-submit-bar{flex-direction:column-reverse} .form-submit-bar .btn{width:100%;text-align:center} }
/* Formulaire séance / compétition : pas de bandeau derrière les boutons, seulement les boutons (ils restent collés en bas) */
.ev-form .form-submit-bar{background:none;border-top:0;padding:12px 0 4px;pointer-events:none}
.ev-form .form-submit-bar > *{pointer-events:auto}
.ev-form .form-submit-bar .btn{box-shadow:0 6px 18px rgba(0,0,0,.22)}

/* Sous-carte (formulaire dans une info-card) */
.subcard{background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:16px 18px}

/* Zone de danger (onglet Administration) */
.danger-row .mrow-label{color:var(--coral)}

/* ===== Cloche de notifications (admin) ===== */
.admin-topbar{display:flex;justify-content:flex-end;margin-bottom:-42px;position:relative;z-index:30;pointer-events:none}
.admin-topbar .notif-bell{pointer-events:auto}
/* Le contenu remonte au niveau de la cloche ; on réserve sa place à droite */
.admin-main > .page-head,.admin-main > p.sub{padding-right:56px}
@media (max-width:640px){
  .admin-topbar{margin-bottom:14px}
  .admin-main > .page-head,.admin-main > p.sub{padding-right:0}
}
.notif-bell>summary{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--surface);
  display:flex;align-items:center;justify-content:center;cursor:pointer;position:relative;color:var(--ink)}
.notif-bell>summary::-webkit-details-marker{display:none}
.notif-bell>summary svg{width:20px;height:20px}
.notif-bell>summary:hover{background:var(--surface-2)}
.notif-dot{position:absolute;top:-3px;right:-3px;min-width:19px;height:19px;padding:0 5px;border-radius:999px;
  background:var(--coral);color:#fff;font-size:.7rem;font-weight:700;display:flex;align-items:center;justify-content:center}
[data-theme="dark"] .notif-dot{color:#111}
.notif-pop{min-width:280px;right:0;left:auto}
.notif-head{font-weight:700;font-size:.9rem;padding:6px 12px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.notif-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:9px;color:var(--ink);text-decoration:none;font-size:.92rem}
.notif-item:hover{background:var(--foam);color:var(--ocean)}
.notif-ic{font-size:1.1rem}
.notif-empty{padding:14px 12px;color:var(--muted);font-size:.9rem;text-align:center}

/* Contrôles Statistiques */
.stats-filter-card{margin-bottom:22px;padding:18px 20px}
.stats-filter{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin:0}
.stats-filter .sf-field{display:flex;flex-direction:column;gap:6px}
.stats-filter .sf-field>label{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700}
.stats-filter .sf-field input[type=date]{height:42px;border:1px solid var(--line);border-radius:10px;padding:0 12px;background:var(--surface);color:var(--ink)}
.stats-filter .filter-menu>summary{height:42px}
.stats-filter .sf-submit{height:42px}
/* Cartes KPI de la page stats */
.stats-kpi .stat-box{flex-direction:row;align-items:center;gap:14px}
.stats-kpi .stat-ico{width:46px;height:46px;flex:0 0 auto;border-radius:12px;background:var(--foam);color:var(--ocean);display:flex;align-items:center;justify-content:center}
.stats-kpi .stat-ico svg{width:22px;height:22px}
.stats-kpi .stat-txt{display:flex;flex-direction:column;gap:2px}
.stats-filter .filter-menu .cal-menu-pop{left:0;right:auto;min-width:200px}

/* Bloc pliable/dépliable (details) */
.collapse-card>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px}
.collapse-card>summary::-webkit-details-marker{display:none}
.collapse-head h2{margin:0}
.collapse-caret{color:var(--muted);transition:transform .2s;font-size:.9rem}
.collapse-card[open]>summary .collapse-caret{transform:rotate(180deg)}
.collapse-body{padding-top:16px}
.collapse-card>summary:hover h2{color:var(--ocean)}

/* Paramètres : onglets de catégories */
.settings-fiche{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--surface)}
.settings-fiche .fiche-tabs{border-top:0}
.settings-panel{padding:20px}
.settings-panel .settings-grid{margin:0}
/* Paramètres : blocs empilés et pliables (fermés par défaut) */
.settings-panel .settings-grid{grid-template-columns:1fr}
.param-collapsible > h2{cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;user-select:none}
.param-collapsible > h2:hover{color:var(--ocean)}
.param-collapsible > h2::after{content:'';width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .2s;flex:0 0 auto;opacity:.55;margin-top:-4px}
.param-collapsible.is-open > h2::after{transform:rotate(-135deg);margin-top:2px}
.param-collapsible > .param-body{display:none;margin-top:16px}
.param-collapsible.is-open > .param-body{display:block}
.settings-panel .admin-card{box-shadow:none}

/* Pied d'actions des modales */
.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.modal--form .modal-dialog{max-width:560px}
@media (max-width:520px){ .modal-actions{flex-direction:column-reverse} .modal-actions .btn{width:100%;text-align:center} }

/* ===== Formulaire produit (boutique) ===== */
.prod-form-grid{display:grid;grid-template-columns:1fr 300px;gap:18px;align-items:start}
.prod-form-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.prod-form-side{position:sticky;top:16px}
.toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.toggle-line{display:flex;align-items:center;gap:10px;padding:11px 14px;background:var(--surface-2);border:1px solid var(--line);
  border-radius:10px;cursor:pointer;font-weight:500;font-size:.92rem}
.toggle-line input{width:auto;flex:0 0 auto}
.toggle-line:hover{border-color:var(--ocean)}
.toggle-line:has(input:checked){border-color:var(--ocean);background:var(--foam)}
.prod-photo-preview{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid var(--line);margin-bottom:12px}
@media (max-width:820px){
  .prod-form-grid{grid-template-columns:1fr}
  .prod-form-side{position:static}
  .toggle-grid{grid-template-columns:1fr}
}

/* Onglet Administration — cartes façon FlowRH */
.admin-card-desc{color:var(--muted);font-size:.92rem;line-height:1.55;margin:0 0 16px}
.danger-card{border-color:#f0b4b4}
.danger-card .info-card-head{border-bottom-color:#f3c9c9}
.danger-card .info-card-head svg,.danger-card .info-card-head h3{color:#c0392b}
[data-theme="dark"] .danger-card{border-color:#5c2a2a}
[data-theme="dark"] .danger-card .info-card-head{border-bottom-color:#5c2a2a}
[data-theme="dark"] .danger-card .info-card-head svg,[data-theme="dark"] .danger-card .info-card-head h3{color:#f0908a}
.btn-danger{background:#c0392b;color:#fff;border:1px solid #c0392b}
.btn-danger:hover{background:#a83224;border-color:#a83224;color:#fff}
[data-theme="dark"] .btn-danger{background:#c0392b;color:#fff}

/* Onglet Documents : cartes compactes en grille (FlowRH) */
.docs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.docs-grid .info-card{padding:16px 18px;display:flex;flex-direction:column;min-width:0}
.docs-grid .info-card > form{margin-top:auto}
/* Cartes de documents : hauteur constante, avec ou sans fichier. La zone .doc-slot affiche
   3 fichiers (3 × 52px + 2 × 6px) ; au-delà, elle défile. Toutes les cartes de la grille ont la même hauteur. */
.docs-grid .doc-slot{flex:0 0 168px;height:168px;overflow-y:auto;margin:0 0 12px;scrollbar-width:thin}
.docs-grid .doc-slot-empty{margin:0;font-size:.9rem}
.docs-grid .doc-list{display:flex;flex-direction:column;gap:6px;margin:0;max-height:none;overflow:visible}
.docs-grid .doc-list .doc-item{flex:0 0 52px;height:52px;box-sizing:border-box;margin:0;flex-wrap:nowrap;overflow:hidden}
.docs-grid .doc-list .doc-item:only-child{flex:0 0 auto;height:auto;min-height:52px;flex-wrap:wrap}
.docs-grid .doc-slot .certif-decl{margin:0 0 6px}
.docs-grid .doc-slot .doc-lock{margin:8px 0 0}
.docs-grid .doc-actions{display:flex;gap:4px;flex:0 0 auto;align-items:center}
.docs-grid .info-card > form[enctype]{flex:1 1 auto;display:flex;flex-direction:column}
.docs-grid .info-card > form[enctype] .upload-zone{flex:1 1 auto;display:flex;flex-direction:column;justify-content:center}
/* Zone de dépôt compacte (une ligne : icône + libellé) pour retrouver la hauteur de carte d'origine
   tout en gardant la place de 3 fichiers au-dessus. */
.docs-grid .upload-zone.upload-sm{padding:8px 12px;min-height:54px;text-align:left}
.docs-grid .upload-inner{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;row-gap:1px;align-items:center;width:100%}
.docs-grid .upload-zone.upload-sm .up-ic{grid-row:1 / span 2;width:34px;height:34px;border-radius:10px}
.docs-grid .upload-zone.upload-sm .up-ic svg{width:18px;height:18px}
.docs-grid .upload-title{align-self:end;line-height:1.2}
.docs-grid .upload-sub{align-self:start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.docs-grid .upload-file{display:none}
.docs-grid .psc1-date{margin:0 0 10px}
.docs-grid .psc1-date label{margin-bottom:4px}
.docs-grid .psc1-date-row input{padding:6px 10px;font-size:.88rem}
.docs-grid .psc1-date-row .btn{padding:.4em .9em;font-size:.82rem}
.docs-grid .info-card-head .dossier-ok,.docs-grid .info-card-head .dossier-ko,.docs-grid .info-card-head .doc-unl-tag{white-space:nowrap;flex:0 0 auto;font-size:.72rem}
.docs-grid .info-card-head h3{min-width:0}
@media (max-width:1080px){ .docs-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .docs-grid{grid-template-columns:minmax(0,1fr)} }
.docs-grid .info-card-head{padding-bottom:10px;margin-bottom:12px}
.docs-grid .info-card-head h3{font-size:.95rem}
.docs-grid .doc-item{padding:8px 10px;gap:9px}
.docs-grid .doc-ic{font-size:1.1rem}
.docs-grid .doc-info strong{font-size:.9rem}
.docs-grid .upload-title{font-size:.9rem}
.docs-grid .upload-sub{font-size:.74rem}
.docs-grid .doc-actions .btn{padding:.35em .7em;font-size:.78rem}

/* Formulaire d'édition adhérent : sous-sections propres */
.edit-form .edit-section{margin-bottom:22px}
.edit-section-title{font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ocean);font-weight:700;
  margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.edit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px 20px}
.edit-grid .field{margin:0;min-width:0}
.edit-grid .wide{grid-column:1 / -1}
.edit-grid .field-check{display:flex;align-items:flex-end;padding-bottom:8px}
.edit-actions{display:flex;gap:10px;padding-top:16px;border-top:1px solid var(--line)}
@media (max-width:560px){ .edit-grid{grid-template-columns:1fr} .edit-grid .wide{grid-column:1} }

/* --- Tri des catégories forum par glisser-déposer --- */
.cat-table th.cat-drag-h{width:36px}
.cat-sortable td.cat-drag{width:36px;text-align:center;color:var(--muted);cursor:grab;vertical-align:middle}
.cat-sortable td.cat-drag:active{cursor:grabbing}
.cat-sortable .drag-handle svg{fill:currentColor;display:block;margin:0 auto}
.cat-sortable tr{transition:background .12s ease}
.cat-sortable tr.dragging{opacity:.55;background:var(--surface-2)}
.cat-sort-status{font-size:.82rem;color:var(--muted);padding:4px 2px;min-height:1.2em}
.cat-sort-status.ok{color:var(--ocean)}
.cat-sort-status.err{color:var(--coral)}

/* --- Ligne séance cliquable (édition) --- */
.ev-row{cursor:pointer;transition:background .12s}
.ev-row:hover>td{background:var(--surface-2)}
.ev-row:hover strong{color:var(--ocean)}

/* --- Messages : barre de dossiers + classement --- */
.msg-folders{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:18px}
.msg-newfolder-btn{margin-left:auto}
.msg-move-form select{height:32px;border:1px solid var(--line);border-radius:8px;padding:0 8px;font-size:.82rem;background:var(--surface);color:var(--ink);cursor:pointer}

/* Aperçu image d'une séance dans le formulaire */
.ev-image-cur img{max-width:180px;max-height:120px;border-radius:10px;border:1px solid var(--line);display:block;margin-bottom:4px}

/* Numéro de version en bas de la barre latérale admin */
.admin-side-version{margin-top:auto;padding:14px 4px 2px;font-size:.72rem;color:var(--muted);opacity:.7;text-align:center}

/* --- Messages : cartes accordéon --- */
.msg-card{border:1px solid var(--line);border-radius:14px;background:var(--surface);margin-bottom:10px;overflow:hidden}
.msg-card.msg-unread{border-color:var(--ocean)}
.msg-header{width:100%;display:flex;align-items:center;gap:12px;padding:14px 18px;background:none;border:0;cursor:pointer;text-align:left;font:inherit;color:inherit}
.msg-header:hover{background:var(--surface-2)}
.msg-head-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.msg-from{font-weight:700}
.msg-subject{color:var(--muted);font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.msg-date{color:var(--muted);font-size:.82rem;white-space:nowrap;flex:0 0 auto}
.msg-chevron{color:var(--muted);transition:transform .2s;flex:0 0 auto}
.msg-card.open .msg-chevron{transform:rotate(180deg)}
.msg-body{display:none;padding:0 18px 16px}
.msg-card.open .msg-body{display:block}
.msg-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:12px}
.msg-actions .msg-del{margin-left:auto}

/* Checklist de complétude du formulaire séance */
.ev-checklist{background:#fff8e1;border:1px solid #ffe082;border-radius:10px;padding:10px 14px;margin-bottom:16px;font-size:.88rem;color:#5c4300}
.ev-checklist strong{color:#4a3600}
[data-theme="dark"] .ev-checklist{background:#3a2c14;border-color:#5a4520;color:#f0c584}
[data-theme="dark"] .ev-checklist strong{color:#ffd998}
.ev-checklist[hidden]{display:none}
/* Thème sombre : autres éléments à fond clair codé en dur dont le texte devenait clair sur clair */
[data-theme="dark"] .seg:hover{background:var(--surface-2)}
[data-theme="dark"] .espace-hero-actions .btn-ocean{color:#111}
[data-theme="dark"] .fiche-tab.is-active .fiche-tab-count{color:#111}
.ev-checklist ul{margin:6px 0 0;padding-left:18px}
.ev-checklist li{margin:2px 0}

/* Ligne produit cliquable (édition) */
.prod-row{cursor:pointer;transition:background .12s}
.prod-row:hover>td{background:var(--surface-2)}
.prod-row:hover strong{color:var(--ocean)}

/* Options personnalisées produit (admin) */
.opt-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;flex-wrap:wrap}
.opt-row input,.opt-row select{height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;font-size:.85rem;background:var(--surface);color:var(--ink)}
.opt-row input[name="opt_nom[]"]{flex:1 1 160px;min-width:120px}
.opt-row input[name="opt_valeurs[]"]{flex:1 1 200px;min-width:140px}
.opt-row input[name="opt_prix[]"]{width:90px}
.opt-del{color:var(--coral);flex:0 0 auto}
/* Choix d'options côté boutique publique */
.shop-field{display:flex;flex-direction:column;gap:4px;margin:8px 0;font-size:.9rem}
.shop-field select{height:40px;border:1px solid var(--line);border-radius:10px;padding:0 10px;background:var(--surface);color:var(--ink)}

/* Tri des produits par glisser-déposer */
.prod-drag-h{width:36px}
.prod-sortable td.prod-drag{width:36px;text-align:center;color:var(--muted);cursor:grab;vertical-align:middle}
.prod-sortable td.prod-drag:active{cursor:grabbing}
.prod-sortable .drag-handle svg{fill:currentColor;display:block;margin:0 auto}
.prod-sortable tr.dragging{opacity:.55;background:var(--surface-2)}

/* Filtres et couleurs par type — liste des séances */
.ev-filters{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-bottom:16px}
.ev-tabs{display:flex;flex-wrap:wrap;gap:6px}
.ev-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}
.ev-row.ev-type-longe_cote td:first-child{box-shadow:inset 3px 0 0 #17b0bd}
.ev-row.ev-type-marche_nordique td:first-child{box-shadow:inset 3px 0 0 #5aa832}
.ev-row.ev-type-autre td:first-child{box-shadow:inset 3px 0 0 #e0902e}
.ev-row td:first-child{padding-left:16px}

/* Filtre type (menu déroulant) — liste des séances */
.ev-type-filter{display:inline-flex;align-items:center;gap:8px;font-size:.9rem}
.ev-type-filter select{height:36px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:var(--surface);color:var(--ink);cursor:pointer}

/* Fiche produit : photo en couverture + statut lisible */
.prod-cover{margin-bottom:18px}
.prod-cover-current{display:block;position:relative;cursor:pointer;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.prod-cover-current img{width:100%;max-height:340px;object-fit:cover;display:block}
.prod-cover-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;background:rgba(0,0,0,.4);opacity:0;transition:opacity .15s;font-weight:600;font-size:.95rem}
.prod-cover-overlay svg{width:20px;height:20px}
.prod-cover-current:hover .prod-cover-overlay{opacity:1}
.prod-cover .upload-zone{min-height:170px;display:flex;align-items:center;justify-content:center;margin:0}
.prod-form-side .toggle-grid{grid-template-columns:1fr}
.prod-form-side .toggle-line{align-items:flex-start}

/* Barre adhérents : outils à droite */
.list-tools{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap}

/* Séance : ligne de menus déroulants répartis (largeur fixe) */
.ev-select-row{display:flex;flex-wrap:wrap;gap:18px;justify-content:space-between;margin-top:14px}
.ev-select-row .field{flex:0 0 auto;width:200px;margin:0}
@media (max-width:560px){ .ev-select-row .field{width:100%} }

/* Séance : grille 3 colonnes (date & lieu) */
.ev-grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ev-grid3 .field{margin:0}
.ev-grid3 .ev-full{grid-column:1 / -1}
@media (max-width:640px){ .ev-grid3{grid-template-columns:1fr} }

/* Alignement : dans les grilles de champs, les inputs s'alignent en bas
   même si un label tient sur plusieurs lignes */
.me-grid > .field,.ev-grid3 > .field,.create-grid > .field{display:flex;flex-direction:column}
.me-grid > .field > input,.me-grid > .field > select,.me-grid > .field > textarea,
.ev-grid3 > .field > input,.ev-grid3 > .field > select,.ev-grid3 > .field > textarea,
.create-grid > .field > input,.create-grid > .field > select,.create-grid > .field > textarea{margin-top:auto}

/* Formations répétables (nom + année) */
.formation-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.formation-row input[name="form_nom[]"]{flex:1 1 auto}
.formation-row input[name="form_annee[]"]{flex:0 0 90px;width:90px}
.formation-row .formation-del{flex:0 0 auto;color:var(--coral)}

/* ---- Footer : disposition mobile propre ---- */
.footer-grid > div{min-width:0}
.brand--footer{display:flex;align-items:center;gap:10px;flex-wrap:nowrap}
.brand--footer .brand-text{white-space:nowrap}
.site-footer a[href^="mailto"]{word-break:break-all;overflow-wrap:anywhere}
@media (max-width:760px){
  .footer-grid{grid-template-columns:1fr;gap:28px;padding-top:36px}
  .footer-grid > div{text-align:left}
  .footer-bottom{justify-content:flex-start}
}

/* Badges d'état dans la liste des adhérents — sobres, thème monochrome */
.roster-badges{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.rbadge{display:inline-flex;align-items:center;gap:7px;font-size:.78rem;font-weight:500;color:var(--ink);white-space:nowrap}
.rbadge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--muted);flex:0 0 auto}
.rb-ok::before{background:#2f9e44}
.rb-warn::before{background:#e0850b}
.rb-danger::before{background:#d63a2f}
.rb-neutral::before{background:var(--muted)}
.rb-new{background:var(--ink);color:#fff;padding:2px 10px;border-radius:999px;font-size:.68rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase}
.rb-new::before{display:none}

/* Paramètres : navigation en tuiles (façon tableau de bord) */
.settings-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:0;margin:0 0 22px;background:none;border:0;overflow:visible}
.settings-tiles .fiche-tab{flex-direction:column;justify-content:center;gap:10px;padding:20px 12px;border-radius:14px;
  background:var(--surface-2);border:1px solid var(--line);color:var(--ink);text-align:center;white-space:normal;font-size:.92rem;min-height:96px}
.settings-tiles .fiche-tab svg{width:26px;height:26px;opacity:.9}
.settings-tiles .fiche-tab:hover{background:color-mix(in srgb, var(--ocean) 8%, var(--surface-2));border-color:color-mix(in srgb, var(--ocean) 30%, var(--line))}
.settings-tiles .fiche-tab.is-active{background:var(--ocean);border-color:var(--ocean);color:#fff;box-shadow:0 4px 14px color-mix(in srgb, var(--ocean) 30%, transparent)}
.settings-tiles .fiche-tab.is-active svg{opacity:1}
@media (max-width:820px){ .settings-tiles{grid-template-columns:repeat(2,1fr)} }
@media (max-width:460px){ .settings-tiles{grid-template-columns:1fr} }

/* Configuration SMTP — présentation façon FlowRH (couleurs du site) */
.smtp-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin-top:6px}
.smtp-card .smtp-grid label{text-transform:uppercase;font-size:.7rem;letter-spacing:.05em;color:var(--muted);font-weight:700}
.pw-wrap{position:relative;display:flex;align-items:center}
.pw-wrap input{flex:1 1 auto;padding-right:40px}
.pw-eye{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;color:var(--muted);padding:4px;display:flex}
.pw-eye svg{width:18px;height:18px}
.pw-eye:hover{color:var(--ink)}
.pw-eye.is-on{color:var(--ink)}
.smtp-save{display:flex;justify-content:flex-end;margin-top:16px}
.smtp-test{border-top:1px solid var(--line);margin-top:22px;padding-top:18px}
.smtp-test h3{margin:0 0 6px;font-size:1.05rem}
.smtp-test-row{display:flex;gap:10px;align-items:stretch;margin-top:10px}
.smtp-test-row input{flex:1 1 auto;padding:12px 14px;border:1px solid var(--line);border-radius:12px;font-size:1rem;font-family:var(--font-body);background:var(--surface);color:var(--ink)}
.smtp-test-row input:focus{border-color:var(--aqua);outline:none;box-shadow:0 0 0 3px rgba(23,176,189,.2)}
.smtp-test-row button{flex:0 0 auto;border-radius:12px;padding:0 22px;font-weight:600;white-space:nowrap}
@media (max-width:640px){ .smtp-grid{grid-template-columns:1fr} }

/* Messages : email + téléphone visibles dans l'en-tête (carte fermée) */
.msg-head-contact{display:block;font-size:.82rem;color:var(--muted);margin-top:3px}
.msg-card.open .msg-head-contact{display:none}

/* Messages : barre recherche/filtre, actions groupées, case de sélection */
.msg-toolbar{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.msg-search-input{flex:0 1 340px}
.msg-unread-toggle{display:inline-flex;align-items:center;gap:7px;font-size:.9rem;color:var(--ink);cursor:pointer}
.msg-bulkbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:14px}
.msg-bulk-count{font-size:.85rem;font-weight:600;color:var(--ink)}
.msg-bulkbar .inline-form{display:flex;gap:8px;flex-wrap:wrap;margin:0}
.msg-card{position:relative}
.msg-check-wrap{position:absolute;left:14px;top:16px;z-index:2;display:flex}
.msg-card .msg-header{padding-left:42px}

/* Sidebar admin : bouton « Voir le site » distinct (bordé + icône) */
.admin-side a.side-view{display:flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid rgba(255,255,255,.28);border-radius:10px;color:#fff;font-weight:600;
  padding:11px 12px;margin:8px 0}
.admin-side a.side-view svg{width:16px;height:16px}
.admin-side a.side-view:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.55);color:#fff}

/* Mode épuré : formulaire séance/compétition affiché en iframe dans une modale */
.admin-bare .admin-side{display:none}
.admin-bare .admin-shell{grid-template-columns:1fr}
.admin-bare .admin-main{padding:22px}
.admin-bare .fiche-back,.admin-bare .ev-form .btn-ghost{display:none}
/* Modale iframe */
.ev-modal-dialog{max-width:980px;width:96%;height:92vh;margin:4vh auto;padding:0;overflow:hidden;position:relative;display:flex;border-radius:16px}
.ev-modal-dialog .modal-close{position:absolute;top:10px;right:14px;z-index:3;background:var(--surface);border:1px solid var(--line);border-radius:50%;width:32px;height:32px;line-height:1;font-size:1.3rem;cursor:pointer;color:var(--ink)}
#ev-new-frame{border:0;width:100%;height:100%;background:var(--surface)}

/* ===== Bulletin d'adhésion (création d'un adhérent) ===== */
.modal--bulletin .bulletin-dialog{max-width:1180px;width:96%;max-height:94vh;margin:3vh auto}
.modal--bulletin .modal-head{padding:18px 26px}
.modal--bulletin .modal-body{padding:22px 26px 0;background:var(--surface-2)}
.bul-asso-line{margin:3px 0 0;font-size:.82rem;color:var(--muted)}
.bulletin{display:flex;flex-direction:column;gap:18px}
.bulletin .bul-card{margin:0;padding:20px 22px}
.bulletin .bul-card .info-card-head{margin-bottom:16px}
.bulletin .bul-card .info-card-head .bul-req,.bulletin .bul-card .info-card-head .bul-clear{margin-left:auto}
.bul-req{font-size:.75rem;color:var(--muted);font-weight:500}
.bulletin .field{margin:0}
.bulletin .field > label{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:6px;display:block}
.bulletin .field > label .muted{text-transform:none;letter-spacing:0;font-weight:500}
.bulletin .bul-grid{display:grid;gap:16px 20px}
.bulletin .bul-grid + .bul-grid{margin-top:16px}
.bulletin .bul-grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.bulletin .bul-grid--addr{grid-template-columns:minmax(0,2fr) minmax(0,.8fr) minmax(0,1.2fr)}
.bulletin .bul-note{font-size:.8rem;color:var(--muted);margin:12px 0 0}
.bulletin .bul-sub{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin:18px 0 8px}
.bulletin .bul-cols{display:grid;grid-template-columns:1fr 1fr;gap:18px}

/* Contrôle segmenté (choix radio) */
.bul-seg{display:inline-flex;background:transparent;border:0;border-radius:12px;padding:0;gap:8px;width:100%}
.bul-seg label{flex:1 1 0;position:relative;cursor:pointer;margin:0}
.bul-seg input{position:absolute;opacity:0;pointer-events:none}
.bul-seg span{display:flex;align-items:center;justify-content:center;text-align:center;padding:9px 10px;border-radius:10px;font-size:.88rem;font-weight:600;color:var(--muted);transition:background .12s,color .12s,border-color .12s;white-space:nowrap;
  border:1px solid var(--line);background:var(--surface-2)}
.bul-seg label:hover span{color:var(--ink);border-color:var(--muted)}
.bul-seg input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--surface);box-shadow:var(--shadow-sm)}
.bul-seg input:focus-visible + span{outline:2px solid var(--aqua);outline-offset:1px}
.bul-seg--wrap{flex-wrap:wrap}
.bul-lic-autres{margin:10px 0 0;font-size:.88rem;color:var(--muted)}
.bul-lic-seg label:only-child{flex:0 1 320px}
.bul-seg--wrap label{flex:1 1 auto}

/* Cases à cocher lisibles */
.bulletin .bul-check{display:flex;align-items:flex-start;gap:12px;font-size:.88rem;line-height:1.5;margin:0 0 12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;transition:border-color .12s,background .12s}
.bulletin .bul-check:hover{border-color:var(--muted)}
.bulletin .bul-check:has(input:checked){border-color:var(--ink);background:var(--surface-2)}
.bulletin .bul-check input{margin-top:3px;flex:0 0 auto;width:16px;height:16px;accent-color:var(--ink)}

/* Tableau des licences */
.bulletin .bul-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:12px}
.bulletin .bul-table{width:100%;border-collapse:collapse;font-size:.9rem;min-width:680px}
.bulletin .bul-table th{background:var(--ink);color:#fff;font-weight:700;padding:11px 8px;text-align:center;font-size:.8rem;line-height:1.3}
.bulletin .bul-table th small{font-weight:500;opacity:.75}
.bulletin .bul-table th:first-child{text-align:left;padding-left:16px}
.bulletin .bul-table td{border-top:1px solid var(--line);padding:8px;text-align:center;vertical-align:middle}
.bulletin .bul-table tbody tr:nth-child(even) td:not(.bul-cot):not(.bul-total){background:var(--surface-2)}
.bulletin .bul-table .bul-lib{text-align:left;padding-left:16px;font-weight:600}
.bulletin .bul-na{color:var(--line)}
.bulletin .bul-pick{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-width:96px;cursor:pointer;padding:9px 16px;border:1.5px solid var(--line);border-radius:999px;background:var(--surface);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06);transition:border-color .12s,background .12s,color .12s,box-shadow .12s}
.bulletin .bul-pick input{position:absolute;opacity:0;pointer-events:none}
.bulletin .bul-pick::before{content:"";width:14px;height:14px;border-radius:50%;border:2px solid var(--muted);flex:0 0 auto;box-sizing:border-box;transition:border-color .12s,box-shadow .12s}
.bulletin .bul-pick:hover{border-color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.10)}
.bulletin .bul-pick:hover::before{border-color:var(--ink)}
.bulletin .bul-pick.is-on,.bulletin .bul-pick:has(input:checked){background:var(--ink);border-color:var(--ink);color:#fff}
.bulletin .bul-pick.is-on::before,.bulletin .bul-pick:has(input:checked)::before{border-color:#fff;box-shadow:inset 0 0 0 3px var(--ink),inset 0 0 0 10px #fff}
.bulletin .bul-pick:has(input:focus-visible){outline:2px solid var(--aqua);outline-offset:2px}
.bulletin .bul-cot,.bulletin .bul-total{border-left:1px solid var(--line);background:var(--surface)}
.bulletin .bul-cot-in{display:inline-flex;align-items:center;gap:6px}
.bulletin .bul-cot-in input{width:80px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;text-align:right;font-size:.95rem;background:var(--surface);color:var(--ink)}
.bulletin .bul-cot-in input:focus{border-color:var(--aqua);outline:none;box-shadow:0 0 0 3px rgba(23,176,189,.2)}
.bulletin .bul-total strong{font-size:1.35rem}
.bulletin .bul-foot{font-size:.78rem;color:var(--muted);line-height:1.5;margin:10px 0 0}

/* Mentions repliables */
.bulletin .bul-mentions{margin-top:4px;font-size:.82rem;color:var(--muted)}
.bulletin .bul-mentions summary{cursor:pointer;font-weight:600;color:var(--ink);padding:4px 0}
.bulletin .bul-mentions p{margin:8px 0 0;line-height:1.5}

/* Pied collant avec total */
.bulletin .bul-actions{position:sticky;bottom:0;z-index:2;margin:0 -26px;padding:14px 26px;background:var(--surface);border-top:1px solid var(--line);justify-content:space-between;align-items:center;flex-wrap:wrap}
.bul-actions-info{display:flex;flex-direction:column;gap:2px}
.bul-total-foot{font-size:1rem}
.bul-total-foot strong{font-size:1.2rem}
.bul-actions-info .hint{margin:0;font-size:.78rem}
.bul-actions-btns{display:flex;gap:10px}

@media (max-width:900px){
  .bulletin .bul-cols{grid-template-columns:1fr}
  .bulletin .bul-grid--3,.bulletin .bul-grid--addr{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .modal--bulletin .bulletin-dialog{width:100%;max-width:100%;margin:0;height:100vh;height:100dvh;max-height:none;min-height:0;border-radius:0}
  .modal--bulletin .modal-body{padding:16px 14px 0}
  .bulletin .bul-card{padding:16px}
  .bulletin .bul-grid--3,.bulletin .bul-grid--addr{grid-template-columns:1fr}
  .bulletin .bul-actions{margin:0 -14px;padding:12px 14px;flex-direction:column;align-items:stretch;gap:10px}
  .bul-actions-info{flex-direction:row;justify-content:space-between;align-items:baseline}
  .bul-actions-info .hint{display:none}
  .bul-actions-btns{width:100%}
  .bul-actions-btns .btn{flex:1;width:auto}
}

/* Fiche adhérent : date de validité PSC1 */
.psc1-date{margin:0 0 14px}
.psc1-date label{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700;margin-bottom:6px}
.psc1-date-row{display:flex;gap:8px;align-items:stretch}
.psc1-date-row input{flex:1 1 auto;min-width:0;padding:9px 12px;border:1px solid var(--line);border-radius:10px;font-size:.92rem;background:var(--surface);color:var(--ink)}
.psc1-date-row .btn{border-radius:10px}
.bulletin .bul-pick-hint{margin:0 0 12px;font-size:.88rem;font-weight:600;color:var(--ink)}

/* Messages : contenu en pop-up */
.msg-modal .modal-dialog{max-width:760px}
.msg-modal .msg-body{display:block;padding:0}
.msg-modal-titles h2{margin:0;font-size:1.15rem}
.msg-modal-sub{margin:4px 0 0;font-size:.85rem;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap}
.msg-modal-sub span:empty{display:none}
.msg-modal-sub #msg-modal-date::before{content:"· "}
.msg-card .msg-chevron{display:none}
.msg-card .msg-header{cursor:pointer}

/* Séance : bouton « Actualiser » des conditions */
.info-card-head .ev-cond-refresh{margin-left:auto;white-space:nowrap}
.ev-cond-refresh:disabled{opacity:.55;cursor:wait}
/* Crayon : les champs de conditions / météo sont en lecture seule tant qu'il n'est pas activé */
.me-grid .field[hidden]{display:none}
.ev-cond-edit{flex:0 0 auto;margin-left:8px;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;cursor:pointer;
  border:1px solid var(--line);background:transparent;color:var(--muted);transition:background .15s,color .15s,border-color .15s}
.info-card-head .ev-cond-edit svg{width:16px;height:16px;color:inherit}
.ev-cond-edit:hover{color:var(--ink);border-color:var(--muted)}
.ev-cond-edit:focus-visible{outline:2px solid var(--ocean);outline-offset:2px}
.ev-cond-edit[aria-pressed="true"]{background:var(--ocean);border-color:var(--ocean);color:var(--surface)}
.me-grid input.is-locked,.cond-locked .me-grid input[readonly]{background:transparent;border-style:dashed;cursor:default;color:var(--ink)}
.me-grid input.is-locked:focus,.cond-locked .me-grid input[readonly]:focus{outline:none;box-shadow:none;border-color:var(--line)}

/* Météo heure par heure (marche nordique) */
.mn-hours{display:grid;grid-template-columns:repeat(5,minmax(92px,1fr));gap:8px;margin-top:14px;overflow-x:auto}
.mn-hours:empty{display:none}
.mn-hour{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 6px;border:1px solid var(--line);border-radius:12px;background:var(--surface);text-align:center}
.mn-hour .mn-h{font-size:.78rem;font-weight:700;color:var(--muted)}
.mn-hour .mn-emo{font-size:1.6rem;line-height:1.2}
.mn-hour .mn-t{font-size:1.05rem;font-weight:700;color:var(--ink)}
.mn-hour .mn-p{font-size:.78rem;color:var(--ink)}
.mn-hour .mn-mm{font-size:.72rem;color:var(--muted)}

/* Nouvel adhérent : choix Membre / Animateur */
.nouvel-choix .modal-dialog{max-width:560px}
.nouvel-choix-q{margin:0 0 16px;color:var(--muted)}
.nouvel-choix-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.nouvel-choix-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:26px 16px;border:1.5px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit;text-align:center;transition:border-color .12s,box-shadow .12s,transform .12s}
.nouvel-choix-btn:hover,.nouvel-choix-btn:focus-visible{border-color:var(--ink);box-shadow:var(--shadow-sm);transform:translateY(-2px);outline:none}
.nouvel-choix-btn .nc-emo{font-size:2.4rem;line-height:1}
.nouvel-choix-btn strong{font-size:1.1rem}
.nouvel-choix-btn .nc-sub{font-size:.85rem;color:var(--muted)}
@media (max-width:480px){ .nouvel-choix-grid{grid-template-columns:1fr} }

/* Choix du profil : 3 cartes */
.nouvel-choix .modal-dialog{max-width:720px}
.nouvel-choix-grid{grid-template-columns:repeat(2,1fr)}
@media (max-width:640px){ .nouvel-choix-grid{grid-template-columns:1fr} }
/* Attestation d'honorabilité */
.bulletin .bul-quote{margin:0 0 16px;padding:12px 16px;border-left:3px solid var(--ink);background:var(--surface-2);border-radius:0 10px 10px 0;font-style:italic;font-size:.86rem;line-height:1.55}
.bulletin .bul-roles{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.bulletin .bul-accept{margin-top:6px}
@media (max-width:640px){ .bulletin .bul-roles{grid-template-columns:1fr} }

/* Bulletin : encadré d'alerte (certificat à présenter au club) */
.bulletin .bul-alert{margin:0 0 14px;padding:12px 14px;border:1.5px solid #e0850b;background:color-mix(in srgb, #e0850b 10%, var(--surface));border-radius:12px;font-size:.88rem;line-height:1.55;color:var(--ink)}
.certif-decl{margin:0 0 14px;padding:10px 12px;border-radius:10px;font-size:.86rem;line-height:1.5;border:1px solid #e0850b;background:color-mix(in srgb, #e0850b 10%, var(--surface))}
.certif-decl.is-ok{border-color:var(--line);background:var(--surface-2);color:var(--muted)}

/* Formulaire séance : une seule colonne (Publication en bas) */
.prod-form-grid.ev-form-single{grid-template-columns:1fr}

/* Formulaire séance/compétition : alignement propre en 3 lignes partagées
   (titres alignés entre eux, champs alignés entre eux, aides en dessous) */
@supports (grid-template-rows: subgrid) {
  .ev-form .ev-grid3,.ev-form .me-grid{row-gap:0;column-gap:20px}
  .ev-form .ev-grid3 > .field,.ev-form .me-grid > .field{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:0;margin:0 0 16px}
  .ev-form .ev-grid3 > .field > label,.ev-form .me-grid > .field > label{align-self:end;margin:0 0 6px;line-height:1.3}
  .ev-form .ev-grid3 > .field > input,.ev-form .ev-grid3 > .field > select,.ev-form .ev-grid3 > .field > textarea,
  .ev-form .me-grid > .field > input,.ev-form .me-grid > .field > select,.ev-form .me-grid > .field > textarea{margin:0;align-self:start}
  .ev-form .ev-grid3 > .field > .hint,.ev-form .me-grid > .field > .hint{margin:4px 0 0;align-self:start}
}

/* Message de mise à jour des prévisions */
.hint.upd-msg{display:flex;flex-direction:column;gap:3px}
.upd-msg .upd-ok{font-weight:600;color:#2f9e44}
.upd-msg .upd-note{color:var(--muted)}
.upd-msg .upd-note a{color:inherit;text-decoration:underline}

/* Attestation conseils de santé : verrouillée tant que les conseils ne sont pas dépliés */
.bulletin .bul-lock-hint{margin:0 0 8px;font-size:.82rem;color:#a85e00}
.bulletin .bul-check.is-locked{opacity:.55;cursor:not-allowed}
.bulletin .bul-check.is-locked input{cursor:not-allowed}

/* Phrase d'attestation « conseils de santé » composée automatiquement */
.bulletin .bul-attest{margin:0 0 12px;padding:12px 14px;border:1px dashed var(--line);border-radius:10px;font-size:.9rem;line-height:1.6;background:var(--surface)}
.bulletin .bul-attest-miss{color:#a85e00;font-style:italic;font-weight:500}
.bulletin input.bul-ro{background:var(--surface-2);color:var(--ink);cursor:default}

/* Bulletin sur le site public (page « Adhérer » et pop-up) */
.bulletin--public{display:flex;flex-direction:column;gap:18px}
.bulletin--public .bul-submit{margin-top:4px}
.bulletin--public .bul-submit .hint{margin:0 0 12px}
#adhesion-modal .modal-dialog{max-width:1000px;width:96%}

/* Liste adhérents : colonne État — n'affiche que ce qui demande une action */
.st-list{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.st{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;font-size:.76rem;font-weight:600;white-space:nowrap;border:1px solid var(--line);background:var(--surface);color:var(--ink)}
.st-ok{border-color:color-mix(in srgb, #2f9e44 45%, var(--line));color:#2f9e44}
.st-warn{border-color:color-mix(in srgb, #e0850b 55%, var(--line));color:#b86a00}
.st-bad{border-color:#d63a2f;background:#d63a2f;color:#fff}
.st-new{border-color:var(--ink);background:var(--ink);color:var(--surface);text-transform:uppercase;font-size:.66rem;letter-spacing:.04em}
.st-date{font-size:.76rem;color:var(--muted);white-space:nowrap}

/* Licence comprise dans la formule */
.bulletin .bul-lic-incl{margin:0 0 14px;padding:10px 14px;border-radius:10px;background:color-mix(in srgb, #2f9e44 10%, var(--surface));border:1px solid color-mix(in srgb, #2f9e44 35%, var(--line));font-size:.88rem}
.bulletin--public .bul-total-foot{margin:0 0 10px;font-size:1.05rem}

/* ===== Espace membre ===== */
.espace-sub{margin:18px 0 8px;font-size:.74rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}
/* Bandeau d'échéance */
.espace-renew{display:flex;flex-direction:column;gap:8px;margin:0 0 18px;padding:14px 18px;border-radius:14px;border:1.5px solid #e0850b;background:color-mix(in srgb, #e0850b 9%, var(--surface))}
.espace-renew.is-expired{border-color:#d63a2f;background:color-mix(in srgb, #d63a2f 8%, var(--surface))}
.espace-renew .er-text{display:flex;flex-direction:column;gap:4px;font-size:.92rem}
.espace-renew .er-rib summary{cursor:pointer;font-weight:600;font-size:.88rem}
/* Prochaine séance */
.espace-next{display:flex;align-items:center;gap:18px;margin:0 0 18px;padding:16px 18px;border-radius:16px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-sm)}
.espace-next .en-date{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;height:64px;border-radius:14px;background:var(--ink);color:var(--surface)}
.espace-next .en-day{font-size:1.6rem;font-weight:800;line-height:1}
.espace-next .en-mon{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}
.espace-next .en-body{flex:1 1 auto;display:flex;flex-direction:column;gap:2px;min-width:0}
.espace-next .en-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:var(--muted)}
.espace-next .en-title{font-size:1.08rem}
.espace-next .en-meta,.espace-next .en-cond{font-size:.86rem;color:var(--muted)}
.espace-next .en-cond{color:var(--ink)}
.espace-next .en-actions{flex:0 0 auto;display:flex;flex-direction:column;gap:6px}
.espace-next .en-actions form{margin:0}
.espace-next .en-actions .btn{width:100%}
@media (max-width:640px){ .espace-next{flex-wrap:wrap} .espace-next .en-actions{flex-direction:row;width:100%} .espace-next .en-actions > *{flex:1} }
/* Raccourcis */
.espace-shortcuts{display:flex;flex-direction:column;gap:10px}
.espace-shortcuts .es-item{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;color:var(--ink);text-decoration:none;background:var(--surface)}
.espace-shortcuts a.es-item:hover{border-color:var(--ink)}
.espace-shortcuts .es-item.is-off{opacity:.6}
.espace-shortcuts .es-item > span:last-child{display:flex;flex-direction:column;gap:2px;font-size:.9rem}
.espace-shortcuts .es-item .muted{font-size:.8rem}
.espace-shortcuts .es-ic{font-size:1.4rem;line-height:1}
.espace-shortcuts .es-cal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
/* Historique */
.histo-list{list-style:none;margin:0 0 6px;padding:0;display:flex;flex-direction:column}
.histo-list li{display:flex;flex-direction:column;gap:2px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.9rem}
.histo-list li:last-child{border-bottom:0}
.histo-list .muted{font-size:.82rem}
.doc-lock{font-size:.85rem;margin:6px 0 0}

/* ===== Espace membre (suite) ===== */
.acct-tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.fs-ctrl{display:inline-flex;gap:4px}
.fs-ctrl .btn{min-width:42px;font-weight:700}
.fs-ctrl .btn:disabled{opacity:.4;cursor:default}
/* Annonce du bureau */
.espace-annonce{display:flex;gap:12px;align-items:flex-start;margin:0 0 18px;padding:14px 18px;border-radius:14px;background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ink);box-shadow:var(--shadow-sm)}
.espace-annonce .ea-ic{font-size:1.5rem;line-height:1}
.espace-annonce p{margin:4px 0 0;line-height:1.5}
/* Espace animateur */
.espace-anim{margin-bottom:18px}
.anim-seance{border:1px solid var(--line);border-radius:12px;margin:0 0 10px;background:var(--surface)}
.anim-seance > summary{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:12px 14px;cursor:pointer;list-style:none}
.anim-seance > summary::-webkit-details-marker{display:none}
.anim-seance > summary::before{content:"▸";transition:transform .15s}
.anim-seance[open] > summary::before{transform:rotate(90deg)}
.anim-seance .as-date{font-weight:700}
.anim-seance .as-lieu{color:var(--muted)}
.anim-seance .as-count{margin-left:auto;font-size:.85rem;font-weight:600}
.anim-list{list-style:none;margin:0;padding:0 14px 10px}
.anim-list li{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;padding:10px 0;border-top:1px solid var(--line)}
.anim-list li.is-present{box-shadow:inset 3px 0 0 #2f9e44;padding-left:10px}
.anim-list li.is-absent{box-shadow:inset 3px 0 0 #d63a2f;padding-left:10px;opacity:.75}
.anim-list .al-who{display:flex;flex-direction:column;gap:3px;min-width:0}
.anim-list .al-tel{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:.88rem}
.anim-list .al-tel a{text-decoration:none}
.anim-list .al-urg{color:#b86a00}
.anim-list .al-btns{display:flex;gap:6px}
.anim-list .al-btns form{margin:0}
.anim-list .al-btns .btn{min-width:84px;min-height:40px}
/* Séances ouvertes : ligne avec bouton */
.sortie-row--open{display:flex;align-items:center;gap:12px}
.sortie-row--open .sr-body{flex:1 1 auto;min-width:0;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.sortie-row--open form{margin:0;flex:0 0 auto}
/* Catégorie au dépôt d'une pièce jointe */
.doc-cat{padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:.9rem}
/* Admin : documents du club */
.club-doc-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px 16px;align-items:end}
.club-doc-form .field{margin:0}
@media (max-width:760px){ .club-doc-form{grid-template-columns:1fr} }
.club-doc-list{list-style:none;margin:0;padding:0}
.club-doc-list li{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.club-doc-list li:first-child{border-top:0}
.club-doc-list .cd-ic{font-size:1.4rem}
.club-doc-list .cd-info{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}
.club-doc-list .cd-info .muted{font-size:.82rem}
.club-doc-list form{margin:0}

/* Espace membre : onglets « Mon espace » / « Mes documents » */
.espace-tabs{border:1px solid var(--line);border-radius:14px;margin-bottom:18px;flex-wrap:wrap}
.espace-panel{padding:0}
@media (max-width:900px){ .espace-panel .docs-grid{grid-template-columns:1fr 1fr} }
@media (max-width:560px){ .espace-panel .docs-grid{grid-template-columns:1fr} }

/* Ligne de document (fiche admin + espace membre) : icône | nom + date | actions */
.doc-item{flex-wrap:nowrap}
.doc-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.doc-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-info .muted{font-size:.8rem;color:var(--muted)}
.doc-actions{flex:0 0 auto;display:flex;gap:6px;align-items:center}
.doc-actions form{margin:0}
input.input-ro{background:var(--surface-2);color:var(--muted);cursor:default}
/* Espace : « Mon adhésion » en lecture seule */
.espace-ro-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;padding:12px 14px;border:1px dashed var(--line);border-radius:12px;background:var(--surface-2);margin-bottom:6px}
.espace-ro-grid > div{display:flex;flex-direction:column;gap:2px;min-width:0}
.espace-ro-grid span:first-child{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:700}
.espace-ro-grid strong{font-size:.9rem;font-weight:600}
@media (max-width:560px){ .espace-ro-grid{grid-template-columns:1fr} }
