/* Calendrier — vue Équipe et barre de confirmation (23/10/2026). Couleurs du Suivi : clair et sombre (.dark). */

/* barre d'outils de la vue */
.eq-outils{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--border);font-size:12px;color:var(--text-muted)}
.eq-outils b{color:var(--text)}
.eq-legende{display:inline-flex;align-items:center;gap:6px 12px;flex-wrap:wrap}
.eq-legende i{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c);margin-right:-6px;vertical-align:-1px}
.eq-legende i.hach{background:repeating-linear-gradient(135deg,var(--text-muted) 0 2px,transparent 2px 5px);opacity:.6}
.eq-reglages-wrap{position:relative;margin-left:auto}
.eq-reglages-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card-bg);color:var(--text);font-size:12px;font-weight:700;cursor:pointer}
.eq-reglages{position:absolute;right:0;top:calc(100% + 6px);z-index:60;width:260px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;box-shadow:0 14px 34px -12px rgba(0,0,0,.35);padding:12px;display:grid;gap:10px}
.eq-reglages label{display:grid;gap:4px;font-size:12px;font-weight:700;color:var(--text)}
.eq-reglages label.case{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.eq-reglages[hidden]{display:none}
.eq-reglages select{padding:6px 8px;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text);font-size:12px}

/* la grille : techniciens en lignes, jours en colonnes */
.eq-defile{overflow-x:auto}
.eq-grille{display:grid;min-width:100%}
.eq-coin,.eq-tech{position:sticky;left:0;z-index:2;background:var(--card-bg)}
.eq-coin{border-bottom:1px solid var(--border)}
.eq-jour{padding:9px 10px 8px;border-bottom:1px solid var(--border);border-left:1px solid var(--border);display:flex;align-items:baseline;gap:6px;font-size:11.5px;color:var(--text-muted)}
.eq-jour span{text-transform:capitalize;font-weight:700}
.eq-jour b{font-size:17px;color:var(--text);margin-left:auto}
.eq-jour small{font-size:11px}
.eq-jour.auj b,.eq-jour.auj span{color:var(--indigo)}
.eq-jour.we{background:color-mix(in srgb,var(--bg) 55%,var(--card-bg))}
.eq-tech{padding:9px 9px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);display:grid;gap:4px;align-content:start}
.eq-tech.inactif{opacity:.6}
.eq-nom{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text);min-width:0}
.eq-nom i{width:9px;height:9px;border-radius:50%;flex:none}
.eq-nom b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
.eq-nb{font-size:11px;color:var(--text-muted)}
.eq-charge{display:grid;gap:3px}
.eq-charge .bar{display:block;height:5px;border-radius:99px;background:color-mix(in srgb,var(--text-muted) 22%,transparent);overflow:hidden}
.eq-charge .fill{display:block;height:100%;border-radius:99px}
.eq-charge .fill.gris{background:#94a3b8}.eq-charge .fill.vert{background:#4cbf7f}.eq-charge .fill.orange{background:#e0a24a}.eq-charge .fill.rouge{background:#d65a5a}.eq-charge .fill.off{background:transparent}
.eq-charge .val{font-size:10.5px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.eq-charge .val.rouge{color:#c23a3e;font-weight:700}

.eq-case{position:relative;border-left:1px solid var(--border);border-bottom:1px solid var(--border);padding:6px;min-height:96px;display:flex;flex-direction:column;gap:5px;transition:background .12s}
.compact .eq-case{min-height:64px;padding:4px;gap:3px}
.eq-case.we{background:color-mix(in srgb,var(--bg) 55%,var(--card-bg))}
.eq-case.auj{background:color-mix(in srgb,var(--indigo) 5%,var(--card-bg))}
.eq-case.absent{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--text-muted) 16%,transparent) 0 7px,transparent 7px 14px)}
.eq-case.cible{background:color-mix(in srgb,var(--indigo) 13%,var(--card-bg));box-shadow:inset 0 0 0 2px var(--indigo)}
.eq-case.absent.cible{box-shadow:inset 0 0 0 2px #d08a2a}
.eq-abs{font-size:11px;font-weight:700;color:var(--text-muted)}
.eq-plus{position:absolute;right:5px;bottom:5px;width:24px;height:24px;border-radius:7px;border:1px dashed var(--border);background:var(--card-bg);color:var(--text-muted);font-size:10px;cursor:pointer;opacity:0;transition:opacity .12s}
.eq-case:hover .eq-plus,.eq-plus:focus-visible{opacity:1}
.eq-plus:hover{color:var(--indigo);border-color:var(--indigo)}
@media (hover:none){.eq-plus{opacity:.7}}

/* une intervention */
.eq-carte{border-left:3px solid var(--c);background:color-mix(in srgb,var(--c) 12%,var(--card-bg));border-radius:7px;padding:5px 7px;font-size:11.5px;line-height:1.3;color:var(--text);cursor:pointer;user-select:none;outline-offset:2px}
.eq-carte.bouge{cursor:grab}
.eq-carte:hover{background:color-mix(in srgb,var(--c) 22%,var(--card-bg))}
.eq-carte:focus-visible{outline:2px solid var(--indigo)}
.eq-l1{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.eq-l1 time{font-weight:800;color:var(--c);font-variant-numeric:tabular-nums;font-size:11px}
.eq-l1 b{font-weight:600}
.eq-l1 .st{font-size:8.5px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;padding:0 4px;border-radius:4px}
.eq-l1 .trajet{margin-left:auto;font-size:10px;padding:1px 3px;border-radius:4px;background:#faeebd;color:#884923}
.eq-l1 .trajet.impossible{background:#fcd5d5;color:#a43232;font-weight:800}
.eq-l2{color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.eq-l2 b{color:var(--text);font-weight:700}
.eq-l3{font-size:10.5px;color:var(--text-muted);font-style:italic}
.compact .eq-l2{-webkit-line-clamp:1}
.compact .eq-l3{display:none}
.eq-carte.suite{border-top-left-radius:0;border-bottom-left-radius:0;border-left-style:dashed}
.eq-carte.fait{opacity:.7}
.eq-carte.clot{opacity:.5}
.eq-carte.prevu{outline:2px dashed var(--indigo);outline-offset:1px}
.eq-carte.eq-source{opacity:.3}
.eq-fantome{position:fixed;pointer-events:none;z-index:1200;opacity:.95;box-shadow:0 12px 26px -8px rgba(0,0,0,.4);transform:rotate(-1.5deg)}
body.eq-glisse,body.eq-glisse *{cursor:grabbing!important}
.eq-vide{padding:30px;text-align:center;color:var(--text-muted);font-size:12.5px}

/* la barre de confirmation */
#cal-barre{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:950;width:min(820px,calc(100vw - 24px));transform:translate(-50%,24px);opacity:0;transition:opacity .18s,transform .18s;
  display:flex;align-items:center;gap:12px 16px;flex-wrap:wrap;padding:12px 14px 12px 16px;background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--indigo);border-radius:14px;box-shadow:0 22px 48px -18px rgba(0,0,0,.45)}
#cal-barre.on{opacity:1;transform:translate(-50%,0)}
#cal-barre.alerte{border-left-color:#d08a2a}
#cal-barre .cb-txt{flex:1 1 360px;min-width:0;display:grid;gap:3px;font-size:13px;line-height:1.45}
#cal-barre .cb-titre{font-size:12px;color:var(--text-muted);font-weight:800}
#cal-barre .eq-prev{display:block;font-size:12px;color:var(--text-muted)}
#cal-barre .eq-prev i{margin-right:5px;color:#2a9fd6}
#cal-barre .eq-alerte{display:block;font-size:12.5px;font-weight:700;color:#b06a12}
.dark #cal-barre .eq-alerte{color:#e8b25e}
#cal-barre .cb-heure{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;color:var(--text-muted)}
#cal-barre .cb-heure input{padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:13px}
#cal-barre .cb-btns{display:flex;gap:8px;margin-left:auto}
#cal-barre button{padding:9px 16px;border-radius:9px;font-size:12.5px;font-weight:800;cursor:pointer}
#cal-barre .cb-non{background:var(--bg);color:var(--text);border:1px solid var(--border)}
#cal-barre .cb-ok{background:var(--indigo);color:#fff;border:0}
.dark #cal-barre .cb-ok{color:#14122e}
#cal-barre.alerte .cb-ok{background:#d08a2a;color:#fff}
@media (max-width:600px){.eq-grille{--eq-nom:104px}.eq-tech{padding:8px}.eq-nom{font-size:11.5px}#cal-barre .cb-btns{width:100%}#cal-barre .cb-btns button{flex:1}}
@media (prefers-reduced-motion:reduce){#cal-barre,.eq-case,.eq-plus{transition:none}}

/* ═══════════════ Design de l'Agenda 7G pour tout le Calendrier ═══════════════
   Demande d'Adrien (23/10/2026) : le Calendrier garde le design de l'Agenda (Lexend, bleu 7G #0C3D63,
   cartes claires et aérées), seulement dans le Calendrier et ses fenêtres : le reste du Suivi garde son thème.
   On redéfinit les couleurs du Suivi dans cette zone : les styles écrits dans la page les suivent. */
@font-face{font-family:"Lexend";src:url(/atelier/polices/lexend.woff2) format("woff2");font-weight:300 800;font-display:swap}
#view-calendrier,#cal-modal,#cal-form,#cal-barre,.eq-fantome,#eq-aide{
  --bg:#EEF2F6;--card-bg:#FFFFFF;--border:#DDE4EC;--text:#0E2233;--text-muted:#4E6075;--indigo:#0C3D63;--indigo-light:#15507F;
  --sel:#DCE8F2;--trait-fort:#C9D4DE;--radius:14px;--radius-sm:9px;
  --shadow:0 1px 0 rgba(12,61,99,.04),0 10px 24px -16px rgba(12,61,99,.3);--shadow-md:0 18px 40px -22px rgba(12,61,99,.45);
  font-family:"Lexend","Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.dark #view-calendrier,.dark #cal-modal,.dark #cal-form,.dark #cal-barre,.dark .eq-fantome,.dark #eq-aide{
  --bg:#0A1724;--card-bg:#112233;--border:#1E3347;--text:#E6EEF5;--text-muted:#AEBDCC;--indigo:#8DC0EA;--indigo-light:#6FAAD8;
  --sel:#16304A;--trait-fort:#27405A;--shadow:0 1px 0 rgba(0,0,0,.25),0 12px 26px -16px rgba(0,0,0,.7);--shadow-md:0 18px 40px -20px rgba(0,0,0,.75)}
#view-calendrier button,#cal-modal button,#cal-form button,#cal-barre button{font-family:inherit}
/* titre : « Semaine du 26 octobre », cliquable pour aller à une date, avec le numéro de semaine */
#cal-titre{text-transform:none!important;font-weight:600!important;letter-spacing:-.01em;cursor:pointer;border-radius:8px;padding:2px 6px;margin-left:-6px!important}
#cal-titre::first-letter{text-transform:uppercase}
#cal-titre:hover{background:var(--sel)}
#cal-titre .eq-sem{font-size:12px;font-weight:600;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);border-radius:99px;padding:2px 8px;vertical-align:3px;margin-left:4px}
#eq-aller{position:fixed;opacity:0;width:1px;height:1px;pointer-events:none}
/* boutons et pastilles de la barre du haut */
#view-calendrier .cal-mode-btn{font-weight:500;border-radius:8px;font-size:12.5px}
#view-calendrier .cal-mode-btn.on{font-weight:600;color:var(--text);background:var(--card-bg);box-shadow:0 1px 2px rgba(12,61,99,.12)}
#view-calendrier .cal-tech{border-width:1px;font-weight:500;padding:4px 11px;background:var(--card-bg)}
#view-calendrier .cal-tech.solo{border-color:var(--indigo);box-shadow:0 0 0 3px var(--sel)}
#view-calendrier .cal-tech .nb{font-weight:500;color:var(--text-muted)}
#cal-btn-add,#cal-f-save{border-radius:9px!important;font-weight:600!important}
.dark #view-calendrier [style*="background:var(--indigo)"],.dark #cal-modal [style*="background:var(--indigo)"],.dark #cal-form [style*="background:var(--indigo)"]{color:#0A1724!important}
/* champs : le thème du Suivi force des bords noirs épais et des coins carrés */
#view-calendrier input,#view-calendrier select,#view-calendrier textarea,#cal-form input,#cal-form select,#cal-form textarea,#cal-barre input,.eq-reglages select{
  border:1px solid var(--trait-fort)!important;border-radius:9px!important;background:var(--card-bg);color:var(--text)}
#view-calendrier input:focus,#view-calendrier select:focus,#view-calendrier textarea:focus,#cal-form input:focus,#cal-form select:focus,#cal-form textarea:focus,#cal-barre input:focus{
  border-color:var(--indigo)!important;box-shadow:0 0 0 3px var(--sel)!important}
#cal-form .cal-lbl{font-weight:600;letter-spacing:.02em;text-transform:none;font-size:12px}
/* fenêtres : fiche et formulaire */
#cal-modal>div,#cal-form>div{border-radius:16px!important;border:1px solid var(--border);box-shadow:0 30px 70px -20px rgba(8,30,50,.55)!important}
#cal-modal,#cal-form{background:rgba(10,23,36,.42)!important}
#cal-modal-num{color:var(--indigo)!important;font-weight:600!important}
#cal-modal-nom,#cal-form-titre{font-weight:600!important}
/* grille et file de travail */
#cal-grille{border-radius:var(--radius)!important}
#view-calendrier .cal-rail{border-radius:var(--radius)}
#view-calendrier .cal-sec-h,#view-calendrier .cal-rail-head{font-weight:600}
#view-calendrier .cal-q{border-radius:8px;background:var(--card-bg)}
#view-calendrier .cal-rail-badge{background:var(--indigo);color:var(--card-bg)}
/* vue Équipe : en-têtes des jours sur deux lignes */
.eq-jour{flex-direction:column;align-items:stretch;gap:2px}
.eq-j1{display:flex;align-items:baseline;gap:6px}
.eq-j1 span{text-transform:capitalize;font-weight:600}
.eq-j1 b{font-size:17px;color:var(--text);margin-left:auto;font-weight:600}
.eq-j2{font-size:10.5px;color:var(--text-muted)}
.eq-jour.auj .eq-j1 b,.eq-jour.auj .eq-j1 span{color:var(--indigo)}
.eq-nom b,.eq-l1 b,.eq-l1 time{font-weight:600}
.eq-carte.conflit{box-shadow:inset 0 0 0 1.5px #d65a5a}
.eq-conflit{font-size:10.5px;font-weight:600;color:#c23a3e;margin-bottom:2px}
.dark .eq-conflit{color:#f07378}
.eq-reglages-wrap{display:flex;gap:6px}
.eq-reglages-btn{border-radius:9px;font-weight:600}
/* aide des raccourcis */
#eq-aide{position:fixed;right:max(18px,env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:960;width:300px;max-width:calc(100vw - 32px);
  background:var(--card-bg);color:var(--text);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow-md);padding:12px 14px;display:grid;gap:6px;font-size:12.5px}
.eq-aide-t{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}
.eq-aide-t button{border:0;background:none;color:var(--text-muted);font-size:18px;cursor:pointer;line-height:1}
.eq-aide-l{display:grid;grid-template-columns:104px 1fr;gap:8px;align-items:center}
.eq-aide-l kbd{font:600 11px/1 "Lexend",sans-serif;background:var(--bg);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:4px 6px;text-align:center;color:var(--text)}

/* 23/10 : colonne des noms resserrée pour que la semaine tienne en entier (retour d'Adrien) */
.eq-jour{padding:8px 8px 7px}
.eq-j1 b{font-size:16px}
.eq-case{padding:5px}
.eq-carte{padding:5px 6px}
