/* ============================================================
   CoordSecours — design system (charte AMSS, mobile-first)

   CONVENTION DE CONTRASTE (à respecter pour tout futur écran) :
   ─ Surface FONCÉE  (body / fond dégradé)  → texte CLAIR  (--on-dark)
   ─ Surface CLAIRE  (.card, tableau de bord) → texte FONCÉ (--ink)
   Toujours mettre le texte DANS une .card sur fond foncé, ou utiliser
   une couleur explicite. Ne jamais laisser un texte hériter d'une couleur
   ambiguë.
   ============================================================ */
:root{
  /* Charte */
  --cyan:#5BB5D0; --bleu:#1E3A8A; --rouge:#E63946;
  --vert:#2e9e5b; --jaune:#e8b23a; --noir:#1a1a1a;
  /* Surfaces & texte */
  --bg:#0f1f4d;            /* fond foncé */
  --on-dark:#eaf0ff;       /* texte sur fond foncé */
  --on-dark-muted:#b9c6ec; /* texte secondaire sur fond foncé */
  --card:#ffffff;          /* surface claire */
  --ink:#15233f;           /* texte sur surface claire */
  --muted:#5b667f;         /* texte secondaire sur surface claire */
  --line:#d8deea;
  --radius:14px; --tap:56px;
}
*{box-sizing:border-box}
html,body{margin:0}
/* L'attribut hidden doit toujours l'emporter (même sur display:flex des overlays) */
[hidden]{display:none !important}
body{
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  background:linear-gradient(160deg,var(--bleu),var(--bg));
  color:var(--on-dark);                 /* défaut : texte clair sur fond foncé */
  min-height:100vh; -webkit-text-size-adjust:100%;
}

/* Mises en page */
.wrap{max-width:460px;margin:0 auto;padding:1.1rem;min-height:100vh;
  display:flex;flex-direction:column;justify-content:safe center;gap:.8rem}
.wrap.pc{max-width:380px}

/* En-tête de marque (sur fond foncé → texte clair) */
.brand{display:flex;align-items:center;gap:.6rem;color:var(--on-dark);
  justify-content:center;margin-bottom:.4rem}
.brand b{font-size:1.25rem;letter-spacing:.2px}
.badge{background:var(--cyan);color:var(--bleu);font-weight:700;font-size:.72rem;
  padding:.2rem .7rem;border-radius:999px}

/* Carte = surface claire → texte foncé */
.card{background:var(--card);color:var(--ink);border-radius:var(--radius);
  padding:1.25rem;box-shadow:0 12px 40px rgba(0,0,0,.28)}
.card h1{color:var(--ink);font-size:1.3rem;margin:.2rem 0 1rem}
.card p{color:var(--ink)}
.step-label{color:var(--muted);font-size:.8rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.5px}

/* Champs */
label{display:block;color:var(--ink);font-weight:600;font-size:.9rem;margin:.2rem 0 .35rem}
input[type=text],input[type=tel],input[type=password],input[type=number],
input[type=datetime-local],input[type=date],input[type=time]{
  width:100%;height:var(--tap);font-size:1.15rem;padding:0 .9rem;color:var(--ink);
  border:2px solid var(--line);border-radius:12px;outline:none;background:#fff;
  font-family:inherit;-webkit-appearance:none;appearance:none}
input[type=datetime-local],input[type=date],input[type=time]{font-size:1rem}
input::placeholder{color:#818da6}
/* Majuscules + centrage réservés aux champs « code » (outil, dispositif, matricule, PIN) */
input.code{font-variant-numeric:tabular-nums;text-align:center;font-weight:700;
  text-transform:uppercase;letter-spacing:.06em}
input:focus{border-color:var(--cyan)}

/* Boutons */
.btn{display:flex;align-items:center;justify-content:center;gap:.5rem;
  width:100%;min-height:var(--tap);font-size:1.05rem;font-weight:700;
  border:0;border-radius:12px;cursor:pointer;color:#fff;background:var(--bleu);
  text-decoration:none;-webkit-tap-highlight-color:transparent}
.btn:active{transform:translateY(1px)}
.btn.cyan{background:var(--cyan);color:var(--bleu)}
.btn.ghost{background:#eef1f8;color:var(--bleu)}
.btn.danger{background:var(--rouge);color:#fff}
.btn.link{background:transparent;color:var(--bleu);min-height:auto;font-weight:600;
  text-decoration:underline}
.btn[disabled]{opacity:.5}

/* Pastilles équipes */
.equipes{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.4rem 0 .8rem}
.equipes button{min-height:var(--tap);border-radius:12px;border:2px solid var(--line);
  background:#fff;font-weight:700;font-size:1rem;color:var(--ink);cursor:pointer}
.equipes button.sel{border-color:var(--cyan);background:#eef9fc}

/* Messages (sur carte claire) */
.msg{margin:.6rem 0 0;font-size:.9rem;min-height:1.2em;color:var(--ink)}
.msg.err{color:var(--rouge);font-weight:700}
.msg.ok{color:var(--vert);font-weight:700}

/* Divers */
.bandeau{background:var(--cyan);color:var(--bleu);font-weight:700;border-radius:12px;
  padding:.7rem 1rem;text-align:center;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.row{display:flex;gap:.6rem}
.row .btn{flex:1}
.hint{color:var(--muted);font-size:.85rem;text-align:center;margin-top:.6rem}
/* .foot vit sur fond foncé → texte clair atténué */
small.foot{display:block;text-align:center;color:var(--on-dark-muted);
  margin-top:1rem;font-size:.75rem}

/* ── Utilitaires (la CSP interdit les styles inline → tout passe par des classes) ── */
.stack{display:flex;flex-direction:column;gap:.7rem}
.mt{margin-top:1rem}
.mt-s{margin-top:.6rem}
.mb{margin-bottom:1rem}
.muted{color:var(--muted)}
.full{grid-column:1/-1}

/* ── Interface PC (tableau de bord) — surface CLAIRE ── */
body.pc-body{background:#eef1f8;color:var(--ink)}
.pc-shell{max-width:none;margin:0;min-height:100vh;display:flex;flex-direction:column}
.pc-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;
  background:var(--bleu);color:#fff;padding:.7rem 1.2rem}
.pc-top b{font-size:1.1rem;color:#fff}
.pc-top-l{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.pc-top-r{white-space:nowrap;font-size:.9rem}
/* Poste courant + N° Centaure dans le bandeau (texte intégré, séparateurs verticaux) */
.pc-poste{display:inline-flex;align-items:center;color:#fff;min-width:0;flex-wrap:wrap}
.pc-poste-pick{position:relative;display:inline-flex;align-items:center;padding:0 20px;
  border-left:1px solid rgba(255,255,255,.25)}
.pc-poste-sel{appearance:none;-webkit-appearance:none;background:transparent;color:#fff;border:none;outline:none;
  font:inherit;font-size:1.1rem;font-weight:700;cursor:pointer;padding:0 18px 0 0;margin:0;max-width:260px;
  text-overflow:ellipsis}
.pc-poste-sel option{color:var(--ink);font-weight:600}
.pc-poste-caret{position:absolute;right:16px;pointer-events:none;color:rgba(255,255,255,.85);font-size:.7rem}
.pc-poste-cent{display:inline-flex;align-items:center;gap:8px;padding:0 20px;white-space:nowrap;
  border-left:1px solid rgba(255,255,255,.25)}
.pc-poste-cent .lbl{font-size:.78rem;color:#9db8e8;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.pc-poste-cent b{color:#fff;font-weight:700;font-size:1.1rem;letter-spacing:1px}
.pc-nav{display:flex;gap:.3rem;flex-wrap:wrap;background:#fff;padding:.5rem 1rem;
  border-bottom:1px solid var(--line)}
.pc-nav a{padding:.5rem .9rem;border-radius:10px;text-decoration:none;color:var(--bleu);
  font-weight:600;font-size:.92rem}
.pc-nav a.active{background:var(--cyan);color:var(--bleu)}
.pc-main{flex:1;padding:1.4rem;color:var(--ink)}
.pc-main h2{color:var(--ink)}
.pc-logout{color:#cfe0ff;text-decoration:none;font-size:.85rem}
/* Bascule PC ↔ Administration + distinction visuelle de l'admin */
.pc-switch{color:#fff;text-decoration:none;font-size:.85rem;font-weight:600;border:1px solid rgba(255,255,255,.35);border-radius:7px;padding:4px 11px}
.pc-switch:hover{background:rgba(255,255,255,.12)}
.pc-sep2{color:rgba(255,255,255,.4);margin:0 4px}
.admin-top{background:#13203a}
.admin-tag{background:var(--cyan);color:#0c447c;font-size:.7rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:3px 9px;border-radius:6px}
.admin-body{background:#eaecf1}
.admin-login{background:#eaecf1}
.badge.admin{background:#13203a;color:#fff}

/* ── Éditeur Secteurs/Équipes (glisser-déposer) ── */
.st-top{display:flex;gap:8px;margin:.4rem 0 1rem;max-width:480px}
.st-top input{flex:1}
.st-synced{margin:.2rem 0 1rem;padding:9px 14px;border-radius:10px;background:#e7f5ec;color:#1d6f3f;border:1px solid #bfe3cc;font-size:.92rem;font-weight:600}
.st-typebar{display:flex;align-items:center;gap:10px;margin:.6rem 0 .4rem}
.st-typebar select{max-width:340px;width:auto}
.st-zones{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}
.st-zone{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem .8rem}
.st-zone.st-none{background:#f6f8fc;border-style:dashed}
.st-zone-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:.5rem}
.st-zone-h b{color:var(--ink);font-size:1rem;min-width:0;overflow-wrap:anywhere}
.st-zone-act{display:flex;align-items:center;gap:6px;flex-shrink:0}
.st-zone .st-addeq{width:100%;margin-top:8px}
.st-grip{cursor:grab;color:var(--muted);font-size:1.1rem;line-height:1;user-select:none;padding:0 2px}
.st-zone.drag{opacity:.5}
/* Motifs de main courante (Admin) */
.mo-list{display:flex;flex-direction:column;gap:8px;max-width:680px;margin-top:.6rem}
.mo-row{display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.mo-row.off{opacity:.55}
.mo-row.drag{opacity:.5}
.mo-grip{cursor:grab;color:var(--muted);font-size:1.1rem;user-select:none}
.mo-lib{flex:1;font-weight:600;color:var(--ink)}
.mo-act{display:flex;gap:6px;flex-wrap:wrap}
/* Invite d'installation PWA */
.pwa-tip{position:fixed;left:50%;bottom:12px;z-index:2000;width:calc(100% - 24px);max-width:520px;
  transform:translate(-50%,140%);opacity:0;transition:transform .26s ease,opacity .26s ease;
  display:flex;align-items:center;gap:10px;background:var(--bleu);color:#fff;border-radius:14px;padding:11px 13px;
  font-size:.95rem;box-shadow:0 10px 28px rgba(8,16,40,.36)}
.pwa-tip.in{transform:translate(-50%,0);opacity:1}
.pwa-ic{flex:none;width:32px;height:32px;border-radius:8px;background:#fff;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.pwa-ic img{width:26px;height:26px;display:block}
.brand-logo{flex:none;height:40px;width:auto;max-width:200px;border-radius:6px}
.pc-top-logo{flex:none;height:28px;width:auto;max-width:170px;border-radius:5px;vertical-align:middle}
.logo-box{display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 16px;margin:.6rem 0}
.logo-prev{max-width:300px;max-height:90px;width:auto;height:auto;display:block}
.pwa-txt{flex:1;line-height:1.35}
.pwa-tip b{color:#fff}
.pwa-tip .pwa-go{flex:none;background:#fff;color:var(--bleu);border-color:#fff;white-space:nowrap}
.pwa-x{flex:none;background:none;border:0;color:#cfe0ff;font-size:1rem;cursor:pointer;padding:2px 4px}
/* Bannière iOS explicative (étapes) */
.pwa-tip.pwa-ios{flex-direction:column;align-items:stretch;gap:10px;padding:14px 16px;max-width:430px}
.pwa-ios-h{display:flex;align-items:center;gap:10px}
.pwa-ios-h b{flex:1;font-size:1.05rem;color:#fff}
.pwa-ios-body{display:flex;flex-direction:column;gap:9px}
.pwa-ios-body>p{margin:0;color:#dfe8ff;line-height:1.45;font-size:.9rem}
.pwa-step{display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.13);border-radius:10px;padding:9px 11px;font-size:.92rem;line-height:1.35}
.pwa-step b{color:#fff}
.pwa-step-ic{flex:none;color:#fff;display:flex;align-items:center}
.pwa-step-n{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--cyan);color:#0c447c;font-weight:800;font-size:.72rem;margin-right:7px;vertical-align:middle}
.st-drop{display:flex;flex-direction:column;gap:6px;min-height:48px;border-radius:8px;padding:4px}
.st-drop.over{background:#e6eeff;outline:2px dashed var(--cyan)}
.st-empty{color:var(--muted);font-size:13px;text-align:center;margin:8px 0}
.st-eq{display:flex;align-items:center;gap:8px;background:#f6f8fc;border:1px solid var(--line);border-radius:8px;padding:7px 10px;cursor:grab}
.st-eq.drag{opacity:.4}
.st-eq-n{flex:1;font-weight:600;color:var(--ink)}
.st-eq-s{font-size:11px;color:var(--muted);white-space:nowrap}
.st-eq-act{display:flex;gap:4px}
.lnk{background:none;border:0;color:var(--muted);cursor:pointer;font-size:14px;padding:2px 5px;border-radius:5px}
.lnk:hover{background:#e6eeff;color:var(--bleu)}

/* ── Synthèse PC temps réel ── */
.seg-group{display:flex;gap:.3rem}
.seg-btn{padding:.4rem .9rem;border:1px solid var(--line);background:#fff;color:var(--bleu);font-weight:600;font-size:.9rem;border-radius:8px;cursor:pointer}
.seg-btn.on{background:var(--cyan);color:var(--bleu);border-color:var(--cyan)}
.syn-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:.6rem 0 .6rem}
.syn-kpi{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.6rem .9rem;text-align:center}
.syn-kpi span{display:block;font-size:.78rem;color:var(--muted)}
.syn-kpi b{display:block;font-size:1.7rem;font-weight:800;line-height:1.1;margin-top:2px;color:var(--ink)}
.syn-kpi.k-cumul b{color:var(--bleu)}
.syn-kpi.k-encours b{color:#1f7fa0}
.syn-kpi.k-sorties b{color:var(--vert)}
.syn-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:1rem}
.syn-tile{border-radius:10px;padding:.45rem;text-align:center;background:#eef1f8;color:var(--ink)}
.syn-tile b{display:block;font-size:1.3rem;font-weight:800;line-height:1}
.syn-tile span{display:block;font-size:.66rem;font-weight:700;letter-spacing:.4px;margin-top:1px}
.syn-tile.vert{background:var(--vert);color:#fff}
.syn-tile.jaune{background:var(--jaune);color:#1a1a1a}
.syn-tile.rouge{background:var(--rouge);color:#fff}
.syn-tile.noir{background:var(--noir);color:#fff}
.syn-disp{margin-bottom:1rem}
.syn-disp-h{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;margin:.2rem 0 .5rem}
.syn-disp-h h3{color:var(--ink);font-size:1.1rem;margin:0}
.syn-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.6rem}
.syn-eq{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.7rem .9rem}
.syn-eq-h{display:flex;justify-content:space-between;align-items:baseline;gap:.6rem;margin-bottom:.5rem}
.syn-eq-h b{color:var(--ink);font-size:1.05rem}
.syn-tot{color:var(--muted);font-size:.9rem;white-space:nowrap}
.syn-stats{display:flex;gap:8px;margin-bottom:8px}
.syn-stat{flex:1;background:#f6f8fc;border-radius:8px;padding:.4rem .7rem;text-align:center}
.syn-stat span{display:block;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.3px}
.syn-stat b{display:block;font-size:1.5rem;font-weight:800;color:var(--ink);line-height:1.1}
.syn-cols{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}
.syn-c{text-align:center;font-weight:800;font-size:1.15rem;color:#fff;border-radius:8px;padding:.4rem .3rem}
.syn-c.vert{background:var(--vert)} .syn-c.jaune{background:var(--jaune);color:#1a1a1a}
.syn-c.rouge{background:var(--rouge)} .syn-c.noir{background:var(--noir)}
/* Saturation (barre + niveau, sans style inline) */
.syn-eq-sat{margin-top:.6rem}
.syn-sat-head{display:flex;justify-content:space-between;font-size:12px;margin-bottom:3px}
.syn-sat-head .lab{color:var(--muted)}
.syn-sat-none{font-size:12px;color:#5b667f;margin-top:8px}
.syn-sat-tr{height:8px;background:#eef1f8;border-radius:4px;overflow:hidden}
.syn-sat-fl{height:100%}
.syn-sat-fl.ok{background:var(--vert)}
.syn-sat-fl.warn{background:var(--jaune)}
.syn-sat-fl.over{background:var(--rouge)}
.sat-ok{color:var(--vert);font-weight:700}
.sat-warn{color:#946b00;font-weight:700}
.sat-over{color:var(--rouge);font-weight:700}
.sw0{width:0}.sw5{width:5%}.sw10{width:10%}.sw15{width:15%}.sw20{width:20%}.sw25{width:25%}
.sw30{width:30%}.sw35{width:35%}.sw40{width:40%}.sw45{width:45%}.sw50{width:50%}.sw55{width:55%}
.sw60{width:60%}.sw65{width:65%}.sw70{width:70%}.sw75{width:75%}.sw80{width:80%}.sw85{width:85%}
.sw90{width:90%}.sw95{width:95%}.sw100{width:100%}
/* Tableau */
.syn-twrap{overflow:auto;border:1px solid var(--line);border-radius:10px}
.syn-table{width:100%;border-collapse:collapse;font-size:15px;background:#fff;min-width:560px}
.syn-table th,.syn-table td{padding:9px 10px;text-align:center;color:var(--ink);border-bottom:1px solid #eef1f8}
.syn-table th{color:var(--muted);font-weight:500;background:#fff}
.syn-table .l{text-align:left}
.syn-table td.b,.syn-table td.c{font-weight:800}
.syn-table td.cv{color:var(--vert);font-weight:800}
.syn-table td.cj{color:#946b00;font-weight:800}
.syn-table td.cr{color:var(--rouge);font-weight:800}
.syn-table td.cn{color:#1a1a1a;font-weight:800}
.syn-table td.c0{color:#6f7a90;font-weight:800}
.syn-table .sat{min-width:120px}
.syn-table .sat .syn-sat{display:flex;align-items:center;gap:6px}
.syn-table .sat .syn-sat-tr{flex:1;min-width:44px;height:7px}
.h-vert{color:var(--vert)} .h-jaune{color:#946b00} .h-rouge{color:var(--rouge)}
.syn-table .syn-grp td{background:#eef1f8;color:var(--bleu);font-weight:700;font-size:12px;text-align:left}
.syn-table .syn-total td{border-top:2px solid var(--line);background:#f6f8fc;color:var(--bleu);font-weight:800}
/* Synthèse groupée par secteur */
.syn-sec{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#e8eefb;border:1px solid #c7d4ee;border-radius:9px;padding:6px 12px;margin:.9rem 0 .5rem}
.syn-sec b{color:var(--bleu);font-size:1rem}
.syn-sec.none{background:#f6f8fc;border-style:dashed}
.syn-sec.none b{color:var(--muted)}
.syn-sec-r{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:.85rem}
.syn-sec-tot{color:var(--muted)}
.syn-sec-c{display:flex;gap:4px}
.syn-sec-c .sb{border-radius:5px;padding:2px 8px;font-weight:800;color:#fff}
.syn-sec-c .sb.vert{background:var(--vert)} .syn-sec-c .sb.jaune{background:var(--jaune);color:#1a1a1a}
.syn-sec-c .sb.rouge{background:var(--rouge)} .syn-sec-c .sb.noir{background:var(--noir)}
.syn-sec-sat{font-weight:700}
.syn-table .syn-secrow td{background:#e8eefb;color:var(--bleu);font-weight:700}
.syn-table .syn-secrow{cursor:pointer}
.syn-table td.eqsub.l{padding-left:22px}
/* ── Synthèse : barre d'outils, filtres ── */
.tf-seuils{margin:.3rem 0 .2rem}
.seuils-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:.5rem 0 .3rem;align-items:center}
.seuils-row>span{display:flex;align-items:center;gap:8px;min-width:0}
.seuils-row label.sub{display:inline;margin:0;font-weight:600;font-size:.82rem;color:var(--muted);white-space:nowrap}
.seuils-row input{flex:1;min-width:0;width:auto;height:46px;text-align:center}
.seuils-row input[disabled]{background:#f1f3f8;color:var(--muted)}
.seuils-row .suf{color:var(--muted)}
.seuils-leg{display:flex;flex-wrap:wrap;gap:7px;margin:.1rem 0 .3rem}
.sl{font-size:.78rem;font-weight:700;padding:3px 10px;border-radius:999px}
.sl.v{background:#e7f5ec;color:#1d6f3f}
.sl.j{background:#fbf0d6;color:#946b00}
.sl.r{background:#fde3e5;color:#a32d2d}
.sm{font-size:.82rem}
.syn-tools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:.2rem 0 .55rem}
.syn-tsearch{position:relative;flex:1;min-width:170px}
.syn-tsearch input{width:100%}
.syn-tools select{width:auto;min-width:150px}
.syn-tools input,.syn-tools select,.syn-qf,.syn-collapse{height:44px;box-sizing:border-box;font-size:.85rem}
.syn-qf,.syn-collapse{display:inline-flex;align-items:center;padding:0 15px;border:1px solid var(--line);background:#fff;border-radius:8px;color:var(--ink);cursor:pointer;font-weight:600}
.syn-qf{color:var(--muted)}
.syn-qf.on{background:var(--rouge);border-color:var(--rouge);color:#fff}
.syn-collapse[hidden]{display:none}
.syn-chips{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 .85rem}
.syn-chip{font-size:.8rem;padding:4px 11px;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer}
.syn-chip.on{background:var(--cyan);border-color:var(--cyan);color:#0c3a48;font-weight:700}
/* ── Synthèse : à surveiller ── */
.syn-watch{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:10px 14px;margin:0 0 1rem}
.syn-watch-grp{display:flex;flex-direction:column;gap:6px;min-width:0}
.syn-watch-h{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;margin:0 0 1px;padding-left:2px}
.syn-watch-h.wh-sat{color:#946b00}
.syn-watch-h.wh-rn{color:#a32d2d}
.syn-w{display:flex;align-items:center;gap:10px;padding:8px 11px;background:#fff;border:1px solid var(--line);border-left-width:4px;border-radius:9px;cursor:pointer}
.syn-w:hover{background:#fafbff}
.syn-w.sev-over{border-left-color:var(--rouge)}
.syn-w.sev-warn{border-left-color:var(--jaune)}
.syn-w-t{font-size:.9rem}
.syn-w-r{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.syn-w-sat{font-size:.9rem;white-space:nowrap}
/* ── Synthèse : cockpit compact ── */
.syn-sec{cursor:pointer}
.syn-sec-l{display:flex;align-items:center;gap:7px}
.syn-chev{color:var(--muted);font-size:.8rem;width:12px;display:inline-block}
.syn-ccg{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;margin:0 0 1rem}
.syn-cc{display:flex;background:#fff;border:1px solid var(--line);border-left-width:4px;border-radius:10px;overflow:hidden}
.syn-cc.cc-over{border-left-color:var(--rouge)}
.syn-cc.cc-warn{border-left-color:var(--jaune)}
.syn-cc.cc-ok{border-left-color:var(--vert)}
.syn-cc.cc-none{border-left-color:var(--line)}
.syn-cc.flash{box-shadow:0 0 0 2px var(--cyan)}
.syn-cc-b{padding:8px 11px;flex:1;min-width:0}
.syn-cc-h{display:flex;justify-content:space-between;align-items:baseline;gap:6px}
.syn-cc-h b{font-size:.92rem;color:var(--ink)}
.syn-cc-stats{display:flex;gap:16px;align-items:flex-end;margin:3px 0 7px}
.cc-st{display:flex;flex-direction:column;line-height:1.05}
.cc-st b{font-size:1rem;font-weight:800;color:var(--muted)}
.cc-st i{font-size:.64rem;color:var(--muted);font-style:normal;text-transform:uppercase;letter-spacing:.3px}
.cc-st.cc-cur b{font-size:1.4rem;color:var(--ink)}
.syn-cc-f{display:flex;justify-content:flex-start;align-items:center;gap:6px;margin-top:6px}
.syn-cc-f .sat-ok,.syn-cc-f .sat-warn,.syn-cc-f .sat-over{font-size:.78rem}
/* ── Synthèse : vue secteurs (macro) ── */
.syn-seccards{display:grid;grid-template-columns:repeat(auto-fit,minmax(195px,1fr));gap:9px;margin:0 0 1rem}
.syn-seccard{background:#fff;border:1px solid var(--line);border-radius:11px;padding:12px;cursor:pointer}
.syn-seccard:hover{border-color:var(--cyan)}
.syn-seccard-h{display:flex;justify-content:space-between;align-items:center}
.syn-seccard-h b{color:var(--ink);font-size:1rem}
.syn-seccard-sub{font-size:.8rem;margin:3px 0 9px}
.syn-seccard-p{margin-top:9px}
/* ── Synthèse : heatmap ── */
.syn-heat-sec{margin:0 0 11px}
.syn-heat-lab{font-size:.8rem;color:var(--muted);margin:0 0 5px;font-weight:600}
.syn-heat{display:grid;grid-template-columns:repeat(auto-fit,minmax(92px,1fr));gap:6px}
.syn-ht{border-radius:10px;padding:8px 9px;min-height:56px;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;color:#fff}
.syn-ht b{font-weight:800;font-size:1rem}
.syn-ht-n{font-size:.72rem;opacity:.95}
.syn-ht-e{font-size:.68rem;opacity:.88}
.syn-ht.ht-ok{background:var(--vert)}
.syn-ht.ht-warn{background:var(--jaune);color:#4a3702}
.syn-ht.ht-over{background:var(--rouge)}
.syn-ht.ht-nd{background:#9aa3b5}
.syn-heat-leg{display:flex;flex-wrap:wrap;gap:14px;font-size:.78rem;color:var(--muted);margin:.2rem 0 1rem}
.syn-heat-leg i{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.syn-heat-leg i.ht-ok{background:var(--vert)}
.syn-heat-leg i.ht-warn{background:var(--jaune)}
.syn-heat-leg i.ht-over{background:var(--rouge)}
.syn-heat-leg i.ht-nd{background:#9aa3b5}
/* ── Réassort matériel (PC suivi + terrain) ── */
.pc-head-actions{display:flex;gap:8px;flex-wrap:wrap}
/* Secouristes — roster par équipe (avatars), glisser-déposer */
.sk-band{background:#e8eefb;border:1px solid #c7d4ee;border-radius:9px;padding:6px 12px;font-weight:700;color:var(--bleu);font-size:.9rem;margin:1rem 0 .5rem}
.sk-band.warn{background:#fffdf7;border-color:#f0d089;color:#946b00}
.sk-eqs{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:9px}
.sk-eq{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px 11px}
.sk-eq.sans{border-style:dashed}
.sk-eq-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:7px}
.sk-eq-h b{color:var(--ink);font-size:.92rem}
.sk-n{font-size:.75rem;color:var(--muted);font-weight:700}
.sk-zone{display:flex;flex-wrap:wrap;gap:6px;min-height:34px;border-radius:8px;padding:3px}
.sk-zone.over{background:#e6eeff;outline:2px dashed var(--cyan)}
.sk-zone-na{background:#fafbfe;border:1px dashed var(--line);padding:8px}
.sk-drop{font-size:.78rem;color:#9aa3b5;padding:6px}
.sk-av{display:inline-flex;align-items:center;gap:6px;background:#eef9fc;border:1px solid #bfe3ef;border-radius:999px;padding:3px 8px 3px 3px;font-size:.8rem;color:#0c3a48;font-weight:600;cursor:grab}
.sk-av.drag{opacity:.5}
.sk-i{width:24px;height:24px;border-radius:50%;background:var(--cyan);color:#08384a;font-size:.66rem;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.sk-nm{white-space:nowrap}
.sk-x{border:none;background:transparent;color:#a32d2d;font-size:.8rem;cursor:pointer;padding:0 2px;line-height:1}
.sk-rapport{background:#f1f7ff;border:1px solid #c7d4ee;border-radius:10px;padding:11px 13px;margin:0 0 1rem;font-size:.9rem;color:var(--ink)}
.sk-rapport .sk-w{color:#946b00;font-weight:700}
/* Logistique PC — liste groupée par statut */
.lg-sec{font-size:.82rem;font-weight:800;margin:1rem 0 .4rem}
.lg-sec.v{color:#946b00}.lg-sec.t{color:#185fa5}.lg-sec.h{color:var(--muted);cursor:pointer;user-select:none}
.lg-row{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 11px;margin-bottom:6px}
.lg-row.urg{border-left:3px solid var(--rouge)}
.lg-row-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.lg-eq{font-weight:700;font-size:.86rem;color:var(--ink);min-width:120px}
.lg-it{flex:1;font-size:.86rem;color:var(--ink);min-width:120px}
.lg-sub{font-size:.72rem;color:var(--muted);margin-top:4px}
.lg-u{color:var(--rouge);font-weight:800;font-size:.66rem;margin-left:6px}
.lg-act{display:flex;gap:6px;flex-shrink:0}
.lg-act .btn{width:auto}
.lg-search{height:42px;font-size:.95rem;margin:0 0 8px}
/* Terrain — gros bouton d'action de la file logistique */
.ra-bigbtn{display:block;width:100%;border:none;border-radius:10px;padding:13px;font-size:1rem;font-weight:800;color:#fff;background:var(--vert);cursor:pointer;margin-top:8px}
.ra-bigbtn.sec{background:var(--bleu)}
.rs-form{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin:0 0 1rem}
.rs-form h3{margin:0 0 .6rem;color:var(--ink)}
.rs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px;margin:0 0 .8rem}
.rs-grp{font-size:.9rem;color:var(--muted);margin:1rem 0 .4rem;font-weight:700}
.rs-card{background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px 13px;margin:0 0 8px}
.rs-grid .rs-card{margin:0}
.rs-card.rs-urg{border-left:4px solid var(--rouge)}
.rs-h{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 5px}
.rs-h b{color:var(--ink);font-size:.98rem}
.rs-bd{color:var(--ink);font-size:.92rem}
.rs-meta{color:var(--muted);font-size:.78rem;margin-top:5px}
.rs-time{color:var(--muted);font-size:.74rem;margin-top:5px;line-height:1.4}
.rs-act{display:flex;gap:8px;margin-top:9px}
.rs-act .btn{width:auto}
.rs-u{color:var(--rouge);font-weight:800}
.rs-badge{font-size:.72rem;font-weight:800;padding:3px 9px;border-radius:999px;white-space:nowrap}
.rs-badge.rs-emise{background:#fbf0d6;color:#946b00}
.rs-badge.rs-validee{background:#e6f1fb;color:#185fa5}
.rs-badge.rs-encours{background:#e6f1fb;color:#0c447c}
.rs-badge.rs-refusee{background:#eef1f8;color:#5b667f}
.rs-badge.rs-traitee{background:#e7f5ec;color:#1d6f3f}
.ra-tabs{margin:.2rem 0 .8rem}
.ra-articles{display:flex;flex-direction:column;gap:6px}
.ra-art{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:8px 12px}
.ra-art.on{border-color:var(--cyan);background:#eef9fc}
.ra-art-n{color:var(--ink);font-weight:600}
.ra-stp{display:inline-flex;align-items:center;gap:10px}
.ra-stp button{width:34px;height:34px;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:1.1rem;font-weight:800;color:var(--bleu);cursor:pointer}
.ra-stp b{min-width:20px;text-align:center;font-size:1rem;color:var(--ink)}
.ra-stp input[type=number]{width:58px;height:38px;text-align:center;border:1px solid var(--line);border-radius:8px;font-weight:800;font-size:1rem;color:var(--ink);padding:0}
.ra-dot{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#fff;color:var(--rouge);font-size:.75rem;font-weight:800;margin-left:8px;line-height:1}
.pc-nav a{position:relative}
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:var(--rouge);color:#fff;font-size:.72rem;font-weight:800;line-height:1}
.push-btn.on{background:#e7f5ec;color:#1d6f3f;border:1px solid #bfe3cc}
/* Annuaire PC (contacts secouristes) */
.an-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:8px}
.an-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:11px;padding:9px 11px;cursor:pointer}
.an-card.on{border-color:var(--cyan);background:#eef9fc}
.an-av{width:34px;height:34px;border-radius:50%;background:var(--bleu);color:#fff;font-weight:700;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.an-av.lg{width:46px;height:46px;font-size:1rem}
.an-meta{flex:1;min-width:0}
.an-nom{display:block;font-weight:700;color:var(--ink)}
.an-sub{display:block;font-size:.8rem;color:var(--muted)}
.an-telmark{font-size:1rem}
.an-telmark.ok{color:var(--vert)}
.an-telmark.no{color:var(--line)}
.an-modal{position:fixed;inset:0;background:rgba(20,35,63,.45);display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}
.an-modal[hidden]{display:none}
.an-modal-card{position:relative;background:#fff;border-radius:16px;padding:20px;width:100%;max-width:460px;max-height:90vh;overflow:auto;box-shadow:0 12px 40px rgba(20,35,63,.3)}
.an-close{position:absolute;top:10px;right:10px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:1rem;cursor:pointer;line-height:1}
.an-close:hover{background:#f4f7fc}
.an-fhead{display:flex;align-items:center;gap:11px;margin-bottom:12px;padding-right:32px}
.an-fnom{font-weight:800;color:var(--ink);font-size:1.05rem}
.an-fsub{color:var(--muted);font-size:.85rem}
.an-badge{background:#eaf2ff;color:var(--bleu);font-weight:700;padding:2px 8px;border-radius:7px;font-size:.78rem}
.an-telbox{background:#f4f7fc;border-radius:10px;padding:10px 12px;margin-bottom:10px}
.an-tl{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.an-tnum{font-size:1.5rem;font-weight:700;color:var(--ink);letter-spacing:.5px}
.an-tnone{color:var(--muted)}
.an-actions{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:10px}
.an-act{flex:1 1 auto;min-width:84px;text-align:center;border:1px solid var(--line);border-radius:9px;padding:9px;font-weight:700;font-size:.85rem;color:var(--ink);background:#fff;cursor:pointer;text-decoration:none}
.an-act.call{background:#e7f6ee;border-color:#bfe3cc;color:#1d6f3f}
.an-act.sms{background:#eaf2ff;border-color:#cfe0fb;color:var(--bleu)}
.an-qr{margin:6px 0 10px;text-align:center}
.an-qr-t{font-size:.78rem;color:var(--muted);margin-bottom:6px}
.an-qr-img{width:160px;margin:0 auto}
.an-qr-img svg{width:160px;height:160px;display:block}
.an-hwrap{border-top:1px solid var(--line);margin-top:6px;padding-top:8px}
.an-h-t{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px}
.an-h{display:flex;justify-content:space-between;font-size:.85rem;color:var(--ink);padding:3px 0}
.an-ht{color:var(--muted)}
.mx-perm b{font-weight:700;display:block}
.mx-desc{display:block;color:var(--muted);font-size:.75rem;font-weight:400;margin-top:1px;white-space:normal;max-width:300px}
.rf-cat h3{font-size:.95rem;color:var(--bleu);margin:0 0 8px}
/* Hub Paramétrage (Admin) */
.pg-sec{margin-bottom:18px}
.pg-sec h3{font-size:.95rem;color:var(--bleu);margin:0 0 8px}
.pg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.pg-card{display:flex;align-items:center;gap:11px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 13px;text-decoration:none;color:var(--ink)}
.pg-card:hover{border-color:var(--cyan);background:#eef9fc}
.pg-ic{font-size:1.5rem;flex:0 0 auto}
.pg-tx{display:flex;flex-direction:column;min-width:0}
.pg-tx b{font-weight:700}
.pg-tx small{color:var(--muted);font-size:.8rem}
/* Main courante — page de garde & consignes */
.mc-garde-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;font-size:.9rem}
.mc-gfull{grid-column:1/-1}
.mc-gl{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:2px}
.mc-garde-grid input{width:100%}
.mc-consignes{display:flex;flex-direction:column;gap:6px}
.mc-cs{display:flex;flex-direction:column;background:#f4f7fc;border-radius:8px;padding:7px 10px;font-size:.9rem}
.mc-cs-t{font-size:.72rem;color:var(--muted);margin-bottom:1px}
.mc-ext input{flex:1;min-width:0}
.mc-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-bottom:12px}
.mc-stat{background:var(--bleu);color:#fff;border-radius:12px;padding:12px;text-align:center}
.mc-stat-n{font-size:1.7rem;font-weight:800;line-height:1}
.mc-stat-l{font-size:.78rem;opacity:.92;margin-top:3px}
/* Sélecteurs terrain (mode global, niveau bilan) sur fond foncé */
[data-tmode],[data-bilan-niveau]{display:flex;gap:6px;margin-bottom:8px}
[data-tmode] .seg-btn,[data-bilan-niveau] .seg-btn{flex:1;background:rgba(255,255,255,.12);color:#fff;border:1px solid rgba(255,255,255,.28);border-radius:9px;padding:9px 6px;font-weight:700;font-size:.85rem;cursor:pointer}
[data-tmode] .seg-btn.on,[data-bilan-niveau] .seg-btn.on{background:#fff;color:var(--bleu);border-color:#fff}
.fb-save{font-size:.8rem;color:#cfe0fb;margin:-2px 0 8px;min-height:1em;font-weight:700}
.fb-save.ok{color:#9be6bf}
.fb-save.off{color:var(--jaune)}
.fb-age-aff{font-size:.85rem;font-weight:700;color:#cfe0fb;margin-top:4px}
/* Tranche d'âge déduite de l'âge (#5) : chip « auto » = pré-sélection non figée */
.chip.auto{border-style:dashed;border-color:var(--cyan);color:var(--bleu)}
.chip.auto small{font-size:.62rem;color:var(--muted);font-weight:700;margin-left:3px;text-transform:uppercase}
/* Fiche paginée : numéro victime + progression par regard */
.vnum-line{display:flex;align-items:center;justify-content:space-between;background:#eaf6fb;border:0.5px solid #bfe1ee;border-radius:10px;padding:8px 13px;margin-bottom:8px}
.vnum-line .l{font-size:.72rem;letter-spacing:.05em;color:var(--muted)}
.vnum-line b{color:var(--bleu);font-size:1.05rem}
/* Sommaire COLLANT : reste visible en bas de page → changer de page sans remonter */
.fb-prog{display:flex;gap:4px;margin:6px 0;position:sticky;top:0;z-index:30;background:var(--bg);padding:6px 0}
.fb-sec-h.static{cursor:default}
.fb-tab{flex:1;min-width:0;border:0;border-radius:8px;padding:8px 2px;font-size:.68rem;font-weight:700;background:rgba(255,255,255,.14);color:#cfe0fb;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fb-tab.on{background:#fff;color:var(--bleu)}
.fb-tab.done{color:#9be6bf}
.fb-page-t{color:#cfe0fb;font-size:.82rem;font-weight:700;margin-bottom:8px}
/* En-tête de mode + pilule unique de bascule comptage⇄fiche */
.mode-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 8px}
.mode-head>span{color:#fff;font-weight:700;font-size:.95rem}
.pill{background:#fff;color:var(--bleu);border:0;border-radius:9px;padding:8px 13px;font-size:.82rem;font-weight:700;cursor:pointer}
.pill:active{transform:translateY(1px)}
.fb-stats{display:flex;flex-direction:column;gap:.7rem}
/* Fil d'Ariane retour-hub (PC + admin) */
.pc-bc{display:inline-block;color:var(--bleu);font-size:.85rem;text-decoration:none;margin-bottom:10px}
.pc-bc:hover{text-decoration:underline}
/* Module Organisation (PC) : arbre fusionné secteurs/équipes/secouristes */
.og-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:10px}
.og-stats{display:flex;gap:10px;flex-wrap:wrap}
.og-stat{background:#fff;border:1px solid var(--line);border-radius:8px;padding:6px 12px;font-size:.85rem;color:var(--muted)}
.og-stat b{color:var(--ink);font-size:1.05rem;margin-right:4px}
.og-stat.warn{background:#fff7e6;border-color:var(--jaune)}
.og-stat.warn b{color:#a8761f}
.og-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}
.og-search{flex:1;min-width:200px}
.og-naff{border:1px solid var(--jaune);background:#fff7e6;border-radius:10px;padding:10px;margin-bottom:12px}
.og-naff-h{font-size:.8rem;font-weight:700;color:#a8761f;margin-bottom:8px}
.og-bar-act{display:flex;gap:8px;align-items:center}
.og-more{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px;padding:8px;background:#f4f6fb;border-radius:8px}
.og-badge{font-size:.72rem;font-weight:700;padding:1px 8px;border-radius:10px}
.og-badge.ok{background:#e3f6ec;color:var(--vert)}
.og-badge.warn{background:#fff0d6;color:#a8761f}
.og-badge.zero{background:#eef0f4;color:var(--muted)}
/* Structure : liste indentée par secteur */
/* Barre haute du module : recherche pleine largeur puis actions sur UNE ligne */
.og-top{margin-bottom:8px}
.og-top input{width:100%;box-sizing:border-box}
.og-bar2{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
/* Sélecteur de vue (Par secteur | Liste) */
.seg-mini{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg-mini button{border:0;background:#fff;color:var(--muted);padding:8px 14px;font-size:.85rem;font-weight:700;cursor:pointer}
.seg-mini button.on{background:var(--bleu);color:#fff}
.og-stat.att{background:#fff0d6;border-color:var(--jaune)}
.og-stat.att b{color:#a8761f}
/* Badges d'état de réaffectation (directive) */
.og-dirb{font-size:.72rem;font-weight:700;padding:1px 8px;border-radius:10px;white-space:nowrap}
.og-dirb.att{background:#fff0d6;color:#a8761f}
.og-dirb.ok{background:#e3f6ec;color:var(--vert)}
/* Boutons d'action par ligne (libellés, cibles franches) */
.og-act{background:#fff;border:1px solid var(--line);border-radius:7px;padding:5px 11px;font-size:.8rem;color:var(--bleu);font-weight:700;cursor:pointer;white-space:nowrap}
.og-act:hover{border-color:var(--bleu)}
.og-act.danger{color:var(--rouge)}
.og-act.danger:hover{border-color:var(--rouge)}
/* Vue par secteur : colonnes */
.og-cols{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px;align-items:start}
.og-col{border:1px solid var(--line);border-radius:10px;background:#fff;padding:8px 10px}
.og-col-h{display:flex;align-items:center;gap:8px;border-bottom:2px solid var(--cyan);padding-bottom:5px;margin-bottom:8px}
.og-col-n{font-size:.85rem;font-weight:800;color:var(--bleu);text-transform:uppercase;letter-spacing:.02em}
.og-col-meta{font-size:.74rem;color:var(--muted)}
.og-col-act{margin-left:auto;display:flex;align-items:center;gap:6px}
.og-fold{border:0;background:none;cursor:pointer;font-size:.9rem;color:var(--muted);padding:0}
.og-team{border:1px solid var(--line);border-radius:8px;padding:6px 8px;margin-bottom:8px}
.og-team.over{border:2px dashed var(--bleu);background:#eaf1fb;box-shadow:inset 0 0 0 2px rgba(30,58,138,.12)}
.og-team.over .og-team-h b::after{content:" — déposer ici";color:var(--bleu);font-weight:700;font-size:.78rem}
.og-team-h{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.og-team-h b{font-size:.88rem;color:var(--ink)}
.og-team-act{margin-left:auto;display:flex;gap:6px}
.og-drop-hint{font-size:.78rem;color:var(--muted);padding:4px 2px;font-style:italic}
.og-line{display:flex;align-items:center;flex-wrap:wrap;gap:5px 7px;padding:4px 4px;border-radius:6px}
.og-line:hover{background:#f4f6fb}
.og-line.drag{opacity:.4}
.og-grip{color:var(--muted);cursor:grab;font-size:.85rem}
.og-line-n{flex:1 1 130px;min-width:0;font-size:.86rem;color:var(--ink);overflow-wrap:anywhere}
.og-line-n .og-dirb{display:inline-block;margin-top:2px}
.og-line-act{display:flex;gap:5px;flex-wrap:wrap;justify-content:flex-end;margin-left:auto;max-width:100%}
.og-naff.over{border:2px dashed var(--rouge);background:#ffefef}
.og-naff-lbl{color:#a8761f;font-weight:700;font-size:.82rem}
/* Fiche : historique des affectations */
.og-hist{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.og-hist-t{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin-bottom:5px}
.og-hist-l{font-size:.84rem;color:var(--ink);padding:2px 0}
.og-pop-note{font-size:.74rem;color:var(--muted);padding:7px 4px 2px;border-top:1px solid var(--line);margin-top:6px}
/* Filtres + tableau des secouristes */
.og-filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.og-search{flex:1;min-width:180px}
.og-table{width:100%;border-collapse:collapse;font-size:.88rem}
.og-table th{text-align:left;font-weight:400;color:var(--muted);font-size:.78rem;padding:6px 8px}
.og-table td{padding:7px 8px;border-top:1px solid var(--line);vertical-align:middle}
.og-sortable{cursor:pointer;color:var(--bleu)}
.og-tr-naff td{background:#fff7e6}
.og-ini{display:inline-flex;width:24px;height:24px;border-radius:50%;background:#eaf1fb;color:var(--bleu);align-items:center;justify-content:center;font-size:.7rem;font-weight:700;margin-right:8px;vertical-align:-7px}
.og-td-act{text-align:right}
.og-pad{padding:14px 6px}
.og-sec-tel{font-size:.84rem;color:var(--bleu);white-space:nowrap}
.og-affbtn{background:#fff;border:1px solid var(--line);border-radius:8px;padding:5px 11px;font-size:.82rem;color:var(--bleu);font-weight:700;cursor:pointer;white-space:nowrap}
.og-affbtn:hover{border-color:var(--bleu)}
.og-pop{position:fixed;z-index:60;width:288px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(20,35,63,.16);padding:8px}
.og-pop-s input{width:100%;box-sizing:border-box}
.og-pop-list{max-height:210px;overflow:auto;margin-top:6px}
.og-pop-item{padding:7px 10px;border-radius:6px;font-size:.88rem;color:var(--ink);cursor:pointer;display:flex;justify-content:space-between;align-items:center}
.og-pop-item.on,.og-pop-item:hover{background:#eaf1fb;color:var(--bleu)}
.og-pop-cur{color:var(--vert);font-weight:700}
.og-pop-empty{padding:8px 10px;color:var(--muted);font-size:.85rem}
.og-empty{color:var(--muted);font-size:.82rem;margin:4px 0;padding-left:6px}
.og-addsec{display:flex;gap:8px;margin-top:12px}
.og-addsec input{flex:1}
.og-req{color:var(--rouge)}
.og-cfg{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin:8px 0}
.an-fiche-id{font-size:1rem;font-weight:700;color:var(--ink);margin-bottom:6px}
.an-fiche-tel{font-size:1rem;color:var(--bleu);margin-bottom:8px}
.an-qr{text-align:center;margin-top:8px}
.an-qr svg{width:160px;height:160px}
/* Choix du mode de travail (terrain) */
.mode-title{color:#fff;font-size:1.05rem;font-weight:700;text-align:center;margin:6px 0 12px}
.mode-card{display:block;width:100%;text-align:left;background:#fff;border:0;border-radius:14px;padding:14px 16px;margin-bottom:10px;cursor:pointer}
.mode-card b{display:block;color:var(--bleu);font-size:1.05rem}
.mode-card span{display:block;color:var(--muted);font-size:.85rem;margin-top:3px}
.fb-actions{position:sticky;bottom:0;z-index:5;display:flex;gap:8px;padding:10px 0 12px;margin-top:8px;background:var(--bg)}
.fb-actions .btn{flex:1}
/* Bandeau PERMANENT de réaffectation (directive PC → terrain, jusqu'au « J'y suis ») */
.dir-banner{position:sticky;top:6px;z-index:40;display:flex;align-items:center;gap:10px;background:var(--jaune);color:#1a1a1a;border-radius:12px;padding:10px 14px;font-weight:800;font-size:.9rem;margin-bottom:8px}
.dir-btn{margin-left:auto;background:var(--bleu);color:#fff;border:0;border-radius:9px;padding:10px 18px;font-weight:800;font-size:.9rem;cursor:pointer;white-space:nowrap}
.dir-btn:active{transform:translateY(1px)}
/* Bandeau transitoire terrain (bascule d'équipe…) */
.t-banner{background:var(--cyan);color:#08384a;border-radius:10px;padding:9px 12px;font-weight:700;font-size:.92rem;margin-bottom:8px;text-align:center}
/* Porteur du terminal (identité qui signe) */
.porteur-badge{display:flex;align-items:center;gap:6px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);color:var(--ink);border-radius:10px;padding:9px 12px;font-size:.92rem;margin-bottom:8px;cursor:pointer}
.porteur-badge i{font-style:normal;color:var(--muted);text-transform:uppercase;font-size:.66rem;letter-spacing:.04em;font-weight:700;margin-right:2px}
.porteur-badge b{font-weight:700}
.porteur-badge.off{border-color:var(--jaune)}
.porteur-badge.off i{color:#a8761f}
[data-step="porteur"] [data-porteur-list] button{display:flex;align-items:center;gap:10px;text-align:left}
[data-step="porteur"] [data-porteur-list] button.sel{border-color:var(--cyan);background:#e9f6fb}
.pb-ini{width:30px;height:30px;border-radius:50%;background:var(--cyan);color:#08384a;font-weight:700;font-size:.78rem;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
/* Chips génériques (fiche bilan, sélecteurs) */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips .chip{font-size:.9rem;padding:8px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:600;cursor:pointer}
.chips .chip.on{background:var(--cyan);border-color:var(--cyan);color:#08384a}
/* Fiche bilan (terrain, fond foncé → cartes blanches) */
[data-step="bilan"] .fb-block{background:#fff;border:1px solid var(--line);border-radius:11px;padding:11px 12px;margin-bottom:8px}
[data-step="bilan"] .fb-block>label{color:var(--ink);font-weight:600;font-size:.85rem;margin:0 0 6px;display:block}
/* Accordéon : une section repliable par regard */
.fb-sec{background:#fff;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;overflow:hidden}
.fb-sec-h{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#fff;border:0;padding:12px 13px;cursor:pointer;font-size:.95rem;font-weight:800;color:var(--bleu)}
.fb-sec-h.open{background:#eef4fb}
.fb-sec-ck{width:18px;color:var(--vert);font-weight:900}
.fb-sec-ti{flex:1}
.fb-sec-cv{color:var(--muted)}
.fb-sec-b{padding:4px 13px 13px}
.fb-f{margin:0 0 12px}
.fb-f>label{color:var(--ink);font-weight:600;font-size:.85rem;margin:0 0 5px;display:block}
.fb-opt{color:var(--muted);font-weight:400}
.fb-grp{border-left:3px solid var(--line);padding-left:10px;margin:8px 0}
.fb-grp-t{font-weight:700;color:var(--ink);font-size:.85rem;margin-bottom:6px}
.fb-text{width:100%}
.fb-numf{width:110px}
.fb-u{color:var(--muted);font-size:.85rem;margin-left:4px}
.fb-ind-w{margin-top:6px}
.fb-ind{display:inline-flex;align-items:center;gap:4px;font-size:.78rem;font-weight:700;padding:3px 9px;border-radius:8px}
.fb-ind.n{background:#eef1f8;color:var(--muted)}
.fb-ind.ok{background:#e7f5ec;color:#1d6f3f}
.fb-ind.warn{background:#fbe7d2;color:#a8761f}
.fb-cpt-h{cursor:default;background:#eef4fb}
.fb-cpt-rt{margin-left:auto;font-size:.72rem;color:var(--cyan);font-weight:700}
.chip.cc-vert.on{background:var(--vert);border-color:var(--vert);color:#fff}
.chip.cc-jaune.on{background:var(--jaune);border-color:var(--jaune);color:#3a2f00}
.chip.cc-rouge.on{background:var(--rouge);border-color:var(--rouge);color:#fff}
.chip.cc-noir.on{background:var(--noir);border-color:var(--noir);color:#fff}
.fb-signe{font-weight:700;color:var(--ink);cursor:pointer}
.fb-signe-edit{color:var(--cyan);font-weight:700;font-size:.8rem;margin-left:6px}
.fb-signe.off{color:#a8761f}
[data-step="bilan"] .ra-stp input[type=number]{width:66px;height:42px}
/* Terrain (fond foncé) : l'écran Logistique doit avoir un texte CLAIR hors cartes blanches + cases lisibles */
[data-step="reassort"] > label,
[data-step="reassort"] [data-ra-pane] > label{color:var(--on-dark)}
[data-step="reassort"] .pc-check{color:var(--on-dark);font-size:1rem}
[data-step="reassort"] .pc-check input[type=checkbox]{width:24px;height:24px;accent-color:var(--cyan)}
[data-step="reassort"] .rs-grp{color:var(--on-dark)}
[data-step="reassort"] .hint{color:var(--on-dark-muted)}
.ra-cfg{border-top:1px solid var(--line);margin-top:.6rem;padding-top:.4rem}
.ra-cfg-sub[hidden]{display:none}
/* ── Synthèse : tableau (en-tête figé, tri, zébrage) ── */
.syn-twrap{max-height:64vh}
.syn-table thead th{position:sticky;top:0;z-index:2}
.syn-table th.thsort{cursor:pointer;white-space:nowrap}
.syn-table th.thsort.on{color:var(--bleu);font-weight:700}
.syn-table tr.odd td{background:#fafbfe}

/* ── Main courante ── */
textarea{width:100%;font-size:1rem;padding:.6rem .8rem;color:var(--ink);border:2px solid var(--line);border-radius:12px;background:#fff;outline:none;resize:vertical;font-family:inherit}
textarea:focus{border-color:var(--cyan)}
[data-mc-tabs]{margin-bottom:1rem}
.mc-top{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.mc-cent{display:flex;align-items:center;gap:.4rem;background:#e6eeff;border-radius:8px;padding:.25rem .5rem}
.mc-cent .lbl{font-size:.78rem;color:var(--muted)}
.mc-chips{display:flex;flex-wrap:wrap;gap:6px}
.mc-chip{font-size:.95rem;font-weight:600;padding:.45rem 1rem;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer}
.mc-chip.on{border-color:var(--bleu);background:#e6eeff;color:var(--bleu)}
.mc-search{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:0 .8rem;height:48px;margin:.7rem 0}
.mc-search i{color:var(--muted)}
.mc-search input{flex:1;border:0;outline:none;background:transparent;color:var(--ink);font-size:1.05rem}
.mc-twrap{overflow:auto;max-height:70vh;border:1px solid var(--line);border-radius:10px}
.mc-table{width:100%;border-collapse:separate;border-spacing:0;font-size:15px;background:#fff;min-width:560px}
.mc-table th{position:sticky;top:0;z-index:3;padding:11px 12px;text-align:left;color:var(--muted);font-weight:600;font-size:13px;letter-spacing:.2px;text-transform:uppercase;background:#eef1f8;box-shadow:inset 0 -1px 0 var(--line);white-space:nowrap}
.mc-table td{padding:10px 12px;color:var(--ink);border-bottom:1px solid #eef1f8;vertical-align:top}
.mc-table td.nw{white-space:nowrap}
.mc-table td.b{font-weight:800;color:var(--bleu)}
.mc-table .fi-row{cursor:pointer}
.mc-table .fi-row:hover{background:#f6f8fc}
.mc-table .fi-hist td{background:#f6f8fc}
.mc-motif{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;padding:3px 9px;border-radius:999px;background:#eef1f8;color:var(--bleu);white-space:nowrap}
.mc-badge{font-size:12px;font-weight:800;letter-spacing:.5px;padding:4px 10px;border-radius:6px;color:#fff}
.mc-badge.vert{background:var(--vert)} .mc-badge.jaune{background:var(--jaune);color:#1a1a1a}
.mc-badge.rouge{background:var(--rouge)} .mc-badge.noir{background:var(--noir)}
.mc-table td.fi-encharge{color:var(--vert);font-weight:600}
.fi-histh{font-size:14px;color:var(--ink);margin-bottom:4px}
.fi-tl{display:flex;gap:10px;font-size:14px;color:var(--ink);padding:3px 0;flex-wrap:wrap}
.fi-t{color:var(--muted);white-space:nowrap}
.fi-sec{color:#5b667f}
.mc-addcard{margin-bottom:.6rem}
.mc-dispsel{width:auto;max-width:240px}
.mc-centinput{width:140px;font-size:1rem}

/* ── Attribution des dispositifs (Admin Opérateurs) ── */
.op-dispo{font-weight:600}
.op-dispo.all{color:var(--vert)}
.op-dispo.none{color:var(--rouge)}
.attrib-hint{font-size:13px;color:var(--muted);margin-bottom:10px}
.attrib-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow:auto;margin-bottom:.4rem}
.attrib-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;font-size:15px;color:var(--ink);cursor:pointer}
.attrib-item input{width:18px;height:18px;flex:none}
.attrib-off{font-size:12px;color:var(--muted);margin-left:auto}
.attrib-banner{background:#e6eeff;border:1px solid #c7d4ee;border-radius:8px;padding:12px 14px;font-size:14px;color:var(--bleu);line-height:1.5}
/* utilitaires (CSP : aucun style inline) */
.txt-l{text-align:left}
.mw-320{max-width:320px}

/* ── Comptage terrain ── */
.compte-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem;margin:.4rem 0}
.cbtn{min-height:3.4rem;border:0;border-radius:12px;font-size:.95rem;font-weight:800;
  letter-spacing:.2px;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cbtn:active{transform:translateY(1px)}
.cbtn.vert{background:var(--vert)}
.cbtn.jaune{background:var(--jaune);color:#1a1a1a}
.cbtn.rouge{background:var(--rouge)}
.cbtn.noir{background:var(--noir)}
.cbtn.sel{outline:3px solid var(--ink);outline-offset:2px}
.compte-grid.has-sel .cbtn:not(.sel){opacity:.4}
.cstack{display:flex;flex-direction:column;gap:.7rem}
.saisie-num{display:flex;align-items:center;justify-content:space-between;
  background:#eef9fc;border:1px solid var(--cyan);border-radius:10px;padding:.45rem .8rem;margin-bottom:.8rem}
.saisie-num .lbl{font-size:.78rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.saisie-num b{font-size:1.5rem;font-weight:800;color:var(--bleu);line-height:1}
.encours{background:#fff;color:var(--bleu);border-radius:12px;padding:.55rem 1rem;
  display:flex;align-items:center;justify-content:center;gap:.7rem;box-shadow:0 4px 14px rgba(0,0,0,.22)}
.encours .n{font-size:1.9rem;font-weight:800;line-height:1;color:var(--bleu)}
.encours .l{font-size:.8rem;font-weight:700;letter-spacing:1.5px;color:var(--bleu)}
.dots{display:grid;grid-template-columns:repeat(4,1fr);gap:.45rem}
.ctile{border-radius:12px;padding:.55rem .3rem;text-align:center;color:#fff;box-shadow:0 4px 12px rgba(0,0,0,.2)}
.ctile .n{display:block;font-size:1.55rem;font-weight:800;line-height:1.1}
.ctile .l{display:block;font-size:.68rem;font-weight:700;letter-spacing:.4px;margin-top:.1rem}
.ctile.vert{background:var(--vert)} .ctile.jaune{background:var(--jaune);color:#1a1a1a}
.ctile.rouge{background:var(--rouge)} .ctile.noir{background:var(--noir)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}

/* ── Indicateur de synchronisation (offline-first) ── */
.sync{font-size:.8rem;font-weight:700;text-align:center;border-radius:8px;padding:.35rem .6rem}
.sync.off{background:var(--rouge);color:#fff}
.sync.pending{background:var(--jaune);color:#3a2c08}
.sync.ok{background:rgba(255,255,255,.10);color:#9fe1cb}

/* ── Victimes en charge (déclaration de sortie) ── */
.vchips{display:flex;flex-wrap:wrap;gap:.4rem}
.vchip{font-size:.8rem;font-weight:700;padding:.4rem .7rem;border-radius:999px;
  border:1px solid rgba(255,255,255,.35);background:transparent;color:var(--on-dark);cursor:pointer}
.vchip.on{background:var(--cyan);color:var(--bleu);border-color:var(--cyan)}
.vlist{display:flex;flex-direction:column;gap:.5rem}
.vcard{display:flex;align-items:center;gap:.7rem;width:100%;text-align:left;
  background:#fff;color:var(--ink);border:0;border-radius:12px;padding:.7rem .8rem;
  cursor:pointer;box-shadow:0 3px 10px rgba(0,0,0,.18);-webkit-tap-highlight-color:transparent}
.vcard:active{transform:translateY(1px)}
.vbadge{flex:0 0 auto;min-width:64px;text-align:center;font-weight:800;font-size:.78rem;
  letter-spacing:.5px;color:#fff;border-radius:8px;padding:.5rem .3rem}
.vbadge.vert{background:var(--vert)} .vbadge.jaune{background:var(--jaune);color:#1a1a1a}
.vbadge.rouge{background:var(--rouge)} .vbadge.noir{background:var(--noir)}
.vinfo{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.vmeta{font-weight:700;font-size:.98rem;color:var(--ink)}
.vsub{font-size:.8rem;color:var(--muted)}
.age-calc{color:var(--bleu);font-weight:700;margin-top:.5rem;font-size:.95rem}

/* ── Bottom-sheet de saisie ── */
.sheet-overlay{position:fixed;inset:0;background:rgba(8,16,40,.55);display:flex;
  align-items:flex-end;justify-content:center;z-index:50}
.sheet{background:#fff;color:var(--ink);width:100%;max-width:460px;
  border-radius:20px 20px 0 0;padding:1.1rem 1.2rem 1.4rem;max-height:92vh;overflow:auto}
.sheet h2{margin:.2rem 0 .8rem;color:var(--ink)}
.sheet-grip{width:42px;height:5px;border-radius:3px;background:#d8deea;margin:0 auto .6rem}
.field{margin-bottom:.7rem}
.field>label{display:block;font-weight:700;font-size:.85rem;color:var(--muted);
  text-transform:uppercase;letter-spacing:.3px;margin-bottom:.4rem}
.pastilles{display:flex;flex-wrap:wrap;gap:.5rem}
.pastille{padding:.55rem 1rem;border:2px solid var(--line);border-radius:999px;
  background:#fff;color:var(--ink);font-weight:600;font-size:.95rem;cursor:pointer}
.pastille.sel{border-color:var(--cyan);background:#eef9fc}
.pastille.c-vert.sel{border-color:var(--vert);background:#e7f6ee}
.pastille.c-jaune.sel{border-color:var(--jaune);background:#fbf2dc}
.pastille.c-rouge.sel{border-color:var(--rouge);background:#fde8ea}
.pastille.c-noir.sel{border-color:var(--noir);background:#e9e9e9}
.mineur{display:none;background:var(--rouge);color:#fff;font-weight:800;text-align:center;
  padding:.55rem;border-radius:10px;margin-top:.5rem;letter-spacing:1px}
.mineur.on{display:block}
.noir-confirm{text-align:center}
.noir-confirm h2{color:var(--rouge);letter-spacing:2px}

/* ── Modale au premier plan (confirmation CODE NOIR) ── */
.modal-overlay{position:fixed;inset:0;background:rgba(8,16,40,.62);display:flex;
  align-items:center;justify-content:center;z-index:100;padding:1.2rem}
.modal{background:#fff;color:var(--ink);width:100%;max-width:420px;border-radius:16px;
  padding:1.4rem;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.modal h2{color:var(--ink);text-align:center;margin:.2rem 0 .8rem;font-size:1.3rem}
.cs-mmsg{color:var(--ink);font-size:1rem;line-height:1.5;margin:.2rem 0 .6rem;white-space:pre-line}
.modal.danger h2{color:var(--rouge);letter-spacing:1.5px;font-size:1.4rem}
.modal>p{color:var(--ink);text-align:center;margin:0 0 1.1rem;font-size:1rem}

/* ── Interface PC : en-têtes, cartes, badges, formulaires ── */
.pc-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.pc-sm{width:auto;min-height:auto;padding:.5rem .9rem;font-size:.92rem}
.pc-cards{display:flex;flex-direction:column;gap:.7rem;margin-top:.6rem}
.pc-card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.8rem 1rem}
.pc-card.is-clos{opacity:.62}
.pc-card-h{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.pc-card-h b{color:var(--ink);font-size:1.05rem}
.pc-badge{font-size:.72rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}
.pc-badge.on{background:#e7f6ee;color:#1d7a47}
.pc-badge.off{background:#fde8ea;color:#b3263a}
.pc-card-meta{color:var(--ink);font-size:.9rem;margin-top:.35rem}
.pc-card-meta code{background:#eef1f8;color:var(--bleu);padding:.05rem .4rem;border-radius:6px;font-weight:700}
.pc-card-actions{display:flex;gap:.5rem;margin-top:.7rem;flex-wrap:wrap}
.pc-check{display:flex;align-items:center;gap:.5rem;font-weight:400;color:var(--ink);margin:.5rem 0 0;text-transform:none}
.pc-check input{width:auto;height:auto}
.pl-list{display:flex;flex-direction:column;gap:.4rem;margin:.4rem 0;max-height:46vh;overflow:auto}
.pl-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;background:#f6f8fc;border-radius:8px;padding:.45rem .7rem;color:var(--ink)}
.pl-row.off{opacity:.55}
/* Sélecteurs */
select{width:100%;height:var(--tap);font-size:1.05rem;padding:0 .7rem;color:var(--ink);
  border:2px solid var(--line);border-radius:12px;background:#fff;outline:none}
select:focus{border-color:var(--cyan)}
.pc-rolesel{width:auto;height:auto;padding:.4rem .5rem;font-size:.9rem;border-radius:8px}
/* Identifiants générés (opérateurs) */
.creds{display:flex;justify-content:space-between;align-items:center;background:#eef1f8;border-radius:8px;padding:.5rem .8rem;margin:.4rem 0}
.creds span{color:var(--muted);font-size:.85rem}
.creds b{font-size:1.25rem;color:var(--bleu);font-weight:800;letter-spacing:1px}
.pc-badge.role{background:#e6eeff;color:var(--bleu)}
.pc-badge.warn{background:#fbf2dc;color:#7a5a1e}
/* Équipes */
.eq-grp{margin-bottom:.4rem}
.eq-grp h3{color:var(--ink);font-size:1.05rem;margin:.5rem 0 .5rem}
/* Matrice des permissions */
.mx-wrap{overflow:auto;margin-top:.6rem;border-radius:10px;border:1px solid var(--line)}
.mx-table{border-collapse:collapse;width:100%;font-size:.9rem;background:#fff}
.mx-table th,.mx-table td{border:1px solid var(--line);padding:.45rem .6rem;text-align:center;color:var(--ink)}
.mx-table th{background:#eef1f8;color:var(--bleu)}
.mx-table .mx-perm{text-align:left;font-weight:600}
.mx-table .mx-grp td{background:#f6f8fc;text-align:left;font-weight:700;color:var(--muted);text-transform:uppercase;font-size:.76rem;letter-spacing:.4px}
.mx-cell input{width:auto;height:auto;cursor:pointer}
