/* =====================================================================================
   PIÈCE « AVENIR · open space » — styles propres (préfixe .cpt-), chargés avec pieces/comptabilite.js.
   Sans effet sur les autres pièces : seules les classes .cpt-* sont stylées ici.
   Palette AVENIR : or #CEA451, bleu nuit #1F2A44, crème #F4EEE2 ; états : vert, orange, rouge du moteur commun.
   ===================================================================================== */
:root{
  --cpt-or:#CEA451;
  --cpt-or-clair:#E3C886;
  --cpt-or-sombre:#8E6F2E;
  --cpt-or-voile:rgba(206,164,81,.12);
  --cpt-or-bord:rgba(206,164,81,.38);
  --cpt-nuit:#1F2A44;
  --cpt-creme:#F4EEE2;
  --cpt-local:#34d399;
  --cpt-cloud:#60a5fa;
}

/* ---------- Bandeau « Coffre fermé » au-dessus de la scène 3D ---------- */
.cpt-bandeau{position:absolute;z-index:6;top:12px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:calc(100% - 24px);
  padding:7px 8px 7px 14px;border-radius:999px;background:rgba(18,20,24,.88);border:1px solid var(--cpt-or-bord);
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 10px 26px rgba(0,0,0,.4);font-size:12.5px;line-height:1.35;color:var(--t1,#f2f4f7);animation:apparait .35s var(--ease,ease)}
.cpt-bandeau-point{width:8px;height:8px;border-radius:50%;flex:none;background:var(--rouge,#f87171);box-shadow:0 0 10px rgba(248,113,113,.45)}
.cpt-bandeau-texte{min-width:0}
.cpt-bandeau-btn{flex:none;border:1px solid var(--bord,rgba(255,255,255,.08));background:var(--verre-pilule,rgba(255,255,255,.06));color:var(--t1,#f2f4f7);border-radius:999px;padding:4px 11px;font-size:12px;font-weight:500}
.cpt-bandeau-btn:hover{background:var(--verre-survol,rgba(255,255,255,.12))}
.cpt-bandeau-btn:disabled{opacity:.5;cursor:default}

/* ---------- Boutons, sur-titres, badges ---------- */
.btn.cpt-prim{background:linear-gradient(135deg,#B8903F,var(--cpt-or) 55%,var(--cpt-or-clair));color:#17120A;border-color:rgba(227,200,134,.5);
  box-shadow:0 6px 18px rgba(206,164,81,.2),inset 0 1px 0 rgba(255,255,255,.28);font-weight:600}
.btn.cpt-prim:hover{background:linear-gradient(135deg,#C49A48,#D7B062 55%,#EBD49B)}
.btn.cpt-prim:disabled{opacity:.45}
.cpt-sur{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--t2,#8c93a0)}
.cpt-sur i{width:7px;height:7px;border-radius:2px;background:var(--cpt-or);transform:rotate(45deg);flex:none}
.cpt-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 9px;border-radius:999px;font-size:11.5px;font-weight:600;line-height:1.6;white-space:nowrap;border:1px solid}
.cpt-badge[data-n="local"]{color:var(--cpt-local);border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.08)}
.cpt-badge[data-n="cloud"]{color:var(--cpt-cloud);border-color:rgba(96,165,250,.45);background:rgba(96,165,250,.1)}
.cpt-statut-pt{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--c,var(--t2,#8c93a0))}
.cpt-statut-pt::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c,var(--t2,#8c93a0))}
.cpt-projet-pt{display:inline-flex;align-items:center;gap:8px;font-weight:500;color:var(--t1,#f2f4f7)}
.cpt-projet-pt::before{content:"";width:9px;height:9px;border-radius:3px;background:var(--k,var(--cpt-or));flex:none}
.p-sur .cpt-projet-pt{font-size:12px;color:var(--t2,#8c93a0)}

/* ---------- Boîtes d'état : coffre fermé, bientôt, erreur, attente ---------- */
.cpt-etat-boite:empty{display:none}
.cpt-etat-boite{margin-top:14px}
.cpt-alerte{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 12px;margin-top:10px;padding:10px 12px;border-radius:14px;font-size:12.5px;line-height:1.45;
  border:1px solid rgba(251,191,36,.32);background:rgba(251,191,36,.06);color:var(--t1,#f2f4f7)}
.cpt-alerte[data-type="ferme"],.cpt-alerte[data-type="erreur"]{border-color:rgba(248,113,113,.35);background:rgba(248,113,113,.07)}
.cpt-alerte[data-type="cloud"]{border-color:rgba(96,165,250,.38);background:rgba(96,165,250,.07)}
.cpt-alerte[data-type="ok"]{border-color:rgba(52,211,153,.32);background:rgba(52,211,153,.06)}
.cpt-alerte[data-type="cle"]{border-color:var(--cpt-or-bord);background:var(--cpt-or-voile)}
.cpt-alerte-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 220px}
.cpt-alerte-txt span{color:var(--t2,#8c93a0)}
.cpt-bientot{display:flex;flex-direction:column;gap:3px;margin-top:10px;padding:12px 14px;border-radius:14px;border:1px dashed var(--cpt-or-bord);background:var(--cpt-or-voile);font-size:12.5px;line-height:1.5;color:var(--t2,#8c93a0)}
.cpt-bientot strong{color:var(--cpt-or-clair);font-size:13px;font-weight:600}
.cpt-attente{margin:10px 0 0;font-size:12.5px;color:var(--t2,#8c93a0)}
.cpt-vide{margin:2px 0}
.cpt-msg{margin:0}
.cpt-msg-erreur{color:var(--rouge,#f87171)}
.cpt-retard{margin:0;font-size:12.5px;color:var(--rouge,#f87171)}
.cpt-src{margin:4px 0 0;font-size:10.5px;line-height:1.4;color:var(--t3,#565d6a);overflow-wrap:anywhere}
.kpi .cpt-src{margin-top:auto;padding-top:6px}
.cpt-pied{margin:22px 0 0;font-size:11.5px;color:var(--t3,#565d6a);line-height:1.5}
.cpt-ligne{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--bord-doux,rgba(255,255,255,.04));font-size:12.5px}
.cpt-ligne-l{color:var(--t2,#8c93a0);min-width:0;overflow-wrap:anywhere}
.cpt-ligne-v{color:var(--t1,#f2f4f7);text-align:right;font-variant-numeric:tabular-nums;flex:none;max-width:60%}
.cpt-kpis-mini{grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.cpt-kpis .kpi{min-height:96px}
.cpt-statut{margin:0;display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--t1,#f2f4f7)}

/* ---------- Cartes de demandes ---------- */
.cpt-saisie{display:flex;flex-direction:column;gap:10px}
.cpt-listes{display:flex;flex-direction:column}
.cpt-cartes{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.cpt-demande,.cpt-decision{border:1px solid var(--bord-doux,rgba(255,255,255,.04));border-radius:14px;padding:10px 12px;background:rgba(255,255,255,.025);display:flex;flex-direction:column;gap:7px}
.cpt-demande[data-etat="a_valider"]{border-color:rgba(251,191,36,.38);background:rgba(251,191,36,.05)}
.cpt-demande[data-etat="refuse"]{opacity:.72}
.cpt-d-tete{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px}
.cpt-d-qui{font-size:12px;font-weight:500;color:var(--t1,#f2f4f7)}
.cpt-d-quand{margin-left:auto;font-size:11px;color:var(--t3,#565d6a);font-variant-numeric:tabular-nums}
.cpt-d-texte{margin:0;font-size:13px;color:var(--t1,#f2f4f7);line-height:1.45;overflow-wrap:anywhere}
.cpt-d-attente{margin:0;font-size:12px;color:var(--t2,#8c93a0)}
.cpt-d-bloc{display:flex;flex-direction:column;gap:3px}
.cpt-d-long{margin:0;font-size:12.5px;line-height:1.5;color:var(--t2,#8c93a0);white-space:pre-wrap;overflow-wrap:anywhere}
.cpt-d-pied{margin:0;display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-family:var(--f-mono,monospace);font-size:10.5px;color:var(--t3,#565d6a)}
.cpt-cite{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-radius:10px;border-left:2px solid var(--cpt-or);background:var(--cpt-or-voile)}
.cpt-cite p{margin:0;font-size:12px;color:var(--t1,#f2f4f7)}
.cpt-pill{display:inline-flex;align-items:center;padding:1px 9px;border-radius:999px;font-size:11px;font-weight:500;line-height:1.6;white-space:nowrap;border:1px solid var(--bord,rgba(255,255,255,.08));color:var(--t2,#8c93a0)}
.cpt-pill[data-etat="a_valider"],.cpt-pill[data-statut="a_confirmer"]{color:var(--ambre,#fbbf24);border-color:rgba(251,191,36,.4);background:rgba(251,191,36,.08)}
.cpt-pill[data-etat="en_cours"]{color:var(--cpt-cloud);border-color:rgba(96,165,250,.38)}
.cpt-pill[data-etat="fait"],.cpt-pill[data-statut="tranche"]{color:var(--vert,#34d399);border-color:rgba(52,211,153,.35)}
.cpt-pill[data-etat="refuse"],.cpt-pill[data-statut="remplace"]{color:var(--t3,#565d6a)}
.cpt-theme summary .cpt-pill{margin-left:8px}

/* ---------- Cerveau des agents (famille puis modèle) ---------- */
.cpt-cerveau{display:flex;flex-direction:column;gap:10px}
.cpt-cerveau-form{display:flex;flex-direction:column;gap:12px}
.cpt-familles{display:grid;gap:6px}
.cpt-famille{display:flex;align-items:flex-start;gap:10px;padding:9px 12px;border:1px solid var(--bord,rgba(255,255,255,.08));border-radius:14px;background:rgba(255,255,255,.02);cursor:pointer;transition:border-color .2s,background .2s}
.cpt-famille:hover{background:var(--verre-pilule,rgba(255,255,255,.06))}
.cpt-famille:has(input:checked){border-color:var(--cpt-or-bord);background:var(--cpt-or-voile)}
.cpt-famille input{margin:3px 0 0;accent-color:var(--cpt-or);flex:none}
.cpt-famille-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.cpt-famille-txt strong{font-size:13px;font-weight:600;color:var(--t1,#f2f4f7)}
.cpt-famille-txt span{font-size:11.5px;color:var(--t2,#8c93a0);line-height:1.4}
.cpt-niveau{display:flex;align-items:center;gap:10px}
.cpt-cles{display:flex;flex-direction:column;gap:4px}
.cpt-cle-etat{margin:0;font-size:12.5px;color:var(--ambre,#fbbf24)}
.cpt-cle-etat.ok{color:var(--vert,#34d399)}
.cpt-exceptions .c-ligne .e{max-width:60%;overflow:hidden;text-overflow:ellipsis}

/* ---------- Registre des décisions ---------- */
.cpt-groupes{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.cpt-theme{border:1px solid var(--bord-doux,rgba(255,255,255,.04));border-radius:14px;background:rgba(255,255,255,.015);padding:0 10px}
.cpt-theme[open]{padding-bottom:10px}
.cpt-theme summary{display:flex;align-items:center;gap:8px;padding:10px 2px;cursor:pointer;font-size:13px;font-weight:600;color:var(--t1,#f2f4f7);list-style:none}
.cpt-theme summary::-webkit-details-marker{display:none}
.cpt-theme summary::before{content:"";width:6px;height:6px;border-right:1.5px solid var(--t2,#8c93a0);border-bottom:1.5px solid var(--t2,#8c93a0);transform:rotate(-45deg);transition:transform .2s;flex:none}
.cpt-theme[open] summary::before{transform:rotate(45deg)}
.cpt-theme summary .n{font-family:var(--f-mono,monospace);font-size:11px;font-weight:400;color:var(--t3,#565d6a)}
.cpt-theme > .cpt-decision + .cpt-decision,.cpt-theme > .cpt-ech + .cpt-ech{margin-top:6px}
.cpt-decision[data-statut="a_confirmer"]{border-color:rgba(251,191,36,.3)}
.cpt-decision[data-statut="remplace"]{opacity:.7}
.cpt-id{font-family:var(--f-mono,monospace);font-size:11px;color:var(--cpt-or-clair)}
.cpt-dec-titre{margin:0;font-size:13px;font-weight:600;color:var(--t1,#f2f4f7);line-height:1.4}
.cpt-question{display:flex;flex-direction:column;gap:6px;padding:8px 10px;border-radius:10px;background:rgba(251,191,36,.06)}
.cpt-question p{margin:0;font-size:12.5px;color:var(--t1,#f2f4f7);line-height:1.45}
.cpt-repondre{display:flex;flex-direction:column;gap:6px}
.cpt-panneau input[type="search"].f-input{margin-top:8px;border-radius:999px;padding:7px 14px}

/* ---------- Factures et relances, frais, échéances, contrôles ---------- */
.cpt-facture{gap:8px}
.cpt-relance{display:flex;flex-direction:column;gap:8px}
.cpt-texte-relance{margin:0;padding:10px 12px;border-radius:12px;border:1px solid var(--bord,rgba(255,255,255,.08));background:rgba(0,0,0,.25);font-size:12.5px;line-height:1.5;color:var(--t1,#f2f4f7);white-space:pre-wrap;overflow-wrap:anywhere;user-select:text}
.btn.cpt-wa{color:#25D366;border-color:rgba(37,211,102,.4)}
.cpt-trajets{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:4px}
.cpt-trajets li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:baseline;font-size:12px;padding:5px 0;border-bottom:1px solid var(--bord-doux,rgba(255,255,255,.04))}
.cpt-t-date{color:var(--t3,#565d6a);font-variant-numeric:tabular-nums;white-space:nowrap}
.cpt-t-qui{color:var(--t1,#f2f4f7);overflow-wrap:anywhere}
.cpt-t-km{color:var(--t2,#8c93a0);font-family:var(--f-mono,monospace);white-space:nowrap}
.cpt-ech{display:flex;align-items:flex-start;gap:12px;padding:8px 0;border-bottom:1px solid var(--bord-doux,rgba(255,255,255,.04))}
.cpt-ech-date{flex:none;width:46px;display:flex;flex-direction:column;align-items:center;padding:4px 0;border-radius:10px;border:1px solid var(--cpt-or-bord);background:var(--cpt-or-voile);line-height:1.1}
.cpt-ech-date b{font-size:17px;font-weight:600;color:var(--t1,#f2f4f7);font-variant-numeric:tabular-nums}
.cpt-ech-date span{font-size:10.5px;color:var(--t2,#8c93a0);text-transform:uppercase;letter-spacing:.04em}
.cpt-ech[data-urgent="true"] .cpt-ech-date{border-color:rgba(248,113,113,.45);background:rgba(248,113,113,.08)}
.cpt-ech[data-urgent="true"] .cpt-ech-txt > span:nth-child(2){color:var(--rouge,#f87171)}
.cpt-ech[data-fait="true"]{opacity:.6}
.cpt-ech-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.cpt-ech-txt strong{font-size:13px;font-weight:600;color:var(--t1,#f2f4f7);overflow-wrap:anywhere}
.cpt-ech-txt > span{font-size:12px;color:var(--t2,#8c93a0)}
.cpt-cloud{color:var(--cpt-cloud)!important}
.cpt-bilan{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.cpt-feu{display:inline-flex;align-items:center;gap:7px;padding:3px 11px 3px 9px;border-radius:999px;border:1px solid var(--bord,rgba(255,255,255,.08));font-size:12px;color:var(--t1,#f2f4f7)}
.cpt-feu i,.cpt-controle > i,.cpt-chip-feu i{width:8px;height:8px;border-radius:50%;flex:none;background:var(--t3,#565d6a)}
[data-f="vert"] > i{background:var(--vert,#34d399)}
[data-f="orange"] > i{background:var(--ambre,#fbbf24)}
[data-f="rouge"] > i{background:var(--rouge,#f87171);box-shadow:0 0 8px rgba(248,113,113,.5)}
.cpt-controle{display:flex;align-items:flex-start;gap:12px;padding:9px 0;border-bottom:1px solid var(--bord-doux,rgba(255,255,255,.04))}
.cpt-controle > i{margin-top:5px;width:10px;height:10px}
.cpt-controle strong{font-size:13px;font-weight:600;color:var(--t1,#f2f4f7)}
.cpt-controle .c-texte{font-size:12.5px;margin-top:2px}
.cpt-controle[data-f="vert"] strong{color:var(--t2,#8c93a0);font-weight:500}
.cpt-rapport .r-table tbody tr{cursor:pointer}
.cpt-rapport .chips{margin-top:2px}

/* ---------- Téléphone ---------- */
@media (max-width:760px){
  .cpt-bandeau{top:8px;font-size:12px;border-radius:16px;padding:7px 8px 7px 12px}
  .cpt-kpis .kpi{min-height:0}
  .cpt-ligne{flex-wrap:wrap}
  .cpt-ligne-v{max-width:100%;text-align:left}
  .cpt-trajets li{grid-template-columns:minmax(0,1fr) auto}
  .cpt-t-date{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){
  .cpt-bandeau{animation:none}
  .cpt-famille,.cpt-theme summary::before{transition:none}
}

/* ---------- Compléments (veille, tâches) ---------- */
.cpt-pill-or{color:var(--cpt-or-clair);border-color:var(--cpt-or-bord);background:var(--cpt-or-voile);align-self:flex-start}
.cpt-veille-avenir{border-color:var(--cpt-or-bord)}
.a-statut.cpt-en-retard{color:var(--rouge,#f87171);border-color:rgba(248,113,113,.4)}

/* ---------- Code d'accès du Mac (le moteur répond 401) et bandeau « en panne » ---------- */
.cpt-code-ecran{position:fixed;z-index:61;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;
  background:rgba(8,9,11,.55);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.cpt-code-plus-tard{align-self:flex-end;font-size:12px}
.cpt-code{width:min(420px,100%);display:flex;flex-direction:column;gap:8px;padding:16px 18px;border-radius:18px;
  background:rgba(18,20,24,.92);border:1px solid var(--cpt-or-bord);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
  box-shadow:0 18px 40px rgba(0,0,0,.45);color:var(--t1,#f2f4f7);font-size:13px;line-height:1.45;animation:apparait .35s var(--ease,ease)}
.cpt-code-titre{font-size:15px;font-weight:600;color:var(--cpt-or-clair)}
.cpt-code-texte{margin:0;color:var(--t2,#8c93a0)}
.cpt-code-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.cpt-code-champ{flex:1 1 200px;min-width:0;padding:8px 10px;border-radius:10px;border:1px solid var(--bord,rgba(255,255,255,.12));
  background:rgba(255,255,255,.04);color:var(--t1,#f2f4f7);font:inherit}
.cpt-code-form .cpt-msg{flex:1 1 100%;margin:0}
.cpt-alerte .cpt-code{width:100%;background:transparent;border:0;box-shadow:none;padding:0;-webkit-backdrop-filter:none;backdrop-filter:none}
.cpt-alerte[data-type="local"]{border-color:rgba(52,211,153,.32);background:rgba(52,211,153,.06)}
.cpt-bandeau.cpt-panne{top:auto;bottom:12px;border-color:rgba(248,113,113,.4)}
@media (max-width:760px){ .cpt-bandeau.cpt-panne{bottom:8px} }
@media (prefers-reduced-motion:reduce){ .cpt-code{animation:none} }
