/** =========================================================================================
 * PROJET      : 24H d'escalade — CAF Haut Chablais Morzine
 * FICHIER     : assets/CSS/Common_Styles.css
 * DESCRIPTION : Styles communs : scanner QR et habilitations ergonomiques
 * CONTEXTE    : Un seul composant CSS partagé, responsive PC/tablette/mobile.
 * VERSION GLOBALE : Produit 1.25.0 · API 1.21.0 · Frontend 1.24.0
 * DATE CRÉATION : 21/09/2026
 * DATE MODIFICATION : 26/10/2026
 * AUTEUR      : By Konshu
 * ========================================================================================= */

/* ➜ CHAPITRE 1 — VARIABLES ET BASE */
:root{--caf:#00A5CC;--caf-dark:#0F6B86;--caf-deep:#08485c;--bg:#eef8fa;--surface:rgba(255,255,255,.88);--glass:rgba(255,255,255,.78);--ink:#17323d;--muted:#667b84;--primary:var(--caf);--primary-dark:var(--caf-dark);--primary-soft:#eefbff;--accent:#e83c3c;--border:#cfe8ef;--shadow:0 18px 48px rgba(9,65,82,.18);--bg-url:none;--watermark-url:none;--red:#b42318;--red-bg:#fff0f0;--orange:#a96c00;--orange-bg:#fff8ed;--green:#16815f;--green-bg:#ecfff8;--grey:#66747a;--grey-bg:#f0f2f3;--radius:20px;--header-h:70px}
*{box-sizing:border-box}
html{min-height:100%;background:#eaf8fc;color:var(--ink);font-family:Arial,Helvetica,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:linear-gradient(rgba(235,250,255,.72),rgba(235,250,255,.90)),var(--bg-url) center/cover fixed;background-color:var(--bg)}
body::before{content:"";position:fixed;inset:0;background:var(--watermark-url) center 82%/min(70vw,620px) no-repeat;opacity:.055;pointer-events:none;z-index:-1}
body.modal-open,body.qr-modal-open{overflow:hidden}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.muted{color:var(--muted)}
.eyebrow{margin:0 0 6px;text-transform:uppercase;letter-spacing:.09em;font-size:.75rem;font-weight:800;color:var(--primary)}
h1,h2,h3{margin-top:0;color:var(--ink)}
h1{font-size:clamp(1.65rem,6vw,2.5rem);line-height:1.1}h2{font-size:1.35rem}h3{font-size:1.05rem}
a{color:var(--primary)}

/* ➜ CHAPITRE 2 — HEADER / FOOTER */
.app-header{position:sticky;top:0;z-index:100;min-height:var(--header-h);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px max(14px,env(safe-area-inset-left)) 10px max(14px,env(safe-area-inset-right));background:rgba(255,255,255,.80);border-bottom:1px solid rgba(255,255,255,.72);box-shadow:0 8px 26px rgba(9,65,82,.10);backdrop-filter:blur(16px)}
.brand{border:0;background:none;display:flex;align-items:center;gap:10px;padding:0;color:var(--ink);text-align:left;min-width:0}.brand-mark{width:44px;height:44px;flex:0 0 44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--caf),var(--caf-dark));color:white;font-weight:900;box-shadow:0 10px 22px rgba(0,140,181,.22)}.brand.has-club-logo .brand-mark{display:none}.brand-logo{display:block;width:auto;height:58px;max-width:138px;object-fit:contain;object-position:center;flex:0 0 auto;filter:drop-shadow(0 5px 10px rgba(9,65,82,.08));transition:opacity .18s ease,transform .18s ease}.brand:hover .brand-logo{transform:translateY(-1px)}.brand-copy{display:flex;flex-direction:column;line-height:1.15;min-width:0}.brand-copy small{color:var(--muted);font-size:.72rem;margin-top:3px}.header-actions{display:flex;align-items:center;gap:8px}.version-pill{font-size:.72rem;font-weight:800;background:var(--primary-soft);color:var(--primary);padding:6px 9px;border-radius:999px}.version-link{text-decoration:none;border:1px solid #cde6ec;transition:.15s ease}.version-link:hover,.version-link:focus-visible{background:#dff7ff;transform:translateY(-1px);outline:none;box-shadow:0 0 0 3px rgba(0,165,204,.14)}.app-footer{display:flex;justify-content:space-between;gap:10px;padding:24px 16px;color:var(--muted);font-size:.78rem;max-width:1180px;margin:auto}

/* ➜ CHAPITRE 3 — LAYOUT ET CARTES */
.app-main{width:min(1180px,100%);margin:0 auto;padding:20px 12px 48px}.screen{animation:screenIn .22s ease}@keyframes screenIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.card,.hero-card{background:var(--surface);border:1px solid rgba(255,255,255,.78);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;margin-bottom:16px;backdrop-filter:blur(16px)}.hero-card{padding:24px;background:linear-gradient(140deg,rgba(255,255,255,.95) 48%,rgba(238,251,255,.84));border-color:rgba(255,255,255,.86)}.hero-card h1{margin-bottom:12px}.editable-content{line-height:1.55}.event-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.event-chip{padding:8px 11px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.83rem;font-weight:700}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.section-heading h2{margin-bottom:0}

/* ➜ CHAPITRE 4 — BOUTONS */
.btn{border:1px solid transparent;border-radius:12px;padding:11px 15px;min-height:44px;font-weight:800;transition:.15s ease;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:7px}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--caf),var(--caf-dark));color:white;box-shadow:0 10px 22px rgba(0,140,181,.22)}.btn-primary:hover{background:linear-gradient(135deg,#0098bd,var(--caf-deep))}.btn-secondary{background:#17323c;color:white}.btn-soft{background:var(--primary-soft);color:var(--primary);border-color:#cde6ec}.btn-danger-soft{background:var(--red-bg);color:var(--red);border-color:#f4cccc}.btn-header{padding:8px 11px;min-height:38px;background:linear-gradient(135deg,var(--caf),var(--caf-dark));color:white;box-shadow:0 7px 18px rgba(0,140,181,.18)}.btn-large{width:100%;min-height:52px;font-size:1rem}.btn-small{min-height:36px;padding:7px 10px;font-size:.8rem}.full-width{width:100%}.icon-btn{width:42px;height:42px;border:0;border-radius:12px;background:#edf2f4;font-size:1.55rem;color:var(--ink)}

/* ➜ CHAPITRE 5 — ÉTAPES ET CHOIX */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:16px}.step{border:0;background:#e6edef;color:#6b7b81;border-radius:12px;padding:9px 4px;font-size:.69rem;font-weight:800;min-height:54px}.step span{display:grid;place-items:center;width:21px;height:21px;margin:0 auto 3px;border-radius:50%;background:#c9d4d8;color:#52636a}.step.active{background:linear-gradient(135deg,var(--caf),var(--caf-dark));color:white}.step.active span,.step.done span{background:white;color:var(--primary)}.step.done{background:#dcefe5;color:var(--green)}
.participant-types{display:grid;gap:12px}.choice-card{width:100%;border:2px solid var(--border);border-radius:16px;background:rgba(255,255,255,.90);padding:18px;text-align:left;color:var(--ink);display:flex;flex-direction:column;gap:6px;min-height:92px}.choice-card:hover,.choice-card.selected{border-color:var(--primary);background:var(--primary-soft)}.choice-card strong{font-size:1rem}.choice-card span{color:var(--muted);font-size:.87rem}

/* ➜ CHAPITRE 6 — FORMULAIRES */
.field-hint{display:block;margin-top:5px;color:var(--muted);font-size:.76rem;font-weight:600;line-height:1.35}.field-hint.success{color:var(--green)}.field-hint.error{color:var(--red)}.field-warning{margin:8px 0 14px;padding:11px 13px;border-radius:12px;background:var(--orange-bg);border:1px solid #f0d6a3;color:#74500d;font-size:.82rem;font-weight:750;line-height:1.4}
.profile-panel{padding:17px 0;border-bottom:1px solid var(--border)}.profile-panel:first-child{padding-top:0}.profile-panel:last-child{border-bottom:0}.form-grid{display:grid;gap:13px}.form-grid.cols-2,.form-grid.cols-3{grid-template-columns:1fr}label{display:flex;flex-direction:column;gap:7px;font-size:.84rem;font-weight:750;color:#36515b}input,select,textarea{width:100%;min-height:46px;border:1.5px solid #cfdadd;border-radius:11px;background:white;color:var(--ink);padding:10px 12px;outline:none}textarea{min-height:100px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(7,93,117,.1)}input[readonly]{background:#f2f5f6;color:#52636a}.phone-field{display:grid;grid-template-columns:minmax(115px,.42fr) 1fr;gap:8px}.toggle-row{flex-direction:row;align-items:flex-start;gap:10px;line-height:1.35}.toggle-row input{width:22px;height:22px;min-height:22px;flex:0 0 auto;margin:0}.form-actions{display:flex;justify-content:flex-end;padding-top:18px}.inline-status{margin-top:12px;padding:12px;border-radius:12px;background:var(--green-bg);color:var(--green);font-weight:700}.inline-status.error{background:var(--red-bg);color:var(--red)}

/* ➜ CHAPITRE 7 — CRÉNEAUX */
.notice{padding:13px 15px;border-radius:13px;background:var(--primary-soft);border:1px solid #cde6ec;line-height:1.45}.notice-attention{background:var(--orange-bg);border-color:#f0d6a3;color:#74500d}.slot-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0}.slot-toolbar div{display:flex;flex-direction:column;gap:2px}.slot-toolbar small{color:var(--muted)}.slots-list{display:grid;gap:10px}.slot-card{position:relative;border:2px solid var(--border);border-radius:15px;background:rgba(255,255,255,.92);padding:14px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.slot-card.state-personne{border-color:#f0aaaa;background:var(--red-bg)}.slot-card.state-a-renforcer{border-color:#efca88;background:var(--orange-bg)}.slot-card.state-bien-couvert{border-color:#abd7bc;background:var(--green-bg)}.slot-card.state-complet{border-color:#d8dde0;background:var(--grey-bg);color:var(--grey)}.slot-card.selected{box-shadow:inset 0 0 0 2px var(--primary);border-color:var(--primary)}.slot-main{display:flex;align-items:flex-start;gap:11px}.slot-checkbox{width:22px;height:22px;min-height:22px;margin-top:2px}.slot-copy{display:flex;flex-direction:column;gap:4px}.slot-copy strong{font-size:1rem}.slot-state{font-size:.78rem;font-weight:900}.slot-meta{font-size:.76rem;color:var(--muted)}.slot-role{min-width:132px}.slot-role-group{margin:0;padding:9px 11px;border:1px solid rgba(7,93,117,.18);border-radius:12px;background:rgba(255,255,255,.72);display:flex;align-items:center;gap:9px;flex-wrap:wrap;min-width:230px}.slot-role-group legend{padding:0 5px;color:#36515b;font-size:.75rem;font-weight:850}.slot-role-choice{display:flex;flex-direction:row;align-items:center;gap:6px;font-size:.8rem;font-weight:800;color:var(--ink);cursor:pointer}.slot-role-choice input{width:20px;height:20px;min-height:20px;margin:0;flex:0 0 auto}.slot-role-choice input:disabled+span{opacity:.48}.slot-role-choice:has(input:checked){color:var(--primary)}.sticky-selection{position:sticky;bottom:10px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding:11px 12px;background:rgba(255,255,255,.96);border:1px solid var(--border);border-radius:15px;box-shadow:0 12px 32px rgba(10,45,56,.14);backdrop-filter:blur(14px)}

/* ➜ CHAPITRE 8 — RÉCAPITULATIF */
.recap-grid{display:grid;gap:12px}.recap-box{border:1px solid var(--border);border-radius:14px;padding:14px}.recap-box h3{margin-bottom:9px}.recap-list{margin:0;padding-left:18px}.payment-total{display:flex;align-items:center;justify-content:space-between;margin:18px 0;padding:16px;border-radius:14px;background:#17323c;color:white}.payment-total strong{font-size:1.4rem}.terms-row{margin-top:18px}.reference-line{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;background:#f1f5f6;border-radius:10px;padding:9px 12px}.result-card{text-align:center;max-width:650px;margin:40px auto}.result-icon{display:grid;place-items:center;margin:0 auto 18px;width:70px;height:70px;border-radius:50%;background:var(--green-bg);color:var(--green);font-size:2rem;font-weight:900}

/* ➜ CHAPITRE 9 — ADMIN */
.admin-login-card{max-width:480px;margin:35px auto}.admin-login-card form{display:grid;gap:14px;margin:20px 0}.admin-topbar{display:flex;flex-direction:column;gap:14px}.admin-top-actions{display:flex;gap:8px;flex-wrap:wrap}.admin-tabs{display:flex;overflow-x:auto;gap:7px;padding:4px 1px 12px;scrollbar-width:thin}.admin-tabs button{white-space:nowrap;border:1px solid var(--border);border-radius:999px;background:white;padding:9px 13px;font-weight:800;color:#51656c}.admin-tabs button.active{background:var(--primary);color:white;border-color:var(--primary)}.admin-panel{min-height:180px}.stat-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stat-card{background:rgba(255,255,255,.90);border:1px solid var(--border);border-radius:14px;padding:14px}.stat-card small{display:block;color:var(--muted);margin-bottom:5px}.stat-card strong{font-size:1.45rem}.admin-section{background:rgba(255,255,255,.90);border:1px solid var(--border);backdrop-filter:blur(12px);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:0 5px 20px rgba(12,43,54,.05)}.admin-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.admin-section-head h2{margin:0}.admin-tools{display:flex;flex-wrap:wrap;gap:8px}.admin-tools input,.admin-tools select{width:auto;min-width:150px}.data-cards{display:grid;gap:10px}.person-card{border:1px solid var(--border);border-radius:14px;padding:14px}.person-head{display:flex;justify-content:space-between;gap:10px}.person-meta{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.tag{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef3f5;color:#4a626b;font-size:.72rem;font-weight:800}.tag.ok{background:var(--green-bg);color:var(--green)}.tag.warn{background:var(--orange-bg);color:var(--orange)}.tag.danger{background:var(--red-bg);color:var(--red)}.card-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}.phone-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.table-wrap{overflow:auto;border:1px solid var(--border);border-radius:13px}table{border-collapse:collapse;width:100%;font-size:.82rem;background:rgba(255,255,255,.94)}th,td{text-align:left;border-bottom:1px solid var(--border);padding:9px 10px;vertical-align:top}th{position:sticky;top:0;background:#eef5f7;color:#34515b;z-index:1}.code-cell{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.75rem}.coverage-row{display:grid;grid-template-columns:minmax(140px,1.2fr) 1fr auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--border)}.coverage-row:last-child{border-bottom:0}.coverage-bar{height:10px;background:#e4eaec;border-radius:999px;overflow:hidden}.coverage-bar>span{display:block;height:100%;background:var(--primary);border-radius:999px}.admin-danger-zone{border-color:#efc1c1;background:#fffafa}

/* ➜ CHAPITRE 10 — MODALE / LOADER / TOAST */
.loader-overlay{position:fixed;inset:0;z-index:10000;background:rgba(12,35,43,.42);display:grid;place-items:center;padding:20px;backdrop-filter:blur(3px)}.loader-box{min-width:220px;background:rgba(255,255,255,.94);backdrop-filter:blur(16px);border-radius:16px;padding:22px;box-shadow:var(--shadow);display:flex;align-items:center;gap:13px}.spinner{width:28px;height:28px;border:3px solid #d3e5ea;border-top-color:var(--primary);border-radius:50%;animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.toast{position:fixed;z-index:12000;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(540px,calc(100% - 24px));padding:13px 16px;border-radius:13px;color:white;background:#17323c;box-shadow:0 12px 35px rgba(0,0,0,.22);font-weight:700}.toast.success{background:var(--green)}.toast.error{background:var(--red)}.toast.warning{background:var(--orange)}.modal-overlay{position:fixed;inset:0;z-index:11000;background:rgba(8,30,38,.55);display:flex;align-items:flex-end;justify-content:center;padding:0;backdrop-filter:blur(3px)}.modal-card{background:rgba(255,255,255,.97);backdrop-filter:blur(16px);width:100%;max-height:90vh;border-radius:22px 22px 0 0;overflow:auto;box-shadow:0 -15px 45px rgba(0,0,0,.22)}.modal-head{position:sticky;top:0;background:white;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border);z-index:2}.modal-head h2{margin:0;font-size:1.15rem}.modal-body{padding:16px}.modal-overlay.wide .modal-card{max-width:960px}.modal-form{display:grid;gap:12px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px;flex-wrap:wrap}

/* ➜ CHAPITRE 11 — SCANNER QR FULLSCREEN */
.qr-overlay{position:fixed;inset:0;z-index:20000;background:#07141a;color:white;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.qr-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:11px 12px;background:rgba(0,0,0,.35)}.qr-header h2{color:white;margin:0;font-size:1rem}.qr-body{position:relative;flex:1;min-height:0;display:flex;flex-direction:column}.qr-reader{flex:1;min-height:260px;background:#000;overflow:hidden}.qr-reader video{object-fit:cover!important}.qr-controls{display:grid;gap:9px;padding:12px;background:#0d222b}.qr-controls select,.qr-controls input{background:white;color:#17323c}.qr-control-row{display:flex;gap:8px;flex-wrap:wrap}.qr-control-row>*{flex:1}.qr-status{min-height:22px;font-size:.86rem;color:#d9eef5}.qr-fallback-file{display:none}

/* ➜ CHAPITRE 12 — RESPONSIVE */
@media (min-width:700px){.app-main{padding:28px 20px 60px}.card,.hero-card{padding:24px}.participant-types{grid-template-columns:repeat(3,1fr)}.form-grid.cols-2{grid-template-columns:repeat(2,1fr)}.form-grid.cols-3{grid-template-columns:repeat(3,1fr)}.stat-grid{grid-template-columns:repeat(4,1fr)}.admin-topbar{flex-direction:row;justify-content:space-between;align-items:center}.modal-overlay{align-items:center;padding:24px}.modal-card{width:min(760px,100%);border-radius:22px;max-height:86vh}.data-cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1000px){.stat-grid{grid-template-columns:repeat(6,1fr)}.data-cards{grid-template-columns:repeat(3,1fr)}}
@media (max-width:720px){body{background-attachment:scroll;background-position:center top}.app-main{padding-top:10px}.brand-logo{height:50px;max-width:116px}.card,.hero-card{border-radius:18px}.hero-card{padding:19px}.app-footer{padding-bottom:max(24px,env(safe-area-inset-bottom))}}
@media (max-width:520px){.brand{gap:7px}.brand-logo{height:44px;max-width:100px}.brand-copy small{display:none}.version-pill{display:none}.btn-header{font-size:.78rem}.slot-card{grid-template-columns:1fr}.slot-role{width:100%}.slot-role-group{width:100%;min-width:0;justify-content:flex-start}.steps .step{font-size:0}.steps .step span{margin:auto}.sticky-selection{align-items:stretch;flex-direction:column}.sticky-selection .btn{width:100%}.section-heading{flex-direction:column}.section-heading .btn{align-self:flex-start}.coverage-row{grid-template-columns:1fr auto}.coverage-bar{grid-column:1/-1}}

/* ➜ CHAPITRE 13 — CARTE, NIVEAU ET MATÉRIEL */
.event-map-wrap{display:grid;gap:10px;margin-top:16px}.event-map-frame{width:100%;height:280px;border:0;border-radius:16px;background:#e9f0f2;box-shadow:inset 0 0 0 1px var(--border)}
.choice-radio-grid{display:grid;gap:9px}.choice-radio{display:flex;flex-direction:row;align-items:flex-start;gap:10px;border:1.5px solid var(--border);border-radius:14px;background:rgba(255,255,255,.9);padding:12px;cursor:pointer}.choice-radio:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}.choice-radio input{width:21px;height:21px;min-height:21px;flex:0 0 auto;margin:1px 0}.choice-radio span{display:flex;flex-direction:column;gap:3px}.choice-radio small{color:var(--muted);font-weight:600;line-height:1.35}.choice-radio-grid.compact{grid-template-columns:1fr}.material-grid{display:grid;gap:9px;margin-top:10px}.material-choice{display:flex;flex-direction:row;align-items:center;gap:9px;border:1px solid var(--border);border-radius:12px;padding:10px;background:#fff}.material-choice input{width:20px;height:20px;min-height:20px;flex:0 0 auto}.material-choice span{display:flex;flex-direction:column}.material-choice small{color:var(--muted)}.material-loan-row{display:grid;grid-template-columns:1fr 110px;gap:9px;align-items:end;border:1px solid var(--border);border-radius:12px;padding:10px;background:#fff}.slot-wall,.slot-arrival{font-size:.77rem;font-weight:750;color:#36515b}.slot-arrival{color:var(--primary-dark)}

/* ➜ CHAPITRE 14 — CONSOLE HIÉRARCHIQUE */
.admin-layout{display:grid;gap:12px}.admin-chapter-nav{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 4px;scrollbar-width:thin}.admin-chapter-nav button{white-space:nowrap;display:flex;align-items:center;gap:7px;border:1px solid var(--border);border-radius:14px;background:rgba(255,255,255,.92);padding:11px 13px;font-weight:850;color:#4e636c}.admin-chapter-nav button.active{background:linear-gradient(135deg,var(--caf),var(--caf-dark));border-color:transparent;color:#fff;box-shadow:0 8px 20px rgba(0,140,181,.18)}.admin-workspace{min-width:0}.admin-subtabs{display:block;margin-bottom:12px}.admin-subtabs>div{display:flex;gap:7px;overflow-x:auto;padding:2px 1px 6px}.admin-subtabs button{white-space:nowrap;border:1px solid var(--border);border-radius:999px;background:#fff;padding:9px 12px;font-weight:800;color:#51656c}.admin-subtabs button.active{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-dark)}.search-results{display:grid;gap:7px;margin:10px 0}.search-result{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:1px solid var(--border);border-radius:12px;background:#fff;padding:10px;text-align:left}.search-result:hover{border-color:var(--primary);background:var(--primary-soft)}.search-result span{font-size:.78rem;color:var(--muted)}.availability-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.table-actions{display:flex;gap:5px;flex-wrap:wrap}.supervision-manquant{background:var(--red-bg)}.supervision-juste{background:var(--orange-bg)}

/* ➜ CHAPITRE 15 — IMPRESSION DU PLANNING */
@media print{body{background:#fff!important}body::before,.app-header,.app-footer,.admin-topbar,.admin-chapter-nav,.admin-subtabs,.admin-section:not(:has(.planning-print)),.btn{display:none!important}.app-main{width:100%;max-width:none;padding:0}.admin-panel{display:none!important}#admin-panel-planning{display:block!important}.planning-print{overflow:visible;border:0}.planning-print table{font-size:10pt}.planning-print th{position:static;background:#eee;color:#000}.planning-print td,.planning-print th{border:1px solid #999}.planning-print th:last-child,.planning-print td:last-child{display:none}}

.recap-box-wide{grid-column:1/-1}

/* ➜ CHAPITRE 16 — RESPONSIVE V1.3.5 */
@media (min-width:760px){.choice-radio-grid{grid-template-columns:repeat(3,1fr)}.choice-radio-grid.compact{grid-template-columns:repeat(2,1fr)}.material-grid{grid-template-columns:repeat(2,1fr)}.event-map-frame{height:340px}}
@media (min-width:980px){.admin-layout{grid-template-columns:190px minmax(0,1fr);align-items:start}.admin-chapter-nav{position:sticky;top:86px;display:grid;overflow:visible}.admin-chapter-nav button{white-space:normal;justify-content:flex-start;min-height:48px}.admin-subtabs>div{flex-wrap:wrap}.event-map-frame{height:380px}}
@media (max-width:560px){.material-loan-row{grid-template-columns:1fr}.admin-chapter-nav button span{font-size:.78rem}.event-map-frame{height:230px}}

/* ➜ CHAPITRE 17 — IDENTITÉ VISUELLE 24H 2026 ISSUE DE L’AFFICHE OFFICIELLE */
:root{--event-teal:#0897b8;--event-teal-deep:#087b9a;--event-yellow:#ffdc00;--event-cream:#fffdf4;--event-coral:#f2612e}
#screen-registration .hero-card,#screen-registration .card{border-color:rgba(8,151,184,.18)}
#screen-registration .hero-card{background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(255,253,244,.96));overflow:hidden;position:relative}
#screen-registration .eyebrow{color:var(--event-teal-deep);font-weight:950}
#screen-registration .choice-card:hover,#screen-registration .choice-card.selected{border-color:var(--event-teal);background:#eefcff}
#screen-registration .btn-primary{background:linear-gradient(135deg,var(--event-teal),var(--event-teal-deep));box-shadow:0 10px 24px rgba(8,151,184,.24)}
#screen-registration .step.active{background:linear-gradient(135deg,var(--event-teal),var(--event-teal-deep))}
#screen-registration .event-chip{background:#eafcff;color:var(--event-teal-deep);border:1px solid rgba(8,151,184,.16)}
.poster-hero{display:grid;gap:18px}.poster-hero-copy{min-width:0}.poster-hero-visual{display:none;align-self:stretch;border-radius:16px;overflow:hidden;background:var(--event-teal)}.poster-hero-visual img{display:block;width:100%;height:100%;max-height:520px;object-fit:cover;object-position:center}
.event-rules-banner{margin:12px 0 16px;padding:14px 16px;border-radius:14px;background:linear-gradient(135deg,#fff9c7,#fff1a1);border:1px solid #ead35c;color:#493f00;line-height:1.45}.event-rules-banner strong{display:block;font-size:.95rem;margin-bottom:3px}.event-rules-banner span{display:block;margin-top:5px;font-size:.84rem;font-weight:750}
.age-wall-child,.age-wall-adult{border-left:5px solid var(--event-yellow);background:#f1fbfd;color:#1b596b}.age-wall-adult{border-left-color:var(--event-teal)}
.minor-authorization-row{margin-top:14px;padding:13px;border-radius:13px;background:#fff9d6;border:1px solid #ead35c}
.slot-card.state-encadrement-manquant{border-color:#ef8f78;background:#fff1ed}
.qr-routes-wrap{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:end;padding:10px;border-radius:12px;background:rgba(255,255,255,.08)}
@media (min-width:900px){.poster-hero{grid-template-columns:minmax(0,1.55fr) minmax(230px,.55fr)}.poster-hero-visual{display:block}.poster-hero .event-map-wrap{grid-column:1/-1}.poster-hero-copy .event-map-wrap{grid-column:auto}}
@media (max-width:620px){.qr-routes-wrap{grid-template-columns:1fr}.event-rules-banner{padding:12px}}

/* ➜ CHAPITRE 18 — FOND PUBLIC DÉRIVÉ DE L’AFFICHE OFFICIELLE */
body.event-public-mode{background:
  radial-gradient(circle at 8% 20%,rgba(255,220,0,.92) 0 7px,transparent 8px),
  radial-gradient(circle at 93% 22%,rgba(242,97,46,.88) 0 9px,transparent 10px),
  radial-gradient(circle at 88% 78%,rgba(118,176,78,.88) 0 11px,transparent 12px),
  radial-gradient(circle at 14% 82%,rgba(255,253,244,.88) 0 8px,transparent 9px),
  linear-gradient(145deg,#0789aa 0%,#069dbd 56%,#057f9e 100%);background-attachment:fixed}
body.event-public-mode::before{background:none;opacity:0}
body.event-public-mode .app-header{background:rgba(255,253,244,.96);border-bottom-color:rgba(255,220,0,.45)}
body.event-public-mode .app-main{padding-top:24px}
body.event-public-mode #screen-registration .hero-card,body.event-public-mode #screen-registration .card{box-shadow:0 18px 46px rgba(2,54,68,.28)}
body.event-public-mode #screen-registration .hero-card{border-top:5px solid var(--event-yellow)}
body.event-public-mode #screen-registration h1{letter-spacing:-.025em}
body.event-public-mode #screen-payment-result .result-card{border-top:5px solid var(--event-yellow);background:rgba(255,253,244,.97)}
@media(max-width:720px){body.event-public-mode{background-attachment:scroll}.poster-hero-visual{display:none}.event-rules-banner strong{font-size:.9rem}}
body.event-public-mode .app-footer{color:#fff;font-weight:750;text-shadow:0 2px 8px rgba(0,45,58,.55)}


/* ➜ CHAPITRE 19 — UX V1.4.0 : MOBILE, PILOTAGE ET LISIBILITÉ ADMIN */
.participant-types{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.choice-card{position:relative;background:#fff;box-shadow:0 8px 22px rgba(9,65,82,.08)}
.choice-card .choice-icon{font-size:1.7rem;line-height:1;margin-bottom:2px}
.choice-card-branded{display:grid;grid-template-columns:minmax(180px,.95fr) minmax(0,1.05fr);align-items:center;gap:16px;padding:16px 18px;min-height:132px}
.choice-card-logo-wrap{width:100%;min-width:0;min-height:86px;display:flex;align-items:center;justify-content:center;overflow:hidden}
.choice-card-logo{display:block;width:100%;max-width:300px;height:82px;object-fit:contain;object-position:center}
.choice-card-logo-discovery{height:104px;max-width:320px}
.choice-logo-fallback{display:grid;place-items:center;width:74px;height:74px;border-radius:18px;background:var(--primary-soft);font-size:2.1rem}
.choice-card-copy{display:flex;flex-direction:column;gap:7px;min-width:0}
.choice-card-copy strong{font-size:1.02rem;color:var(--ink)}
.choice-card-copy>span{line-height:1.35}
.choice-card.feature-disabled{opacity:.55;filter:grayscale(.35);cursor:not-allowed}
.person-card{background:#fff;border-color:#c8e2ea;box-shadow:0 8px 22px rgba(9,65,82,.08)}
.admin-section{background:rgba(255,255,255,.98)}
.admin-topbar{background:rgba(255,255,255,.98)}
.admin-subtabs button{min-height:44px}
.admin-chapter-nav button{min-height:46px}
.admin-loading-hint{display:flex;align-items:center;gap:9px;color:var(--muted);font-weight:700}
.admin-loading-hint::before{content:"";width:18px;height:18px;border:2px solid #d6e8ed;border-top-color:var(--primary);border-radius:50%;animation:spin .75s linear infinite}
.danger-confirm-box{border:2px solid #efb1b1;background:#fff3f3;color:#7f1d1d;border-radius:14px;padding:14px;line-height:1.45}
.danger-confirm-box strong{color:#a61b1b}
.danger-confirm-box ul{margin:8px 0 0;padding-left:20px}
.danger-confirm-input{margin-top:12px}
.day-groups{display:grid;gap:14px}
.day-group{border:1px solid var(--border);border-radius:16px;background:#fff;overflow:hidden}
.day-group-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;background:linear-gradient(135deg,#eefbff,#fff9cf);border-bottom:1px solid var(--border)}
.day-group-head h3{margin:0;font-size:1rem}
.day-group-body{padding:4px 14px 8px}
.pilotage-progress-layout{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;align-items:start}
.elevation-progress{position:sticky;top:88px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 8px 22px rgba(9,65,82,.10)}
.elevation-progress-title{font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--primary-dark);text-align:center}
.elevation-ruler{position:relative;width:54px;height:360px;border:2px solid #d6c9a5;border-radius:10px;background:linear-gradient(90deg,#ead9b2 0 12%,#f9efcf 12% 100%);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(80,61,20,.08)}
.elevation-ruler::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to top,transparent 0 35px,rgba(67,52,22,.22) 35px 37px);pointer-events:none}
.elevation-fill{position:absolute;left:12%;right:0;bottom:0;background:linear-gradient(to top,var(--event-teal-deep),var(--event-teal),var(--event-yellow));min-height:2px;transition:height .35s ease}
.elevation-climber{position:absolute;right:7px;transform:translateY(50%);font-size:1.45rem;z-index:2;transition:bottom .35s ease;filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}
.elevation-label{position:absolute;left:3px;font-size:.6rem;font-weight:850;color:#644f22;z-index:3;background:rgba(255,253,244,.72);padding:1px 2px;border-radius:3px}
.elevation-summary{text-align:center;font-size:.75rem;line-height:1.35;color:var(--muted)}
.elevation-summary strong{display:block;color:var(--ink);font-size:.98rem}
.registration-status-expired{border-color:#e0c6a2;background:#fffaf1}
.registration-status-cancelled{border-color:#efc1c1;background:#fffafa}

@media(max-width:720px){
  .admin-topbar{padding:15px}
  .admin-top-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .admin-top-actions .btn{width:100%}
  .admin-chapter-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:8px}
  .admin-chapter-nav button{white-space:normal;justify-content:flex-start;padding:10px 11px}
  .admin-subtabs>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:visible;gap:8px}
  .admin-subtabs button{white-space:normal;text-align:center;padding:9px 8px}
  .admin-tools{display:grid;grid-template-columns:1fr;width:100%}
  .admin-tools input,.admin-tools select,.admin-tools .btn{width:100%;min-width:0}
  .person-head{flex-wrap:wrap}
  .card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .card-actions .btn{width:100%;min-width:0}
  .pilotage-progress-layout{grid-template-columns:74px minmax(0,1fr);gap:8px}
  .elevation-progress{top:76px;padding:9px 5px}
  .elevation-ruler{width:45px;height:300px}
  .elevation-progress-title{font-size:.64rem}
  .elevation-summary{font-size:.68rem}
  .elevation-summary strong{font-size:.83rem}
}
@media(max-width:520px){
  .steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .steps .step{font-size:.76rem;min-height:48px;display:flex;align-items:center;justify-content:flex-start;gap:8px;padding:9px 10px;text-align:left}
  .steps .step span{margin:0;flex:0 0 24px;width:24px;height:24px}
  .participant-types{grid-template-columns:1fr}
  .choice-card{min-height:0;padding:16px}
  .choice-card-branded{grid-template-columns:1fr;gap:10px;text-align:center}
  .choice-card-logo-wrap{min-height:70px}
  .choice-card-logo{height:68px;max-width:290px}
  .choice-card-logo-discovery{height:92px;max-width:310px}
  .choice-card-copy{align-items:center}
  .choice-card-copy>span{max-width:31rem}
  .admin-chapter-nav button span{font-size:.82rem}
  .pilotage-progress-layout{grid-template-columns:64px minmax(0,1fr)}
  .elevation-ruler{height:260px;width:40px}
  .elevation-label{font-size:.52rem}
  .day-group-head{align-items:flex-start;flex-direction:column}
  .card-actions{grid-template-columns:1fr}
}



/* ➜ CHAPITRE 20 — PILOTAGE OPÉRATIONNEL, PAIEMENTS ET RELEASE NOTES V1.7.0 */
.ops-alert-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ops-alert{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;border:1px solid var(--border);border-radius:14px;padding:13px;background:#fff}
.ops-alert-count{display:grid;place-items:center;min-width:38px;height:38px;padding:0 8px;border-radius:12px;background:var(--grey-bg);font-size:1.05rem;font-weight:950;color:var(--ink)}
.ops-alert strong{display:block;margin-bottom:4px}.ops-alert p{margin:0;color:var(--muted);font-size:.79rem;line-height:1.4}
.ops-alert-danger{border-color:#f0bcbc;background:#fff7f7}.ops-alert-danger .ops-alert-count{background:var(--red-bg);color:var(--red)}
.ops-alert-warn{border-color:#efd19b;background:#fffaf0}.ops-alert-warn .ops-alert-count{background:var(--orange-bg);color:var(--orange)}
.ops-alert-info{border-color:#bfe4ef;background:#f5fcff}.ops-alert-info .ops-alert-count{background:var(--primary-soft);color:var(--primary-dark)}
.ops-alert-ok{border-color:#bfe0cd;background:#f6fff9}.ops-alert-ok .ops-alert-count{background:var(--green-bg);color:var(--green)}
.coverage-row-button{width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;text-align:left;color:inherit;font:inherit;cursor:pointer;border-radius:0}
.coverage-row-button:hover,.coverage-row-button:focus-visible{background:#f2fbfd;outline:none;box-shadow:inset 3px 0 0 var(--primary)}
.coverage-row-button:last-child{border-bottom:0}
.coverage-ops{display:flex;flex-wrap:wrap;align-items:center;gap:5px;margin-top:7px}
.coverage-open-hint{font-size:.73rem;font-weight:850;color:var(--primary-dark);margin-left:auto}
.slot-detail-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}
.slot-detail-summary{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.slot-action-alert{border:1px solid var(--border);border-radius:14px;padding:13px 14px;margin-bottom:14px;line-height:1.45}
.slot-action-alert strong{display:block}.slot-action-alert ol{margin:8px 0 0;padding-left:21px}.slot-alert-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:10px}
.slot-action-alert-danger{background:var(--red-bg);border-color:#efb9b9;color:#76231c}
.slot-action-alert-ok{background:var(--green-bg);border-color:#b7dec7;color:#14664e}
.slot-participant-list{display:grid;gap:10px}
.slot-participant-card{border:1px solid var(--border);border-radius:14px;padding:13px;background:#fff}
.slot-participant-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:9px}
.payment-method-grid{display:grid;gap:9px;margin-top:14px}
.payment-method-choice{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:flex-start;border:1.5px solid var(--border);border-radius:14px;background:#fff;padding:12px;cursor:pointer}
.payment-method-choice:has(input:checked){border-color:var(--primary);background:var(--primary-soft);box-shadow:0 0 0 2px rgba(0,165,204,.08)}
.payment-method-choice input{width:22px;height:22px;min-height:22px;margin:1px 0 0}
.payment-method-choice span{display:flex;flex-direction:column;gap:4px}.payment-method-choice small{color:var(--muted);font-weight:600;line-height:1.4}
.release-notes-shell{width:min(980px,100%);margin:0 auto;padding:24px 12px 48px}
.release-notes-hero{background:rgba(255,255,255,.97);border-top:5px solid var(--event-yellow);border-radius:20px;padding:22px;box-shadow:var(--shadow);margin-bottom:14px}
.release-notes-list{display:grid;gap:12px}
.release-note-card{background:rgba(255,255,255,.97);border:1px solid rgba(255,255,255,.85);border-radius:16px;padding:16px;box-shadow:0 8px 24px rgba(2,54,68,.16)}
.release-note-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.release-note-head h2{font-size:1.05rem;margin:0}
.release-note-meta{display:flex;flex-wrap:wrap;gap:6px;margin:9px 0}.release-note-card p{margin:8px 0;line-height:1.5}
.release-note-modules{font-size:.78rem;color:var(--muted)}
.release-notes-status{padding:16px;border-radius:14px;background:rgba(255,255,255,.96);color:var(--muted)}
@media(max-width:720px){.ops-alert-grid{grid-template-columns:1fr}.slot-detail-head{flex-direction:column}.slot-detail-summary{justify-content:flex-start}.slot-participant-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.slot-participant-actions .btn{width:100%}.release-note-head{flex-direction:column}}
@media(max-width:520px){.slot-participant-actions{grid-template-columns:1fr}.coverage-open-hint{width:100%;margin-left:0}.version-pill.version-link{display:inline-flex;font-size:.62rem;padding:5px 7px;min-height:32px;white-space:nowrap}.header-actions{gap:5px}}

/* ➜ CHAPITRE 15 — VALIDATION GUIDÉE ET RETOURS OPÉRATIONNELS */
#participant-form input.field-error,#participant-form select.field-error,#registration-consent.field-error,.modal-body input.field-error{background:#fff1f1!important;border-color:#d92d20!important;box-shadow:0 0 0 3px rgba(217,45,32,.13)!important}
#participant-form .field-error-group{background:#fff5f5;border-color:#efb2ad!important;box-shadow:0 0 0 2px rgba(217,45,32,.08);border-radius:12px}
#participant-form label.field-error-group{padding:6px}
#participant-form .choice-radio-grid.field-error-group{padding:10px}
.terms-row.field-error-group,.minor-authorization-row.field-error-group{background:#fff5f5;border:1px solid #efb2ad!important;box-shadow:0 0 0 2px rgba(217,45,32,.08);border-radius:12px;padding:10px}
.notice.compact{margin:12px 0;padding:10px 12px;font-size:.84rem}.notice.compact.warning{background:var(--orange-bg);border-color:#f0d6a3;color:#74500d}

/* ➜ CHAPITRE 26 — NAVIGATION HEADER ADMINISTRATEUR V1.10.0 */
.btn-header.btn-header-return{background:#fff;color:var(--primary);border-color:#bcdde6;box-shadow:0 7px 18px rgba(9,65,82,.10)}
.btn-header.btn-header-return:hover,.btn-header.btn-header-return:focus-visible{background:#eaf8fc;color:var(--caf-dark);outline:none;box-shadow:0 0 0 3px rgba(0,165,204,.14)}

/* ➜ CHAPITRE 27 — DISTINCTION VISUELLE DES MURS ADULTES / ENFANTS — V1.10.1 */
.coverage-row{position:relative;padding-left:16px}
.coverage-row::before{content:"";position:absolute;left:0;top:7px;bottom:7px;width:4px;border-radius:999px;background:#15a0bf}
.coverage-row.coverage-wall-child::before{background:#79a942}
.coverage-row.coverage-wall-child{background:linear-gradient(90deg,rgba(121,169,66,.08),rgba(255,255,255,0) 34%)}
.coverage-row.coverage-wall-adult{background:linear-gradient(90deg,rgba(21,160,191,.08),rgba(255,255,255,0) 34%)}
.coverage-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.coverage-wall-badge,.slot-audience{display:inline-flex;align-items:center;width:max-content;padding:3px 8px;border-radius:999px;font-size:.7rem;font-weight:850;letter-spacing:.01em}
.coverage-wall-badge.adult,.slot-audience-adult{background:#e6f7fb;color:#087a98;border:1px solid #b9e5ef}
.coverage-wall-badge.child,.slot-audience-child{background:#f1f8e8;color:#557e21;border:1px solid #d5e9b9}
.slot-card-child{box-shadow:inset 4px 0 0 #79a942}
.slot-card-adult{box-shadow:inset 4px 0 0 #15a0bf}

/* ➜ CHAPITRE 28 — PILOTAGE : ACCORDÉONS PAR JOURNÉE ET PÉRIODES — V1.11.0 */
.pilotage-coverage-section{overflow:visible}
.pilotage-day-accordions{display:grid;gap:12px}
.pilotage-day-accordion{--day-accent:#0f8fb0;--day-soft:#eaf8fc;border:1px solid #c7e5ed;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 8px 20px rgba(9,65,82,.07)}
.pilotage-day-accordion.pilotage-day-tone-1{--day-accent:#5b8f32;--day-soft:#f1f8e8;border-color:#d7e7c5}
.pilotage-day-summary{display:grid;grid-template-columns:minmax(0,1fr) auto 20px;align-items:center;gap:12px;padding:14px 16px;background:linear-gradient(135deg,var(--day-soft),#fff);cursor:pointer;list-style:none;min-height:72px;user-select:none}
.pilotage-day-summary::-webkit-details-marker{display:none}
.pilotage-day-summary:focus-visible{outline:3px solid rgba(0,165,204,.24);outline-offset:-3px}
.pilotage-day-summary-main{display:flex;align-items:center;gap:11px;min-width:0}
.pilotage-day-marker{width:11px;height:44px;border-radius:999px;background:var(--day-accent);flex:0 0 auto}
.pilotage-day-kicker{display:block;font-size:.68rem;line-height:1;text-transform:uppercase;letter-spacing:.09em;font-weight:850;color:var(--muted);margin-bottom:5px}
.pilotage-day-summary h3{margin:0;font-size:1.08rem;text-transform:capitalize}
.pilotage-day-summary-metrics{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.pilotage-day-chevron{width:12px;height:12px;border-right:2px solid var(--day-accent);border-bottom:2px solid var(--day-accent);transform:rotate(45deg);transition:transform .18s ease;margin-right:2px}
.pilotage-day-accordion[open]>.pilotage-day-summary{border-bottom:1px solid var(--border)}
.pilotage-day-accordion[open]>.pilotage-day-summary .pilotage-day-chevron{transform:rotate(225deg);margin-top:6px}
.pilotage-day-body{display:grid;gap:12px;padding:14px;background:#f9fcfd}
.pilotage-period-group{--period-accent:#16a0bf;border:1px solid var(--border);border-radius:15px;background:#fff;overflow:hidden}
.pilotage-period-night{--period-accent:#59659a}
.pilotage-period-morning{--period-accent:#d39a22}
.pilotage-period-afternoon{--period-accent:#16a0bf}
.pilotage-period-evening{--period-accent:#a56479}
.pilotage-period-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:linear-gradient(90deg,color-mix(in srgb,var(--period-accent) 9%,#fff),#fff 46%);border-bottom:1px solid var(--border)}
.pilotage-period-title{display:flex;align-items:center;gap:9px;min-width:0}
.pilotage-period-dot{width:9px;height:9px;border-radius:999px;background:var(--period-accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--period-accent) 14%,transparent)}
.pilotage-period-title h4{margin:0;color:var(--ink);font-size:.96rem}
.pilotage-period-title small{display:block;color:var(--muted);font-weight:650;margin-top:2px}
.pilotage-period-metrics{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.pilotage-period-metrics span{display:inline-flex;align-items:center;min-height:26px;padding:4px 8px;border-radius:999px;background:#f4f8f9;color:var(--muted);font-size:.72rem;font-weight:750;border:1px solid #e1edf0}
.pilotage-period-body{padding:3px 12px 8px}
.pilotage-period-body .coverage-row:first-child{margin-top:4px}
@media(max-width:720px){.pilotage-day-summary{grid-template-columns:minmax(0,1fr) 18px}.pilotage-day-summary-metrics{grid-column:1 / -1;justify-content:flex-start;padding-left:22px}.pilotage-day-chevron{grid-column:2;grid-row:1;align-self:center}.pilotage-period-head{align-items:flex-start;flex-direction:column}.pilotage-period-metrics{justify-content:flex-start}.pilotage-day-body{padding:10px}.pilotage-period-body{padding-left:9px;padding-right:9px}}
@media(max-width:480px){.pilotage-day-summary{padding:12px}.pilotage-day-summary-metrics{padding-left:0}.pilotage-day-summary-metrics .tag{font-size:.67rem}.pilotage-period-metrics span{font-size:.68rem}}



/* ➜ CHAPITRE 19 — GUIDAGE DES CRÉNEAUX PUBLICS V1.12.0 */
.slot-guide{display:grid;gap:10px;margin:12px 0 16px;padding:13px;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.70)}
.slot-guide-step{display:flex;align-items:center;gap:10px;color:var(--ink)}
.slot-guide-step>span{display:grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border-radius:999px;background:var(--primary);color:white;font-weight:900}
.slot-guide-step>div{display:flex;flex-direction:column;gap:1px;min-width:0}
.slot-guide-step small{color:var(--muted)}
.slot-filter-row{display:flex;gap:8px;flex-wrap:wrap}
.slot-filter-chip{min-height:48px;border:1px solid var(--border);border-radius:13px;background:#fff;color:var(--ink);padding:8px 12px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;cursor:pointer;font:inherit;text-align:left;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}
.slot-filter-chip strong{font-size:.88rem}.slot-filter-chip span{font-size:.7rem;color:var(--muted);font-weight:700}
.slot-filter-chip.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 7px 18px rgba(15,107,134,.15)}
.slot-filter-chip.active span{color:rgba(255,255,255,.86)}
.slot-filter-day{min-width:150px}.slot-filter-period{min-width:150px}
.slot-recommendation{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 12px;border-radius:13px;background:linear-gradient(90deg,#fff7dc,#fffdf4);border:1px solid #f1d98a;color:#6f5410}
.slot-recommendation>div{min-width:0}
.slot-recommendation strong,.slot-recommendation span{display:block}.slot-recommendation span{margin-top:2px;font-size:.78rem;line-height:1.35}
.slot-recommendation-full{background:#f5f7f8;border-color:#dfe7e9;color:var(--muted)}
.slot-title-line{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.slot-recommended-badge{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;background:#fff3bf;border:1px solid #efd270;color:#795800;font-size:.7rem;font-weight:900}
.slot-card.slot-recommended:not(.selected){border-color:#e6c85e;box-shadow:inset 4px 0 0 #e6c85e}
.slot-card.slot-disabled{opacity:.58;filter:saturate(.45);background:#f3f5f6;border-color:#dce3e5}
.slot-card.slot-disabled .slot-checkbox{cursor:not-allowed}

/* ➜ CHAPITRE 20 — SEGMENTATION HORAIRE COMMUNE */
.pilotage-period-early{--period-accent:#7082b6}
.pilotage-period-morning{--period-accent:#d39a22}
.pilotage-period-afternoon{--period-accent:#16a0bf}
.pilotage-period-evening{--period-accent:#a56479}
.pilotage-period-night{--period-accent:#48547f}
.period-alert-count{color:#8a5b00!important;background:#fff5d9!important;border-color:#eed79c!important}

@media(max-width:720px){
  .slot-guide{padding:11px}.slot-filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.slot-filter-chip{min-width:0;width:100%}.slot-recommendation{align-items:stretch;flex-direction:column}.slot-recommendation .btn{width:100%}
}
@media(max-width:420px){.slot-filter-row{grid-template-columns:1fr}.slot-filter-chip{min-height:44px}}


/* ➜ CHAPITRE 29 — NAVIGATION STICKY JOURNÉE / PÉRIODE — V1.13.0 */
.coverage-sticky-nav{position:sticky;top:calc(var(--header-h) + 8px);z-index:38;display:grid;gap:8px;margin:0 0 14px;padding:10px;border:1px solid #c7e5ed;border-radius:16px;background:rgba(248,253,254,.94);box-shadow:0 10px 26px rgba(9,65,82,.12);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.coverage-nav-caption{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:0 3px;color:var(--ink)}
.coverage-nav-caption strong{font-size:.84rem}.coverage-nav-caption span{font-size:.72rem;color:var(--muted);font-weight:650}
.coverage-nav-scroller{display:flex;gap:7px;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:thin;padding:1px 2px 4px;-webkit-overflow-scrolling:touch}
.coverage-nav-chip{flex:0 0 auto;min-height:42px;border:1px solid #d1e7ec;border-radius:12px;background:#fff;color:var(--ink);padding:7px 11px;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:1px;font:inherit;cursor:pointer;transition:.15s ease}
.coverage-nav-chip strong{font-size:.8rem;white-space:nowrap}.coverage-nav-chip span{font-size:.66rem;color:var(--muted);font-weight:700;white-space:nowrap}
.coverage-nav-chip:hover:not(:disabled),.coverage-nav-chip:focus-visible{border-color:#8ccddd;background:#f0fbfe;outline:none;box-shadow:0 0 0 3px rgba(0,165,204,.12)}
.coverage-nav-chip.active{background:linear-gradient(135deg,var(--caf),var(--caf-dark));border-color:transparent;color:#fff;box-shadow:0 7px 16px rgba(15,107,134,.18)}
.coverage-nav-chip.active span{color:rgba(255,255,255,.86)}
.coverage-nav-chip:disabled{opacity:.38;cursor:not-allowed;background:#f2f5f6}
.coverage-nav-period{align-items:center;min-width:112px}.coverage-nav-day{min-width:150px}
.pilotage-day-accordion,.pilotage-period-group{scroll-margin-top:calc(var(--header-h) + 138px)}
@media(max-width:720px){.coverage-sticky-nav{top:calc(var(--header-h) + 5px);margin-left:-2px;margin-right:-2px;padding:8px;border-radius:14px}.coverage-nav-caption span{display:none}.coverage-nav-day{min-width:132px}.coverage-nav-period{min-width:104px}.pilotage-day-accordion,.pilotage-period-group{scroll-margin-top:calc(var(--header-h) + 130px)}}

/* ➜ CHAPITRE 30 — SOUS-MODES DE PAIEMENT SUR PLACE — V1.13.0 */
.payment-method-subchoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:-2px 0 4px 32px;padding:10px;border-radius:12px;background:#f7fbfc;border:1px dashed #c9e2e8}
.payment-method-subchoices[hidden]{display:none}
.payment-method-subchoices label{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:10px;background:#fff;font-weight:800;cursor:pointer}
.payment-method-subchoices label:has(input:checked){border-color:var(--primary);background:var(--primary-soft)}
.payment-method-subchoices input{width:20px;height:20px;min-height:20px;margin:0}
@media(max-width:520px){.payment-method-subchoices{grid-template-columns:1fr;margin-left:0}}

/* =========================================================================================
 * ========================================================================================= */

/* ➜ CHAPITRE 24 — CRENEAUX CHRONOLOGIQUES ET COMPARAISON DES MURS (V1.14.0) */
.slot-card.slot-already-covered:not(.selected){margin-left:clamp(10px,3vw,25px);opacity:.83;border-style:dashed}
.coverage-two-walls{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
.coverage-wall-lane{min-width:0}.coverage-wall-lane>h5{margin:10px 0 6px;font-size:.9rem;color:var(--caf-deep)}
.coverage-two-walls .coverage-row{display:block;padding:11px 10px 11px 16px;margin:8px 0;border:1px solid var(--border);border-radius:12px;min-width:0}
.coverage-two-walls .coverage-title-line{flex-wrap:wrap;overflow-wrap:anywhere}
.coverage-progress-meta{display:flex;gap:10px;align-items:center;margin-top:10px}.coverage-progress-meta .coverage-bar{flex:1;min-width:0}.coverage-progress-meta strong{font-size:.8rem}
@media(max-width:680px){.coverage-two-walls{grid-template-columns:minmax(0,1fr)}.coverage-two-walls .coverage-wall-lane>h5{position:sticky;top:0;background:#eefbff;padding:8px;z-index:1}}

/* ➜ CHAPITRE — CHOIX PARENTAL VOLONTAIRE, ADAPTÉ AU MOBILE */
.parental-consent-dialog { line-height: 1.6; font-size: 1rem; }
.parental-consent-dialog p { margin: 0 0 1rem; }
.parental-consent-actions { display: grid; gap: 0.85rem; margin-top: 1.35rem; }
.parental-consent-actions button { min-height: 52px; white-space: normal; padding: 0.85rem 1rem; font-weight: 700; }

/* ➜ CHAPITRE ADMIN — Accès FFCAM tactile et responsive. */
.admin-ffcam-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-height:44px}
.admin-ffcam-link img{height:28px;width:28px;object-fit:contain}
@media(max-width:720px){.admin-top-actions{display:flex;flex-wrap:wrap}.admin-top-actions>*{flex:1 1 145px}}

/* ➜ CHAPITRE ACCUEIL SOLIDAIRE — Mobile-first, carte compacte */
.association-welcome{display:flex;flex-direction:column;gap:16px;margin:14px 0 22px;padding:clamp(18px,3vw,28px);border-left:5px solid var(--event-teal,#137f7c)}
.association-welcome.hidden{display:none}
.association-welcome h2{margin:4px 0 8px;font-size:clamp(1.25rem,3vw,1.8rem)}
.association-welcome p{line-height:1.55}
.association-welcome-actions{display:flex;flex-wrap:wrap;gap:10px}
.association-welcome-actions .btn{min-height:44px}
.discovery-day-guidance{padding:14px 16px;border-radius:12px;background:#e9f5f3;border:1px solid #9dcac4;color:#194e48;font-weight:600;margin-bottom:12px}
.event-map-frame{height:190px}
@media(min-width:760px){.association-welcome{flex-direction:row;align-items:center;justify-content:space-between}.association-welcome-actions{min-width:205px;flex-direction:column}.event-map-frame{height:220px}}
@media(max-width:560px){.association-welcome-actions{flex-direction:column}.association-welcome-actions .btn{width:100%;text-align:center}.event-map-frame{height:175px}}
/* ➜ CHAPITRE PARAMÉTRAGE — Navigation ergonomique, sans tableau horizontal */
.btn-cache{background:#e8f6ef;border:1px solid #91cbb2;color:#176b4a;font-weight:700;min-height:44px}
.btn-cache:hover{background:#d4f0e2}
.admin-settings-layout{display:grid;grid-template-columns:minmax(180px,235px) minmax(0,1fr);gap:18px;margin-top:20px}
.admin-settings-nav{display:flex;flex-direction:column;gap:6px;min-width:0}
.admin-settings-tab{display:flex;justify-content:space-between;align-items:center;gap:8px;text-align:left;border:1px solid #d2e2e7;border-radius:10px;background:#f7fbfc;color:#254b59;padding:12px;min-height:48px;cursor:pointer;font:inherit;font-weight:700}
.admin-settings-tab.active{background:#dff5fa;border-color:#1b9ac2;color:#087395}
.admin-settings-tab small{background:#fff;border-radius:20px;padding:3px 8px;color:#59737b}
.admin-settings-content{min-width:0}
.admin-settings-content-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.admin-settings-content-head h3{margin:0}
.admin-settings-items{display:grid;gap:9px}
.admin-settings-item{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid #dce8eb;border-radius:12px;padding:14px;background:#fff;min-width:0}
.admin-settings-item-main{min-width:0;overflow-wrap:anywhere}
.admin-settings-item-main strong{display:block;text-transform:capitalize}
.admin-settings-item-main small{display:block;color:#78909a;font-size:11px;margin-top:4px}
.admin-settings-item-main p{font-size:13px;color:#627782;margin:8px 0 0}
.admin-settings-item-value{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;overflow-wrap:anywhere;text-align:right;min-width:0;max-width:48%}
.admin-settings-item-value span{font-weight:600}
.association-logo-link{display:inline-flex;align-items:center;justify-content:center;min-height:60px;padding:6px;border-radius:12px;background:#fff}
.association-logo-link img{display:block;max-width:165px;max-height:100px;object-fit:contain}
@media(max-width:760px){.admin-settings-layout{grid-template-columns:minmax(0,1fr)}.admin-settings-nav{flex-direction:row;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.admin-settings-tab{flex:0 0 auto;scroll-snap-align:start}.admin-settings-item{align-items:stretch;flex-direction:column}.admin-settings-item-value{max-width:100%;justify-content:space-between;text-align:left}.admin-settings-item-value .btn{min-height:42px}}


/* ➜ CHAPITRE 22 — CONSIGNES CARTE DÉCOUVERTE : JOURNÉE UNIQUE */
/* Paragraphes distincts pour une lecture claire sur PC, tablette et téléphone. */
.discovery-day-guidance p{margin:0;line-height:1.55}
.discovery-day-guidance ul{margin:10px 0 12px;padding-left:24px;display:grid;gap:6px;line-height:1.5}
.discovery-day-guidance li{padding-left:3px}
/* La dernière phrase reste rouge, soulignée et très lisible même sur fond clair. */
.discovery-day-guidance .discovery-day-warning{color:#b42318;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;font-weight:800}


/* ➜ CHAPITRE 21 — SCANNER QR : PARCOURS ACCUEIL TACTILE ET LISIBLE */
.qr-overlay{background:#071e28}.qr-header{padding:14px max(16px,env(safe-area-inset-left));background:#0c3647;box-shadow:0 3px 14px rgba(0,0,0,.22)}
.qr-header h2{font-size:1.15rem}.qr-header small{display:block;color:#c7eaf3;font-size:.74rem;margin-top:3px}
.qr-header .icon-btn{min-width:44px;min-height:44px;background:#e8f5f9;color:#0d465b;border-radius:13px}
.qr-body{width:min(860px,100%);margin:0 auto;overflow-y:auto;overscroll-behavior:contain}
.qr-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px 12px 8px;background:#0d2e3b}
.qr-mode-btn{min-height:54px;padding:10px 8px;border:2px solid #436574;border-radius:14px;color:#d8edf4;background:#163b4b;font-size:.91rem;font-weight:850;cursor:pointer}
.qr-mode-btn.active{color:#073346;background:#b8f1ff;border-color:#29b6d5;box-shadow:0 0 0 2px rgba(65,191,224,.15)}
.qr-mode-btn:focus-visible,.qr-next-btn:focus-visible{outline:3px solid #fff;outline-offset:2px}
.qr-reader{flex:1 1 270px;min-height:190px;max-height:45vh;border-radius:0;background:#000}
.qr-controls{padding:14px 12px max(18px,env(safe-area-inset-bottom));gap:11px;background:#0e2e3a}
.qr-result{padding:15px;border-radius:16px;border:2px solid transparent;display:grid;gap:8px;box-shadow:0 6px 20px rgba(0,0,0,.12)}
.qr-result-title{font-size:1.12rem;line-height:1.3}.qr-result p{margin:0;font-size:.93rem;line-height:1.5}.qr-result small{opacity:.86;overflow-wrap:anywhere}
.qr-result-success{background:#dcfce7;border-color:#6ee7b7;color:#065f46}
.qr-result-warning{background:#fff0d4;border-color:#fbbf24;color:#7c2d12}
.qr-result-error{background:#fee2e2;border-color:#fca5a5;color:#7f1d1d}
.qr-result-payment{justify-self:start;background:#fff;color:#07546d;border:1px solid #9bd7e6;min-height:44px}
.qr-next-btn{width:100%;min-height:52px;font-weight:850;font-size:1rem}
.qr-status{font-size:.9rem;line-height:1.4;font-weight:700;color:#d9eef5}
.qr-status-error{color:#ffc7c7}.qr-status-warning{color:#ffe3a3}.qr-status-success{color:#b5f8cf}
.qr-routes-wrap{grid-template-columns:1fr auto;align-items:end;gap:10px;background:#1a4858;border:1px solid #4d8392}
.qr-routes-wrap label{font-weight:750;color:#fff}.qr-routes-wrap input{width:100%;margin-top:6px;min-height:48px;font-size:1.1rem}
.qr-routes-wrap .btn{min-height:48px}.qr-control-row .btn{min-height:45px}
.qr-manual-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.qr-manual-row input{min-width:0;min-height:47px}
.qr-manual-row .btn{min-height:47px}
@media(max-width:620px){.qr-header{padding:10px 12px}.qr-header h2{font-size:1rem}.qr-mode-btn{font-size:.8rem;min-height:54px}.qr-reader{flex:0 0 auto;height:34vh;min-height:170px;max-height:310px}.qr-controls{padding:11px 12px max(14px,env(safe-area-inset-bottom))}.qr-routes-wrap{grid-template-columns:1fr}.qr-control-row{display:grid;grid-template-columns:1fr 1fr}.qr-control-row .btn{font-size:.8rem;padding:9px 7px}.qr-manual-row .btn{padding:10px}}
@media(max-height:650px){.qr-reader{height:25vh;min-height:130px}.qr-controls{gap:8px}}

/* ➜ CHAPITRE 22 — RECHERCHE BÉNÉVOLES ET DOSSIER MIS EN ÉVIDENCE */
.pilotage-person-search{margin:14px 0;background:linear-gradient(135deg,#f3fcff,#fff);border:1px solid #b8e1ed}
.pilotage-search-label{display:block;font-weight:800;margin:8px 0 5px;color:#184b5b}
#pilotage-person-query{width:100%;min-height:50px;border:2px solid #aadce9;border-radius:12px;padding:12px 15px;font-size:1rem;background:#fff}
.pilotage-person-results{display:grid;gap:9px;margin-top:12px}
.pilotage-search-person{display:grid;gap:8px;padding:12px;background:#fff;border:1px solid #c9e5ed;border-radius:14px}
.pilotage-search-person strong{display:block;font-size:1rem}
.pilotage-search-person small{display:block;color:#657e89;margin-top:4px;overflow-wrap:anywhere}
.pilotage-search-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.pilotage-search-actions .btn{min-height:44px;white-space:normal;text-align:left}
.registration-focused{border:3px solid #00a5cc!important;box-shadow:0 0 0 4px #c4f2ff,0 12px 26px rgba(4,105,136,.18)}
.qr-result-payment{width:100%;min-height:52px;white-space:normal;text-align:center;font-weight:850}
@media(max-width:620px){.pilotage-search-actions{display:grid;grid-template-columns:1fr}.pilotage-search-actions .btn{width:100%}}

/* ➜ CHAPITRE 23 — PWA, SAFE AREAS ET SPLASH ANIMÉ DE GRIMPE */
.pwa-install-button{min-height:42px;white-space:nowrap}
.pwa-launch{display:none;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 20%,#0a7797,#052b40 68%,#041e30);color:white;padding:24px;text-align:center}
.pwa-launch-scene{width:min(90vw,350px);display:grid;justify-items:center;gap:12px}
.pwa-launch-scene img{width:108px;height:108px;border-radius:26px;box-shadow:0 14px 32px #001a2a99;animation:pwa-climb .95s ease-in-out both}
.pwa-launch-title{font-weight:950;font-size:1.8rem;letter-spacing:.02em}
.pwa-launch-subtitle{font-size:.95rem;color:#c8f3ff}
.pwa-launch-rope{width:190px;height:7px;border-radius:9px;background:#ffffff2d;overflow:hidden;margin-top:14px}
.pwa-launch-rope span{display:block;width:36%;height:100%;border-radius:9px;background:linear-gradient(90deg,#ffdc00,#fb854b);animation:pwa-rope 1.2s ease-in-out infinite alternate}
@keyframes pwa-climb{from{opacity:.35;transform:translateY(26px) scale(.93)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes pwa-rope{from{transform:translateX(0)}to{transform:translateX(330%)}}
@media(display-mode:standalone){body.pwa-starting .pwa-launch{display:flex}}
@media(prefers-reduced-motion:reduce){.pwa-launch-scene img,.pwa-launch-rope span{animation:none}}
@media(max-width:520px){.pwa-install-button{padding:8px 10px;font-size:.78rem}}

/* ➜ CHAPITRE 28 — RACCOURCI SCANNER DANS L'EN-TÊTE ADMINISTRATEUR (V1.16.1)
   La lecture QR est l'action prioritaire des bénévoles : elle précède les actions techniques.
   Une seule mise en page responsive, sans scroll horizontal et avec grande cible tactile. */
.admin-top-controls{display:flex;flex-direction:column;gap:10px;min-width:0;align-items:stretch}
.admin-scan-shortcut-row{display:flex;justify-content:flex-end;min-width:0}
.btn-admin-scan{width:100%;min-height:58px;justify-content:flex-start;gap:12px;padding:10px 15px;border:1px solid #0b6b84;border-radius:15px;background:linear-gradient(125deg,#07536a,#078db0);color:#fff;text-align:left;box-shadow:0 8px 20px rgba(3,77,103,.19)}
.btn-admin-scan:hover,.btn-admin-scan:focus-visible{background:linear-gradient(125deg,#064b61,#087b9c);box-shadow:0 0 0 3px rgba(0,165,204,.17),0 9px 22px rgba(3,77,103,.20)}
.btn-admin-scan .admin-scan-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:#ffffff2c;border:1px solid #ffffff44;font-size:1.45rem;line-height:1}
.btn-admin-scan .admin-scan-label{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;line-height:1.15}
.btn-admin-scan .admin-scan-label strong{font-size:.98rem;letter-spacing:.005em}
.btn-admin-scan .admin-scan-label small{font-size:.73rem;color:#d9f7ff;font-weight:600}
.btn-admin-scan .admin-scan-arrow{margin-left:auto;font-size:1.15rem;font-weight:900}
@media(min-width:900px){.admin-top-controls{max-width:660px}.admin-scan-shortcut-row .btn-admin-scan{width:min(100%,340px)}}
@media(max-width:720px){.admin-top-controls{width:100%}.admin-scan-shortcut-row{width:100%}.btn-admin-scan{min-height:64px}.admin-top-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.admin-top-actions>*{min-width:0;width:100%;white-space:normal}}
@media(max-width:370px){.admin-top-actions{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.btn-admin-scan{transition:none}}

/* ➜ CHAPITRE 21 — ZONES DE SECURITE iOS ET PWA
 * Sur iPhone installe en PWA, la barre systeme occupe la partie superieure.
 * Le bandeau reste sticky, mais ses commandes passent sous la Dynamic Island.
 * Sur Android et ordinateur, la disposition actuelle est conservee.
 */
@supports (-webkit-touch-callout: none) {
  /* Safari iOS avec viewport-fit=cover : respecter les marges du systeme. */
  .app-header {
    padding-top: calc(10px + env(safe-area-inset-top, 0px));
  }
  /* En PWA autonome, prevoir une marge minimale si iOS renvoie zero. */
  @media (display-mode: standalone) {
    :root { --ios-pwa-header-extra: max(env(safe-area-inset-top, 0px), 48px); }
    .app-header { padding-top: calc(10px + var(--ios-pwa-header-extra)); }
    /* Decaler les navigations secondaires collantes sous le bandeau agrandi. */
    .coverage-sticky-nav { top: calc(var(--header-h) + var(--ios-pwa-header-extra) + 8px); }
    .admin-chapter-nav { scroll-margin-top: calc(var(--header-h) + var(--ios-pwa-header-extra) + 12px); }
    .modal-card { max-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)); }
  }
}

/* ➜ CHAPITRE — CONTRÔLE VISUEL DES MURS (FICHE PARTICIPANT) */
.participant-wall-check{display:block;margin-top:8px;padding:8px 10px;border-radius:9px;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.participant-wall-check-success{color:#076a4d;background:#e9fbf3;border:1px solid #b5e9d1}
.participant-wall-check-danger{color:#9d2020;background:#fff0f0;border:1px solid #efb4b4}
.participant-wall-check-warn{color:#82500b;background:#fff6e5;border:1px solid #e9d29b}

/* ➜ CHAPITRE — PILOTAGE : COMPTEURS ET ALERTES ACCESSIBLES */
.stat-card-action{font:inherit;color:inherit;text-align:left;cursor:pointer;border:1px solid #b9dfeb;transition:box-shadow .18s ease,transform .18s ease,background .18s ease}
.stat-card-action:hover,.ops-alert-action:hover{box-shadow:0 7px 20px rgba(0,73,94,.13);transform:translateY(-2px)}
.stat-card-action:focus-visible,.ops-alert-action:focus-visible{outline:3px solid #087f9f;outline-offset:3px}
.stat-open-hint,.ops-open-hint{display:block;font-size:.76rem;font-weight:700;color:#087f9f;margin-top:8px}
.ops-alert-action{font:inherit;color:inherit;width:100%;text-align:left;cursor:pointer;display:flex;align-items:flex-start;gap:12px;border-radius:12px;transition:box-shadow .18s ease,transform .18s ease}
.ops-alert-action .ops-open-hint{color:inherit;text-decoration:underline;text-underline-offset:3px}
.pilotage-filter-modal{display:flex;flex-direction:column;gap:10px;min-width:0}
.pilotage-filter-modal input[type="search"]{width:100%;min-height:48px;padding:10px 14px;border:1px solid #a6d6e5;border-radius:12px;font:inherit}
.pilotage-filter-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px;max-height:min(66dvh,750px);overflow:auto;overscroll-behavior:contain;padding:4px 2px 12px}
.pilotage-filter-list .person-card{min-width:0;overflow-wrap:anywhere}
.pilotage-filter-list .card-actions,.slot-participant-actions{display:flex;flex-wrap:wrap;gap:6px}
@media(max-width:600px){.pilotage-filter-list{grid-template-columns:minmax(0,1fr);max-height:65dvh}.stat-card-action{min-height:88px}}

/* ➜ CHAPITRE SEC-001 — Comptes et habilitations, tactile et responsive. */
.security-user-filter{width:100%;max-width:440px;margin:8px 0 14px;min-height:44px}
.security-users-list{display:grid;gap:9px}.security-user-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--border);background:white;border-radius:14px;padding:12px}
.security-user-row>div:first-child{flex:1 1 190px;min-width:0}.security-user-row small,.security-permission-row small{display:block;color:var(--muted);font-size:.78rem;overflow-wrap:anywhere}.security-user-tags{display:flex;flex-wrap:wrap;gap:6px}.security-user-row .btn{min-height:44px}
.security-profile{display:grid;gap:15px}.security-block{border:1px solid var(--border);border-radius:15px;padding:14px;background:#fbfdfe}.security-block h3{margin:0 0 12px}.security-block label{display:block;margin:8px 0}.security-block select{width:100%;min-height:44px}
.security-permission-group{border:1px solid #d7e8ed;border-radius:12px;margin:12px 0;padding:10px;min-width:0}.security-permission-group legend{font-weight:800;color:var(--primary);padding:0 7px}.security-permission-row{display:flex;justify-content:space-between;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #e9f0f2}.security-permission-row:last-child{border-bottom:0}.security-permission-row>div{min-width:0;flex:1}.security-permission-row strong{font-size:.8rem;overflow-wrap:anywhere}.security-permission-row select{width:140px;max-width:48%;min-height:44px;font-size:.85rem}.security-permission-row .tag{flex-shrink:0}
.security-audit-list{max-height:230px;overflow:auto}.security-audit-row{padding:10px 0;border-bottom:1px solid var(--border)}.security-audit-row small{color:var(--muted)}.security-audit-row pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.72rem}.security-password-line{display:flex;gap:7px}.security-password-line input{flex:1;min-width:0}.security-password-line button{min-width:48px}
@media(max-width:480px){.security-user-row .btn{width:100%}.security-permission-row select{width:116px}.security-block{padding:10px}}



/* ➜ CHAPITRE SEC-001 — Matrice des profils : lisible au doigt et au clavier */
.security-role-editor{display:grid;gap:12px;min-width:0}
.security-role-editor>label{display:grid;gap:6px;font-weight:700}
.security-role-editor>label select{min-height:48px;width:100%;max-width:430px}
.security-matrix-help{font-size:.9rem;color:var(--muted);line-height:1.5}
.security-matrix-permission{display:flex;align-items:center;gap:12px;min-height:50px;padding:8px 3px;border-bottom:1px solid #e9f0f2;cursor:pointer}
.security-matrix-permission:last-child{border-bottom:0}
.security-matrix-permission input{width:21px;height:21px;min-width:21px;accent-color:var(--primary)}
.security-matrix-permission span{min-width:0;display:grid;gap:2px}
.security-matrix-permission strong{font-size:.91rem;line-height:1.35}
.security-matrix-permission small{font-size:.72rem;color:var(--muted);overflow-wrap:anywhere}
.security-matrix-permission.is-locked{opacity:.68;cursor:default}
.security-matrix-audit{border-top:1px solid var(--border);padding-top:12px}
.security-matrix-history{padding:8px 0;border-bottom:1px solid var(--border)}
.security-matrix-history pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.72rem}
@media(max-width:600px){.security-matrix-permission{min-height:54px}.security-role-editor .modal-actions{display:grid;grid-template-columns:1fr}.security-role-editor .modal-actions button{min-height:48px}}


/* ➜ CHAPITRE 19 — FICHES INSCRITS : LECTURE AÉRÉE ET CRÉNEAUX VISIBLES */
/* Ces classes s'appliquent à Gestion et aux listes du Pilotage, sans changer les autres cartes. */
.registration-person-card{display:flex;flex-direction:column;gap:0;min-width:0;background:rgba(255,255,255,.96)}
.registration-person-card .person-head{align-items:flex-start;gap:12px}
.registration-person-card .person-head>div:first-child{min-width:0;overflow-wrap:anywhere}
.registration-person-card .person-head>div:first-child>strong{font-size:1.04rem;line-height:1.35;color:var(--ink)}
.registration-person-card .person-head .muted{margin-top:5px;font-size:.77rem;overflow-wrap:anywhere}
.registration-person-card .person-head>.tag{flex-shrink:0}
.registration-person-card .person-meta{gap:7px;margin:13px 0}
.registration-info{display:grid;gap:8px;margin:3px 0 14px;min-width:0}
.registration-info-row{display:grid;gap:4px;min-width:0;padding:9px 11px;background:#f4f9fb;border:1px solid #e3eff3;border-radius:10px}
.registration-info-label{font-size:.73rem;font-weight:800;color:#526a75;line-height:1.25}
.registration-info-value{font-size:.91rem;line-height:1.45;color:#17323d;font-weight:600;overflow-wrap:anywhere;word-break:normal}
.registration-info-club{background:#eef9fc;border-color:#cce8f0}
.registration-info-club .registration-info-value{font-weight:750}
.registration-slots{margin:0 0 14px;padding:12px;border:1px solid #bcdfe9;border-left:4px solid var(--primary);border-radius:12px;background:#f1fbfd;min-width:0}
.registration-slots h3{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0 0 9px;font-size:.94rem;line-height:1.3;color:var(--caf-deep)}
.registration-slots-count{display:inline-flex;align-items:center;justify-content:center;min-width:23px;height:23px;padding:0 6px;background:#d8f1f8;border-radius:50px;font-size:.77rem}
.registration-slots-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.registration-slot-item{display:grid;gap:4px;padding:9px 10px;background:#fff;border:1px solid #dcecf0;border-radius:9px;min-width:0}
.registration-slot-item strong{font-size:.88rem;line-height:1.4;color:#17323d;overflow-wrap:anywhere}
.registration-slot-wall{font-size:.8rem;font-weight:700;color:#4c6672;overflow-wrap:anywhere}
.registration-slots-empty{margin:0;font-size:.85rem;color:#526a75}
.registration-person-card .card-actions{margin-top:auto;padding-top:12px;border-top:1px solid #e3eef2;gap:8px}
.registration-person-card .card-actions .btn{min-height:40px}
@media(max-width:480px){.registration-person-card{padding:14px}.registration-info-row{padding:10px}.registration-slots{padding:11px}}

/* ➜ CHAPITRE 24 — CRÉNEAUX COMPACTS SUR LES FICHES INSCRITS */
/* Un seul créneau visible, les autres se déplient à la demande. */
.registration-slots-more{margin-top:9px;min-width:0}
.registration-slots-toggle{display:flex;align-items:center;justify-content:space-between;gap:9px;min-height:42px;padding:9px 11px;border:1px solid #a8dbe8;border-radius:10px;background:#e2f6fb;color:var(--caf-deep);font-size:.83rem;font-weight:800;line-height:1.35;cursor:pointer;list-style:none;user-select:none}
.registration-slots-toggle::-webkit-details-marker{display:none}
.registration-slots-toggle::marker{content:''}
.registration-slots-toggle:hover{background:#d4f1f9}
.registration-slots-toggle:focus-visible{outline:3px solid var(--primary);outline-offset:2px}
.registration-slots-toggle-open{display:none}
.registration-slots-more[open] .registration-slots-toggle-open{display:inline}
.registration-slots-more[open] .registration-slots-toggle-closed{display:none}
.registration-slots-chevron{display:inline-block;flex:0 0 auto;font-size:1.25rem;line-height:1;transition:transform .16s ease}
.registration-slots-more[open] .registration-slots-chevron{transform:rotate(180deg)}
.registration-slots-extra{margin-top:8px}
@media(prefers-reduced-motion:reduce){.registration-slots-chevron{transition:none}}


/* ➜ CHAPITRE 26 — CRÉNEAUX RÉSERVÉS À L'ENCADREMENT */
.slot-card.slot-disabled:has(.slot-lock-badge){opacity:1;background:#f2f3f5;border-color:#cbd3d9;filter:none}
.slot-card.slot-disabled:has(.slot-lock-badge) .slot-copy{color:#5b6870}
.slot-lock-badge{display:inline-flex;align-items:center;gap:4px;background:#e2e7eb;color:#344651;border:1px solid #c1ccd2;border-radius:9px;padding:5px 8px;font-size:.75rem;font-weight:800}
.slot-lock-admin{margin:12px 0;padding:12px;border:1px solid #cbdce5;border-radius:14px;background:#f3f8fa}
.slot-lock-control{display:flex;align-items:flex-start;gap:12px;cursor:pointer;line-height:1.4}
.slot-lock-control input{width:24px;height:24px;min-width:24px;accent-color:#147c98;cursor:pointer;margin:1px 0}
.slot-lock-control span{display:flex;flex-direction:column;gap:4px;min-width:0}
.slot-lock-control small{font-size:.82rem;color:#546a73}
@media(max-width:520px){.slot-lock-admin{padding:10px}.slot-lock-badge{max-width:100%;white-space:normal}}

/* FIN DU FICHIER — 24H d'escalade — Common_Styles.css — Version 1.25.0 — 26/10/2026 */
