:root{--bg:#0b0d12;--carte:#141821;--carte2:#1b2030;--txt:#e9ecf3;--doux:#8b93a7;--or:#f5b83d;--vert:#22c27a;--rouge:#ff5d6c;--bleu:#4c8dff;--bord:#262c3d}
*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--txt);font-family:Inter,system-ui,sans-serif;font-size:14px}
.hidden{display:none!important}button{font-family:inherit;cursor:pointer}
.logo{font-weight:800;letter-spacing:.18em;font-size:16px;white-space:nowrap}.logo span{color:var(--or)}
.login{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 30%,#1c2233,#0b0d12)}
.login form{background:var(--carte);padding:36px;border-radius:16px;width:min(360px,92vw);border:1px solid var(--bord);text-align:center}
.login p{color:var(--doux);margin:6px 0 22px}.login input{width:100%;padding:12px;border-radius:10px;border:1px solid var(--bord);background:#0f121a;color:var(--txt);font-size:15px}
.login button{width:100%;margin-top:12px;padding:12px;border-radius:10px;border:0;background:var(--or);color:#111;font-weight:700}
.err{color:var(--rouge);margin-top:10px;min-height:18px}

header{display:flex;align-items:center;gap:20px;padding:12px 22px;border-bottom:1px solid var(--bord);position:sticky;top:0;background:rgba(11,13,18,.92);backdrop-filter:blur(8px);z-index:50;flex-wrap:wrap}
nav{display:flex;gap:2px;flex-wrap:wrap}nav button{background:none;border:0;color:var(--doux);padding:8px 11px;border-radius:8px;font-weight:600;font-size:13px}
nav button.on{background:var(--carte2);color:var(--txt)}
.etat-bar{margin-left:auto;display:flex;align-items:center;gap:6px}
.pilule{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:700;border:1px solid var(--bord);white-space:nowrap}
.pilule.marche{color:var(--vert);border-color:rgba(34,194,122,.4);background:rgba(34,194,122,.08)}
.pilule.arret{color:var(--doux)}.pilule.limite{color:var(--or);border-color:rgba(245,184,61,.4);background:rgba(245,184,61,.08)}.pilule.manuel{color:var(--bleu)}
.mini{background:var(--carte2);border:1px solid var(--bord);color:var(--txt);border-radius:8px;padding:6px 10px;font-weight:700;font-size:12px}
.mini.go:hover{border-color:var(--vert);color:var(--vert)}.mini.stop:hover{border-color:var(--rouge);color:var(--rouge)}
.pt{width:8px;height:8px;border-radius:50%;display:inline-block;background:var(--rouge);vertical-align:middle}.pt.on{background:var(--vert);box-shadow:0 0 8px var(--vert)}
main{padding:20px 22px;max-width:1500px;margin:0 auto}
.carte{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:18px;margin-bottom:16px}
.carte h3,h3.section{margin:0 0 12px;font-size:12px;text-transform:uppercase;letter-spacing:.09em;color:var(--doux)}
h3.section{margin:22px 0 12px}
.petit{color:var(--doux);font-size:12px}.lien{background:none;border:0;color:var(--doux);text-decoration:underline;padding:0 2px}.lien.rouge{color:var(--rouge)}

/* ------------------------------------------------ bureau isométrique */
.bureau-grille{display:grid;grid-template-columns:1fr 340px;gap:16px;align-items:start}
.carte-bureau{background:linear-gradient(180deg,#dfe5ee,#cfd7e3);border-radius:18px;overflow:hidden;border:1px solid #2a3142;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.bureau-tete{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 16px;background:rgba(255,255,255,.65);color:#1b2130;flex-wrap:wrap}
.bureau-tete .petit{color:#5b6476}
.legende{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:#3b4456}.legende i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.scene{position:relative;width:100%;aspect-ratio:16/10;min-height:420px;background:radial-gradient(ellipse at 50% 40%,#f4f7fb 0%,#dfe6ef 70%,#cfd8e4 100%)}
.scene canvas{display:block}.calque2d{position:absolute;inset:0}
.astuce{font-size:11px;color:#6b7487;padding:8px 16px;background:rgba(255,255,255,.55)}
.r3d{display:flex;flex-direction:column;align-items:center;gap:4px;pointer-events:none;transform:translateY(-6px)}
.r3d-nom{pointer-events:auto;cursor:pointer;font:700 11px Inter,sans-serif;color:#1b2130;background:#fff;border:2px solid var(--c);padding:2px 8px;border-radius:10px;box-shadow:0 3px 10px rgba(20,25,40,.18)}
.r3d.actif .r3d-nom{background:var(--c);color:#111}
.r3d-bulle{max-width:240px;background:#fff;color:#1b2130;font:500 11.5px/1.35 Inter,sans-serif;padding:7px 10px;border-radius:12px;box-shadow:0 8px 22px rgba(20,25,40,.22);position:relative;text-align:center}
.r3d-bulle:empty{display:none}
.r3d-bulle::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#fff}
#decor{position:absolute;inset:0;width:100%;height:100%}
#decor .joint{stroke:#dfe4ec;stroke-width:1}
#decor .sol-txt{font:700 11px Inter,sans-serif;letter-spacing:.12em}
#decor .mur-titre{font:800 8px Inter,sans-serif;letter-spacing:.12em;fill:#6b7487}
#decor .mur-col{font:600 6px Inter,sans-serif;fill:#6b7487}#decor .mur-n{font:800 8px Inter,sans-serif;fill:#2a3242}
#decor .mur-petit{font:700 7px 'JetBrains Mono',monospace;fill:#8b93a7;letter-spacing:.1em}#decor .mur-gros{font:800 24px Inter,sans-serif;fill:#fff}
#decor .coffre-n{font:800 12px Inter,sans-serif;fill:#fff}#decor .etiquette{font:600 10px Inter,sans-serif;fill:#6b7487}
#decor .ecran{fill:#1d2433;transition:fill .4s}
#decor .ecran.allume{fill:#5fd0ff;animation:ecran 1.6s infinite}
@keyframes ecran{0%,100%{fill:#5fd0ff}50%{fill:#9be6ff}}
#decor .scan{fill:rgba(34,194,122,0);transition:fill .4s}#decor .scan.allume{animation:scan 1.4s infinite}
@keyframes scan{0%,100%{fill:rgba(34,194,122,.08)}50%{fill:rgba(34,194,122,.38)}}
#decor .anneau.allume{stroke:#fff6c8;filter:drop-shadow(0 0 6px #fff3a6)}

.robot{position:absolute;width:4.2cqw;transform:translate(-50%,-92%);transition:left 1.6s ease-in-out,top 1.6s ease-in-out;cursor:pointer}
.robot .corps{width:100%;display:block;overflow:visible;animation:respire 3s ease-in-out infinite}
@keyframes respire{0%,100%{transform:translateY(0)}50%{transform:translateY(-3%)}}
.robot.marche .corps{animation:marche .32s ease-in-out infinite}
@keyframes marche{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-8%) rotate(3deg)}}
.robot.travaille .bras{animation:tape .25s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:top}
.robot.travaille .bras.d{animation-delay:.12s}
@keyframes tape{from{transform:rotate(-14deg)}to{transform:rotate(10deg)}}
.robot.travaille .antenne{animation:clignote 1s infinite}@keyframes clignote{50%{fill:#fff}}
.robot.travaille::after{content:"";position:absolute;left:50%;bottom:2%;width:140%;height:22%;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(ellipse,rgba(95,208,255,.55),transparent 70%);z-index:-1;animation:halo 1.6s infinite}
@keyframes halo{50%{opacity:.4}}
.robot.arret .corps{filter:grayscale(.7)}
.robot .nom{position:absolute;left:50%;top:100%;transform:translateX(-50%);margin-top:2px;font:700 max(9px,1cqw) Inter,sans-serif;color:#1b2130;
  background:#fff;border:2px solid var(--c);padding:1px 6px;border-radius:10px;white-space:nowrap;box-shadow:0 2px 6px rgba(0,0,0,.12)}
.robot .bulle{position:absolute;left:50%;bottom:104%;transform:translateX(-50%);width:max-content;max-width:min(260px,26cqw);background:#fff;color:#1b2130;
  font:500 max(10px,1.05cqw)/1.3 Inter,sans-serif;padding:6px 9px;border-radius:10px;box-shadow:0 6px 18px rgba(20,25,40,.22);pointer-events:none}
.robot .bulle:empty{display:none}
.robot .bulle::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:6px solid transparent;border-top-color:#fff}
.robot:hover .nom{background:var(--c);color:#111}

.panneau{background:var(--carte);border:1px solid var(--bord);border-radius:16px;padding:16px;position:sticky;top:76px;max-height:calc(100vh - 96px);overflow:auto}
.panneau h4{margin:16px 0 8px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--doux)}
.objectif-mini .chiffre{font-size:30px;font-weight:800;margin:2px 0 6px}.objectif-mini small{font-size:13px;color:var(--doux);font-weight:500}
.barre{height:8px;background:#0f121a;border-radius:6px;overflow:hidden}.barre div{height:100%;background:linear-gradient(90deg,var(--or),#ffd98a);width:0;transition:width .6s}
.indice{margin-top:14px;padding:10px;border:1px dashed var(--bord);border-radius:10px}
.fiche{margin-top:14px;border:1px solid var(--bord);border-left:4px solid var(--c);border-radius:12px;padding:12px;background:var(--carte2)}
.fiche-t{display:flex;align-items:center;gap:8px}.fiche-t i{width:12px;height:12px;border-radius:4px;background:var(--c)}.fiche-t .lien{margin-left:auto;text-decoration:none}
.fiche-g{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0}.fiche-g div{background:#0f121a;border-radius:8px;padding:7px}
.fiche-g span{display:block;font-size:10px;color:var(--doux)}.fiche-g b{font-size:13px}
.fiche-tache{font-size:12px;margin-bottom:8px}
.direct{display:flex;flex-direction:column;gap:10px}
.flux{background:#0f121a;border:1px solid var(--bord);border-radius:10px;padding:10px}
.flux-t{font-size:12px;margin-bottom:6px}.flux-t i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}
.flux-l{font:11px/1.45 'JetBrains Mono',monospace;color:#aab3c5;word-break:break-word}.flux-l div:last-child{color:#e9ecf3}
.attente{font-size:12px;color:#c5ccda;padding:5px 0;border-bottom:1px solid var(--bord)}

/* ------------------------------------------------ pilotage */
.pilotage{display:grid;grid-template-columns:1.3fr 1fr;gap:16px}
.lancer{border-color:rgba(34,194,122,.35);background:linear-gradient(160deg,rgba(34,194,122,.10),var(--carte) 55%)}
.arreter{border-color:rgba(255,93,108,.35);background:linear-gradient(160deg,rgba(255,93,108,.10),var(--carte) 55%)}
.gros-titre{font-size:22px;font-weight:800;margin-bottom:6px}
.segment{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}
.segment button{background:#0f121a;border:1px solid var(--bord);color:var(--txt);border-radius:12px;padding:12px;text-align:left}
.segment button b{display:block;font-size:14px}.segment button span{font-size:11px;color:var(--doux)}
.segment button.on{border-color:var(--vert);box-shadow:0 0 0 1px var(--vert) inset;background:rgba(34,194,122,.08)}
.horaires{font-size:13px;color:var(--doux);margin-bottom:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.horaires select{width:auto;padding:6px 8px}
.gros{width:100%;border:0;border-radius:14px;padding:18px;font-size:18px;font-weight:800;letter-spacing:.06em}
.gros.go{background:var(--vert);color:#06210f}.gros.go:hover{filter:brightness(1.1)}
.gros.stop{background:var(--rouge);color:#2a0509}.gros.stop:hover{filter:brightness(1.1)}
.case{display:flex;gap:8px;align-items:center;font-size:13px;color:#c5ccda;margin:12px 0}.case input{width:auto}
.etat-stop{font-size:12px;color:var(--doux);margin-bottom:14px}
.raccourcis{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;margin-bottom:18px}
.raccourci{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:14px;text-align:left;color:var(--txt);display:flex;flex-direction:column;gap:4px;transition:transform .15s,border-color .15s}
.raccourci:hover{transform:translateY(-2px);border-color:var(--or)}.raccourci.rouge:hover{border-color:var(--rouge)}
.raccourci .ic{font-size:22px}.raccourci b{font-size:14px}.raccourci span:last-child{font-size:12px;color:var(--doux)}

/* ------------------------------------------------ palette ⌘K */
.palette{position:fixed;inset:0;background:rgba(5,7,12,.6);backdrop-filter:blur(3px);z-index:100;display:flex;justify-content:center;padding-top:12vh}
.palette-boite{width:min(560px,92vw);background:var(--carte);border:1px solid var(--bord);border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6);align-self:flex-start}
.palette-boite input{border:0;border-bottom:1px solid var(--bord);border-radius:0;padding:16px;font-size:16px;background:transparent}
#paletteListe{max-height:50vh;overflow:auto;padding:6px}
.pal{display:grid;grid-template-columns:28px 1fr;gap:0 8px;padding:9px 10px;border-radius:9px;cursor:pointer}.pal span{grid-row:span 2;font-size:18px}
.pal em{font-style:normal;font-size:12px;color:var(--doux)}.pal.on,.pal:hover{background:var(--carte2)}

/* ------------------------------------------------ chiffres, vidéos, tâches */
.hero{display:grid;grid-template-columns:1.2fr 2fr;gap:16px;margin-bottom:16px}
.objectif{background:linear-gradient(135deg,#1d2335,#141821);border:1px solid var(--bord);border-radius:14px;padding:22px}
.objectif .label{color:var(--doux);font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.big{font-size:52px;font-weight:800;margin:6px 0}.big small{font-size:20px;color:var(--doux);font-weight:500}
.sous{color:var(--doux);margin-top:10px;font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.kpi{background:var(--carte);border:1px solid var(--bord);border-radius:12px;padding:14px}.kpi b{display:block;font-size:24px;margin-top:4px}.kpi span{color:var(--doux);font-size:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.act{background:var(--carte2);color:var(--txt);border:1px solid var(--bord);padding:10px 12px;border-radius:10px;text-align:left;font-weight:600;margin-top:8px}
.act:hover{border-color:var(--or)}.act.primaire{background:var(--or);color:#111;border:0;text-align:center}.act.rouge{width:100%;text-align:center;border-color:rgba(255,93,108,.5);color:var(--rouge)}
textarea,input,select{width:100%;background:#0f121a;color:var(--txt);border:1px solid var(--bord);border-radius:10px;padding:10px;font-family:inherit;font-size:14px}
textarea{min-height:70px;resize:vertical}
.liste{display:flex;flex-direction:column;gap:10px}
.vcard{background:var(--carte2);border:1px solid var(--bord);border-radius:12px;overflow:hidden}
.vcard img{width:100%;display:block;aspect-ratio:16/9;object-fit:cover;background:#000}
.vcard .in{padding:10px 12px}.vcard .t{font-weight:700;margin-bottom:4px}.vcard .m{color:var(--doux);font-size:12px}
.vcard .bt{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.vcard .bt button{font-size:12px;padding:6px 9px;border-radius:8px;border:1px solid var(--bord);background:#0f121a;color:var(--txt)}
.ok{color:var(--vert)}.ko{color:var(--rouge)}.badge{display:inline-block;padding:2px 7px;border-radius:20px;font-size:11px;font-weight:700;background:#0f121a;border:1px solid var(--bord)}
.kanban{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px}
.col h4{margin:0 0 10px;font-size:12px;color:var(--doux);text-transform:uppercase;letter-spacing:.08em}
.col .liste{min-height:60px}
table{width:100%;border-collapse:collapse}td,th{padding:8px;border-bottom:1px solid var(--bord);text-align:left;vertical-align:top;font-size:13px}th{color:var(--doux);font-weight:600}
.rapport{white-space:pre-wrap;color:#cfd5e2;line-height:1.5;max-height:340px;overflow:auto}
.reglages{display:flex;flex-direction:column;gap:12px;max-width:560px}.reglages label{display:flex;flex-direction:column;gap:6px;color:var(--doux)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.7);display:grid;place-items:center;z-index:90}
.boite{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:20px;width:min(760px,94vw);max-height:88vh;overflow:auto}
.boite pre{white-space:pre-wrap;font-size:12px;color:#cfd5e2;background:#0f121a;padding:12px;border-radius:8px}
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);background:#fff;color:#111;font-weight:700;padding:11px 18px;border-radius:12px;z-index:120;box-shadow:0 10px 30px rgba(0,0,0,.4)}

@media (max-width:1100px){.bureau-grille{grid-template-columns:1fr}.panneau{position:static;max-height:none}}
@media (max-width:900px){.hero,.grid2,.pilotage{grid-template-columns:1fr}.kanban{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,1fr)}
  main{padding:14px 16px}header{padding:10px 16px;gap:10px}.big{font-size:40px}.etat-bar{margin-left:0;width:100%}.segment{grid-template-columns:1fr}
  .robot{width:5.5cqw}.robot .nom{font-size:9px}.robot .bulle{max-width:40cqw;font-size:10px}}

.quota .q{margin-bottom:10px}.q-t{display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px;color:#c5ccda}
.q-b{height:7px;background:#0f121a;border-radius:5px;overflow:hidden}.q-b div{height:100%;border-radius:5px;transition:width .6s}

/* rapports */
.rap-grille{display:grid;grid-template-columns:340px 1fr;gap:16px;align-items:start}
.rap-liste{display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 120px);overflow:auto;position:sticky;top:76px}
.rap-item{text-align:left;background:var(--carte);border:1px solid var(--bord);border-radius:12px;padding:10px 12px;color:var(--txt);display:flex;flex-direction:column;gap:4px}
.rap-item b{font-size:13px;line-height:1.35}.rap-item.on{border-color:var(--or);background:var(--carte2)}
.rap-a{font-size:11px;color:var(--doux)}.rap-a i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.rap-lecture{background:var(--carte);border:1px solid var(--bord);border-radius:14px;padding:22px 28px}
.rap-tete h2{margin:6px 0 4px;font-size:20px}
.md{color:#d5dbe7;line-height:1.6;font-size:14px}.md h3,.md h4,.md h5{color:var(--txt);margin:20px 0 8px}.md h3{font-size:18px}.md h4{font-size:15px}.md h5{font-size:14px}
.md p{margin:6px 0}.md ul,.md ol{margin:6px 0;padding-left:22px}.md li{margin:3px 0}.md b{color:#fff}
.md code{font-family:'JetBrains Mono',monospace;font-size:12px;background:#0f121a;padding:1px 5px;border-radius:5px;color:#ffd98a}
.md table{margin:10px 0;border:1px solid var(--bord);border-radius:8px}.md th{background:#0f121a}
#rapportChef.rapport{white-space:normal}
@media (max-width:900px){.rap-grille{grid-template-columns:1fr}.rap-liste{position:static;max-height:260px}}

/* suivi */
.s-tete{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:14px;flex-wrap:wrap}.s-tete h2{margin:0 0 2px;font-size:22px}
.s-filtres{display:flex;gap:8px;align-items:center}.s-filtres select{width:auto}
.seg{display:flex;background:var(--carte);border:1px solid var(--bord);border-radius:10px;padding:3px}
.seg button{background:none;border:0;color:var(--doux);padding:7px 12px;border-radius:7px;font-weight:600}.seg button.on{background:var(--carte2);color:var(--txt)}
.alerte{background:rgba(255,93,108,.1);border:1px solid rgba(255,93,108,.45);color:#ffc4ca;padding:12px 16px;border-radius:12px;margin-bottom:14px}
.skpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:16px}
.skpi{background:var(--carte);border:1px solid var(--bord);border-radius:12px;padding:12px 14px}.skpi span{display:block;font-size:11px;color:var(--doux);text-transform:uppercase;letter-spacing:.05em}
.skpi b{display:block;font-size:24px;margin:4px 0 2px}.skpi em{font-style:normal;font-size:11px;color:var(--doux)}
.sgrille2{display:grid;grid-template-columns:1.4fr 1fr;gap:16px}.sgrille3{display:grid;grid-template-columns:1.2fr 1fr .8fr;gap:16px}
.stable-boite{overflow-x:auto}.stable td{vertical-align:middle}.stable tr[data-video]{cursor:pointer}.stable tr[data-video]:hover td{background:#171c27}
.stable img,.stable .vide{width:72px;height:40px;object-fit:cover;border-radius:6px;background:#0f121a;display:block}
.stable th[data-tri]{cursor:pointer;user-select:none;white-space:nowrap}.stable th.on{color:var(--or)}.nowrap{white-space:nowrap}
.stable a{color:var(--bleu);text-decoration:none;font-size:16px}
.mini-barre{height:4px;background:#0f121a;border-radius:3px;margin-top:4px;width:90px}.mini-barre div{height:100%;background:var(--vert);border-radius:3px}
.pipes{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.pipe{background:var(--carte2);border-radius:10px;padding:10px}
.pipe b{font-size:22px;display:block}.pipe span{font-size:12px;color:var(--doux)}
.sdetail{display:grid;grid-template-columns:200px 1fr;gap:14px;margin-bottom:10px}.sdetail img{width:100%;border-radius:8px}
.sdetail-k{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0;font-weight:600}.sdetail a{color:var(--bleu)}
@media (max-width:1000px){.sgrille2,.sgrille3{grid-template-columns:1fr}.sdetail{grid-template-columns:1fr}}

.pack{margin-top:16px;border-color:rgba(76,141,255,.35)}.pack-tete{display:flex;gap:16px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap}
.pack-bt{width:auto;padding:14px 22px;font-size:15px}.pack-bt:disabled{opacity:.35;cursor:not-allowed}
.pack-liste{display:flex;flex-direction:column;gap:8px;margin-top:12px}
.pack-v{display:grid;grid-template-columns:80px 1fr auto;gap:12px;align-items:center;background:#0f121a;border-radius:10px;padding:8px}
.pack-v img,.pack-v .vide{width:80px;height:45px;object-fit:cover;border-radius:6px;background:#1b2030}.pack-c{text-align:right;font-size:13px}

/* formation */
.fcartes{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-bottom:16px}
.fcarte{text-align:left;background:var(--carte);border:1px solid var(--bord);border-top:3px solid var(--c);border-radius:12px;padding:12px;color:var(--txt);display:flex;flex-direction:column;gap:6px}
.fcarte.on{background:var(--carte2);box-shadow:0 0 0 1px var(--c) inset}.fc-t i{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--c);margin-right:6px}
.fc-k{font-size:12px;color:#c5ccda}.fcarte .badge{align-self:flex-start}
.f-grille{display:grid;grid-template-columns:1fr 360px;gap:16px;align-items:start}
.f-tete{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;flex-wrap:wrap;border-bottom:1px solid var(--bord);padding-bottom:12px;margin-bottom:8px}
.f-tete h2{margin:6px 0 0;font-size:20px}.f-bt{display:flex;gap:8px;align-items:center}.f-bt input{width:280px}.f-bt .act{margin:0;white-space:nowrap}
.f-h{padding:8px 0;border-bottom:1px solid var(--bord);font-size:13px}.f-h b{display:block;margin:4px 0}
@media (max-width:1000px){.fcartes{grid-template-columns:repeat(2,1fr)}.f-grille{grid-template-columns:1fr}.f-bt{flex-wrap:wrap}.f-bt input{width:100%}}

/* bureau v2 : étiquettes et bulles des personnages */
.r3d{display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;transform:translateY(-4px)}
.r3d-nom{pointer-events:auto;cursor:pointer;display:flex;align-items:center;gap:6px;font:700 11px Inter,sans-serif;color:#1b2130;
  background:rgba(255,255,255,.92);backdrop-filter:blur(6px);padding:3px 10px 3px 7px;border-radius:20px;box-shadow:0 4px 14px rgba(20,25,40,.18);border:1px solid rgba(255,255,255,.9)}
.r3d-nom i{width:8px;height:8px;border-radius:50%;background:var(--c);box-shadow:0 0 0 3px color-mix(in srgb,var(--c) 25%,transparent)}
.r3d.actif .r3d-nom i{animation:pulse 1.4s infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--c) 10%,transparent)}}
.r3d .r3d-bulle{display:none}
.r3d.actif .r3d-bulle{display:block;max-width:250px;background:rgba(17,21,31,.86);backdrop-filter:blur(10px);color:#eef1f7;padding:8px 12px;border-radius:14px;
  box-shadow:0 10px 30px rgba(10,14,25,.35);border:1px solid rgba(255,255,255,.12);position:relative;text-align:left}
.r3d-bulle b{display:block;font:700 11px/1.3 Inter,sans-serif;color:#fff;margin-bottom:3px}
.r3d-bulle span{display:block;font:500 11px/1.35 Inter,sans-serif;color:#b8c0d2}
.r3d.actif .r3d-bulle::after{content:"";position:absolute;left:50%;top:100%;transform:translateX(-50%);border:7px solid transparent;border-top-color:rgba(17,21,31,.86)}
