/* TG Dive — feuille de style (jalon 1, squelette) */
:root{
  --profond:#003a5d; --bleu:#0073b1; --turq:#00a3a3; --sable:#f5f1e8;
  --vert:#2e8b57; --orange:#e08a1e; --rouge:#c0392b; --gris:#5a6b76; --bord:#dbe3e9;
  --ombre:0 2px 10px rgba(0,58,93,.08);
  --navh:62px;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
/* Mise en page en colonne pleine hauteur : la page ne défile pas, seul <main> défile.
   La barre d'onglets est un élément normal du bas de l'écran -> plus de position:fixed
   (qui « flotte » sur iOS quand le clavier s'ouvre ou pendant le défilement). */
body{font-family:'Segoe UI',Roboto,-apple-system,Arial,sans-serif;color:#23323b;background:var(--sable);
  display:flex;flex-direction:column;overflow:hidden;height:100vh;height:100dvh}
a{color:var(--bleu);text-decoration:none}

/* En-tête */
/* Tailles de l'en-tête et de la barre d'onglets en px (et non rem) : ainsi la
   police système agrandie (accessibilité Android) ne fait pas déborder le
   cadre de l'appli. Le contenu des pages, lui, continue de suivre la police. */
.app-header{position:sticky;top:0;z-index:20;background:linear-gradient(135deg,var(--profond),var(--bleu) 65%,var(--turq));
  color:#fff;padding:14px 14px;display:flex;align-items:center;gap:8px;box-shadow:var(--ombre)}
.app-header .logo{font-size:1.5rem}
.app-header .logo-img{height:40px;width:auto;display:block;flex-shrink:0;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}
.app-header>div:not(.who){min-width:0}
.app-header h1{font-size:18px;font-weight:700;letter-spacing:.3px;white-space:nowrap}
.hdr-version{display:block;font-style:italic;font-size:10px;opacity:.85;line-height:1.1}
.hdr-role{display:inline-block;margin-top:2px;font-size:10px;font-weight:700;background:rgba(255,255,255,.22);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:1px 8px}
.hdr-anniv{position:sticky;top:0;z-index:19;background:#fff4e0;color:#8a5a00;border-bottom:1px solid #f0c987;text-align:center;font-size:.85rem;padding:7px 12px}
.hdr-anniv b{color:#7a4e00}
.hdr-evt{position:sticky;top:0;z-index:19;background:#e7f1fb;color:#0b3d6b;border-bottom:1px solid #a9cdee;font-size:.85rem}
.hdr-evt-row{display:flex;align-items:center;gap:8px;padding:6px 12px;border-top:1px solid #cfe2f6}
.hdr-evt-row:first-child{border-top:0}
.hdr-evt-txt{flex:1;min-width:0}
.hdr-evt b{color:#083257}
.hdr-evt-act{display:flex;align-items:center;gap:6px;flex-shrink:0}
.hdr-evt-btn{border:1px solid #a9cdee;background:#fff;color:#0b3d6b;border-radius:999px;padding:2px 10px;font-size:.75rem;cursor:pointer}
.hdr-evt-btn:active{background:#dce9f8}
.hdr-evt-x{border:0;background:transparent;color:#0b3d6b;font-size:1rem;line-height:1;cursor:pointer;padding:0 2px}
.evt-item{border:1px solid var(--bord);border-radius:10px;padding:8px 10px;margin:6px 0;background:#fbfdff}
.evt-item-h{display:flex;flex-direction:column;gap:2px}
.evt-item-h small{color:var(--gris)}
.evt-insc{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px}
.evt-insc-n{font-size:.78rem;color:var(--gris)}
.btn-mini.evt-insc-in{background:#e6f6ec;border-color:#9ad2af;color:#136c37}
.btn-mini.evt-insc-out{background:#fdeaea;border-color:#e2a3a3;color:#a3241f}
.evt-insc-list{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.evt-insc-chip{display:inline-flex;align-items:center;gap:3px;background:#eef3f8;border:1px solid var(--bord);border-radius:999px;padding:2px 8px;font-size:.75rem;color:var(--profond)}
.evt-insc-x{border:0;background:transparent;color:#a3241f;cursor:pointer;font-size:.8rem;line-height:1;padding:0}
.app-header .who{margin-left:auto;font-size:12px;opacity:.9;text-align:right;line-height:1.2;min-width:0;overflow:hidden;text-overflow:ellipsis}
.hdr-btn{margin-left:6px;width:36px;height:36px;border-radius:50%;border:none;background:rgba(255,255,255,.18);
  color:#fff;font-size:20px;line-height:1;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.hdr-btn:active{background:rgba(255,255,255,.35)}

/* Zone de contenu (seule zone qui défile) */
main{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;width:100%;padding:16px 16px 24px}
main>.view{max-width:720px;margin:0 auto}
.view{display:none;animation:fade .18s ease}
.view.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
h2.title{font-size:1.15rem;color:var(--profond);margin-bottom:4px}
.subtitle{color:var(--gris);font-size:.85rem;margin-bottom:14px}

/* Cartes */
.card{background:#fff;border:1px solid var(--bord);border-radius:14px;box-shadow:var(--ombre);padding:16px;margin-bottom:14px}
/* Accordéons de l'éditeur matériel (Identification / Inspection visuelle) */
.mat-acc{padding:0;overflow:hidden}
.mat-acc>summary{list-style:none;cursor:pointer;padding:14px 16px;display:flex;align-items:center;gap:8px;font-weight:700;color:var(--profond);font-size:1rem}
.mat-acc>summary::-webkit-details-marker{display:none}
.mat-acc>summary::after{content:"▸";margin-left:auto;color:var(--gris);font-weight:400}
.mat-acc[open]>summary::after{content:"▾"}
.mat-acc-body{padding:0 16px 14px}
/* Indice « cliquable » sur les cartes de la fiche article */
.mat-edit-hint{float:right;font-weight:400;color:var(--gris);font-size:.78rem}
.card h3{font-size:1rem;color:var(--profond);margin-bottom:10px;display:flex;align-items:center;gap:8px}

/* Stats */
/* minmax(0,1fr) : les colonnes peuvent rétrécir sous la largeur du contenu
   (sinon, sur un écran étroit ou avec une police système agrandie, la grille
   déborde du cadre). Les cellules autorisent le retour à la ligne. */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px}
.stat{background:#fff;border:1px solid var(--bord);border-radius:14px;padding:14px 8px;text-align:center;box-shadow:var(--ombre);min-width:0;overflow-wrap:anywhere}
.stat .n{font-size:1.5rem;font-weight:800;color:var(--bleu);line-height:1.15;overflow-wrap:anywhere}
.stat .l{font-size:.72rem;color:var(--gris);text-transform:uppercase;letter-spacing:.3px;margin-top:2px;overflow-wrap:anywhere}

/* Alertes */
.alert{border-radius:12px;padding:12px 14px;font-size:.88rem;margin-bottom:10px;display:flex;gap:10px;align-items:flex-start}
.alert .i{font-size:1.1rem;line-height:1}
.a-warn{background:#fdeede;border:1px solid #f0cc93;color:#8a5a10}
.a-danger{background:#fdeaea;border:1px solid #e9b4ae;color:#8a2018}
.a-ok{background:#eaf6ee;border:1px solid #b5dcc2;color:#1d6b3d}

/* Barre de recherche */
.search{width:100%;padding:11px 14px;border:1px solid var(--bord);border-radius:12px;font-size:.95rem;margin-bottom:12px;background:#fff}

/* Liste membres */
.member{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--bord);border-radius:14px;padding:12px 14px;margin-bottom:10px;box-shadow:var(--ombre);cursor:pointer}
.avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--bleu),var(--turq));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0}
.member .info{flex:1;min-width:0}
.member .nom{font-weight:700;color:var(--profond)}
.member .meta{font-size:.78rem;color:var(--gris);display:flex;gap:6px;flex-wrap:wrap;margin-top:3px;align-items:center}
.member .nom .ville{font-weight:500;color:var(--gris);font-size:.85rem}
.member .nom .age{font-weight:500;color:var(--gris);font-size:.82rem}
.tri-bar{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.tri-lbl{font-size:.8rem;color:var(--gris)}
.tri-btn{border:1px solid #cfe0ea;background:#fff;color:var(--profond);font-size:.8rem;font-weight:600;padding:5px 12px;border-radius:20px;cursor:pointer}
.tri-btn.on{background:var(--profond);color:#fff;border-color:var(--profond)}
.hc-star{font-size:.9rem}
.hc-banner{display:flex;gap:10px;align-items:center;background:#fff8e1;border:1px solid #ffd54f;border-left:5px solid #ffb300;border-radius:12px;padding:10px 12px;margin-bottom:10px}
.hc-banner .hc-ico{font-size:1.6rem;line-height:1}
.hc-banner b{color:#8a6d00}
.hc-banner small{color:#7a5c00}
.warn-flag{font-size:.85rem;cursor:help}
.conflit-card{border-left:4px solid #e0a800;background:#fffdf5}
.conflit-list{margin:6px 0 0;padding-left:18px;font-size:.86rem;color:#7a5c00}
.conflit-list li{margin:3px 0}
.badge{display:inline-block;font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:20px}
.b-niv{background:#e6f2f9;color:var(--profond)}
.b-enc{background:#efe9f7;color:#6a4fa3}
.b-rifa{background:#ffe6e6;color:#b00020}
.b-nitrox{background:#e3f6e3;color:#1b7a1b}
.b-site{background:#e6f2f9;color:var(--profond)}
.dive .site .ville{font-weight:500;color:var(--gris);font-size:.82rem}
.lien-site{color:var(--bleu);cursor:pointer;font-weight:600}
.caci{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:20px;white-space:nowrap}
.caci-ok{background:#eaf6ee;color:var(--vert)}
.caci-soon{background:#fdeede;color:var(--orange)}
.caci-exp{background:#fdeaea;color:var(--rouge)}
.caci-none{background:#eceff1;color:#607d8b}

/* Détail */
.kv{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid #eef2f5;font-size:.9rem}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--gris)} .kv .v{font-weight:600;text-align:right}
.back-link{color:var(--bleu);font-size:.9rem;font-weight:600;margin-bottom:10px;display:inline-block;cursor:pointer}

/* Plongées */
.dive{background:#fff;border:1px solid var(--bord);border-radius:14px;padding:14px;margin-bottom:12px;box-shadow:var(--ombre)}
.dive .dh{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.dive .site{font-weight:700;color:var(--profond)}
.dive .date{font-size:.8rem;color:var(--gris)}
.palanquee{background:#f7fafc;border:1px solid #e6edf2;border-radius:10px;padding:8px 10px;margin-top:8px;font-size:.82rem}
.palanquee .pt{font-weight:700;color:var(--bleu);margin-bottom:4px}

/* Boutons */
.btn{display:inline-flex;align-items:center;gap:8px;border:none;border-radius:12px;padding:12px 18px;font-size:.95rem;font-weight:700;cursor:pointer;color:#fff;background:var(--bleu)}
.btn:hover{background:#005e90}
.btn-block{width:100%;justify-content:center}
.btn-ghost{background:#fff;color:var(--bleu);border:1px solid var(--bleu)}

/* Message d'erreur connexion */
.login-err{background:#fdeaea;border:1px solid #e9b4ae;color:#8a2018;font-size:.8rem;padding:8px 10px;border-radius:10px;margin-top:12px}

/* Veille (iframe) */
.veille-frame{width:100%;height:calc(100vh - var(--navh) - 120px);border:1px solid var(--bord);border-radius:12px;background:#fff}
/* Synthèse des prérogatives (page Veille) */
.prcard{padding:14px 16px}
.prcard>summary{cursor:pointer;font-weight:700;font-size:1.02rem;color:var(--profond);list-style:none;display:flex;align-items:center;justify-content:space-between}
.prcard>summary::-webkit-details-marker{display:none}
.prcard>summary::after{content:"▸";color:var(--gris);font-weight:400;margin-left:8px}
.prcard[open]>summary::after{content:"▾"}
.prcard>summary small{font-weight:400;color:var(--gris);font-size:.75rem}
.prsub{font-weight:700;font-size:.72rem;color:var(--bleu);margin:12px 0 2px;text-transform:uppercase;letter-spacing:.03em}
.prerow{display:grid;grid-template-columns:1fr auto;gap:2px 8px;padding:7px 0;border-top:1px solid #eef1f4}
.prg{font-size:.9rem}
.prt{color:var(--gris);font-weight:400;font-size:.82rem}
.prp{justify-self:end;align-self:start;background:#eef5ff;color:#1b4f8a;border-radius:10px;padding:1px 9px;font-size:.76rem;font-weight:700;white-space:nowrap}
.prx{grid-column:1 / -1;font-size:.82rem;color:#3a4a57;line-height:1.45}
.prnote{margin-top:10px;font-size:.73rem;color:var(--gris);line-height:1.45}
/* Onglets de la page Matériel (Parc / ESP) */
.seg{display:flex;gap:6px;margin:0 0 10px}
.seg-b{flex:1;padding:8px 10px;border:1px solid var(--bord);background:#fff;border-radius:10px;font-size:.86rem;font-weight:600;color:var(--gris);cursor:pointer}
.seg-b.on{background:var(--bleu);border-color:var(--bleu);color:#fff}
.seg-badge{display:inline-block;min-width:18px;padding:0 5px;margin-left:4px;border-radius:9px;background:var(--rouge);color:#fff;font-size:.72rem;line-height:18px;text-align:center;vertical-align:middle}
.seg-b.on .seg-badge{background:#fff;color:var(--bleu)}
/* Aperçu du calcul LUNE en direct dans le formulaire ESP */
.esp-apercu{margin-top:8px;padding:8px 10px;border-radius:8px;background:#f3f6f9;border:1px solid var(--bord);font-size:.84rem;color:#3a4a57}

/* Navigation basse — élément normal de la colonne, toujours collé en bas de l'écran */
.tabbar{flex-shrink:0;height:calc(var(--navh) + env(safe-area-inset-bottom));background:#fff;border-top:1px solid var(--bord);
  display:flex;z-index:30;overflow:hidden;box-shadow:0 -2px 10px rgba(0,58,93,.06);padding-bottom:env(safe-area-inset-bottom)}
.tab{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:0 1px;
  color:var(--gris);font-size:10px;font-weight:600;cursor:pointer;border:none;background:none;overflow:hidden}
.tab span:not(.ic){max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tab .ic{font-size:20px;line-height:1}
.tab.active{color:var(--bleu)}
.tab.active .ic{transform:translateY(-1px)}


/* ---- Formulaire fiche de sécurité ---- */
label{display:block;font-size:.82rem;color:var(--gris);font-weight:600;margin-top:10px}
label input,label select,label textarea{width:100%;padding:10px 12px;border:1px solid #cdd8df;border-radius:10px;font-size:.95rem;margin-top:4px;background:#fff;color:#23323b}
label textarea{font-family:inherit;resize:vertical}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.pal-edit{border:1px solid var(--bord);border-radius:12px;padding:12px;margin-bottom:12px;background:#f9fcfe}
.pal-h{font-weight:800;color:var(--bleu);display:flex;justify-content:space-between;align-items:center}
.pal-h .del{cursor:pointer;font-size:1rem}
.plg-add{display:flex;gap:8px;margin-top:10px}
.plg-add select,.plg-add input{flex:1;min-width:0;padding:9px 10px;border:1px solid #cdd8df;border-radius:10px;background:#fff;font-size:.9rem;color:#23323b}
.btn-mini{border:none;background:var(--bleu);color:#fff;border-radius:10px;padding:0 14px;font-weight:700;cursor:pointer}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chip{background:#e6f2f9;color:var(--profond);border-radius:16px;padding:4px 10px;font-size:.8rem;font-weight:600;display:flex;align-items:center;gap:6px}
.chip .x{cursor:pointer;color:var(--rouge);font-weight:800}
.matgrid{display:flex;flex-direction:column;gap:2px}
.matcheck{display:flex;align-items:center;gap:10px;font-weight:500;color:#23323b;font-size:.88rem;margin-top:0;padding:7px 0;border-bottom:1px solid #eef2f5}
.matcheck input{width:auto;margin:0}
.matcheck small{margin-left:auto;color:var(--gris);font-size:.72rem}
.matcheck span{flex:0 1 auto}
.btn-danger{background:var(--rouge)} .btn-danger:hover{background:#a52f22}

/* ---- Liste & détail plongées ---- */
.dive{cursor:pointer}
.dmeta{font-size:.8rem;color:var(--gris);margin-top:4px}
.voir{margin-top:8px;color:var(--bleu);font-weight:700;font-size:.82rem;text-align:right}
.palanquee .pp{margin:4px 0;font-size:.85rem}
.palanquee .pparams{font-size:.78rem;color:var(--gris)}
.matline{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 0;border-bottom:1px solid #eef2f5;font-size:.86rem}
.matline small{color:var(--gris);font-size:.72rem;white-space:nowrap}

/* ---- Carnet de plongée ---- */
.palanquee .psub{font-size:.78rem;color:var(--gris);margin-bottom:2px}
.pblock{margin-top:8px;border:1px solid var(--bord);border-radius:8px;padding:6px 8px 8px;background:#fff}
.pblock-t{font-size:.72rem;font-weight:700;color:var(--profond);text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px}
.pblock-t small{font-weight:400;text-transform:none;color:var(--gris)}
.pblock-r{border-color:#bfe3c8;background:#f4fbf6}
.pblock-r .pblock-t{color:#1b7a1b}
.plg-list{margin-top:8px}
.plg-row{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--bord);border-radius:8px;padding:4px 8px;margin-bottom:5px}
.plg-row .plg-nom{flex:1;font-size:.82rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plg-row .plg-niv{width:88px;padding:3px 5px;font-size:.78rem;text-align:center}
.plg-row .plg-fct{width:96px;font-size:.75rem;padding:3px 4px}
.plg-row .plg-auto{width:96px;font-size:.72rem;color:var(--gris);text-align:center}
.plg-row .x{cursor:pointer;color:var(--rouge);font-weight:700;padding:0 2px}
.pal-err{margin-top:6px;font-size:.76rem;color:#8a2018;background:#fdeaea;border-radius:8px;padding:6px 8px;line-height:1.4}
.pal-ok{margin-top:6px;font-size:.76rem;color:#1b7a1b;font-weight:600}
.carnet-e{border-left:3px solid var(--bleu);background:#f7fafc;border-radius:0 10px 10px 0;padding:8px 12px;margin-bottom:8px;cursor:pointer}
.carnet-e:hover{background:#eef5fa}
.ce-go{float:right;color:var(--bleu);font-weight:700}
.ce-h{display:flex;justify-content:space-between;align-items:center}
.ce-site{font-weight:700;color:var(--profond)}
.ce-date{font-size:.78rem;color:var(--gris)}
.ce-meta{font-size:.8rem;color:var(--gris);margin-top:3px}

/* ---- Écran de connexion ---- */
.login-ov{position:fixed;inset:0;z-index:100;background:linear-gradient(135deg,#003a5d,#0073b1 60%,#00a3a3);display:flex;align-items:center;justify-content:center;padding:24px}
.login-box{background:#fff;border-radius:20px;padding:28px 24px;max-width:360px;width:100%;text-align:center;box-shadow:0 10px 40px rgba(0,0,0,.25)}
.login-logo{width:150px;height:auto;margin:0 auto 4px;display:block}
.login-box h1{color:var(--profond);font-size:1.4rem}
.login-box p{color:var(--gris);font-size:.9rem;margin:4px 0 18px}
.btn-ms{background:#2f2f2f} .btn-ms:hover{background:#1f1f1f}
.login-note{color:var(--gris);font-size:.74rem;margin-top:14px;line-height:1.4}

/* ---- Briefing DP du site ---- */
.brief-item{padding:8px 0;border-bottom:1px solid #eef2f5}
.brief-item:last-child{border-bottom:none;padding-bottom:0}
.brief-label{font-weight:700;color:var(--profond);font-size:.88rem}
.brief-std{color:var(--gris);font-size:.82rem;margin-top:2px}
.brief-part{background:#e6f2f9;border-left:3px solid var(--bleu);border-radius:0 8px 8px 0;padding:6px 10px;margin-top:6px;font-size:.86rem;color:var(--profond);font-weight:600}
.brief-item textarea{width:100%;padding:8px 10px;border:1px solid #cdd8df;border-radius:8px;font-size:.85rem;margin-top:6px;font-family:inherit;resize:vertical;background:#fff;color:#23323b}
.brief-mask{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:.78rem;font-weight:600;color:var(--rouge)}
.brief-mask input{width:auto;margin:0}

/* Panneau superposé du briefing (depuis la fiche de sécurité) */
.brief-ov{position:fixed;inset:0;z-index:80;background:rgba(0,30,50,.55);display:flex;align-items:flex-end;justify-content:center}
.brief-box{background:var(--sable);width:100%;max-width:720px;max-height:88dvh;border-radius:16px 16px 0 0;display:flex;flex-direction:column;box-shadow:0 -6px 30px rgba(0,0,0,.25)}
.brief-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--bord);border-radius:16px 16px 0 0;color:var(--profond)}
.brief-head .btn-mini{padding:8px 14px}
.brief-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 16px calc(16px + env(safe-area-inset-bottom))}

/* Note sous le sélecteur de site (éditeur de fiche) */
.site-note{background:#f7fafc;border:1px solid #e6edf2;border-radius:10px;padding:8px 12px;margin-top:8px;font-size:.82rem;color:var(--gris)}

/* ---- Accueil : tuiles cliquables, légende des alertes ; membres inactifs (v70) ---- */
.stat-btn { cursor: pointer; user-select: none; }
.stat-btn:active { transform: scale(.97); }
.legende { font-size: .78rem; color: var(--gris); }
.alert.clic { cursor: pointer; }
.member.inactif { opacity: .55; }
.member.membre-dbl { border-color:#e08a00; background:#fff8ee; }
.badge.b-dbl { background:#fdeaea; color:#8a2018; border:1px solid #f3b0a8; }
.badge.b-off { background: #e5e5e5; color: #666; }
.seuil-row { font-size: .82rem; color: var(--gris); margin-bottom: 6px; }
.seuil-row select { padding: 4px 8px; border-radius: 8px; border: 1px solid #ccc; font-size: .82rem; }
.sel-saison { padding: 5px 10px; border-radius: 10px; border: 1px solid #ccc; font-size: .82rem; background: #fff; }
.pal-force { background:#fff4e0; border:1px solid #f0c987; color:#8a5a00; border-radius:10px;
  padding:8px 10px; margin-top:6px; font-size:.82rem; }

/* ---- Statistiques : effectifs par saison (v96) ---- */
.saison-row { background: #fff; border: 1px solid var(--bord); border-radius: 14px;
  padding: 12px 14px; margin-bottom: 10px; box-shadow: var(--ombre); cursor: pointer; }
.saison-row:active { transform: scale(.995); }
.sr-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.sr-head b { color: var(--profond); font-size: .95rem; }
.sr-tot { font-size: .78rem; color: var(--gris); white-space: nowrap; }
.sr-tot b { font-size: 1.05rem; color: var(--bleu); }
.sr-bar { display: flex; height: 10px; border-radius: 6px; overflow: hidden; background: #eef2f5; margin: 8px 0 6px; }
.sr-bar span { display: block; height: 100%; }
.sr-bar .b-anc { background: var(--bleu); }
.sr-bar .b-nouv { background: var(--turq); }
.sr-leg { display: flex; gap: 14px; flex-wrap: wrap; font-size: .78rem; color: var(--gris); }
.sr-leg .d-up { color: var(--vert); font-weight: 700; }
.sr-leg .d-dn { color: var(--rouge); font-weight: 700; }
/* départs par saison (v97) */
.dep-btn { margin-top: 8px; border: 1px solid #cfe0ea; background: #fff; color: var(--profond);
  font-size: .78rem; font-weight: 700; padding: 5px 12px; border-radius: 20px; cursor: pointer; }
.dep-btn.on { background: var(--profond); color: #fff; border-color: var(--profond); }
.sr-dep { margin-top: 10px; border-top: 1px dashed var(--bord); padding-top: 10px; cursor: default; }
.dep-t { font-size: .82rem; font-weight: 700; color: var(--profond); margin-bottom: 6px; }
.dep-niv { display: flex; gap: 6px; flex-wrap: wrap; }
.dep-sub { font-size: .78rem; color: var(--gris); margin-top: 6px; }
.dep-noms { display: flex; flex-direction: column; gap: 2px; margin-top: 8px; }
.dep-nom { font-size: .82rem; color: var(--bleu); cursor: pointer; }
.dep-nom b { color: var(--gris); font-size: .76rem; font-weight: 700; }
/* répartition hommes / femmes (v99) */
.sx-bar { display: flex; height: 8px; border-radius: 5px; overflow: hidden; background: #eef2f5; margin: 8px 0 5px; }
.sx-bar span { display: block; height: 100%; }
.sx-bar .b-h { background: #2f6fb5; }
.sx-bar .b-f { background: #c2578f; }
.sx-leg { display: flex; gap: 14px; flex-wrap: wrap; font-size: .78rem; color: var(--gris); }
.sx-h { color: #2f6fb5; font-weight: 700; }
.sx-f { color: #c2578f; font-weight: 700; }
.stat .n.sx-h { color: #2f6fb5; }
.stat .n.sx-f { color: #c2578f; }
.sel-champ { width: 100%; padding: 10px 12px; border: 1px solid var(--bord); border-radius: 10px;
  font-size: .95rem; background: #fff; }
/* complétion des civilités d'après le prénom (v101) */
.civ-row { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px solid #eef2f5; }
.civ-row:last-child { border-bottom: none; }
.civ-nom { flex: 1; min-width: 0; font-size: .88rem; color: var(--profond); font-weight: 600; }
.civ-nom small { font-weight: 400; color: var(--gris); }
.civ-choix { display: flex; gap: 4px; flex-shrink: 0; }
.civ-btn { border: 1px solid #cfe0ea; background: #fff; color: var(--profond); font-size: .74rem;
  font-weight: 700; padding: 4px 9px; border-radius: 16px; cursor: pointer; }
.civ-btn.on { background: var(--profond); color: #fff; border-color: var(--profond); }
.stats.duo { grid-template-columns: repeat(2, 1fr); }
/* anniversaires (v112) */
.a-anniv { background: #fff4e0; border: 1px solid #f0c987; color: #8a5a00; font-weight: 600; }
/* ---- Matériel du club (v113) ---- */
.mat-row { background: #fff; border: 1px solid var(--bord); border-radius: 12px;
  padding: 10px 12px; margin-bottom: 8px; box-shadow: var(--ombre); cursor: pointer; }
.mat-h { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.mat-num { font-weight: 700; color: var(--profond); font-size: .92rem; }
.mat-meta { font-size: .78rem; color: var(--gris); margin-top: 4px;
  display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.badge.b-dispo { background: #eaf6ee; color: var(--vert); }
.badge.b-pret { background: #e6f2f9; color: var(--bleu); }
.badge.b-retard { background: #fdeaea; color: var(--rouge); }
.badge.b-hs { background: #fdeede; color: var(--orange); }
.badge.b-revis { background: #fdf3d0; color: #8a6a00; }
.badge.b-manq { background: #f3e5f5; color: #7a3f8a; }
.mat-sel { display: flex; align-items: center; gap: 8px; padding: 7px 0;
  border-bottom: 1px solid #eef2f5; font-size: .84rem; cursor: pointer; }
.mat-sel:last-child { border-bottom: none; }
.mat-sel-n { font-weight: 700; color: var(--profond); }
.mat-sel-v { flex: 1; color: var(--gris); font-size: .8rem; }
/* la case à cocher d'une ligne de sélection ne doit pas être étirée par label input{width:100%} */
.mat-sel input[type="checkbox"] { width: auto; padding: 0; margin: 0; flex: 0 0 auto; }
/* quantité de plomb/opercule : petit champ nombre poussé à droite de la ligne */
.pret-qty { width: 64px; flex: 0 0 auto; margin-left: auto; text-align: center; padding: 6px 8px; }
/* Tableau des droits par niveau (page Paramètres) */
.acces-table { border-collapse: collapse; width: 100%; font-size: .82rem; }
.acces-table th, .acces-table td { border: 1px solid #e3e9ee; padding: 4px 6px; text-align: center; white-space: nowrap; }
.acces-table thead th { background: #f2f6f9; color: var(--profond); font-weight: 700; }
.acces-table .sel-acces { width: auto; min-width: 88px; padding: 5px 6px; margin: 0; }
.acces-table tr.histo-nonratt td { background: #fdeaea; color: #8a2018; }
/* Compresseur — révisions */
.rev-card{border:1px solid var(--bord);border-left:4px solid var(--bleu);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:#fbfdff}
.rev-card:last-child{margin-bottom:0}
.rev-card.rev-last{border-left-color:var(--vert);background:#f4fbf6}
.rev-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--profond);font-size:.92rem}
.rev-nat{font-weight:700;color:var(--bleu);font-size:.85rem;margin-top:3px}
.rev-meta{font-size:.78rem;color:var(--gris);margin-top:2px}
.rev-det{font-size:.83rem;color:#3a4a54;margin-top:5px;white-space:pre-wrap}
.rev-x{margin-left:auto;color:var(--rouge);cursor:pointer;font-weight:700;padding:0 4px}
/* Suivi de cursus */
.cur-lvl{border:1px solid var(--bord);border-radius:10px;margin-bottom:10px;background:#fbfdff;overflow:hidden}
.cur-lvl>summary{list-style:none;cursor:pointer;padding:11px 12px;display:flex;align-items:center;gap:8px;color:var(--profond);background:#eef4f8}
.cur-lvl>summary::-webkit-details-marker{display:none}
.cur-lvl>summary::before{content:"▸";color:var(--bleu);font-weight:700}
.cur-lvl[open]>summary::before{content:"▾"}
.cur-badge{margin-left:auto;background:var(--bleu);color:#fff;font-size:.75rem;font-weight:700;border-radius:999px;padding:1px 9px}
.cur-badge-ok{background:#137a3a}
.cur-obtenu>summary{color:#137a3a}
.cur-obtenu .cur-nivdates{margin:6px 0}
.cur-sign-inp{border:1px solid var(--bord);border-radius:6px;padding:3px 6px;font-size:.78rem;color:var(--profond);min-width:150px}
.cur-acc{padding:0}
.cur-acc>summary{list-style:none;cursor:pointer;padding:16px;display:flex;align-items:center;gap:8px;color:var(--profond);font-size:1rem}
.cur-acc>summary::-webkit-details-marker{display:none}
.cur-acc>summary::after{content:"▸";color:var(--gris);font-weight:400;margin-left:4px}
.cur-acc[open]>summary::after{content:"▾"}
.cur-acc>summary .cur-badge{margin-left:auto}
.cur-acc>.subtitle,.cur-acc>.cur-lvl{margin-left:16px;margin-right:16px}
.cur-acc[open]{padding-bottom:16px}
.cur-ro{display:inline-block;margin-top:4px;color:var(--corail,#c0562f);font-size:.78rem;font-weight:600}
.cur-sec{padding:8px 12px 0}
.cur-sec>b{color:var(--profond);font-size:.85rem}
.cur-txt{font-size:.82rem;color:#3a4a54;white-space:pre-wrap;margin-top:2px}
.cur-theme{margin:8px 12px 0;border:1px solid #e6edf2;border-radius:8px;background:#fff}
.cur-theme>summary{list-style:none;cursor:pointer;padding:8px 10px;font-weight:600;color:var(--bleu);font-size:.86rem}
.cur-theme>summary::-webkit-details-marker{display:none}
.cur-theme>summary::before{content:"＋ ";color:var(--turq);font-weight:700}
.cur-theme[open]>summary::before{content:"− "}
.cur-comp{font-size:.8rem;color:var(--gris);padding:0 10px 4px}
.cur-savoir{font-size:.8rem;color:#3a4a54;background:#f5f9fb;border-top:1px solid #eef2f5;padding:6px 10px}
.cur-exos{padding:6px 10px 10px}
.cur-ex{display:flex;flex-wrap:wrap;align-items:flex-start;gap:8px;padding:5px 0;font-size:.85rem;border-bottom:1px solid #f0f4f7}
.cur-ex:last-child{border-bottom:none}
.cur-ex>input[type=checkbox]{margin-top:2px;width:18px;height:18px;flex-shrink:0}
.cur-ex-lbl{font-weight:600;color:var(--profond)}
.cur-i{flex-basis:100%;margin-left:26px}
.cur-ok{color:var(--vert);font-size:.76rem;font-weight:700}
.cur-lvl .a-danger,.cur-lvl .a-warn{margin:8px 12px}
.cur-bars{padding:8px 12px 2px}
.cur-bar-wrap{margin-bottom:8px}
.cur-bar-lbl{font-size:.8rem;color:var(--profond);margin-bottom:3px}
.cur-bar{height:9px;border-radius:6px;background:#e3ecf2;overflow:hidden}
.cur-bar-fill{height:100%;background:linear-gradient(90deg,var(--bleu),var(--turq));border-radius:6px;transition:width .25s ease}
.cur-bar-fill.full{background:linear-gradient(90deg,var(--vert),#3bb06a)}
.cur-note{font-size:.78rem;color:var(--gris);margin:2px 0 4px}
.cur-grp{margin:10px 12px 2px;font-size:.8rem;font-weight:700;color:var(--turq);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid #e6edf2;padding-bottom:3px}
.cur-tcnt{margin-left:auto;background:#e6f2f9;color:var(--profond);font-size:.72rem;font-weight:700;border-radius:999px;padding:1px 8px;flex-shrink:0}
.cur-theme>summary{display:flex;align-items:center;gap:8px}
.cur-date{width:auto;padding:5px 8px;font-size:.85rem;border:1px solid var(--bord);border-radius:6px;margin:0;min-width:140px}
.cur-sign{font-size:.74rem;color:var(--gris);font-weight:600}
.cur-nivdates{padding:4px 12px 2px}
.cur-nivdate{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:.82rem;color:var(--profond);background:#f4fbf6;border:1px solid #cfe8d6;border-radius:8px;padding:6px 8px;margin-bottom:6px}
.cur-nivdate.cur-ok{color:var(--vert)}
.cur-nvlbl{font-weight:700}
.cur-nvf{display:inline-flex;align-items:center;gap:4px;font-size:.82rem;color:var(--gris)}
.cur-nvf-grow{flex:1 1 220px}
.cur-lieu{flex:1;width:auto;min-width:160px;padding:5px 8px;font-size:.85rem;border:1px solid var(--bord);border-radius:6px;margin:0}
.cur-hc{width:auto;padding:5px 8px;font-size:.85rem;border:1px solid var(--bord);border-radius:6px;margin:0}
.cur-sign-sel{flex:1;width:auto;min-width:190px;max-width:100%;padding:5px 8px;font-size:.85rem;border:1px solid var(--bord);border-radius:6px;background:#fff;color:var(--profond);margin:0}
/* Alias de connexion (paramètres) */
.alias-row{padding:7px 0;border-bottom:1px solid var(--bord);font-size:.86rem;color:var(--profond);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.alias-row:last-child{border-bottom:none}
.alias-chip{display:inline-flex;align-items:center;gap:6px;background:#e6f2f9;color:var(--profond);border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:600}
.alias-chip .x{color:var(--rouge);cursor:pointer;font-weight:700}

/* Bandeau d'information neutre (registre matériel à compléter) */
.a-info { background: #e9f1fb; border: 1px solid #b6cdea; color: #1c4877; }
/* Matériel appartenant à un adhérent : suivi par le club, jamais prêté par lui */
.badge.b-perso { background: #eef0f4; color: #4a5568; }
/* Pastille de couleur de l'article, à côté de son numéro */
.mat-dot { display:inline-block; width:11px; height:11px; border-radius:50%; margin-left:7px;
  vertical-align:middle; border:1px solid rgba(0,0,0,.25); }
/* Sélecteur de saison du carnet de plongée */
.carnet-sel { margin: 2px 0 10px; }
/* Bandeau de confirmation non bloquant : s'affiche puis s'efface seul */
.toast { position: fixed; left: 50%; bottom: calc(var(--navh) + env(safe-area-inset-bottom) + 14px);
  transform: translateX(-50%) translateY(10px); background: #10323f; color: #fff;
  padding: 10px 16px; border-radius: 22px; font-size: .85rem; font-weight: 600;
  max-width: 88%; text-align: center; opacity: 0; pointer-events: none; z-index: 60;
  box-shadow: 0 6px 18px rgba(0,0,0,.25); transition: opacity .18s ease, transform .18s ease; }
.toast.on { opacity: .96; transform: translateX(-50%) translateY(0); }
/* Pastille « a du matériel du club emprunté » dans l'annuaire */
.emp-flag { font-size: .92rem; }
/* Ligne clé/valeur cliquable (matériel emprunté → fiche de l'article) */
.kv.clic { cursor: pointer; }
.kv.clic:hover { background: #f3f7fa; border-radius: 6px; }
/* Niveau préparé de la saison affiché à côté du nom du plongeur (fiche de sécurité) */
.plg-prepa{font-weight:600;font-size:.72rem;color:#8a5a00;background:#fff4e0;border:1px solid #f0c987;border-radius:6px;padding:0 5px;white-space:nowrap}
/* Nom importé/saisi absent de l'annuaire : à repérer et remplacer */
.plg-row.plg-inconnu{border-color:#e08a00;background:#fff4e0}
.plg-warn{font-weight:700;font-size:.7rem;color:#8a2018;background:#fdeaea;border:1px solid #f3b0a8;border-radius:6px;padding:0 5px;white-space:nowrap}
/* Liste de présence (roster) : chips des inscrits, grisés quand déjà répartis */
.roster-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.roster-chip{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:600;background:#fff4e0;border:1px solid #f0c987;color:#8a5a00;border-radius:14px;padding:3px 10px}
.roster-chip.assigned{background:#eaf6ee;border-color:#bfe3c9;color:#1b7a1b}
.roster-chip .rx{cursor:pointer;color:var(--rouge);font-weight:700}
.pal-warn{margin-top:6px;font-size:.76rem;color:#8a2018;background:#fdeaea;border-radius:8px;padding:6px 8px;line-height:1.4}
/* Fiche de sécurité apnée */
.badge.b-apnee{background:#e6f0fb;color:#1c4877;border:1px solid #b6cdea}
/* Pointage des présences aux séances */
.pt-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:6px 0 8px}
.pt-date{font-size:.8rem;color:var(--gris);display:flex;align-items:center;gap:6px}
.pt-date input{padding:4px 6px;border:1px solid var(--bord);border-radius:6px;font-size:.82rem}
.pt-count{font-size:.95rem;color:var(--profond)}
.pt-count small{color:var(--gris);font-weight:400}
.pt-tous{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--profond);margin:8px 0}
.pt-tous small{color:var(--gris)}
.pt-tous input{width:18px;height:18px}
.pt-list{margin-top:6px}
.pt-row{display:flex;align-items:center;gap:10px;padding:10px 8px;border:1px solid var(--bord);border-radius:10px;margin-bottom:6px;background:#fff;cursor:pointer}
.pt-row.on{background:#eafaf1;border-color:#a7e0c1}
.pt-row.pt-caci-exp{box-shadow:inset 4px 0 0 #b00020;border-color:#e5a0a0}
.badge.b-caci-exp{background:#fdecec;color:#b00020;border:1px solid #e5a0a0}
.pt-check{font-size:1.2rem;flex-shrink:0}
.pt-info{flex:1;min-width:0}
.pt-nom{font-weight:700;color:var(--profond)}
.pt-niv{margin-top:2px}
.pt-cr-grp{display:flex;gap:4px;flex-shrink:0}
.pt-cr{border:1px solid var(--bord);background:#fff;color:var(--gris);border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:700;cursor:pointer}
.pt-cr.on-j{background:#e7f0ff;color:#1c4877;border-color:#9dbdf0}
.pt-cr.on-a{background:#eafaf1;color:#0b6b5b;border-color:#a7e0c1}
.pt-db{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;background:#f5f9fb;border:1px solid var(--bord);border-radius:10px;padding:8px 10px;margin:8px 0}
.pt-db.pt-db-vide{background:#fdf3e0;border-color:#f0cfa0}
.pt-db-l{font-weight:700;color:var(--profond);font-size:.9rem}
.pt-db-l small{font-weight:400;color:var(--gris)}
.pt-db select{padding:5px 8px;border:1px solid var(--bord);border-radius:8px;font-size:.85rem;max-width:60%}
.pt-db-line{font-size:.82rem;color:#3a4a54;margin:2px 0 12px}
.pt-db-line small{color:var(--gris)}
.pt-db-todo{color:#b00020;font-weight:700}
.pt-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.pt-actions .btn{flex:1;min-width:140px}
.pt-atl{display:inline-block;font-size:.68rem;font-weight:700;padding:1px 7px;border-radius:999px;vertical-align:middle}
.atl-theorie{background:#efe7fb;color:#5b3ca0;border:1px solid #cbb6ee}
.atl-pmt{background:#e3f1ff;color:#1c4877;border:1px solid #a9caf0}
.atl-bloc{background:#fdeede;color:#a15a1a;border:1px solid #f0cfa0}
.pt-rot{background:#f5f9fb;border:1px solid var(--bord);border-radius:10px;padding:8px 10px;margin:8px 0}
.pt-rot-h{display:flex;align-items:center;justify-content:space-between;color:var(--profond)}
.pt-rot-nudge button{border:1px solid var(--bord);background:#fff;border-radius:6px;padding:2px 9px;margin-left:4px;cursor:pointer;font-weight:700;color:var(--bleu)}
.pt-rot-map{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.pt-rot-map span{font-size:.72rem;font-weight:700;padding:2px 8px;border-radius:999px}
.bl-tbl td.bl-c{text-align:center;font-variant-numeric:tabular-nums}
.bl-tbl .bl-niv{color:var(--gris);font-weight:400}
.bl-tbl td.bl-warn{background:#fdeaea;color:#b00020;font-weight:700}
/* Calendrier des séances */
.cal-nav{display:flex;align-items:center;justify-content:center;gap:14px;margin:8px 0}
.cal-nav button{border:1px solid var(--bord);background:#fff;border-radius:8px;padding:4px 12px;cursor:pointer;font-weight:700;color:var(--bleu)}
.cal-mois{font-weight:700;color:var(--profond);text-transform:capitalize;min-width:150px;text-align:center}
.cal-legende{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-bottom:8px}
.cal-legende span{font-size:.68rem;font-weight:600;padding:2px 8px;border-radius:999px}
.cal-head{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center;font-size:.7rem;font-weight:700;color:var(--gris)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin-top:3px}
.cal-cell{min-height:52px;border:1px solid var(--bord);border-radius:8px;padding:3px;background:#fff;display:flex;flex-direction:column;align-items:center}
.cal-cell.cal-clic{cursor:pointer}
.cal-cell.cal-clic:active{background:#eef4f8}
.cal-seance{pointer-events:none}
.cal-cell.cal-off{background:#f6f8fa;color:var(--gris)}
.cal-cell.cal-off .cal-jour{opacity:.5}
.cal-cell.cal-today{border-color:var(--bleu);box-shadow:0 0 0 1px var(--bleu) inset}
.cal-jour{font-size:.72rem;font-weight:700;color:var(--profond)}
.cal-seance{margin-top:2px;font-size:.8rem;cursor:pointer;display:flex;align-items:center;gap:1px;flex-wrap:wrap;justify-content:center;line-height:1.1}
.cal-sem{font-size:.6rem;font-weight:700;background:#efe7fb;color:#5b3ca0;border-radius:4px;padding:0 3px}
.cal-n{font-size:.6rem;font-weight:700;background:#0b6b5b;color:#fff;border-radius:999px;padding:0 4px}
.cal-plongee{color:#1c4877}.cal-tir{color:#a15a1a}.cal-apnee{color:#0b6b5b}
.cal-cell.cal-vac{background:#fdf3e0}
.cal-vac-tag{font-size:.62rem;margin-left:2px;vertical-align:top}
.cal-seance.cal-sansjeunes{opacity:.85}
.cal-seance.cal-ferme{opacity:.4;cursor:pointer}
.cal-seance.cal-combo{font-size:.6rem;letter-spacing:-1px}
.cal-extra{display:flex;gap:2px;flex-wrap:wrap;justify-content:center;margin-top:1px}
.cal-mk{font-size:.62rem;font-weight:700;border-radius:5px;padding:0 3px;line-height:1.3}
.cal-mk-fiche{background:#e6f0fb;color:#1c4877}
.cal-mk-evt{background:#efe7fb;color:#5b3ca0}
.cal-fiche-lg{background:#e6f0fb;color:#1c4877}
.cal-evt-lg{background:#efe7fb;color:#5b3ca0}
.evt-form{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.evt-form label{display:flex;flex-direction:column;font-size:.82rem;font-weight:600;color:var(--profond);gap:2px}
.evt-form input,.evt-form textarea,.evt-form select{padding:6px 8px;border:1px solid var(--bord);border-radius:8px;font-size:.9rem;font-weight:400;box-sizing:border-box;width:100%}
.evt-suggest{display:flex;flex-direction:column;gap:4px}
.evt-sugg{text-align:left;border:1px solid var(--bord);background:#f5f9fb;border-radius:8px;padding:6px 8px;font-size:.8rem;color:var(--profond);cursor:pointer;line-height:1.25}
.evt-sugg:active{background:#e6f0fb}
.evt-form .row2{display:flex;gap:8px;flex-direction:row}
.evt-form .row2 label{flex:1;min-width:0}
.cal-vac-lg{background:#fdf3e0;color:#a15a1a}
.carnet-acc{margin-bottom:0}
.carnet-acc>summary.carnet-sum{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-bottom:0}
.carnet-acc>summary.carnet-sum::-webkit-details-marker{display:none}
.carnet-acc>summary.carnet-sum::after{content:"▸";color:var(--gris);font-weight:400;margin-left:4px}
.carnet-acc[open]>summary.carnet-sum::after{content:"▾"}
.carnet-more{margin-left:auto;background:var(--bleu);color:#fff;font-size:.7rem;font-weight:700;border-radius:999px;padding:1px 9px}
.carnet-list{margin-top:10px}
.badge.b-plongee{background:#e0f3ef;color:#0a6b5f;border:1px solid #b3ddd6}
/* Historique des vérifications matériel */
.tbl-hv{width:100%;border-collapse:collapse;font-size:.82rem}
.tbl-hv th{text-align:left;padding:6px 8px;background:#f7fafc;color:var(--gris);font-weight:700;font-size:.72rem;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
.tbl-hv td{padding:7px 8px;border-top:1px solid #eef2f5;vertical-align:middle;white-space:nowrap}
.tbl-hv tbody tr{cursor:pointer}
.tbl-hv tbody tr:active{background:#eef4f9}
.badge.b-epave{background:#eef1f4;color:#334155;border:1px solid #c4ccd6}
.card.a-secu{background:#eef5ff;border:1px solid #c3d7f0}
.secu-list{margin:6px 0 0;padding-left:18px}
.secu-list li{font-size:.82rem;color:#23323b;margin-bottom:4px}
.secu-prerog{margin-top:8px;padding-top:8px;border-top:1px solid #c3d7f0;font-size:.78rem;line-height:1.5;color:#3a4a57}
.secu-prerog b{color:#23323b}

/* ----- Regroupement des sites par centre de plongée ----- */
.liste-titre{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--gris);margin:14px 0 6px}
.centre-bloc{margin-bottom:12px}
.centre-bloc>.dive{border-left:3px solid var(--bleu,#0e6b7a)}
.centre-spots{margin:6px 0 0 14px;padding-left:12px;border-left:2px solid var(--bord)}
.centre-spots .dive{margin-bottom:6px}
.centre-vide{font-size:.82rem;color:var(--gris);padding:6px 2px}
/* ----- Accordéon des sites rattachés à un centre ----- */
.centre-acc{margin:6px 0 0 14px}
.centre-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;padding:4px 2px;user-select:none;color:var(--gris)}
.centre-acc>summary::-webkit-details-marker{display:none}
.centre-acc>summary::before{content:"▸";display:inline-block;transition:transform .15s}
.centre-acc[open]>summary::before{transform:rotate(90deg)}
.centre-acc .ca-t{font-weight:600;font-size:.85rem}
.centre-acc .ca-n{margin-left:auto;font-size:.75rem;font-weight:600;background:#fff;border:1px solid var(--bord);border-radius:999px;padding:1px 8px;font-variant-numeric:tabular-nums}
.centre-acc .centre-spots{margin:6px 0 0 0}

/* ----- Services d'un centre : sous-titres de groupe ----- */
.svc-groupe{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gris);margin:12px 0 4px}
.svc-groupe:first-child{margin-top:2px}
.memb-sub{margin-top:8px}
.memb-sub>summary.memb-sub-h{list-style:none;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gris);padding:4px 0}
.memb-sub>summary.memb-sub-h::-webkit-details-marker{display:none}
.memb-sub>summary.memb-sub-h::before{content:"▸";color:var(--gris);font-weight:400}
.memb-sub[open]>summary.memb-sub-h::before{content:"▾"}
.memb-sub-n{margin-left:auto;font-size:.7rem;color:var(--profond);font-weight:700;background:#e6f2f9;border-radius:999px;padding:1px 9px;font-variant-numeric:tabular-nums}

/* ----- Matériel : accordéons par famille ----- */
.matos-acc{border:1px solid var(--bord);border-radius:12px;background:#fff;margin-bottom:8px;overflow:hidden;box-shadow:var(--ombre)}
.matos-acc>summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:12px 14px;background:#eef3f6;user-select:none}
.matos-acc>summary::-webkit-details-marker{display:none}
.matos-acc>summary::before{content:"▸";color:var(--gris);display:inline-block;transition:transform .15s;font-size:.95em}
.matos-acc[open]>summary::before{transform:rotate(90deg)}
.matos-acc .ma-t{font-weight:650;font-size:.98rem}
.matos-acc .ma-n{margin-left:auto;font-size:.78rem;color:var(--gris);font-weight:600;background:#fff;border:1px solid var(--bord);border-radius:999px;padding:1px 9px;font-variant-numeric:tabular-nums}
.matos-acc-body{padding:10px 10px 4px}
/* Historique des entrées/sorties de matériel */
.histo-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 2px;border-bottom:1px solid var(--bord);font-size:.82rem}
.histo-row:last-child{border-bottom:none}
.histo-row .hr-date{color:var(--gris);font-variant-numeric:tabular-nums;min-width:82px}
.histo-row .hr-badge{font-weight:700;font-size:.72rem;border-radius:6px;padding:1px 7px;white-space:nowrap}
.histo-row .hr-badge.hr-out{background:#fdeede;color:#8a5a00;border:1px solid #f0c987}
.histo-row .hr-badge.hr-in{background:#eaf6ee;color:#1b7a1b;border:1px solid #bfe3c9}
.histo-row .hr-art{font-weight:600;color:var(--profond)}
.histo-row .hr-mbr{margin-left:auto;color:var(--gris)}
.matos-acc-body .mat-row{margin-bottom:8px}
@media (prefers-reduced-motion:reduce){.matos-acc>summary::before{transition:none}}

/* ----- Carte GPS (fiche centre) ----- */
.gps-map{width:100%;height:230px;border:1px solid var(--bord);border-radius:10px;display:block}
.gps-links{margin-top:8px;display:flex;gap:14px;flex-wrap:wrap;font-size:.9rem}
