/* Charte KappGen = celle de la landing kappgen.com (docs/page-vente/v2-modele.html) : nuit bleue #05070f en sombre, papier bleuté
   #f6f7fb en clair, bleu du logo en accent, police Inter. Rouge / ambre / vert seulement pour dire problème / attention / fait. */
:root{
  --fond:#f6f7fb; --fond2:#eef1f8; --surface:#ffffff; --surface2:#f3f5fa; --bord:#e0e4ee; --bord2:#cbd1df;
  --texte:#0e1222; --texte2:#3b4363; --pale:#6b7393; --tres-pale:#9aa1ba;
  --accent:#0a6fe8; --accent-f:#e6f1ff; --accent-t:#0757c0;
  --rouge:#d92d20; --rouge-f:#fdecea; --ambre:#c27803; --ambre-f:#fdf4e3; --vert:#16803c; --vert-f:#e8f5ec;
  --ombre:0 1px 2px #0e122208,0 1px 3px #0e122208; --ombre-l:0 30px 70px #1e285024;
  --r:12px; --nav:240px; color-scheme:light;
}
[data-theme="sombre"]{
  --fond:#05070f; --fond2:#080b17; --surface:#0c1020; --surface2:#11162a; --bord:#171d2c; --bord2:#262f43;
  --texte:#e8eef8; --texte2:#b2bfd4; --pale:#7d8ba3; --tres-pale:#4f5a70;
  --accent:#1f8bff; --accent-f:#0e2442; --accent-t:#6fb6ff;
  --rouge:#f0625a; --rouge-f:#2c1615; --ambre:#e3a23a; --ambre-f:#2a2112; --vert:#4cc479; --vert-f:#13261a;
  --ombre:none; --ombre-l:0 30px 80px #0000008c; color-scheme:dark;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--fond);color:var(--texte);font:14.5px/1.5 Inter,system-ui,-apple-system,"SF Pro Text","Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
a{color:inherit} button{font:inherit;color:inherit}
code{background:var(--surface2);border:1px solid var(--bord);padding:0 5px;border-radius:5px;font-size:12.5px}
.ic{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.ic.s{width:15px;height:15px} .ic.l{width:22px;height:22px}
.muted{color:var(--pale)}

/* ---------- structure */
.app{display:flex;min-height:100vh}
.nav{position:fixed;inset:0 auto 0 0;width:var(--nav);background:var(--fond2);border-right:1px solid var(--bord);display:flex;flex-direction:column;padding:16px 12px;z-index:20}
.marque{display:flex;align-items:center;gap:10px;padding:2px 8px 18px;color:inherit;text-decoration:none}
.marque .logo{width:30px;height:30px;border-radius:8px;background:var(--texte);color:var(--fond);display:grid;place-items:center;font-weight:700;font-size:13px;letter-spacing:-.3px}
.marque b{display:block;font-size:14.5px} .marque small{color:var(--pale);font-size:12px}
#menu{display:flex;flex-direction:column;gap:1px}
#menu a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;text-decoration:none;color:var(--texte2);font-size:14px;font-weight:500;border:1px solid transparent}
#menu a:hover{background:var(--surface2)}
#menu a.actif{background:var(--surface);color:var(--texte);box-shadow:var(--ombre);border-color:var(--bord)}
#menu .compte{margin-left:auto;font-size:11.5px;font-weight:600;min-width:20px;text-align:center;padding:0 6px;border-radius:20px;color:var(--pale)}
#menu .compte.alerte{background:var(--rouge);color:#fff}
.recherche-nav{display:flex;align-items:center;gap:8px;margin:0 0 12px;padding:8px 10px;border-radius:8px;background:var(--surface);border:1px solid var(--bord);color:var(--pale);font-size:13.5px;cursor:pointer}
.recherche-nav kbd{margin-left:auto;font:11px ui-monospace,Menlo,monospace;border:1px solid var(--bord);border-radius:5px;padding:0 5px}
.nav-pied{margin-top:auto;border-top:1px solid var(--bord);padding-top:12px;display:flex;flex-direction:column;gap:10px}
.etat-production{font-size:12.5px;color:var(--pale);display:flex;align-items:center;gap:8px;padding:0 6px}.etat-production i{width:8px;height:8px;border-radius:50%;background:var(--pale);flex:none}.etat-production.en-cours{color:var(--texte)}.etat-production.en-cours i{background:#2f9e44;box-shadow:0 0 0 3px rgba(47,158,68,.2)}
.etat-montage{font-size:12.5px;color:var(--pale);display:flex;align-items:center;gap:7px;padding:0 6px}
.profil{display:flex;align-items:center;gap:10px;padding:4px 6px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--surface2) center/cover no-repeat;border:1px solid var(--bord);display:grid;place-items:center;font-size:12.5px;font-weight:650;color:var(--texte2);flex:none}
.profil b{display:block;font-size:13.5px} .profil small{color:var(--pale);font-size:12px}
.theme-btn{margin-left:auto;background:var(--surface);border:1px solid var(--bord);border-radius:8px;width:32px;height:32px;display:grid;place-items:center;cursor:pointer;color:var(--texte2)}
.theme-btn:hover{color:var(--texte)}
.theme-btn+.theme-btn{margin-left:6px}
.theme-btn.actif{background:var(--accent-f,var(--surface));border-color:var(--accent,var(--bord));color:var(--accent,var(--texte))}
/* Mode capture : floute les noms de chaînes et titres de vidéos pour les
   captures d'écran partagées publiquement (bouton œil dans la barre
   latérale). Survol/clic révèle temporairement pour pouvoir travailler
   normalement — une capture statique, elle, reste floutée. */
html[data-prive="oui"] .priv{filter:blur(5px);user-select:none;transition:filter .15s}
html[data-prive="oui"] .priv:hover,html[data-prive="oui"] .priv:focus-within{filter:none}
.principal{flex:1;margin-left:var(--nav);min-width:0}
.barre{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;padding:14px 32px;background:color-mix(in srgb,var(--fond) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--bord)}
.barre h1{font-size:18px;margin:0;font-weight:650;letter-spacing:-.2px}
.barre .fil{color:var(--pale);font-size:14px;display:flex;align-items:center;gap:6px} .barre .fil a{text-decoration:none}
.barre .droite{margin-left:auto;display:flex;align-items:center;gap:14px}
.direct{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--pale)}
.direct i{width:7px;height:7px;border-radius:50%;background:var(--vert);animation:pouls 2s infinite}
.direct.off i{background:var(--rouge);animation:none}
@keyframes pouls{50%{opacity:.35}}
.date-jour{font-size:13px;color:var(--texte2)}
main{padding:24px 32px 80px;max-width:1440px}

/* ---------- blocs */
.section{margin-bottom:28px}
.section-tete{display:flex;align-items:baseline;gap:10px;margin-bottom:12px}
.section-tete h2{font-size:15.5px;margin:0;font-weight:650}
.section-tete .sous{color:var(--pale);font-size:13px}
.section-tete .lien,.lien{margin-left:auto;font-size:13px;color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:3px;background:none;border:0;cursor:pointer}
.carte{background:var(--surface);border:1px solid var(--bord);border-radius:var(--r);box-shadow:var(--ombre)}
.vide{color:var(--pale);padding:22px;text-align:center;font-size:13.5px}
.deux-col{display:grid;grid-template-columns:1fr 1fr;gap:20px} .deux-col.inegal{grid-template-columns:1.3fr 1fr}
.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--bord2);text-decoration:none;font-size:13px;cursor:pointer;color:var(--texte);white-space:nowrap;font-weight:500}
.btn:hover{background:var(--surface2)} .btn:disabled{opacity:.4;cursor:default}
.btn.prim{background:var(--texte);border-color:var(--texte);color:var(--fond)} .btn.prim:hover{opacity:.9}
.btn.petit{padding:4px 9px;font-size:12.5px}
.btn.copie{background:var(--vert);border-color:var(--vert);color:#fff}
.recherche{flex:1;max-width:320px;background:var(--surface);border:1px solid var(--bord2);border-radius:8px;padding:7px 11px;color:var(--texte);font-size:13.5px}
.recherche:focus,select.filtre:focus{outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-color:var(--accent)}
select.filtre{background:var(--surface);border:1px solid var(--bord2);border-radius:8px;padding:7px 10px;color:var(--texte);font-size:13.5px}
.outils{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:14px}
.outils .droite{margin-left:auto;display:flex;gap:8px;align-items:center}
.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:20px;background:transparent;border:1px solid var(--bord2);font-size:13px;cursor:pointer;color:var(--texte2);white-space:nowrap}
.chip:hover{background:var(--surface)} .chip b{font-weight:600;color:var(--pale)}
.chip.actif{background:var(--texte);color:var(--fond);border-color:var(--texte)} .chip.actif b{color:var(--fond);opacity:.7}
.seg{display:inline-flex;border:1px solid var(--bord2);border-radius:8px;overflow:hidden;background:var(--surface)}
.seg button{background:transparent;border:0;padding:6px 11px;font-size:13px;color:var(--pale);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.seg button+button{border-left:1px solid var(--bord)}
.seg button.actif{background:var(--surface2);color:var(--texte);font-weight:600}
.interrupteur{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--texte2);cursor:pointer}
.interrupteur input{accent-color:var(--accent)}

/* statuts : un point + un mot. Couleur seulement pour ce qui demande une action */
.st{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:550;color:var(--texte2);white-space:nowrap}
.st::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--tres-pale)}
.st.retard,.st.echec{color:var(--rouge)} .st.retard::before,.st.echec::before{background:var(--rouge)}
/* Prête mais pas encore envoyée : ambre, jamais rouge. Le travail est fait,
   publier est une décision — ce n'est pas une panne. */
.st.attente_publication{color:var(--ambre)} .st.attente_publication::before{background:var(--ambre)}
.st.publication::before{background:var(--ambre)} .st.production::before{background:var(--accent);animation:pouls 1.4s infinite}
.st.publiee::before{background:var(--vert)} .st.prete::before{background:var(--texte2)}
.ini{width:28px;height:28px;border-radius:7px;background:var(--surface2);border:1px solid var(--bord);display:grid;place-items:center;font-size:11px;font-weight:650;color:var(--texte2);flex:none;letter-spacing:-.2px}
.ini.p{width:22px;height:22px;border-radius:6px;font-size:9.5px}
.tag{font-size:11px;font-weight:600;padding:1px 7px;border-radius:5px;background:var(--surface2);border:1px solid var(--bord);color:var(--texte2);white-space:nowrap}
.tag.rouge{background:var(--rouge-f);border-color:transparent;color:var(--rouge)} .tag.accent{background:var(--accent-f);border-color:transparent;color:var(--accent-t)}
.gp{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none;background:var(--tres-pale)}
.gp.critique,.gp.haute{background:var(--rouge)} .gp.moyenne{background:var(--ambre)}

/* ---------- vue d'ensemble */
.resume{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:24px}
.kpi{padding:16px 18px;cursor:pointer} .kpi:hover{border-color:var(--bord2)}
.kpi .v{font-size:26px;font-weight:650;letter-spacing:-.6px;font-variant-numeric:tabular-nums;line-height:1.2}
.kpi .v small{font-size:14px;color:var(--pale);font-weight:500}
.kpi .l{color:var(--pale);font-size:13px;margin-top:2px}
.kpi.alerte .v{color:var(--rouge)}
.liste-l{display:flex;flex-direction:column}
.liste-l .li{display:flex;gap:12px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--bord);font-size:13.5px}
.liste-l .li:last-child{border-bottom:0}
.liste-l .li.cl{cursor:pointer} .liste-l .li.cl:hover{background:var(--surface2)}
.liste-l .li .q{color:var(--pale);font-variant-numeric:tabular-nums;white-space:nowrap;min-width:96px;font-size:13px}
.liste-l .li .d{flex:1;min-width:0}
.liste-l .li .d small{display:block;color:var(--pale);font-size:12.5px;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rang{font-variant-numeric:tabular-nums;color:var(--pale);font-size:12.5px;min-width:26px}
.tout-va-bien{display:flex;align-items:center;gap:10px;padding:14px 16px;color:var(--vert)}

/* ---------- étapes : barre compacte */
.etapes-c{display:flex;gap:3px;width:150px;flex:none}
.etapes-c i{flex:1;height:5px;border-radius:3px;background:var(--bord2)}
.etapes-c i.fait{background:var(--texte2)} .etapes-c i.cours{background:var(--accent);animation:pouls 1.2s infinite}
.etapes-c i.bloque{background:var(--rouge)} .etapes-c i.alerte{background:var(--ambre)}
.etapes-c i.passe{background:repeating-linear-gradient(90deg,var(--texte2) 0 3px,transparent 3px 5px);opacity:.6}
.etapes{display:flex;align-items:flex-start}
.et{flex:1;display:flex;flex-direction:column;align-items:center;position:relative;min-width:0}
.et::before{content:"";position:absolute;top:11px;right:50%;width:100%;height:2px;background:var(--bord2)}
.et:first-child::before{display:none}
.et.fait::before,.et.cours::before,.et.alerte::before,.et.passe::before{background:var(--texte2)}
.et.passe .rond{border-style:dashed;border-color:var(--texte2)}
.et .rond{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1.5px solid var(--bord2);color:var(--pale);z-index:1;position:relative}
.et .rond .ic{width:12px;height:12px;stroke-width:2.4}
.et.fait .rond{background:var(--texte2);border-color:var(--texte2);color:var(--surface)}
.et.cours .rond{border-color:var(--accent);color:var(--accent);background:var(--accent-f)}
.et.cours .rond::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--accent);border-top-color:transparent;animation:tourne 1s linear infinite}
@keyframes tourne{to{transform:rotate(360deg)}}
.et.bloque .rond{background:var(--rouge);border-color:var(--rouge);color:#fff}
.et.alerte .rond{background:var(--ambre-f);border-color:var(--ambre);color:var(--ambre)}
.et .nom{margin-top:6px;font-size:11px;color:var(--pale);text-align:center;line-height:1.2}
.et.cours .nom{color:var(--accent);font-weight:600} .et.bloque .nom{color:var(--rouge)}
.grosse-barre{height:6px;border-radius:6px;background:var(--surface2);overflow:hidden;margin-top:10px}
.grosse-barre span{display:block;height:100%;border-radius:6px;background:var(--accent);transition:width .8s}
.grosse-barre.indet span{width:35%!important;animation:indet 1.4s infinite ease-in-out}
@keyframes indet{from{margin-left:-35%}to{margin-left:100%}}

/* ---------- en ce moment */
.direct-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(480px,1fr));gap:12px}
.encours{padding:16px 18px;cursor:pointer}
.encours .haut{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--pale);margin-bottom:4px}
.encours h3{margin:0 0 14px;font-size:15px;font-weight:600;line-height:1.35}
.encours .etape-now{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:13.5px;color:var(--texte2)}
.encours .etape-now b{color:var(--accent);font-weight:600}
.repos{display:flex;align-items:center;gap:12px;padding:16px 18px;color:var(--texte2)}

/* ---------- vidéos : grille / liste */
.videos-grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px}
.vg{cursor:pointer;overflow:hidden;transition:border-color .15s}
.vg:hover{border-color:var(--bord2)}
.vg .mini{aspect-ratio:16/9;background:var(--surface2) center/cover no-repeat;display:grid;place-items:center;color:var(--tres-pale);position:relative}
.vg .mini .num{position:absolute;left:8px;top:8px;background:#000a;color:#fff;font-size:11.5px;font-weight:600;padding:1px 7px;border-radius:5px}
.vg .mini .live,.vl .mini .live{position:absolute;right:8px;top:8px;background:var(--accent);color:#fff;font-size:11px;font-weight:600;padding:1px 7px;border-radius:5px;display:inline-flex;align-items:center;gap:4px;max-width:calc(100% - 16px)}
.vl .mini{position:relative}
/* Publié = en ligne sur YouTube : le vert est le seul état « terminé, rien à faire ». */
.mini .live.publie{background:var(--vert)}
.mini .live.bloc{background:var(--rouge)}
/* Une étape tourne vraiment : le rouet le dit mieux qu'un mot, et la pastille
   nomme l'étape en cours plutôt qu'un vague « en direct ». */
.mini .live.tourne{background:#000b;backdrop-filter:blur(2px)}
.mini .live .rouet{width:9px;height:9px;border-radius:50%;border:1.5px solid #fff;border-top-color:transparent;animation:tourne .9s linear infinite;flex:none}
/* Avancement de la fabrication. Rayé et animé quand ça tourne, figé sinon :
   on distingue d'un coup d'œil « ça progresse » de « c'est arrêté à 5/9 ». */
.jauge-v{height:4px;border-radius:4px;background:var(--surface2);overflow:hidden;margin:0 0 9px}
.jauge-v span{display:block;height:100%;border-radius:4px;background:var(--texte2);transition:width .4s ease}
.jauge-v.actif span{background:linear-gradient(90deg,var(--accent) 0 35%,color-mix(in srgb,var(--accent) 55%,#fff) 35% 65%,var(--accent) 65%);background-size:200% 100%;animation:defile 1.1s linear infinite}
.jauge-v.bloc span{background:var(--rouge)}
@keyframes defile{to{background-position:-200% 0}}
.vg .corps{padding:12px 14px 14px}
.vg .ch{font-size:12px;color:var(--pale);margin-bottom:4px}
.vg h4{margin:0 0 10px;font-size:14px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:38px}
.vg .pied{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--texte2)}
.vg .pied .etapes-c{width:auto;flex:1}
.vg .ou{font-size:12.5px;margin-top:8px;color:var(--pale);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vg .ou b,.vl .ou b{color:var(--texte);font-weight:600}
.ou b.cours{color:var(--accent)!important} .ou b.bloque{color:var(--rouge)!important} .ou b.alerte{color:var(--ambre)!important} .ou b.fini{color:var(--vert)!important}
.videos-liste{overflow:hidden}
.vl{display:grid;grid-template-columns:128px minmax(0,1fr) 150px 230px;gap:18px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--bord);cursor:pointer}
.vl:last-child{border-bottom:0} .vl:hover{background:var(--surface2)}
.vl .mini{width:128px;aspect-ratio:16/9;border-radius:6px;background:var(--surface2) center/cover no-repeat;display:grid;place-items:center;color:var(--tres-pale)}
.vl .t{min-width:0} .vl .t small{font-size:12px;color:var(--pale)} .vl .t b{display:block;font-size:14px;font-weight:600;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vl .ou{font-size:13px} .vl .ou small{display:block;color:var(--pale);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pagination{display:flex;gap:8px;align-items:center;justify-content:center;margin-top:16px;font-size:13px;color:var(--pale)}

/* ---------- tableau des chaînes */
.tab-carte{overflow:hidden}
table.tab{width:100%;border-collapse:collapse;font-size:13.5px}
table.tab th{text-align:left;font-weight:550;font-size:12px;color:var(--pale);padding:9px 14px;border-bottom:1px solid var(--bord);white-space:nowrap;cursor:pointer;user-select:none;background:var(--surface2)}
table.tab th.tri::after{content:" ↓"} table.tab th.tri.asc::after{content:" ↑"}
table.tab td{padding:10px 14px;border-bottom:1px solid var(--bord);vertical-align:middle}
table.tab tr:last-child td{border-bottom:0}
table.tab tr.ligne{cursor:pointer} table.tab tr.ligne:hover td{background:var(--surface2)}
table.tab tr.groupe td{font-weight:600;font-size:12px;cursor:pointer;color:var(--texte2);background:var(--fond2);text-transform:uppercase;letter-spacing:.04em}
.cell-ch{display:flex;align-items:center;gap:10px;min-width:180px} .cell-ch b{font-weight:600} .cell-ch small{display:block;color:var(--pale);font-size:12px}
.cell-vid{min-width:200px} .cell-vid .t{font-size:12.5px;color:var(--texte2);margin-bottom:5px}
.mini-res{display:flex;align-items:center;gap:8px;min-width:100px}
.jauge{flex:1;height:5px;border-radius:5px;background:var(--surface2);overflow:hidden} .jauge span{display:block;height:100%;background:var(--texte2);border-radius:5px}

/* ---------- page chaîne */
.ch-entete{padding:20px 22px;margin-bottom:6px}
.ch-entete .l1{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ch-entete h2{margin:0;font-size:22px;letter-spacing:-.3px}
.ch-entete .niche{color:var(--pale);font-size:13px}
.ch-entete .etat-txt{font-size:14px;margin:8px 0 0;color:var(--texte2)}
.ch-entete .actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.onglets{display:flex;gap:2px;border-bottom:1px solid var(--bord);margin:16px 0 20px;overflow-x:auto}
.onglets a{padding:9px 13px;text-decoration:none;color:var(--pale);font-size:13.5px;font-weight:500;border-bottom:2px solid transparent;white-space:nowrap;display:flex;align-items:center;gap:6px;margin-bottom:-1px}
.onglets a.actif{color:var(--texte);border-bottom-color:var(--texte)} .onglets a:hover{color:var(--texte)}
.onglets .compte{font-size:11px;padding:0 6px;border-radius:20px;background:var(--surface2);color:var(--pale)}
.onglets .compte.alerte{background:var(--rouge);color:#fff}
.stats4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}
.stat{padding:14px 16px} .stat .v{font-size:22px;font-weight:650;font-variant-numeric:tabular-nums} .stat .v small{font-size:13px;color:var(--pale);font-weight:500} .stat .l{font-size:12.5px;color:var(--pale)}
pre.journal{white-space:pre-wrap;word-break:break-word;font:12.5px/1.55 ui-monospace,Menlo,monospace;color:var(--texte2);padding:16px 18px;margin:0;max-height:560px;overflow:auto}

/* ---------- supervision */
.sup-onglets{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}
.sup-onglets button{display:flex;align-items:baseline;gap:8px;padding:9px 16px;border-radius:10px;border:1px solid var(--bord);background:var(--surface);cursor:pointer;font-size:13.5px;color:var(--texte2)}
.sup-onglets button b{font-size:18px;color:var(--texte);font-variant-numeric:tabular-nums}
.sup-onglets button.actif{border-color:var(--texte);box-shadow:inset 0 0 0 1px var(--texte)}
.sup-onglets button.rouge b{color:var(--rouge)}
.groupe-inc{margin-bottom:12px;overflow:hidden}
.groupe-inc>.gt{display:flex;align-items:center;gap:10px;padding:12px 16px;font-weight:600;font-size:14px;border-bottom:1px solid var(--bord)}
.groupe-inc>.gt .n{margin-left:auto;color:var(--pale);font-weight:500;font-size:12.5px}
.inc{border-bottom:1px solid var(--bord)} .inc:last-child{border-bottom:0}
.inc>summary{display:grid;grid-template-columns:200px 1fr 120px 16px;gap:14px;align-items:center;padding:10px 16px;cursor:pointer;list-style:none;font-size:13.5px}
.inc>summary::-webkit-details-marker{display:none}
.inc>summary:hover{background:var(--surface2)}
.inc .qui{display:flex;align-items:center;gap:9px;white-space:nowrap;overflow:hidden;font-weight:550}
.inc .depuis{color:var(--pale);font-size:12.5px;white-space:nowrap;text-align:right}
.inc .chev{color:var(--tres-pale);transition:transform .15s} .inc[open] .chev{transform:rotate(90deg)}
.inc-corps{display:grid;grid-template-columns:1fr 1fr;gap:4px 24px;padding:4px 16px 16px 53px;font-size:13.5px;background:var(--surface2);border-top:1px solid var(--bord)}
.inc-corps h4{font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--pale);margin:12px 0 6px;font-weight:600}
.inc-corps p{margin:0;color:var(--texte2)}
.inc-corps ol{margin:0;padding-left:18px;color:var(--texte)} .inc-corps li{margin:3px 0}
.inc-corps .actions{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.plus{display:block;width:100%;padding:10px;background:transparent;border:0;border-top:1px solid var(--bord);color:var(--accent);cursor:pointer;font-size:13px}

/* ---------- priorités */
.aide-ligne{font-size:13px;color:var(--pale);margin:0 0 16px;display:flex;align-items:center;gap:6px}
.jour-resume{display:flex;gap:28px;flex-wrap:wrap;padding:14px 18px;border-bottom:1px solid var(--bord)}
.jour-resume div{font-size:12.5px;color:var(--pale)} .jour-resume b{display:block;font-size:20px;color:var(--texte);font-weight:650;font-variant-numeric:tabular-nums}
.jour-resume .rouge b{color:var(--rouge)}
.jl{display:grid;grid-template-columns:28px minmax(160px,1.1fr) 80px minmax(200px,1.7fr) minmax(170px,1.2fr) 200px;gap:14px;align-items:center;padding:10px 18px;border-bottom:1px solid var(--bord);font-size:13.5px}
.jl:last-child{border-bottom:0} .jl.tete{font-size:11.5px;color:var(--pale);text-transform:uppercase;letter-spacing:.04em;padding:8px 18px;background:var(--surface2)}
.jl .nm{font-weight:600;cursor:pointer;min-width:0} .jl .nm small{display:block;font-weight:400}
.jl .vid{min-width:0} .jl .vid div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .jl .vid small{color:var(--pale);font-size:12px}
.creneaux{display:flex;gap:4px;flex-wrap:wrap}
.creneaux span{font-size:11.5px;padding:0 6px;border-radius:5px;border:1px solid var(--bord2);color:var(--texte2);font-variant-numeric:tabular-nums}
.creneaux span.passe{color:var(--tres-pale);border-color:var(--bord)}
.creneaux span.maint{background:var(--accent);border-color:var(--accent);color:#fff}
.creneaux span.m{font-weight:650}
.seg.statut button{padding:5px 10px;font-size:12.5px}
.seg.statut button.actif.urgent{background:var(--rouge);color:#fff} .seg.statut button.actif.pause{background:var(--texte2);color:var(--surface)} .seg.statut button.actif.file{background:var(--texte);color:var(--surface)}
.kanban{display:grid;grid-template-columns:1fr 1.4fr 1fr;gap:14px;align-items:start}
.colonne{background:var(--fond2);border:1px solid var(--bord);border-radius:var(--r);padding:10px;min-height:180px}
.colonne.survol{border-color:var(--accent);background:var(--accent-f)}
.colonne h3{display:flex;align-items:center;gap:7px;margin:4px 6px 10px;font-size:13.5px;font-weight:650}
.colonne h3 .n{margin-left:auto;color:var(--pale);font-size:12.5px;font-weight:500}
.colonne.urgent h3{color:var(--rouge)}
.colonne .indice{font-size:12.5px;color:var(--tres-pale);text-align:center;padding:24px 0;border:1.5px dashed var(--bord2);border-radius:10px}
.kc{display:grid;grid-template-columns:auto auto 1fr auto;gap:10px;align-items:center;padding:9px 10px;margin-bottom:6px;background:var(--surface);border:1px solid var(--bord);border-radius:10px;cursor:grab;user-select:none;box-shadow:var(--ombre)}
.kc:hover{border-color:var(--bord2)} .kc.drag{opacity:.4} .kc.cible{box-shadow:0 -2px 0 var(--accent)}
.kc .nm{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kc .sb{font-size:12px;color:var(--pale);display:flex;gap:8px;flex-wrap:wrap;margin-top:1px;align-items:center}
.kc .bt{display:flex;gap:1px;opacity:0;transition:opacity .15s} .kc:hover .bt{opacity:1}
.kc .bt button{background:transparent;border:0;color:var(--pale);cursor:pointer;padding:4px;border-radius:6px;display:grid;place-items:center}
.kc .bt button:hover{background:var(--surface2);color:var(--texte)}
.kc .demarrer{grid-column:1/-1;font-size:12px;color:var(--texte2);background:var(--surface2);border-radius:7px;padding:6px 9px;line-height:1.4}
.separateur{font-size:12px;color:var(--pale);margin:12px 6px 8px;display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}
.separateur::-webkit-details-marker{display:none}
.separateur::after{content:"";flex:1;height:1px;background:var(--bord)}

/* ---------- calendrier */
.cal-outils{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.cal{display:flex;border:1px solid var(--bord);border-radius:var(--r);overflow:hidden;background:var(--surface);position:relative}
.cal-noms{width:190px;flex:none;background:var(--surface);border-right:1px solid var(--bord);position:relative;z-index:3}
.cal-noms div{position:absolute;left:12px;right:8px;font-size:13px;display:flex;align-items:center;gap:8px;white-space:nowrap;overflow:hidden;color:var(--texte2);cursor:pointer}
.cal-noms div:hover{color:var(--texte)}
.cal-defile{overflow-x:auto;flex:1}
.cal-in{position:relative}
.cal .jour{position:absolute;top:0;height:26px;border-left:1px solid var(--bord2);padding:5px 10px;font-size:12px;color:var(--texte2);font-weight:600;white-space:nowrap;background:var(--surface2)}
.cal .jour.auj{background:var(--texte);color:var(--fond)}
.cal .jourfond{position:absolute;top:26px;bottom:0;background:color-mix(in srgb,var(--accent) 5%,transparent)}
.cal .h{position:absolute;top:26px;bottom:0;border-left:1px solid var(--bord)}
.cal .h span{position:absolute;top:3px;left:4px;font-size:10.5px;color:var(--tres-pale)}
.cal .h.minuit{border-left:1.5px solid var(--bord2)}
.cal .ligne{position:absolute;left:0;border-top:1px solid var(--bord)}
.cal .bloc{position:absolute;height:22px;border-radius:5px;font-size:11px;font-weight:550;padding:3px 7px;white-space:nowrap;overflow:hidden;z-index:2;background:var(--surface2);border:1px solid var(--bord2);color:var(--texte2)}
.cal .bloc.montage{background:var(--accent-f);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent-t)}
.cal .bloc.passe{opacity:.45} .cal .bloc.maint{outline:2px solid var(--accent);z-index:4}
.cal .bloc.conflit{background:var(--rouge-f);border-color:var(--rouge);color:var(--rouge)}
.cal .passage{position:absolute;width:9px;height:9px;border-radius:50%;border:2px solid var(--surface);z-index:5;transform:translateX(-50%);background:var(--texte2)}
.cal .passage.ko{background:var(--rouge)}
.cal .now{position:absolute;top:0;bottom:0;width:2px;background:var(--rouge);z-index:6}
.cal .now em{position:absolute;top:4px;left:4px;font-style:normal;font-size:10.5px;font-weight:700;background:var(--rouge);color:#fff;padding:0 5px;border-radius:4px}
.cal-repere{position:absolute;top:34px;left:202px;z-index:7;background:var(--texte);color:var(--fond);font-size:12px;font-weight:600;padding:4px 10px;border-radius:7px;pointer-events:none;box-shadow:var(--ombre-l);display:flex;gap:8px;align-items:center}
.cal-repere small{opacity:.7;font-weight:500}
.legende{display:flex;flex-wrap:wrap;gap:16px;font-size:12px;color:var(--pale);margin-top:10px}
.legende span{display:flex;align-items:center;gap:6px} .legende i{width:16px;height:10px;border-radius:3px;display:inline-block;border:1px solid var(--bord2)}
.bulle{position:fixed;z-index:60;background:var(--surface);border:1px solid var(--bord2);border-radius:10px;padding:10px 12px;font-size:12.5px;max-width:340px;pointer-events:none;box-shadow:var(--ombre-l)}
.bulle b{display:block;margin-bottom:2px}

/* ---------- bibliothèques */
.biblios{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:14px;margin-bottom:28px}
.bib{padding:16px 18px}
.bib .tete{display:flex;align-items:baseline;gap:10px} .bib .tete b{font-size:15px}
.bib .chiffres{display:flex;gap:22px;margin:12px 0 10px}
.bib .chiffres div{font-size:12px;color:var(--pale)} .bib .chiffres b{display:block;font-size:20px;color:var(--texte);font-weight:650;font-variant-numeric:tabular-nums}
.bib .chiffres .plus-v b{color:var(--vert)}
.histo{display:flex;align-items:flex-end;gap:3px;height:44px;margin:6px 0 4px}
.histo i{flex:1;background:var(--bord2);border-radius:2px 2px 0 0;min-height:2px}
.histo i.auj{background:var(--accent)}
.histo-l{display:flex;justify-content:space-between;font-size:10.5px;color:var(--tres-pale)}
.objectif{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--pale);margin-top:12px}
.recentes{display:flex;gap:6px;margin-top:12px}
.recentes span{flex:1;aspect-ratio:1;border-radius:6px;background:var(--surface2) center/cover no-repeat;border:1px solid var(--bord)}
.file{padding:4px 16px}
.cmd{display:grid;grid-template-columns:minmax(0,1fr) 34% 70px;gap:14px;align-items:center;padding:9px 0;border-bottom:1px solid var(--bord);font-size:13.5px}
.cmd:last-child{border-bottom:0}
.cmd .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:8px} .cmd .n small{color:var(--pale)}
.barre-p{height:5px;background:var(--surface2);border-radius:5px;overflow:hidden} .barre-p span{display:block;height:100%;border-radius:5px;background:var(--texte2)}
.cmd .c{text-align:right;color:var(--pale);font-variant-numeric:tabular-nums}

/* ---------- à publier */
.pub{display:grid;grid-template-columns:260px 1fr;gap:20px;padding:16px;margin-bottom:14px}
.pub .mini{aspect-ratio:16/9;border-radius:8px;background:var(--surface2) center/cover no-repeat;display:grid;place-items:center;color:var(--tres-pale)}
.pub .infos{min-width:0}
.pub .infos .l1{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--pale)}
.pub .infos .l1 .heure{margin-left:auto;font-weight:600;color:var(--texte);display:flex;gap:5px;align-items:center}
.pub h3{margin:6px 0 10px;font-size:16px;line-height:1.35}
.pub .fichiers{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.champ{border-top:1px solid var(--bord);padding:8px 0;display:grid;grid-template-columns:140px minmax(0,1fr) auto;gap:12px;align-items:start;font-size:13px}
.champ .lb{color:var(--pale);font-weight:550;padding-top:3px}
.champ .tx{color:var(--texte2);white-space:pre-wrap;word-break:break-word;max-height:3em;overflow:hidden;cursor:pointer;line-height:1.5}
.champ .tx.ouvert{max-height:none}

/* ---------- historique */
.hist-jour{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--pale);margin:22px 0 8px}
.he{display:grid;grid-template-columns:56px 170px 160px minmax(0,1fr) 70px;gap:14px;align-items:baseline;padding:10px 16px;border-bottom:1px solid var(--bord);font-size:13.5px;cursor:pointer}
.he:last-child{border-bottom:0} .he:hover{background:var(--surface2)}
.he .q{color:var(--pale);font-variant-numeric:tabular-nums} .he .ch{font-weight:600}
.he .quoi{color:var(--texte2)} .he .r{color:var(--texte2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.he.ouvert .r{white-space:normal}
.res{font-size:11.5px;font-weight:650;text-align:right} .res.ok{color:var(--vert)} .res.ko{color:var(--rouge)} .res.pause{color:var(--ambre)}

/* ---------- tiroir vidéo */
.tiroir-fond{position:fixed;inset:0;background:#0006;z-index:40}
.tiroir{position:fixed;top:0;right:0;bottom:0;width:min(600px,100vw);background:var(--surface);border-left:1px solid var(--bord);z-index:50;transform:translateX(100%);transition:transform .22s ease;overflow-y:auto;box-shadow:var(--ombre-l)}
.tiroir.ouvert{transform:none}
.ti-tete{position:sticky;top:0;background:var(--surface);padding:16px 22px 12px;border-bottom:1px solid var(--bord);z-index:2}
.ti-tete .l1{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--pale)}
.ti-tete .fermer{margin-left:auto;background:var(--surface2);border:1px solid var(--bord);border-radius:8px;width:30px;height:30px;display:grid;place-items:center;cursor:pointer}
.ti-tete h2{margin:8px 0 0;font-size:17px;line-height:1.35}
.ti-corps{padding:18px 22px 40px}
.ti-mini{width:100%;aspect-ratio:16/9;border-radius:10px;background:var(--surface2) center/cover no-repeat;margin-bottom:16px;display:grid;place-items:center;color:var(--pale);font-size:13px}
.ti-infos{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}
.ti-infos div{background:var(--surface2);border-radius:8px;padding:9px 11px;font-size:12px;color:var(--pale)}
.ti-infos div b{display:block;color:var(--texte);font-size:13.5px;font-weight:550;margin-top:1px}
.ti-progression{display:flex;align-items:center;gap:12px;margin-bottom:16px;font-size:13px}
.ti-progression .grosse-barre{flex:1;margin:0}
.ch-et{display:grid;grid-template-columns:30px 1fr;gap:12px;position:relative;padding-bottom:16px}
.ch-et::before{content:"";position:absolute;left:14px;top:30px;bottom:0;width:1.5px;background:var(--bord2)}
.ch-et:last-child::before{display:none} .ch-et.fait::before,.ch-et.passe::before{background:var(--texte2)}
.ch-et.passe .rond{border-style:dashed} .ch-et.passe .c b{color:var(--pale);font-weight:500}
.ch-et .rond{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1.5px solid var(--bord2);background:var(--surface);color:var(--pale);position:relative}
.ch-et.fait .rond{background:var(--texte2);border-color:var(--texte2);color:var(--surface)}
.ch-et.cours .rond{border-color:var(--accent);color:var(--accent);background:var(--accent-f)}
.ch-et.cours .rond::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1.5px solid var(--accent);border-top-color:transparent;animation:tourne 1s linear infinite}
.ch-et.bloque .rond{background:var(--rouge);border-color:var(--rouge);color:#fff}
.ch-et.alerte .rond{background:var(--ambre-f);border-color:var(--ambre);color:var(--ambre)}
.ch-et .c{padding-top:4px} .ch-et .c b{font-size:14px;font-weight:600}
.ch-et .c .etiq{font-size:12px;margin-left:8px;color:var(--pale)}
.ch-et.cours .etiq{color:var(--accent)} .ch-et.bloque .etiq{color:var(--rouge)} .ch-et.alerte .etiq{color:var(--ambre)}
.ch-et .c p{margin:2px 0 0;font-size:13px;color:var(--texte2)}
.ch-et.attente .c b{color:var(--pale);font-weight:500}
.ch-et .c .btn{margin-top:6px}

/* ---------- palette ⌘K, toasts */
.palette-fond{position:fixed;inset:0;background:#0007;z-index:80;display:flex;justify-content:center;align-items:flex-start;padding-top:12vh}
.palette{width:min(620px,92vw);background:var(--surface);border:1px solid var(--bord2);border-radius:14px;box-shadow:var(--ombre-l);overflow:hidden}
.palette input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--bord);padding:16px 18px;font-size:16px;color:var(--texte);outline:none}
.palette .res{max-height:52vh;overflow-y:auto;padding:6px;text-align:left}
.palette .it{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;font-size:14px;color:var(--texte)}
.palette .it small{color:var(--pale);margin-left:auto;font-size:12px;white-space:nowrap}
.palette .it.sel{background:var(--surface2)}
.palette .gr{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--tres-pale);padding:10px 12px 4px}
.palette .pied{border-top:1px solid var(--bord);padding:8px 14px;font-size:12px;color:var(--pale);display:flex;gap:14px}
.toasts{position:fixed;right:20px;bottom:20px;z-index:70;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.toast{background:var(--surface);border:1px solid var(--bord2);border-radius:10px;padding:10px 14px;font-size:13.5px;max-width:360px;box-shadow:var(--ombre-l);animation:monte .25s ease;cursor:pointer;display:flex;gap:10px;align-items:flex-start}
.toast::before{content:"";width:8px;height:8px;border-radius:50%;margin-top:6px;flex:none;background:var(--texte2)}
.toast.bloque::before{background:var(--rouge)} .toast.cours::before{background:var(--accent)} .toast.fait::before{background:var(--vert)} .toast.alerte::before{background:var(--ambre)}
.toast small{display:block;color:var(--pale);font-size:12px}
@keyframes monte{from{transform:translateY(10px);opacity:0}}

/* ---------- menu de gauche rétractable (bouton sur le bord ; seulement les icônes, l'intitulé en infobulle) */
.nav{transition:width .18s ease}
.principal{transition:margin-left .18s ease}
.nav-plier{position:absolute;top:22px;right:-13px;z-index:21;width:26px;height:26px;border-radius:50%;border:1px solid var(--bord2);background:var(--surface);color:var(--texte2);display:grid;place-items:center;cursor:pointer;padding:0;box-shadow:var(--ombre)}
.nav-plier:hover{color:var(--texte)}
.nav-plier svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s}
.nav-plie{--nav:68px}
.nav-plie .nav-plier svg{transform:rotate(180deg)}
.nav-plie .nav{padding:16px 10px}
.nav-plie .marque{padding:2px 0 18px;justify-content:center}
.nav-plie .marque>div,.nav-plie .kg-v{display:none}
.nav-plie .recherche-nav{justify-content:center;padding:8px 0}
.nav-plie .recherche-nav span,.nav-plie .recherche-nav kbd{display:none}
.nav-plie #menu a{justify-content:center;padding:9px 0;position:relative}
.nav-plie #menu a>span:not(.compte){display:none}
.nav-plie #menu .compte{position:absolute;top:1px;right:4px;margin:0;min-width:16px;height:16px;padding:0 4px;line-height:16px;font-size:10px}
.nav-plie #menu .compte:not(.alerte){background:var(--surface2)}
.nav-plie .nav-pied{align-items:center;font-size:0}
.nav-plie .nav-pied *{font-size:0}
.nav-plie .kg-version span{display:none}
/* ---------- petits écrans */
@media (max-width:1200px){.resume,.stats4{grid-template-columns:repeat(2,1fr)} .deux-col,.deux-col.inegal,.kanban{grid-template-columns:1fr} .cell-vid{display:none}
  .vl{grid-template-columns:100px 1fr} .vl .mini{width:100px} .vl>:nth-child(n+3){grid-column:2}
  .jl{grid-template-columns:28px 1fr 1fr} .jl>:nth-child(n+4){grid-column:2/-1} .jl.tete{display:none} .inc-corps{grid-template-columns:1fr} .pub{grid-template-columns:1fr}}
@media (max-width:900px){
  :root{--nav:0px}
  .nav{inset:auto 0 0 0;width:auto;height:60px;flex-direction:row;padding:4px;border-right:0;border-top:1px solid var(--bord)}
  .marque,.nav-pied,.recherche-nav,.nav-plier{display:none}
  .nav-plie{--nav:0px}
  #menu{flex-direction:row;width:100%;justify-content:space-around}
  #menu a{flex-direction:column;gap:2px;font-size:10px;padding:5px;position:relative} #menu a.actif{border-color:transparent;box-shadow:none}
  #menu .compte{position:absolute;top:0;right:0;font-size:9.5px}
  .barre{padding:12px 16px} main{padding:16px 14px 90px} .date-jour{display:none}
  .inc>summary{grid-template-columns:1fr 16px} .inc .depuis,.inc>summary>span:nth-child(2){display:none} .he{grid-template-columns:50px 1fr 60px} .he .quoi,.he .r{display:none}
}
.deux-col>*,.kanban>*,.resume>*,.biblios>*{min-width:0}
@media (max-width:900px){#menu{overflow-x:auto;justify-content:flex-start;gap:2px} #menu a{flex:none;min-width:64px} .resume,.stats4{grid-template-columns:1fr 1fr}}
.cal-repere{position:static;margin-left:auto;box-shadow:none}
@media (max-width:900px){#menu{scrollbar-width:none} #menu::-webkit-scrollbar{display:none}}

/* ---------- sélecteur maison (remplace les menus du navigateur) */
.sel{position:relative;display:inline-flex}
.sel-btn{display:inline-flex;align-items:center;gap:8px;justify-content:space-between;min-width:170px;padding:7px 10px 7px 12px;border-radius:8px;background:var(--surface);border:1px solid var(--bord2);color:var(--texte2);font-size:13.5px;cursor:pointer;white-space:nowrap}
.sel-btn:hover{border-color:var(--pale)} .sel-btn .ic{color:var(--pale)}
.sel.plein .sel-btn{color:var(--texte);font-weight:550;border-color:var(--texte2)}
.sel-menu{position:fixed;z-index:90;background:var(--surface);border:1px solid var(--bord2);border-radius:10px;box-shadow:var(--ombre-l);padding:5px;max-width:340px;animation:monte .12s ease}
.sel-q{width:100%;border:0;border-bottom:1px solid var(--bord);background:transparent;color:var(--texte);padding:8px 9px 10px;font-size:13.5px;outline:none;margin-bottom:4px}
.sel-l{max-height:320px;overflow-y:auto}
.sel-it{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 9px;border-radius:7px;cursor:pointer;font-size:13.5px;color:var(--texte2)}
.sel-it:hover{background:var(--surface2);color:var(--texte)} .sel-it.actif{color:var(--texte);font-weight:600} .sel-it .ic{color:var(--accent)}
.sel-vide{padding:10px;font-size:13px;color:var(--pale)}

/* ---------- vues en grille */
.grille-cartes{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.groupe-titre{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.05em;color:var(--texte2);margin:4px 0 10px}
.groupe-titre.cl{cursor:pointer} .groupe-titre .muted{text-transform:none;letter-spacing:0;font-weight:500}
.section-tete>.lien:has(.seg){color:inherit}
/* chaîne */
.cg{padding:14px 16px;cursor:pointer;display:flex;flex-direction:column;gap:8px}
.cg:hover{border-color:var(--bord2)}
.cg-t{display:flex;align-items:center;gap:10px} .cg-t b{display:block;font-size:14px} .cg-t small{color:var(--pale);font-size:12px}
.cg-prio{margin-left:auto;font-size:12px;color:var(--pale);white-space:nowrap}
.cg-txt{font-size:13px;color:var(--texte2);min-height:38px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cg-v{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--texte2)} .cg-v .etapes-c{width:100%}
.cg-pied{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--pale);border-top:1px solid var(--bord);padding-top:8px;align-items:center}
.cg-pied span{display:inline-flex;align-items:center;gap:5px}
/* incident */
.ic-carte{padding:14px 16px;display:flex;flex-direction:column;gap:8px;font-size:13.5px}
.ic-t{display:flex;align-items:center;gap:8px} .ic-t .muted{margin-left:auto;font-size:12px}
.ic-titre{display:flex;align-items:center;gap:8px;font-weight:600}
.ic-cause{margin:0;color:var(--texte2);font-size:13px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.ic-sol{cursor:pointer;font-size:12.5px;color:var(--accent);list-style:none} .ic-sol::-webkit-details-marker{display:none}
.ic-carte ol{margin:6px 0 0;padding-left:18px;font-size:13px} .ic-carte li{margin:3px 0}
.ic-carte .actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:4px}
/* programme du jour */
.jc{padding:12px 14px;display:flex;flex-direction:column;gap:8px;font-size:13.5px;box-shadow:none}
.jc-t{display:flex;align-items:center;gap:8px} .jc-t b{cursor:pointer} .jc-t .muted{margin-left:auto;font-size:12px}
.jc .vid div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis} .jc .vid small{color:var(--pale);font-size:12px}
/* à publier en grille */
.pubg .mini .num{display:flex;align-items:center;gap:4px}
.pubg-c{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
/* historique en cartes */
.hc{padding:12px 14px;cursor:pointer;font-size:13px}
.hc-t{display:flex;align-items:center;gap:10px} .hc-t .q{color:var(--pale);font-variant-numeric:tabular-nums} .hc-t .res{margin-left:auto}
.hc-quoi{color:var(--texte2);margin:4px 0} .hc-r{color:var(--pale);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hc.ouvert .hc-r{display:block}
/* CODE COULEUR (02/10) — une couleur = une idée, partout :
     vert  = terminé / publié, rien à faire
     bleu  = en cours, ça travaille
     ambre = ça attend une décision ou une livraison
     rouge = bloqué ou en panne
   Ce bloc repeignait en vert tout ce qui était « en cours » : le vert disait
   donc à la fois « ça tourne » et « c'est fini ». Les règles de base (plus haut)
   utilisent déjà l'accent pour l'activité — il suffit de ne plus les écraser. */
.tag.vert{background:var(--accent-f);border-color:transparent;color:var(--accent-t)}
.ic.urg{color:var(--rouge)}
.encours .etape-now b{color:var(--accent)} .grosse-barre span{background:var(--accent)}
@media (max-width:900px){.inc>summary{grid-template-columns:1fr 16px} .inc>summary>span:nth-child(2){display:block!important;grid-column:1;grid-row:2;color:var(--texte2);font-size:13px} .inc>summary>.chev{grid-row:1/3;grid-column:2}}

/* À publier : vidéos pas encore publiées en rouge, copier-coller */
.pub-jour{display:flex;align-items:center;gap:10px;font-size:17px;margin:0 0 14px;text-transform:capitalize}
.pub-bandeau{display:flex;align-items:center;gap:14px;border-radius:12px;padding:14px 18px;margin-bottom:22px;border:1px solid}
.pub-bandeau b{display:block;font-size:16px} .pub-bandeau span{font-size:13px;opacity:.85}
.pub-bandeau.rouge{background:var(--rouge-f);color:var(--rouge);border-color:var(--rouge)} .pub-bandeau.vert{background:var(--vert-f);color:var(--vert);border-color:var(--vert)}
.carte.pub{margin-bottom:16px;border-left:5px solid var(--bord2)}
.carte.pub.st-rouge{border-left-color:var(--rouge);background:linear-gradient(90deg,var(--rouge-f),var(--surface) 38%)}
.carte.pub.st-ambre{border-left-color:var(--ambre)} .carte.pub.st-vert{border-left-color:var(--vert)}
.bp{font-size:11.5px;font-weight:700;padding:2px 9px;border-radius:99px;white-space:nowrap}
.bp-rouge{background:var(--rouge);color:#fff} .bp-ambre{background:var(--ambre-f);color:var(--ambre)} .bp-vert{background:var(--vert-f);color:var(--vert)}
.pub-erreur{background:var(--rouge-f);color:var(--rouge);border-radius:8px;padding:8px 12px;font-size:13px;margin:0 0 10px}
.pub-faites{margin-top:24px} .pub-faites summary{cursor:pointer;color:var(--pale);font-size:14px;padding:6px 0}
.pub-ligne{font-size:13px;color:var(--texte2);padding:6px 0;border-bottom:1px solid var(--bord)}
a.btn.petit{text-decoration:none;display:inline-flex;align-items:center}
.droite .theme-btn{margin-left:8px}
.marque .logo-img{background:none;object-fit:contain;border-radius:7px}

/* ---------- supervision : une couleur par type de problème, logo du compte social ---------- */
.logo-ch{position:relative;display:inline-grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--surface2);border:1px solid var(--bord);font-size:11px;font-weight:600;color:var(--texte2);overflow:hidden}
.logo-ch.p{width:24px;height:24px;font-size:10px}
.logo-ch img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--surface)}
.type-inc{display:inline-grid;place-items:center;flex:none;width:24px;height:24px;border-radius:7px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,transparent)}
.type-inc .ic{width:14px;height:14px}
.groupe-inc{border-left:3px solid var(--c)}
.groupe-inc>.gt{color:var(--texte)} .groupe-inc>.gt .gp{display:none}
.inc>summary{border-left:0}
.inc[open]{background:color-mix(in srgb,var(--c) 5%,transparent)}
.ic-carte{border-top:3px solid var(--c)}
.groupe-titre .gp{display:none} .groupe-titre .type-inc{margin-right:2px}
.chip .pt-type{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c);margin-right:6px;vertical-align:middle}
.chip.actif{border-color:var(--c);box-shadow:inset 0 0 0 1px var(--c)}
.sol-envoi{display:grid;gap:10px} .sol-option{border:1px solid var(--bord);border-radius:10px;padding:10px 12px;background:var(--surface)}
.sol-option b{display:block;font-size:13.5px} .sol-option p{margin:4px 0 8px;color:var(--texte2);font-size:13px}
.guide-fond{position:fixed;inset:0;background:#0006;display:grid;place-items:center;z-index:200}
.guide{background:var(--surface);border-radius:16px;width:560px;max-width:94vw;padding:22px;box-shadow:0 30px 80px #0007}
.guide h3{margin:0 0 10px}
.guide-voix{width:1100px;max-width:96vw;max-height:90vh;display:flex;flex-direction:column;padding:0;overflow:hidden}
.gv-tete{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--bord)}
.gv-tete h3{margin:0;display:flex;align-items:center;gap:8px}
.gv-corps{overflow:auto;padding:18px 20px}
.ch-entete .liens-comptes{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--bord)}
.liens-comptes>.muted{font-size:12.5px;margin-right:2px}
.liens-comptes .btn{display:inline-flex;align-items:center;gap:6px}
.lc-groupe{display:inline-flex;gap:4px;padding:3px;border-radius:10px;background:var(--surface2)}
.ic-chrome{width:15px;height:15px;flex:none}
.res-lignes{display:flex;flex-direction:column;gap:6px;margin-bottom:10px} .res-ligne{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px solid var(--bord)} .res-ligne.off .res-nom{color:var(--pale)} .res-nom{display:inline-flex;align-items:center;gap:8px;font-weight:600}
.seg.etat-res button.e-actif{background:var(--vert);color:#fff} .seg.etat-res button.e-pause{background:var(--pale);color:#fff} .guide ol{padding-left:20px;line-height:1.7} .guide code{background:var(--surface2);padding:1px 6px;border-radius:5px}
/* cartes légèrement teintées de la couleur de leur type (clair et sombre) */
.groupe-inc{background:color-mix(in srgb,var(--c) 5%,var(--surface))}
.groupe-inc>.gt{background:color-mix(in srgb,var(--c) 11%,var(--surface));border-bottom-color:color-mix(in srgb,var(--c) 22%,var(--bord))}
.groupe-inc .inc{border-bottom-color:color-mix(in srgb,var(--c) 14%,var(--bord))}
.ic-carte{background:color-mix(in srgb,var(--c) 7%,var(--surface));border-color:color-mix(in srgb,var(--c) 25%,var(--bord))}
[data-theme="sombre"] .ic-carte{background:color-mix(in srgb,var(--c) 12%,var(--surface))}
[data-theme="sombre"] .groupe-inc{background:color-mix(in srgb,var(--c) 9%,var(--surface))}
[data-theme="sombre"] .logo-reseau[fill="#000000"]{fill:var(--texte)}      /* TikTok, Snapchat, X : logos noirs, lisibles en thème sombre */
.groupe-type .groupe-titre{color:var(--texte)} .groupe-titre.cl,.gt.cl{cursor:pointer;user-select:none}
.groupe-inc.plie>.gt{border-bottom:0}
.type-inc{background:color-mix(in srgb,var(--c) 18%,transparent)}
.diag{margin-top:10px;padding:9px 12px;border-radius:9px;background:var(--surface);border:1px dashed var(--bord2);font-size:13px}
.diag h4{margin:0 0 4px;font-size:12px;color:var(--pale);font-weight:500} .diag p{margin:2px 0;color:var(--texte2)}
.btn.discret{background:none;border-color:transparent;color:var(--pale)} .btn.discret:hover{color:var(--texte)}
/* ---------- supervision multi-réseaux ---------- */
.barre-reseaux{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 12px}
.barre-reseaux button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--bord);background:var(--surface);color:var(--texte2);border-radius:20px;padding:6px 12px;font:inherit;font-size:13px;cursor:pointer}
.barre-reseaux button b{color:var(--texte);font-weight:600} .barre-reseaux button.actif{border-color:var(--texte);color:var(--texte);box-shadow:inset 0 0 0 1px var(--texte)}
.barre-reseaux button.vide{opacity:.55}
.logo-pile{position:relative;display:inline-flex;flex:none} .badge-reseau{position:absolute;right:-4px;bottom:-4px;width:15px;height:15px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 1.5px var(--surface)}
.ic-motif{margin:6px 0 2px;font-size:13px} .ic-motif b{font-weight:600}
/* ---------- réserves ---------- */
.res-tete{display:flex;gap:28px;margin:4px 0 14px;color:var(--texte2)} .res-tete b{font-size:20px;color:var(--texte);margin-right:4px}
.res-grille{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.res-carte{--t:var(--pale);border-top:3px solid var(--t);background:color-mix(in srgb,var(--t) 5%,var(--surface))}
.res-carte.rouge{--t:var(--rouge)} .res-carte.ambre{--t:var(--ambre)} .res-carte.bleu{--t:var(--accent)} .res-carte.vert{--t:var(--vert)}
.res-t{display:flex;align-items:center;gap:10px} .res-t>div{flex:1;min-width:0} .res-t small{display:block;color:var(--pale);font-size:12px}
.res-jauge{height:8px;border-radius:8px;background:var(--surface2);margin:12px 0 6px;overflow:hidden} .res-jauge span{display:block;height:100%;background:var(--t);border-radius:8px}
.res-chiffres{font-size:13px;color:var(--texte2)} .res-chiffres b{color:var(--texte)}
.res-conseil{margin-top:6px;font-size:13px;font-weight:500;color:var(--t)}
.res-videos{list-style:none;margin:10px 0 0;padding:0;border-top:1px solid var(--bord)} .res-videos li{display:flex;gap:8px;align-items:baseline;padding:6px 0;font-size:13px;cursor:pointer;border-bottom:1px solid var(--bord)}
.res-videos li span{color:var(--pale);flex:none} .res-videos li small{margin-left:auto;color:var(--pale);white-space:nowrap}
.res-champ{display:block;margin:10px 0;font-size:13px;color:var(--pale)} .res-champ input{display:block;width:120px;margin-top:4px;font:inherit;padding:7px 10px;border:1px solid var(--bord2);border-radius:8px;background:var(--surface);color:var(--texte)}
.res-champ small{display:block;margin-top:3px}

/* page Chaînes sans aucune chaîne : invitation à créer la première */
.vide-chaines{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:48px 24px}
.vide-chaines h3{margin:8px 0 0;font-size:18px} .vide-chaines p{margin:0 0 14px;max-width:420px} .vide-chaines .btn{margin:0!important}

/* aperçu d'un fichier (« Voir le fichier ») */
.apercu-fond{position:fixed;inset:0;z-index:90;background:#0008;display:grid;place-items:center;padding:24px}
.apercu{background:var(--surface);border:1px solid var(--bord2);border-radius:14px;width:min(820px,100%);max-height:86vh;display:flex;flex-direction:column;box-shadow:var(--ombre-l)}
.apercu-tete{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--bord)}
.apercu-corps{padding:18px;overflow:auto}.apercu-corps pre{margin:0;white-space:pre-wrap;font:14.5px/1.6 Inter,system-ui,sans-serif;color:var(--texte)}
.apercu-corps img{max-width:100%;border-radius:10px;display:block;margin:auto}

/* ---------- marque : comptes, filtre par réseau, état de chaque contenu sur chaque réseau ---------- */
.mr-comptes{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-bottom:12px}
.mr-compte{padding:12px 14px} .mr-compte.pause{opacity:.7}
.mr-t{display:flex;align-items:center;gap:8px} .mr-t .mr-etat{margin-left:auto}
.mr-etat{font-size:11px;font-weight:600;padding:1px 8px;border-radius:10px;color:#fff} .mr-etat.actif{background:var(--vert)} .mr-etat.pause{background:var(--pale)}
.mr-c{display:block;margin:4px 0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mr-n{display:flex;gap:12px;font-size:12.5px;color:var(--texte2);flex-wrap:wrap} .mr-n b{color:var(--texte)} .mr-n .ko,.mr-n .ko b{color:var(--rouge)}
.mr-badges{display:flex;gap:5px;flex-wrap:wrap}
.mr-badge{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;padding:2px 8px;border-radius:6px;white-space:nowrap;background:var(--surface2);color:var(--texte2)}
.mr-badge.ok{background:var(--vert-f);color:var(--vert)} .mr-badge.prevu{background:var(--ambre-f);color:var(--ambre)} .mr-badge.ko{background:var(--rouge-f);color:var(--rouge)}

/* ---------- ADN d'une marque ---------- */
.guide.adn{width:680px;max-height:90vh;overflow:auto} .adn-intro{margin:0 0 12px;font-size:13px}
.adn-fichiers{display:flex;flex-direction:column;margin-bottom:14px}
.adn-f{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--bord)} .adn-f span{display:inline-flex;align-items:center;gap:6px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adn-f.fiche span{color:var(--pale)}
.adn-choix{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.adn-c{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:12px;border:1px solid var(--bord2);border-radius:12px;background:var(--surface);color:var(--texte);font:inherit;cursor:pointer}
.adn-c small{color:var(--pale);font-size:12px} .adn-c:hover{border-color:var(--texte2)} .adn-c.actif{border-color:var(--texte);box-shadow:inset 0 0 0 1px var(--texte)}
.adn-ia{margin-bottom:10px} .adn-ia textarea{width:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:8px;border:1px solid var(--bord2);border-radius:8px;background:var(--surface2);color:var(--texte)}
.adn-ex{background:none;border:0;padding:0;color:var(--accent-t, var(--texte2));cursor:pointer;font:inherit;font-size:13px;text-decoration:underline}
.adn-guide{white-space:pre-wrap;font-size:12.5px;background:var(--surface2);padding:12px;border-radius:8px;max-height:280px;overflow:auto}
[data-theme="sombre"] .adn-c .logo-reseau[fill="#000000"]{fill:var(--texte)}
.res-ligne{flex-wrap:wrap} .res-compte{flex-basis:100%;box-sizing:border-box;font:inherit;font-size:13px;padding:6px 10px;border:1px solid var(--bord2);border-radius:8px;background:var(--surface2);color:var(--texte)}
.mr-c a{color:inherit;text-decoration:underline}

/* Signature de marque « Kapp » (un nouveau cap) et bandeau du bénéfice de la Vue d'ensemble */
.kapp{color:var(--accent);font-weight:800}
.marque small .kapp{font-weight:700}
.gain-kapp{display:flex;flex-direction:column;gap:6px;padding:18px 22px;margin-bottom:16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--bord));
  background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 12%,var(--surface)),var(--surface) 70%)}
.gain-signature{font-size:13px;font-weight:600;color:var(--texte2)}
.gain-chiffres{font-size:20px;font-weight:600;letter-spacing:-.2px;line-height:1.35}
.gain-chiffres b{font-size:26px;color:var(--accent);font-variant-numeric:tabular-nums}
.gain-sep{display:inline-block;width:1px;height:20px;background:var(--bord2);margin:0 14px;vertical-align:-3px}
.gain-kapp small{color:var(--texte2);font-size:13.5px}

/* Phrase-bénéfice en haut de chaque écran */
.push-kapp{display:flex;align-items:center;gap:9px;margin:0 0 16px;padding:9px 14px;border-radius:10px;font-size:13.5px;color:var(--texte2);background:color-mix(in srgb,var(--accent) 7%,transparent);border:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}
.push-kapp svg{color:var(--accent);flex:none}

/* Calendrier de production : timeline (pistes, règle jours/heures, zoom) */
.cal-outils .cal-nav{display:flex;gap:4px}
.cal-zoom{display:flex;align-items:center;gap:6px}
.cal-zoom .btn{width:32px;padding:6px 0;justify-content:center;font-size:16px;line-height:1}
.cal-zoom input{width:120px;accent-color:var(--accent)}
.cal-zoom .muted{font-size:12px;min-width:40px;font-variant-numeric:tabular-nums}
.cal2{display:flex;border:1px solid var(--bord);border-radius:var(--r);overflow:hidden;background:var(--surface);position:relative}
.cal-noms2{width:200px;flex:none;background:var(--surface);border-right:1px solid var(--bord);position:relative;z-index:3}
.cnoms-tete{position:absolute;top:0;left:0;right:0;height:54px;display:flex;align-items:flex-end;padding:0 14px 8px;font-size:11px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--pale);border-bottom:1px solid var(--bord2);background:var(--surface2)}
.cnom{position:absolute;left:0;right:0;padding:0 12px;display:flex;align-items:center;gap:9px;font-size:13px;color:var(--texte2);cursor:pointer;border-bottom:1px solid var(--bord);white-space:nowrap;overflow:hidden}
.cnom span{overflow:hidden;text-overflow:ellipsis}
.cnom:hover{color:var(--texte);background:var(--surface2)}
.cnom.montages{cursor:default;font-weight:600;color:var(--texte);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.cal2 .cal-in{position:relative}
.cregle{position:absolute;top:0;left:0;right:0;height:54px;background:var(--surface2);border-bottom:1px solid var(--bord2);z-index:2}
.cj{position:absolute;top:0;height:28px;padding:7px 10px 0;font-size:12px;font-weight:600;color:var(--texte2);white-space:nowrap;overflow:hidden;border-left:1px solid var(--bord2);box-sizing:border-box}
.cj.lundi{border-left:2px solid var(--bord2)}
.cj.auj{color:var(--accent)}
.csem{position:absolute;top:30px;font-size:10.5px;font-weight:700;color:var(--texte2);padding-left:5px;border-left:2px solid var(--accent);height:20px;line-height:20px}
.chl{position:absolute;top:32px;font-size:10.5px;color:var(--pale);transform:translateX(4px)}
.ch{position:absolute;top:54px;bottom:0;border-left:1px dashed color-mix(in srgb,var(--bord) 80%,transparent)}
.cminuit{position:absolute;top:28px;bottom:0;border-left:1px solid var(--bord2)}
.cfond{position:absolute;top:54px;bottom:0}
.cfond.we{background:color-mix(in srgb,var(--texte) 3%,transparent)}
.cfond.auj{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.cpiste{position:absolute;left:0;border-bottom:1px solid var(--bord)}
.cpiste.montages{background:color-mix(in srgb,var(--accent) 4%,transparent)}
.cb{position:absolute;height:24px;border-radius:6px;font-size:11px;font-weight:600;padding:4px 8px;white-space:nowrap;overflow:hidden;z-index:3;box-sizing:border-box;border:1px solid transparent;cursor:default}
.cb.montage{background:color-mix(in srgb,var(--accent) 22%,var(--surface));border-color:color-mix(in srgb,var(--accent) 55%,transparent);color:var(--accent-t)}
.cb.voix{background:color-mix(in srgb,#8b5cf6 20%,var(--surface));border-color:color-mix(in srgb,#8b5cf6 50%,transparent);color:#8b5cf6}
.cb.pub{background:color-mix(in srgb,#22a55a 20%,var(--surface));border-color:color-mix(in srgb,#22a55a 55%,transparent);color:#1e9450}
.cb.point{width:10px;height:10px;padding:0;border-radius:50%;margin-top:7px;transform:translateX(-5px)}
.cb.pub.point{transform:translateX(-5px) rotate(45deg);border-radius:2px}
.cb.passe{opacity:.45}
.cb.maint{box-shadow:0 0 0 2px var(--accent);z-index:4}
.cb.conflit{background:var(--rouge-f);border-color:var(--rouge);color:var(--rouge)}
.cpass{position:absolute;width:8px;height:8px;border-radius:50%;border:2px solid var(--surface);z-index:5;transform:translateX(-50%);background:var(--texte2)}
.cpass.ko{background:var(--rouge)}
.cal2 .now{position:absolute;top:28px;bottom:0;width:2px;background:var(--rouge);z-index:6}
.cal2 .now em{position:absolute;top:0;left:4px;font-style:normal;font-size:10.5px;font-weight:700;background:var(--rouge);color:#fff;padding:0 5px;border-radius:4px}
.cal-leg i.lg{padding:0 !important;display:inline-block;width:14px !important;height:10px !important;border-radius:3px;margin-right:6px;vertical-align:-1px;border:1px solid transparent}
.cal-leg .lg.montage{background:color-mix(in srgb,var(--accent) 22%,var(--surface));border-color:var(--accent)}
.cal-leg .lg.voix{background:color-mix(in srgb,#8b5cf6 20%,var(--surface));border-color:#8b5cf6}
.cal-leg .lg.pub{background:color-mix(in srgb,#22a55a 20%,var(--surface));border-color:#22a55a}
.cal-leg i.lg.pass{width:9px !important;height:9px !important;border-radius:50%;background:var(--texte2)}
.cal-leg .lg.pass.ko{background:var(--rouge)}
.cal-leg .lg.conflit{background:var(--rouge-f);border-color:var(--rouge)}
.cal-vide{display:flex;gap:14px;align-items:center;padding:16px 18px;margin-bottom:12px;border:1px dashed var(--bord2);border-radius:var(--r);color:var(--texte2)}
.cal-vide div{display:flex;flex-direction:column;gap:2px}

/* Signature sous le logo : une seule ligne */
.marque small{white-space:nowrap;font-size:11px;letter-spacing:-.1px}
.marque>div{min-width:0}

/* Onglets de la page d une marque */
.marque-onglets{margin:0 0 16px}

/* Bouton « Lancer ma marque » du bandeau de la Vue d'ensemble */
.gain-kapp{position:relative}
.gain-lancer{position:absolute;top:16px;right:18px}
@media (max-width:900px){.gain-lancer{position:static;align-self:flex-start;order:9}}
