:root{--ink:#0f2a3d;--paper:#f3f6f8;--cut:#c81e14;--ok:#157a50;--blue:#0a7ea4;--bar:110px}
*{box-sizing:border-box}
html,body{height:100%;margin:0;font:18px/1.4 system-ui,sans-serif;color:var(--ink)}
#map{height:100%}
button{font:inherit;font-weight:700;border:0;border-radius:12px;padding:12px 16px;min-height:48px;cursor:pointer}
button:disabled{opacity:.5;cursor:not-allowed}

/* barre bleue : état, boutons, recherche */
#bar{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:calc(8px + env(safe-area-inset-top)) 12px 10px;background:var(--ink);color:#fff}
#dot{width:14px;height:14px;border-radius:50%;background:#d33;flex:none}#dot.ok{background:#3c6}
#ttl{font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#bar button{background:var(--surface);color:var(--ink);padding:6px 14px;min-height:44px}
#lcount{display:inline-block;background:var(--cut);color:#fff;border-radius:12px;padding:0 9px;margin-left:4px}
#lcount.zero{background:var(--ok)}
#sf{flex:1 1 100%;min-width:0;max-width:100%;display:flex;gap:8px}
@media(min-width:900px){#sf{flex:0 1 380px;margin-left:auto}}
#sf input{flex:1;min-width:0;width:100%;font:inherit;padding:8px 12px;border:0;border-radius:10px;min-height:46px}
#sf button{background:var(--blue);color:#fff;flex:0 0 auto}
#sres{position:fixed;z-index:1200;left:12px;right:12px;top:calc(var(--bar) + 4px);background:var(--surface);border-radius:10px;box-shadow:0 2px 14px #0006;display:none;max-height:45vh;overflow:auto}
#sres div{padding:13px 14px;border-bottom:1px solid var(--line);cursor:pointer}
#toast{position:fixed;z-index:1600;left:50%;transform:translateX(-50%);top:calc(var(--bar) + 12px);background:#000d;color:#fff;padding:13px 20px;border-radius:12px;max-width:92%;display:none;font-weight:600;text-align:center}

/* commandes de la carte en bas à droite */
.leaflet-bottom.leaflet-right{margin-bottom:calc(150px + env(safe-area-inset-bottom))}
.leaflet-bar a,.leaflet-touch .leaflet-bar a{width:46px;height:46px;line-height:46px;font-size:26px}
#gps{display:block;width:46px;height:46px;padding:0;min-height:0;border:0;border-radius:4px;background:var(--surface);color:var(--ink);font-size:28px;line-height:46px}
.gps-ctl{margin-bottom:10px!important}
#gps.sel{background:var(--blue);color:#fff}

/* actions du bas */
#fab,#tools,#pbar{position:fixed;z-index:1000;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom))}
#fab{background:var(--cut);color:#fff;font-size:21px;min-height:60px;box-shadow:0 2px 10px #0006}
#fab:disabled,#fab.off{background:#8a97a2;color:#e8edf1;opacity:.85;cursor:not-allowed;box-shadow:none;font-size:18px}
#tools{display:none;gap:8px}
#tools button,#pbar button{flex:1;padding:8px 4px;font-size:17px;background:var(--surface);color:var(--ink);border:2px solid var(--ink);box-shadow:0 2px 10px #0006}
#tools .sel{background:var(--blue);color:#fff;border-color:var(--blue)}
#pbar{display:none;gap:8px;bottom:calc(78px + env(safe-area-inset-bottom))}
#pbar #pend{background:var(--ok);color:#fff;border-color:var(--ok)}
#pad{position:fixed;inset:0;z-index:900;touch-action:none;cursor:crosshair;pointer-events:none}

/* formulaire de coupure : défile, boutons toujours visibles */
#sheet{position:fixed;z-index:1100;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-height:calc(100% - var(--bar) - 24px);overflow:auto;display:none;background:var(--paper);border-radius:14px;padding:14px;box-shadow:0 2px 16px #0007}
#sheet label{display:block;margin:10px 0 3px;font-weight:600}
#sheet select,#sheet input{width:100%;font:inherit;padding:10px;border:1px solid var(--line);border-radius:8px;min-height:46px}
#sheet .row{display:flex;gap:8px;margin-top:14px;position:sticky;bottom:-14px;background:var(--paper);padding:8px 0 2px}
#sheet .row button{flex:1}
#ok{background:var(--cut);color:#fff}#no{background:var(--soft);color:var(--ink)}

/* liste : plus courte, ne cache plus les boutons du bas */
#list{position:fixed;z-index:1100;top:var(--bar);bottom:calc(150px + env(safe-area-inset-bottom));right:0;width:min(430px,100%);background:var(--paper);overflow:auto;display:none;box-shadow:-2px 0 12px #0005;padding:10px 14px;border-radius:0 0 0 14px}
#list h3{margin:4px 0}#list h4{margin:16px 0 4px}
.li{padding:11px 10px;margin:8px 0;border-radius:10px;border-left:8px solid;background:var(--surface);cursor:pointer}
.li.cut{border-color:var(--cut)}.li.cut>b{color:var(--cut)}
.li.ok{border-color:var(--ok)}.li.ok>b{color:var(--ok)}
.sm{font-size:16px;margin-top:3px}
.tg{display:inline-block;color:#fff;border-radius:8px;padding:0 8px;font-weight:700}.tg.cut{background:var(--cut)}.tg.ok{background:var(--ok)}
.pop{font-size:17px}.pop .pb{display:flex;gap:8px;margin-top:10px}.pop button{flex:1;padding:10px;background:var(--soft);color:var(--ink)}.pop button.g{background:var(--ok);color:#fff}
.leaflet-popup-content{margin:12px 14px}

/* connexion */
#login{position:fixed;inset:0;z-index:3000;background:var(--ink);display:none;align-items:center;justify-content:center}
#lf{background:var(--paper);padding:24px;border-radius:14px;width:min(360px,92%);display:flex;flex-direction:column;gap:12px}
#lf h2{margin:0 0 4px}#lf input{font:inherit;padding:13px;border:1px solid var(--line);border-radius:8px}
#lf button{background:var(--blue);color:#fff}#lerr{color:var(--cut);margin:0;min-height:1.3em}

/* fenêtres plein écran : historique, administration */
.modal{position:fixed;inset:0;z-index:1500;background:var(--paper);display:none;flex-direction:column}
.mh{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:calc(8px + env(safe-area-inset-top)) 12px 8px;background:var(--ink);color:#fff}
.mh b{font-size:20px;margin-right:auto}.mh button{background:var(--surface);color:var(--ink);padding:6px 14px;min-height:42px}
.tabs{display:flex;gap:6px}.tabs button.sel{background:var(--blue);color:#fff}
.mb{flex:1;overflow:auto;padding:12px}.mf{padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mf button,.mb button{background:var(--blue);color:#fff;padding:8px 14px;min-height:44px}
.mb button.sec{background:var(--soft);color:var(--ink)}.mb button.red{background:var(--cut)}
.nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.nav b{font-size:20px;text-transform:capitalize}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal .wd{text-align:center;font-weight:700;font-size:15px}
.cal button{min-height:58px;padding:2px;background:var(--surface);color:var(--ink);border:2px solid var(--line);font-weight:600}
.cal button.has{border-color:var(--ok)}.cal button.hot{border-color:var(--cut)}.cal button.sel{outline:3px solid var(--blue)}
.cal button i{display:block;font-style:normal;font-size:14px;color:#fff;background:var(--ok);border-radius:8px;margin:2px 4px 0}.cal button.hot i{background:var(--cut)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:8px 0}
.card{background:var(--surface);border-radius:10px;padding:10px;text-align:center}.card b{display:block;font-size:26px}
table{width:100%;border-collapse:collapse;background:var(--surface);border-radius:10px;overflow:hidden;margin:6px 0 14px;font-size:16px}
th,td{padding:8px;border-bottom:1px solid var(--line);text-align:left}th{background:var(--soft)}
.bar1{height:16px;background:var(--blue);border-radius:4px;min-width:2px}
.ag{background:var(--surface);border-radius:12px;padding:12px;margin:10px 0}.ag label{display:inline-flex;align-items:center;gap:6px;margin:4px 12px 4px 0;font-size:16px}
.ag input[type=checkbox]{width:22px;height:22px}.ag select,.ag input[type=text],.ag input:not([type]){font:inherit;padding:9px;border:1px solid var(--line);border-radius:8px;min-height:44px}
.ag .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.pw{background:var(--warn-bg);border:2px solid #e0a800;border-radius:10px;padding:10px;margin:8px 0;word-break:break-all}

/* ===== Réseauxgest : notifications, habitations administratives, légende, formulaires ===== */
#nbtn{position:relative}
#nbadge{display:inline-block;background:var(--cut);color:#fff;border-radius:12px;padding:0 7px;margin-left:3px;font-size:15px}
#nbadge.zero{display:none}
#login form{background:var(--paper);padding:24px;border-radius:14px;width:min(360px,92%);display:flex;flex-direction:column;gap:12px}
#login h2{margin:0 0 4px}#login input{font:inherit;padding:13px;border:1px solid var(--line);border-radius:8px}
#login button{background:var(--blue);color:#fff}#login p{margin:0;min-height:1.3em;color:var(--cut)}#login p.good{color:var(--ok)}
#login a{color:var(--blue);font-size:16px}
#legend{position:fixed;z-index:950;left:10px;top:calc(var(--bar) + 8px);background:var(--surface-a);border-radius:10px;padding:6px 10px;font-size:14px;display:flex;flex-direction:column;gap:3px;box-shadow:0 1px 5px #0004;pointer-events:none}
#legend i{display:inline-block;vertical-align:middle;margin-right:6px}
.lg-cut{width:26px;height:7px;background:var(--cut);border-radius:4px}
.lg-hab{width:16px;height:16px;border:3px dashed var(--cut);border-radius:50%;background:#c81e1422}
.hab-tg{display:inline-block;border:2px dashed var(--cut);color:var(--cut);border-radius:8px;padding:0 8px;font-weight:700}
.hab-tg.cl{border-color:var(--ok);color:var(--ok)}
#hsheet{position:fixed;z-index:1100;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-height:calc(100% - var(--bar) - 24px);overflow:auto;display:none;background:var(--paper);border-radius:14px;padding:14px;box-shadow:0 2px 16px #0007;border-top:6px dashed var(--cut)}
#hsheet label{display:block;margin:10px 0 3px;font-weight:600}
#hsheet select,#hsheet input,#hsheet textarea,#sheet textarea{width:100%;font:inherit;padding:10px;border:1px solid var(--line);border-radius:8px;min-height:46px}
#hsheet .row{display:flex;gap:8px;margin-top:14px}#hsheet .row button{flex:1}
#hok{background:var(--cut);color:#fff}#hno,#hmove{background:var(--soft);color:var(--ink)}
#pickbar{position:fixed;z-index:1050;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:none;gap:8px;align-items:center;background:var(--ink);color:#fff;padding:10px 14px;border-radius:12px;font-weight:600}
#pickbar span{flex:1}#pickbar button{background:var(--surface);color:var(--ink);padding:6px 14px;min-height:42px}
.map-pick,.map-pick .leaflet-interactive{cursor:crosshair!important}
.hab-item{background:var(--surface);border-radius:12px;padding:10px 12px;margin:8px 0;border-left:8px dashed var(--cut);cursor:pointer}
.hab-item.cl{border-color:var(--ok);opacity:.85}
.hab-item .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.hist-l{font-size:15px;margin:2px 0}
.chk{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:17px}.chk input{width:22px;height:22px}
.prefs td,.prefs th{padding:8px}.prefs input{width:24px;height:24px}
.nitem{background:var(--surface);border-radius:10px;padding:10px 12px;margin:8px 0;border-left:8px solid #9ab;cursor:pointer}
.nitem.unread{border-color:var(--blue);background:var(--accent-soft)}.nitem.unread>b::before{content:'● ';color:var(--blue)}
.fld{display:block;margin:10px 0 3px;font-weight:600}
.mb input:not([type=checkbox]),.mb select,.mb textarea{font:inherit;padding:9px;border:1px solid var(--line);border-radius:8px;min-height:44px;max-width:100%}
.badge{display:inline-block;border-radius:8px;padding:0 8px;font-size:14px;font-weight:700;background:var(--soft)}
.badge.off{background:#f3c9c6;color:var(--cut)}.badge.on{background:#cfe8dc;color:var(--ok)}
.ag.off{opacity:.7;border-left:6px solid #888}

#choose{position:fixed;inset:0;z-index:2000;background:#000a;display:none;align-items:flex-end;justify-content:center;padding:12px calc(12px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom))}
#choose .box{background:var(--paper);border-radius:14px;padding:14px;width:min(520px,100%);display:flex;flex-direction:column;gap:10px}
#choose b{font-size:20px}#choose button{text-align:left;color:#fff;font-size:20px}
#choose button small{display:block;font-weight:400;font-size:15px;opacity:.95}
#ctech{background:var(--cut)}#cadm{background:#7a1fa2}#choose .sec{background:var(--soft);color:var(--ink);text-align:center}

#legend{pointer-events:auto;max-width:calc(100% - 20px)}
#legend label{display:flex;align-items:center;gap:6px;cursor:pointer;margin:2px 0}
#legend input{width:20px;height:20px;flex:none}
#fmore{background:var(--soft);color:var(--ink);padding:2px 10px;min-height:34px;font-size:15px;margin-top:4px}
#fmore.act{background:var(--blue);color:#fff}
#fpanel{display:none;margin-top:6px;border-top:1px solid #ccd;padding-top:6px;max-height:42vh;overflow:auto}
#fpanel h5{margin:8px 0 2px;font-size:14px;color:#456}
#fpanel button{background:var(--soft);color:var(--ink);padding:2px 10px;min-height:34px;font-size:15px;margin-top:6px}

.nitem .acts{margin-top:6px}.nitem .ndel{min-height:36px;padding:4px 12px;font-size:15px}

/* statistiques : deux pages, filtres, graphiques simples, menus d'export */
.sth{margin:4px 0 2px;font-size:22px}
.stf{display:flex;flex-wrap:wrap;gap:10px;margin:8px 0;padding:10px;background:var(--surface);border-radius:10px}
.stf label{display:flex;flex-direction:column;font-weight:600;font-size:15px;gap:3px}.stf input,.stf select{min-width:130px}
.bars{background:var(--surface);border-radius:10px;padding:8px 10px;margin:6px 0}.brow{display:flex;align-items:center;gap:8px;margin:2px 0}
.bl2{width:62px;flex:none;font-size:14px}.bt{flex:1;display:flex;flex-direction:column;gap:2px}.bt i{display:block;height:9px;border-radius:3px;min-width:0}
.b0{background:var(--blue)}.b1{background:#2e7d32}.bv{width:56px;text-align:right;font-size:14px;font-weight:600;flex:none}
i.bl{display:inline-block;width:12px;height:12px;border-radius:3px;vertical-align:middle}
.defs{background:var(--surface);border-radius:10px;padding:8px 12px;margin:8px 0}.defs summary{cursor:pointer;font-weight:600}.defs ul{margin:6px 0 2px 16px;padding:0}.defs li{margin:4px 0;font-size:15px}
.xrow{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.xmenu{position:relative;background:var(--surface);border:2px solid var(--blue);border-radius:10px;padding:0}.xmenu summary{cursor:pointer;list-style:none;padding:10px 14px;font-weight:700;color:var(--blue);min-height:24px}
.xmenu summary::after{content:' ▾'}.xmenu[open] summary{border-bottom:1px solid var(--line)}.xlist{display:flex;flex-direction:column;gap:6px;padding:8px;min-width:230px}
.xlist button{background:var(--blue);color:#fff;text-align:left}
.mf .xmenu{background:var(--surface)}

/* ---- Travaux ---- */
#work .mb{padding:10px 12px calc(16px + env(safe-area-inset-bottom))}
#work .tabs{flex-wrap:wrap}
.wcard{background:var(--surface);border-radius:10px;padding:10px 12px;margin:8px 0;border-left:8px solid #9ab;cursor:pointer}
.wcard .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.wcard.in-e{border-color:var(--blue)}.wcard.in-p{border-color:#e0a030}.wcard.in-d{border-color:#3a9a5b}.wcard.in-x{border-color:#999;opacity:.7}
.wcard.as{border-color:#6a4fb0;cursor:default}.wcard.imp{border-color:#c0392b;cursor:default}.wcard.off{opacity:.6}
.wtag{display:inline-block;border-radius:12px;padding:1px 9px;font-size:13px;font-weight:700;background:#e3e9ee;color:var(--ink);margin-left:4px}
.wtag.u{background:#fde3df;color:#a02a1c}.wtag.s-e,.wtag.c-encours{background:#d8eef7;color:#06607f}.wtag.s-d,.wtag.c-termine{background:#dbf1e2;color:#1f6b3a}.wtag.s-p,.wtag.c-planifie{background:#fdf0d4;color:#8a5a00}.wtag.c-suspendu{background:#eee;color:#555}
.wday{margin:16px 0 4px}.wday::first-letter{text-transform:uppercase}
.wbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.wboxes{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px}
.wph{display:flex;flex-wrap:wrap;gap:8px}.wfig{position:relative;margin:0;width:120px;height:120px;background:var(--line);border-radius:8px;overflow:hidden;font-size:13px}
.wfig img{width:100%;height:100%;object-fit:cover;cursor:zoom-in}.wfig button{position:absolute;top:4px;right:4px;min-height:32px;padding:2px 8px}
#wlb{position:fixed;inset:0;z-index:1700;background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;flex-direction:column;gap:10px}
#wlb img{max-width:96vw;max-height:84vh}
#work .nav{display:flex;align-items:center;justify-content:space-between;gap:8px}
#work input,#work select,#work textarea{font-size:16px}
@media(max-width:640px){#work .mh b{flex:1}#work .mh>button{order:1}#work .tabs{order:2;width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}#work .tabs button{flex:0 0 auto;padding:6px 12px}#work .acts button,#work .wbar button{flex:1 1 100%;min-height:46px}#bar #wbtn{order:0}}

/* calendrier de l'historique : jours avec interventions immédiatement repérables */
.cal button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.cal button .dn{font-size:16px}
.cal button.has{background:#e3f4ea;border-color:var(--ok);color:#14532d}.cal button.hot{background:#fde8e6;border-color:var(--cut);color:#8a1c12}
.cal button.has .dn,.cal button.hot .dn{font-weight:800}
.cal button.has::after,.cal button.hot::after{content:'';position:absolute;top:4px;right:4px;width:9px;height:9px;border-radius:50%;background:var(--ok)}.cal button.hot::after{background:var(--cut)}
.cal button i{margin:0;min-width:24px;padding:0 6px;font-weight:700}
.cleg{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;margin-top:6px}.cleg .dot{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid #9ab;vertical-align:-1px}.cleg .dot.has{background:var(--ok);border-color:var(--ok)}.cleg .dot.hot{background:var(--cut);border-color:var(--cut)}
.cal button.wk{box-shadow:inset 0 -5px 0 var(--blue)}.cal button u{text-decoration:none;font-size:13px;font-weight:700;color:#fff;background:var(--blue);border-radius:8px;padding:0 6px;min-width:22px;text-align:center}
.cleg .dot.wk{background:var(--blue);border-color:var(--blue)}.li.wkli{border-left-color:var(--blue)}
/* Fiches Site */
#sites .mb{padding:10px 12px calc(16px + env(safe-area-inset-bottom))}
#sites .mb h4{margin:16px 0 4px}#sites .acts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
.si-item{border-left-style:solid}
@media(max-width:640px){#sites .mh b{flex:1}#sites .mh>button{order:1}#sites .tabs{order:2;width:100%}#sites .tabs button{padding:6px 12px}#sites .acts button{flex:1 1 100%;min-height:46px}#sites .mb select,#sites .mb input:not([type=checkbox]){font-size:16px;width:100%;box-sizing:border-box}}
#info .mb{padding:10px 12px calc(16px + env(safe-area-inset-bottom))}#info .mb h4{margin:16px 0 4px}#info .acts{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}
#info .wbar input{max-width:150px}
@media(max-width:640px){#info .mh b{flex:1}#info .mh>button{order:1}#info .tabs{order:2;width:100%}#info .acts button{flex:1 1 100%;min-height:46px}#info .mb select,#info .mb input:not([type=checkbox]),#info .mb textarea{font-size:16px;max-width:100%;box-sizing:border-box}#info .wbar input{max-width:none;flex:1 1 40%}}

/* ---- Compteurs : relevé, scan, surconsommation ---- */
#meters .mb{padding:10px 12px calc(16px + env(safe-area-inset-bottom))}
.mt-h{margin:16px 0 6px;font-weight:800}.mt-t{margin:12px 0 2px}.mt-mu{color:var(--muted)}
.mt-row{display:flex;gap:8px;align-items:stretch}.mt-row input{flex:1;min-width:0;box-sizing:border-box}
.mt-cam{flex:none;background:var(--accent);color:var(--on-accent);border-radius:12px;padding:0 14px;min-height:48px;font-weight:700}
#meters .acts{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.mt-sel{cursor:default;border-left-style:solid;border-left-color:var(--ok)}
.mt-chk{display:flex;gap:8px;align-items:center;margin:12px 0;font-weight:600}
.mt-ph{margin:8px 0}.mt-ph img{max-width:100%;max-height:150px;border-radius:12px;display:block;margin-bottom:6px}
.mt-b{display:inline-block;border-radius:999px;padding:1px 10px;font-size:14px;font-weight:700;color:#fff;background:var(--muted)}
.mt-b.mt-cut{background:var(--cut)}.mt-b.mt-warn{background:#B77900}.mt-b.mt-ok{background:var(--ok)}
.mt-done{border-radius:14px;padding:12px;margin-top:12px;background:var(--surface);border-left:8px solid var(--ok)}.mt-done.mt-cut{border-color:var(--cut)}.mt-done.mt-warn{border-color:#D49A00}
.mt-chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.mt-chip{border-radius:999px;background:var(--soft);color:var(--ink);padding:6px 14px;min-height:40px}.mt-chip.sel{background:var(--ink);color:var(--paper)}
.mt-item{border-left-style:solid}.mt-l-cut{border-left-color:var(--cut)}.mt-l-warn{border-left-color:#D49A00}.mt-l-ok{border-left-color:var(--ok)}.mt-l-mu{border-left-color:var(--line)}
.mt-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:10px 0}.mt-kpis>div{background:var(--surface);border-radius:16px;padding:10px 12px;box-shadow:0 1px 3px rgba(38,50,58,.1)}.mt-kpis b{display:block;font-size:24px;font-weight:800}.mt-kpis span{font-size:14px;color:var(--muted)}
.mt-kpis .mt-cut b{color:var(--cut)}.mt-kpis .mt-warn b{color:#B77900}.mt-kpis .mt-ok b{color:var(--ok)}
.mt-chart{width:100%;height:auto;background:var(--surface);border-radius:16px;padding:6px}
.mt-rd{cursor:default;border-left-style:solid;border-left-color:var(--line)}
#mtov{position:fixed;inset:0;z-index:1700;background:#111;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:calc(8px + env(safe-area-inset-top)) 10px calc(10px + env(safe-area-inset-bottom));color:#fff}
.mt-cam-box{position:relative;flex:1;width:100%;min-height:0;overflow:hidden;border-radius:16px;background:#000}.mt-cam-box video{width:100%;height:100%;object-fit:cover}
.mt-guide{position:absolute;left:5%;right:5%;top:38%;height:24%;border:3px solid var(--accent);border-radius:12px;box-shadow:0 0 0 9999px rgba(0,0,0,.45);display:flex;align-items:flex-end;justify-content:center}.mt-guide.num{top:40%;height:20%}.mt-guide span{transform:translateY(130%);font-size:15px;font-weight:700;text-shadow:0 1px 3px #000;white-space:nowrap}
.mt-camb{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.mt-camb button,.mt-file{min-height:48px;padding:0 18px;border-radius:14px;font-weight:700;display:inline-flex;align-items:center;background:var(--accent);color:var(--on-accent);cursor:pointer}.mt-camb .sec,.mt-file{background:var(--soft);color:var(--ink)}
.mt-cs{font-size:16px;text-align:center;max-width:560px}
.mt-res{width:min(560px,100%);max-height:100%;overflow:auto;background:var(--paper);color:var(--ink);border-radius:18px;padding:14px}.mt-res img{max-width:100%;max-height:160px;border-radius:10px;display:block;margin:0 auto 8px;background:#fff}
.mt-cand{margin:4px 6px 4px 0;border-radius:12px;padding:8px 14px;min-height:46px;font-size:20px;font-weight:800;background:var(--accent-soft);color:var(--accent-ink);letter-spacing:1px}
.mt-x{position:absolute;top:calc(10px + env(safe-area-inset-top));right:12px;min-height:44px;padding:0 16px;border-radius:14px}
@media(max-width:640px){#meters .mh b{flex:1}#meters .mh>button{order:1}#meters .tabs{order:2;width:100%}}
.mt-res input{min-height:48px;padding:0 12px;border:2px solid var(--line);border-radius:12px;font-size:20px;font-weight:700}
.mt-res .acts button{min-height:48px;padding:0 18px;border-radius:14px;font-weight:700;background:var(--accent);color:var(--on-accent)}.mt-res .acts button.sec{background:var(--soft);color:var(--ink)}
#meters select,#meters input[type=datetime-local],#meters input:not([type=checkbox]){min-height:46px;border-radius:12px;border:2px solid var(--line);padding:0 12px;box-sizing:border-box;max-width:100%}#meters select{width:100%}
.mb .mt-chip{background:var(--soft);color:var(--ink)}.mb .mt-chip.sel{background:var(--ink);color:var(--paper)}
.sres-sub{color:var(--muted);font-size:14px}

/* sections et droits par module */
.secd{margin:8px 0}.secd summary{cursor:pointer;font-weight:600;padding:4px 0}
.sect{border-collapse:collapse;width:100%;max-width:640px}.sect td{padding:4px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.sect td:last-child{width:210px}.sect .sm{font-size:13px;color:var(--muted);margin-top:1px}
.sect select{width:100%}.sect tr.fut td:first-child{color:var(--muted)}
.secm{border-collapse:collapse;font-size:14px}.secm th,.secm td{padding:5px 7px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}.secm td:first-child,.secm th:first-child{text-align:left}
.secm td.l0{color:var(--muted)}.secm td.l1{background:#e3edf7;color:#1f4e79;font-weight:700}.secm td.l2{background:var(--accent-soft);color:var(--accent-ink);font-weight:700}.secm td.l3{background:#cfe8dc;color:var(--ok);font-weight:800}
@media(max-width:560px){.sect td:last-child{width:44%}.sect td{font-size:15px}}
/* ---------- SIG superposé ---------- */
.sig-ctl{margin-bottom:10px!important}
#sigbtn{display:block;width:46px;height:46px;padding:0;min-height:0;border:0;border-radius:4px;background:var(--surface);color:var(--ink);font:700 14px/46px system-ui,sans-serif;letter-spacing:.5px}
#sigbtn[hidden]{display:none}
#sigbtn.on{background:#0b4fd6;color:#fff}
#sigpanel{position:fixed;z-index:1001;right:66px;bottom:calc(150px + env(safe-area-inset-bottom));width:310px;max-width:calc(100vw - 80px);max-height:min(70vh,560px);overflow:auto;background:var(--surface);color:var(--ink);border-radius:12px;box-shadow:0 3px 14px #0005;padding:10px 12px;font-size:14px}
#sigpanel[hidden]{display:none}
.sig-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.sig-x{min-height:0;padding:0 8px;font-size:22px;line-height:28px;background:none;border:0;color:var(--ink)}
.sig-mix{display:flex;align-items:center;gap:8px;font-weight:600}
.sig-mix input{flex:1;accent-color:#0b4fd6;height:30px}
.sig-row{display:flex;gap:6px;margin:8px 0;flex-wrap:wrap}
.sig-row .btn-s{flex:1;min-height:36px;padding:4px 8px;font-size:14px;border-radius:9px}
.sig-row .btn-s.on{background:var(--blue,#0b4fd6);color:#fff}
.sig-g{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line,#0002);padding:4px 0}
.sig-g label,.sig-ls label{display:flex;align-items:center;gap:6px;cursor:pointer}
.sig-g small{opacity:.6}
.sig-g input,.sig-ls input{width:18px;height:18px;flex:none}
.sig-more{min-height:0;padding:2px 10px;background:none;border:0;color:var(--ink);font-size:16px}
.sig-ls{padding:0 0 6px 24px;font-size:13px;display:flex;flex-direction:column;gap:3px}
.sig-foot{font-size:12px;opacity:.6;margin-top:6px}
#map.sig-only{background:#fff}
#map.sig-pick{cursor:help}
.sig-popup .leaflet-popup-content{margin:10px 12px;font-size:13px}
.sig-pop+.sig-pop{border-top:1px solid #0002;margin-top:6px;padding-top:6px}
.sig-pop table{border-collapse:collapse;margin-top:4px}
.sig-pop th{text-align:left;font-weight:500;opacity:.7;padding:1px 8px 1px 0;vertical-align:top}
.sig-pop td{padding:1px 0}
.sgdrop{border:2px dashed var(--line,#0003);border-radius:12px;padding:22px 14px;text-align:center;margin:10px 0;cursor:pointer;background:var(--soft,#f4f1ec)}
.sgdrop.hot{border-color:var(--blue,#0b4fd6);background:#e8efff}
.sgdrop.off{opacity:.5;cursor:not-allowed}
.sgf{font-size:14px;margin:3px 0;opacity:.7}.sgf.ok{opacity:1}
.sgbar{height:10px;border-radius:6px;background:var(--soft,#eee);overflow:hidden;margin:8px 0}.sgbar i{display:block;height:100%;background:var(--blue,#0b4fd6);transition:width .4s}
.sglog{font:12px/1.5 ui-monospace,Consolas,monospace;max-height:260px;overflow:auto;margin-top:6px}.sglog span{opacity:.55}
/* colonne SIG à droite : fiche d'informations en haut, panneau SIG calé en bas */
#sigdock{position:fixed;z-index:1001;right:66px;top:calc(var(--bar) + 10px);bottom:calc(12px + env(safe-area-inset-bottom));width:340px;max-width:calc(100vw - 80px);display:flex;flex-direction:column;justify-content:flex-end;gap:10px;pointer-events:none}
#sigdock>*{pointer-events:auto}
@media (min-width:900px){ body.list-open #sigdock{right:calc(min(430px,100%) + 12px)} }
@media (max-width:899px){ body.list-open #sigdock{z-index:1150} }
#sigdock #sigpanel{position:static;width:auto;max-width:none;flex:0 1 auto;max-height:none;min-height:0}
#siginfo{flex:0 1 auto;min-height:0;margin-bottom:auto;overflow:auto;background:var(--surface);color:var(--ink);border-radius:12px;box-shadow:0 3px 14px #0005;padding:10px 12px;font-size:13px}
#siginfo[hidden]{display:none}
#siginfo .sig-ib{display:flex;flex-direction:column;gap:2px}
.sig-also{margin-top:8px;padding-top:6px;border-top:1px solid #0002;opacity:.75;font-size:12px}
@media (max-width:899px){
  #sigdock{left:10px;right:66px;width:auto;max-width:none;top:auto;bottom:calc(160px + env(safe-area-inset-bottom));max-height:calc(100vh - var(--bar) - 190px);justify-content:flex-end}
  #sigdock #sigpanel{max-height:46vh;overflow:auto;padding:8px 10px}
  #siginfo{max-height:40vh;margin-bottom:0}
  .sig-row{margin:6px 0}.sig-row .btn-s{min-height:34px;font-size:13px}
}
/* légende repliable */
#legtog{display:none;min-height:0;padding:6px 10px;border-radius:8px;font-size:14px;background:var(--soft,#0001);color:var(--ink)}
#legend.min>:not(#legtog){display:none!important}
#legend.min{padding:4px}
@media (max-width:700px){ #legtog{display:block} }
#legend:has(#legtog) #legtog{display:block}
/* guide d'installation */
#insguide{align-items:center;justify-content:center;background:#0008}
.ins-card{background:var(--surface);color:var(--ink);border-radius:14px;max-width:460px;width:calc(100% - 32px);padding:0 16px 16px;box-shadow:0 6px 24px #0006}
.ins-card ol{padding-left:22px;line-height:1.5}.ins-card li{margin:8px 0}
.ins-ic{display:inline-block;padding:0 6px;border:1px solid currentColor;border-radius:6px}
#sigbtn.pick{outline:3px solid #ff8a00;outline-offset:-3px}
/* Avis de coupure simplifiés */
.bigact{display:block;width:100%;min-height:54px;margin:12px 0;font-size:17px;font-weight:700;border-radius:14px}
.kchoice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0 4px}
.kchoice button,#infbody .kchoice button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;min-height:64px;padding:10px 12px;border-radius:14px;background:var(--surface);color:var(--ink);border:2px solid var(--line)}
.kchoice button small,#infbody .kchoice button small{font-weight:400;color:var(--muted);font-size:13px}
.kchoice button.on,#infbody .kchoice button.on{border-color:var(--accent);background:var(--accent-soft)}
.fdates{display:grid;grid-template-columns:1fr 1fr;gap:10px}.fdates input{width:100%;box-sizing:border-box}
@media(max-width:420px){.fdates{grid-template-columns:1fr}}
.wcard.avis-planned{border-left-color:var(--muted)}.wcard.avis-announced{border-left-color:var(--accent)}.wcard.avis-encours{border-left-color:var(--cut)}.wcard.avis-done,.wcard.avis-cancelled{opacity:.7}
.prow{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.pchk{display:flex;gap:8px;align-items:center;margin:8px 0}.pchk input{width:20px;height:20px}
/* téléphone : panneau SIG réduit au curseur et aux boutons (couches réglables sur ordinateur) */
@media (max-width:899px){ #sigpanel .sig-groups,#sigpanel .sig-foot{display:none} }
/* avis de coupure : tableau sites / compteurs */
.itabw{max-height:340px;overflow:auto;border:1px solid var(--line,#d7dde3);border-radius:8px;margin-top:6px}
.itab{width:100%;border-collapse:collapse;font-size:13px}
.itab th,.itab td{padding:5px 8px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line,#e3e7eb)}
.itab th{position:sticky;top:0;background:var(--bg2,#f3f5f7);font-weight:600;white-space:nowrap}
.itab td:first-child,.itab td:nth-child(2){white-space:nowrap;font-variant-numeric:tabular-nums}
#fpoly .acts{margin:6px 0}
.wtag.s-u{font-weight:700}
.fsl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0}.fsl .chk{min-width:110px;margin:0}

/* Recherche des vannes à fermer */
#vanbtn{display:grid;place-items:center;width:46px;height:46px;padding:0;min-height:0;border:0;border-radius:4px;background:var(--surface);color:var(--ink)}
#vanbtn[hidden]{display:none}#vanbtn.on{background:var(--cut);color:#fff}#vanbtn.wait{opacity:.5}
#vanbar{position:fixed;z-index:1200;left:12px;right:12px;margin:0 auto;width:max-content;max-width:calc(100% - 24px);box-sizing:border-box;top:calc(var(--bar) + 12px);font-size:15px;display:none;align-items:center;gap:12px;background:var(--cut);color:#fff;padding:8px 8px 8px 16px;border-radius:14px;box-shadow:0 4px 16px #0004;font-weight:700;max-width:calc(100% - 32px)}
#vanbar button{background:#fff;color:var(--cut);min-height:38px}
#vanpanel{position:fixed;z-index:1150;display:none;flex-direction:column;background:var(--surface);color:var(--ink);box-shadow:0 6px 24px #0005;left:0;right:0;bottom:0;max-height:55vh;border-radius:18px 18px 0 0}
@media (min-width:900px){#vanpanel{left:12px;right:auto;top:calc(var(--bar) + 12px);bottom:12px;width:360px;max-height:none;border-radius:16px}}
.van-h{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}.van-h b{flex:1;font-size:17px}.van-h button{min-height:38px;padding:4px 12px}
.van-b{flex:1;overflow:auto;padding:10px 14px}.van-f{display:flex;gap:8px;flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--line)}.van-f button{flex:1}
.van-k{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 12px}.van-k div{background:var(--paper);border-radius:12px;padding:8px;text-align:center}.van-k b{display:block;font-size:22px}.van-k span{font-size:12px;color:var(--muted)}
.van-v{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}.van-v.on{background:var(--accent-soft);border-radius:10px}.van-v.off{opacity:.5}
.van-n{flex:none;width:28px;height:28px;border-radius:50%;background:#2D6A44;color:#fff;display:grid;place-items:center;font-weight:800}
.van-a{display:flex;flex-direction:column;gap:4px}.van-a button{min-height:32px;padding:2px 10px;font-size:13px}
.van-hi{display:flex;gap:8px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer}.van-hi button{min-height:32px;padding:2px 10px}
.van-pin{background:#2D6A44;color:#fff;border:3px solid #fff;border-radius:50%;display:grid!important;place-items:center;font:800 13px/1 system-ui,sans-serif;box-shadow:0 2px 6px #0006}
.van-pin.hs{background:#E0A030}
.van-x{color:#B8321F;font:900 24px/26px system-ui,sans-serif;text-align:center;text-shadow:0 0 3px #fff,0 0 3px #fff}
.van-sens{border:2px solid var(--cut);background:var(--surface);border-radius:12px;padding:8px 10px;margin:0 0 10px;color:var(--ink)}.van-sens b{color:var(--cut);display:block;margin-bottom:2px}.van-crit{background:var(--cut);color:#fff;border-radius:6px;padding:0 6px;font-size:12px;font-weight:700}

/* Remplacement de compteurs */
.rp-site{display:flex;gap:10px;align-items:center;justify-content:space-between;background:var(--surface);border-radius:12px;padding:10px 12px}
.rp-2{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:end}.rp-2 input,.rp-2 select{width:100%;box-sizing:border-box}
@media(max-width:420px){.rp-2{grid-template-columns:1fr}}
.rp-phb{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:8px 14px;border-radius:12px;background:var(--soft);color:var(--ink);font-weight:700;cursor:pointer}
.rp-ph{display:inline-flex;align-items:center;gap:8px;margin-top:8px;color:var(--ok);font-weight:700}.rp-ph button{min-height:32px;padding:2px 10px}

/* Documents de chantier et lecteur de plans (règle à l'échelle) */
.wdoc{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.wdoc select{max-width:150px}
#wbody .wdoc-o{flex:1;display:flex;gap:10px;align-items:center;text-align:left;background:none;color:var(--ink);padding:6px 4px;min-height:52px;font-weight:400;box-shadow:none}#wbody .wdoc-o:hover,#wbody .wdoc-o:focus{background:var(--accent-soft);color:var(--ink)}#wbody .wdoc-o .sm{color:var(--muted)}
.wdoc-i{font-size:26px}
.wdrop{border:2px dashed var(--line);border-radius:14px;padding:12px;margin:8px 0}.wdrop.on{border-color:var(--accent);background:var(--accent-soft)}
#plv{position:fixed;inset:0;z-index:3000;display:none;flex-direction:column;background:#3a3f44}
.plv-bar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:8px calc(8px + env(safe-area-inset-right)) 8px calc(8px + env(safe-area-inset-left));padding-top:calc(8px + env(safe-area-inset-top));background:var(--surface);color:var(--ink);box-shadow:0 2px 8px #0004}
.plv-bar button{min-height:44px;padding:4px 12px}.plv-bar b{flex:1;min-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plv-pg,.plv-z{display:inline-flex;gap:4px;align-items:center}#plvrule.on{background:var(--cut);color:#fff}
#plvstage{position:relative;flex:1;overflow:hidden;touch-action:none;cursor:grab}
#plvcv{position:absolute;left:0;top:0;transform-origin:0 0;box-shadow:0 4px 18px #0008;background:#fff}
#plvsvg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#plvsvg line{stroke:#d81b60;stroke-width:3}#plvsvg circle{fill:#fff;stroke:#d81b60;stroke-width:2.5}#plvsvg .cur{stroke-dasharray:6 4}
#plvsvg .pc{stroke:#1565c0}#plvsvg circle.pc{stroke:#1565c0}
#plvsvg text{font:800 16px system-ui,sans-serif;fill:#d81b60;text-anchor:middle;paint-order:stroke;stroke:#fff;stroke-width:4px}
#plvinfo{position:absolute;left:50%;transform:translateX(-50%);bottom:calc(14px + env(safe-area-inset-bottom));background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:14px;box-shadow:0 4px 14px #0006;max-width:calc(100% - 24px);display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:15px}
#plvinfo button{min-height:36px;padding:2px 10px}
#plvdlg{position:absolute;right:12px;top:calc(76px + env(safe-area-inset-top));width:min(380px,calc(100% - 24px));background:var(--surface);color:var(--ink);border-radius:16px;padding:14px;box-shadow:0 6px 24px #0007;display:none}
.plv-sc{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0}
/* fiche chantier : statut direct, itinéraire, journal photos/vidéos/notes */
.wchs{display:flex;align-items:center;gap:8px;font-weight:600}.wchs select{min-width:150px}
.wgo{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0}
.wgo-b{display:inline-flex;align-items:center;gap:4px;padding:8px 12px;border-radius:999px;background:var(--surface);color:var(--ink);text-decoration:none;font-weight:600;border:1px solid var(--line)}
.wjf{border:2px dashed var(--line);border-radius:14px;padding:12px;margin:8px 0 14px}
.wjbtns{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:8px}
#wbody .wcam{font-size:18px;padding:12px 20px}
.wj{background:var(--surface);border-radius:12px;padding:10px 12px;margin:8px 0}.wj p{margin:6px 0}
.wjm{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
#wbody .wjt,.wjt{position:relative;width:96px;height:96px;border-radius:10px;background:#0003 center/cover no-repeat;border:0;padding:0;display:flex;align-items:center;justify-content:center;flex-direction:column;color:#fff;cursor:pointer;box-shadow:none}
#wbody .wjt.vid{background:#222;color:#fff}.wjt.vid span{font-size:30px}.wjt small{font-size:11px;opacity:.8}.wjt.ld{opacity:.5}
.wjt .red{position:absolute;top:2px;right:2px;padding:2px 7px;min-height:0;font-size:13px}
#wbody .lnk{background:none;border:0;padding:0;color:var(--accent);text-decoration:underline;font-size:inherit;box-shadow:none;min-height:0}
#wlb video{max-width:96vw;max-height:84vh;background:#000}
/* discussion du chantier (fil façon messagerie) */
.wjthread{--me:#D9F2DC;--me-ink:#1E3B26;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:10px 8px;max-height:58vh;min-height:140px;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:4px}
:root[data-theme=dark] .wjthread{--me:#1F4A36;--me-ink:#E3F3E8}
.wjempty{color:var(--muted);text-align:center;margin:auto;padding:20px 12px}
.wjday{text-align:center;margin:8px 0 4px}.wjday span{display:inline-block;background:var(--soft);color:var(--muted);font-size:13px;font-weight:600;padding:3px 12px;border-radius:999px}
.wjday span::first-letter{text-transform:uppercase}
.wjmsg{display:flex}.wjmsg.me{justify-content:flex-end}
.wjbub{max-width:82%;background:var(--surface);color:var(--ink);border-radius:16px 16px 16px 4px;padding:6px 10px 4px;box-shadow:0 1px 1px rgba(0,0,0,.12)}
.wjmsg.me .wjbub{background:var(--me);color:var(--me-ink);border-radius:16px 16px 4px 16px}
.wjwho{font-size:13px;font-weight:700;color:var(--accent-ink);margin-bottom:2px}
.wjtxt{white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.wjbub .wjm{margin:2px 0 4px}.wjbub .wjm.one .wjt{width:220px;height:220px;max-width:60vw;max-height:60vw}
.wjloc{font-size:14px;margin-top:4px}.wjloc .wgo{margin:4px 0 0;gap:6px}.wjloc .wgo-b{padding:5px 10px;font-size:14px}
.wjmeta{display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:2px}.wjmsg.me .wjmeta{color:inherit;opacity:.7}
#wbody .wjdel{background:none;border:0;padding:0 2px;min-height:0;font-size:13px;box-shadow:none;opacity:.6;color:inherit}
.wjc{padding:8px 0 4px;margin-top:6px}
.wjc #jdraft:empty{display:none}
.wjbar{display:flex;align-items:flex-end;gap:6px}
.wjbar textarea{flex:1;min-width:0;resize:none;border-radius:22px;padding:10px 14px;min-height:44px;max-height:140px;line-height:1.3;font-size:17px}
#wbody .wjb{width:44px;height:44px;min-height:0;padding:0;border-radius:50%;background:var(--surface);color:var(--ink);font-size:21px;flex:none;box-shadow:none;border:1px solid var(--line)}
#wbody .wjsend{width:48px;height:48px;min-height:0;padding:0;border-radius:50%;font-size:20px;flex:none}
.wjopt{display:flex;align-items:center;gap:10px;margin-top:6px}
#wbody .wjpos{min-height:0;padding:4px 12px;border-radius:999px;font-size:14px;background:var(--soft);color:var(--muted);box-shadow:none;border:0}
#wbody .wjpos.on{background:var(--accent-soft);color:var(--accent-ink)}
.wjbub.bare,.wjmsg.me .wjbub.bare{background:none;box-shadow:none;padding:0;color:var(--ink)}
.wjbub.bare .wjm{margin:0}.wjbub.bare .wjmeta{color:var(--muted);opacity:1}
@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .wjthread{--me:#1F4A36;--me-ink:#E3F3E8}}
/* appareil photo intégré (photos en série) */
#wcamv{position:fixed;inset:0;z-index:2000;background:#000;display:none;flex-direction:column;color:#fff}
#wcamvid{flex:1;min-height:0;width:100%;object-fit:cover;background:#000}
#wcamflash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none}#wcamflash.on{animation:wcamf .25s ease-out}
@keyframes wcamf{from{opacity:.8}to{opacity:0}}
.wcam-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:linear-gradient(#0009,#0000)}
.wcam-top button{width:46px;height:46px;min-height:0;padding:0;border-radius:50%;background:#0006;color:#fff;font-size:20px;border:0;box-shadow:none}.wcam-top button.on{background:#f0903f}
#wcamn{font-weight:700;font-size:17px;text-shadow:0 1px 3px #000}
#wcamstrip{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;background:#000;min-height:0}#wcamstrip:empty{display:none}
#wcamstrip button{flex:none;width:64px;height:64px;min-height:0;padding:0;border-radius:8px;border:2px solid #fff;background:#222 center/cover;position:relative;box-shadow:none}
#wcamstrip button span{position:absolute;top:-1px;right:-1px;background:#000a;color:#fff;font-size:12px;width:20px;height:20px;border-radius:0 6px 0 6px;line-height:20px}
.wcam-bot{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 18px calc(18px + env(safe-area-inset-bottom));background:#000}
#wcamshot{width:76px;height:76px;min-height:0;padding:0;border-radius:50%;background:#fff;border:6px solid #888;box-shadow:0 0 0 3px #fff}#wcamshot:active{transform:scale(.92)}
#wcamok{justify-self:end;min-height:46px;padding:8px 16px;border-radius:999px;font-weight:800}#wcamok:disabled{opacity:.4}
/* vannes défectueuses et vannes fermées (fiche chantier) */
.van-pin.hs.def{background:#B8321F}
.van-def{background:var(--warn-bg);border-radius:10px;padding:8px 10px;margin:8px 0}.van-defr{display:flex;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--line)}.van-defr button{min-height:32px;padding:2px 10px;font-size:13px}
.van-dlg{position:fixed;inset:0;z-index:1900;background:#0008;display:flex;align-items:center;justify-content:center;padding:16px}
.van-dlgb{background:var(--surface);color:var(--ink);border-radius:16px;padding:16px;width:100%;max-width:420px;box-shadow:var(--shadow)}
.wiso{background:var(--surface);border-radius:12px;padding:8px 10px;margin:8px 0}
.wiso-h{display:flex;gap:6px;align-items:center;padding-bottom:6px;border-bottom:1px solid var(--line)}.wiso-h button{min-height:36px;padding:4px 12px}
.wiso-v{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
.wiso-v .van-n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--soft);color:var(--ink);display:grid;place-items:center;font-weight:800}
.wiso-v.st-fermee .van-n{background:#2D6A44;color:#fff}.wiso-v.st-ouverte .van-n{background:var(--blue);color:#fff}.wiso-v.st-nonfermee .van-n{background:var(--cut);color:#fff}
.wiso-a{display:flex;flex-direction:column;gap:4px}.wiso-a button{min-height:36px;padding:4px 10px;font-size:14px;white-space:nowrap}
.wiso-add{margin-top:8px}
/* animations (anim.js) : opacité + déplacement ; plus amples sur grand écran (souris) */
:root{--a-d:.2s;--a-y:14px;--a-x:18px;--a-s:1;--a-f:1.4s;--a-fw:4px}
@media (pointer:fine) and (min-width:900px){:root{--a-d:.34s;--a-y:42px;--a-x:70px;--a-s:.96;--a-f:2.2s;--a-fw:7px}}
@keyframes a-in{from{opacity:0;transform:translateY(var(--a-y)) scale(var(--a-s))}to{opacity:1;transform:none}}
@keyframes a-fade{from{opacity:0}to{opacity:1}}
@keyframes a-swap{from{opacity:0;transform:translateX(var(--a-x))}to{opacity:1;transform:none}}
@keyframes a-back{from{opacity:0;transform:translateX(calc(-1 * var(--a-x)))}to{opacity:1;transform:none}}
@keyframes a-flash{0%{box-shadow:inset 0 0 0 0 #E8833A00;background-color:transparent}12%{box-shadow:inset 0 0 0 var(--a-fw) #E8833A;background-color:#E8833A22}100%{box-shadow:inset 0 0 0 var(--a-fw) #E8833A00;background-color:transparent}}
@keyframes a-flashin{from{opacity:0;transform:translateY(calc(var(--a-y) / 2))}to{opacity:1;transform:none}}
@keyframes a-pulse{from{opacity:1;stroke-width:8}to{opacity:0;stroke-width:1}}
.a-in{animation:a-in var(--a-d) cubic-bezier(.2,.8,.3,1)}
.a-fade{animation:a-fade var(--a-d) ease-out}
.a-swap{animation:a-swap var(--a-d) cubic-bezier(.2,.8,.3,1)}
.a-back{animation:a-back var(--a-d) cubic-bezier(.2,.8,.3,1)}
.a-flash{animation:a-flash var(--a-f) ease-out}
.a-flash>*{animation:a-flashin calc(var(--a-d) + .1s) cubic-bezier(.2,.8,.3,1)}
.a-pulse{animation:a-pulse 1.8s ease-out forwards}
.noanim .a-in,.noanim .a-fade,.noanim .a-swap,.noanim .a-back,.noanim .a-flash,.noanim .a-flash>*,.noanim .a-pulse{animation:none}
@media (prefers-reduced-motion:reduce){.a-in,.a-fade,.a-swap,.a-back,.a-flash,.a-flash>*,.a-pulse{animation:none}}
.wac{position:relative}.wac-l{position:absolute;left:0;right:0;top:100%;z-index:20;background:var(--surface);border-radius:0 0 10px 10px;box-shadow:var(--shadow);max-height:300px;overflow:auto}
.wac-l:empty{display:none}#wbody .wac-l button{display:block;width:100%;text-align:left;background:none;color:var(--ink);border:0;border-bottom:1px solid var(--line);border-radius:0;padding:10px 12px;min-height:0;box-shadow:none;font-weight:500}
#wbody .wac-l button:hover,#wbody .wac-l button:focus{background:var(--accent-soft)}
.do-num{display:inline-block;background:var(--accent);color:#fff;font-weight:800;border-radius:8px;padding:1px 8px;margin-right:8px;font-size:14px}
.do-och{margin-top:6px;min-height:34px;padding:4px 12px;font-size:14px}
.st2{display:grid;grid-template-columns:1fr;gap:0 18px}@media (min-width:800px){.st2{grid-template-columns:1fr 1fr}}
.do-num.int{background:#2F6F8F}.do-h4{margin:10px 0 4px;font-size:15px}

/* ===== Réseauxgest lot 1-2 : listes de référence, menus à choix multiple, risques, équipe, véhicules et matériels ===== */
/* listes de référence et menus à choix multiple */
.reftabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
#abody .reftabs button{background:transparent;color:inherit;border:1px solid var(--line);box-shadow:none}
#abody .reftabs button.sel{background:var(--ink);color:var(--paper);border-color:transparent}
.refrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 0;border-bottom:1px solid var(--line)}
.refrow input.rf{flex:1 1 140px;min-width:0}
.refrow select.rf{flex:0 0 auto}
.refrow.off{opacity:.55}
.refnew{border:0;margin:8px 0}
details.msel{position:relative;border:1px solid var(--line);border-radius:10px;background:var(--surface);margin:4px 0 8px}
details.msel>summary{list-style:none;cursor:pointer;padding:9px 34px 9px 10px;min-height:44px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
details.msel>summary::-webkit-details-marker{display:none}
details.msel>summary::after{content:'▾';position:absolute;right:12px;top:12px;opacity:.6}
details.msel .chip{background:var(--soft);border-radius:12px;padding:3px 9px;font-size:13px}
details.msel .mopts{max-height:300px;overflow:auto;border-top:1px solid var(--line);padding:4px 6px}
details.msel .mo{display:flex;align-items:center;gap:10px;min-height:44px;padding:2px 4px;cursor:pointer}
details.msel .mo input{width:22px;height:22px;flex:0 0 auto}
details.msel .mg{font-size:12px;font-weight:700;text-transform:uppercase;opacity:.6;margin:8px 4px 2px}
details.msel .mfind{width:100%;margin:4px 0}
.lv{font-size:11px;border-radius:8px;padding:1px 6px;margin-left:4px;color:#fff}
.lv1{background:#5b8c5a}.lv2{background:#c9a227}.lv3{background:#d9622b}.lv4{background:#b3261e}
/* fiche intervention complète */
.riskbox{border-left:5px solid #c9a227;background:rgba(232,118,43,.08);border-radius:8px;padding:10px 12px;margin:8px 0}
.riskbox>div{margin-top:6px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.riskbox.lvb1{border-color:#5b8c5a}.riskbox.lvb3{border-color:#d9622b}.riskbox.lvb4{border-color:#b3261e;background:rgba(179,38,30,.08)}
.riskbox .chip,.wfs .chip{background:var(--soft);border-radius:12px;padding:3px 9px;font-size:13px}
.wfs{border:1px solid var(--line);border-radius:10px;padding:8px 12px 12px;margin:12px 0}
.wfs legend{font-weight:700;padding:0 6px}
.wtabw{overflow-x:auto;margin:6px 0}
.wtab{width:100%;border-collapse:collapse;font-size:14px}
.wtab th,.wtab td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.wtab th{font-size:12px;text-transform:uppercase;opacity:.7}
.tsel{display:inline-flex;gap:4px;flex-wrap:wrap}
.tsel select,.teq select,.rline select{min-height:44px;font-size:15px}
.tline{margin:3px 0;white-space:nowrap}
.teq .tn{width:100%;min-width:120px;min-height:40px}
.rline{border-top:1px solid var(--line);padding:8px 0}
.rgrid{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0}
@media (max-width:700px){
  .wtab thead{display:none}
  .wtab tr{display:block;border-bottom:1px solid var(--line);padding:6px 0}
  .wtab td{display:block;border:0;padding:3px 0}
}
.reftpl{flex:1 1 100%;display:grid;grid-template-columns:1fr 1fr;gap:6px}
@media (max-width:700px){.reftpl{grid-template-columns:1fr}}
.wpdf{margin:4px 0 8px}
.wpdf #fsendst{align-self:center}
.smtpg{display:grid;grid-template-columns:2fr 1fr;gap:6px 10px}.smtpg .fld input{display:block;width:100%;margin-top:3px}
@media (max-width:700px){.smtpg{grid-template-columns:1fr}}
.smtpg label.fld{display:block}
/* ===== Réseauxgest lot 4 : temps de travail ===== */
.tmcard{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:14px;margin:6px 0 10px}
.tmstate{display:flex;gap:12px;align-items:center;font-size:17px}
.tmdot{width:16px;height:16px;border-radius:50%;background:var(--muted);flex:0 0 auto}
.tmstate.on .tmdot{background:#2D6A44;box-shadow:0 0 0 6px rgba(45,106,68,.18)}
.tmbtns{display:flex;flex-direction:column;gap:8px;min-width:240px;flex:1 1 240px;max-width:420px}
.tmbig{min-height:64px;font-size:20px;font-weight:800;border-radius:16px;background:#2D6A44;color:#fff}
.tmbig.stop{background:#B3261E}
.tmsmall{display:flex;gap:8px}.tmsmall button{flex:1;min-height:52px}
.tmsum{display:flex;gap:18px;flex-wrap:wrap;font-size:16px}
.tmalert{border-left:5px solid #D9622B;background:rgba(217,98,43,.08);border-radius:8px;padding:8px 12px;margin:6px 0}
.tmalert .ar{flex:1 1 200px;min-height:44px}
.tmfil{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 10px}.tmfil select,.tmfil input,.tmfil button{min-height:44px}
.tmkpi{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.tmkpi div{background:var(--soft);border-radius:12px;padding:8px 14px;min-width:110px;text-align:center}.tmkpi b{display:block;font-size:19px}.tmkpi span{font-size:13px;color:var(--muted)}
.tmt td.n,.wtab td.n{text-align:right;white-space:nowrap}
.tmagbox{border:1px solid var(--line);border-radius:12px;padding:8px 12px;margin:10px 0}
details.tmlist>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}
.hocat{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0}
.hohead{display:flex;gap:6px;align-items:center}.hohead .hn{flex:1;min-width:0}
.hodays{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;margin-top:6px}
.hogrid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.hogrid .fld input{display:block;width:100%}
@media (max-width:700px){.hogrid{grid-template-columns:1fr}.tmbtns{max-width:none}}
/* ===== Réseauxgest lot 5 : indicateur de connexion et de synchronisation (toujours visible sur la carte) ===== */
#sync{position:fixed;left:12px;top:calc(env(safe-area-inset-top) + 74px);z-index:1100;display:flex;gap:6px;align-items:center;min-height:36px;padding:4px 12px;border-radius:18px;font-size:14px;font-weight:700;border:0;box-shadow:0 2px 8px rgba(0,0,0,.18);background:var(--surface);color:var(--ink)}
#sync.sync-ok{color:#2D6A44}#sync.sync-ok .sl{display:none}#sync.sync-ok:hover .sl{display:inline}
#sync.sync-off{background:#5E6A72;color:#fff}
#sync.sync-sync{background:#1F5FA8;color:#fff}#sync.sync-sync span:first-child{display:inline-block;animation:syncspin 1s linear infinite}
#sync.sync-wait{background:#C9A227;color:#1C2125}
#sync.sync-err{background:#B3261E;color:#fff}
@keyframes syncspin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#sync.sync-sync span:first-child{animation:none}}
.sqlist{max-height:50vh;overflow:auto}.sq{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:8px 0}.sq .sqe{color:#B3261E;font-size:13px}
.wjbub.pend{opacity:.75;border:1px dashed var(--line)}
#syncp{align-items:center;justify-content:center;background:#0008}
.sq>div:first-child{flex:1 1 220px;min-width:0}.sq button{min-height:44px}
@media (min-width:900px){#sync{top:auto;bottom:16px;left:16px}}
/* ===== Réseauxgest lot 7 : archive des documents ===== */
.dcrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:10px 0}.dcrow.arch{opacity:.6}
.dcmain{flex:1 1 260px;min-width:0}.dcrow .acts{margin:0}.dcrow button{min-height:44px}
#fdocs details>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:700}
/* ===== Réseauxgest lot 8 : terrain (dictée, annotation, gants, urgences) ===== */
.dictw{position:relative;display:block;flex:1 1 auto;min-width:0}.dictw>textarea,.dictw>input{width:100%;padding-right:52px;box-sizing:border-box}
.dictb{position:absolute;right:4px;bottom:4px;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;font-size:20px;background:var(--soft);color:var(--ink);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.dictw.in .dictb{top:50%;bottom:auto;transform:translateY(-50%);width:38px;height:38px;min-height:38px;font-size:17px}
.dictb.on{background:#B3261E;color:#fff;animation:dictp 1.2s ease-in-out infinite}
@keyframes dictp{50%{box-shadow:0 0 0 8px rgba(179,38,30,.25)}}
@media (prefers-reduced-motion:reduce){.dictb.on{animation:none}}
.wjt{position:relative}.wjann{position:absolute;left:4px;bottom:4px;width:40px;height:40px;min-height:40px;padding:0;border-radius:50%;background:rgba(255,255,255,.92);color:#111;font-size:18px}
#annot{position:fixed;inset:0;z-index:3000;background:#111;display:none;flex-direction:column}
.anbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;padding-top:calc(env(safe-area-inset-top) + 8px);background:#1c2125}
.anbar button{min-height:48px;padding:0 12px;border-radius:12px;font-weight:700;background:#2c3338;color:#fff;border:2px solid transparent}
.anbar button.sel{border-color:#FFD400}.anbar .ancol{width:48px;padding:0;border:2px solid #555}.anbar .ancol.sel{border:4px solid #FFD400}
.anbar [data-an=ok]{background:#2D6A44;margin-left:auto}
.anwrap{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:6px}
#ancv{max-width:100%;max-height:100%;touch-action:none;background:#000}
/* badges d'urgence : intervention non planifiée bien visible */
body .wtag.u{background:var(--cut);color:#fff;font-weight:800}
/* utilisation avec des gants : cibles tactiles agrandies sur téléphone et tablette */
@media (pointer:coarse){
  #work button,#work select,#work input:not([type=checkbox]):not([type=radio]),#stats button,#stats select{min-height:48px}
  #work .tabs button{min-height:48px;padding:0 14px}
  #work tr[data-win] td{padding-top:12px;padding-bottom:12px}
  #work .wcard{padding:14px}
  #work input[type=checkbox],#work input[type=radio]{width:24px;height:24px}
  #work .wjb,#work .wjsend{min-width:52px;min-height:52px}
}
body.demo::after{content:'DÉMO · données fictives';position:fixed;left:50%;bottom:calc(4px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:3000;background:#7A3E9D;color:#fff;font-size:12px;font-weight:800;letter-spacing:.04em;padding:3px 10px;border-radius:10px;pointer-events:none;opacity:.92}

/* consignes d'intervention, menu des sites d'une adresse, pointage localisé, lieux de pointage */
.wcons{background:var(--card2,#f6f3ee);border-radius:10px;padding:8px 12px;margin:8px 0}.wcons ul{margin:4px 0 0;padding-left:20px}
#fsitesel{width:100%;margin-bottom:6px}
.tmgeo{font-size:13px;margin:10px 0 0;color:var(--muted,#555)}.tmgeo.off{color:#a33;font-weight:600}
.tmbig:disabled,.tmsmall button:disabled{opacity:.45;cursor:not-allowed}
.holieu .ln{flex:1 1 200px}.holieu .lr{width:80px}.holieu .lpos{flex:1}
.holieu{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0}
#lmapm{position:fixed;inset:0;z-index:3000;display:flex;flex-direction:column;background:var(--bg,#fff)}#lmapm .lmbar{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));border-bottom:1px solid var(--line)}#lmapm .lmbtn{display:flex;gap:6px;margin-left:auto}#lmap{flex:1}

/* matériaux posés, heures de chantier */
.mline{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:6px 0;padding-bottom:6px;border-bottom:1px dashed var(--line)}.mline .mref{flex:1 1 220px}.mline .mq{width:90px}.mline .mn{flex:1 1 160px}.mline .mag{flex:0 1 160px}
.hrow{display:flex;flex-wrap:wrap;gap:8px}.hrow .fld{flex:1 1 120px}

/* planning sur téléphone : la semaine en cartes (plus de défilement horizontal), le mois compact */
@media (max-width:700px){
  .wscroll{overflow-x:visible}
  .wtbl.wweek,.wtbl.wchm{min-width:0}
  .wtbl.wweek thead,.wtbl.wchm thead{display:none}
  .wtbl.wweek,.wtbl.wweek tbody,.wtbl.wchm,.wtbl.wchm tbody{display:block;width:100%}
  .wtbl.wweek tr{display:grid;grid-template-columns:1fr auto;grid-template-areas:"wd wd" "nw st" "ti ti" "pl pl" "wag wag";gap:2px 8px;padding:8px 12px;border-bottom:1px solid var(--line)}
  .wtbl.wweek td,.wtbl.wweek th{display:block;border:0;padding:0!important;margin:0}
  .wtbl.wweek th.wd{grid-area:wd;margin:-8px -12px 6px;padding:8px 12px!important;background:var(--soft);border-right:0;white-space:normal}
  .wtbl.wweek th.wd br{display:none}.wtbl.wweek th.wd span{margin-left:6px}
  .wtbl.wweek td.nw{grid-area:nw}.wtbl.wweek td.st{grid-area:st}.wtbl.wweek td.ti{grid-area:ti}.wtbl.wweek td.pl{grid-area:pl;color:var(--muted)}.wtbl.wweek td.wag{grid-area:wag;font-size:14px}
  .wtbl.wweek tr.wempty{grid-template-areas:"wd" "x";grid-template-columns:1fr}.wtbl.wweek tr.wempty td{padding:0 0 2px}
  .wtbl.wweek tr.in-e td:nth-child(2){box-shadow:none}.wtbl.wweek tr.in-e{box-shadow:inset 4px 0 var(--ok)}
  .wtbl.wchm tr{display:flex;flex-wrap:wrap;gap:2px 12px;padding:8px 12px;border-bottom:1px solid var(--line)}.wtbl.wchm td{display:block;border:0;padding:0!important}.wtbl.wchm td:first-child{flex:1 1 100%}
  .wmonth{min-width:0;font-size:13px}.wmonth th{padding:4px 0}
  .wmonth td.mc{height:58px;padding:2px}
  .wmonth .mi{font-size:0;height:6px;padding:0;margin:2px 1px;border-radius:3px;background:var(--accent)}.wmonth .mi.s-e{background:var(--ok)}.wmonth .mi.s-d,.wmonth .mi.s-x{background:var(--line)}
  .wmonth .mi.more{font-size:10px;height:auto;background:transparent;color:var(--muted)}
}

/* récupération / paiement des heures sup. et astreintes */
.tmrec .rcrow{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 12px;padding:8px 0;border-bottom:1px solid var(--line)}.tmrec .rcrow .acts{margin:0}
.rcpose{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:10px}.rcpose .fld{flex:0 1 150px}.rcpose #rcnote{flex:1 1 160px}

/* présence du jour dans le planning (pointages) */
.presbox>div{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.pres.on{display:inline-flex;align-items:center;gap:4px}.pres.on::before{content:'';width:9px;height:9px;border-radius:50%;background:var(--ok);display:inline-block}.presbox .pres.on{background:var(--soft);border-radius:12px;padding:3px 10px}.pres.off::before{content:'';width:9px;height:9px;border-radius:50%;border:2px solid var(--muted);display:inline-block;margin-right:4px;box-sizing:border-box}

.tfl{display:flex;flex-wrap:wrap;gap:4px 14px;margin:4px 0 8px}

/* signalement de coupure par conduite (portion isolée par les vannes, comme pour une casse) */
#pipebar{display:none;position:fixed;z-index:1000;left:12px;right:12px;bottom:calc(150px + env(safe-area-inset-bottom));flex-direction:column;gap:6px;padding:10px 12px;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 2px 10px #0006;font-size:15px}#pipebar .acts{margin:0}#pipebar #pipeok{width:100%}
@media (min-width:900px){#pipebar{left:auto;width:420px}}
#wheu label.fld,.rcpose label.fld{display:flex;flex-direction:column;gap:4px}#wheu label.fld select{width:100%}

/* fiches techniques dessinées sur le SIG */
#ftframe{display:none;position:fixed;z-index:1200;border:3px dashed #ffd400;border-radius:6px;box-shadow:0 0 0 9999px rgba(0,0,0,.35);pointer-events:none}
#ftbar{display:none;position:fixed;z-index:1201;left:12px;right:12px;bottom:calc(92px + env(safe-area-inset-bottom));flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:14px;background:var(--surface);color:var(--ink);box-shadow:0 2px 10px #0006}#ftbar .acts{margin:0}
#ftm{display:none;position:fixed;inset:0;z-index:3000;flex-direction:column;background:var(--bg,#f3efe8);color:var(--ink)}
#ftm .fthead{display:flex;gap:8px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--surface)}#ftm .fthead input{flex:1;font-weight:700;font-size:17px}
#ftm .fttools{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid var(--line)}#ftm .fttools button{padding:6px 10px}#ftm .fttools .sel{background:var(--ink);color:var(--surface)}#ftm #fttype{max-width:260px}
#ftm .ftmain{flex:1;display:flex;min-height:0}#ftm .ftwrap{flex:1;overflow:auto;background:#555;padding:4px}#ftm canvas{display:block;touch-action:none;cursor:crosshair}
#ftm .ftside{width:360px;overflow:auto;padding:10px 12px;border-left:1px solid var(--line);background:var(--surface)}
@media (max-width:800px){#ftm .ftmain{flex-direction:column}#ftm .ftwrap{flex:0 0 55%}#ftm .ftside{width:auto;flex:1;border-left:0;border-top:1px solid var(--line)}}
.ftrow{border:1px solid var(--line);border-radius:10px;padding:6px 8px;margin:6px 0}.ftrow.sel{border-color:#e0a800;box-shadow:0 0 0 2px #ffd40066}
.fthdr{display:flex;gap:6px;align-items:center}.fthdr select{flex:1}.ftn{min-width:24px;height:24px;border-radius:12px;color:#fff;font-weight:700;display:inline-grid;place-items:center;font-size:13px}
.ftf{display:grid;grid-template-columns:2fr 1fr 1.4fr 1.2fr;gap:4px;margin-top:4px}.ftobs{width:100%;margin-top:4px}
.ftthumb{width:72px;height:52px;object-fit:cover;border-radius:6px;background:var(--soft);margin-right:8px;flex:none}
#ftm .ftside{overflow-x:hidden;box-sizing:border-box}#ftm .ftside *{box-sizing:border-box}.ftf input,.ftobs,.fthdr select{min-width:0;width:100%}
#ftm .fthead{flex-wrap:wrap}#ftm .fthead input{min-width:0;flex:1 1 180px}
@media (max-width:800px){.ftf{grid-template-columns:1fr 1fr}#ftm .fttools button{padding:5px 8px;font-size:14px}#ftm #fttype{max-width:100%;flex:1 1 100%}}
#ftbar .ftbg{display:flex;flex-wrap:wrap;gap:6px}#ftbar .ftbg .sel{background:var(--ink);color:var(--surface)}

/* cadrage d'une fiche technique : écran dégagé, barre compacte en bas */
body.ft-on #fab,body.ft-on #list,body.ft-on #sres,body.ft-on #legend,body.ft-on #tabs,body.ft-on #bar,body.ft-on #sync,body.ft-on #pipebar,body.ft-on .leaflet-control-container{display:none!important}
#ftbar{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));padding:8px 10px;gap:6px;flex-direction:column;align-items:stretch;font-size:14px}
#ftbar .fttxt{line-height:1.3}
#ftbar .ftbg{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;background:var(--soft);border-radius:12px;padding:3px}
#ftbar .ftbg button{padding:7px 4px;font-size:14px;border-radius:9px;min-height:0;border:0;background:transparent;color:var(--ink)}#ftbar .ftbg .sel{background:var(--ink);color:var(--surface)}
#ftbar .ftact{display:grid;grid-template-columns:1fr 2fr;gap:6px}#ftbar .ftact button{padding:10px 8px;font-size:15px;min-height:0}
#ftbar .ftcap{background:var(--accent,#c0560f);color:#fff;font-weight:700}
@media (min-width:900px){#ftbar{left:50%;right:auto;width:560px;transform:translateX(-50%)}}

/* relevés topographiques (GPS, classe A) */
#topo{display:none;position:fixed;z-index:1150;left:0;right:0;bottom:0;max-height:62vh;flex-direction:column;background:var(--surface);color:var(--ink);border-radius:18px 18px 0 0;box-shadow:0 -4px 20px #0005;padding-bottom:env(safe-area-inset-bottom)}
@media (min-width:900px){#topo{left:12px;right:auto;top:84px;bottom:12px;width:420px;max-height:none;border-radius:16px}}
#topo .tphead{display:flex;gap:8px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line)}#topo .tphead b{white-space:nowrap}#topo .tpname{flex:1;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#topo .tphead button{padding:6px 10px;min-height:0}
#topo .tphead b+button,#topo .tphead b+.tpname{margin-left:auto}
#topo .tpbody{overflow:auto;padding:8px 12px 12px}
.tpgps{padding:8px 10px;border-radius:10px;background:var(--soft);font-size:15px;margin-bottom:8px}.tpgps.ok{background:color-mix(in srgb,var(--ok) 18%,var(--surface));color:var(--ok)}.tpgps.ko{background:color-mix(in srgb,#e85d04 15%,var(--surface))}
.tpform{display:grid;grid-template-columns:1fr 1fr 1fr;gap:6px}.tpform #tpcode,.tpform .tpnote{grid-column:1/-1}.tpform input,.tpform select{min-width:0;width:100%}
.tpline{margin:6px 0;font-size:14px}.tpshot{flex:1 1 100%;font-size:17px;padding:12px}
.tpsum{margin:8px 0 4px;font-size:14px}.tppt{display:flex;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line)}.tppt .tpi{flex:1;min-width:0;font-size:14px}.tppt button{padding:4px 8px;min-height:0}
.tpcl{min-width:34px;text-align:center;border-radius:8px;padding:2px 4px;font-weight:800;font-size:12px;color:#fff}.tpcl.a{background:#2b9348}.tpcl.b{background:#e85d04}
.tprel{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;margin:6px 0;padding:10px 12px;background:var(--soft);color:var(--ink);border-radius:12px}
.tphelp{margin-top:10px}.tpfoot{flex-wrap:wrap}
.tpshot{background:var(--accent,#c0560f)!important;color:#fff!important;font-weight:700}
#ftframe .ftnorth{position:absolute;top:6px;right:8px;font-weight:800;font-size:14px;color:#111;background:#ffd400;border-radius:8px;padding:2px 6px;pointer-events:none}#ftbar .ftrow2{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}#ftbar .ftrow2 select{padding:4px 6px}#ftbar .ftrot{display:flex;gap:4px;align-items:center;flex:1 1 200px}#ftbar .ftrot input{flex:1;min-width:80px}#ftbar .ftrot button{padding:5px 9px;min-height:0}#ftframe{transform-origin:50% 50%}
/* ---- coupure : barre « portion de conduite » au-dessus des outils, bouton bien visible ; formulaires compacts ---- */
#pipebar{bottom:calc(150px + env(safe-area-inset-bottom));padding:10px 12px 12px;border:2px solid var(--accent,#bf560f)}
#pipebar #pipeok{min-height:48px;font-size:18px;font-weight:700;background:var(--accent,#bf560f);color:var(--on-accent,#fff);border:0;border-radius:14px;box-shadow:0 4px 14px rgba(191,86,15,.35)}
#purge{font-size:14px}#purge:empty{display:none}#purge b{color:var(--accent,#bf560f)}
@media (min-width:900px){#pipebar{left:calc(50% - 280px);right:calc(50% - 280px);width:auto;bottom:150px}}
#tctrl{display:none;align-self:center;font-size:13px;color:var(--muted,#555);background:var(--surface);padding:6px 10px;border-radius:12px;box-shadow:var(--shadow,0 2px 10px #0004);white-space:nowrap}
#tctrl kbd{font:inherit;font-weight:700;border:1px solid var(--line,#ccc);border-radius:5px;padding:0 5px;background:var(--paper,#fff)}
@media (hover:hover) and (pointer:fine){#tpan{display:none}#tctrl{display:block}}
body.ctrl-pan #pad{cursor:grab}
#sheet,#hsheet{padding:12px 14px}
#sheet label,#hsheet label{margin:6px 0 2px;font-size:13px}
#sheet select,#sheet input,#hsheet select,#hsheet input,#sheet textarea,#hsheet textarea{min-height:40px;padding:7px 9px}
.sgrid{display:grid;grid-template-columns:1fr;gap:0 12px}.sgrid2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.sgrid2 .sfull{grid-column:1/-1}
@media (min-width:700px){#sheet,#hsheet{left:calc(50% - 380px);right:calc(50% - 380px)}.sgrid{grid-template-columns:1fr 1fr}.sgrid .sfull,.sgrid #chefExt{grid-column:1/-1}}
#sheet .row button#ok,#hsheet .row button#hok{background:var(--cut,#c0392b);color:#fff;font-weight:700}
#hsheet .sm{margin:2px 0}
.purge-pin{display:flex;align-items:center;justify-content:center;background:#fff;border:3px solid #1f6fb2;border-radius:50%;font-size:16px;box-shadow:0 2px 6px #0006}.purge-pin.alt{border-width:2px;font-size:11px;opacity:.85}
/* consignes de la fiche intervention : lisibles en clair comme en sombre (Android) */
.wcons{background:var(--soft);color:var(--ink);border-left:4px solid var(--accent,#bf560f);font-size:16px;line-height:1.45}.wcons li{margin:3px 0}
details.msel .chip,.riskbox .chip,.wfs .chip{font-size:14px;color:var(--ink)}
/* zone de saisie + micro façon messagerie : le micro est à côté du champ (jamais par-dessus le texte) */
.dictw{display:flex!important;align-items:flex-end;gap:8px;width:100%}
.dictw>textarea,.dictw>input{flex:1 1 auto;min-width:0;width:auto!important;padding-right:14px!important;border-radius:20px!important;padding-left:14px!important}
.dictw>textarea{min-height:44px;resize:vertical}
.dictb,.dictw.in .dictb{position:static!important;transform:none!important;flex:0 0 44px;width:44px!important;height:44px!important;min-height:44px!important;border-radius:50%;background:var(--accent,#bf560f);color:var(--on-accent,#fff);border:0;font-size:19px;box-shadow:0 2px 6px rgba(0,0,0,.18)}
.dictw.in{align-items:center}
.dictb.on{background:#B3261E}
/* fenêtre « avant / après » et journées */
.mdov{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:12px}
.mdbox{background:var(--paper);color:var(--ink);border-radius:18px;padding:16px;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:0 10px 40px #0007}
.mdcmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.mdside{background:var(--soft);border-radius:12px;padding:10px}.mdside:last-child{border:2px solid var(--accent,#bf560f)}
@media (max-width:520px){.mdcmp{grid-template-columns:1fr}}
.jo-ok{border-left:5px solid var(--ok,#2d6a44)}.jol{margin:6px 0;padding-left:18px}.tprompt{outline:3px solid var(--accent,#bf560f);outline-offset:-3px}
/* fenêtre « avant / après » et journées */
.mdov{position:fixed;inset:0;z-index:3000;background:rgba(0,0,0,.45);display:none;align-items:center;justify-content:center;padding:12px}
.mdbox{background:var(--paper);color:var(--ink);border-radius:18px;padding:16px;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:0 10px 40px #0007}
.mdcmp{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.mdside{background:var(--soft);border-radius:12px;padding:10px}.mdside:last-child{border:2px solid var(--accent,#bf560f)}
@media (max-width:520px){.mdcmp{grid-template-columns:1fr}}
.jo-ok{border-left:5px solid var(--ok,#2d6a44)}.jol{margin:6px 0;padding-left:18px}.tprompt{outline:3px solid var(--accent,#bf560f);outline-offset:-3px}
.mdbox .acts{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.mdbox button{min-height:44px;padding:8px 18px;border:0;border-radius:12px;font:inherit;font-weight:700;background:var(--accent,#bf560f);color:var(--on-accent,#fff);cursor:pointer}
.mdbox button.sec{background:var(--soft);color:var(--ink)}.mdbox button.red{background:var(--cut,#c0392b);color:#fff}
.mdbox input,.mdbox textarea{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);color:var(--ink);box-sizing:border-box}
.mdbox .fld{display:block;margin:10px 0 4px;font-weight:600}
@media (min-width:360px){#hsheet .sgrid{grid-template-columns:1fr 1fr}#hsheet .sgrid .sfull{grid-column:1/-1}}
#hsheet>.sm:first-of-type{display:none}
/* logo de la page de connexion (fond crème du logo conservé, dans un cadre arrondi) */
#llogo{display:block;width:100%;height:auto;max-width:300px;margin:-6px auto 4px;border-radius:16px}
@media (max-height:640px){#llogo{max-width:190px}}
#avisbox{margin-top:8px;padding:8px 10px;border-radius:12px;background:var(--soft)}#avisbox .chk{display:flex;gap:8px;align-items:center;font-weight:600;margin:4px 0}#avisbox input{min-height:auto;width:auto}
.van-purge{margin:10px 0;padding:8px 10px;border-radius:12px;background:var(--soft);border-left:4px solid #1f6fb2}.van-purge .van-v{border:0;padding:6px 0}
.van-purge button.sec{background:var(--surface,#fff)}
.van-ext{margin:10px 0;padding:8px 10px;border-radius:12px;background:rgba(191,86,15,.12);border-left:4px solid var(--accent,#bf560f)}.van-ext .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.van-pin.pg{background:#fff;color:#1f6fb2;border-color:#1f6fb2}
.purge-pin.sug{border-style:dashed;border-color:var(--accent,#bf560f);color:var(--accent,#bf560f);font-weight:700}
.pext{font-size:13px;color:var(--accent,#bf560f);margin-bottom:2px}
#pipebar{max-height:calc(100vh - 260px);overflow:auto}
#pdet:empty{display:none}.psens{border:2px solid var(--cut,#c0392b);border-radius:10px;padding:6px 8px;margin:4px 0;font-size:14px}.psens b{color:var(--cut,#c0392b)}
.pvl{font-size:14px;margin:2px 0}.pvl summary{font-weight:700;cursor:pointer}.pv{display:flex;gap:8px;align-items:center;padding:3px 0}.pv .van-n{flex:0 0 24px;width:24px;height:24px;font-size:13px}
.tpres{font-size:12px;padding:1px 7px;border-radius:9px;margin-left:4px}.tpres.on{background:#d9efe0;color:#1d5a35}.tpres.off{background:var(--soft);color:var(--muted)}.tpres.abs{background:#f6dcd6;color:#8a2a1c}.tpres:empty{display:none}

/* organigramme (administration) */
.org-bar{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}.org-bar input{flex:1;min-width:200px;font:inherit;padding:9px;border:1px solid var(--line);border-radius:8px}
.org{padding-bottom:30px}.org-c{margin-left:18px;padding-left:10px;border-left:2px solid var(--line)}
.org-n{display:flex;align-items:flex-start;gap:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:8px;margin:6px 0}
.org-b.olv0>.org-n{border-left:5px solid var(--ink)}.org-b.olv1>.org-n{border-left:5px solid #9aae2f}.org-b.olv2>.org-n{border-left:5px solid #e8a33a}.org-b.olv3>.org-n,.org-b.olv4>.org-n{border-left:5px solid var(--blue)}
.org-hit{outline:3px solid #f2c94c}.org .org-t{background:none!important;border:0;color:var(--ink)!important;font-size:18px;width:26px;min-height:26px;padding:0;flex:none;box-shadow:none}
.org-m{flex:1;min-width:0}.org-p{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.org-nm{background:var(--soft);border-radius:12px;padding:2px 9px;font-size:14px}
.org-vac{background:#fde8e6;color:var(--cut);font-style:italic}.org-acc{color:var(--ok);font-weight:700}
.org-a{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}.org-a button{min-height:36px;min-width:36px;padding:2px 8px}
.org-f{background:var(--surface);border:2px solid var(--blue);border-radius:10px;padding:10px;margin:6px 0}.org-f .fld{display:block;margin-bottom:8px}
.org-f input,.org-f textarea,.org-f select{display:block;width:100%;font:inherit;padding:9px;border:1px solid var(--line);border-radius:8px;box-sizing:border-box}
.org-g{display:grid;grid-template-columns:140px 1fr;gap:10px}@media(max-width:600px){.org-n{flex-wrap:wrap}.org-a{width:100%;justify-content:flex-start;padding-left:32px}.org-c{margin-left:8px;padding-left:6px}.org-g{grid-template-columns:1fr}}

/* magasin : bons de sortie */
.mgbox{width:min(860px,100%)!important}.mgcat{border:1px solid var(--line);border-radius:12px;margin:8px 0;background:var(--surface)}.mgcat>summary{padding:12px;font-weight:700;cursor:pointer}
.mgcnt{color:var(--blue,#1f6fb2)}.mgfam{font-weight:700;padding:8px 12px 2px;font-size:14px}.mggrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:4px 10px;padding:0 10px 10px}
.mgi{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:4px 6px;border-radius:8px}.mgi label{display:flex;gap:8px;align-items:center;flex:1;min-width:150px;cursor:pointer}.mgi input[type=checkbox]{width:22px;height:22px;flex:none}
.mgi .mgq,.mgi .mgdet,.mgi .mgplus{display:none}.mgi.on{background:#fff4d6}.mgi.on .mgq,.mgi.on .mgdet,.mgi.on .mgplus{display:inline-flex}.mgi .mgn{width:70px}.mgi .mgdet{width:120px}
.mdbox .mgplus{min-height:36px;padding:2px 10px}.mgfr{display:flex;gap:6px;margin:4px 0}.mgfr .mgfl{flex:1}.mgfr .mgn{width:80px}
.mgfoot{position:sticky;bottom:-16px;background:var(--paper);padding:10px 0;border-top:1px solid var(--line);align-items:center}.mgfoot #mgtot{margin-right:auto}
.mgcard{border:1px solid var(--line);border-left:5px solid #e8a33a;border-radius:10px;padding:10px;margin:8px 0;background:var(--surface)}.mgcard.mg-prepare{border-left-color:var(--blue,#1f6fb2)}.mgcard.mg-remis{border-left-color:var(--ok,#2e7d32)}.mgcard.mg-annule{border-left-color:#999;opacity:.7}
.mgst{font-size:13px;background:var(--soft);border-radius:10px;padding:1px 8px}.mgl{margin:6px 0;padding-left:20px}.mgfilt{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.mgpv{border:2px solid var(--blue,#1f6fb2);border-radius:10px;padding:10px;margin-top:10px}
#mgdrop.over{outline:3px dashed var(--blue,#1f6fb2)}
.mgi[hidden],.mgfam[hidden],.mgcat[hidden]{display:none!important}

/* heures du chantier : une case par jour */
.hdays{display:grid;gap:8px}.hday{border:1px solid var(--line);border-left:5px solid var(--blue,#1f6fb2);border-radius:10px;padding:8px 10px;background:var(--surface)}
.hdh{display:flex;justify-content:space-between;gap:8px;text-transform:capitalize}.hdt{font-weight:800;font-size:18px}.hdag{display:flex;flex-wrap:wrap;gap:4px;margin:6px 0}
.hdn{background:var(--soft);border-radius:12px;padding:2px 9px;display:inline-flex;align-items:center;gap:4px}.hded{min-height:26px!important;padding:0 6px!important;font-size:13px}
/* réfection de fouille */
.rf-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:6px;padding:6px;border-radius:8px}.rf-row.on{background:#fff4d6}.rf-c{display:flex;align-items:center;gap:8px;min-width:0;font-weight:600}
.rf-c input,.rf-mq input{width:22px;height:22px}.rf-row select{font:inherit;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink)}.rf-row .rfq{min-width:96px}.mdbox select{font:inherit;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface,#fff);color:var(--ink);width:100%}
.rf-f #rfmat{display:block;width:100%;font:inherit;padding:9px;border:1px solid var(--line);border-radius:8px;margin-top:4px}.rf-mq{display:flex!important;gap:8px;align-items:center;margin:10px 0;font-weight:600}
.rf-sum ul{margin:6px 0;padding-left:20px}.rf-st{display:inline-block;font-size:13px;border-radius:10px;padding:2px 9px;background:#fde8e6;color:var(--cut)}.rf-st.ok{background:#e3f4e5;color:var(--ok,#2e7d32)}
.rf-it{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin:6px 0;background:var(--surface)}

/* consultations */
.cs-wrap{overflow-x:auto}.cs{border-collapse:collapse;width:100%;font-size:14px}.cs th,.cs td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:top;white-space:nowrap}
.cs td.cs-on{background:#e3f4e5}.cs td.cs-off{color:#aaa;text-align:center}#csday{font:inherit;padding:6px;margin-left:8px}

/* mise à jour */
.mj-ok{color:var(--ok,#2e7d32);font-weight:600}.mj-err{color:var(--cut);font-weight:600}.mj-run{color:var(--blue,#1f6fb2);font-weight:600}
.mj-log{max-height:260px;overflow:auto;background:#111;color:#ddd;padding:8px;border-radius:8px;font-size:12px;white-space:pre-wrap}#mjdrop.over{outline:3px dashed var(--blue,#1f6fb2)}
