/* ============================================================
   AS HAUTE BRUCHE · Portail U11 · v3.0
   Noir #0a0a0a · Rouge #c8102e · Vert #00703c
   ============================================================ */
:root {
  --black:#0a0a0a; --dark:#111214; --card-bg:#18191c;
  --white:#f5f5f5; --red:#c8102e; --red2:#9b0d22;
  --green:#00703c; --green2:#005a30;
  --muted:rgba(255,255,255,.48); --border:rgba(255,255,255,.09);
  --soft:rgba(255,255,255,.06);
  --lb:#f4f5f7; --lborder:#e5e7eb; --ltext:#111827; --lmuted:#6b7280;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Arial,sans-serif;
  background:var(--black);color:var(--white);
  min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;
}

/* ── TOPBAR ── */
.topbar{
  position:sticky;top:0;z-index:200;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:0 clamp(14px,3vw,32px);height:68px;
  background:rgba(10,10,10,.97);border-bottom:1px solid var(--border);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  position:sticky;
}
.topbar::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--red) 50%,var(--green) 50%);
}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--white);flex-shrink:0}
.brand img{width:46px;height:46px;object-fit:contain;border-radius:10px;border:1px solid rgba(255,255,255,.15);background:#0a0a0a}
.brand strong{display:block;font-size:.97rem;font-weight:700;line-height:1.1}
.brand small{display:block;font-size:.75rem;color:var(--muted);margin-top:2px}

/* ── Desktop nav ── */
.desktop-nav{display:flex;align-items:center;gap:5px;flex:1;justify-content:flex-end;overflow:visible}
.nav-pill,.desktop-nav>a{
  display:inline-flex;align-items:center;gap:5px;
  padding:8px 14px;border-radius:999px;
  font-size:.85rem;font-weight:600;color:rgba(255,255,255,.75);
  background:transparent;border:1px solid transparent;
  text-decoration:none;white-space:nowrap;cursor:pointer;
  transition:background .15s,color .15s,border-color .15s;list-style:none;
}
.nav-pill:hover,.desktop-nav>a:hover{background:var(--soft);border-color:var(--border);color:#fff}
.nav-pill.active,.desktop-nav>a.active{background:#fff;color:var(--black);font-weight:700}
.nav-pill.pill-green{color:#4ade80}
.nav-pill.pill-green:hover{background:rgba(0,112,60,.18);border-color:rgba(0,112,60,.25)}
.nav-pill.pill-green.active{background:var(--green);color:#fff}
.nav-pill.pill-red,.nav-logout{color:#fca5a5!important;background:rgba(200,16,46,.15)!important;border-color:rgba(200,16,46,.2)!important}
.nav-pill.pill-red:hover,.nav-logout:hover{background:rgba(200,16,46,.28)!important;color:#fff!important}

/* ── Dropdowns ── */
.nav-dropdown{position:relative;display:block}
.nav-dropdown>summary{cursor:pointer;list-style:none}
.nav-dropdown>summary::-webkit-details-marker{display:none}
.nav-dropdown>summary::after{content:'▾';font-size:.65rem;opacity:.7;margin-left:3px}
.nav-dropdown[open]>summary::after{content:'▴'}
.dropdown-menu{
  display:none;position:absolute;top:calc(100% + 12px);left:0;z-index:500;
  min-width:260px;padding:10px;border-radius:18px;
  background:rgba(255,255,255,.99);color:var(--ltext);
  border:1px solid rgba(0,0,0,.08);box-shadow:0 24px 70px rgba(0,0,0,.38);
}
.nav-dropdown[open]>.dropdown-menu{display:grid;gap:4px}
.nav-dropdown-right>.dropdown-menu{left:auto;right:0}
.dropdown-grid{min-width:480px;grid-template-columns:1fr 1fr;gap:10px}
.admin-dropdown-menu{min-width:640px;grid-template-columns:repeat(3,1fr);gap:10px}
.dropdown-section{display:grid;gap:3px;align-content:start}
.dropdown-title{padding:6px 10px 3px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#9ca3af}
.dropdown-menu .nav-menu-link{
  display:flex;align-items:center;justify-content:space-between;
  padding:10px 12px;border-radius:12px;
  color:var(--ltext)!important;font-size:.88rem;font-weight:600;
  text-decoration:none;white-space:normal;line-height:1.2;
}
.dropdown-menu .nav-menu-link::after{content:'›';opacity:.3}
.dropdown-menu .nav-menu-link:hover{background:var(--lb);color:var(--red)!important}
.dropdown-menu .nav-menu-link.active{background:var(--ltext);color:#fff!important}


/* ════════════════════════════════════════════
   NAVIGATION MOBILE — Tiroir unique v3.4
════════════════════════════════════════════ */

/* Burger button */
.mob-burger {
  display: none;
  flex-direction: column; justify-content: center; align-items: center; gap: 5px;
  width: 44px; height: 44px; border-radius: 999px;
  background: #fff; border: none; cursor: pointer;
  box-shadow: 0 4px 16px rgba(0,0,0,.25); flex-shrink: 0;
}
.mob-burger span {
  display: block; width: 20px; height: 2px;
  background: #111; border-radius: 2px;
  transition: transform .2s, opacity .2s;
}
.mob-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mob-burger.open span:nth-child(2) { opacity: 0; }
.mob-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Backdrop */
.mob-backdrop {
  display: none; position: fixed; inset: 0; z-index: 1500;
  background: rgba(0,0,0,.5); backdrop-filter: blur(3px);
}
.mob-backdrop.open { display: block; }

/* Tiroir */
.mob-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 1600;
  width: min(88vw, 340px);
  background: #fff; color: #111;
  display: flex; flex-direction: column;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  transform: translateX(100%);
  transition: transform .24s cubic-bezier(.4,0,.2,1);
  box-shadow: -12px 0 48px rgba(0,0,0,.3);
}
.mob-drawer.open { transform: translateX(0); }

/* En-tête tiroir */
.mob-drawer-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 16px 16px 12px;
  border-bottom: 1px solid #e5e7eb;
  position: sticky; top: 0; background: #fff; z-index: 10;
  flex-shrink: 0;
}
.mob-drawer-head strong { font-size: .95rem; font-weight: 800; display: block; }
.mob-drawer-head small  { font-size: .75rem; color: #6b7280; }
.mob-close {
  width: 36px; height: 36px; border-radius: 999px;
  background: #111; color: #fff; border: none;
  font-size: 1.3rem; cursor: pointer; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
}

/* Titres de sections */
.mob-section-title {
  padding: 12px 16px 4px;
  font-size: .68rem; font-weight: 800; text-transform: uppercase;
  letter-spacing: .1em; color: #9ca3af;
  border-top: 1px solid #f3f4f6;
}

/* Section liens */
.mob-section { padding: 4px 10px 6px; display: flex; flex-direction: column; gap: 2px; }

/* Lien individuel */
.mob-link {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 12px; border-radius: 12px;
  color: #374151; font-size: .9rem; font-weight: 600;
  text-decoration: none; transition: background .12s;
}
.mob-link svg {
  width: 18px; height: 18px; flex-shrink: 0;
  stroke: currentColor; fill: none; stroke-width: 2;
  opacity: .65;
}
.mob-link:hover { background: #f3f4f6; }
.mob-link-active { background: #111 !important; color: #fff !important; }
.mob-link-active svg { opacity: 1; }

/* Déconnexion */
.mob-logout {
  display: flex; align-items: center; gap: 10px;
  margin: 8px 10px 20px; padding: 12px 14px; border-radius: 12px;
  background: #fee2e2; color: #991b1b;
  font-weight: 700; font-size: .9rem; text-decoration: none;
  border: 1px solid #fecaca;
}
.mob-logout svg { flex-shrink: 0; }

/* Mobile login (non connecté) */
.mobile-login { display: none; }


/* ── Hero ── */
.hero{
  display:grid;grid-template-columns:1.15fr .85fr;gap:28px;
  align-items:center;margin:10px 0 30px;padding:36px;
  border:1px solid var(--border);border-radius:28px;
  background:var(--soft);box-shadow:0 20px 70px rgba(0,0,0,.3);
  position:relative;overflow:hidden;
}
.hero::before{
  content:'';position:absolute;top:0;left:0;width:4px;bottom:0;
  background:linear-gradient(180deg,var(--red),var(--green));
}
.hero.compact{grid-template-columns:1fr auto}
.hero h1,.page-title h1{font-size:clamp(2rem,5vw,4rem);line-height:.97;margin:10px 0;font-weight:900;letter-spacing:-.05em}
.page-title h1{font-size:clamp(1.75rem,4vw,3rem)}
.hero p,.page-title p{color:rgba(255,255,255,.65);font-size:1rem;line-height:1.65;max-width:680px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:#f87171;font-size:.72rem;text-transform:uppercase;letter-spacing:.22em;font-weight:800}
.eyebrow::before{content:'';width:18px;height:1px;background:var(--red);display:block}

/* ── Cards ── */
.hero-card,.card{
  background:rgba(255,255,255,.97);color:var(--ltext);
  border-radius:22px;border:1px solid rgba(255,255,255,.12);
  box-shadow:0 12px 50px rgba(0,0,0,.18);padding:22px;
}
.login-card{background:#0f0f11;color:var(--white);border:1px solid var(--border);position:relative;overflow:hidden}
.login-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--red),var(--green))}
.login-card input{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.14);color:#fff}
.login-card input::placeholder{color:rgba(255,255,255,.35)}

/* ── Buttons ── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:7px;
  border:0;border-radius:999px;padding:11px 18px;
  font-weight:800;font-size:.88rem;text-decoration:none;cursor:pointer;
  transition:.15s;white-space:nowrap;
}
.btn.small{padding:8px 13px;font-size:.82rem}
.btn-primary{background:var(--red);color:#fff}.btn-primary:hover{background:var(--red2)}
.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:var(--green2)}
.btn-dark{background:#111;color:#fff}.btn-dark:hover{background:#222}
.btn-light{background:#fff;color:#111}.btn-light:hover{background:#f0f0f0}
.btn-soft{background:var(--lb);color:#111}
.btn-danger{background:#fee2e2;color:#991b1b}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}

/* ── Grids ── */
.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.grid-5{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.spaced{margin-top:20px}.spaced-small{margin-top:12px}

/* ── Tags ── */
.tag{display:inline-flex;align-items:center;border-radius:999px;padding:5px 10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.tag-red{background:#fee2e2;color:#991b1b}
.tag-green{background:#dcfce7;color:#166534}
.tag-dark{background:#111;color:#fff}
.tag-blue{background:#dbeafe;color:#1d4ed8}
.tag-light{background:var(--lb);color:#3f3f46}
.tag-orange{background:#ffedd5;color:#9a3412}

/* ── Section head ── */
.section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px}
.section-head a{color:var(--red);font-weight:800;text-decoration:none;font-size:.85rem}
.section-head h2{margin:0}

/* ── Mini blocks ── */
.mini-block{padding:12px 0;border-top:1px solid var(--lborder)}
.mini-block:first-of-type{border-top:0;padding-top:0}
.mini-block p{color:#555;line-height:1.55;font-size:.9rem;margin-top:4px}

/* ── Org ── */
.org-line{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--lborder)}
.org-line small{display:block;color:var(--lmuted);margin-top:2px;font-size:.82rem}
.counter{display:inline-flex;align-items:center;justify-content:center;min-width:50px;border-radius:999px;background:#fee2e2;color:#991b1b;padding:6px 10px;font-weight:900;font-size:.88rem}
.counter.ok{background:#dcfce7;color:#166534}

/* ── Events ── */
.event-card h2{font-size:1.2rem;margin:8px 0 4px}
.date-line{font-weight:800;color:var(--ltext);font-size:.95rem}
.event-list{display:grid;gap:12px}
.event-row,.admin-list-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px;border-radius:18px;background:rgba(255,255,255,.97);color:var(--ltext)}
.event-row small,.admin-list-row small{display:block;color:var(--lmuted);margin-top:3px;font-size:.82rem}
.row-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}

/* ── Alerts ── */
.alert{padding:13px 16px;border-radius:16px;margin:0 0 16px;font-weight:700;font-size:.9rem}
.alert-warning{background:#fef3c7;color:#92400e}
.alert-success{background:#dcfce7;color:#166534}
.alert-danger{background:#fee2e2;color:#991b1b}
.warning-card{background:#fff7ed;color:#9a3412;border:1px solid #fed7aa;border-radius:18px;padding:16px}

/* ── Forms ── */
.form-card{display:grid;gap:14px}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}
label{display:grid;gap:6px;font-weight:700;font-size:.9rem}
input,select,textarea{width:100%;border:1px solid var(--lborder);border-radius:12px;padding:10px 13px;font:inherit;background:#fff;color:#111;transition:border-color .15s}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--red);box-shadow:0 0 0 3px rgba(200,16,46,.1)}
textarea{resize:vertical}
.check{display:flex;align-items:center;gap:9px;font-weight:700}
.check input{width:auto}
.upload-zone{border:2px dashed var(--lborder);border-radius:18px;padding:20px;background:var(--lb);text-align:center}

/* ── Filters ── */
.filter-row{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.filter{display:inline-flex;border-radius:999px;background:var(--soft);color:var(--white);padding:8px 14px;font-weight:800;font-size:.82rem;text-decoration:none;cursor:pointer;border:1px solid var(--border);transition:background .15s}
.filter.active{background:#fff;color:var(--black);border-color:#fff}
.filter:hover:not(.active){background:rgba(255,255,255,.12)}

/* ── Admin tabs ── */
.admin-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:22px;flex-wrap:wrap}
.admin-tabs a{display:inline-flex;text-decoration:none;border-radius:999px;padding:8px 14px;font-weight:800;font-size:.84rem;color:var(--muted);background:var(--soft);border:1px solid var(--border);white-space:nowrap}
.admin-tabs a.active{background:#fff;color:var(--black)}
.admin-tabs a:hover:not(.active){background:var(--border)}

/* ── Stats ── */
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.stat-card{border-radius:18px;background:rgba(255,255,255,.97);color:var(--ltext);padding:18px}
.stat-card strong{font-size:1.9rem;font-weight:900;display:block}
.stat-card span{display:block;color:var(--lmuted);font-weight:700;font-size:.85rem;margin-top:2px}

/* ── Media grid ── */
.media-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.media-card{overflow:hidden;border-radius:20px;background:rgba(255,255,255,.97);color:var(--ltext)}
.media-card img,.media-card video{display:block;width:100%;height:200px;object-fit:cover;background:#111}
.media-card div{padding:12px}

/* ── Coach tiles ── */
.coach-tile{
  display:grid;gap:9px;align-content:start;min-height:120px;
  padding:20px;border-radius:22px;
  background:rgba(255,255,255,.97);color:var(--ltext);
  text-decoration:none;box-shadow:0 12px 48px rgba(0,0,0,.15);
  border:1px solid rgba(255,255,255,.12);
  transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden;
}
.coach-tile::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--red)}
.coach-tile.green-tile::before{background:var(--green)}
.coach-tile:hover{transform:translateY(-2px);box-shadow:0 18px 60px rgba(0,0,0,.22)}
.coach-tile strong{font-size:1.1rem;font-weight:900}
.coach-tile span{color:var(--lmuted);line-height:1.5;font-size:.88rem}
.coach-highlight{border:2px solid var(--green)!important}

/* ── Training ── */
.training-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
.training-meta span:not(.tag){background:var(--lb);border:1px solid var(--lborder);border-radius:999px;padding:4px 12px;color:#374151;font-size:.85rem}
.session-phases{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}
.session-phases>div,.training-block{padding:14px;border:1px solid var(--lborder);border-radius:16px;background:var(--lb)}
.session-phases>div h3{font-size:.9rem;margin-bottom:8px;color:var(--red)}
.training-block{margin:10px 0}
.training-block details,.exercise-card details{margin-top:10px;padding-top:10px;border-top:1px solid var(--lborder)}
.training-block summary,.exercise-card summary{cursor:pointer;font-weight:800}
.training-sheet{max-width:1100px;margin-inline:auto}
.training-diagram{margin:1.2rem 0;padding:1rem;border:1px solid var(--lborder);border-radius:18px;background:#f8fafc}
.training-diagram-title{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem}
.training-diagram-title strong{font-size:.95rem;color:var(--ltext)}
.training-diagram-title span{font-size:.82rem;color:#b91c1c;font-weight:800;background:#fee2e2;border-radius:999px;padding:.3rem .7rem}
.training-diagram svg{display:block;width:100%;height:auto;border-radius:14px}
.diagram-legend{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.65rem;color:#374151;font-size:.8rem}
.diagram-legend span{background:var(--lb);border:1px solid var(--lborder);border-radius:999px;padding:.3rem .65rem}

/* ── Programme annuel ── */
.program-intro{border-left:4px solid var(--red);padding-left:16px}
.program-period h2{color:#fff;margin:0 0 1rem;font-size:1.4rem}
.program-table-wrap{overflow-x:auto;border-radius:18px;border:1px solid var(--border);background:#fff;box-shadow:0 16px 50px rgba(0,0,0,.15)}
.program-table{width:100%;min-width:900px;border-collapse:collapse;color:var(--ltext);background:#fff}
.program-table th{background:var(--ltext);color:#fff;text-align:left;padding:.9rem 1rem;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em}
.program-table td{padding:.9rem 1rem;border-top:1px solid var(--lborder);vertical-align:top;line-height:1.45;font-size:.88rem}
.program-table tr:hover td{background:#fafafa}
.program-table a{color:#b91c1c;font-weight:700;text-decoration:none}
.program-table small{display:block;margin-top:.3rem;color:var(--lmuted);line-height:1.4}

/* ── Infirmerie ── */
.warning-health{background:#fff7ed;color:#7c2d12;border:1px solid #fed7aa;border-radius:18px;padding:16px}
.medical-guide{padding:16px;border-radius:18px;background:var(--lb);border:1px solid var(--lborder)}
.medical-guide h3{margin:8px 0}
.medical-guide details{margin-top:8px;border-top:1px solid var(--lborder);padding-top:8px}
.medical-guide summary{cursor:pointer;font-weight:800;color:var(--ltext)}
.kit-item{display:flex;justify-content:space-between;gap:12px;padding:12px;border:1px solid var(--lborder);border-radius:14px;background:var(--lb)}
.kit-item small,.kit-check-row small{display:block;color:var(--lmuted);margin-top:3px;font-size:.8rem}
.kit-item p{margin:7px 0 0;color:#555;line-height:1.5;font-size:.88rem}
.kit-check-form{display:grid;gap:14px}
.kit-check-row{display:grid;grid-template-columns:minmax(200px,1.2fr) 140px 140px 145px minmax(160px,1fr);gap:10px;align-items:end;padding:13px;border-radius:16px;background:var(--lb);border:1px solid var(--lborder)}
.kit-check-row label{font-size:.82rem}
.kit-check-row input,.kit-check-row select{padding:9px 10px;border-radius:11px}

/* ── Idées ── */
.idea-card{display:grid;grid-template-columns:1fr auto;gap:16px;padding:16px;border:1px solid var(--lborder);border-radius:20px;background:var(--lb);align-items:flex-start}
.idea-card h3{margin:8px 0 5px}
.idea-card p{line-height:1.55;color:#555;font-size:.9rem}
.idea-response{margin-top:12px;padding:12px;border-radius:14px;background:#ecfdf5;border:1px solid #bbf7d0;color:#14532d}
.idea-response p{margin:6px 0 0;color:#166534;font-size:.88rem}
.idea-vote{min-width:140px}

/* ── Org cards ── */
.org-card{background:rgba(255,255,255,.97);color:var(--ltext);border-radius:22px;padding:20px}
.org-item{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;border-top:1px solid var(--lborder);padding:12px 0}
.org-item:first-of-type{border-top:0}
.signup-names{color:var(--lmuted);font-size:.88rem;margin-top:5px}

/* ── Misc ── */
.muted{color:var(--lmuted)}
.public-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.stack{display:grid;gap:10px}.small-stack{gap:8px}
.reset-form{display:flex;gap:8px}
.reset-form input{min-width:170px;padding:8px 11px}
.empty{padding:22px;border-radius:18px;background:var(--soft);color:rgba(255,255,255,.7);text-align:center}
.table-like{display:grid;gap:10px}
.contact-type{max-width:280px}
.inline-form{display:inline-flex;gap:.5rem;align-items:center;margin-right:.5rem}
.spaced-small{margin-top:12px}

/* ── Coach presences ── */
.attendance-head,.attendance-row{display:grid;grid-template-columns:1.1fr 180px 1fr;gap:10px;align-items:end}
.attendance-head{font-weight:800;color:var(--lmuted);padding:0 12px;font-size:.82rem}
.attendance-row{padding:13px;border-radius:16px;background:var(--lb);border:1px solid var(--lborder)}
.attendance-form{display:grid;gap:10px}
.attendance-row small{display:block;color:var(--lmuted);margin-top:3px;font-size:.8rem}

/* ── Convocations ── */
.convocation-block{padding:16px 0;border-top:1px solid var(--lborder)}
.convocation-block:first-of-type{border-top:0}
.convocation-responses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}
.convocation-responses>div{border-radius:14px;background:var(--lb);border:1px solid var(--lborder);padding:10px}
.convocation-responses small{display:block;color:var(--lmuted);margin-top:5px;font-size:.8rem}
.checkbox-list{border:1px solid var(--lborder);border-radius:16px;padding:12px;display:grid;gap:7px}
.checkbox-list legend{font-weight:800;padding:0 6px}
.checkbox-list small{color:var(--lmuted);margin-left:5px;font-size:.8rem}

/* ── Equipment ── */
.equipment-check-row{display:grid;grid-template-columns:minmax(240px,1.2fr) 140px 135px minmax(160px,1fr);gap:10px;align-items:end;padding:13px;border-radius:16px;background:var(--lb);border:1px solid var(--lborder)}
.equipment-check-row p{margin:6px 0 0;color:#555;line-height:1.4;font-size:.88rem}
.admin-detail{padding:13px;border:1px solid var(--lborder);border-radius:16px;background:var(--lb);margin-bottom:10px}
.admin-detail summary{cursor:pointer;font-weight:700}
.admin-idea-block{padding:16px 0}

/* ── Module cards ── */
.module-card{display:grid;gap:8px;align-content:start;padding:20px;border-radius:18px;background:var(--soft);border:1px solid var(--border);color:var(--white);position:relative;overflow:hidden}
.module-card::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--red)}
.module-card.green-mod::after{background:var(--green)}
.module-card h3{font-size:1rem;font-weight:800;color:var(--white);margin:0}
.module-card p{font-size:.84rem;color:var(--muted);line-height:1.5}
.module-icon{font-size:1.5rem;margin-bottom:4px}
.level-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:var(--soft);border:1px solid var(--border);color:var(--white);font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.no-print{display:flex}

/* ── Footer ── */
.footer{text-align:center;color:var(--muted);padding:28px 16px 20px;border-top:1px solid var(--border);font-size:.82rem}
.footer strong{color:rgba(255,255,255,.7)}

/* ── Install page ── */
.install-card{max-width:760px;margin:0 auto}
.install-card h2{font-size:1.1rem;margin:20px 0 4px;padding-top:20px;border-top:1px solid var(--lborder)}
.install-card h2:first-of-type{margin-top:0;padding-top:0;border-top:0}

/* ── Responsive tablet ── */
@media(max-width:1100px){
  .dropdown-grid,.admin-dropdown-menu{grid-template-columns:1fr;min-width:0}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ── Responsive mobile ── */
@media(max-width:900px){
  .desktop-nav{display:none!important}
  .mob-burger{display:flex}
  .mobile-login{display:inline-flex}
  .container{padding-bottom:24px}
  .topbar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;height:auto;min-height:64px;padding:10px 14px}
  .brand img{width:40px;height:40px}
  .brand strong{font-size:.88rem}
  .brand small{font-size:.7rem}
  .hero{grid-template-columns:1fr;padding:22px;border-radius:20px}
  .hero.compact{grid-template-columns:1fr}
  .public-grid,.grid-2,.grid-3,.grid-4,.grid-5{grid-template-columns:1fr}
  .media-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .session-phases{grid-template-columns:repeat(2,minmax(0,1fr))}
  .attendance-head{display:none}
  .attendance-row,.equipment-check-row{grid-template-columns:1fr 1fr}
  .convocation-responses{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kit-check-row{grid-template-columns:1fr 1fr}
  .admin-tabs{display:none!important}
}

@media(max-width:600px){
  .container{width:min(100% - 20px,1180px);padding-top:18px;padding-bottom:88px}
  .hero{padding:18px;border-radius:18px}
  .hero h1,.page-title h1{font-size:2rem}
  .form-grid,.form-grid.three,.media-grid{grid-template-columns:1fr}
  .session-phases,.attendance-row,.equipment-check-row,.convocation-responses,.kit-check-row{grid-template-columns:1fr}
  .event-row,.admin-list-row,.org-item{align-items:flex-start;flex-direction:column}
  .row-actions{width:100%}
  .row-actions .btn,.row-actions form{width:100%}
  .idea-card{grid-template-columns:1fr}
  .idea-vote,.idea-vote .btn{width:100%}
  .mobile-menu-panel{width:93vw;border-radius:20px 0 0 20px;padding:13px}
  .training-diagram-title{flex-direction:column;align-items:flex-start}
}

@media(max-width:420px){
  .topbar{padding:9px 10px}
  .brand img{width:36px;height:36px;border-radius:8px}
  .brand strong{font-size:.82rem}
  .brand small{font-size:.67rem}
  .mobile-menu>summary{width:40px;height:40px;font-size:1.1rem}
  .bnb-item{font-size:.55rem;min-width:44px}
  .bnb-item svg{width:20px;height:20px}
}

@media print{
  body{background:#fff;color:#000}
  .topbar,.footer,.no-print,.admin-tabs,.bottom-nav-bar,.mobile-menu{display:none!important}
  .container{width:100%;padding:0}
  .card,.hero,.page-title{box-shadow:none;border:1px solid #ddd;background:#fff;color:#000}
  .page-title h1{font-size:26px}
  .session-phases{grid-template-columns:repeat(2,1fr)}
  a{color:#000;text-decoration:none}
  .training-diagram{page-break-inside:avoid}
  .program-table{font-size:10px;min-width:0}
}

/* ══════════════════════════════════════
   MENU MOBILE REDESIGNÉ v3.3
══════════════════════════════════════ */
.mob-quicklinks{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.mob-ql{display:flex;flex-direction:column;align-items:center;gap:5px;padding:10px 6px;border-radius:14px;background:var(--lb);border:1px solid var(--lborder);color:var(--ltext);font-size:.72rem;font-weight:700;text-decoration:none;text-align:center;transition:background .15s}
.mob-ql svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}
.mob-ql:hover{background:#e5e7eb}
.mob-ql-active{background:var(--ltext)!important;color:#fff!important;border-color:var(--ltext)}
.mob-section-label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--lmuted);padding:10px 4px 6px;margin-top:4px;border-top:1px solid var(--lborder)}
.mob-links-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.mob-links-grid .nav-menu-link{font-size:.84rem!important;padding:10px 12px!important;border-radius:12px!important}
.mob-logout-btn{display:flex;align-items:center;gap:8px;justify-content:center;margin-top:12px;padding:12px 16px;border-radius:14px;background:#fee2e2;color:#991b1b;font-weight:800;font-size:.9rem;text-decoration:none;border:1px solid #fecaca}
.mob-logout-btn:hover{background:#fecaca}
.bnb-menu-btn{cursor:pointer}
