:root{--red:#E20303;--ink:#111;--mut:#6b6b6b;--line:#e6e6e6;--bg:#f6f6f6}
*{box-sizing:border-box}body{margin:0;font:16px/1.45 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;color:var(--ink);background:var(--bg)}
a{color:var(--ink)}a:hover{color:var(--red)}
.top{background:#000;color:#fff;display:flex;align-items:center;gap:1rem;padding:.7rem 1rem;flex-wrap:wrap;position:sticky;top:0;z-index:5}
.brand{color:#fff;text-decoration:none;font-weight:800;font-size:1.2rem}.brand span{color:var(--red)}.brand small{font-weight:400;color:#aaa;font-size:.8rem}
.top nav{display:flex;gap:.2rem;flex-wrap:wrap;margin-left:auto}.top nav a{color:#fff;text-decoration:none;padding:.4rem .6rem;border-radius:6px;font-size:.93rem}
.top nav a:hover{background:var(--red);color:#fff}.top nav a.muted{color:#aaa}
.burger{display:none;margin-left:auto;font-size:1.5rem;cursor:pointer}
.wrap{max-width:1180px;margin:0 auto;padding:1rem}
h1{font-size:1.6rem;margin:.3rem 0 1rem}h2{font-size:1.15rem;margin:0 0 .7rem}h3{margin:0 0 .5rem;font-size:1rem}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:1rem;margin-bottom:1rem}
.card.narrow{max-width:420px;margin:3rem auto}
.head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap}.head h1,.head h2{margin-bottom:.5rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.grid2>.card,.grid3>.card{margin-bottom:0}.grid2{margin-bottom:1rem}
.stat{border-top:4px solid var(--red)}.nums{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem;text-align:center}
.nums b{display:block;font-size:1.5rem}.nums small{color:var(--mut);font-size:.75rem}
.nums4{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem;margin:.6rem 0}.nums4 b{display:block}.nums4 small{color:var(--mut)}
.btn{display:inline-block;background:var(--red);color:#fff;border:0;border-radius:7px;padding:.6rem 1rem;font-weight:600;font-size:.95rem;cursor:pointer;text-decoration:none}
.btn:hover{background:#b80202;color:#fff}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--ink)}.btn.ghost:hover{background:#000;color:#fff}
.btn.sm{padding:.35rem .7rem;font-size:.85rem}
.form{display:flex;flex-direction:column;gap:.7rem}.form.cols,.cols{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.full{grid-column:1/-1}
label{display:flex;flex-direction:column;font-size:.85rem;font-weight:600;gap:.25rem}label.check{flex-direction:row;align-items:center;font-weight:400}
input,select,textarea{font:inherit;padding:.55rem .6rem;border:1px solid #ccc;border-radius:7px;background:#fff;width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid var(--red);border-color:var(--red)}input[type=checkbox]{width:auto}
.inline{display:flex;gap:.4rem;margin:.6rem 0;flex-wrap:wrap}.inline input{flex:1;min-width:140px}.inline select{width:auto}
.actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1rem}.actions input{flex:1 1 100%}
.search{display:flex;gap:.4rem;margin-bottom:1rem}
.list{display:flex;flex-direction:column}.row{display:flex;justify-content:space-between;gap:.8rem;padding:.65rem .3rem;border-bottom:1px solid var(--line);text-decoration:none;color:inherit}
.row:last-child{border-bottom:0}a.row:hover{background:#fafafa}.row.late{border-left:3px solid var(--red);padding-left:.6rem}
.row-main{display:flex;flex-direction:column;min-width:0}.row-main small,.row-side small{color:var(--mut)}.row-side{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap;justify-content:flex-end;text-align:right}
.badge{display:inline-block;padding:.1rem .5rem;border-radius:99px;font-size:.75rem;font-weight:600;background:#eee;white-space:nowrap}
.st-a_faire{background:#eee}.st-en_cours{background:#000;color:#fff}.st-a_approuver{background:#fff;color:var(--red);border:1px solid var(--red)}.st-termine{background:#e9f6ea;color:#1d6b2a}
.pr-haute{background:#ffe3e3;color:var(--red)}.pr-urgente{background:var(--red);color:#fff}.pr-basse{background:#f4f4f4;color:var(--mut)}.pr-normale{display:none}
.chip{display:inline-block;background:#000;color:#fff;border-radius:5px;padding:.05rem .45rem;font-size:.75rem;margin:.1rem}
.red{color:var(--red)!important}.muted{color:var(--mut)}.small{font-size:.85rem}.empty{color:var(--mut);font-style:italic;padding:.3rem 0}
.flash{padding:.7rem 1rem;border-radius:7px;margin-bottom:1rem;background:#000;color:#fff}.flash.error{background:var(--red)}
.tabs{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:1rem}.tabs a{padding:.4rem .8rem;border-radius:99px;border:1px solid #ccc;text-decoration:none;font-size:.9rem;background:#fff}.tabs a.on{background:#000;color:#fff;border-color:#000}
.kanban{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:.7rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:1rem}
.col{background:#ececec;border-radius:10px;padding:.6rem;min-height:120px}.col h3{display:flex;justify-content:space-between;border-bottom:3px solid var(--red);padding-bottom:.3rem}
.col h3 span{background:#000;color:#fff;border-radius:99px;padding:0 .5rem;font-size:.8rem}
.kcard{background:#fff;border-radius:8px;padding:.6rem;margin-bottom:.5rem;box-shadow:0 1px 2px #0001;display:flex;flex-direction:column;gap:.2rem}.kcard a{text-decoration:none}.kcard small{color:var(--mut)}
.move select{font-size:.8rem;padding:.25rem}
.bar{height:8px;background:#eee;border-radius:99px;overflow:hidden;min-width:80px;flex:1}.bar span{display:block;height:100%;background:var(--red)}
.hist{list-style:none;padding:0;margin:0}.hist li{border-left:2px solid var(--red);padding:.2rem 0 .5rem .7rem}.hist small{color:var(--mut)}
.meta{display:grid;grid-template-columns:max-content 1fr;gap:.3rem 1rem;margin:.5rem 0}.meta dt{color:var(--mut)}.meta dd{margin:0}
.checks,.links{list-style:none;padding:0;margin:0}.checks li,.links li{display:flex;align-items:center;gap:.5rem;padding:.35rem 0;border-bottom:1px solid var(--line)}
.chk{width:24px;height:24px;border:2px solid #000;border-radius:5px;background:#fff;cursor:pointer;font-weight:700;padding:0}.chk.on{background:var(--red);border-color:var(--red);color:#fff}
.done{text-decoration:line-through;color:var(--mut)}.x{margin-left:auto}.x button{border:0;background:none;font-size:1.2rem;color:var(--mut);cursor:pointer}
details>summary{cursor:pointer;font-weight:600}details[open]>summary{margin-bottom:.7rem}.more{display:inline-block;margin-top:.5rem;font-size:.9rem}
code{background:#f0f0f0;padding:.05rem .3rem;border-radius:4px}.foot{text-align:center;color:var(--mut);font-size:.8rem;padding:1rem}
@media(max-width:760px){.grid2,.grid3,.cols,.form.cols{grid-template-columns:1fr}.nums4{grid-template-columns:1fr 1fr}
.burger{display:block;margin-left:0}.top nav{display:none;width:100%;flex-direction:column}#nav-t:checked~nav{display:flex}
.row{flex-direction:column;gap:.3rem}.row-side{justify-content:flex-start;text-align:left}.kanban{grid-template-columns:repeat(5,80%)}h1{font-size:1.35rem}}
/* paramètres + menu utilisateur */
.ico{vertical-align:-3px}.gear-link{font-weight:600}
.logo{max-height:34px;max-width:180px;vertical-align:middle;background:#fff;border-radius:4px;padding:2px}
.av{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--red);color:#fff;font-weight:700;object-fit:cover;flex:none}
.av.lg{width:72px;height:72px;font-size:1.8rem}
.umenu{position:relative}.umenu summary{list-style:none;display:flex;align-items:center;gap:.4rem;cursor:pointer;color:#fff}.umenu summary::-webkit-details-marker{display:none}
.umenu-pop{position:absolute;right:0;top:42px;background:#fff;color:var(--ink);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px #0002;min-width:220px;padding:.6rem;display:flex;flex-direction:column;z-index:10}
.umenu-pop small{color:var(--mut);margin-bottom:.4rem}.umenu-pop a{text-decoration:none;padding:.45rem .4rem;border-radius:6px}.umenu-pop a:hover{background:#f3f3f3;color:var(--red)}
.settings{display:grid;grid-template-columns:230px 1fr;gap:1rem;align-items:start}
.snav{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.6rem;display:flex;flex-direction:column}
.snav a{text-decoration:none;padding:.45rem .6rem;border-radius:6px;font-size:.93rem}.snav a.on{background:#000;color:#fff}.snav a:hover:not(.on){background:#f3f3f3}
.slabel{margin:.6rem .6rem .2rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);font-weight:700}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.8rem}
.tile{background:#fff;border:1px solid var(--line);border-left:4px solid var(--red);border-radius:10px;padding:1rem;text-decoration:none;display:flex;flex-direction:column;gap:.3rem}.tile small{color:var(--mut)}
.photo-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.logo-prev{max-height:60px;max-width:200px;border:1px solid var(--line);border-radius:6px;padding:4px}.logo-prev.empty{padding:1rem;color:var(--mut)}
fieldset{border:1px solid var(--line);border-radius:8px;padding:.7rem;display:flex;flex-direction:column;gap:.4rem}legend{font-weight:700;padding:0 .3rem}
input[type=color]{width:46px;height:38px;padding:2px;flex:none}
.brow,.strow{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;padding:.5rem 0;border-bottom:1px solid var(--line)}.brow input:not([type]),.strow input:not([type]){flex:1;min-width:140px;width:auto}
.brow.off{opacity:.55}.pos{width:1.6rem;text-align:center;font-weight:700;color:var(--mut)}
.mv{display:flex;gap:.2rem;margin-left:auto}.mv button{border:1px solid #ccc;background:#fff;border-radius:6px;width:32px;height:32px;cursor:pointer}.mv button:disabled{opacity:.3;cursor:default}
.stlist{margin-bottom:1rem}
@media(max-width:760px){.settings{grid-template-columns:1fr}.uname{display:none}.umenu{order:2}.burger{order:3;margin-left:.5rem}.top nav{order:4}.top .brand{margin-right:auto}}
/* phase 2 */
.bell{position:relative;color:#fff;text-decoration:none;font-size:1.15rem;padding:.2rem .3rem}.bell span{position:absolute;top:-4px;right:-6px;background:var(--red);color:#fff;border-radius:99px;font-size:.68rem;padding:0 .35rem;font-weight:700}
.mention{color:var(--red)}.inline{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.nowrap{white-space:nowrap}.sep{width:1px;background:#ccc;margin:0 .3rem}
.linkbtn{background:none;border:0;text-align:left;font:inherit;cursor:pointer;padding:0;color:inherit;width:100%}.notif.unread{border-left:3px solid var(--red);padding-left:.6rem;background:#fff7f7}
.tbl{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.92rem}th,td{padding:.5rem .45rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
th{font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--mut)}td.num,th.num{text-align:right;white-space:nowrap}tr.off{opacity:.5}tr.late td:first-child{border-left:3px solid var(--red)}
tfoot td{font-weight:600}tfoot tr.total td{background:var(--red);color:#fff;font-size:1.05rem}
table.lines input{width:100%;padding:.35rem}table.lines input.n{width:6.5rem;text-align:right}table.lines input[type=checkbox]{width:auto}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.35rem}
.ds-brouillon{background:#eee}.ds-envoyee{background:#000;color:#fff}.ds-acceptee,.ds-payee{background:#e9f6ea;color:#1d6b2a}.ds-refusee,.ds-annulee{background:#f4f4f4;color:var(--mut);text-decoration:line-through}
.timer{border-left:4px solid var(--red);display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.week{display:grid;grid-template-columns:repeat(8,1fr);gap:.4rem;margin:.6rem 0 1rem;text-align:center}.week>div{background:#f6f6f6;border-radius:8px;padding:.4rem}.week b{display:block}.week small{color:var(--mut)}.week .today{outline:2px solid var(--red)}.week .tot{background:#000;color:#fff}.week .tot small{color:#ccc}
.cal{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden}.calhead,.calweek{display:grid;grid-template-columns:repeat(7,1fr)}
.calhead div{background:#000;color:#fff;padding:.4rem;font-size:.8rem;font-weight:700;text-align:center}
.calday{min-height:96px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);padding:.25rem;display:flex;flex-direction:column;gap:2px;min-width:0}
.calday.out{background:#fafafa;color:#bbb}.calday.today{background:#fff3f3}.calday.today .dn{background:var(--red);color:#fff;border-radius:99px;padding:0 .4rem}
.dn{font-size:.8rem;font-weight:700;align-self:flex-start}.dn em{display:none;font-style:normal}
.ev{display:block;font-size:.74rem;line-height:1.25;padding:1px 4px;border-radius:4px;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid #000;background:#f1f1f1}
.ev.done{opacity:.45;text-decoration:line-through}.ev.late{background:#ffe3e3}
.k-task{border-color:#000}.k-ms{border-color:var(--red)}.k-proj{border-color:#7B2CBF}.k-inv{border-color:#1d6b2a}
.legend{margin-left:auto;font-size:.8rem;color:var(--mut);display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-left:4px solid;margin-right:2px}
.hbar{display:grid;grid-template-columns:minmax(90px,30%) 1fr auto;gap:.5rem;align-items:center;margin:.3rem 0;font-size:.9rem}.hbar .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.track{height:12px;background:#eee;border-radius:99px;overflow:hidden}.track span{display:block;height:100%;background:var(--red);border-radius:99px}
.vbars{display:grid;grid-template-columns:repeat(12,1fr);gap:.3rem;align-items:end;height:170px;margin-bottom:.4rem}.vb{display:flex;flex-direction:column;align-items:center;height:100%}
.vbt{flex:1;width:100%;display:flex;gap:2px;align-items:flex-end;justify-content:center}.vbt span{width:42%;border-radius:3px 3px 0 0;min-height:1px}.vb small{font-size:.68rem;color:var(--mut);white-space:nowrap}
.b{background:#000}.p{background:var(--red)}.sw{display:inline-block;width:12px;height:12px;border-radius:2px;vertical-align:-1px;margin:0 .2rem 0 .6rem}
@media(max-width:760px){.calhead{display:none}.calweek{grid-template-columns:1fr}.calday{min-height:0;border-right:0}.calday:not(.has){display:none}.calday.out{display:none}
.dn em{display:inline}.ev{white-space:normal;font-size:.85rem;padding:3px 6px}.week{grid-template-columns:repeat(4,1fr)}.vbars{height:120px}.legend{margin-left:0}
.bell{order:1;margin-left:auto}}
.legend i.k-task{border-color:#000}.legend i.k-ms{border-color:var(--red)}.legend i.k-proj{border-color:#7B2CBF}.legend i.k-inv{border-color:#1d6b2a}
@media(min-width:761px){.top nav a{padding:.35rem .45rem;font-size:.88rem}}
.ds-partielle{background:#fff4d6;color:#7a5200}
.warn{padding:.7rem 1rem;border-radius:7px;background:#fff4d6;border:1px solid #e8c766;margin:.6rem 0}
.paybox{max-width:640px;margin:1.5rem auto}.paybox .total{font-size:1.6rem;font-weight:700}
.secret-set{color:#1d6b2a;font-size:.8rem}
/* Phase 3 — Qasika */
.stat.q{border-top-color:#7B2CBF}.q-link{font-weight:600}
.hs-candidat{background:#eee}.hs-integration{background:#fff3cd}.hs-actif{background:#d9f7e3;color:#0a6b2e}.hs-pause{background:#ffe1e1;color:#a40000}.hs-parti{background:#222;color:#fff}
.ps-brouillon{background:#eee}.ps-approuve{background:#fff3cd}.ps-paye{background:#d9f7e3;color:#0a6b2e}.ps-annule{background:#222;color:#fff}
.hhead{display:flex;gap:.9rem;align-items:center}.hhead h1{margin:0}.hphoto{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid #7B2CBF;background:#fff}
.hhead.me{margin-bottom:1rem}
.goal{margin:.6rem 0}.glbl{display:flex;justify-content:space-between;font-size:.92rem}.gtrack{height:12px;background:#eee;border-radius:99px;overflow:hidden;margin-top:.25rem}
.gtrack span{display:block;height:100%;background:var(--red);border-radius:99px}.gtrack span.ok{background:#0a8a3a}.okmsg{font-weight:700;color:#0a8a3a}
.post{border-bottom:1px solid var(--line);padding:.6rem 0}.post:last-child{border:0}.post p{margin:.3rem 0;white-space:pre-line}
.qnav{margin-bottom:.8rem}
@media(max-width:760px){.hphoto{width:52px;height:52px}.tbl table{font-size:.85rem}}
/* Phase 3 — commandes, maquettes, production */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.6rem;margin-bottom:.8rem}
.stats .stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.7rem;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.stats .stat b{font-size:1.4rem}.stats .stat small{color:var(--mut)}.stats .stat.alert{border-top-color:#000;background:#fff2f2}
.steps{display:flex;flex-wrap:wrap;gap:.3rem;margin:.4rem 0 1rem}.steps form{margin:0}
.step{border:1px solid #bbb;background:#fff;border-radius:99px;padding:.3rem .75rem;font-size:.82rem;cursor:pointer}.step.on{font-weight:700;border-color:#000}
button.link{background:none;border:0;padding:0;color:inherit;cursor:pointer;text-decoration:underline;font:inherit}
.kcard.late{border-left:4px solid var(--red)}
.pf-approuve{background:#1a7f37;color:#fff}.pf-modifs{background:#E20303;color:#fff}.pf-en_attente{background:#000;color:#fff}
.proofimg{max-width:100%;border:1px solid var(--line);border-radius:8px;background:#fafafa}
.proofframe{width:100%;height:70vh;border:1px solid var(--line);border-radius:8px}
.chk{display:flex;gap:.4rem;align-items:center;margin:.15rem 0}.chk button{background:none;border:0;font-size:1.1rem;cursor:pointer;padding:0}
.chk.done span{text-decoration:line-through;color:var(--mut)}
.bar{height:6px;background:#eee;border-radius:9px;overflow:hidden}.bar i{display:block;height:100%;background:var(--red)}
.wfgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.7rem;margin-bottom:1rem}
.wfgrid a.card{text-decoration:none;color:inherit;margin:0}.wfgrid a.card:hover{border-color:var(--red)}
.comment{border-left:3px solid #ccc;padding:.3rem .6rem;margin:.4rem 0}.comment.client{border-color:var(--red)}
@media (max-width:700px){.stats{grid-template-columns:1fr 1fr}.proofframe{height:55vh}}

/* v4d : en-tête sur une ligne jusqu'à 761px */
.hubh{font-size:1rem;margin:1.1rem 0 .5rem;text-transform:uppercase;letter-spacing:.04em;color:#555}.hubh:first-child{margin-top:0}
.top nav a.on{background:var(--red)}
@media(min-width:761px){.top{flex-wrap:nowrap}.top nav{flex-wrap:nowrap;min-width:0}.top nav a{white-space:nowrap}}
@media(min-width:761px) and (max-width:1440px){.top{gap:.5rem;padding:.6rem .7rem}.top nav{gap:0}.top nav a{padding:.32rem .36rem;font-size:.82rem}.top .brand small,.uname{display:none}}
@media(min-width:761px) and (max-width:1180px){.burger{display:block;margin-left:auto}.top{flex-wrap:wrap}.top nav{display:none;width:100%;flex-wrap:wrap;order:5}#nav-t:checked~nav{display:flex}}

/* ===== v5 : menu latéral façon Bitrix24 ===== */
:root{--side:228px;--side-mini:60px;--toph:54px}
.top{flex-wrap:nowrap!important;height:var(--toph);padding:0 .9rem!important;gap:.7rem!important}
.top .brand{flex:none}
.has-side .burger{display:block;background:none;border:0;color:#fff;font-size:1.35rem;cursor:pointer;padding:.2rem .4rem;margin:0;order:0}
@media(min-width:901px){.has-side .burger{display:none}}
.gsearch{position:relative;flex:1;max-width:520px;margin-left:1rem}
.gsearch input{width:100%;background:#1c1c1c;border:1px solid #333;color:#fff;border-radius:999px;padding:.45rem .9rem .45rem 2rem;font-size:.9rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24'%3E%3Cpath fill='%23aaa' d='M10 2a8 8 0 0 1 6.3 12.9l5.4 5.4-1.4 1.4-5.4-5.4A8 8 0 1 1 10 2Zm0 2a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:.7rem center}
.gsearch input:focus{outline:2px solid var(--red);background-color:#000}
.gres{position:absolute;top:calc(100% + 6px);left:0;right:0;background:#fff;color:#111;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:.4rem;max-height:70vh;overflow:auto;z-index:30}
.gres a{display:block;padding:.4rem .6rem;border-radius:6px;text-decoration:none;color:#111;font-size:.9rem}.gres a:hover{background:#f3f3f3}
.gres small{color:#777}.gres .gg{margin:.4rem .6rem .1rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--red);font-weight:700}
.gres .gall{border-top:1px solid #eee;margin-top:.3rem;font-weight:600}
.create{position:relative}.create summary{list-style:none;cursor:pointer;white-space:nowrap}.create summary::-webkit-details-marker{display:none}
.create-pop{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.25);padding:.35rem;min-width:200px;z-index:30;display:flex;flex-direction:column}
.create-pop a{color:#111;text-decoration:none;padding:.45rem .7rem;border-radius:6px;font-size:.9rem}.create-pop a:hover{background:var(--red);color:#fff}
.wd{margin:0 0 0 auto}.wd-btn{background:none;border:1px solid #444;color:#fff;border-radius:999px;padding:.35rem .8rem;font-size:.82rem;cursor:pointer;white-space:nowrap}
.wd-btn:hover{border-color:var(--red)}.wd-btn.on{background:var(--red);border-color:var(--red)}
.top .bell{margin-left:0}.top .umenu{flex:none}
.side{position:fixed;top:var(--toph);left:0;bottom:0;width:var(--side);background:#111;color:#ddd;display:flex;flex-direction:column;z-index:20;transition:width .15s;overflow:hidden}
.side nav{flex:1;overflow-y:auto;padding:.5rem .45rem;display:flex;flex-direction:column}
.side .sg{margin:.8rem .55rem .25rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#888;white-space:nowrap}
.side .sg:first-child{margin-top:.2rem}
.si{display:flex;align-items:center;gap:.6rem;padding:.48rem .55rem;border-radius:8px;color:#e8e8e8;text-decoration:none;font-size:.9rem;white-space:nowrap;background:none;border:0;cursor:pointer;width:100%;text-align:left;font-family:inherit;position:relative}
.si:hover{background:#262626;color:#fff}.si.on{background:var(--red);color:#fff;font-weight:600}
.si-ic{width:1.4rem;text-align:center;flex:none;font-size:1.05rem}.si-l{flex:1;overflow:hidden;text-overflow:ellipsis}
.cnt{background:var(--red);color:#fff;border-radius:999px;font-size:.7rem;font-weight:700;min-width:1.3rem;height:1.3rem;display:inline-flex;align-items:center;justify-content:center;padding:0 .35rem}
.si.on .cnt{background:#fff;color:var(--red)}
.side-foot{border-top:1px solid #262626;padding:.4rem .45rem}
.has-side main.wrap,.has-side .foot{margin-left:calc(var(--side) + 1.2rem);max-width:none;margin-right:1.2rem;transition:margin .15s}
html.nav-mini .side{width:var(--side-mini)}
html.nav-mini .si-l,html.nav-mini .side .sg{display:none}
html.nav-mini .side .sg+.si,html.nav-mini .side nav .si{justify-content:center}
html.nav-mini .cnt{position:absolute;top:2px;right:2px;min-width:1rem;height:1rem;font-size:.6rem;padding:0 .2rem}
html.nav-mini .side nav .sg{display:block;height:1px;background:#2a2a2a;margin:.45rem .3rem;font-size:0}
html.nav-mini #navMini .si-ic{transform:scaleX(-1)}
html.nav-mini .has-side main.wrap,html.nav-mini .has-side .foot{margin-left:calc(var(--side-mini) + 1.2rem)}
.side-back{display:none}
.navcfg .row-act{display:flex;gap:.25rem;flex-wrap:wrap;align-items:center}
@media(max-width:1100px){.wd-btn span{display:none}.gsearch{margin-left:.3rem}}
@media(max-width:900px){
  .side{transform:translateX(-100%);width:min(82vw,290px)!important;transition:transform .2s;box-shadow:8px 0 30px rgba(0,0,0,.35)}
  body.nav-open .side{transform:none}
  html.nav-mini .si-l,html.nav-mini .side .sg{display:revert}
  body.nav-open .side-back{display:block;position:fixed;inset:var(--toph) 0 0 0;background:rgba(0,0,0,.45);z-index:15}
  .has-side main.wrap,.has-side .foot,html.nav-mini .has-side main.wrap,html.nav-mini .has-side .foot{margin-left:auto;margin-right:auto;max-width:1100px}
  #navMini{display:none}
  .top .brand small{display:none}
}
@media(max-width:640px){.gsearch{max-width:none}.gsearch input{padding-left:1.9rem;font-size:.85rem}.create summary{padding:.3rem .55rem}.wd{margin-left:0}.uname{display:none}
  .gres{position:fixed;left:.5rem;right:.5rem;top:calc(var(--toph) + 4px)}}
@media(max-width:640px){.cr-l{display:none}.top{gap:.35rem!important;padding:0 .5rem!important}.gsearch{min-width:0}}
@media(max-width:420px){.top .brand{font-size:.9rem}.wd-btn{padding:.3rem .45rem}.top .av{width:28px;height:28px}}

.top{z-index:40!important}
/* ===== v5b : icônes SVG, Plus, glisser-déposer, panneau droit, aide, journée ===== */
.i{width:18px;height:18px;flex:none;vertical-align:-3px}
.i.sm{width:12px;height:12px;vertical-align:-1px}
.si-ic{display:inline-flex;align-items:center;justify-content:center}
.si[draggable]{cursor:grab}.si.dragging{opacity:.45;outline:2px dashed #E20303}
.splus summary{list-style:none;cursor:pointer}.splus summary::-webkit-details-marker{display:none}
.splus[open]>summary{color:#E20303}
.gsearch{position:relative}.gsearch .gs-ic{position:absolute;left:.55rem;top:50%;transform:translateY(-50%);color:#888;pointer-events:none}
.gsearch input{padding-left:2rem!important}
.tbtn{background:none;border:0;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:.2rem;padding:.35rem;border-radius:8px;position:relative;font:inherit;list-style:none}
.tbtn:hover{background:rgba(255,255,255,.12)}.tbtn::-webkit-details-marker{display:none}
.tbtn .b,.bell span{position:absolute;top:-2px;right:-4px;background:#E20303;color:#fff;border-radius:9px;font-size:.65rem;padding:0 .3rem;line-height:1.3rem;min-width:1.1rem;text-align:center}
.bell{position:relative;display:inline-flex}
.help{position:relative}.help-pop{position:absolute;right:0;top:120%;width:300px;background:#fff;color:#111;border:1px solid #ddd;border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.18);padding:.8rem 1rem;z-index:60;font-size:.88rem}
.help-pop strong{color:#E20303}.help-pop ul{margin:.4rem 0 0;padding-left:1.1rem}.help-pop li{margin:.25rem 0}
.wd{display:flex;align-items:center;gap:.25rem}.wd form{margin:0}
.wd-btn.pz{background:#fff;color:#000}
.wd-end{display:inline-flex;padding:.35rem;border-radius:8px;color:inherit}.wd-end:hover{background:rgba(226,3,3,.5)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.rpanel{position:fixed;top:var(--toph);right:0;bottom:0;width:360px;max-width:100vw;background:#fff;border-left:3px solid #E20303;box-shadow:-8px 0 30px rgba(0,0,0,.18);z-index:45;display:flex;flex-direction:column;animation:rpin .18s ease-out}
@keyframes rpin{from{transform:translateX(30px);opacity:.3}to{transform:none;opacity:1}}
.rpanel[hidden]{display:none}
.rp-head{display:flex;border-bottom:1px solid #eee;background:#000}
.rp-tab{flex:1;background:none;border:0;color:#fff;padding:.75rem;font-weight:600;cursor:pointer;border-bottom:3px solid transparent}
.rp-tab.on{border-bottom-color:#E20303}
.rp-x{background:none;border:0;color:#fff;padding:0 .8rem;cursor:pointer}
.rp-body{flex:1;overflow:auto;padding:.6rem}
.rp-bar{display:flex;gap:.6rem;align-items:center;justify-content:space-between;margin-bottom:.5rem;font-size:.85rem}.rp-bar select{width:100%}
.rp-t{font-weight:600;color:#E20303;text-align:right}
.rp-it{display:block;padding:.55rem .6rem;border-radius:8px;color:#111;text-decoration:none;border-bottom:1px solid #f2f2f2;position:relative}
.rp-it:hover{background:#fafafa}.rp-it.unread{border-left:3px solid #E20303;background:#fff6f6}
.rp-it small{display:block;color:#777;font-size:.78rem;margin-top:.15rem}
.rp-it .cnt{position:absolute;right:.5rem;top:.5rem;background:#E20303;color:#fff;border-radius:9px;font-size:.7rem;padding:0 .4rem}
.msgs{display:flex;flex-direction:column;gap:.45rem;max-height:60vh;overflow:auto}
.rp-body .msgs{max-height:none}
.msg{background:#f3f3f3;border-radius:10px;padding:.45rem .65rem;max-width:88%}.msg.mine{align-self:flex-end;background:#000;color:#fff}
.msg p{margin:.15rem 0 0;white-space:pre-wrap;word-wrap:break-word}.msg small{opacity:.6}
.men{color:#E20303;font-weight:600}
.rp-form{display:flex;gap:.4rem;padding:.6rem;border-top:1px solid #eee}.rp-form textarea{flex:1;resize:none}
.rp-form[hidden]{display:none}
.disc{display:grid;grid-template-columns:300px 1fr;gap:1rem}@media(max-width:800px){.disc{grid-template-columns:1fr}}
.tabs a{padding:.3rem .7rem;border-radius:8px;text-decoration:none;color:#111;border:1px solid #ddd}.tabs a.on{background:#000;color:#fff;border-color:#000}
.btn.on{background:#E20303!important;color:#fff!important}
.sform label{margin:0 .4rem}
@media(max-width:900px){.tbtn .tl{display:none}.wd-btn span{display:none}}
@media(max-width:640px){.help-pop{position:fixed;left:.5rem;right:.5rem;top:calc(var(--toph) + 4px);width:auto}.rpanel{width:100vw}.wd-end{display:none}}
/* ===== v6 : assistants (bots) ===== */
.av.bot{background:#000!important;color:#fff!important;display:inline-flex;align-items:center;justify-content:center;border:2px solid #E20303}
.av.bot .i{width:60%;height:60%}
.badge.bot-b,.bot-b{background:#000;color:#fff;border-radius:6px;font-size:.68rem;padding:.05rem .35rem;font-weight:700;letter-spacing:.02em;vertical-align:middle}
.bot-h{display:flex;align-items:center;gap:.7rem}.bot-h h3{margin:0}.bot-h .run{margin-left:auto}
.bot-h .av{width:40px;height:40px;border-radius:50%}
label.botchk{display:flex!important;flex-direction:row!important;align-items:center;gap:.5rem;width:auto;text-align:left!important;font-weight:400!important;flex:1;min-width:0;margin:0}.botchk input{width:18px!important;height:18px;flex:none;margin:0}.botchk+*{flex:none}
/* v7 — base de connaissances, IA */
.msg p a.blink{color:var(--red);word-break:break-all}.kb-art h3,.kb-art h4{margin:.8rem 0 .3rem}.kb-art ul{padding-left:1.2rem}
.msg p{white-space:pre-wrap}
/* v9 — rendez-vous */
.bk-box{max-width:820px;margin:1.2rem auto}.bk-langs{text-align:right}.bk-langs a{margin-left:.5rem;text-decoration:none;color:#000;font-weight:600}.bk-langs a.on{color:#E20303;text-decoration:underline}
.bk-brs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.8rem;margin:1rem 0}.bk-br{display:flex;flex-direction:column;gap:.3rem;border:2px solid #000;border-radius:10px;padding:1rem;text-decoration:none;color:#000}.bk-br:hover{background:#000;color:#fff}
.bk-tabs{display:flex;gap:.4rem;flex-wrap:wrap}.bk-tabs a{border:1px solid #000;border-radius:999px;padding:.3rem .8rem;text-decoration:none;color:#000}.bk-tabs a.on{background:#E20303;border-color:#E20303;color:#fff}
.bk-days{display:grid;grid-template-columns:repeat(7,1fr);gap:.35rem;margin:.8rem 0 .3rem}.bk-day{display:flex;flex-direction:column;align-items:center;border:1px solid #000;border-radius:8px;padding:.35rem 0;text-decoration:none;color:#000}.bk-day b{font-size:1.15rem}.bk-day.on{background:#000;color:#fff}.bk-day.empty{opacity:.4}
.bk-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.4rem;margin-bottom:1rem}.bk-slot input{position:absolute;opacity:0}.bk-slot span{display:block;text-align:center;border:1px solid #E20303;color:#E20303;border-radius:7px;padding:.5rem 0;font-weight:600;cursor:pointer}.bk-slot input:checked+span{background:#E20303;color:#fff}.bk-slot input:focus-visible+span{outline:2px solid #000}
.bk-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.5rem}.bk-cal.jour{grid-template-columns:1fr}.bk-col{min-height:180px;margin:0;padding:.6rem}.bk-col.today{border:2px solid #E20303}.bk-col h3{font-size:.95rem;margin:0 0 .4rem}.bk-col h3 a{color:#000}
.bk-ev{display:block;border-left:4px solid #E20303;background:#f6f6f6;border-radius:5px;padding:.35rem .45rem;margin-bottom:.35rem;text-decoration:none;color:#000;font-size:.86rem}.bk-ev small{display:block;color:#555}
@media(max-width:760px){.bk-cal{grid-template-columns:1fr}.bk-col{min-height:0}.bk-days{gap:.2rem}.bk-day{font-size:.8rem}.bk-fields{grid-template-columns:1fr}}
/* v10 signatures */
.es-st{display:inline-block;padding:.1rem .5rem;border-radius:99px;font-size:.75rem;background:#eee;color:#000}
.es-envoye{background:#fff;border:1px solid #000}.es-vu{background:#fde7e7;color:#E20303}.es-signe{background:#000;color:#fff}
.es-refuse,.es-expire,.es-annule{background:#E20303;color:#fff}
.es-dot{display:inline-block;width:.55rem;height:.55rem;border-radius:50%;background:#ccc}.es-dot.es-signe{background:#000}.es-dot.es-vu{background:#E20303}
.es-tabs{display:flex;flex-wrap:wrap;gap:.4rem}.es-tabs a{padding:.25rem .7rem;border:1px solid #000;border-radius:99px;font-size:.8rem;color:#000;text-decoration:none}
.es-tabs a.on{background:#E20303;border-color:#E20303;color:#fff}
.es-box{max-width:760px;margin:1rem auto}.es-doc{white-space:pre-wrap;border:1px solid #ddd;border-radius:8px;padding:1rem;max-height:340px;overflow:auto;background:#fff;font-size:.9rem}
.es-pad{width:100%;aspect-ratio:3/1;border:2px dashed #000;border-radius:8px;background:#fff;touch-action:none}
.es-hash code{word-break:break-all}.ok-box{background:#000;color:#fff;padding:.8rem 1rem;border-radius:8px}
@media(max-width:700px){.es-tbl th:nth-child(3),.es-tbl td:nth-child(3),.es-tbl th:nth-child(7),.es-tbl td:nth-child(7){display:none}.es-box{margin:.3rem}}
/* QA v10b : tableaux défilants sur mobile, barres de rapports sans débordement */
@media(max-width:700px){table.tbl{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}}
.vbars{grid-template-columns:repeat(12,minmax(0,1fr))}.vb{min-width:0}.vb small{overflow:hidden;text-overflow:clip;max-width:100%}
.es-audit .row{flex-wrap:wrap;gap:.2rem .5rem;overflow-wrap:anywhere}
@media(max-width:700px){.card>table{display:block;overflow-x:auto}}
.grid2>*,.grid3>*{min-width:0}

/* v10d : en-tête mobile sans débordement */
@media(max-width:700px){.top .gsearch{min-width:0;flex:1 1 0}.top .uname{display:none}.top{gap:.3rem}}
@media(max-width:420px){.top{gap:.1rem;padding-left:.4rem;padding-right:.4rem}}
@media(max-width:420px){.top>.help{display:none}}

/* v11 : salons */
.room{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:1rem}.room>*{min-width:0}.room-msgs{max-height:60vh;overflow-y:auto}.botmsg{border-left:3px solid #E20303;padding-left:.5rem}.card-scroll{overflow-x:auto}.chk{display:inline-flex;gap:.3rem;margin-right:.6rem}
@media(max-width:800px){.room{grid-template-columns:1fr}}
/* v11b */
.badge.st-bloquee{background:#111;color:#fff;border:1px solid #E20303}
.deps{border-left:3px solid #E20303;padding:.2rem .6rem;margin:.4rem 0}
.sk-ed{display:flex;flex-direction:column;gap:.6rem;margin:.4rem 0}
.ed-phase{border:1px solid #ddd;border-left:4px solid #E20303;border-radius:8px;padding:.5rem;background:#fff}
.ed-head{display:flex;gap:.3rem;align-items:center}.ed-pname{flex:1;font-weight:700}
.ed-tasks{display:flex;flex-direction:column;gap:.4rem;margin:.4rem 0;min-height:1.5rem}
.ed-task{display:flex;gap:.4rem;align-items:flex-start;border:1px solid #eee;border-radius:6px;padding:.4rem;background:#fafafa}
.ed-task.drag{opacity:.4}.ed-task.over{border-color:#E20303}
.ed-grip{cursor:grab;font-size:1.3rem;padding:.2rem;user-select:none;color:#111}
.ed-fields{flex:1;display:grid;grid-template-columns:2fr 5rem 1.5fr 1fr;gap:.3rem;align-items:end}
.ed-fields label{font-size:.75rem;margin:0}.ed-fields .ed-deps{grid-column:1/-1}
.ed-deps summary{cursor:pointer;font-size:.8rem;color:#E20303}
.ed-btns{display:flex;flex-direction:column;gap:.2rem}
.ed-b{min-width:2.4rem;min-height:2.4rem;padding:.2rem .4rem}
@media (max-width:700px){.ed-fields{grid-template-columns:1fr 1fr}.ed-fields .ed-title{grid-column:1/-1}.ed-task{flex-wrap:nowrap}.ed-grip{display:none}}
.actions .chk,.ed-deps .chk{display:inline-flex!important;align-items:center;gap:.35rem;width:auto!important;flex-direction:row!important;margin:.2rem .6rem .2rem 0;font-weight:400}
.actions .chk input,.ed-deps .chk input{flex:0 0 auto!important;width:1rem!important;height:1rem;padding:0;min-height:0;margin:0}
