/* Demandes clients (Toolz). Reprend la feuille de style de la maquette validée (habillage de l'espace
   organisateur MYS : barre latérale #1e1e2d, contenu #f5f8fa, Inter) ; les ajouts propres à l'application
   sont en fin de fichier. */
:root{
  --bg:#e8ecf2; --surface:#ffffff; --fg:#151a26; --muted:#556073; --line:#d3d9e3;
  --accent:#4338ca; --accent-ink:#ffffff; --accent-soft:#e7e6fb;
  --pin:#d61f69; --pin-ink:#ffffff;
  --shadow:0 1px 2px rgba(15,23,42,.06),0 14px 36px rgba(15,23,42,.12);
  --f-display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --f-body:'Inter','Helvetica Neue',Arial,sans-serif;
  --f-mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0b0f17; --surface:#131a27; --fg:#e8ecf4; --muted:#a3adc0; --line:#283146;
    --accent:#a5a6ff; --accent-ink:#0b0f17; --accent-soft:#232a4a;
    --pin:#f26ba6; --pin-ink:#1a0610;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 36px rgba(0,0,0,.5);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0b0f17; --surface:#131a27; --fg:#e8ecf4; --muted:#a3adc0; --line:#283146;
  --accent:#a5a6ff; --accent-ink:#0b0f17; --accent-soft:#232a4a;
  --pin:#f26ba6; --pin-ink:#1a0610;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 14px 36px rgba(0,0,0,.5);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--fg);font:15px/1.5 var(--f-body);margin:0;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 40px}
.wrap{max-width:1680px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
button,select,input,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ── Bandeau ── */
.hero{display:flex;flex-wrap:wrap;gap:12px 32px;align-items:flex-end;justify-content:space-between}
.hero-txt{flex:1 1 560px;min-width:0;display:flex;flex-direction:column;gap:6px}
.eyebrow{font:600 12px/1.2 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
h1{font:800 clamp(28px,4vw,44px)/1.05 var(--f-display);letter-spacing:-.01em;margin:0;text-wrap:balance}
.lede{margin:4px 0 0;max-width:72ch;color:var(--muted);text-wrap:pretty}
.facts{display:flex;flex-wrap:wrap;gap:8px}
.fact{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column;min-width:96px}
.fact b{font:800 22px/1.1 var(--f-display);font-variant-numeric:tabular-nums}
.fact span{font-size:12px;color:var(--muted)}
.tabs{display:flex;flex-wrap:wrap;gap:8px}
.tab{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:10px 16px;cursor:pointer;text-align:left;min-height:44px}
.tab b{font-weight:700;font-size:15px}
.tab small{font-size:12px;color:var(--muted)}
.tab[aria-selected="true"]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tab[aria-selected="true"] small{color:var(--accent-ink);opacity:.85}
.bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}
.crumb{font:600 13px var(--f-mono);color:var(--muted)}
.tools{display:flex;gap:8px;flex-wrap:wrap}
.tbtn{border:1px solid var(--line);background:var(--surface);border-radius:999px;padding:7px 14px;cursor:pointer;font-size:13px;font-weight:600;min-height:36px;display:inline-flex;align-items:center;gap:8px}
.tbtn[aria-pressed="true"]{background:var(--accent-soft);border-color:var(--accent)}
.legend{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:8px 22px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px 18px}
.legend p{margin:0;display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.45;text-wrap:pretty}
.note{font-size:12.5px;color:var(--muted);margin:0}
.pin{display:inline-flex;align-items:center;justify-content:center;flex:none;width:20px;height:20px;border-radius:50%;background:#d61f69;color:#fff;font:700 11px/1 var(--f-body);box-shadow:0 0 0 2px #fff;vertical-align:middle}
.legend .pin{background:var(--pin);color:var(--pin-ink);box-shadow:none;margin-top:1px}
.nopins .pin{display:none}
.nopins .legend{display:none}

/* ── Scène ── */
.stage{overflow-x:auto;border-radius:16px;padding-bottom:4px}
.app{--sbw:236px;min-width:1180px;display:grid;grid-template-columns:var(--sbw) minmax(0,1fr);grid-template-rows:48px auto;background:#1e1e2d;border-radius:14px;overflow:hidden;box-shadow:var(--shadow);font:14px/1.4 var(--f-body);color:#5a5a5a;color-scheme:light}
.app.collapsed{--sbw:68px}
.ptop{grid-column:1/-1;display:flex;align-items:center;gap:16px;padding-right:18px;color:#e6e7ee;min-width:0}
.plogo{width:var(--sbw);flex:none;display:flex;align-items:center;padding-left:22px}
.plogo span{font:800 13px/1 var(--f-display);color:#7b8cff;border:2px solid #4c5bd4;border-radius:6px;padding:4px 5px;letter-spacing:.04em}
.psearch{width:300px;height:32px;border:0;border-radius:4px;background:#fff;color:#333;padding:0 10px;font-size:14px}
.ptop-r{margin-left:auto;display:flex;align-items:center;gap:16px;font-size:14.5px;white-space:nowrap}
.ptop-r svg{width:18px;height:18px}
.ptop-sep{width:1px;height:20px;background:#4a4a5e}
.bell{position:relative}
.bell em{position:absolute;top:-9px;left:6px;background:#2f3fb8;color:#fff;font:700 10px/1 var(--f-body);font-style:normal;border-radius:8px;padding:3px 5px}
.brand-dot{width:14px;height:14px;border-radius:50%;background:#e879f9;display:inline-block}
.pside{background:#1e1e2d;padding:14px 12px;display:flex;flex-direction:column;gap:2px;min-width:0}
.pnav{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;color:#e6e7ee;font-size:14.5px;font-weight:500;white-space:nowrap;overflow:hidden}
.pnav svg{width:18px;height:18px;flex:none;opacity:.9}
.pnav.on{background:#2c2c40}
.pnav .chev{margin-left:auto;width:16px;height:16px}
.psep{height:1px;background:#30304a;margin:6px 10px}
.preduce{margin-top:auto;border:0;background:none;color:#e6e7ee;display:flex;align-items:center;gap:12px;padding:12px;cursor:pointer;font-size:14.5px;border-radius:8px}
.app.collapsed .pnav span,.app.collapsed .pnav .chev,.app.collapsed .preduce span{display:none}
.app.collapsed .plogo{padding-left:14px}
.pmain{background:#f5f8fa;min-width:0;position:relative}
.h860{height:860px}

/* éléments communs produit */
.ic{width:16px;height:16px;flex:none}
.av{width:40px;height:40px;border-radius:50%;flex:none;display:inline-flex;align-items:center;justify-content:center;color:#fff;font:700 13px/1 var(--f-body);letter-spacing:.02em}
.av.sm{width:26px;height:26px;font-size:10.5px}
.av.xs{width:22px;height:22px;font-size:9.5px}
.av.lg{width:56px;height:56px;font-size:18px}
.tg{display:inline-flex;align-items:center;gap:4px;font:700 10px/1 var(--f-body);letter-spacing:.04em;color:#fff;border-radius:999px;padding:4px 7px;white-space:nowrap}
.cp{display:inline-flex;align-items:center;gap:4px;font:600 11px/1 var(--f-body);border-radius:6px;padding:4px 7px;white-space:nowrap}
.cp-urg{background:#fde8ea;color:#b4142f}
.cp-open{background:#e8f0fe;color:#1d4ed8}
.cp-wait{background:#fdf0d2;color:#8a4b00}
.cp-done{background:#e1f5ec;color:#04694a}
.cp-g{background:#e4f5e9;color:#146c34}
.cp-a{background:#fdf0d2;color:#8a4b00}
.cp-r{background:#fde8ea;color:#b4142f}
.cp-ann{background:#efe7fd;color:#5b21b6}
.cp-br{background:#eceff4;color:#3f4a5c}
.cp-pr{background:#fdeee4;color:#8f3209}
.cp-typ{background:#f1f2f6;color:#1f2433}
.pbtn{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #dfe3ea;border-radius:8px;padding:8px 14px;font-weight:600;font-size:14px;color:#2b3245;cursor:pointer;white-space:nowrap}
.pbtn.pri{background:#4f46e5;border-color:#4f46e5;color:#fff}
.pbtn.navy{background:#1e2b7a;border-color:#1e2b7a;color:#fff}
.psel{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0h10L5 6z' fill='%23444'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid #d6dae2;border-radius:6px;padding:7px 28px 7px 10px;font-size:14px;color:#2b3245;cursor:pointer;max-width:100%}

/* ── Boîte de réception ── */
.ibx{display:grid;grid-template-columns:352px minmax(0,1fr) 296px;height:100%}
.icol{background:#fff;border-right:1px solid #e6e9ef;display:flex;flex-direction:column;min-height:0;min-width:0}
.ihead{padding:14px 14px 10px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid #eef0f4}
.ititle{display:flex;align-items:center;gap:8px;justify-content:space-between}
.ititle h2{margin:0;font:700 17px/1.2 var(--f-body);color:#1f2433;display:flex;align-items:center;gap:8px}
.cnt{background:#eef0f4;color:#2b3245;border-radius:999px;padding:2px 9px;font:700 12px/1.4 var(--f-body)}
.isearch{border:1px solid #d6dae2;border-radius:6px;padding:8px 10px;font-size:14px;width:100%;background:#fff;color:#2b3245}
.seg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#d6dae2;border:1px solid #d6dae2;border-radius:6px;overflow:hidden;width:100%}
.seg button{border:0;background:#fff;padding:7px 10px;font-size:13px;color:#2b3245;cursor:pointer;white-space:nowrap;text-align:left}
.seg button[aria-pressed="true"]{background:#4338ca;color:#fff}
.irow{display:flex;gap:8px}
.irow .psel{flex:1;min-width:0;font-size:13px}
.ilist{overflow:auto;flex:1;padding:6px;display:flex;flex-direction:column;gap:2px}
.it{display:flex;gap:11px;padding:11px 10px;border:0;background:none;width:100%;text-align:left;border-radius:10px;cursor:pointer;color:inherit}
.it:hover{background:#f5f6fb}
.it.on{background:#eceefb}
.it-main{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.it-r1{display:flex;align-items:center;gap:6px;min-width:0}
.it-name{font-weight:700;color:#1f2433;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:none;max-width:120px}
.it-sch{color:#5b6475;font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.it-r1 .tg{flex:none}
.it-date{margin-left:auto;color:#6b7280;font-size:12px;white-space:nowrap;padding-left:4px}
.it-obj{color:#454b59;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.it-chips{display:flex;gap:5px;overflow:hidden;flex-wrap:nowrap}
.iempty{padding:30px 16px;text-align:center;color:#6b7280;font-size:13.5px}
.thcol{display:flex;flex-direction:column;min-height:0;min-width:0;background:#fff}
.th-head{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid #eef0f4}
.th-who{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.th-who b{color:#1f2433;font-size:16px}
.th-via{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#5b6475;flex-wrap:wrap}
.dem{padding:10px 18px;border-bottom:1px solid #eef0f4;display:flex;flex-direction:column;gap:8px}
.dem-r{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dem-lab{font:700 11px/1 var(--f-body);letter-spacing:.06em;color:#2b3245}
.dem .psel{font-size:13px;flex:1;min-width:200px}
.dem a{color:#3b48c8;font-size:13px;text-decoration:none;white-space:nowrap}
.sgm{display:flex;border:1px solid #c9cde8;border-radius:6px;overflow:hidden;margin-left:auto}
.sgm button{border:0;background:#fff;color:#2b3245;padding:6px 10px;font-size:13px;cursor:pointer;border-right:1px solid #c9cde8;white-space:nowrap}
.sgm button:last-child{border-right:0}
.sgm button[aria-pressed="true"]{background:#4338ca;color:#fff}
.urgb{border:0;border-radius:6px;padding:6px 10px;font-size:13px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;background:#fff;color:#b4142f;border:1px solid #f1b8c2}
.urgb[aria-pressed="true"]{background:#d6203d;color:#fff;border-color:#d6203d}
.suivi{display:flex;align-items:center;gap:6px;font-size:13px;color:#5b6475}
.suivi .psel{min-width:0;flex:none;padding-top:5px;padding-bottom:5px;font-size:13px}
.links{display:flex;gap:8px;flex-wrap:wrap;padding:8px 18px;border-bottom:1px solid #eef0f4;background:#fbfbfe;align-items:center}
.lk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;border:1px solid #e1e4ee;background:#fff;border-radius:8px;padding:5px 9px;color:#2b3245;white-space:nowrap}
.lk b{font-family:var(--f-mono);font-weight:600;font-size:12px}
.lk.warn{border-color:#f3c9a6;background:#fff7f0;color:#8f3209}
.lk.ann{border-color:#d9c8fb;background:#f7f2ff;color:#5b21b6}
.lk.late{border-color:#f5bcc6;background:#fff3f5;color:#b4142f}
.msgs{flex:1;overflow:auto;background:#f6f7fb;padding:16px 18px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:80%;border-radius:12px;padding:9px 13px;display:flex;flex-direction:column;gap:5px;font-size:14px;line-height:1.45;color:#1f2433}
.msg.in{align-self:flex-start;background:#fff;border:1px solid #e3e6ee}
.msg.out{align-self:flex-end;background:#eceefc;border:1px solid #dcdff8}
.msg-h{display:flex;align-items:center;gap:6px;font-size:12px;color:#5b6475;flex-wrap:wrap}
.msg-h b{color:#1f2433}
.team{background:#b45309;color:#fff;font:700 10.5px/1 var(--f-body);border-radius:5px;padding:3px 6px}
.sys{align-self:center;display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:#4b5465;background:#eaedf3;border-radius:999px;padding:5px 12px;max-width:92%;text-align:center}
.sys.warn{background:#fdeee4;color:#8f3209}
.sys.ok{background:#e1f5ec;color:#04694a}
.inote{align-self:stretch;border:1px dashed #e0c36a;background:#fffbea;border-radius:10px;padding:8px 12px;font-size:13px;color:#5c4a0b;display:flex;gap:8px}
.cmp{border-top:1px solid #eef0f4;padding:10px 18px 8px;display:flex;flex-direction:column;gap:6px;background:#fff}
.cmp-r{display:flex;gap:8px;align-items:flex-end}
.cmp textarea{flex:1;min-width:0;border:1px solid #d6dae2;border-radius:8px;padding:9px 11px;font-size:14px;resize:none;height:62px;color:#1f2433;background:#fff}
.cmp .psel{font-size:13px;height:38px}
.ibtn{width:40px;height:40px;border-radius:8px;border:1px solid #d6dae2;background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#2b3245;flex:none}
.ibtn.send{background:#4338ca;border-color:#4338ca;color:#fff}
.aib{display:inline-flex;align-items:center;gap:6px;border:1px solid #c9cde8;background:#f4f4ff;color:#3730a3;border-radius:8px;padding:0 12px;height:40px;cursor:pointer;font-size:13px;font-weight:600;white-space:nowrap}
.cmp small{font-size:11.5px;color:#6b7280}
.epcol{background:#fff;border-left:1px solid #e6e9ef;overflow:auto;padding:18px 16px;display:flex;flex-direction:column;gap:16px;min-width:0}
.ep-h{display:flex;gap:12px;align-items:center}
.ep-h b{font-size:18px;color:#1f2433;display:block}
.ep-h small{font-size:12.5px;color:#5b6475;display:block}
.ep-act{display:flex;justify-content:space-between;gap:4px;padding-bottom:14px;border-bottom:1px solid #eef0f4}
.ep-act button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;font-size:12px;color:#5b6475;cursor:pointer;padding:0}
.ep-act span{width:40px;height:40px;border-radius:50%;background:#f1f3f8;display:inline-flex;align-items:center;justify-content:center;color:#2b3245}
.ep-sec{display:flex;flex-direction:column;gap:8px}
.ep-sec h4{margin:0;font:700 12px/1 var(--f-body);letter-spacing:.06em;color:#2b3245;display:flex;align-items:center;gap:6px}
.ep-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.ep-stat{background:#f6f7fb;border-radius:8px;padding:8px;display:flex;flex-direction:column;gap:2px}
.ep-stat b{font:800 20px/1 var(--f-display);color:#1f2433;font-variant-numeric:tabular-nums}
.ep-stat span{font-size:11px;color:#5b6475;line-height:1.2}
.ep-ct{display:flex;align-items:center;gap:8px;font-size:13px;color:#1f2433}
.ep-ct small{color:#5b6475}
.ton{margin-left:auto;font:700 10.5px/1 var(--f-body);border-radius:5px;padding:3px 6px;background:#eef0f4;color:#2b3245}
.ep-mini{display:flex;gap:8px;align-items:flex-start;border:0;background:none;text-align:left;padding:6px 4px;border-radius:6px;cursor:pointer;font-size:12.5px;color:#2b3245;width:100%}
.ep-mini:hover{background:#f5f6fb}
.dot{width:8px;height:8px;border-radius:50%;flex:none;margin-top:5px}
.ep-point{background:#f4f4ff;border:1px solid #dcdff8;border-radius:8px;padding:8px 10px;font-size:13px;color:#2b3245}

/* ── Tableau de bord ── */
.dsh{padding:22px 24px 28px;display:flex;flex-direction:column;gap:16px}
.dsh-h{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.dsh-h h2{margin:0;font:700 21px/1.2 var(--f-body);color:#253585;display:flex;align-items:center;gap:10px}
.dsh-h .acts{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}
.peri{background:#fff;border:1px solid #e6e9ef;border-radius:10px;padding:10px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.peri b{color:#1f2433;display:inline-flex;gap:6px;align-items:center}
.peri .psel{font-size:13.5px}
.addf{border:1px dashed #cfd4de;border-radius:6px;padding:6px 10px;color:#6b7280;font-size:13.5px;background:#fff}
.grid12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.s2{grid-column:span 2}.s5{grid-column:span 5}.s7{grid-column:span 7}.s6{grid-column:span 6}
.wc{background:#fff;border:1px solid #e6e9ef;border-radius:12px;display:flex;flex-direction:column;min-width:0}
.wc-h{display:flex;align-items:center;gap:9px;padding:13px 16px;border-bottom:1px solid #eef0f4;font-weight:700;color:#1f2433;font-size:14px;min-width:0}
.wc-h span.t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.wc-h .dt{width:8px;height:8px;border-radius:50%;flex:none}
.wc-h .r{margin-left:auto;font-weight:500;font-size:12.5px;color:#5b6475;white-space:nowrap}
.wc-b{padding:14px 16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.k-date{font-size:12px;color:#7a8291}
.k-big{font:700 34px/1.05 var(--f-body);color:#1f2433;font-variant-numeric:tabular-nums}
.k-pill{align-self:flex-start;font-weight:700;font-size:12.5px;border-radius:999px;padding:3px 10px}
.k-pill.g{background:#d9f7e7;color:#0b6b3a}.k-pill.r{background:#fde2e6;color:#b4142f}.k-pill.v{background:#efe7fd;color:#5b21b6}.k-pill.n{background:#eef0f4;color:#2b3245}.k-pill.o{background:#fdeee4;color:#8f3209}
.k-vs{font-size:12px;color:#7a8291}
.lgd{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:#454b59;align-items:center}
.lgd i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
svg text{font-family:var(--f-body)}
.hb{display:flex;flex-direction:column;gap:7px}
.hb-r{display:grid;grid-template-columns:96px minmax(0,1fr) 28px;gap:10px;align-items:center;font-size:13px;color:#2b3245}
.hb-r .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hb-track{display:flex;gap:2px;height:16px}
.hb-track span{height:100%;border-radius:3px;min-width:3px}
.hb-r b{font-variant-numeric:tabular-nums;text-align:right;color:#1f2433}
.tb{width:100%;border-collapse:collapse;font-size:13px}
.tb th{text-align:left;font:700 11px/1.2 var(--f-body);letter-spacing:.05em;text-transform:uppercase;color:#6b7280;padding:6px 8px;border-bottom:1px solid #e6e9ef;white-space:nowrap}
.tb td{padding:8px;border-bottom:1px solid #f0f2f5;color:#2b3245;vertical-align:middle}
.tb td.num{font-variant-numeric:tabular-nums;white-space:nowrap}
.tb tr:last-child td{border-bottom:0}
.tb .ob{max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#1f2433;font-weight:500}
.tb button.lnk{border:0;background:none;padding:0;color:#1f2433;font-weight:500;cursor:pointer;text-align:left;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.tb button.lnk:hover{color:#3b48c8;text-decoration:underline}
.sch{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-weight:600;color:#1f2433}
.sch i{width:8px;height:8px;border-radius:2px;display:inline-block}
.wfoot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-top:6px}
.okmsg{font-size:13px;color:#04694a;font-weight:600}

/* ── QG ── */
.qgp{position:absolute;inset:18px 22px;background:#fff;border:1px solid #e6e9ef;border-radius:12px;display:grid;grid-template-columns:230px minmax(0,1fr);overflow:hidden}
.qtree{border-right:1px solid #eef0f4;background:#fff;display:flex;flex-direction:column;min-height:0}
.qtree-h{display:flex;gap:10px;align-items:center;padding:16px;border-bottom:1px solid #eef0f4}
.qtree-h .lg{width:30px;height:30px;border-radius:8px;background:#1e1e2d;color:#fff;display:inline-flex;align-items:center;justify-content:center}
.qtree-h b{font-size:13.5px;color:#1f2433;display:block}
.qtree-h small{font-size:11.5px;color:#6b7280}
.qtree-b{overflow:auto;padding:10px 8px;display:flex;flex-direction:column;gap:1px;font-size:13.5px}
.qn{display:flex;align-items:center;gap:9px;padding:7px 10px;border-radius:8px;color:#2b3245;white-space:nowrap;overflow:hidden}
.qn.on{background:#e5f6f3;color:#0b7b6e;font-weight:600}
.qn .c{margin-left:auto;background:#f1f3f6;color:#5b6475;border-radius:999px;font-size:11px;padding:1px 7px;font-weight:600}
.qn.sub{padding-left:28px}
.qn.grp{font-weight:700;color:#1f2433}
.qcap{font:700 11px/1 var(--f-body);letter-spacing:.06em;color:#6b7280;padding:14px 10px 6px;display:flex;justify-content:space-between}
.qd{width:8px;height:8px;border-radius:2px;flex:none}
.qmain{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f7f8fa}
.qmain-h{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#fff;border-bottom:1px solid #eef0f4;flex-wrap:wrap}
.qmain-h .bc{color:#7a8291;font-size:15px}
.qmain-h b{color:#1f2433;font-size:16px}
.qchip{font:600 11px/1 var(--f-body);border-radius:999px;padding:4px 8px;background:#e1f5ec;color:#04694a}
.qviews{margin-left:auto;display:flex;gap:6px;align-items:center}
.qv{width:34px;height:34px;border-radius:50%;border:1px solid #e1e4ea;background:#fff;display:inline-flex;align-items:center;justify-content:center;color:#2b3245}
.qv.on{background:#1e2b7a;border-color:#1e2b7a;color:#fff}
.qfil{border:1px solid #e1e4ea;border-radius:999px;padding:7px 12px;background:#fff;display:inline-flex;gap:6px;align-items:center;font-size:13px;color:#2b3245}
.board{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:12px;padding:14px 16px;overflow:auto;flex:1;min-height:0}
.bcol{background:#eef1f5;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto}
.bcol-h{display:flex;align-items:center;gap:8px;font-weight:700;color:#1f2433;font-size:13.5px;padding:2px 2px 4px}
.ring{width:12px;height:12px;border-radius:50%;border:2.5px solid;flex:none}
.bcol-h .c{color:#6b7280;font-weight:500}
.card{background:#fff;border:1px solid #e3e6ec;border-radius:10px;padding:10px 11px;display:flex;flex-direction:column;gap:7px;cursor:pointer;text-align:left;width:100%;color:inherit}
.card:hover{border-color:#b9bfe8}
.card b{font-size:13.5px;color:#1f2433;font-weight:600;line-height:1.35}
.card-r{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.lab{display:inline-flex;align-items:center;gap:5px;font:600 11px/1 var(--f-body);border-radius:999px;padding:4px 8px}
.ref{font:600 11px/1 var(--f-mono);color:#6b7280}
.orig{display:flex;align-items:center;gap:6px;font-size:11.5px;color:#5b6475}
.card-f{display:flex;align-items:center;gap:6px;justify-content:space-between}
.more{font-size:12px;color:#5b6475;text-align:center;padding:4px}

/* ── Mode TV (rejoue dashboard-tv.css, thème sombre par défaut) ── */
.tvwrap{position:relative;width:100%;max-width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:14px;box-shadow:var(--shadow);background:#070b14}
.tvwrap:fullscreen{border-radius:0;aspect-ratio:auto;width:100vw;height:100vh}
.tv{position:absolute;top:0;left:0;width:1920px;height:1080px;transform-origin:0 0;background:#070b14;color:#eef2f9;font-family:'IBM Plex Sans',var(--f-body);overflow:hidden;color-scheme:dark}
.tv-amb{position:absolute;inset:0;background:radial-gradient(900px 500px at 85% -10%,rgba(99,102,241,.16),transparent 70%),radial-gradient(700px 420px at 0% 110%,rgba(53,201,142,.07),transparent 70%);pointer-events:none}
.tv-top{position:relative;height:56px;display:flex;align-items:center;gap:22px;padding:0 22px;border-bottom:1px solid rgba(255,255,255,.07)}
.tv-live{display:inline-flex;align-items:center;gap:8px;font:600 13px/1 var(--f-mono);letter-spacing:.14em;color:#c7cde0}
.tv-live i{width:9px;height:9px;border-radius:50%;background:#f56d7e;box-shadow:0 0 0 0 rgba(245,109,126,.6);animation:live 1.6s infinite}
@keyframes live{0%{box-shadow:0 0 0 0 rgba(245,109,126,.6)}70%{box-shadow:0 0 0 9px rgba(245,109,126,0)}100%{box-shadow:0 0 0 0 rgba(245,109,126,0)}}
.tv-title{font:700 22px/1 var(--f-display);color:#fff}
.tv-scene{font:600 14px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:#a5b4fc}
.tv-dots{margin-left:auto;display:flex;gap:8px}
.tv-dots button{width:12px;height:12px;border-radius:50%;border:0;background:#2a3346;cursor:pointer;padding:0}
.tv-dots button[aria-pressed="true"]{background:#6366f1}
.tv-clock{display:flex;align-items:baseline;gap:12px}
.tv-clock small{font:600 13px/1 var(--f-mono);letter-spacing:.12em;color:#8a96ad}
.tv-clock span{font:600 26px/1 var(--f-mono);color:#fff;font-variant-numeric:tabular-nums}
.tv-fil{position:absolute;left:0;bottom:-1px;height:2px;background:#6366f1;width:0}
.tv-grid{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:200px minmax(0,1fr) minmax(0,1fr);gap:14px;padding:18px;height:1024px}
.tvc{background:#0e1522;border:1px solid rgba(255,255,255,.07);border-radius:18px;padding:20px 22px;display:flex;flex-direction:column;gap:12px;min-height:0;overflow:hidden}
.tvc-h{display:flex;align-items:center;gap:10px;font:600 15px/1 var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:#aeb8cc}
.tvc-h i{width:9px;height:9px;border-radius:2px;background:#6366f1;flex:none}
.tvc-h .r{margin-left:auto;letter-spacing:.06em;color:#8a96ad}
.tv-big{font:800 108px/0.95 var(--f-display);color:#fff;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.tv-big small{font-size:44px;margin-left:6px;color:#c7cde0}
.tv-sub{font:600 17px/1.3 var(--f-mono);color:#8a96ad}
.tv-sub b{color:#f56d7e;font-weight:600}
.tv-sub .up{color:#35c98e}
.tv-old{display:flex;flex-direction:column;gap:6px}
.tv-old-r{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:18px;align-items:center;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.tv-old-r:last-child{border-bottom:0}
.tv-age{font:800 54px/1 var(--f-display);color:#f56d7e;font-variant-numeric:tabular-nums;white-space:nowrap}
.tv-age.a{color:#fbbf5a}
.tv-old-m{display:flex;flex-direction:column;gap:6px;min-width:0}
.tv-old-m b{font:600 25px/1.2 'IBM Plex Sans',var(--f-body);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-meta{display:flex;gap:10px;align-items:center;font-size:17px;color:#aeb8cc;white-space:nowrap}
.tv-tag{font:700 12px/1 var(--f-mono);letter-spacing:.08em;border-radius:6px;padding:5px 8px}
.tv-av{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font:700 16px/1 var(--f-body);color:#fff}
.tv-feed{display:flex;flex-direction:column}
.tv-feed-r{display:grid;grid-template-columns:96px minmax(0,1fr);gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.tv-feed-r:last-child{border-bottom:0}
.tv-feed-r time{font:600 18px/1.2 var(--f-mono);color:#8a96ad}
.tv-feed-r b{display:block;font:600 19px/1.3 'IBM Plex Sans',var(--f-body);color:#eef2f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-feed-r div{min-width:0;display:flex;flex-direction:column;gap:6px}
.tv-hb{display:flex;flex-direction:column;gap:13px}
.tv-hb-r{display:grid;grid-template-columns:128px minmax(0,1fr) 40px;gap:12px;align-items:center;font-size:18px;color:#d5dbe8}
.tv-hb-r .nm{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-hb-r b{text-align:right;font:700 20px/1 var(--f-mono);color:#fff}
.tv-hb-t{display:flex;gap:3px;height:22px}
.tv-hb-t span{border-radius:4px;min-width:4px}
.tv-lgd{display:flex;gap:18px;font-size:15px;color:#aeb8cc;flex-wrap:wrap}
.tv-lgd i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:7px;vertical-align:-1px}
.tv-eng{display:flex;flex-direction:column}
.tv-eng-r{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:16px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.tv-eng-r:last-child{border-bottom:0}
.tv-eng-r time{font:700 21px/1 var(--f-mono);color:#fff}
.tv-eng-r b{font:600 19px/1.2 'IBM Plex Sans',var(--f-body);color:#eef2f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.tv-eng-r small{font-size:14px;line-height:1.2;color:#8a96ad}
.tv-st{font:700 13px/1 var(--f-mono);letter-spacing:.06em;border-radius:6px;padding:6px 9px;text-transform:uppercase}
.tv-ann{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 22px}
.tv-ann-r{display:flex;gap:12px;align-items:center;min-width:0;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.tv-ann-r b{font:600 18px/1.25 'IBM Plex Sans',var(--f-body);color:#eef2f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-ann-r small{font:600 14px/1 var(--f-mono);color:#c4b5fd;white-space:nowrap}
.tv .pin{box-shadow:0 0 0 2px #070b14;width:26px;height:26px;font-size:14px}
/* ── Ajouts v2 : assistant IA, vues kanban et clients, nouvelle demande, réglages ── */
.ititle .cnt{margin-right:auto}
.ititle h2{white-space:nowrap}
.irow .aip{flex:1;min-width:0}
.nbtn{padding:0 8px}
.vsw{display:inline-flex;border:1px solid #d6dae2;border-radius:8px;overflow:hidden;flex:none}
.vsw button{border:0;background:#fff;width:32px;height:30px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:#2b3245}
.vsw button+button{border-left:1px solid #e6e9ef}
.vsw button[aria-pressed="true"]{background:#1e2b7a;color:#fff}
.nbtn{border:0;background:#4f46e5;color:#fff;border-radius:8px;height:30px;padding:0 10px;display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}
.aip{display:flex;align-items:center;gap:7px;font-size:12px;color:#454b59;background:#f4f4ff;border:1px solid #e1e3fb;border-radius:8px;padding:6px 9px}
.aip i{width:8px;height:8px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.15);flex:none}
.aip b{color:#3730a3}
.iap{border-top:1px solid #eef0f4;background:#fbfaff;padding:10px 18px;display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto}
.iap-h{display:flex;align-items:center;gap:8px;font-size:12.5px;color:#5b21b6;font-weight:700}
.iap-h small{font-weight:500;color:#6b7280}
.iap-h button{margin-left:auto}
.iap-g{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}
.iap-g div{background:#fff;border:1px solid #ece7fb;border-radius:8px;padding:7px 10px;font-size:12.5px;color:#2b3245;line-height:1.4}
.iap-g b{display:block;font:700 10.5px/1 var(--f-body);letter-spacing:.06em;color:#6b7280;margin-bottom:4px}
.iap textarea{width:100%;border:1px solid #e2dcfa;border-radius:8px;padding:8px 10px;font-size:13.5px;line-height:1.45;min-height:70px;resize:vertical;background:#fff;color:#1f2433}
.iap-b{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.sbtn{display:inline-flex;align-items:center;gap:6px;border:1px solid #d6dae2;background:#fff;border-radius:7px;padding:5px 10px;font-size:12.5px;font-weight:600;color:#2b3245;cursor:pointer;white-space:nowrap}
.sbtn.pri{background:#4338ca;border-color:#4338ca;color:#fff}
.sbtn.ok{border-color:#9fd9c0;color:#04694a}
.sbtn.ko{border-color:#f1b8c2;color:#b4142f}
.ep-ia{border:1px solid #e6e1fb;background:#fbfaff;border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px}
.ep-ia h4{color:#5b21b6}
.act{background:#fff;border:1px solid #e6e9ef;border-radius:8px;padding:8px 9px;display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:#1f2433}
.act small{color:#6b7280}
.act .r{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.qq{background:#fffbea;border:1px solid #f3df9a;border-radius:8px;padding:8px 9px;font-size:12.5px;color:#5c4a0b;display:flex;flex-direction:column;gap:6px}
.ep-in{width:100%;border:1px solid #d6dae2;border-radius:7px;padding:6px 8px;font-size:12.5px;background:#fff;color:#1f2433}
textarea.ep-in{min-height:52px;resize:vertical}
.qgph{display:flex;gap:4px;flex-wrap:wrap}
.qgph button{border:1px solid #d6dae2;background:#fff;border-radius:999px;padding:4px 9px;font-size:12px;cursor:pointer;color:#2b3245}
.qgph button[aria-pressed="true"]{background:#0b7f73;border-color:#0b7f73;color:#fff}
.vfull{position:absolute;inset:0;display:flex;flex-direction:column;background:#f5f8fa}
.vhead{display:flex;align-items:center;gap:12px;padding:14px 22px;background:#fff;border-bottom:1px solid #e6e9ef;flex-wrap:wrap}
.vhead h2{margin:0;font:700 17px/1.2 var(--f-body);color:#1f2433;display:flex;align-items:center;gap:8px}
.vhead .aip{margin-left:auto}
.kb{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:12px;padding:16px 22px;overflow:auto;flex:1;min-height:0}
.kb .bcol.over{outline:2px dashed #4338ca;outline-offset:-3px}
.kb .card{cursor:grab}
.clg{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;padding:16px 22px;overflow:auto;flex:1;min-height:0;align-content:start}
.ccard{background:#fff;border:1px solid #e6e9ef;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px;min-width:0}
.ccard.al{border-color:#f5bcc6;box-shadow:inset 3px 0 0 #d6203d}
.ccard-h{display:flex;align-items:center;gap:10px}
.ccard-h b{font-size:15.5px;color:#1f2433;display:block}
.ccard-h small{font-size:12px;color:#6b7280}
.ch4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
.ch4 div{background:#f6f7fb;border-radius:8px;padding:7px 8px;display:flex;flex-direction:column;gap:2px}
.ch4 b{font:800 19px/1 var(--f-display);color:#1f2433;font-variant-numeric:tabular-nums}
.ch4 span{font-size:10.5px;color:#5b6475;line-height:1.2}
.ch4 .hot b{color:#b4142f}
.mov{position:absolute;inset:0;background:rgba(15,23,42,.42);display:flex;align-items:flex-start;justify-content:center;padding:40px 20px;z-index:5;overflow:auto}
.nd{background:#fff;border-radius:14px;width:min(720px,100%);box-shadow:0 24px 60px rgba(15,23,42,.3);display:flex;flex-direction:column}
.nd-h{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #eef0f4}
.nd-h b{font-size:16px;color:#1f2433}
.nd-x{border:0;background:none;font-size:22px;line-height:1;color:#6b7280;cursor:pointer}
.nd-b{padding:14px 18px;display:flex;flex-direction:column;gap:12px}
.nd-paste{background:#f6f6ff;border:1px dashed #c7caf5;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:7px}
.nd-paste label{font-size:12.5px;font-weight:700;color:#3730a3}
.nd textarea,.nd input,.nd select{width:100%;border:1px solid #d6dae2;border-radius:7px;padding:7px 9px;font-size:13.5px;background:#fff;color:#1f2433}
.nd textarea{resize:vertical}
.nd-g{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.nd-g label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#454b59;min-width:0}
.nd-g .f{grid-column:1/-1}
.nd-f{display:flex;align-items:center;gap:8px;justify-content:flex-end;padding:12px 18px;border-top:1px solid #eef0f4}
.nd-f small{margin-right:auto;color:#6b7280;font-size:12px}
.rgp{padding:22px 24px 28px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.rgp .wc-b p{margin:0;font-size:13px;color:#454b59;line-height:1.5}
.tgl{width:34px;height:20px;border-radius:999px;background:#0bb4a4;position:relative;display:inline-block;flex:none}
.tgl::after{content:"";position:absolute;top:2px;left:16px;width:16px;height:16px;border-radius:50%;background:#fff}
.tgl.off{background:#cfd4de}.tgl.off::after{left:2px}
.mono{font-family:var(--f-mono);font-size:12px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13px;color:#2b3245}
.kv dt{color:#6b7280}.kv dd{margin:0;text-align:right;font-weight:600}
.code{background:#0f172a;color:#e2e8f0;border-radius:8px;padding:10px 12px;font:500 12px/1.5 var(--f-mono);white-space:pre;overflow:auto}
.tv-sante{width:100%;border-collapse:collapse;font-size:23px}
.tv-sante th{text-align:left;font:600 13px/1 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#8a96ad;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.1)}
.tv-sante td{padding:17px 12px;border-bottom:1px solid rgba(255,255,255,.06);color:#eef2f9;font-variant-numeric:tabular-nums}
.tv-sante td.n{text-align:right;font:700 25px/1 var(--f-mono)}
.tv-sante td.hot{color:#f56d7e}
.tv-csm{display:flex;flex-direction:column;gap:30px;padding-top:8px}
.tv-csm-r{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:16px;align-items:center}
.tv-csm-r b{font:600 22px/1.2 'IBM Plex Sans',var(--f-body);color:#fff;display:block}
.tv-csm-r small{font:600 15px/1.2 var(--f-mono);color:#8a96ad}
.tv-csm-r em{font:800 44px/1 var(--f-display);font-style:normal;color:#fff}
.s-hide{display:none!important}

/* ── Application : plein écran, navigation réelle ── */
html,body{height:100%}
body.appli{padding:0;margin:0;background:#1e1e2d;overflow:hidden}
.app{min-width:0;height:100vh;height:100dvh;border-radius:0;box-shadow:none;grid-template-rows:48px minmax(0,1fr)}
.pmain{min-height:0;overflow:auto}
.pmain.plein{overflow:hidden}
.plogo{gap:10px}
.plogo b{font:700 14.5px/1 var(--f-body);color:#fff;white-space:nowrap}
.app.collapsed .plogo b{display:none}

.pnav{cursor:pointer;text-decoration:none;border:0;background:none;width:100%;text-align:left;font-family:inherit}
.pnav:hover{background:#26263a}
.pnav .nb{margin-left:auto;background:#e05260;color:#fff;border-radius:999px;font:700 11px/1 var(--f-body);padding:3px 7px}
.pnav .nb.v{background:#7c3aed}
.app.collapsed .pnav .nb{display:none}
.ptop-r a,.ptop-r button{color:#e6e7ee;text-decoration:none;display:inline-flex;gap:8px;align-items:center;border:0;background:none;font:inherit;cursor:pointer;padding:0}
.ptop-r a:hover,.ptop-r button:hover{color:#fff}
.moi{position:relative}
.moi-m{position:absolute;right:0;top:34px;background:#fff;border-radius:10px;box-shadow:0 14px 40px rgba(15,23,42,.3);padding:6px;display:flex;flex-direction:column;min-width:220px;z-index:20}
.moi-m button,.moi-m a{color:#1f2433!important;padding:9px 12px!important;border-radius:7px;font-size:14px;text-align:left;justify-content:flex-start}
.moi-m button:hover,.moi-m a:hover{background:#f1f3f8}
.moi-m small{padding:6px 12px 8px;color:#6b7280;font-size:12px;border-bottom:1px solid #eef0f4;margin-bottom:4px}
/* Écran TV : la télé des demandes et celles des marques (menu du haut, sous-menu latéral, réglages) */
.tvm{position:relative}
.pnav .chev.bas{transform:rotate(90deg)}
.pnav.sous{padding:7px 12px 7px 42px;font-size:13.5px;color:#c9cbd8}
.pnav.sous svg{width:16px;height:16px}
.app.collapsed .pnav.sous{padding-left:14px}
.rgp .wc-b .tvm-t{flex-basis:100%;border-top:1px solid #eef0f4;padding-top:12px}
.tvm-l{flex-basis:100%;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.tvm-l b{min-width:120px;font-size:14px}
.tvm-l .copier{flex:1;min-width:260px}
.aip{white-space:nowrap;overflow:hidden}
.aip span{overflow:hidden;text-overflow:ellipsis}
.aip.vieux i{background:#f0a020;box-shadow:0 0 0 3px rgba(240,160,32,.18)}
.aip.jamais i{background:#9aa2ad;box-shadow:none}
.it .cp-ia{background:#efe7fd;color:#5b21b6}
.it-r2{display:flex;align-items:center;gap:6px;min-width:0}
.msg .txt{white-space:pre-wrap;overflow-wrap:anywhere}
.msg a.src{font-size:11.5px;color:#3b48c8;text-decoration:none}
.inote span{white-space:pre-wrap}
.lk{cursor:default}
button.lk{cursor:pointer}
.lk input{border:1px solid #d6dae2;border-radius:6px;padding:3px 6px;font-size:12.5px;width:140px}
.lk input[type=date]{width:auto}
.lk .x{border:0;background:none;color:#6b7280;cursor:pointer;padding:0 0 0 4px;font-size:14px;line-height:1}
.cmp-r .psel{width:150px;flex:none}
.cmp textarea{height:70px}
.cmp.note textarea{background:#fffbea;border-color:#e0c36a}
.thcol{position:relative}
.vide{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:#6b7280;font-size:14px;text-align:center;padding:30px;background:#f6f7fb}
.vide b{font:700 18px/1.2 var(--f-body);color:#1f2433}
.ep-act a{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;color:#5b6475;text-decoration:none}
.ep-act a span{width:40px;height:40px;border-radius:50%;background:#f1f3f8;display:inline-flex;align-items:center;justify-content:center;color:#2b3245}
.ep-act a[aria-disabled=true]{opacity:.4;pointer-events:none}
.ep-ia small.etat{font-size:12px;color:#5b21b6}
.ep-ia .attente{display:flex;gap:8px;align-items:center;font-size:12.5px;color:#5b21b6;background:#f4f0ff;border-radius:8px;padding:7px 9px}
.ep-ia .attente i{width:8px;height:8px;border-radius:50%;background:#7c3aed;animation:pulse 1.4s infinite;flex:none}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#1f2433;color:#fff;border-radius:10px;padding:10px 16px;font-size:14px;box-shadow:0 12px 30px rgba(15,23,42,.35);z-index:50;max-width:min(560px,92vw);display:flex;gap:10px;align-items:center}
.toast.ko{background:#b4142f}
.toast button{border:0;background:rgba(255,255,255,.15);color:#fff;border-radius:6px;padding:4px 8px;cursor:pointer}
.kb .bcol{min-height:120px}
.kb .card.dragging{opacity:.4}
.dsh-h .acts a{text-decoration:none}
.tb tr.clic{cursor:pointer}
.tb tr.clic:hover td{background:#fafbff}
.rgp .tb input,.rgp .tb select{border:1px solid #d6dae2;border-radius:6px;padding:5px 7px;font-size:13px;width:100%;background:#fff;color:#1f2433}
.rgp .tb td{vertical-align:middle}
.rgp .wc-b label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:#454b59}
.rgp .wc-b label input,.rgp .wc-b label select{border:1px solid #d6dae2;border-radius:7px;padding:7px 9px;font-size:13.5px;background:#fff;color:#1f2433}
.ligne{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.ligne label{flex:1;min-width:140px}
.copier{display:flex;gap:6px;align-items:center;min-width:0}
.copier .mono{flex:1;min-width:0;background:#f1f3f8;border-radius:6px;padding:7px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:all}
.secret{background:#fff7e6;border:1px solid #f3d19c;border-radius:8px;padding:10px 12px;font-size:13px;color:#5c3d06;display:flex;flex-direction:column;gap:6px}
.tgl{cursor:pointer;border:0;padding:0}
.demo{background:#fdf0d2;color:#8a4b00;font:700 11px/1 var(--f-body);border-radius:6px;padding:5px 8px;white-space:nowrap}
.rapide{display:flex;gap:6px;flex-wrap:wrap}
.rapide button{border:1px solid #e1e4ee;background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;color:#2b3245;cursor:pointer}
.rapide button:hover{border-color:#b9bfe8;background:#f7f7ff}
.retour{display:none}
.sbtn[disabled],.pbtn[disabled],.ibtn[disabled]{opacity:.55;cursor:default}
.nd select,.nd input,.nd textarea{font-family:inherit}
.nd-g .chk{flex-direction:row;align-items:center;gap:8px;font-weight:500}
.nd-g .chk input{width:auto}

/* Écrans moyens : la fiche école s'ouvre à la demande */
@media (max-width:1360px){
  .ibx{grid-template-columns:330px minmax(0,1fr)}
  .ibx .epcol{display:none}
  .ibx.fiche .epcol{display:flex;position:absolute;right:0;top:0;bottom:0;width:310px;z-index:4;box-shadow:-12px 0 30px rgba(15,23,42,.12)}
  .ibx{position:relative}
  .s2{grid-column:span 4}
}
@media (min-width:1361px){.btn-fiche{display:none!important}}
/* Téléphone : liste puis fil, sans barre latérale */
@media (max-width:900px){
  .app{--sbw:0px}
  .pside{display:none}
  .plogo{width:auto;padding-left:14px}
  .psearch{display:none}
  .ptop-r .lbl{display:none}
  .ibx{grid-template-columns:minmax(0,1fr)}
  .ibx .thcol{display:none}
  .ibx.lecture .icol{display:none}
  .ibx.lecture .thcol{display:flex}
  .retour{display:inline-flex}
  .ibx.fiche .epcol{width:100%}
  .s2,.s5,.s6,.s7{grid-column:span 12}
  .rgp>*{grid-column:span 12!important}
  .dsh,.rgp{padding:16px}
  .kb{grid-template-columns:repeat(4,minmax(240px,1fr))}
  .cmp-r{flex-wrap:wrap}
  .cmp-r .psel{width:100%}
  .iap-g{grid-template-columns:minmax(0,1fr)}
  .mnav{display:flex}
}
.mnav{display:none;position:fixed;left:0;right:0;bottom:0;background:#1e1e2d;padding:6px 8px calc(6px + env(safe-area-inset-bottom,0px));gap:4px;z-index:30;justify-content:space-around}
.mnav button{border:0;background:none;color:#c9cbe0;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;padding:4px 6px;border-radius:8px;cursor:pointer}
.mnav button.on{color:#fff;background:#2c2c40}
@media (max-width:900px){.app{height:calc(100dvh - 58px)}}

/* ── Connexion ── */
body.cnx{display:flex;align-items:center;justify-content:center;min-height:100vh;background:#1e1e2d;padding:24px 16px}
.cnx-c{background:#fff;border-radius:16px;width:min(420px,100%);padding:30px 28px;display:flex;flex-direction:column;gap:16px;box-shadow:0 30px 80px rgba(0,0,0,.35);color:#1f2433}
.cnx-c h1{font:800 24px/1.15 var(--f-display);margin:0;color:#1f2433}
.cnx-c p{margin:0;color:#5b6475;font-size:14px}
.cnx-c label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:#454b59}
.cnx-c input{border:1px solid #d6dae2;border-radius:8px;padding:10px 12px;font-size:15px;color:#1f2433}
.cnx-c .pbtn{justify-content:center;padding:11px}
.cnx-c .err{background:#fde8ea;color:#b4142f;border-radius:8px;padding:9px 12px;font-size:13.5px}
.cnx-logo{display:flex;align-items:center;gap:10px}
.cnx-logo span{font:800 13px/1 var(--f-display);color:#4c5bd4;border:2px solid #4c5bd4;border-radius:6px;padding:4px 5px;letter-spacing:.04em}

/* ── TV plein écran ── */
body.tvp{margin:0;padding:0;background:#070b14;overflow:hidden;height:100vh}
body.tvp .tvwrap{position:fixed;inset:0;border-radius:0;aspect-ratio:auto;width:100vw;height:100vh;box-shadow:none;max-width:none}
.mov{position:fixed;z-index:40}
.cp-ia{background:#efe7fd;color:#5b21b6}
@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr)}
  .ptop{padding-right:10px;gap:10px}
  .ptop-r{gap:10px}
  .ptop-r .demo,.ptop-r>a,.ptop-sep{display:none}
  .ihead{gap:8px}
  .ititle h2{font-size:16px}
  .vhead{padding:10px 14px}
  .vhead .aip{display:none}
  .th-head{padding:10px 12px;gap:8px}
  .th-head .pbtn{padding:6px 9px;font-size:13px}
  .dem,.links,.msgs,.cmp,.iap{padding-left:12px;padding-right:12px}
  .dem .psel{min-width:0}
  .sgm{margin-left:0;width:100%}
  .sgm button{flex:1;padding:6px 4px;font-size:12px;white-space:normal}
  .msg{max-width:92%}
}
@media (max-width:900px){.mnav{display:flex}}

/* ═════════ Vue unique des demandes : kanban du parcours, liste, couloirs par école ═════════ */
.dbar{display:flex;align-items:center;gap:10px;padding:12px 22px;background:#fff;border-bottom:1px solid #e6e9ef;flex-wrap:wrap}
.dbar h2{margin:0;font:700 18px/1.2 var(--f-body);color:#1f2433;white-space:nowrap}
.dbar .vsw button{width:auto;padding:0 12px;gap:6px;font-size:13px;font-weight:600}
.dbar .isearch{width:260px;flex:none;padding:6px 10px}
.dbar .psel{font-size:13px;padding-top:6px;padding-bottom:6px}
.dbar .aip{margin-left:auto}
.dbar .nbtn{height:32px;padding:0 12px}
.kb6{display:grid;grid-template-columns:repeat(6,minmax(230px,1fr));gap:12px;padding:16px 22px;overflow:auto;flex:1;min-height:0}
.kb6 .bcol{min-height:0;overflow:auto}
.bcol-h{flex-wrap:wrap}
.bcol-h small{flex-basis:100%;font:500 11.5px/1.3 var(--f-body);color:#6b7280;padding-left:20px}
.bcol.over{outline:2px dashed #4338ca;outline-offset:-3px}
.carte{background:#fff;border:1px solid #e3e6ec;border-left:4px solid var(--e,#94a3b8);border-radius:10px;padding:9px 11px;display:flex;flex-direction:column;gap:6px;cursor:pointer;text-align:left;width:100%;color:inherit}
.carte:hover{border-color:#b9bfe8;border-left-color:var(--e,#94a3b8);box-shadow:0 4px 14px rgba(15,23,42,.08)}
.carte.dragging{opacity:.4}
.carte-h{display:flex;align-items:center;gap:6px;font-size:12px;color:#5b6475;min-width:0}
.carte-h .ec{font-weight:700;color:var(--e);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.carte-h .cp{margin-left:auto;flex:none}
.carte b{font-size:13.5px;color:#1f2433;font-weight:600;line-height:1.35}
.carte-f{display:flex;align-items:center;gap:6px;font-size:12px;color:#5b6475;min-width:0}
.carte-f .qui{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.carte .card-r{gap:4px}
.vide-col{font-size:12.5px;color:#9aa2ad;text-align:center;padding:14px 6px}
.liste{padding:16px 22px;overflow:auto;flex:1;min-height:0}
.liste .wc{overflow:hidden}
.liste .tb td{padding:9px 10px}
.liste .tb tr{cursor:pointer}
.liste .tb tr:hover td{background:#f7f8fd}
.liste .tb .suj b{display:block;color:#1f2433;font-weight:600;max-width:520px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.liste .tb .suj small{color:#6b7280}
.etq{display:inline-flex;align-items:center;gap:6px;font:600 12px/1 var(--f-body);white-space:nowrap;color:#2b3245}
.etq i{width:9px;height:9px;border-radius:50%;flex:none}
.sw{display:flex;flex-direction:column;gap:10px;padding:16px 22px;overflow:auto;flex:1;min-height:0}
.sw-g{display:grid;grid-template-columns:210px repeat(6,minmax(170px,1fr));gap:8px;min-width:1300px}
.sw-h{position:sticky;top:-16px;background:#f5f8fa;z-index:2;padding:6px 0}
.sw-h div{font:700 12px/1.2 var(--f-body);color:#2b3245;display:flex;gap:6px;align-items:center;padding:4px 6px}
.sw-r{background:#fff;border:1px solid #e6e9ef;border-radius:12px;padding:8px}
.sw-r.al{border-color:#f5bcc6;box-shadow:inset 4px 0 0 #d6203d}
.sw-e{display:flex;flex-direction:column;gap:6px;padding:4px 6px}
.sw-e .ccard-h b{font-size:14.5px}
.sw-e .mini{display:flex;gap:10px;font-size:12px;color:#5b6475;flex-wrap:wrap}
.sw-e .mini b{color:#1f2433;font-size:13px}
.sw-c{background:#f6f7fb;border-radius:8px;padding:5px;display:flex;flex-direction:column;gap:5px;min-height:44px}
.sw-c .carte{padding:7px 9px;gap:4px}
.sw-c .carte b{font-size:12.5px}
.sw-calme{font-size:12.5px;color:#6b7280;padding:4px 2px}

/* Fiche d'une demande : panneau latéral */
.tir-fond{position:fixed;inset:0;background:rgba(15,23,42,.38);z-index:35;display:flex;justify-content:flex-end}
.tir{width:min(1200px,97vw);height:100%;background:#f5f8fa;display:flex;flex-direction:column;box-shadow:-24px 0 60px rgba(15,23,42,.28);animation:glisse .2s ease-out}
@keyframes glisse{from{transform:translateX(50px);opacity:.5}}
.tir-h{background:#fff;padding:16px 22px 12px;display:flex;gap:14px;align-items:flex-start;border-bottom:1px solid #eef0f4}
.tir-h .t{flex:1;min-width:0}
.tir-h h2{margin:0;font:700 21px/1.25 var(--f-body);color:#1f2433;text-wrap:balance}
.tir-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px;color:#5b6475;margin-top:7px}
.tir-meta .psel{font-size:13px;padding:4px 26px 4px 8px}
.tir-meta b{color:#1f2433}
.tir-act{display:flex;gap:8px;align-items:center;flex:none}
.etp{display:flex;padding:10px 22px 12px;background:#fff;border-bottom:1px solid #e6e9ef;overflow-x:auto}
.etp button{flex:1;min-width:128px;border:0;background:#eef0f5;color:#5b6475;padding:10px 14px 10px 22px;font:600 12.5px var(--f-body);cursor:pointer;clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%,12px 50%);margin-right:-8px;white-space:nowrap}
.etp button:first-child{clip-path:polygon(0 0,calc(100% - 12px) 0,100% 50%,calc(100% - 12px) 100%,0 100%);padding-left:14px}
.etp button:hover{filter:brightness(.96)}
.etp button.on{color:#fff}
.tir-b{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 350px}
.tir-fil{display:flex;flex-direction:column;min-height:0;background:#fff;border-right:1px solid #e6e9ef}
.tir-fil .links{border-top:0}
.tir-cote{overflow:auto;padding:16px;display:flex;flex-direction:column;gap:14px;min-width:0}
.bloc{background:#fff;border:1px solid #e6e9ef;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:8px;min-width:0}
.bloc h4{margin:0;font:700 12px/1 var(--f-body);letter-spacing:.06em;color:#2b3245;display:flex;align-items:center;gap:6px}
.bloc.ep-ia{background:#fbfaff;border-color:#e6e1fb}
.bloc .ep-act{padding-bottom:4px;border:0}
@media (max-width:1100px){.tir-b{grid-template-columns:minmax(0,1fr)}.tir-cote{border-top:1px solid #e6e9ef}.tir-b{overflow:auto}.tir-fil{min-height:70vh}}
@media (max-width:900px){.tir{width:100vw}.dbar{padding:10px 12px}.dbar .isearch{width:100%}.kb6,.liste,.sw{padding:12px}.etp{padding:8px 12px}}

/* ═════════ TV 55 pouces : le mur, les écoles, la semaine, bandeau d'activité, fêtes ═════════ */
.tv-btn{border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:#c7cde0;border-radius:8px;font:600 13px/1 var(--f-mono);padding:8px 10px;cursor:pointer;letter-spacing:.06em}
.tv-btn[aria-pressed="true"]{background:#35c98e;border-color:#35c98e;color:#04140c}
.tv-zone{position:relative;height:976px;padding:16px 18px 14px;display:flex;flex-direction:column;gap:14px}
.tv-cpt{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;flex:none}
.tv-cpt>div{border-radius:16px;padding:12px 18px 14px;background:#0e1522;border:1px solid rgba(255,255,255,.07);border-top:6px solid var(--c);display:flex;flex-direction:column;gap:4px}
.tv-cpt b{font:800 66px/1 var(--f-display);color:#fff;font-variant-numeric:tabular-nums}
.tv-cpt span{font:600 14px/1.2 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:#aeb8cc}
.tv-cpt>div.chaud b{color:#f56d7e}
.tv-cols{flex:1;min-height:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.tv-col{background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.05);border-radius:16px;padding:10px;display:flex;flex-direction:column;gap:9px;overflow:hidden;min-width:0}
.tv-col-h{display:flex;align-items:center;gap:8px;font:700 15px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:#d5dbe8;padding:4px 4px 2px}
.tv-col-h i{width:11px;height:11px;border-radius:50%;flex:none}
.tv-carte{background:#121b2b;border-radius:12px;padding:11px 13px;border-left:7px solid var(--e);display:flex;flex-direction:column;gap:6px;flex:none}
.tv-carte b{font:600 19px/1.25 'IBM Plex Sans',var(--f-body);color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tv-carte .l{display:flex;align-items:center;gap:8px;font-size:15px;color:#aeb8cc;min-width:0}
.tv-carte .l .ec{font-weight:700;color:var(--ec,#fff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.tv-carte .l .age{margin-left:auto;font:700 16px/1 var(--f-mono);color:#fbbf5a;flex:none}
.tv-carte.chaud{animation:chaud 2.2s ease-in-out infinite}
.tv-carte.chaud .age{color:#f56d7e}
@keyframes chaud{50%{box-shadow:0 0 0 3px rgba(245,109,126,.55),0 0 26px rgba(245,109,126,.35)}}
.tv-carte.neuve{animation:neuve 1.2s ease-out 3}
@keyframes neuve{0%{box-shadow:0 0 0 0 rgba(125,179,255,.9)}100%{box-shadow:0 0 0 14px rgba(125,179,255,0)}}
.tv-plus{font:600 15px/1 var(--f-mono);color:#8a96ad;text-align:center;padding:6px}
.tv-ecoles{flex:1;min-height:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:minmax(0,1fr);gap:14px}
.tv-ecole{background:#0e1522;border-radius:18px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;border:2px solid rgba(255,255,255,.06);min-height:0;overflow:hidden}
.tv-ecole.rouge{border-color:rgba(245,109,126,.9);box-shadow:0 0 34px rgba(245,109,126,.22)}
.tv-ecole.orange{border-color:rgba(251,191,90,.7)}
.tv-ecole.vert{border-color:rgba(53,201,142,.55)}
.tv-ecole-h{display:flex;align-items:center;gap:12px;min-width:0}
.tv-ecole-h b{font:700 25px/1.1 'IBM Plex Sans',var(--f-body);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-ecole-n{display:flex;align-items:baseline;gap:10px}
.tv-ecole-n b{font:800 58px/1 var(--f-display);color:#fff}
.tv-ecole-n span{font:600 16px var(--f-mono);color:#aeb8cc}
.tv-barre{display:flex;gap:3px;height:14px}
.tv-barre span{border-radius:4px;min-width:6px}
.tv-ecole .det{font:600 15.5px/1.35 var(--f-mono);color:#aeb8cc}
.tv-ecole .det b{color:#f56d7e;font-weight:700}
.tv-ecole .det em{font-style:normal;color:#c4b5fd}
.tv-semaine{flex:1;min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:200px minmax(0,1fr) minmax(0,1fr);gap:14px}
.tv-champ{display:flex;align-items:center;gap:22px}
.tv-champ img,.tv-champ .emo{width:150px;height:150px;font-size:120px;line-height:150px;text-align:center;flex:none}
.tv-champ b{font:800 44px/1.05 var(--f-display);color:#fff;display:block}
.tv-champ small{font:600 18px/1.3 var(--f-mono);color:#fbbf5a}
.tv-podium{display:flex;flex-direction:column;gap:14px}
.tv-podium div{display:grid;grid-template-columns:44px 52px minmax(0,1fr) auto;gap:14px;align-items:center;font:600 21px 'IBM Plex Sans';color:#eef2f9}
.tv-podium div em{font:800 30px/1 var(--f-display);font-style:normal;color:#fff;text-align:right}
.tv-podium div span.r{font:800 28px/1 var(--f-display);color:#8a96ad}
.tv-ticker{position:absolute;left:0;right:0;bottom:0;height:48px;background:#0a1120;border-top:1px solid rgba(255,255,255,.08);overflow:hidden;display:flex;align-items:center;z-index:3}
.tv-ticker .lbl{flex:none;background:#6366f1;color:#fff;font:700 14px/1 var(--f-mono);letter-spacing:.14em;padding:0 18px;height:100%;display:flex;align-items:center;position:relative;z-index:1}
.tv-ticker .bande{overflow:hidden;flex:1;min-width:0}
.tv-ticker .fil{display:inline-flex;gap:56px;white-space:nowrap;padding-left:40px;font:500 19px/48px 'IBM Plex Sans',var(--f-body);color:#d5dbe8;animation:defile var(--duree,80s) linear infinite}
.tv-ticker .fil b{color:#fff;font-weight:600}
.tv-ticker .fil time{font-family:var(--f-mono);color:#8a96ad;margin-right:8px}
.tv-ticker .fil i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:1px}
@keyframes defile{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.fete{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 42%,rgba(18,27,48,.82),rgba(4,7,14,.96));animation:fondu .35s ease-out}
@keyframes fondu{from{opacity:0}}
.fete.sort{animation:sortie .5s ease-in forwards}
@keyframes sortie{to{opacity:0;transform:scale(1.04)}}
.fete-c{display:flex;flex-direction:column;align-items:center;gap:20px;text-align:center;max-width:1500px;padding:0 60px;position:relative;z-index:2;animation:rebond .9s cubic-bezier(.2,1.5,.4,1)}
@keyframes rebond{from{transform:scale(.35) translateY(90px);opacity:0}}
.fete .gif{width:280px;height:280px;object-fit:contain}
.fete .emo{font-size:230px;line-height:280px;height:280px}
.fete h1{font:800 120px/1 var(--f-display);margin:0;letter-spacing:-.02em;color:#fff;text-shadow:0 10px 40px rgba(0,0,0,.5)}
.fete .sujet{font:600 48px/1.2 'IBM Plex Sans',var(--f-body);color:#eef2f9;text-wrap:balance}
.fete .qui{display:flex;align-items:center;gap:16px;font:600 30px/1.2 var(--f-mono);color:#aeb8cc}
.fete .qui .tv-av{width:64px;height:64px;font-size:22px}
.fete.nouvelle h1{color:#7db3ff}
.fete.reglee h1{color:#35c98e}
.fete.enligne h1{color:#d8b4fe}
.fete.relance h1{color:#fbbf5a}
.fete.zero h1{color:#fde68a}
.fete.nouvelle .gif{animation:sonne .5s ease-in-out 6 alternate}
@keyframes sonne{from{transform:rotate(-14deg)}to{transform:rotate(14deg)}}
.fete.relance .fete-c{animation:rebond .9s cubic-bezier(.2,1.5,.4,1),secoue .12s linear .9s 12}
@keyframes secoue{50%{transform:translateX(12px)}}
.fusee{position:absolute;left:-320px;bottom:-320px;width:300px;height:300px;z-index:3;animation:decolle 3.2s cubic-bezier(.5,0,.7,.4) .3s forwards}
@keyframes decolle{to{transform:translate(2600px,-1700px) scale(.6)}}
.fete canvas{position:absolute;inset:0;width:1920px;height:1080px;z-index:1;pointer-events:none}
.fete-plus{font:600 22px var(--f-mono);color:#8a96ad}
.fete{background:radial-gradient(circle at 50% 42%,rgba(16,24,44,.96),rgba(4,7,14,.99))}
.kb6{grid-template-columns:repeat(6,minmax(188px,1fr));gap:10px;padding:14px 16px}
.dbar .isearch{width:220px}
.tv-ecole ul{list-style:none;margin:2px 0 0;padding:10px 0 0;border-top:1px solid rgba(255,255,255,.07);display:flex;flex-direction:column;gap:9px;min-height:0;overflow:hidden}
.tv-ecole li{display:flex;gap:10px;align-items:baseline;font:500 17.5px/1.25 'IBM Plex Sans',var(--f-body);color:#e3e8f2;min-width:0}
.tv-ecole li i{width:10px;height:10px;border-radius:50%;flex:none;transform:translateY(-1px)}
.tv-ecole li span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.tv-ecole li em{font:700 15px/1 var(--f-mono);font-style:normal;color:#f56d7e;flex:none}
/* TV : grille des widgets de la maquette, au-dessus du bandeau d'activité */
.tv-grid{height:976px;padding-bottom:12px}
.tv-feed-r.neuve{animation:neuveL 1.4s ease-out 4;border-radius:10px}
@keyframes neuveL{0%{background:rgba(125,179,255,.35)}100%{background:transparent}}

/* ═════════ Écoles : rail des écoles, organigramme, fiche personne ═════════ */
.pmain.pm-eco{overflow:hidden}
.eco{display:grid;grid-template-columns:250px minmax(0,1fr);height:100%;min-height:0}
.eco-l{background:#fff;border-right:1px solid #e6e9ef;overflow:auto;padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.eco-lh{display:flex;align-items:center;gap:7px;font:700 12px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:#2b3245;padding:6px 8px 10px}
.eco-lh small{margin-left:auto;font-weight:500;letter-spacing:0;text-transform:none;color:#6b7280}
.eco-i{display:flex;align-items:center;gap:10px;border:0;background:none;border-radius:8px;padding:8px;text-align:left;cursor:pointer;color:#1f2433;width:100%}
.eco-i:hover{background:#f3f5fa}
.eco-i.on{background:#eceefc}
.eco-i>i{width:10px;height:10px;border-radius:3px;flex:none}
.eco-i>span{display:flex;flex-direction:column;min-width:0;flex:1}
.eco-i b{font-size:13.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eco-i small{font-size:11.5px;color:#6b7280}
.eco-i em{font:700 11px/1 var(--f-body);font-style:normal;background:#e4f5e9;color:#146c34;border-radius:999px;padding:4px 7px}
.eco-m{overflow:auto;padding:20px 24px 28px;display:flex;flex-direction:column;gap:16px;min-width:0}
.eco-h{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.eco-h .t{flex:1;min-width:220px}
.eco-h h2{margin:0;font:700 23px/1.2 var(--f-body);color:#253585}
.eco-h .acts{display:flex;gap:8px;flex-wrap:wrap}
.eco-h .acts a{text-decoration:none}
.eco-k{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.eco-k>div{background:#fff;border:1px solid #e6e9ef;border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;border-top:3px solid #c7cde0}
.eco-k b{font:700 24px/1.1 var(--f-body);color:#1f2433;font-variant-numeric:tabular-nums}
.eco-k span{font-size:12.5px;color:#5b6475}
.eco-k .vert{border-top-color:#16a34a}.eco-k .rouge{border-top-color:#e05260}.eco-k .rouge b{color:#b4142f}
.eco-2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.wc-h .lgd{display:flex;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.wc-h .lgd span{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#5b6475;font-weight:500}
.wc-h .lgd i{width:9px;height:9px;border-radius:50%}
.rien{color:#6b7280;font-size:13px}
/* L'arbre : traits gris entre une personne et son équipe */
.org{overflow:auto;padding:4px 4px 12px}
.org ul{display:flex;justify-content:center;list-style:none;margin:0;padding:22px 0 0;position:relative}
.org>ul{padding-top:0;gap:28px;justify-content:center;min-width:max-content;margin:0 auto}
.org li{display:flex;flex-direction:column;align-items:center;position:relative;padding:22px 7px 0}
.org>ul>li{padding-top:0}
.org li::before,.org li::after{content:'';position:absolute;top:0;right:50%;width:50%;height:22px;border-top:2px solid #cfd5e1}
.org li::after{right:auto;left:50%;border-left:2px solid #cfd5e1}
.org>ul>li::before,.org>ul>li::after,.org li:only-child::before,.org li:only-child::after{display:none}
.org li:only-child{padding-top:22px}
.org>ul>li:only-child{padding-top:0}
.org li:first-child::before,.org li:last-child::after{border:0 none}
.org li:last-child::before{border-right:2px solid #cfd5e1;border-radius:0 8px 0 0}
.org li:first-child::after{border-radius:8px 0 0 0}
.org ul ul::before{content:'';position:absolute;top:0;left:50%;border-left:2px solid #cfd5e1;width:0;height:22px}
.org li:only-child>.pn{position:relative}
.org li:only-child::marker{content:none}
.org ul ul>li:only-child{padding-top:22px}
.org ul ul>li:only-child::before{display:block;border:0;border-left:2px solid #cfd5e1;width:0;left:50%;right:auto;height:22px}
.pn{width:206px;background:#fff;border:1px solid #e1e5ec;border-top:4px solid var(--p);border-radius:10px;padding:10px 11px 9px;display:flex;flex-direction:column;gap:7px;text-align:left;cursor:pointer;color:#1f2433;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.pn:hover{border-color:#b9c0f5;box-shadow:0 4px 14px rgba(59,72,200,.14)}
.pn.neuf{box-shadow:0 0 0 3px rgba(22,163,74,.18)}
.pn-h{display:flex;gap:9px;align-items:flex-start}
.pn-t{display:flex;flex-direction:column;min-width:0;flex:1}
.pn-t b{font-size:13.5px;line-height:1.25}
.pn-t small{font-size:12px;color:#5b6475;line-height:1.3}
.pn .ton{font:700 10.5px/1 var(--f-mono);color:#5b6475;background:#f1f2f6;border-radius:5px;padding:4px 5px;flex:none}
.pn-c{display:flex;flex-wrap:wrap;gap:4px}
.pn-f{font-size:11.5px;color:#6b7280;border-top:1px solid #f0f2f5;padding-top:6px}
.ligne{display:flex;gap:10px;align-items:center;border:0;background:none;border-radius:8px;padding:7px 8px;text-align:left;cursor:pointer;color:#1f2433;width:100%;font-size:13.5px}
.ligne:hover{background:#f3f5fa}
.ligne>span:not(.cp):not(.av):not(.etq){display:flex;flex-direction:column;min-width:0;flex:1}
.ligne small{color:#6b7280;font-size:12px}
.ligne .etq{flex:none;min-width:128px;white-space:nowrap}
.rdv-q{display:flex;flex-direction:column;align-items:center;flex:none!important;min-width:64px;background:#f3f4fb;border-radius:8px;padding:5px 6px}
.rdv-q b{font-size:12px;white-space:nowrap}.rdv-q small{font:600 12px var(--f-mono);color:#3b48c8!important}
.tir.pers{width:min(980px,97vw)}
.pers-b{flex:1;min-height:0;overflow:auto;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:14px;padding:16px;align-items:start}
.pers-c{display:flex;flex-direction:column;gap:14px;min-width:0}
.bloc .txt{margin:0;font-size:14px;line-height:1.5;color:#2b3245;white-space:pre-wrap}
.bloc .txt.big{font-size:15.5px;color:#1f2433;font-weight:500}
.bloc h4 small{font-weight:600;color:#6b7280;letter-spacing:0}
.savoir{display:flex;gap:8px;align-items:flex-start;background:#fff8e6;border:1px solid #f6e2a8;border-radius:8px;padding:8px 10px;font-size:13.5px;color:#6b4a00}
.coord{display:flex;gap:8px;align-items:center;font-size:14px;user-select:text}
.coord span{font-family:var(--f-mono);font-size:13px}
.pl{font-size:14px;color:#2b3245}
.pl small{color:#6b7280}
.lnk2{border:0;background:none;padding:0;color:#3b48c8;font-weight:600;cursor:pointer;font-size:inherit;text-align:left}
.lnk2:hover{text-decoration:underline}
.lnk2.h{font-size:14px}
.hist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.hist li{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid #f0f2f5}
.hist li:last-child{border-bottom:0}
.h-d{font:600 12.5px/1.2 var(--f-mono);color:#1f2433;display:flex;flex-direction:column}
.h-d small{color:#8a93a3;font-weight:500}
.h-b{display:flex;flex-direction:column;gap:3px;min-width:0}
.h-t{display:flex;gap:6px;align-items:center;flex-wrap:wrap;font-size:12.5px;color:#5b6475}
.h-t b{color:#1f2433}
.h-t .lnk2{font-size:12.5px;font-weight:500;color:#5b6475}
.h-b .txt{font-size:13.5px;color:#2b3245;line-height:1.45;overflow-wrap:anywhere}
.hist li.equipe .h-b{border-left:3px solid #c7cdf6;padding-left:8px}
.hist li.client .h-b{border-left:3px solid #f2c4ca;padding-left:8px}
.hist li.rdv .h-b{border-left:3px solid #c9b6f2;padding-left:8px;background:#faf8ff;border-radius:0 6px 6px 0;padding-block:4px}

/* ═════════ Rendez-vous : liste par jour à gauche, fiche de préparation à droite ═════════ */
.rdvp{display:grid;grid-template-columns:390px minmax(0,1fr);height:100%;min-height:0}
.rdv-l{background:#fff;border-right:1px solid #e6e9ef;overflow:auto;padding:12px 10px 20px;display:flex;flex-direction:column;gap:3px}
.rdv-lh{display:flex;align-items:center;gap:10px;padding:2px 4px 8px;position:sticky;top:-12px;background:#fff;z-index:1;padding-top:12px;margin-top:-12px}
.rdv-seg{display:inline-flex;border:1px solid #d6dae2;border-radius:8px;overflow:hidden;flex:none}
.rdv-seg button{border:0;background:#fff;padding:7px 14px;font:600 13px var(--f-body);color:#2b3245;cursor:pointer}
.rdv-seg button+button{border-left:1px solid #e6e9ef}
.rdv-seg button[aria-pressed="true"]{background:#1e2b7a;color:#fff}
.moi-f{margin-left:auto;white-space:nowrap;display:inline-flex;gap:6px;align-items:center;font-size:13px;color:#2b3245;cursor:pointer}
.rdv-j{font:700 12px/1 var(--f-body);letter-spacing:.05em;text-transform:uppercase;color:#253585;padding:14px 8px 6px}
.rr{display:flex;gap:10px;align-items:flex-start;border:1px solid transparent;border-left:4px solid var(--e);background:#fff;border-radius:8px;padding:9px 10px;text-align:left;cursor:pointer;color:#1f2433;width:100%}
.rr:hover{background:#f6f7fc}
.rr.on{background:#eceefc;border-color:#d4d8f7;border-left-color:var(--e)}
.rr-h{display:flex;flex-direction:column;flex:none;width:44px}
.rr-h b{font:700 14px/1.2 var(--f-mono)}.rr-h small{font:500 11.5px var(--f-mono);color:#8a93a3}
.rr-m{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.rr-m>b{font-size:13.5px;line-height:1.3}
.rr-m>small{font-size:12px;color:#5b6475;display:flex;flex-wrap:wrap;gap:3px;align-items:center}
.rr-m .sch{font-weight:600;font-size:12px}
.rr-c{display:flex;flex-wrap:wrap;gap:4px}
.rdv-d{overflow:auto;min-width:0}
.rdv-h{background:#fff;border-bottom:1px solid #e6e9ef;padding:18px 24px 16px;border-top:5px solid var(--e);display:flex;flex-direction:column;gap:6px}
.rdv-h h2{margin:0;font:700 24px/1.2 var(--f-body);color:#1f2433;text-wrap:balance}
.rdv-cpt{align-self:flex-start;display:inline-flex;gap:7px;align-items:center;font:700 14px/1 var(--f-body);border-radius:8px;padding:7px 11px}
.rdv-a{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.rdv-a a{text-decoration:none}
.pbtn.big{padding:11px 16px;font-size:14.5px;border-radius:10px}
.rdv-g{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:14px;padding:16px 24px 28px;align-items:start}
.rdv-c{display:flex;flex-direction:column;gap:14px;min-width:0}
.att{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.att li{display:flex;gap:8px;align-items:flex-start;font-size:14px;color:#1f2433}
.att li .ic{color:#0b7f73;flex:none;margin-top:2px}
.pu{margin:4px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px;font-size:13.5px;color:#2b3245}
.pp{display:flex;flex-direction:column}
.pp>b{font-size:12.5px;color:#5b21b6}
.pp.vig>b{color:#b45309}
.bloc.cr{background:#f3fbf7;border-color:#c8ead8}
.bloc.cr .pp>b{color:#04694a}
.parts{display:flex;flex-direction:column;gap:6px}
.part{display:flex;gap:10px;align-items:flex-start;border:1px solid #eef0f4;background:#fff;border-radius:10px;padding:8px 10px;text-align:left;color:#1f2433;width:100%}
button.part{cursor:pointer}
button.part:hover{border-color:#c9cff5;background:#fafbff}
.part>span:not(.av):not(.cp){display:flex;flex-direction:column;min-width:0;flex:1}
.part b{font-size:14px}.part small{font-size:12.5px;color:#5b6475}
.part em{font-style:normal;font-size:12.5px;color:#6b4a00;background:#fff8e6;border-radius:6px;padding:3px 7px;margin-top:4px;align-self:flex-start}
.part.eq{background:#f6f7fb}
@media (max-width:1200px){.eco-k{grid-template-columns:repeat(3,minmax(0,1fr))}.eco-2,.rdv-g,.pers-b{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){
  .eco,.rdvp{grid-template-columns:minmax(0,1fr);height:auto}
  .pmain.pm-eco{overflow:auto}
  .eco-l{flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid #e6e9ef}
  .eco-lh{display:none}.eco-i{width:auto;flex:none}
  .rdv-l{max-height:45vh;border-right:0;border-bottom:1px solid #e6e9ef}
  .eco-m{padding:14px 12px}.rdv-h{padding:14px 12px}.rdv-g{padding:12px}
  .eco-k{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ═════════ Écoles, version complète : vue d'ensemble, pôles, annuaire, fiche modifiable ═════════ */
.cp-pros{background:#fff3d6;color:#8a4b00}
.cp-btn{border:0;cursor:pointer;font-family:inherit}
.cp-btn:hover{filter:brightness(.95);box-shadow:0 0 0 2px rgba(59,72,200,.18)}
.rien{color:#6b7280;font-size:13px}
.ton{font:700 10.5px/1 var(--f-mono);color:#5b6475;background:#f1f2f6;border-radius:5px;padding:4px 5px;flex:none;display:inline-block}
.eco-l{gap:1px}
.eco-q{display:flex;align-items:center;gap:7px;border:1px solid #d6dae2;border-radius:9px;padding:0 10px;margin:2px 2px 10px;color:#6b7280;background:#fff}
.eco-q:focus-within{border-color:#8b93f0;box-shadow:0 0 0 3px rgba(79,70,229,.12)}
.eco-q input{border:0;outline:0;padding:9px 0;font-size:14px;width:100%;background:transparent;color:#1f2433;font-family:inherit}
.eco-sec{display:flex;align-items:center;gap:6px;font:700 11px/1 var(--f-body);letter-spacing:.07em;text-transform:uppercase;color:#6b7280;padding:14px 8px 6px}
.eco-sec small{font-weight:600;letter-spacing:0;background:#f1f2f6;border-radius:999px;padding:3px 7px;color:#5b6475}
.eco-i.tout{border:1px solid #e6e9ef;margin-bottom:4px}
.eco-i.tout .ic{color:#4338ca;flex:none}
.eco-i em.r{background:#fde8ea;color:#b4142f}
.eco-p{display:flex;align-items:center;gap:9px;border:0;background:none;border-radius:8px;padding:6px 8px;text-align:left;cursor:pointer;color:#1f2433;width:100%}
.eco-p:hover{background:#f3f5fa}
.eco-p>span:not(.av){display:flex;flex-direction:column;min-width:0}
.eco-p b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eco-p small{font-size:11.5px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eco-vide{display:flex;gap:6px;align-items:center;font-size:13px;color:#6b7280;padding:8px}
/* Vue d'ensemble : une carte par école */
.ens-h{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.ens-h h2{margin:0;font:800 26px/1.1 var(--f-display);color:#253585;letter-spacing:-.01em}
.ens-h p{margin:4px 0 0;color:#5b6475;font-size:14px}
.ens-h .acts{margin-left:auto;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.ens{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}
.ec-c{position:relative;display:flex;flex-direction:column;gap:12px;text-align:left;background:#fff;border:1px solid #e3e7ee;border-radius:14px;padding:16px 16px 14px;cursor:pointer;color:#1f2433;overflow:hidden;
  box-shadow:0 1px 2px rgba(15,23,42,.04);transition:transform .15s ease,box-shadow .15s ease,border-color .15s;animation:ecIn .35s ease-out both;animation-delay:calc(var(--k) * 25ms)}
.ec-c::before{content:'';position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--e),color-mix(in srgb,var(--e) 35%,#fff))}
.ec-c:hover{transform:translateY(-2px);box-shadow:0 10px 28px rgba(15,23,42,.10);border-color:color-mix(in srgb,var(--e) 40%,#e3e7ee)}
@keyframes ecIn{from{opacity:.001;transform:translateY(6px)}}
.ec-h{display:flex;align-items:center;gap:10px;min-width:0}
.ec-h .t{display:flex;flex-direction:column;min-width:0;flex:1}
.ec-h b{font-size:16px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ec-h small{font-size:12px;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ec-v{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-height:26px}
.ec-n{font-size:13px;color:#5b6475}.ec-n b{color:#1f2433}.ec-n i{font-style:normal;color:#146c34;font-weight:600}
.vis{display:inline-flex;align-items:center}
.vis .av{border:2px solid #fff;margin-left:-7px;box-shadow:0 1px 2px rgba(15,23,42,.12)}
.vis .av:first-child{margin-left:0}
.vis em{font:700 11px/1 var(--f-body);font-style:normal;color:#5b6475;background:#eef0f5;border:2px solid #fff;border-radius:999px;padding:5px 7px;margin-left:-6px}
.ec-s{display:flex;align-items:center;gap:12px;padding:8px 10px;background:#f8f9fc;border-radius:10px}
.ec-s>span{font-size:13px;color:#5b6475;line-height:1.25}
.ec-s b{font-size:18px;color:#1f2433;font-variant-numeric:tabular-nums}
.ec-s small{display:block;font-size:11.5px;color:#8a93a3}
.spark{display:block;flex:none;max-width:100%}
.ec-f{display:flex;flex-wrap:wrap;gap:5px;min-height:22px}
.ec-d{font-size:12px;color:#6b7280;border-top:1px solid #f0f2f5;padding-top:9px}
/* Page d'une école */
.eco-h{position:relative;background:#fff;border:1px solid #e6e9ef;border-radius:14px;padding:18px 20px;overflow:hidden}
.eco-h::before{content:'';position:absolute;inset:0 auto 0 0;width:6px;background:var(--e)}
.eco-h::after{content:'';position:absolute;inset:0 0 auto auto;width:45%;height:100%;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--e) 9%,transparent));pointer-events:none}
.eco-h>*{position:relative;z-index:1}
.eco-ty{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:4px}
.eco-h .vis .av{width:30px;height:30px;font-size:11px}
.eco-k{grid-template-columns:repeat(5,minmax(0,1fr)) minmax(0,1.5fr)}
.eco-k .k-spark{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;border-top-color:#8b5cf6}
.eco-k .k-spark>span{display:flex;flex-direction:column;gap:2px}
.eco-t{display:flex;gap:4px;border-bottom:1px solid #e1e5ec;overflow-x:auto}
.eco-t button{display:inline-flex;align-items:center;gap:7px;border:0;background:none;padding:10px 14px;font:600 14px var(--f-body);color:#5b6475;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px;white-space:nowrap}
.eco-t button:hover{color:#1f2433}
.eco-t button[aria-selected="true"]{color:#253585;border-bottom-color:#4338ca}
.eco-t small{font-size:11.5px;background:#eef0f5;border-radius:999px;padding:2px 7px;color:#5b6475}
/* Organigramme par pôle */
.org-wc .wc-b{gap:18px;padding:18px}
.og{border:1px solid #eceff4;border-top:3px solid var(--p);border-radius:12px;padding:10px 12px 14px;background:linear-gradient(180deg,color-mix(in srgb,var(--p) 5%,#fff),#fff 60px);min-width:0}
.og h4{display:flex;align-items:center;gap:7px;margin:0 0 10px;font:700 12px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;color:#2b3245}
.og h4 i{width:9px;height:9px;border-radius:50%;background:var(--p)}
.og h4 small{font-weight:600;letter-spacing:0;color:#6b7280;background:#f1f2f6;border-radius:999px;padding:3px 7px}
.og-dir{max-width:max-content;min-width:min(100%,260px);margin:0 auto;position:relative}
.og-dir::after{content:'';position:absolute;left:50%;bottom:-19px;height:18px;border-left:2px dashed #cfd5e1}
.og-g{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;align-items:flex-start}
.og-g .og{flex:0 1 auto;max-width:100%}
.og-flou{border-top-style:dashed;opacity:.92}
.og .org{padding:0}
.pn{animation:ecIn .3s ease-out both}
.pn.brut{border-style:dashed}
.pn.brut .pn-t small{color:#8a93a3}
/* Annuaire */
.ann-q{margin-left:auto;display:flex;align-items:center;gap:6px;border:1px solid #d6dae2;border-radius:7px;padding:0 8px;color:#6b7280;font-weight:400}
.ann-q input{border:0;outline:0;padding:6px 0;font-size:13px;width:160px;background:transparent;font-family:inherit;color:#1f2433}
.tb.ann td{vertical-align:middle}
.ann-p{display:flex;align-items:center;gap:9px;min-width:210px}
.ann-p>span:not(.av){display:flex;flex-direction:column}
.ann-p b{font-size:13.5px;color:#1f2433}.ann-p small{font-size:12px;color:#6b7280}
.ann-c{white-space:nowrap}.ann-c small{display:block;color:#6b7280}
.tb tr.partie td{opacity:.55}
.th-t{border:0;background:none;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}
.th-t.on{color:#253585}
.lnk3{border:0;background:none;padding:0;font:500 12.5px var(--f-mono);color:#2b3245;cursor:copy}
.lnk3:hover{color:#3b48c8;text-decoration:underline}
/* Fiche d'une personne */
.vr{display:inline-flex;color:#8a93a3;margin-left:2px}
.tir-act .pbtn{text-decoration:none}
.pers-form{box-shadow:none;width:100%;border:1px solid #e6e9ef;grid-column:1/-1}
.pers-form .fus{border-top:1px dashed #e1e5ec;justify-content:flex-start;flex-wrap:wrap}
.pers-form .fus small{margin-right:0;flex-basis:100%}
.bloc.qst{border-color:#f6e2a8}
.part.refus{opacity:.55}
.part.refus b{text-decoration:line-through}
.txt.petit{font-size:13px;color:#5b6475}
/* Rendez-vous */
.rdv-lh{flex-wrap:wrap}
.rdv-lh .psel{font-size:13px;padding:6px 26px 6px 9px}
.rdv-j{display:flex;align-items:center;gap:6px}
.rdv-j small{font:600 11px/1 var(--f-body);background:#eef0f5;color:#5b6475;border-radius:999px;padding:3px 7px;letter-spacing:0}
.rr.annule{opacity:.5}.rr.annule .rr-m>b{text-decoration:line-through}
.now{display:flex;flex-direction:column;gap:4px;border-radius:12px;padding:12px 14px;margin:2px 0 6px;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--e) 92%,#000),color-mix(in srgb,var(--e) 65%,#1e2b7a));box-shadow:0 8px 22px color-mix(in srgb,var(--e) 35%,transparent)}
.now-t{font:700 11.5px/1 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;opacity:.9}
.now b{font-size:15.5px;line-height:1.3}
.now small{opacity:.85}
.now-a{display:flex;gap:8px;margin-top:6px}
.now-a .pbtn{padding:6px 12px;font-size:13px}
.rdv-cpt.pulse{animation:pulseR 1.6s ease-in-out infinite}
@keyframes pulseR{50%{box-shadow:0 0 0 6px rgba(224,82,96,.18)}}
.pbtn.glow{animation:glow 1.8s ease-in-out infinite}
@keyframes glow{50%{box-shadow:0 0 0 6px color-mix(in srgb,currentColor 0%,rgba(91,95,199,.28))}}
.bloc h4 small{margin-left:auto;font-weight:500;letter-spacing:0;color:#8a93a3}
.bloc textarea{width:100%;border:1px solid #d6dae2;border-radius:8px;padding:8px 10px;font:14px/1.45 var(--f-body);color:#1f2433;resize:vertical;background:#fff}
@media (prefers-reduced-motion:reduce){.ec-c,.pn{animation:none}.rdv-cpt.pulse,.pbtn.glow{animation:none}.ec-c:hover{transform:none}}
@media (max-width:1300px){.eco-k{grid-template-columns:repeat(3,minmax(0,1fr))}.eco-k .k-spark{grid-column:span 3}}
@media (max-width:900px){.ens{grid-template-columns:minmax(0,1fr)}.ens-h .acts{margin-left:0}.eco-h .vis{display:none}.ann-q input{width:110px}.tir-act .lbl{display:none}}
.eco-m>*{flex-shrink:0}
.og-solo{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}
.og .org+.og-solo{margin-top:14px;padding-top:14px;border-top:1px dashed #e1e5ec}
.og-g .og{flex:1 1 440px}
.og-dir{max-width:100%}
.doms{display:inline-flex;flex-wrap:wrap;gap:4px}
.doms i{font:500 11.5px/1 var(--f-mono);font-style:normal;background:#f1f2f6;color:#5b6475;border-radius:5px;padding:4px 6px}
.og-g .og{flex:1 1 auto}
.og-g .og .og-solo{justify-content:flex-start}
.og-g .og{flex:0 1 auto}
.hist li.hi .h-b{border-left-style:dotted}
.h-t a.lnk2{font-size:12px;font-weight:500}

/* ── TV : rendez-vous (prochain rendez-vous en tête, écran « Les rendez-vous ») ── */
.tv-next{display:inline-flex;align-items:center;gap:10px;padding:7px 14px;border-radius:999px;background:rgba(53,201,142,.12);color:#d9fbe9;font:600 16px/1 var(--f-mono);letter-spacing:.04em;white-space:nowrap}
.tv-next i{width:9px;height:9px;border-radius:50%;background:#35c98e;box-shadow:0 0 0 4px rgba(53,201,142,.2)}
.tv-next em{font-style:normal;color:#35c98e}
.tv-rdv{display:flex;flex-direction:column}
.tv-rdv-r{display:grid;grid-template-columns:118px 46px minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.06);border-radius:12px}
.tv-rdv-r:last-child{border-bottom:0}
.tv-rdv-r time{font:700 24px/1 var(--f-mono);color:#fff;white-space:nowrap}
.tv-rdv-r.live{background:rgba(53,201,142,.09);box-shadow:inset 4px 0 0 #35c98e}
.tv-rdv-r.passe{opacity:.55}
.tv-rdv-m{display:flex;flex-direction:column;gap:6px;min-width:0}
.tv-rdv-m b{font:600 22px/1.15 'IBM Plex Sans',var(--f-body);color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-dec{display:flex;flex-direction:column;gap:4px}
.tv-dec-r{display:grid;grid-template-columns:38px minmax(0,1fr);gap:14px;align-items:center;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.06);font:500 18px/1.3 var(--f-body);color:#dfe5f1}
.tv-dec-r:last-child{border-bottom:0}
.tv-dec-r span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* ── Kanban : Terminées repliée sur le côté, bandeau « à mettre en ligne » ── */
.kb6.plie{grid-template-columns:repeat(5,minmax(188px,1fr)) 56px}
.bcol-plie{all:unset;box-sizing:border-box;background:#eef1f5;border-radius:10px;padding:12px 0;display:flex;flex-direction:column;align-items:center;gap:10px;cursor:pointer;min-height:0;color:#1f2433}
.bcol-plie:hover,.bcol-plie:focus-visible{background:#e3f6f3;outline:2px solid #0bb4a4;outline-offset:-2px}
.bcol-plie .v{writing-mode:vertical-rl;transform:rotate(180deg);font:700 13.5px/1 var(--f-body);letter-spacing:.02em}
.bcol-plie .c{font:700 12px/1 var(--f-mono);color:#04694a;background:#d7f3ee;border-radius:999px;padding:4px 7px}
.bcol-plie.over{outline:2px dashed #4338ca;outline-offset:-3px}
.bcol-h .replier{all:unset;margin-left:auto;cursor:pointer;color:#6b7280;display:inline-flex;padding:2px;border-radius:5px}
.bcol-h .replier:hover{background:#dfe3ea;color:#1f2433}
.amettre{display:flex;gap:8px;align-items:flex-start;background:#f7f2ff;border:1px solid #e3d5fb;border-radius:9px;padding:8px 10px;font-size:12.5px;color:#4c1d95}
.amettre>span{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;min-width:0}
.amettre b{width:100%;font-weight:700}
.amettre .lnk2{font-size:12.5px;color:#5b21b6;text-decoration:underline dotted}

/* ── Fiche : développement relié au code, relance de l'école ── */
.lk.devc{white-space:normal;align-items:flex-start;line-height:1.45;max-width:100%}
.lk.devc>span{min-width:0}
.lk.devc code{font:600 11px/1 var(--f-mono);background:#f1f2f6;border-radius:4px;padding:2px 5px;margin-left:2px}
.lk.devc b{font-family:var(--f-body);font-size:12.5px}
.lk.devc b.ok{color:#04694a}
.lk.devc b.ko{color:#9a3412}
.lk.devc .sbtn{margin-left:8px;padding:2px 8px;vertical-align:middle}
.lk.relance{white-space:normal;flex-wrap:wrap;gap:6px 8px}
.lk.relance .sbtn{padding:2px 8px}

/* ── Fiche : la proposition de correctif et l'atelier, en tête du fil ── */
.cor{border-bottom:1px solid #e6e1fb;background:linear-gradient(180deg,#fbfaff,#fff);padding:12px 18px;display:flex;flex-direction:column;gap:10px;max-height:48vh;overflow:auto;flex:none}
.cor-vide{flex-direction:row;align-items:center;gap:12px;color:#4c1d95;background:#faf8ff}
.cor-vide>span{flex:1;font-size:13px;line-height:1.45;color:#3b3f55}
.cor-vide b{display:block;color:#4c1d95;font-size:13.5px}
.cor-att{flex-direction:row;align-items:flex-start;gap:10px;background:#f6f3ff}
.cor-att>span{font-size:13px;color:#3b3f55;line-height:1.45}
.cor-att b{display:block;color:#5b21b6}
.cor-att small{display:block;color:#6b7280;margin-top:2px}
.cor .pulse,.cor-att-l .pulse{width:9px;height:9px;border-radius:50%;background:#7c3aed;animation:pulse 1.4s infinite;flex:none;margin-top:5px;display:inline-block}
.cor-h{display:flex;align-items:center;gap:8px}
.cor-h b{font-size:14px;color:#1f2433}
.cor-h small{color:#6b7280;font-size:12px}
.cor-h .x{margin-left:auto;all:unset;cursor:pointer;color:#6b7280;padding:2px 6px;border-radius:5px;margin-left:auto}
.cor-h .x:hover{background:#eef0f4}
.cor-nat{font:700 11px/1 var(--f-body);letter-spacing:.04em;text-transform:uppercase;border-radius:6px;padding:5px 7px}
.n-reg{background:#e0ecff;color:#1d4ed8}.n-don{background:#dcf5ee;color:#0f766e}.n-dev{background:#efe7fd;color:#6d28d9}.n-exp{background:#fdf0dc;color:#b45309}.n-dec{background:#fde8ea;color:#b4142f}
.cor-cause p{margin:0;font-size:13.5px;line-height:1.5;color:#1f2433}
.cor-preuve{display:flex;gap:6px;align-items:flex-start;margin-top:6px;font-size:12.5px;color:#4b5563;background:#f4f6fa;border-radius:8px;padding:7px 9px;line-height:1.45}
.cor-preuve .ic{flex:none;margin-top:2px}
.cor-et{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:8px}
.cor-et li{font-size:13px;color:#1f2433;line-height:1.45}
.cor-et li>small{display:block;color:#5b21b6;font:500 12px/1.4 var(--f-mono)}
.avap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:6px}
.avap>div{border-radius:8px;padding:7px 9px;font-size:12.5px;white-space:pre-wrap;line-height:1.45;max-height:220px;overflow:auto}
.avap em{display:block;font:700 10.5px/1 var(--f-body);letter-spacing:.06em;text-transform:uppercase;font-style:normal;margin-bottom:4px}
.avap .va{background:#fff4f4;border:1px solid #f6d2d6;color:#5f2a30}.avap .va em{color:#b4142f}
.avap .vp{background:#effaf5;border:1px solid #bfe8d6;color:#14432f}.avap .vp em{color:#04694a}
.cor-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:#5b6475}
.cor-meta span{display:inline-flex;align-items:center;gap:5px}
.cor-b{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sbtn.gros{padding:8px 16px;font-size:13.5px}
.cor-att-l{display:inline-flex;align-items:flex-start;gap:8px;font-size:12.5px;color:#5b21b6;line-height:1.45}
.cor-ok{display:inline-flex;gap:6px;align-items:flex-start;font-size:13px;color:#04694a;line-height:1.45}
.cor-ko{flex-basis:100%;font-size:12.5px;color:#9a3412;background:#fff7f0;border:1px solid #f3c9a6;border-radius:8px;padding:7px 9px;line-height:1.45}
.cor-fait{background:linear-gradient(180deg,#f3fbf7,#fff);border-bottom-color:#cdeedd}
.cor-echec,.cor-conflit{background:#fffaf5;border-bottom-color:#f3d6bd}
.cor-aj{display:flex;flex-direction:column;gap:6px}
.cor-aj textarea{min-height:70px;border:1px solid #d6dae2;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px;resize:vertical}
.cor-aj .sbtn{align-self:flex-start}
.cor-capt{display:flex;gap:8px;flex-wrap:wrap}
.vign{all:unset;cursor:zoom-in;display:flex;flex-direction:column;gap:4px;width:180px;border:1px solid #e1e4ee;border-radius:9px;overflow:hidden;background:#fff}
.vign img{width:100%;height:104px;object-fit:cover;object-position:top;display:block;background:#f1f2f6}
.vign span{font-size:11.5px;color:#4b5563;padding:0 8px 6px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.vign:hover{border-color:#a5b4fc;box-shadow:0 4px 14px rgba(67,56,202,.12)}
.at-f{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}
.at-f li{display:flex;gap:8px;align-items:baseline;font-size:12.5px;color:#374151;flex-wrap:wrap}
.at-f code{font:600 11.5px/1.3 var(--f-mono);background:#f1f2f6;border-radius:4px;padding:2px 6px;color:#1f2433}
.capt-g{width:min(1280px,100%)}
.capt-g img{width:100%;display:block;border-radius:0 0 14px 14px}
pre.df,pre.df-stat{margin:0;font:12px/1.5 var(--f-mono);background:#0e1522;color:#d6deeb;border-radius:10px;padding:12px 14px;overflow:auto;max-height:62vh;white-space:pre}
pre.df-stat{background:#f4f6fa;color:#374151;max-height:none}
.df-a{color:#7ee2a8}.df-s{color:#ff9aa6}.df-h{color:#8ab4ff}.df-f{color:#c4b5fd;font-weight:700}.df-t{color:#fde68a;font-weight:700}
@media (max-width:900px){.avap{grid-template-columns:minmax(0,1fr)}.cor{padding:10px 12px;max-height:none}.cor-vide{flex-wrap:wrap}}
.et-ty{display:inline-block;font:700 10px/1 var(--f-body);letter-spacing:.05em;text-transform:uppercase;border-radius:5px;padding:3px 6px;margin-right:6px;vertical-align:1px}
.ty-reglage{background:#e0ecff;color:#1d4ed8}.ty-donnees{background:#dcf5ee;color:#0f766e}.ty-developpement{background:#efe7fd;color:#6d28d9}.ty-verification{background:#f1f2f6;color:#4b5563}
.cor+.cor{border-top:1px dashed #e6e1fb}
details.cor-preuve{display:block}
details.cor-preuve summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-weight:600;color:#4338ca;list-style:none}
details.cor-preuve summary::-webkit-details-marker{display:none}
details.cor-preuve[open] summary{margin-bottom:6px}
details.cor-preuve span{display:block;white-space:pre-wrap}
.cor .cor-b{position:sticky;bottom:-12px;background:linear-gradient(180deg,rgba(255,255,255,0),#fff 30%);padding:10px 0 4px;margin-top:-4px}
.cor-fait .cor-b{background:none;position:static}
.ty-mise_en_ligne{background:#fdf0dc;color:#b45309}
