
:root{--p:#a8436a;--nav:#7e2f4e;--bg:#f6f7f9;--t:#1c1f26;--m:#6b7280;--b:#e5e7eb}      /* --p : rosé (boutons, titres, liens) ; --nav : barre de gauche, rosé plus foncé */
*{box-sizing:border-box}
body{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);margin:0;font:14px system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--t)}
header{background:#fff;border-bottom:1px solid var(--b);padding:10px 16px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
h1{margin:0 auto 0 0;font-size:22px;color:var(--p);font-weight:800}
h2{margin:0 0 12px}
nav{display:flex;gap:8px;padding:12px 16px;overflow-x:auto}
nav button{white-space:nowrap;padding:10px 16px}
main{padding:18px 16px 40px}main>:first-child{margin-top:0}      /* espace sous la barre blanche du haut */
input,select,textarea{font:inherit;padding:8px;border:1px solid var(--b);border-radius:6px;color:var(--t);background:#fff;width:100%}
button,.btn{font:inherit;padding:7px 12px;border:1px solid var(--b);background:#fff;border-radius:6px;cursor:pointer;color:var(--t)}
button.p,nav button.on{background:var(--p);color:#fff;border-color:var(--p)}
button.d{color:#b91c1c}
.tool{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}
.tool input{flex:1;min-width:180px;width:auto}
.tw{overflow-x:auto;background:#fff;border:1px solid var(--b);border-radius:10px}
table{border-collapse:collapse;width:100%}
th,td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--b);white-space:nowrap}
th{background:#f3f4f6;font-size:12px}
.tw tbody tr:nth-child(even) td{background:#f8f9fc}
td.a button{margin-right:4px;padding:4px 8px;font-size:12px}
.card{background:#fff;border:1px solid var(--b);border-radius:10px;padding:12px;margin-bottom:12px}
.rules{display:flex;gap:16px;flex-wrap:wrap;margin:8px 0}
.rules label{display:flex;align-items:center;gap:6px}
.rules input{width:70px}
small{color:var(--m)}
#m{display:none;position:fixed;inset:0;background:#0006;overflow:auto;padding:16px;z-index:12}
#m.on{display:block}
.box{background:#fff;max-width:720px;margin:0 auto;padding:18px;border-radius:10px}
.g{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.g label{display:flex;flex-direction:column;font-size:12px;color:var(--m);gap:3px}
.full{grid-column:1/-1}
.bar{display:flex;gap:8px;margin-top:14px}
.th{position:relative;display:inline-block;margin:4px}
.th img{width:80px;height:80px;object-fit:cover;border-radius:6px}
.th b{position:absolute;top:-4px;right:-4px;background:#000;color:#fff;border-radius:50%;width:18px;height:18px;text-align:center;cursor:pointer}
.tabs{display:flex;gap:6px;overflow-x:auto;margin:12px 0}
.tabs button{white-space:nowrap}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px;margin-bottom:12px;align-items:start}
.cd{background:#fff;border:1px solid var(--b);border-radius:8px;overflow:hidden}
.cd h3{margin:0;padding:8px 12px;background:var(--p);color:#fff;font-size:13px}
.cd div{display:grid;grid-template-columns:minmax(110px,42%) 1fr;gap:8px;align-items:center;padding:6px 12px;font-size:12px}
.cd b{text-align:left;font-weight:600;overflow-wrap:anywhere}
.cd div:nth-child(odd){background:#f6f7f9}
.cd span{color:var(--m)}
.kpi b{font-size:20px;color:var(--p)}
.bd{display:inline-block;padding:3px 10px;border-radius:999px;font-size:12px;font-weight:600;background:#f3f4f6;color:#4b5563}
.bd.g{background:#dcfce7;color:#166534}
.bd.b{background:#e7e5e4;color:#44403c}
.bd.o{background:#ffedd5;color:#9a3412}
.bd.v{background:#ede9fe;color:#5b21b6}
.avs.t{background:#ede9fe;color:#5b21b6}
.bd.r{background:#fee2e2;color:#991b1b}
.bd.y{background:#fef9c3;color:#854d0e}
.bd.k{background:#111827;color:#fff}
.vh h2{margin:0}
.vt{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.sub{color:var(--m);font-size:12px;margin:4px 0 12px;letter-spacing:.3px}
.meta{display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;color:#374151}
.meta>span{display:inline-flex;align-items:center;margin:0}
.ic{width:17px;height:17px;flex:none;margin-right:6px;color:#6b7280}
.ob{color:var(--p);border-color:var(--p);display:inline-flex;align-items:center}
.ob .ic{color:var(--p)}
.chs{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.meta span{margin-right:16px}
.pg{height:8px;background:var(--b);border-radius:4px;margin-top:8px}
.pg i{display:block;height:100%;background:var(--p);border-radius:4px}
.mn{position:fixed;z-index:20;background:#fff;border:1px solid var(--b);border-radius:8px;box-shadow:0 4px 16px #0003;display:flex;flex-direction:column;min-width:150px;padding:4px}
.mn button{border:0;text-align:left;padding:9px 12px;font-size:14px}
.mn button:hover{background:#f3f4f6}
td.a button.kb{border:0;background:none;font-size:20px;line-height:1;padding:2px 10px;margin:0}
tr[ondblclick]{cursor:pointer}
th.so{cursor:pointer;user-select:none}
th.so:hover{background:#e5e7eb}
th.so small{color:var(--m)}
#m.wiz{padding:0}
#m.wiz .box{max-width:980px;min-height:100%;border-radius:0;padding:0 14px;margin:0 auto;display:flex;flex-direction:column}
.wh{position:sticky;top:0;z-index:2;background:#fff;display:flex;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top,0px)) 0 8px}
.wh b{font-size:18px;flex:1}
.wh button{border:0;background:none;font-size:22px}
.wf{position:sticky;bottom:0;margin-top:auto;background:#fff;border-top:1px solid var(--b);display:flex;justify-content:space-between;padding:10px 0 calc(10px + env(safe-area-inset-bottom,0px))}
.wf button{padding:12px 18px;font-weight:600}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{flex:1;min-width:52px;padding:12px 6px;font-size:15px;font-weight:600}
.seg button.on{background:var(--p);color:#fff;border-color:var(--p)}
.it{background:#fff;border:1px solid var(--b);border-radius:10px;padding:10px;margin:8px 0}
.il{font-weight:600;margin-bottom:8px}
.it textarea{margin-top:8px}
.phb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0}
.phb.need{outline:2px dashed #dc2626;outline-offset:2px;border-radius:8px;padding:6px}
.rq{color:#dc2626;font-weight:600}
.btn.ph{padding:12px 14px;font-weight:600}
.mini{height:48px;border-radius:6px;margin:2px;cursor:pointer}
.card.need{border-color:#dc2626}
.g1 label{display:block;margin:12px 0 4px;font-weight:600}
.ql{margin:16px 0 6px;font-weight:600}
.sg{margin:10px 0}
.lb{position:fixed;inset:0;z-index:80;background:#000d;display:flex;align-items:center;justify-content:center;touch-action:none;overflow:hidden;-webkit-user-select:none;user-select:none}
.lb img{max-width:96%;max-height:96%;transform-origin:50% 50%;will-change:transform;-webkit-user-drag:none}
.lb .lbx{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:calc(10px + env(safe-area-inset-right,0px));width:48px;height:48px;border-radius:50%;border:1px solid #ffffff59;background:#000a;color:#fff;font-size:30px;line-height:44px;padding:0;text-align:center;cursor:pointer;z-index:1;box-shadow:0 2px 10px #0006}
.lb .lbx:hover,.lb .lbx:active{background:#000d;border-color:#fff}
nav button,.tabs button{display:inline-flex;align-items:center}
nav .ic,.tabs .ic{color:var(--p)}
nav button.on .ic{color:#fff}
.dlg{position:fixed;inset:0;z-index:40;background:#0008;display:flex;align-items:center;justify-content:center;padding:16px}
.dbox{background:#fff;border-radius:12px;padding:20px;max-width:420px;width:100%;box-shadow:0 8px 32px #0005}
.dbox p{margin:0 0 4px;font-size:15px}
.dt{height:6px;background:var(--b);border-radius:3px;overflow:hidden;margin:12px 0 6px}
.dt i{display:block;height:100%;width:0;background:#dc2626;transition:width 5s linear}
button:disabled{opacity:.45;cursor:not-allowed}
button.p.d2{background:#dc2626;border-color:#dc2626}
.dbox .bar{justify-content:flex-end}
.dbox .bar button{padding:10px 16px;font-weight:600}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:#111827;color:#fff;padding:12px 18px;border-radius:10px;z-index:50;max-width:90%;box-shadow:0 4px 16px #0004}
.dg{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px 20px;margin-bottom:12px}
.dg small{display:block;color:var(--m);font-size:11px;margin-bottom:2px}
.dg b{font-weight:500;word-break:break-word}
.sh{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.sh .ob{margin-left:auto}
.ich{display:inline-flex;border:1px solid var(--b);border-radius:8px;padding:6px}
.ich .ic{margin:0;color:var(--p)}
.al{display:inline-flex;vertical-align:middle;margin-right:4px}
.al .ic{margin:0;width:20px;height:20px}
.al.r .ic{color:#dc2626}
.al.o .ic{color:#f97316}
.al.b .ic{color:var(--p)}
.al.y .ic{color:#eab308}
.al.k .ic{color:#111827}
.lg{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;font-size:12px;color:var(--m);margin:0 0 10px}
.lg>span{display:inline-flex;align-items:center;gap:2px}
.g1 input[type=checkbox]{width:auto;margin-right:8px}
body{padding-left:64px}
nav{position:fixed;left:0;top:0;bottom:0;width:64px;flex-direction:column;align-items:center;gap:8px;padding:calc(14px + env(safe-area-inset-top,0px)) 0 14px;background:var(--nav);overflow-x:visible;overflow-y:auto;z-index:5}
nav button{width:46px;height:46px;padding:0;border:0;border-radius:12px;background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;flex:none}
nav button:hover{background:#ffffff26}
nav button.on{background:#ffffff40}
nav .ic{width:24px;height:24px;margin:0;color:#fff}
.tlu{list-style:none;margin:14px 0 0;padding:0 0 0 6px;position:relative}
.tlu:before{content:"";position:absolute;left:21px;top:6px;bottom:6px;width:2px;background:var(--b)}
.tl{display:flex;gap:14px;align-items:flex-start;padding:8px 0;position:relative}
.tl .dot{flex:none;width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid var(--b);display:flex;align-items:center;justify-content:center;z-index:1}
.tl .dot .ic{margin:0;width:16px;height:16px}
.tl .dot.g{border-color:#16a34a}.tl .dot.g .ic{color:#16a34a}
.tl .dot.b{border-color:var(--p)}.tl .dot.b .ic{color:var(--p)}
.tl .dot.o{border-color:#f97316}.tl .dot.o .ic{color:#f97316}
.tl .dot.y{border-color:#eab308}.tl .dot.y .ic{color:#eab308}
.tl .dot.r{border-color:#dc2626}.tl .dot.r .ic{color:#dc2626}
.tl .dot.k{border-color:#111827}.tl .dot.k .ic{color:#111827}
.tl .dot.n{border-color:#6b7280}.tl .dot.n .ic{color:#6b7280}
.tl.fut{opacity:.7}
.tl.now .dot{width:14px;height:14px;margin:9px;background:var(--p);border:0}
.tl:not(.now):hover .dot{box-shadow:0 0 0 3px #0001}
.ts{color:var(--m);font-size:12px;margin-top:2px}
.wr{white-space:normal;min-width:200px;max-width:380px}
.av{width:72px;height:72px;border-radius:50%;object-fit:cover;background:#e5e7eb;display:flex;align-items:center;justify-content:center;font-weight:700;color:#6b7280;font-size:24px;flex:none}
.wg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:start}
.wd{background:#fff;border:1px solid var(--b);border-radius:12px;padding:16px;min-width:0}
.wd2{grid-column:span 2}
.wt{display:flex;align-items:center;gap:10px;font-weight:600;margin-bottom:12px}
.big{font-size:38px;font-weight:700;color:var(--p);line-height:1.1}
.ws{color:var(--m);font-size:12px;margin-top:4px}
.kv2{display:flex;justify-content:space-between;padding:7px 0;border-top:1px solid var(--b);font-size:13px}
.br{display:grid;grid-template-columns:120px 1fr 34px;gap:8px;align-items:center;font-size:12px;margin:7px 0}
.br span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bt{background:#f1f1f0;border-radius:4px;height:10px;overflow:hidden}
.bt i{display:block;height:100%;border-radius:4px}
.br b{text-align:right}
.al2{display:flex;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--b);font-size:13px}
.al2 b{margin-left:auto}
.dt2{width:10px;height:10px;border-radius:50%;flex:none}
.lr{display:flex;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--b);font-size:13px;cursor:pointer}
@media(max-width:1100px){.wg{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.wg{grid-template-columns:1fr}.wd2{grid-column:auto}}
.pl{font-weight:700}
.rl{display:inline-flex;align-items:center;gap:4px;font-weight:600}
.rl .ic{color:inherit;margin:0;width:22px;height:22px}
.rl small{color:inherit;font-size:12px}
.vph{flex:none;width:220px;min-height:150px;position:relative;cursor:pointer;background:#fff}      /* zone dédiée à la photo : taille fixe */
.vph img{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);object-fit:contain}      /* la photo entière est redimensionnée (largeur et hauteur) pour tenir dans la zone, sans recadrage */
@media(max-width:700px){.vhf{flex-direction:column}.vhf .vph{width:100%;height:170px;min-height:170px}}
h1{display:flex;align-items:center;gap:10px}
.lgo{height:40px;width:40px;object-fit:contain}
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:6px}
.fi{position:absolute;left:0;top:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer;font-size:0}
@media(max-width:600px){body{padding-left:54px}nav{width:54px}nav button{width:40px;height:40px}}
@media(max-width:600px){.g{grid-template-columns:1fr}}

.lg0{padding:0!important;background:var(--bg)}
.lbox{max-width:400px;margin:10vh auto 0;background:#fff;border:1px solid var(--b);border-radius:14px;padding:26px}
.lbox .lgo{height:48px;width:48px}
#msg{min-height:20px;font-size:13px;margin-bottom:6px}
#msg.err{color:#b91c1c}
#msg.info{color:var(--m)}
a.btn{text-decoration:none;color:var(--t)}
.ro .p,.ro .ob,.ro .d{display:none!important}
.ro td.a button:not(.kb){display:none!important}
.car{display:block;margin:8px auto;max-width:100%;width:auto}
.dlg2{display:flex;flex-wrap:wrap;gap:4px 14px;justify-content:center;font-size:11px;color:var(--m);margin:6px 0 10px}
.dlg2 i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:-2px;border:1px solid #0002}
.dsel{background:#fff;border:1px solid var(--b);border-radius:10px;padding:10px}
.dsel .seg{margin-top:8px}
.edlg{display:grid;grid-template-columns:minmax(190px,270px) 1fr;gap:16px;align-items:start}
.edld{position:sticky;top:64px}
.edld .card{margin-bottom:0}
.rcd{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:flex-start}
.sigimg{max-width:260px;width:100%;border:1px solid var(--b);border-radius:8px;background:#fff}
@media(max-width:700px){.edlg{grid-template-columns:1fr}.edld{top:56px;z-index:1;background:#fff}.edld .car{height:150px!important}.edld .dlg2,.edld small{display:none}}
tr.off td{color:#9ca3af}
.ver{margin-top:auto;padding:8px 0 2px;font-size:10px;line-height:1;color:#ffffffb8;letter-spacing:.2px;user-select:none;white-space:nowrap}
.tw input[type=checkbox]{width:auto}
.err{color:#b91c1c}
/* état des lieux interactif */
.stp{display:flex;gap:8px;margin:6px 0 14px}
.stp button{flex:1;border:0;background:none;padding:0;text-align:center;color:#9ca3af;font-weight:600;font-size:12px;letter-spacing:.3px;cursor:pointer}
.stp button i{display:block;height:6px;border-radius:3px;background:#d1d5db;margin-top:6px}
.stp button.on{color:var(--p)}.stp button.on i{background:var(--p)}
.stt{color:var(--p);letter-spacing:.3px;margin:12px 0 4px;font-size:18px}
.cview{max-width:560px;margin:8px auto 4px;border:2px solid var(--b);border-radius:26px;padding:10px;background:#fff;display:flex;justify-content:center;overflow:hidden}
.cview svg{flex:1;min-width:0;width:100%;height:auto;max-height:62vh;touch-action:manipulation}
.ang{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.ang button{position:relative;flex:1;min-width:64px;border:2px solid transparent;background:#f5f5f5;border-radius:14px;padding:8px 4px 6px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px;font-weight:600;color:#6b7280}
.ang button img{width:56px;height:40px;object-fit:contain}
.ang button.on{border-color:var(--p);background:#fff;color:var(--p)}
.nb{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#dc2626;color:#fff;font-size:11px}
.ang .nb{position:absolute;top:4px;right:6px}
.chp{display:flex;flex-wrap:wrap;gap:8px}
.chp button{padding:10px 14px;border-radius:999px;font-weight:600}
.dfr{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--b);border-radius:12px;margin:8px 0;cursor:pointer;background:#fff}
.pn{display:inline-flex;width:32px;height:32px;border:3px solid;border-radius:50%;align-items:center;justify-content:center;font-weight:700;flex:none;background:#fff}
#sh{position:fixed;inset:0;z-index:25;background:#0007;display:flex;align-items:flex-end;justify-content:center}
.shs{background:#fff;border-radius:22px 22px 0 0;width:100%;max-width:560px;max-height:92vh;overflow:auto;padding:10px 18px calc(18px + env(safe-area-inset-bottom,0px))}
.shh{width:44px;height:5px;border-radius:3px;background:#d1d5db;margin:0 auto}
.tg{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tt{border:2px solid transparent;background:#f5f5f5;border-radius:16px;padding:14px 6px;display:flex;flex-direction:column;align-items:center;gap:6px;font-weight:600;font-size:14px;color:#374151}
.tt .ic{width:28px;height:28px}
.tt.on{border-color:var(--p);background:#fff;color:var(--p)}
@media(min-width:700px){#sh{align-items:center}.shs{border-radius:20px}}
.rgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rg1{text-align:center}.rg1 small{display:block;color:#6b7280;font-weight:600;margin-bottom:2px}
.rg1 svg{width:100%;height:auto;max-height:260px}
.rg1.g1,.rg1.g3,.rg1.g4{grid-column:1/-1}
.rg1.g5{grid-column:1/-1}.rg1.g5 svg{max-width:240px;max-height:380px}
.rgw{margin:14px 0}
input[type=range].rg{-webkit-appearance:none;appearance:none;width:100%;height:8px;padding:0;border:0;border-radius:4px;background:linear-gradient(90deg,#ef4444,#f59e0b,#22c55e);outline:none}
input[type=range].rg::-webkit-slider-thumb{-webkit-appearance:none;width:30px;height:30px;border-radius:50%;background:var(--p);border:3px solid #fff;box-shadow:0 1px 4px #0006}
input[type=range].rg::-moz-range-thumb{width:26px;height:26px;border-radius:50%;background:var(--p);border:3px solid #fff;box-shadow:0 1px 4px #0006}
input[type=range].rg.unset::-webkit-slider-thumb{background:#9ca3af}
input[type=range].rg.unset::-moz-range-thumb{background:#9ca3af}
.rgl{display:flex;justify-content:space-between;font-size:12px;color:#6b7280;margin-top:8px}
.rgv{text-align:center;font-weight:700;color:var(--p);margin-top:4px}
/* rapport public d'état des lieux */
.rpb{max-width:900px;margin:0 auto;padding:18px 14px 30px}
@media print{header,nav,.noprt,button{display:none!important}body{background:#fff}.card{break-inside:avoid;box-shadow:none}}
.avs{display:inline-flex;width:32px;height:32px;border-radius:50%;object-fit:cover;background:#e5e7eb;align-items:center;justify-content:center;font-weight:700;color:#6b7280;font-size:12px;vertical-align:middle;margin-right:10px;flex:none;cursor:pointer}
span.avs{cursor:default}
.avs .ic,.av .ic{margin:0;color:inherit}      /* icône dans une pastille : centrée (sans la marge droite des icônes de texte), à la couleur de la pastille */
tr.off .avs{opacity:.5}
.cmp th,.cmp td{padding:8px 6px}
.cmp th:first-child,.cmp td:first-child{padding-left:4px;padding-right:2px}
.tw tbody tr.grp td{background:#efeeec!important;font-weight:700;cursor:pointer;user-select:none;border-bottom:1px solid var(--b)}
.grp small{color:var(--m);font-weight:400}
.car2{display:inline-block;width:14px}
.rw{display:flex;gap:6px;align-items:stretch}
.rw select{flex:1;min-width:0}
.rw .pl{flex:none;width:38px;padding:0;font-size:22px;line-height:1;font-weight:700;color:var(--p)}
/* module Analyse */
.an{display:grid;grid-template-columns:290px 1fr;gap:14px;align-items:start}
@media(max-width:900px){.an{grid-template-columns:1fr}}
.anl .lst{max-height:440px;overflow:auto;border:1px solid var(--b);border-radius:8px;padding:4px 8px}
.chk{display:flex;gap:8px;align-items:center;padding:6px 2px;cursor:pointer;border-bottom:1px solid #f1f2f4}
.chk input{width:auto;flex:none}
.sw{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;flex:none}
.anbar{display:flex;gap:18px;flex-wrap:wrap}
.anr svg{width:100%;height:auto;display:block}
.anleg{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:12px}
.anleg span{display:inline-flex;align-items:center}
.tip{position:absolute;pointer-events:none;background:#111827;color:#fff;padding:6px 10px;border-radius:6px;font-size:12px;white-space:nowrap;box-shadow:0 2px 8px #0004;z-index:2}
.an>*{min-width:0}
.anbar .seg button{flex:none;padding:8px 14px;font-size:14px}
.anl .seg button{padding:8px 4px;font-size:14px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:0 0 12px}
.kpi{margin:0!important}
.kpi .big{font-size:22px;font-weight:700;margin:2px 0}
.anchk{display:flex;flex-wrap:wrap;gap:2px 10px;margin-top:4px}
.anchk .sw{margin:0 6px 0 4px}
tfoot td{font-weight:700;background:#f6f7f9;border-top:2px solid var(--b)}
.ctab th,.ctab td{padding:8px 7px;font-size:13px;white-space:nowrap}
.gdot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#9ca3af;border:2px solid #fff;box-shadow:0 0 0 1px #9ca3af;vertical-align:-1px}
.ang .nb.g{left:6px;right:auto;background:#9ca3af}
.mtx{width:auto;min-width:100%}
.mtx th,.mtx td{padding:6px 8px;text-align:center;font-size:13px;white-space:nowrap}
.mtx td.mc,.mtx thead tr:nth-child(2) th{width:42px;min-width:42px}
.mtx th:first-child,.mtx td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1;min-width:250px;max-width:280px;white-space:normal}
.mtx .ml{border-left:2px solid #e5e7eb}
.mtx td.mc input{width:18px;height:18px;margin:0;cursor:pointer}
.mtx tr.off td{color:#9ca3af}
#main[data-tab=amende] tr.w td{background:#fff7ed}
#main[data-tab=amende] th{white-space:normal;min-width:64px;max-width:118px}
/* ----- Données manquantes ----- */
.chps{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.chp{border:1px solid var(--b);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer}
.chp b{margin-left:4px;background:#fee2e2;color:#991b1b;border-radius:999px;padding:1px 7px}
.chp.on{background:var(--p);border-color:var(--p);color:#fff}.chp.on b{background:#fff;color:var(--p)}
.anm-t th.ac,.anm-t td.ac{text-align:center}.anm-t th.gc{text-align:center;background:#fdf2f2;color:#991b1b}
.anm-t .okc{color:#16a34a;font-weight:700;font-size:16px}
.anm-t .na{color:#9ca3af;font-size:12px}
.anm-t a.anm{display:inline-block;background:#fee2e2;color:#991b1b;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:600;text-decoration:none;white-space:nowrap}
.anm-t a.anm:hover{background:#fecaca;text-decoration:underline}
.anm-t tbody tr{background:#fff}.anm-t tbody tr:nth-child(even){background:#f9fafb}
.anm-t thead tr:first-child th:first-child{background:#f3f4f6}
.anm-t thead tr:first-child th:first-child,.anm-t tbody td:first-child{position:sticky;left:0;z-index:1;background:inherit;box-shadow:1px 0 0 var(--b)}      /* la plaque reste visible quand le tableau défile sur téléphone */

/* ----- menu à trois points de l'en-tête, tableau « Utilisateurs et droits » ----- */
.hmb{border:0;background:none;font-size:22px;line-height:1;padding:4px 10px;margin:0;cursor:pointer;color:var(--t,#111827);border-radius:8px}
.hmb:hover{background:#f3f4f6}
.mn .mhd{padding:8px 12px 6px;border-bottom:1px solid var(--b);margin-bottom:4px;display:flex;flex-direction:column;gap:1px;max-width:260px;word-break:break-word}
.mn .mhd small{color:var(--m,#6b7280)}
.mtx .uact{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.mtx .uact button{padding:3px 9px;font-size:12px;margin:0}
.mtx td.adm{text-align:left;color:#6b7280;font-style:italic}

/* ----- bandeau « connexion perdue » ----- */
.netb{position:fixed;left:50%;top:10px;transform:translateX(-50%);z-index:60;background:#111827;color:#fff;padding:9px 16px;border-radius:10px;font-size:14px;box-shadow:0 4px 16px #0004;max-width:92vw;text-align:center}

.admwarn{margin:8px 0 4px;padding:8px 10px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;font-size:13px}

/* ----- Administration : onglets et changelog ----- */
.clv{border-bottom:1px solid var(--b)}
.clv summary{cursor:pointer;padding:9px 4px;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;list-style:none}
.clv summary::-webkit-details-marker{display:none}
.clv summary::before{content:'▸';color:#6b7280;font-size:12px;width:10px}
.clv[open] summary::before{content:'▾'}
.clv ul{margin:2px 0 12px 34px;padding:0}
.clv li{margin:3px 0;line-height:1.4}

/* ----- pastille rouge sur l'icône d'un module (nouveauté non consultée) ----- */
nav button{position:relative}
.ntd{position:absolute;top:5px;right:5px;width:12px;height:12px;border-radius:50%;background:#ef4444;border:2px solid #fff;box-sizing:border-box;pointer-events:none;box-shadow:0 0 0 1px #0003}

/* CAP CONTROL : sur téléphone, le nom de la personne connectée est masqué dans l'en-tête (il reste dans le menu ⋮) pour garder l'en-tête sur une ligne */
@media(max-width:600px){header #who{display:none}}
/* CAP CONTROL : niveaux d'un site (boutons dans la ligne de titre du niveau) */
.nva{float:right;display:inline-flex;gap:4px;flex-wrap:wrap}
.nvb{padding:2px 8px;font-size:12px;font-weight:600;margin:0;background:#fff;line-height:1.4}
/* CAP CONTROL : bouton de demande de maintenance (visible même en lecture seule) */
.dmb{display:inline-flex;align-items:center;gap:6px;background:var(--p);color:#fff;border-color:var(--p);font-weight:600;padding:10px 16px}
.dmb .ic{color:#fff}
.ro .p.fp{display:inline-block!important}
/* étiquettes QR code */
#prt{display:none}
.qrl{--u:1mm;position:relative;width:calc(var(--u)*57);height:calc(var(--u)*32);background:#fff;color:#000;overflow:hidden;box-sizing:border-box;flex:none;break-inside:avoid;page-break-inside:avoid;font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
.qri{position:absolute;left:0;top:0;width:calc(var(--u)*32);height:calc(var(--u)*32)}
.qri svg{width:100%;height:100%;display:block}
.qrx{position:absolute;white-space:nowrap}
.qrm{margin:8px auto 4px;display:flex;flex-direction:column;align-items:center;gap:6px}
.qrm .qrl{--u:min(6px,calc((100vw - 90px) / 57));border-radius:6px;box-shadow:0 0 0 1px var(--b),0 2px 8px rgba(0,0,0,.08)}
@page qrlab{size:57mm 32mm;margin:0}
@media print{body.prt>*{display:none!important}body.prt>#prt{display:block!important}body.prt{padding:0!important;margin:0!important;background:#fff}#prt .qrl{--u:1mm;page:qrlab;break-after:page;page-break-after:always}#prt .qrl:last-child{break-after:auto;page-break-after:auto}@page{margin:10mm}}
.vh h2{overflow-wrap:anywhere}
/* CAP CONTROL : contrôles et inspections */
.dmb.sm{padding:6px 10px;font-size:13px;font-weight:600}
.ib{font:inherit;padding:10px 14px;border-radius:10px;border:1px solid var(--b);background:#fff;color:var(--t);cursor:pointer;position:relative;display:inline-flex;align-items:center;gap:6px}
.ib:disabled{opacity:.45}
.ibp{background:var(--p);color:#fff;border-color:var(--p);font-weight:600}
.irun{max-width:760px;margin:0 auto;padding-bottom:110px}
.ihd{position:sticky;top:0;z-index:4;background:var(--bg);padding:10px 0}
.iht{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ipg{height:8px;background:var(--b);border-radius:4px;margin:10px 0 4px;overflow:hidden}.ipg i{display:block;height:100%;background:var(--p)}
.ihd h2{margin:6px 0 0;font-size:21px;line-height:1.25}
.iq{background:#fff;border:1px solid var(--b);border-radius:12px;padding:14px;margin:0 0 10px}
.iq.miss{border-color:#dc2626;box-shadow:0 0 0 3px #fecaca}
.iq.bad{border-left:6px solid #dc2626}
.iqt{font-weight:600;font-size:15px;margin-bottom:10px;line-height:1.4}
.iqt .req{color:#dc2626}
.iopts{display:flex;gap:8px;flex-wrap:wrap}
.io{flex:1;min-width:84px;padding:14px 8px;font-size:16px;font-weight:600;border-radius:10px;background:#fff;border:2px solid var(--b);color:var(--t)}
.io.on.okk{background:#16a34a;border-color:#16a34a;color:#fff}
.io.on.nok{background:#dc2626;border-color:#dc2626;color:#fff}
.io.on.neu{background:#6b7280;border-color:#6b7280;color:#fff}
.io.chip{flex:0 1 auto;padding:10px 14px;font-size:15px}
.io.chip.on{background:var(--p);border-color:var(--p);color:#fff}
.iext{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;align-items:center}
.iext .ib{padding:8px 12px;font-size:14px}
.ineed{color:#dc2626;font-size:13px;font-weight:600}
.iinfo{background:#f7f7f6;border:1px solid #e7e5e4;border-radius:10px;padding:10px 12px;margin:0 0 10px;font-size:14px;white-space:pre-line;line-height:1.45}
.irep{border:2px solid var(--b);border-radius:12px;padding:10px;margin:0 0 12px;background:#f8fafc}
.irep>.iht{margin-bottom:10px}
.inav{position:fixed;left:64px;right:0;bottom:0;z-index:6;background:#fffffff2;border-top:1px solid var(--b);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));display:flex;gap:10px;justify-content:center}
.inav .ib{flex:1;max-width:360px;justify-content:center;padding:15px;font-size:16px}
@media(max-width:600px){.inav{left:54px;padding-left:8px;padding-right:8px}.io{min-width:70px}}
.sigc{width:100%;max-width:560px;aspect-ratio:3/1;height:auto;border:2px dashed #9ca3af;border-radius:10px;background:#fff;touch-action:none;display:block}
.ians{display:grid;grid-template-columns:1fr auto;gap:4px 14px;padding:9px 0;border-top:1px solid var(--b);align-items:start}
.ians>span:last-child{text-align:right}
.ians.nok>span:first-child{color:#991b1b;font-weight:600}
.tsec{border:1px solid var(--b);border-radius:10px;margin:0 0 10px;overflow:hidden}
.tsh{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;background:#efeeec;padding:8px 10px}
.tq{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;padding:8px 10px;border-top:1px solid var(--b);font-size:14px}
.tqt{min-width:0}
@media print{.noprt,.inav{display:none!important}}
.pr{align-items:center}
.pd{min-width:84px;font-weight:600}.pd.late{color:#dc2626}
.pk{display:inline-flex;align-items:center;gap:4px;background:#f3f4f6;border-radius:999px;padding:3px 10px 3px 6px;font-size:12px;color:#374151;white-space:nowrap}
.pk .ic{width:15px;height:15px;margin:0;color:var(--p)}
@media(max-width:700px){.pk span{display:none}.pk{padding:4px}.pd{min-width:70px}}
.br.bw{grid-template-columns:minmax(90px,240px) 1fr auto}
.br.bw b{white-space:nowrap}
.plf .io.chip{padding:6px 10px;font-size:13px;min-width:0}
/* CAP CONTROL : formulaires plus confortables */
.rq{color:#dc2626}
.g b.fh{font-size:13px;color:var(--p);border-bottom:1px solid var(--b);padding:10px 0 4px;margin-top:4px}
.g label.err input,.g label.err select,.g label.err textarea{border-color:#dc2626;box-shadow:0 0 0 3px #fecaca}
.g label.err{color:#dc2626}
.sfw{display:block;margin-bottom:4px}
.sflt{width:100%;font-size:13px;padding:6px 8px;border:1px dashed #9ca3af;border-radius:6px;background:#f9fafb}
.bar.stk{position:sticky;bottom:-16px;background:#fff;padding:12px 0;margin:14px 0 -18px;border-top:1px solid var(--b);z-index:2}
@media(max-width:600px){#m{padding:0}#m .box{border-radius:0;min-height:100%;padding:14px}.bar.stk{bottom:0;margin-bottom:-14px}.bar.stk button{flex:1;padding:12px}.g input,.g select,.g textarea{font-size:16px}}
/* inspections : repères visuels */
.iq.done{border-left:6px solid #16a34a}
.io.g0{border-color:#bbf7d0}
.io.b0{border-color:#fecaca}
.ib.ireq{background:#dc2626;color:#fff;border-color:#dc2626;font-weight:600}
.ib.iok{background:#16a34a;color:#fff;border-color:#16a34a;font-weight:600;padding:12px 16px}
.iall{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.iall small{flex:1;min-width:180px}
.itl{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.itoc .lr.cur{background:#f2e6eb}
.itg{font-size:12px;font-weight:700;color:var(--p);text-transform:uppercase;letter-spacing:.5px;margin:12px 0 2px}
/* en-tête de l'inspection compact ; messages au-dessus des boutons du bas */
.ihb{display:inline-flex;gap:6px;white-space:nowrap;flex:0 0 auto}
.ihb .ib{padding:7px 10px;font-size:14px}
.iht{min-width:0}
body.inrun .toast{bottom:100px}
.io{line-height:1.2;overflow-wrap:normal;hyphens:auto}
@media(max-width:600px){.ihb .ib span{display:none}.io{font-size:14px;padding:13px 2px;min-width:0}}
/* demandes : objet sur 2 lignes, compteur de caractères, couleur des types */
.cl2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:280px;min-width:160px;white-space:normal;line-height:1.3}
small.cnt{align-self:flex-end;font-size:11px;color:var(--m)}
.bd.v{background:#ede9fe;color:#6d28d9}
/* inspection : une case par section */
.isteps{display:flex;gap:2px;margin:10px 0 6px;align-items:center}
.isteps i{flex:1;height:10px;background:#e5e7eb;border-radius:3px;cursor:pointer;min-width:4px}
.isteps i.part{background:#fbbf24}
.isteps i.ok{background:#16a34a}
.isteps i.cur{background:var(--p);height:16px;border-radius:4px}
.isteps i.bad{box-shadow:inset 0 -4px 0 #dc2626}
.isteps i.fin{flex:0 0 18px;background:#cbd5e1}
.isteps i.fin.cur{background:var(--p)}
.phs{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.phs .ib,.phs button{justify-content:center;padding:15px;font-size:16px}
.imod{border-left:5px solid #ea580c}
.imh{margin:10px 0 6px}
/* liens dans la couleur du site (plus de bleu par défaut du navigateur) */
a,a:visited{color:var(--p)}
/* fin d'inspection : déclaration des anomalies */
.ano{display:flex;gap:12px;align-items:flex-start;border-top:1px solid var(--b);padding:12px 0}
.ano>input[type=checkbox]{width:22px;height:22px;margin-top:2px;flex:0 0 auto;accent-color:var(--p)}
.ano.done{opacity:.75}
.anb{flex:1;min-width:0}
.ang{margin-top:8px}
.anbar .dmb{font-size:15px}
.ang{display:grid!important;grid-template-columns:1fr 1fr;gap:8px}
.ang .full{grid-column:1/-1}
.ang label{display:flex;flex-direction:column;font-size:12px;color:var(--m);gap:3px}
@media(max-width:600px){.ang{grid-template-columns:1fr}}
.bar.stk.anbar{bottom:0;margin:12px 0 0;padding:12px;border:1px solid var(--b);border-radius:10px;box-shadow:0 -2px 10px #0000001a}
.anbar .dmb{flex:2;justify-content:center}
.ib.iprest{border-color:var(--p);color:var(--p);font-weight:600}
/* demandes : statut et priorité en tête, colonnes Équipement et Zone plus étroites */
td.lead{white-space:nowrap;line-height:1.9}
.cl2.c-equip{max-width:170px;min-width:110px}
.cl2.c-local{max-width:150px;min-width:100px}
.cl2.c-titre{max-width:260px}
select:disabled{background:#f3f4f6;color:#4b5563}
.lvb{border-left:5px solid #ca8a04}
.lvb.todo{border-left-color:#ea580c;background:#fff7ed}
.lvb.ok{border-left-color:#16a34a}
/* impression des pages : plus de décalage dû à la barre de gauche */
@media print{body{padding:0!important;margin:0!important}main,#main{margin:0!important;padding:0!important;max-width:none!important}}
.logo-adm{min-height:70px;display:flex;align-items:center;margin:0 0 8px}.logo-adm img{max-height:80px;max-width:260px;border:1px solid var(--b);border-radius:8px;padding:6px;background:#fff}
/* plans des étages */
#m.plan .box{max-width:none;padding:0 12px 12px}
.plh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;position:sticky;top:0;background:#fff;padding:10px 0;z-index:3;border-bottom:1px solid var(--b)}
.plb{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.plb .ib{padding:6px 10px}
.plg{display:grid;grid-template-columns:1fr 300px;gap:12px;margin-top:10px;align-items:start}
@media(max-width:800px){.plg{grid-template-columns:1fr}}
.plw{overflow:auto;border:1px solid var(--b);border-radius:8px;background:#f9fafb;max-height:calc(100vh - 130px)}
.plw.sm{max-height:440px}
.pli{position:relative;min-width:100%;user-select:none}
.pli img{display:block;width:100%;height:auto}
.pli.pick{cursor:crosshair;outline:3px solid #ea580c;outline-offset:-3px}
.pin{position:absolute;transform:translate(calc(-50% + var(--dx,0px)),calc(-50% + var(--dy,0px)));display:flex;flex-direction:column;align-items:center;z-index:2;cursor:default}
.pin .pdot{width:14px;height:14px;border-radius:50%;background:var(--p);border:2px solid #fff;box-shadow:0 1px 4px #0007}
.pin .pl{font-size:11px;font-weight:600;background:#ffffffe6;padding:0 4px;border-radius:4px;margin-top:2px;white-space:nowrap;box-shadow:0 0 0 1px #0001}
.pin.loc .pdot{background:#a8436a}.pin.hl .pdot{background:#ea580c;width:18px;height:18px}.pin.hl .pl{background:#ffedd5}
.pin.gray{cursor:pointer;z-index:1}.pin.gray .pdot{background:#9ca3af;width:11px;height:11px}.pin.gray .pl{color:#6b7280;font-size:10px;font-weight:500}
.pin.me{z-index:4}.pin.me .pdot{background:#dc2626;width:20px;height:20px;border-width:3px}.pin.me .pl{background:#fee2e2;color:#991b1b}
.plpick{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:8px;padding:8px 10px;margin:8px 0;display:flex;gap:10px;align-items:center;justify-content:space-between;font-weight:600}
.pls{border:1px solid var(--b);border-radius:8px;padding:10px;background:#fff}
.pll{max-height:calc(100vh - 260px);overflow:auto}.pll .lr{gap:6px;cursor:pointer}.pll .lr.cur{background:#ffedd5}.ib.sm{padding:3px 8px;font-size:12px}
.mapw{border:1px solid var(--b);border-radius:8px;overflow:hidden;height:230px;background:#f1eeef}.mapw iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:600px){.mapw{height:220px}}
@media print{.mapw{display:none}}
/* plans v2 : plan éclairci et désaturé, punaises plus grandes, onglets des niveaux */
.pli img{filter:grayscale(1) brightness(1.12) contrast(.85);opacity:.6}
.pin .pdot{width:22px;height:22px;border-width:3px}
.pin .pl{font-size:13px;padding:1px 6px;margin-top:3px;font-weight:700}
.pin.loc .pdot{background:#a8436a;width:18px;height:18px}.pin.loc .pl{font-size:12px;color:#a8436a}
.pin.eq{cursor:pointer;z-index:3}.pin.eq .pdot{background:#7c3aed}.pin.eq .pl{color:#5b21b6}
.pin.hl .pdot{background:#ea580c;width:26px;height:26px}.pin.hl .pl{background:#ffedd5;color:#9a3412}
.pin.gray .pdot{background:#9ca3af;width:18px;height:18px}.pin.gray .pl{color:#4b5563;font-size:12px}
.pin.me .pdot{background:#dc2626;width:30px;height:30px;border-width:4px}.pin.me .pl{background:#fee2e2;color:#991b1b;font-size:14px}
.pltabs{display:flex;gap:4px;flex-wrap:wrap}.pltabs button{padding:5px 12px;border-radius:999px;font-weight:600}.pltabs button.on{background:var(--p);color:#fff;border-color:var(--p)}
.plaff{display:flex;flex-direction:column;gap:2px;padding-bottom:8px;border-bottom:1px solid var(--b);margin-bottom:8px}.plaff select{margin-top:4px}
.plsel{border:1px solid #fdba74;background:#fff7ed;border-radius:8px;padding:8px;margin-bottom:8px}.plsel.me{border-color:#fca5a5;background:#fef2f2}.plsel small{display:block}
.plsec{margin-bottom:10px}.plsec .pll{max-height:38vh}
.plbtns{display:flex;gap:8px;flex-wrap:wrap}
/* plans v3 : punaises 3 fois plus grandes (code de l'équipement dans la pastille), zones des locaux */
.pin .pb{display:flex;align-items:center;justify-content:center;width:45px;height:45px;border-radius:50%;background:#7c3aed;color:#fff;font-weight:800;font-size:10px;line-height:1.05;text-align:center;border:2px solid #fff;box-shadow:0 2px 7px #0006;padding:2px;overflow:hidden;word-break:break-word}
.pin.gray .pb{width:38px;height:38px;background:#9ca3af;font-size:9px}
.pin.hl .pb{background:#ea580c;width:50px;height:50px}
.pin.me .pb{background:#dc2626;width:59px;height:59px;font-size:11px;border-width:3px}
.pin.loc .pdot{width:28px;height:28px;border-width:3px}.pin.loc .pl{font-size:14px}
.plz{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.plz polygon{pointer-events:auto;cursor:pointer;fill:rgba(168,67,106,.16);stroke:#a8436a;stroke-width:2}
.plz.busy polygon{pointer-events:none}
.plz polygon.hl{fill:rgba(234,88,12,.22);stroke:#ea580c;stroke-width:3}
.plz polyline.zd{fill:rgba(234,88,12,.12);stroke:#ea580c;stroke-width:3;stroke-dasharray:6 4}
.zl{position:absolute;transform:translate(-50%,-50%);font-size:14px;font-weight:800;color:#a8436a;background:#ffffffcc;padding:1px 6px;border-radius:4px;white-space:nowrap;pointer-events:none;z-index:2}
.zl.hl{color:#9a3412;background:#ffedd5}
.zv{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#ea580c;border:2px solid #fff;z-index:6;pointer-events:none}.zv.first{width:24px;height:24px;margin:-12px 0 0 -12px;background:#fff;border:5px solid #ea580c}
.pin{z-index:3}.pin.me{z-index:5}
/* fiche du site : Informations et carte côte à côte */
.sgrid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr);gap:12px;align-items:start}.sgrid>.card{margin:0 0 12px}
.sgrid .card .sh span[style*="margin-left:auto"]{flex-wrap:wrap}
@media(max-width:900px){.sgrid{grid-template-columns:1fr}}
/* couleurs des pastilles par famille d'équipement */
.pin.eq .pb{background:var(--pc,#7c3aed);color:var(--pt,#fff)}
.pin.eq.hl .pb{background:var(--pc,#7c3aed);box-shadow:0 0 0 4px #ea580c,0 2px 7px #0006}
/* pastilles déportées (elles se chevauchaient) : trait jusqu'à l'emplacement exact */
.plk{position:absolute;left:0;top:0;pointer-events:none;z-index:2;overflow:visible}
.plk line{stroke-width:1.8;stroke-linecap:round}.plk line.h{stroke:#fff;stroke-width:4.5}
.plk circle{stroke:#fff;stroke-width:1.8}
.pleg{display:flex;flex-direction:column;gap:3px;margin-top:6px}
.pleg .lg{display:flex;align-items:center;gap:8px;text-align:left;padding:5px 8px;border-radius:8px;background:#fff;font-size:13px;width:100%}
.pleg .lg i{width:16px;height:16px;border-radius:50%;flex:none;border:2px solid #fff;box-shadow:0 0 0 1px #0003}
.pleg .lg span{flex:1}.pleg .lg small{color:var(--m)}.pleg .lg.on{border-color:var(--p);background:#f2e6eb;font-weight:700}
/* plans : « Plan entier » ajusté à la fenêtre (dézoomé) ; fiche équipement : Détails à gauche, plan à droite */
.plw.fit{display:block;text-align:center;max-height:none}
.plw.fit .pli{display:inline-block;min-width:0;width:calc(min(100%, (100vh - 170px) * var(--ar,1.5)) * var(--z,1));text-align:left;vertical-align:top}
.plw.fit .pli img{width:100%;height:auto}
.plw.sm.fit .pli{width:calc(min(100%, 560px * var(--ar,1.5)) * var(--z,1))}
.egrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,1fr);gap:12px;align-items:start}.egrid>.card{margin:0 0 12px}
@media(max-width:1000px){.egrid{grid-template-columns:1fr}}
.plw.fit:not(.sm){max-height:calc(100vh - 130px)}
.offchip{background:#ffedd5;color:#9a3412;border:1px solid #fdba74;border-radius:999px;padding:4px 10px;font-weight:700;font-size:13px;margin-right:6px}
.offc{border-left:5px solid #ea580c;background:#fff7ed}
#offd{bottom:auto;top:0}
/* en-tête des fiches : les boutons Modifier / Supprimer restent à droite, même avec un titre long */
.vh .vt{flex-wrap:nowrap;align-items:flex-start}
.vh .vt>:first-child{flex:1 1 auto;min-width:0}
.vh .vt>:last-child{flex:0 0 auto;white-space:nowrap}
.vh .vt h2{overflow-wrap:anywhere}
@media(max-width:600px){.vh .vt{flex-wrap:wrap}.vh .vt>:last-child{white-space:normal}}
.meta .mtx{display:inline}
.iopts.plf{display:flex;flex-wrap:wrap;gap:6px}.iopts.plf .io.chip{flex:0 0 auto}
/* contrôles réglementaires : RDV planifié et planning annuel */
.bd.bl{background:#dbeafe;color:#1e40af}
.cpn{margin:10px 0 0;padding:8px 12px;border-radius:8px;font-weight:600}.cpn.o{background:#ffedd5;color:#9a3412}.cpn.r{background:#fee2e2;color:#991b1b}
.cpb{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:12px}
.cpb label{min-width:200px}
.cpy{display:inline-flex;align-items:center;gap:8px}.cpy b{font-size:18px;min-width:52px;text-align:center}.cpy .ib{padding:8px 12px}
.cpleg{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.cpleg .cpc{cursor:default;padding:4px 10px}
.cpw{overflow-x:auto;background:#fff;border:1px solid var(--b);border-radius:10px;margin-top:12px}
.cpt{border-collapse:collapse;width:100%;min-width:1060px;font-size:13px}
.cpt th,.cpt td{border:1px solid #d6d9de;padding:4px 5px;vertical-align:middle;white-space:normal}
.cpt thead th{background:#efe6e9;color:var(--nav);text-align:center;font-size:11px;text-transform:uppercase;letter-spacing:.01em;padding:6px 3px}
.cpt th.cur,.cpt td.cur{background:#fef9c3}
.cpt .cn{position:sticky;left:0;z-index:1;background:#fff;min-width:200px;max-width:280px;text-align:left}
.cpt thead .cn{background:#efe6e9;z-index:2}
.cpt td.cn{cursor:pointer}.cpt td.cn:hover b{text-decoration:underline}
.cpt td.cn small{display:block;color:var(--m);font-size:12px}
.cpt td.cf{text-align:center;font-size:12px;min-width:70px}
.cpt td.cv{text-align:center;background:#f3f4f6;font-size:12px;min-width:76px}
.cpt td.cpm{min-width:58px;padding:2px}
.cpt tr.cpg td{background:#fdf3d7;font-weight:700;text-transform:uppercase;font-size:12px;color:#5b4a14;padding:5px 8px}
.cpc{display:block;position:relative;border-radius:4px;padding:5px 2px;text-align:center;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer;margin:1px 0}
.cpleg .cpc{display:inline-block}
.cpc.done{background:#bbe5b3;color:#14532d}
.cpc.rdv,.cpc.rdvp{background:#bfdbfe;color:#1e3a8a}
.cpc.due{background:#f8c9a0;color:#7c2d12}
.cpc.late{background:#fca5a5;color:#7f1d1d}
.cpc .cpk{position:absolute;top:-5px;right:-3px;width:14px;height:14px;border-radius:50%;font-style:normal;font-size:10px;line-height:14px;color:#fff;text-align:center}
.cpk.o{background:#ea580c}.cpk.r{background:#dc2626}.cpk.cpkg{background:#16a34a}.cpk.cpky{background:#facc15;color:#1f2937;box-shadow:0 0 0 1px #eab308}
/* 4 couleurs seulement (réalisé, planifié, échéance, en retard) ; la conformité d'une vérification se lit à la couleur du point d'exclamation (jaune : observations, rouge : non conforme, vert : levées) */
@page cpplan{size:A4 landscape;margin:8mm}
@media(max-width:700px){.cpt .cn{min-width:130px;max-width:150px}.cpt td.cn b{font-size:12px}.cpt td.cn small{font-size:11px}.cpb label{min-width:0;flex:1 1 100%}}
@media print{.cpp{page:cpplan}.cpt{table-layout:fixed}.cpt thead .cn{width:22%}.cpt thead th:nth-child(2),.cpt thead th:nth-child(3){width:7.5%}.cpt thead th:nth-child(4){width:7%}.cpt td.cn b{font-size:9px}.cpt td.cn small{font-size:8px}.cpt thead th{font-size:7.5px;padding:3px 1px;text-transform:none;letter-spacing:0}.cpt td.cf,.cpt td.cv{font-size:8px}.cpt tr.cpg td{font-size:8px;padding:2px 4px}.cpt tr{break-inside:avoid}.cpt td.cn,.cpt th.cn{max-width:none}.cpleg{margin-top:4px}.cpp .card h2{font-size:16px}.cpp .bd{font-size:9px;padding:1px 6px}.cpp .card{padding:6px 0;border:0;margin:0 0 4px}.cpw{overflow:visible;border:0}.cpt{min-width:0;font-size:9px}.cpt .cn{position:static;min-width:0}.cpt td.cpm,.cpt td.cf,.cpt td.cv{min-width:0}.cpc{font-size:8.5px;padding:3px 1px}.cpt th,.cpt td{padding:2px 3px}.cpc,.cpt th.cur,.cpt td.cur,.cpt tr.cpg td,.cpt thead th,.cpt td.cv{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cpleg .cpc{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* planning annuel : repère du type quand contrôles et entretiens sont affichés ensemble */
.cpt-k{display:inline-block;font-style:normal;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;margin:0 0 2px;text-transform:uppercase;letter-spacing:.02em}
.cpt-k.creg{background:#e0e7ff;color:#3730a3}.cpt-k.cent{background:#fbccde;color:#953b5e}
.cpt td.cn .cpt-k{display:table;margin-bottom:2px}
@media print{.cpt-k{font-size:6.5px;padding:0 4px;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* équipements concernés : liste à cocher dans le formulaire d'un contrôle ou d'un entretien */
.g .fdv{display:flex;flex-direction:column;font-size:12px;color:var(--m);gap:3px}
.eqb{border:1px solid var(--b);border-radius:10px;background:#fff;color:var(--t)}
.eqbt{display:flex;gap:6px;flex-wrap:wrap;padding:8px;border-bottom:1px solid var(--b)}.eqbt .eqq{flex:1;min-width:180px}.eqbt .ib{padding:6px 10px;font-size:13px}
.eql{max-height:260px;overflow-y:auto;padding:0 8px}
.eqr{font-size:13px}.eqr span{display:flex;flex-direction:column}.eqr small{color:var(--m);font-size:11px}
.eqb .eqn{display:block;padding:6px 10px;border-top:1px solid var(--b);color:var(--m)}
.famn{color:var(--m);font-size:11px}
.g label.eqr{flex-direction:row;align-items:center;gap:10px;color:var(--t);font-size:13px;text-align:left}
.g label.eqr span{flex:1;min-width:0;text-align:left}
.g label.eqr input{width:18px;height:18px;flex:none;margin:0}
/* ID unique déjà pris : avertissement sous le champ */
.g label .cdup{color:#dc2626;font-weight:600;font-size:12px}
.g label .cdup:empty{display:none}
/* ID unique : rappel du format et ancien ID à mettre aux normes */
.g label .chint{color:var(--m);font-size:11px}
.g label .cdup.old{color:#c2410c;font-weight:600}
.g label[data-f="code"] input{text-transform:uppercase;letter-spacing:.03em}
/* colonne « Levées » des vérifications */
.ib.lvd{padding:4px 8px;font-size:12px}
/* modifier une vérification ou une intervention */
td.pdt{white-space:nowrap}
.ib.pe{padding:3px 6px;vertical-align:middle}.ib.pe .ic{width:14px;height:14px;margin:0}
.pefw{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--m)}
.pef{display:inline-flex;align-items:center;gap:6px;margin:0 8px 6px 0;padding:4px 8px;border:1px solid var(--b);border-radius:8px;color:var(--t);font-size:13px;background:#fff}
.pef .mini{height:28px;width:auto}.pef b{cursor:pointer;color:#dc2626;font-size:16px;line-height:1}
/* choix multiples dans un formulaire */
.g .fdv .mch{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--t)}
.g .fdv .mch label.chk{flex-direction:row;align-items:center;gap:6px;font-size:13px;color:var(--t)}
.g .fdv .mch label.chk input{width:16px;height:16px;margin:0}
/* exercice d'évacuation : déroulement (formulaire et fiche) */
.exq .exs,.ext tr.exs td{font-weight:700;font-size:13px;padding:6px 10px;border-radius:6px;margin-top:10px;color:#111}
.ext tr.exs td{border-radius:0}
.s-prep,.s-react{background:#d6dce5}.s-alarme{background:#f87171}.s-evac{background:#a3d977}.s-mat{background:#dae3f3}
.ext tr.s-prep td,.ext tr.s-react td{background:#d6dce5}.ext tr.s-alarme td{background:#f87171}.ext tr.s-evac td{background:#a3d977}.ext tr.s-mat td{background:#dae3f3}
.exq .exr{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;padding:8px 4px;border-bottom:1px solid var(--b);color:var(--t);font-size:13px}
.exq .exr .exrem{grid-column:1/-1;font-size:13px}
.exq .exr.bad{background:#fff7ed;box-shadow:inset 3px 0 0 #ea580c}
.exq .exbc{grid-template-columns:1fr}.exq .exbc .exrem{grid-column:auto}
.exo3{display:inline-flex;border:1px solid var(--b);border-radius:8px;overflow:hidden;background:#fff}
.g .exo3 label.exb{display:inline-flex;flex-direction:row;margin:0;cursor:pointer}
.exb{position:relative}.exb input{position:absolute;opacity:0;width:1px;height:1px;left:0;top:0}
.exb span{padding:6px 12px;font-size:13px;color:var(--t);border-left:1px solid var(--b);white-space:nowrap}
.exb:first-child span{border-left:0}
.exb input:checked+span{background:var(--p);color:#fff;font-weight:600}
.exb input:focus-visible+span{outline:2px solid var(--p);outline-offset:-2px}
.ext td.exc{text-align:center;font-size:16px;width:56px}.ext td.exc.ws{font-size:12px}
.ext tr.bad td{background:#fff7ed}
.exbl{display:flex;flex-wrap:wrap;gap:2px 14px;margin-top:4px;color:var(--m)}
/* exercice d'évacuation : signatures sur la fiche */
.exsg{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.exsg .sigimg{max-width:100%;max-height:120px;border:1px solid var(--b);border-radius:8px;background:#fff;margin-top:6px}
@media(max-width:600px){.exsg{grid-template-columns:1fr}}
/* saisie d'un exercice : choix sans bonne ou mauvaise réponse, et réponse intermédiaire */
.io.on.sel{background:var(--p);border-color:var(--p);color:#fff}
.io.on.mid{background:#ea580c;border-color:#ea580c;color:#fff}
/* ===== Maintenance : page des demandes (v2.29 : onglets avec les chiffres, recherche et filtres, une ligne par demande) ===== */
.dmtop{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin:-6px 0 14px}
.dmsub{margin:0;font-size:15px;color:#475467}.dmsub b.late{color:#b42318}
.dmnew{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 18px;border-radius:10px;font-size:15px;font-weight:650}
.dmchs{display:flex;flex-wrap:nowrap;gap:2px;border-bottom:1px solid var(--b);margin-bottom:14px;overflow-x:auto;scrollbar-width:thin}
.dmch{flex:none;white-space:nowrap;display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 14px;border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;color:#344054;font-size:15px;margin-bottom:-1px}
.dmch span{padding:1px 8px;border-radius:999px;font-size:12.5px;background:#eef2f6;color:#475467;font-weight:600}
.dmch.late span{background:#fde8e8;color:#b42318}
.dmch.on{border-bottom-color:var(--p);color:var(--p);font-weight:650}.dmch.on span{background:var(--p);color:#fff}
.dmbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:12px}
.dmq{flex:1 1 280px;display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border:1px solid #d0d5dd;border-radius:10px;color:#667085;background:#fff}
.dmq input{flex:1;border:0;outline:0;padding:8px 0;min-width:0;background:transparent;font-size:15px}
.dmfb{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:#344054}
.dmfb.on{border-color:var(--p);color:var(--p)}.dmfb span{background:var(--p);color:#fff;border-radius:999px;padding:0 7px;font-size:12px;font-weight:700}
.dmsw{display:inline-flex;border:1px solid #d0d5dd;border-radius:10px;overflow:hidden;background:#fff}
.dmsw button{border:0;border-radius:0;background:#fff;color:#344054;display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 14px}
.dmsw button+button{border-left:1px solid #d0d5dd}
.dmsw button.on{background:#f0e6ea;color:var(--p);font-weight:600}
.dmdots{position:relative}.dmdots summary{list-style:none;width:44px;height:44px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#344054}.dmdots summary::-webkit-details-marker{display:none}
.dmdots>div{position:absolute;right:0;top:50px;z-index:9;background:#fff;border:1px solid var(--b);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.12);padding:6px;min-width:200px}
.dmdots>div button{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:8px}.dmdots>div button:hover{background:#f3f4f6}
.dmfp{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:12px}.dmfp[hidden]{display:none}
.dmsel{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 4px 0 12px;border:1px solid #d1d5db;border-radius:8px;background:#fff;font-size:13px;color:var(--m)}
.dmsel select{border:0;background:transparent;font-weight:600;color:var(--t);max-width:220px;padding:6px 4px}
.dmhd,.dmr{display:grid;grid-template-columns:112px minmax(0,1fr) 150px 150px minmax(0,190px) 150px;gap:16px;align-items:center}
.dmhd{padding:0 18px 8px;font-size:12px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;color:#667085}
.dmg{background:#fff;border:1px solid var(--b);border-radius:14px;overflow:hidden;margin-bottom:16px}
.dmgh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 18px;background:#fbfcfd}.dmgh h3{margin:0;font-size:15.5px;font-weight:700}
.dmgd{width:10px;height:10px;border-radius:50%;background:#d0d5dd}.dmgd.r{background:#d92d20}.dmgd.o{background:#f79009}.dmgd.b{background:#98a2b3}.dmgd.g{background:#17b26a}
.dmr{padding:14px 18px;border-top:1px solid #eef0f3;cursor:pointer}
.dmr:hover{background:#f9fafb}.dmr.off .dm-t a{color:#475467}
.dm-p{display:flex;flex-direction:column;align-items:flex-start;gap:5px}
.dm-t{min-width:0}.dm-t a{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:15px;font-weight:650;line-height:1.3;color:var(--t);text-decoration:none}
.dm-e{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:13px;color:#475467;min-width:0}
.dmcode{font-weight:700;color:var(--p);background:#f0e6ea;border-radius:6px;padding:1px 7px;white-space:nowrap}.dmcode.more{font-weight:600}
.dmel{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dmref{font-size:12px;color:#98a2b3;font-variant-numeric:tabular-nums;white-space:nowrap}
.dmp{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:650;color:#667085;white-space:nowrap}
.dmbars{display:inline-flex;align-items:flex-end;gap:2px;height:16px}.dmbars i{display:block;width:4px;border-radius:1px;background:#d0d5dd}
.dmbars i:nth-child(1){height:6px}.dmbars i:nth-child(2){height:9px}.dmbars i:nth-child(3){height:12px}.dmbars i:nth-child(4){height:15px}
.dmp.l1 .dmbars i.on{background:#667085}.dmp.l2{color:#a16207}.dmp.l2 .dmbars i.on{background:#eab308}.dmp.l3{color:#c2410c}.dmp.l3 .dmbars i.on{background:#f97316}.dmp.l4{color:#b42318}.dmp.l4 .dmbars i.on{background:#dc2626}      /* priorité : faible gris, moyenne jaune, haute orange, urgente rouge */
.dm-d,.dm-s{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0}.dm-d small,.dm-s small{font-size:12.5px;color:#667085}.dm-s small{color:#344054;font-weight:550}
.dmdue{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:700;border-radius:8px;padding:3px 9px;white-space:nowrap}.dmdue .ic{width:14px;height:14px;margin:0}
.dmdue.late{color:#b42318;background:#fde8e8}.dmdue.soon{color:#93370d;background:#fef0c7}.dmdue.later{color:#344054;background:#eef2f6;font-weight:600}.dmdue.ok{color:#067647;background:#dcfae6}.dmdue.none{color:#667085;font-weight:500;padding:3px 0}
.dmstp{display:flex;gap:3px;width:100%;max-width:130px}.dmstp i{flex:1;height:7px;border-radius:4px;background:#e4e7ec}
.dmstp.s-y i{background:#fdf0c4}.dmstp.s-y i.on{background:#ca8a04}.dmstp.s-bl i{background:#dbe7fe}.dmstp.s-bl i.on{background:#2563eb}.dmstp.s-o i{background:#ffe4cc}.dmstp.s-o i.on{background:#ea580c}.dmstp.s-g i,.dmstp.s-g i.on{background:#16a34a}.dmstp.s-n i{background:#e4e7ec}
.dm-s small.dmsl{font-weight:650}.dmsl.s-y{color:#854d0e}.dmsl.s-bl{color:#1e40af}.dmsl.s-o{color:#9a3412}.dmsl.s-g{color:#166534}.dmsl.s-n{color:#667085}
.dm-w{display:flex;align-items:center;gap:9px;min-width:0}
.dmav{flex:none;width:32px;height:32px;border-radius:50%;background:#eef2f6;color:#344054;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.dmav.none{color:#98a2b3;background:#f2f4f7}
.dmwn{font-size:13px;color:#344054;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-a{display:flex;justify-content:flex-end}
.dma{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;min-height:38px;padding:0 12px;border:1px solid #dcc9d0;border-radius:9px;background:#fff;color:var(--p);font-size:13.5px;font-weight:600}.dma:hover{background:#f0e6ea}.dma .ic{width:15px;height:15px;margin:0}
.dmm{display:block;width:100%;text-align:left;padding:12px 18px;border:0;border-top:1px solid #eef0f3;background:#fff;color:var(--p);font-weight:600;cursor:pointer}
.dmcols{display:grid;gap:14px;align-items:start;overflow-x:auto}
.dmcol{background:#eef1f4;border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.dmcol .dmgh{padding:4px 4px 2px;background:transparent}.dmcol .dmgh h3{font-size:15px}
.dmcol .dmm{border:0;border-radius:8px;background:transparent;padding:6px}
.dmk{background:#fff;border:1px solid var(--b);border-radius:12px;padding:12px 13px;display:flex;flex-direction:column;gap:8px;cursor:pointer}.dmk.late{border-color:#fecdca}
.dmk:hover{border-color:var(--p)}.dmk>a{font-size:14.5px;font-weight:650;line-height:1.35;color:var(--t);text-decoration:none}
.dmkh{display:flex;justify-content:space-between;align-items:center;gap:8px}.dmkh small{color:#98a2b3;font-variant-numeric:tabular-nums}
.dmkf{display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:8px;border-top:1px solid #f0f2f5}
.dmkd{display:flex;flex-direction:column;gap:2px}.dmkd small{font-size:12px;color:#667085}
.dmk .dma{width:100%;justify-content:center}
@media(max-width:1250px){.dmhd,.dmr{grid-template-columns:104px minmax(0,1fr) 140px 130px}.dm-w,.dm-a,.dmhd span:nth-child(n+5){display:none}}
@media(max-width:760px){.dmhd{display:none}.dmcols{grid-template-columns:1fr!important}
 .dmr{grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"p d" "t t" "s w";gap:8px 12px;padding:13px 14px}
 .dm-p{grid-area:p}.dm-t{grid-area:t}.dm-d{grid-area:d;flex-direction:row;align-items:center}.dm-d small{display:none}.dm-s{grid-area:s;flex-direction:row;align-items:center;gap:10px}.dm-s .dmstp{width:72px}.dm-w{grid-area:w;justify-content:flex-end;display:flex!important}.dm-w .dmav{display:none}.dm-p{flex-direction:row;align-items:center}
 .dm-t a{white-space:normal;font-size:16px;font-weight:700;line-height:1.3}.dmref{display:none}
 .dmch{min-height:42px;padding:0 10px;font-size:14px}.dmq{flex-basis:100%}}
/* inspection : suite donnée à une anomalie (demande, ignorée) */
.anos{display:inline-flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
/* téléphone : les boutons d'en-tête d'une fiche passent à la ligne au lieu de déborder */
@media(max-width:600px){.vh .vt>:last-child{flex:1 1 100%;min-width:0;display:flex;flex-wrap:wrap;gap:8px}.vh .vt>:last-child>button{margin:0}}
/* ===== éditeur des modèles d'inspection ===== */
#m .box.wide{max-width:900px}
.ted{display:flex;flex-direction:column;gap:14px}
.tes{border:1px solid var(--b);border-radius:12px;background:#fff;overflow:hidden}
.tes.dov{outline:2px dashed var(--p);outline-offset:-2px}
.tesh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:#f8faf9;border-bottom:1px solid var(--b)}
.tetg{border:0;background:transparent;font-size:16px;padding:4px 6px;cursor:pointer;color:var(--p)}
.tesn{flex:1 1 260px;display:flex;flex-direction:column;gap:2px;min-width:0}
.tesn input{border:1px solid transparent;background:transparent;border-radius:6px;padding:4px 6px;width:100%}
.tesn input:hover,.tesn input:focus{border-color:var(--b);background:#fff}
.tegp{font-size:12px;color:var(--m)}.tetl{font-size:16px;font-weight:800;color:var(--t)}
.terp{white-space:nowrap}.terl{max-width:220px}
.tesa{display:flex;gap:4px;margin-left:auto}
.tecl{margin:8px 14px}
.tehd{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(170px,32%) 36px;gap:8px;padding:6px 12px;font-size:12px;color:var(--m);border-bottom:1px solid var(--b)}
.tehd span:first-child{grid-column:2}
.teq{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(170px,32%) 36px;gap:8px;align-items:center;padding:6px 12px 6px calc(12px + var(--d,0)*22px);border-bottom:1px solid #eef0f2;background:#fff}
.teq.open{background:#faf5f7}.teq.drag{opacity:.4}.teq.dov{box-shadow:inset 0 3px 0 var(--p)}
.teh{cursor:grab;color:#9ca3af;font-size:14px;letter-spacing:-2px;user-select:none;text-align:center}
.teqq{display:flex;align-items:flex-start;gap:4px;min-width:0;flex-wrap:wrap}
.teqq .req{color:#dc2626;margin-top:6px}
.tein{flex:1 1 200px;border:1px solid transparent;background:transparent;border-radius:6px;padding:6px 8px;resize:none;font:inherit;line-height:1.35;min-height:34px;overflow:hidden}
.tein:hover,.tein:focus{border-color:var(--b);background:#fff}.tein.it{font-style:italic;color:#4b5563}
.telk{flex-basis:100%;margin-left:8px;color:var(--p);font-size:11.5px}
.tety{display:flex;align-items:center;min-height:36px;border:1px solid var(--b);border-radius:8px;background:#fff;padding:4px 8px;cursor:pointer;text-align:left;min-width:0;overflow:hidden}
.tety:hover{border-color:var(--p)}.tety.ro{cursor:default}
.tchs{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.tchs small{color:var(--m)}
.tch{font-style:normal;font-size:12px;font-weight:600;padding:2px 8px;border-radius:999px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff);white-space:nowrap}
.tty{display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}.tty b{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:24px;border-radius:50%;font-size:11px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff)}
.tex{border:0;background:transparent;font-size:16px;cursor:pointer;color:var(--m);height:36px}
.telog{padding:4px 12px 4px calc(36px + var(--d,0)*22px);font-size:12px;color:#92400e;background:#fffbeb;border-bottom:1px solid #fef3c7}
.teop{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;padding:10px 14px 12px 46px;background:#faf5f7;border-bottom:1px solid var(--b)}
.teop label:not(.chk){display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--m);min-width:170px;max-width:280px;flex:1 1 200px}
.tepv,.telg{display:flex;flex-wrap:wrap;gap:6px;align-items:center;flex-basis:100%;font-size:13px}
.telg select{max-width:340px}
.tpc{border:1px solid var(--b);border-radius:999px;background:#fff;padding:3px 10px;font-size:12px;cursor:pointer}.tpc.on{border-color:var(--p);background:#f2e6eb;color:var(--p);font-weight:600}
.tebtn{display:flex;gap:6px;flex-wrap:wrap;flex-basis:100%}
.tebar{margin:8px 12px}
@media(max-width:700px){.tehd{display:none}.teq{grid-template-columns:18px minmax(0,1fr) 32px;padding-left:calc(8px + var(--d,0)*12px)}.teq .tety{grid-column:2/3;grid-row:2}.teop{padding-left:14px}}
/* choix du type de réponse */
.tepk{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:0;border:1px solid var(--b);border-radius:10px;overflow:hidden;margin-bottom:10px}
.tepl{padding:12px;border-right:1px solid var(--b);max-height:62vh;overflow:auto}.tepo{padding:12px;background:#fafafa}
.tepg{display:flex;justify-content:space-between;align-items:center;font-size:12.5px;color:var(--m);margin:10px 4px 4px}
.tepr{display:flex;align-items:center;gap:6px;border-radius:8px}.tepr.on{background:#f2e6eb}
.tepu{flex:1;display:flex;flex-wrap:wrap;gap:4px;align-items:center;border:0;background:transparent;padding:8px 6px;cursor:pointer;text-align:left;border-radius:8px;font:inherit}
.tepu:hover{background:#f5f1f3}
.tepi{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:9px 8px;border-radius:8px;cursor:pointer;font:inherit;text-align:left}
.tepi:hover,.tepi.on{background:#f2e6eb}.tepi b{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;border-radius:50%;font-size:11px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff)}
@media(max-width:700px){.tepk{grid-template-columns:1fr}.tepl{border-right:0;border-bottom:1px solid var(--b);max-height:none}}
/* éditeur d'un jeu de réponses */
.sel{border:1px solid var(--b);border-radius:10px;overflow:hidden;margin:8px 0}
.selh,.selr{display:grid;grid-template-columns:62px minmax(120px,1fr) auto auto auto 80px 34px;gap:8px;align-items:center;padding:6px 10px}
.selh{font-size:12px;color:var(--m);background:#fafafa}.selh span:first-child{grid-column:2}
.selr{border-top:1px solid #eef0f2}.selm{display:flex;gap:2px}.selm .ib{padding:2px 6px}
.secl{display:flex;gap:4px}.sec{width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:var(--c);box-shadow:0 0 0 1px #d1d5db;cursor:pointer;padding:0}.sec.on{box-shadow:0 0 0 2px var(--c)}
.sept{width:80px}
@media(max-width:700px){.selh{display:none}.selr{grid-template-columns:54px minmax(0,1fr) 34px}.selr>:nth-child(n+3):not(:last-child){grid-column:2}}
/* bibliothèque de documents : dossiers et catégories */
.gdfs{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin:0 0 14px}
.gdf{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;border:1px solid var(--b);border-radius:12px;background:#fff;padding:10px 12px;cursor:pointer;font:inherit;color:var(--t)}
.gdf:hover{border-color:var(--p)}.gdf.on{border-color:var(--p);background:#f2e6eb;box-shadow:inset 0 0 0 1px var(--p)}
.gdf span{font-size:20px}.gdf b{font-size:14px;line-height:1.25}.gdf small{color:var(--m)}
.gdf.gdm{border-style:dashed;background:#fafafa}
.gcl{border:1px solid var(--b);border-radius:10px;overflow:hidden;margin-bottom:10px}
.gcr{display:grid;grid-template-columns:62px minmax(0,1fr) auto 34px;gap:8px;align-items:center;padding:6px 10px;border-top:1px solid #eef0f2}.gcr:first-child{border-top:0}
.gca{display:flex;gap:8px}.gca input{flex:1}
.tein{field-sizing:content;flex:1 1 0;min-width:0}
/* inspection ou exercice en cours sur téléphone ou tablette : tout l'écran pour la saisie (ni en-tête ni menu ; « ✕ Quitter » reste en haut) */
@media (max-width:900px),(pointer:coarse){
 body.inrun{padding-left:0}
 body.inrun>header,body.inrun>nav{display:none}
 body.inrun main{padding:0 12px 40px}
 body.inrun .ihd{padding-top:calc(10px + env(safe-area-inset-top,0px))}
 body.inrun .inav{left:0}
}
/* réponse « Approprié » : anomalie signalée en orange */
.io.o0{border-color:#fdba74;color:#9a3412}
/* « Ignorer » une anomalie : déjà signalée dans une demande en cours */
.igk{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}
.igk>label.chk{align-items:flex-start}
#ig_dl{margin:0 0 4px 26px;display:flex;flex-direction:column;gap:6px}
#ig_dl[hidden]{display:none}
.igl{max-height:280px;overflow:auto;border:1px solid var(--b);border-radius:10px}
.igd{display:flex;align-items:center;gap:10px;padding:8px 10px;border-top:1px solid #eef0f2;cursor:pointer}.igd:first-child{border-top:0}
.igd:hover{background:#faf5f7}.igd span{flex:1;min-width:0}.igd small{display:block}
.igd input{flex:none;width:auto}
.igd .bd{flex:none}
/* fenêtre « Ignorer » : demandes détaillées */
.igd{align-items:flex-start}
.igph{flex:none;width:56px;height:56px;border-radius:8px;object-fit:cover;background:#f3f4f6;cursor:zoom-in}
.igph.none{display:flex;align-items:center;justify-content:center;font-size:20px;opacity:.35;cursor:default}
.igt{display:flex;flex-direction:column;gap:2px}.igt small{font-size:12px;line-height:1.35}
.igm{font-style:normal;font-size:11px;color:var(--p);background:#f2e6eb;border-radius:999px;padding:1px 7px;margin-left:4px;white-space:nowrap}
.igds{color:#4b5563!important}
.igb{display:flex;flex-direction:column;gap:4px;align-items:flex-end;flex:none}
#m .box .igl{max-height:46vh}
@media(max-width:600px){.igph{width:46px;height:46px}.igb{flex-direction:row;flex-wrap:wrap;justify-content:flex-end;max-width:90px}}
.ang [id^=an_lw] label.chk{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;text-align:left}.ang [id^=an_lw] label.chk input{width:auto;margin:0}
.dmso{border-color:#dcc9d0}
/* plans : locaux du niveau MULTIZONE (présents sur tous les étages) */
.zp.mz{stroke-dasharray:8 5}
.zl.mz{color:#1e40af}
.pll .ib.sm{white-space:nowrap}
/* Pictogrammes à traits dans les textes et les boutons (remplacent les émojis) : taille et couleur du texte */
.ie{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.2em;margin-right:.35em;flex:none}
.ie.i0{margin-right:0}
.ib>.ie,.btn>.ie{margin-right:0}
.bd .ie{width:1em;height:1em;vertical-align:-.15em;margin-right:.25em}.bd .ie.i0{margin-right:0}
.tty b .ie,.tepi b .ie{margin:0;width:14px;height:14px;vertical-align:middle}
.gdf span .ie{width:22px;height:22px;margin:0;color:var(--p)}
.igph.none .ie{width:22px;height:22px;margin:0}
.ws .ie,small .ie{opacity:.85}
.car2 .ie{width:14px;height:14px;margin:0;vertical-align:-2px}
input.srch{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:9px center;background-size:15px 15px;padding-left:32px}
.osym .ie{width:1.3em;height:1.3em;vertical-align:-.28em;stroke-width:2.6}
.bd .osym .ie,.tch .osym .ie{width:1.15em;height:1.15em;vertical-align:-.2em}
.io.g0 .osym{color:#16a34a}.io.b0 .osym{color:#dc2626}
.igd .igph{flex:none}
.plic{position:relative;padding-left:21px}.plic>.ie:first-child,.plic>.ws:first-child{position:absolute;left:0;top:.1em}
/* plans de prévention : saisie pas à pas */
.pvl{display:flex;flex-direction:column;gap:3px;margin:0 0 10px;font-size:15px}.pvl small{color:var(--m);font-size:12px}.pvl input,.pvl select,.pvl textarea{width:100%}
.pvg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}
@media(max-width:600px){.pvg{grid-template-columns:1fr}}
.pvpa{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:8px;margin:0 0 8px}
@media(max-width:600px){.pvpa{grid-template-columns:minmax(0,1fr) auto}.pvpa input:nth-child(2){grid-row:2;grid-column:1}}
.iopts.pvcol{flex-direction:column;align-items:stretch}.iopts.pvcol .io.chip{text-align:left}
.pvk{padding:0;overflow:hidden}
.pvkh{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;padding:14px;font:inherit;text-align:left;cursor:pointer;color:var(--t)}
.pvkh b{flex:1;font-size:15px;line-height:1.3}.pvkh .ie{width:20px;height:20px;color:var(--m)}
.pvr{display:flex;align-items:center;gap:8px;padding:6px 10px 6px 14px;border-top:1px solid #eef0f2}
.pvr.on{background:#f9f0f3}
.pvr.pvh{font-weight:600;font-size:14px;color:#374151;padding:10px 14px 4px}
.pvr.pvs{padding-left:34px}
.pvm{flex:1;display:flex;align-items:flex-start;gap:10px;border:0;background:transparent;padding:6px 0;font:inherit;font-size:15px;text-align:left;cursor:pointer;color:var(--t);min-width:0;line-height:1.35}
.pvx{flex:none;width:22px;height:22px;border:2px solid #9ca3af;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;color:#fff;margin-top:1px}
.pvr.on .pvx{background:var(--p);border-color:var(--p)}.pvx .ie{width:15px;height:15px;stroke-width:3}
.pvw{flex:none;display:flex;gap:6px}
.pvc{min-width:46px;height:40px;border:2px solid var(--b);border-radius:9px;background:#fff;font:inherit;font-weight:700;font-size:14px;color:#6b7280;cursor:pointer;padding:0 8px;display:inline-flex;align-items:center;justify-content:center}
.pvc.on{background:var(--p);border-color:var(--p);color:#fff}
.pvc.pvd{min-width:40px;color:#b91c1c}
.pvr.pvcu .pvm span:last-child{font-style:italic}
.pvxa{display:flex;gap:8px;padding:10px 14px 14px;border-top:1px solid #eef0f2}.pvxa input{flex:1;min-width:0}
@media(max-width:600px){.pvr{flex-wrap:wrap;padding:6px 10px}.pvw{margin-left:32px}.pvr.pvs .pvw{margin-left:32px}.pvc{height:38px}}
.pvcr{margin:0 0 8px}.pvcr b{display:block;font-size:14px}.pvcr ul{margin:4px 0 0 0;padding-left:20px}.pvcr li{margin:2px 0;font-size:14px}
/* lecture des PDF dans l'application */
body.pfopen{overflow:hidden}
.pdfv{position:fixed;inset:0;z-index:60;background:#525659;display:flex;flex-direction:column}
.pfbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:#1f2937;color:#fff;padding:8px 10px calc(8px);padding-top:calc(8px + env(safe-area-inset-top,0px))}
.pft{flex:1;min-width:0;display:flex;align-items:center;gap:6px;font-size:14px}.pft span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pft .ie{flex:none}
.pfn{font-size:13px;color:#d1d5db;white-space:nowrap}
.pfz,.pfa{display:flex;gap:6px}
.pfbar .ib{background:#374151;border-color:#4b5563;color:#fff;padding:8px 10px}
.pfbody{flex:1;overflow:auto;-webkit-overflow-scrolling:touch;padding:12px;display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.pfp{position:relative;background:#fff;box-shadow:0 2px 10px #0006;flex:none;max-width:none;margin:0 auto}
.pfp canvas{display:block}
.pfl{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:14px}
.pfmsg{margin:auto;max-width:460px;background:#fff;border-radius:12px;padding:18px;text-align:center;color:var(--t)}
.ib.pfw{padding:5px 10px}
@media(max-width:600px){.pfbar .ib span{display:none}.pfn{order:5;width:100%;text-align:center}.pfbody{padding:8px}}
/* recherche globale */
.gsb{display:inline-flex;align-items:center;gap:8px;min-width:280px;padding:8px 12px;border:1px solid var(--b);border-radius:10px;background:#f6f7f9;color:var(--m);font-size:14px;cursor:pointer;margin-right:6px}
.gsb:hover{border-color:var(--p);color:var(--t)}.gsb span{flex:1;text-align:left}.gsb .ie{width:17px;height:17px;color:var(--p)}
.gsb kbd,.gsh kbd{font:11px system-ui,sans-serif;border:1px solid #d1d5db;border-bottom-width:2px;border-radius:4px;padding:1px 5px;background:#fff;color:var(--m)}
@media(max-width:900px){.gsb{min-width:0}.gsb kbd{display:none}}
@media(max-width:600px){.gsb{padding:8px;border:0;background:transparent;margin:0}.gsb span{display:none}.gsb .ie{width:22px;height:22px}}
body.gsopen{overflow:hidden}
.gs{position:fixed;inset:0;z-index:55;background:#0f172a73;display:flex;justify-content:center;align-items:flex-start;padding:7vh 16px 16px}
.gsbox{width:100%;max-width:720px;max-height:82vh;display:flex;flex-direction:column;background:#fff;border-radius:14px;box-shadow:0 20px 50px #0005;overflow:hidden}
.gsin{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--b)}.gsin>.ie{width:20px;height:20px;color:var(--p);flex:none}
.gsin input{border:0;font-size:17px;padding:8px 2px;outline:none;flex:1;min-width:0;background:transparent}
.gsin .ib{padding:8px}
.gsr{overflow-y:auto;padding:6px 6px 10px;-webkit-overflow-scrolling:touch}
.gsn{font-size:12px;color:var(--m);padding:6px 10px 0}
.gsg{font-size:12px;font-weight:700;color:var(--p);text-transform:uppercase;letter-spacing:.4px;padding:12px 10px 4px}.gsg small{color:var(--m);font-weight:400}
.gsi{display:flex;align-items:center;gap:10px;width:100%;border:0;background:transparent;text-align:left;padding:9px 10px;border-radius:10px;font:inherit;color:var(--t);cursor:pointer}
.gsi.on{background:#f2e6eb}
.gsic{flex:none;width:34px;height:34px;border-radius:9px;background:#f5f1f3;display:flex;align-items:center;justify-content:center}.gsic .ic{margin:0;color:var(--p);width:18px;height:18px}
.gst{flex:1;min-width:0;display:flex;flex-direction:column}.gst b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gst small{color:var(--m);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gst mark{background:#fde68a;color:inherit;border-radius:2px;padding:0 1px}
.gsi .bd{flex:none}
.gsm{display:block;margin:4px 10px 0;border:0;background:transparent;color:var(--p);font-weight:600;padding:6px 0;cursor:pointer}
.gsh{color:var(--m);text-align:center;padding:24px 16px;margin:0;line-height:1.6}
@media(max-width:600px){.gs{padding:0;background:#fff}.gsbox{max-width:none;max-height:none;height:100%;border-radius:0;box-shadow:none}.gsin{padding-top:calc(10px + env(safe-area-inset-top,0px))}.gsi .bd{display:none}}
tr.gsflash td{animation:gsfl 2.6s ease-out}
@keyframes gsfl{0%,40%{background:#fde68a}100%{background:transparent}}
.gsin input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}
/* scan des QR codes */
.hqb{border:0;background:none;padding:6px 8px;margin:0 2px 0 0;cursor:pointer;color:var(--p);border-radius:8px;display:inline-flex;align-items:center}
.hqb:hover{background:#f3f4f6}.hqb .ie{width:22px;height:22px}.hqb[hidden]{display:none}
body.qropen{overflow:hidden}
.qsc{position:fixed;inset:0;z-index:70;background:#000;color:#fff;overflow:hidden}
.qsc video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.qscf{position:absolute;left:50%;top:46%;width:min(68vw,68vh,340px);aspect-ratio:1;transform:translate(-50%,-50%);box-shadow:0 0 0 200vmax #0008;border-radius:14px}
.qscf i{position:absolute;width:38px;height:38px;border:4px solid #fff;border-radius:4px}
.qscf i:nth-child(1){left:-2px;top:-2px;border-right:0;border-bottom:0;border-top-left-radius:14px}.qscf i:nth-child(2){right:-2px;top:-2px;border-left:0;border-bottom:0;border-top-right-radius:14px}
.qscf i:nth-child(3){left:-2px;bottom:-2px;border-right:0;border-top:0;border-bottom-left-radius:14px}.qscf i:nth-child(4){right:-2px;bottom:-2px;border-left:0;border-top:0;border-bottom-right-radius:14px}
.qsct{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;padding-top:calc(12px + env(safe-area-inset-top,0px));background:linear-gradient(#000a,#0000)}
.qsct b{display:flex;align-items:center;gap:8px;font-size:16px}
.qsc .ib{background:#ffffff1f;border-color:#ffffff40;color:#fff}.qsc .ib.ibp{background:var(--p);border-color:var(--p)}.qsc .ib.on{background:#fde047;color:#111;border-color:#fde047}
.qscb{position:absolute;left:0;right:0;bottom:0;padding:14px 16px calc(18px + env(safe-area-inset-bottom,0px));background:linear-gradient(#0000,#000c 30%);text-align:center}
.qscb p{margin:0 auto 12px;max-width:520px;font-size:15px;line-height:1.4}.qscb p.err{background:#7f1d1d;color:#fff;border-radius:10px;padding:10px 12px}
.qsc [hidden]{display:none!important}
.qsca{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:8px}
.qsck{display:flex;gap:8px;max-width:420px;margin:10px auto 0}.qsck input{flex:1;min-width:0;font-size:17px;text-transform:uppercase;color:#111}
.ib.qrfb{margin-top:6px;align-self:flex-start;padding:7px 12px;font-size:13px;border-color:var(--p);color:var(--p)}
label.qrok select{box-shadow:0 0 0 3px #86efac;border-color:#16a34a}
/* dupliquer une fiche */
.dupn{display:flex;gap:10px;align-items:flex-start;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:10px;padding:10px 12px;margin:-4px 0 14px;font-size:13px;line-height:1.45}
.dupn .ie{flex:none;margin:2px 0 0;width:16px;height:16px}
/* messages types */
.msgl{display:flex;flex-direction:column;gap:8px}
.msgi{display:flex;align-items:center;gap:12px;border:1px solid var(--b);border-radius:10px;padding:10px 12px;flex-wrap:wrap}
.msgi>div{flex:1;min-width:220px;display:flex;flex-direction:column;gap:2px}.msgi small{color:var(--m)}
.msgv{margin:10px 0 0}.msgv>div{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}
.msgc{display:inline-flex;flex-direction:column;align-items:flex-start;gap:1px;border:1px solid #c7d2fe;background:#eef2ff;color:#3730a3;border-radius:8px;padding:5px 9px;font:12px ui-monospace,Menlo,Consolas,monospace;cursor:pointer;text-align:left}
.msgc span{font:11px system-ui,sans-serif;color:#6366f1}
.msgp{margin:12px 0 0;border:1px dashed #cbd5e1;border-radius:10px;padding:10px 12px;background:#f8fafc}.msgp>small{color:var(--m)}
.msgp b{display:block;margin:6px 0}.msgp pre{white-space:pre-wrap;font:13px/1.45 system-ui,sans-serif;margin:0}
#mt_s,#mt_b{font-weight:400}
/* relances des prestataires */
.rlc{border-left:5px solid #ea580c}
.rlr{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--b,#e5e7eb)}
.rlr:first-of-type{border-top:0}
.rli{flex:none;width:30px;height:30px;border-radius:8px;background:#fff7ed;display:flex;align-items:center;justify-content:center}.rli .ic{margin:0;color:#ea580c}
.rlt{flex:1;min-width:0}.rlt a{color:inherit;text-decoration:none}.rlt a:hover b{text-decoration:underline}.rlt small{display:block;color:var(--m);font-size:12px;margin-top:2px}
.rlb{flex:none;white-space:nowrap;padding:6px 10px;font-size:13px}
.rlbox{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;border:1px solid #fde68a;background:#fffbeb;border-radius:10px;padding:8px 10px}
.rlbox>span:first-child{flex:1;min-width:200px;font-size:13px}
.rlbox.due{border-color:#fdba74;background:#fff7ed}
@media(max-width:600px){.rlr{flex-wrap:wrap;row-gap:6px}.rlt{flex:1 1 calc(100% - 44px)}.rlr .bd{margin-left:40px}.rlr .rlb{margin-left:auto}.rlbox .rlb{margin-left:auto}}
.rlx{background:none;border:0;padding:2px 0;color:var(--p);text-decoration:underline;font-size:13px}
#rl_s,#rl_b,#dc_s,#dc_b,#ca_s,#ca_b,#lv_s,#lv_b,#pa_s,#pa_b{font-weight:400}      /* texte des messages préparés en caractères normaux, comme dans l'éditeur des messages types */
/* listes en cartes sur téléphone (cartes.js) */
.lcs{display:flex;align-items:center;gap:8px;margin:0 0 10px;flex-wrap:wrap}.lcs label{font-size:13px;color:var(--m)}
.lcs select{width:auto;flex:1 1 120px;min-width:0;max-width:100%}.lcsd{white-space:nowrap;font-size:13px;padding:7px 10px}
.lcdw{display:flex;flex-direction:column;gap:8px}
.lcd{background:#fff;border:1px solid var(--b);border-left:4px solid var(--b);border-radius:10px;padding:10px 6px 10px 12px}
.lcd.lcdo{cursor:pointer}.lcd.lcdo:active{background:#f6f7f9}.lcd:focus-visible{outline:2px solid var(--p);outline-offset:1px}
.lcd.off{opacity:.65}
.lcdh{display:flex;align-items:center;gap:10px}
.lcda{flex:none}.lcda .avs{width:36px;height:36px}
.lcdt{flex:1;min-width:0}.lcdt>b{display:block;font-size:15px;line-height:1.3;overflow-wrap:anywhere}.lcdt>small{display:block;color:var(--m);font-size:12.5px;margin-top:2px;overflow-wrap:anywhere}
.lcdk{flex:none;border:0;background:none;font-size:20px;line-height:1;padding:2px 10px;margin:-2px 0 0}
.lcdb{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.lcdf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 12px;margin:8px 6px 0 0}
.lcdf>div{min-width:0}.lcdf small{display:block;color:var(--m);font-size:11.5px;line-height:1.25}.lcdf>div>span{display:block;font-size:13.5px;overflow-wrap:anywhere}
@media(max-width:600px){header{padding:8px 8px 8px 12px;gap:2px;flex-wrap:nowrap}header h1{font-size:19px;gap:8px;min-width:0;white-space:nowrap}header .lgo{height:34px;width:34px}}
/* petits tableaux en cartes sur téléphone (cartes.js) */
@media(max-width:600px){
 .tw.tkc{border:0;background:none;overflow:visible;border-radius:0}
 .tw.tkc>table,.tw.tkc>table>tbody{display:block;width:100%}
 .tw.tkc>table>thead{display:none}
 .tw.tkc>table>tbody>tr{display:flex;flex-wrap:wrap;align-items:flex-start;gap:6px 12px;background:#fff;border:1px solid var(--b);border-radius:10px;padding:9px 12px;margin:0 0 8px}
 .tw.tkc>table>tbody>tr>td{display:block;padding:0;border:0;background:none!important;flex:1 1 calc(50% - 12px);min-width:0;font-size:13.5px;white-space:normal;overflow-wrap:anywhere;text-align:left}
 .tw.tkc>table>tbody>tr>td[data-l]::before{content:attr(data-l);display:block;color:var(--m);font-size:11.5px;line-height:1.25;font-weight:400}
 .tw.tkc>table>tbody>tr>td.tkt{flex-basis:100%;font-weight:600;font-size:14.5px}
 .tw.tkc>table>tbody>tr>td.tkt::before{display:none}
 .tw.tkc>table>tbody>tr>td.tkf{flex-basis:100%}
 .tw.tkc>table>tbody>tr>td.tke{display:none}
 .tw.tkc>table>tbody>tr>td:not([data-l]):not(.tkt):not(.tkf){flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
 .tw.tkc>table>tbody>tr.tkr{position:relative}.tw.tkc>table>tbody>tr.tkr>td.tkt{padding-right:34px}
 .tw.tkc>table>tbody>tr>td.tkm{position:absolute;top:4px;right:0;display:block;flex:none}.tw.tkc td.tkm button.kb{font-size:20px;padding:4px 12px;margin:0}
 .dg{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px}
 .lrp{flex-wrap:wrap}.lrp>span:first-child{flex:1 1 100%!important}.lrp>.bd{margin-left:0}.lrp>.dmb{margin-left:auto}
}
/* plan de prévention signé */
.pgs{border-left:5px solid #ea580c}.pgs.g{border-left-color:#16a34a}.pgs.r{border-left-color:#dc2626}.pgs.n{border-left-color:#9ca3af}
.pgsl{margin:4px 0 0;padding-left:22px}.pgsl li{margin:4px 0}.pgsl li.ok{color:#15803d}
.pgsf{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:4px 0 0}
.pgsn{margin:8px 0 0;font-size:13px;color:var(--m)}
/* téléphone : un mot très long (nom de fichier, adresse mail, référence) passe à la ligne au lieu d'élargir la page */
@media(max-width:600px){body{overflow-wrap:anywhere}.bd:not(a),nav,h1,kbd,th,.tabs,input,select,textarea{overflow-wrap:normal}.dmsel,.sh>b,.cpt,.gtabs{overflow-wrap:break-word}a.bd{max-width:100%}select{max-width:100%}.g>label,.g1>label{min-width:0}}

/* menu de gauche avec le nom de chaque entrée (grand écran) ; icônes seules sur tablette et téléphone */
.nvl{display:none}
@media(min-width:901px){body{padding-left:216px}nav{width:206px;align-items:stretch;padding:calc(16px + env(safe-area-inset-top,0px)) 10px 14px}
 nav button{width:auto;height:42px;justify-content:flex-start;gap:12px;padding:0 12px}nav button .ic{width:21px;height:21px}
 .nvl{display:inline;font-size:14.5px;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 nav .ver{padding-left:12px}.inav{left:216px}nav button .ntd{left:26px;right:auto}}
/* onglets d'une entrée regroupée (Accueil : tableau de bord, planning ; Pilotage : analyse, rapports) */
.gtabs{display:inline-flex;gap:4px;background:#ece6e8;border-radius:12px;padding:4px;margin:0 0 14px;max-width:100%;overflow-x:auto}
.gtabs button{border:0;background:none;border-radius:9px;padding:8px 16px;font-weight:600;color:#374151;white-space:nowrap}
.gtabs button.on{background:#fff;color:var(--p);box-shadow:0 1px 2px #0002}
.gtt{margin:0 0 12px}@media screen{.gth{display:none}}      /* titre d'Accueil / Actifs / Pilotage au-dessus des onglets ; titre de la page masqué s'il répète l'onglet */
/* onglets de chaque module (Maintenance, Contrôles, Sécurité, Documents, Rapports, Analyse, Administration) : même style que les onglets Accueil / Actifs / Pilotage */
.tabs{display:inline-flex;gap:4px;background:#ece6e8;border-radius:12px;padding:4px;margin:0 0 14px;max-width:100%;overflow-x:auto;vertical-align:top}
.tabs button{border:0;background:none;border-radius:9px;padding:8px 14px;font-weight:600;color:#374151;white-space:nowrap;box-shadow:none;margin:0}
.tabs button:hover,.gtabs button:hover{background:#ffffff8c}
.tabs button.on,.tabs button.on:hover,.gtabs button.on:hover{background:#fff;color:var(--p);box-shadow:0 1px 2px #0002}
.tabs .ic{color:#6b7280}.tabs button.on .ic{color:var(--p)}
.tabs button:focus-visible,.gtabs button:focus-visible{outline:2px solid var(--p);outline-offset:1px}
.mn .madm{display:flex;align-items:center;gap:8px}.mn .madm .ic{margin:0;width:18px;height:18px}

/* téléphone : barre de navigation en bas d'écran */
.bnav{display:none}
@media(max-width:600px){body{padding-left:0;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}#nav{display:none}
 .bnav{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:8;background:#fff;border-top:1px solid var(--b);padding:3px 2px env(safe-area-inset-bottom,0px);box-shadow:0 -2px 10px #0000000d}
 .bnav button{flex:1;min-width:0;border:0;background:none;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:3px;padding:7px 0 6px;font-size:11.5px;color:#6b7280;position:relative;overflow-wrap:normal}
 .bnav button span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .bnav .ic{width:23px;height:23px;margin:0;color:#6b7280}.bnav button.on{color:var(--p);font-weight:600}.bnav button.on .ic{color:var(--p)}
 .bnav .ntd{top:3px;right:auto;left:calc(50% + 6px)}
 .bnvs{position:fixed;inset:0;z-index:7;background:#0006;display:flex;align-items:flex-end}
 .bnvs>div{background:#fff;width:100%;border-radius:16px 16px 0 0;padding:12px 12px calc(76px + env(safe-area-inset-bottom,0px));box-shadow:0 -4px 16px #0002}
 .bnvs b{display:block;margin:2px 6px 10px;font-size:13px;color:var(--m)}
 .bnvg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 .bnvg button{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 4px;border:1px solid var(--b);border-radius:12px;background:#f9fafb;font-size:13px;color:var(--t)}
 .bnvg button.on{border-color:var(--p);color:var(--p);font-weight:600}.bnvg .ic{width:26px;height:26px;margin:0;color:var(--p)}.bnvg .ntd{top:8px;right:auto;left:calc(50% + 8px)}
 .inav{left:0}body.inrun .bnav{display:none}body.inrun{padding-bottom:0}
 .toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}body.inrun .toast{bottom:100px}}

/* « Plus d'actions » des barres d'outils (téléphone) ; onglets sur une ligne qui défile */
.tbm{display:none}
@media(max-width:600px){.tool>.tbx,.dmbtn>.tbx{display:none}.tbm{display:inline-flex;align-items:center;gap:6px}.tbm .ic{margin:0;width:18px;height:18px}
 .tabs,.gtabs{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.tabs::-webkit-scrollbar,.gtabs::-webkit-scrollbar{display:none}
 .tabs button,.gtabs button{flex:none}
 .tabs.tbsc:not(.tbend),.gtabs.tbsc:not(.tbend){-webkit-mask-image:linear-gradient(90deg,#000 80%,transparent);mask-image:linear-gradient(90deg,#000 80%,transparent)}}

/* Ajouter des RDV : une ligne par date (« Le / du » et « Jusqu'au »), bouton pour retirer la ligne */
.rvr{display:flex;gap:8px;align-items:flex-end;margin:0 0 8px}
.rvr label{flex:1;min-width:0;margin:0;font-weight:600;font-size:14px}.rvr label input{margin-top:4px}
.rvr .ib{flex:none;padding:9px 10px}.rvr .ib .ic{margin:0}
/* fiche : liste des prochains RDV (une ligne par RDV, compacte aussi sur téléphone) */
.rvls{border-top:1px solid var(--b)}
.rvi{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;padding:8px 0;border-bottom:1px solid var(--b)}
.rvi>b{flex:1 1 190px;min-width:0}.rvi .rvb{display:flex;gap:6px;margin-left:auto}.rvi .ib{padding:6px 10px;font-size:14px}.rvi .ib .ic{margin:0}
@media(max-width:600px){.rvi .rvt{display:none}}
.rvi .ib.rvol .ic{margin-right:4px}
.rvcal{display:flex;flex-direction:column;gap:4px;margin:12px 0 4px}.rvcal button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.rvcal small{margin:0 0 10px}

/* Protocole de transport : horaires sur une ligne (2 par ligne sur téléphone), plans de circulation joints */
.pvg.pthr{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:600px){.pvg.pthr{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ptfl{margin:8px 0 4px}.ptfl .pef img.mini{width:34px;height:34px;object-fit:cover;border-radius:4px}
/* ordinateur : les onglets passent à la ligne s'ils ne tiennent pas (Sécurité : 6 onglets) ; sur téléphone ils défilent */
@media(min-width:601px){.tabs{flex-wrap:wrap;overflow-x:visible}}

/* Administration : choix des sites accessibles d'un compte */
.aspl{border:1px solid var(--b);border-radius:10px;padding:10px 14px 12px;margin:14px 0 0}.aspl legend{font-weight:600;padding:0 6px}
.aspl>.chk{display:flex;align-items:center;gap:8px;margin:6px 0}.aspl input[type=radio],.aspl input[type=checkbox]{width:auto;margin:0}
.aspo{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:4px 12px;margin:4px 0 10px 26px}.aspo .chk{display:flex;align-items:center;gap:8px;margin:2px 0}
.asps .ic{width:14px;height:14px;vertical-align:-2px;margin-right:2px}
.aspl .chk{border-bottom:0;padding:4px 2px}

/* Administration : fiches sans site à rattacher */
.nsl{border-top:1px solid var(--b);padding:6px 0}.nsl summary{display:flex;align-items:center;gap:10px;cursor:pointer;list-style:none}.nsl summary::-webkit-details-marker{display:none}
.nsl summary .chk{border:0;padding:4px 0;flex:1;min-width:0}.nsl summary small{white-space:nowrap}.nsl[open] summary small{visibility:hidden}
.nsl input[type=checkbox]{width:auto;margin:0}.nsr{max-height:260px;overflow:auto;margin:4px 0 6px 26px}.nsr .chk{border-bottom:1px solid #f1f2f4;font-size:14px}
.nsb{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;border-top:1px solid var(--b);padding-top:12px;margin-top:4px}.nsb label{flex:1;min-width:220px;margin:0;font-weight:600}
.card.nsw{margin-top:14px}

/* Aperçu « voir comme cette personne » : bandeau toujours visible en haut */
.vab{position:sticky;top:0;z-index:60;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 16px;background:#fef3c7;color:#78350f;border-bottom:2px solid #f59e0b;font-size:14px}
.vab .ie{width:18px;height:18px;flex:none}.vab span{flex:1;min-width:200px}
.vab button{flex:none;font:inherit;font-weight:600;padding:7px 12px;border-radius:8px;border:1px solid #b45309;background:#fff;color:#78350f;cursor:pointer}
@media(max-width:600px){.vab{padding:6px 10px;font-size:13px}.vab button{padding:6px 10px}}
@media print{.vab{display:none}}

/* Profil « ajout » (contributeur) : boutons d'ajout et de contribution visibles (classe ca), modification et suppression masquées */
.rc #main .p:not(.ca):not(.fp),.rc #main .ob:not(.ca),.rc #main .d{display:none!important}
.ro .ob.vw,.rc #main .ob.vw{display:inline-flex!important}      /* consulter, imprimer : visibles aussi en lecture seule (QR code, étiquette) */
.rc #main td.a button:not(.kb):not(.ca){display:none!important}

/* Plans de transport : un par site */
.ptpr{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--b)}.ptpr:last-of-type{border-bottom:1px solid var(--b)}
.ptpi{flex:1 1 220px;min-width:0;display:flex;flex-direction:column;gap:2px}.ptpb{display:flex;gap:6px;flex-wrap:wrap}.ptpb .ib{padding:7px 10px;font-size:14px;text-decoration:none}
/* tableau de bord par site (tdb.js) */
.hss{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.hss button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--b);background:#fff;border-radius:999px;padding:7px 14px;font-weight:600;font-size:14px;color:#374151;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.hss button .ic{width:15px;height:15px;margin:0;color:var(--p)}
.hss button.on .ic{color:#fff}
.hss button.on{background:var(--p);border-color:var(--p);color:#fff}
.hsb{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:#fff;border:1px solid var(--b);border-left:5px solid var(--p);border-radius:12px;padding:12px 16px;margin:0 0 16px}
@media(max-width:600px){.hss{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.hsb .ob{width:100%}}
/* tableau de bord général : comparaison des sites */
.hcs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 10px}
.hcs button{border:1px solid var(--b);background:#fff;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600;color:#6b7280}
.hcs button.on{border-color:var(--p);color:var(--p);background:#f5ecef}
.hct th,.hct td{text-align:center}
.hct td{font-weight:600;font-variant-numeric:tabular-nums}
.hct.tw tbody tr td{background:#fff}
.hct th[scope=row],.hct thead th:first-child{text-align:left;position:sticky;left:0;z-index:1;background:#fff;font-size:13px;font-weight:500;white-space:normal;min-width:210px}
.hct thead th:first-child{background:#f3f4f6;font-weight:600}
.hct tr.hgr th{background:#f3eef0;color:var(--p);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:left;position:sticky;left:0}
.hct td[onclick]{cursor:pointer}
.hct td[onclick]:hover,.hct td[onclick]:focus{outline:2px solid var(--p);outline-offset:-2px}
.hct thead th.hall{background:#e5e7eb}
.hct tbody tr td:last-child{background:#f9fafb;border-left:2px solid var(--b)}
.hct td.hbad,.hk.hbad{color:#dc2626}
.hct tbody tr td.hwst,.hk.hwst{background:#fde2e2}
.hct tbody tr td.hbest,.hk.hbest{background:#dcfce7;color:#15803d}
.hk{padding:0 4px;border-radius:4px;font-weight:600}
.hsc button{border:0;background:none;font-weight:700;font-size:13px;color:var(--p);display:inline-flex;align-items:center;gap:6px;padding:2px 4px;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
.hsc i,.hlg i{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none}
.hlgs{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin-top:8px;font-size:13px}
.hlg{display:inline-flex;align-items:center;gap:6px}
@media(max-width:600px){.hct th,.hct td{padding:7px 6px;font-size:13px}.hct th[scope=row],.hct thead th:first-child{min-width:120px;max-width:140px;font-size:12px}.hsc button{font-size:12px;padding:2px 0}.hcmp .sh .ob{margin-left:0!important}}
/* résolution d'une demande : documents */
.drdw{margin-top:4px}
.drdf{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.drdf input,.drdf select{flex:1 1 150px;min-width:0;width:auto}
.drdw .pef .ie{width:16px;height:16px;color:var(--p)}
.drds{display:flex;flex-direction:column;gap:6px;margin-top:8px}
.drd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:8px 10px;border:1px solid var(--b);border-radius:8px;background:#fff}
.drdn{flex:1 1 200px;display:inline-flex;align-items:center;gap:6px;min-width:0}
.drdn .ie{color:var(--p);flex:none}
.drdb{display:inline-flex;gap:6px;flex-wrap:wrap;align-items:center}
/* Équipements > Sites et bâtiments : fiches sans site (administrateur) */
.nsdt{margin-top:12px}.nsdt>summary{cursor:pointer;color:var(--m);font-size:13px;padding:6px 2px}.nsdt[open]>summary{margin-bottom:8px}
/* surfaces des niveaux et du site */
.ksf{display:flex;flex-direction:column;gap:2px;margin-top:2px;font-size:13px;color:var(--m)}
.ksf b{font-size:20px;color:var(--p);margin-right:4px}
.nvs{border:1px solid var(--b);border-radius:10px;padding:10px 12px 12px;margin:12px 0 0}
.nvs legend{font-weight:600;padding:0 6px}
.nvs input:disabled{background:#f3f4f6;color:var(--t);font-weight:600}
/* plan : surfaces des locaux */
.zl small{display:block;text-align:center;font-size:.82em;font-weight:600;color:#374151;line-height:1.15}
.zl.hl small{color:#9a3412}
.pin .pl small{margin-left:2px;font-weight:500;color:#374151}
.plst{margin:4px 0 6px;font-size:13px}.plst b{color:var(--p)}
/* prestataire qui existe déjà : proposition de reprise */
.psim{grid-column:1/-1;border:2px solid #f59e0b;background:#fffbeb;border-radius:10px;padding:10px 12px;margin:0 0 12px}
.psim>b{display:flex;align-items:center;gap:6px;color:#92400e}.psim>b .ie{color:#d97706}
.psm{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--b);border-radius:8px;padding:8px 10px;margin:0 0 6px}
.psmt{flex:1 1 220px;display:flex;flex-direction:column;gap:1px;min-width:0}.psmt small{display:flex;align-items:center;gap:4px}.psmt .ic{width:13px;height:13px;margin:0}
.psmb{display:flex;gap:6px;flex-wrap:wrap}
.psmn{margin-top:6px}
/* Maintenance : « Nouvelle demande » bien visible (bouton plein ; sur téléphone, bouton flottant) */
.dmbtn .dmnew{display:inline-flex;align-items:center;gap:6px;padding:10px 18px;font-size:15px;font-weight:700;box-shadow:0 2px 8px rgba(168,67,106,.28)}
.dmnew .ie{width:18px;height:18px}
.dmfab{display:none}
@media(max-width:600px){.dmtop .dmnew{display:none}
 .dmfab{display:flex;align-items:center;gap:8px;position:fixed;right:14px;bottom:calc(78px + env(safe-area-inset-bottom));z-index:8;background:var(--p);color:#fff;border:0;border-radius:999px;padding:14px 20px 14px 16px;font-size:16px;font-weight:700;box-shadow:0 8px 20px rgba(0,0,0,.28)}
 .dmfab .ie{width:22px;height:22px}
 #main:has(.dmfab){padding-bottom:150px}}
/* ajout de photos : appareil photo et galerie */
.phb{display:inline-flex;gap:8px;flex-wrap:wrap;align-items:center}
.fph>span:first-child{display:block;margin-bottom:4px}
/* filtre d'affichage des sites (administrateur), dans l'en-tête */
.vsb{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--b);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:#374151;white-space:nowrap;max-width:260px}
.vsb .ie{width:16px;height:16px;color:var(--p)}
.vsb .vsl{overflow:hidden;text-overflow:ellipsis}
.vsb .vsn{display:none}
.vsb .vsc{font-size:10px;color:#6b7280}
.vsb.on{background:#fff7ed;border-color:#fb923c;color:#9a3412}.vsb.on .ie{color:#ea580c}
.vsm{position:fixed;z-index:20;background:#fff;border:1px solid var(--b);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.18);padding:14px;width:320px;max-width:calc(100vw - 16px);max-height:70vh;overflow:auto}
.vsm>p{margin:4px 0 10px;font-size:12px}
.vsm .vsall{font-weight:600;border-bottom:1px solid var(--b);padding-bottom:8px;margin-bottom:6px}
.vsm .vso{display:flex;flex-direction:column;gap:4px}
@media(max-width:600px){.vsb{padding:6px 8px}.vsb .vsl{display:none}.vsb.on .vsn{display:inline;font-size:12px}.vsm{left:8px;right:8px;width:auto}}
/* statut d'un équipement en un clic */
.eqst{display:inline-flex;flex-wrap:wrap;gap:4px;background:#f3f4f6;border-radius:999px;padding:3px}
.eqst button{border:0;background:none;border-radius:999px;padding:5px 12px;font-size:13px;font-weight:600;color:#4b5563;white-space:nowrap}
.eqst button:hover{background:#fff}
.eqst button.on{color:#fff;background:#6b7280}
.eqst button.on[data-bc=g]{background:#16a34a}.eqst button.on[data-bc=o]{background:#ea580c}.eqst button.on[data-bc=r]{background:#dc2626}.eqst button.on[data-bc=n]{background:#9ca3af}
.deqb{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media(max-width:600px){.eqst{border-radius:12px}.eqst button{padding:7px 10px}}
/* demande sans équipement ni local : choix dans la fenêtre */
.dbox.dnl{max-width:560px;width:calc(100vw - 32px)}
.dbox.dnl .g1{margin:6px 0 4px}
.dbox.dnl .srch{margin:4px 0 6px}
@media(max-width:600px){.dbox.dnl .bar{flex-wrap:wrap}.dbox.dnl .bar button{flex:1 1 auto}}
.cplx{display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:12px;color:#4b5563}
.cplx .cpk{position:static;display:inline-block;width:16px;height:16px;line-height:16px;border-radius:50%;font-style:normal;font-size:11px;font-weight:700;color:#fff;text-align:center}
.cplx .cpk.cpky{color:#1f2937}
/* protocole de transport : fenêtre « PDF du protocole » (préparation, aperçu, envoi par e-mail) */
.pps{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:10px 12px;border-radius:10px;background:var(--bg);border:1px solid var(--b);font-size:14px}
.pps svg{flex:none;width:18px;height:18px}.pps.ok{background:#dcfce7;border-color:#bbf7d0;color:#14532d}.pps.ko{background:#fee2e2;border-color:#fecaca;color:#7f1d1d}
.pps span{min-width:0;overflow-wrap:anywhere}
.ppfa{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 0}.ppfa:empty{display:none}
.pph{display:flex;align-items:center;gap:6px;margin:16px 0 4px;font-size:15px}.pph svg{width:18px;height:18px}
/* protocole de transport : signature à l'écran des deux entreprises */
.ptsgs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ptsg{border:1px solid var(--b);border-radius:12px;padding:12px;min-width:0;background:#fff}.ptsg.done{border-color:#bbf7d0;background:#f0fdf4}
.ptsg h3{display:flex;align-items:center;gap:6px;margin:0 0 8px;font-size:15px}.ptsg h3 svg{width:18px;height:18px;color:#15803d}
.ptsgi{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px}.ptsgi label{margin:0}
.ptsg .sigc{max-width:none}.ptsg .sigimg{max-width:100%;display:block}
.ptsgb{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0 0}
.ptsgv{margin:8px 0 4px}.ptsgv .sigimg{max-height:90px;width:auto}
@media(max-width:700px){.ptsgs{grid-template-columns:1fr}}
@media(max-width:420px){.ptsgi{grid-template-columns:1fr}}
/* demande de maintenance : plusieurs équipements et zones (étiquettes retirables, menu avec recherche pour en ajouter) */
.g .fdv.dmx{gap:6px}
.dmxc{display:flex;flex-wrap:wrap;gap:6px;color:var(--t)}
.dmxk{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 4px 4px 10px;border:1px solid #c299a9;border-radius:8px;background:#f6eef1;font-size:13px}
.dmxk>span{display:flex;flex-direction:column;min-width:0}.dmxk b{font-weight:600;overflow-wrap:anywhere}.dmxk small{color:var(--m);font-size:11px}
.dmxx{flex:none;width:26px;height:26px;padding:0;border:0;border-radius:6px;background:transparent;color:#475569;font-size:18px;line-height:1;cursor:pointer}.dmxx:hover{background:#e9d5dd;color:#b91c1c}
.dmxa{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:6px}.dmxa input,.dmxa select{width:100%;min-width:0}
.dmxh:empty{display:none}
.dmmore{font-weight:600}
@media(max-width:600px){.dmxa{grid-template-columns:1fr}}
.dmxa .qrfb{grid-column:1/-1;justify-self:start}
.dmx.qrok .dmxc{box-shadow:0 0 0 3px #86efac;border-radius:8px}
/* demande sur plusieurs équipements : équipements à cocher dans la question sur leur état */
.deqs{display:flex;flex-direction:column;gap:6px;margin:10px 0 0}.deqs label.chk{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--b);border-radius:8px;font-size:14px}.deqs input{width:18px;height:18px;margin:2px 0 0;flex:none}
/* cloche de l'en-tête : notifications et alertes */
.ntb{position:relative}.ntb .ntc{position:absolute;top:0;right:0;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;line-height:18px;text-align:center;box-shadow:0 0 0 2px #fff;box-sizing:border-box}
.ntm{position:fixed;z-index:20;background:#fff;border:1px solid var(--b);border-radius:14px;box-shadow:0 14px 36px rgba(0,0,0,.2);width:400px;max-width:calc(100vw - 16px);display:flex;flex-direction:column;max-height:min(620px,calc(100vh - 90px));overflow:hidden}
.ntt{display:flex;align-items:center;gap:8px;padding:12px 14px 6px}.ntt b{font-size:16px;flex:1}
.ntr{display:inline-flex;align-items:center;gap:4px;border:0;background:none;color:var(--p);font-size:13px;font-weight:600;padding:4px 6px;border-radius:6px;cursor:pointer}.ntr:hover{background:#f6eef1}.ntr .ie{width:15px;height:15px}
.ntf{display:flex;gap:6px;padding:4px 14px 10px;border-bottom:1px solid var(--b)}
.ntf button{border:1px solid var(--b);background:#fff;border-radius:999px;padding:4px 12px;font-size:13px;color:#374151;cursor:pointer}.ntf button span{color:var(--m);margin-left:2px}
.ntf button.on{border-color:var(--p);background:var(--p);color:#fff}.ntf button.on span{color:#d1fae5}
.ntl{overflow-y:auto;overscroll-behavior:contain;flex:1}
.nti{position:relative;display:flex;align-items:flex-start;gap:10px;width:100%;padding:10px 30px 10px 14px;border:0;border-bottom:1px solid #f1f5f9;background:#fff;text-align:left;cursor:pointer;font:inherit;color:var(--t)}
.nti:hover{background:#f8fafc}.nti.un{background:#f2e3e9;box-shadow:inset 4px 0 0 var(--p)}.nti.un:hover{background:#ebd5dd}      /* non lue : en surbrillance */
.nti:not(.un) .ntx small,.nti:not(.un) .ntx em{color:var(--m)}
.ntic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:#e0f2fe;color:#0369a1}.ntic .ie{width:17px;height:17px}
.ntic.r{background:#fee2e2;color:#b91c1c}.ntic.o{background:#ffedd5;color:#c2410c}.ntic.g{background:#dcfce7;color:#15803d}
.ntx{display:flex;flex-direction:column;min-width:0;gap:1px}.ntx b{font-size:14px;font-weight:600}.nti:not(.un) .ntx b{font-weight:500}
.ntx small{font-size:13px;color:#4b5563;overflow-wrap:anywhere}.ntx em{font-style:normal;font-size:12px;color:var(--m);margin-top:2px}
.ntu{position:absolute;top:16px;right:12px;width:9px;height:9px;border-radius:50%;background:var(--p)}
.ntv{margin:0;padding:24px 14px;text-align:center}
.ntp{display:block;width:100%;border:0;background:#f8fafc;color:var(--p);font-weight:600;padding:10px;cursor:pointer}
@media(max-width:600px){.ntm{left:8px;right:8px;width:auto}.hqb.ntb{padding:6px}}
.ntk{margin:0;padding:8px 14px;border-top:1px solid var(--b);font-size:12px;color:var(--m);background:#fafafa}
.eqst button.on[data-bc=y]{background:#ca8a04}.eqst button.on[data-bc=bl]{background:#2563eb}      /* statut d'une demande : En attente */
@media(max-width:600px){.dmst{gap:2px}.dmst button{padding:7px 6px;font-size:12.5px}}      /* téléphone : les 5 statuts d'une demande sur une ligne */
/* barre du haut fixe : collée en haut de l'écran (et au menu de gauche sur ordinateur) */
body{padding-top:0}
body>header{position:sticky;top:var(--vh0,0px);z-index:8;padding-top:calc(10px + env(safe-area-inset-top,0px))}
html{scroll-padding-top:var(--hh,0px)}
.ihd{top:var(--hh,0px)}      /* le haut du plan interactif (.plh) reste à top:0 : il est dans une fenêtre, sous aucune barre */.edld{top:calc(var(--hh,0px) + 12px)}
@media(min-width:901px){body>header{margin-left:-10px;padding-left:26px}}
@media(max-width:600px){body>header{padding-top:calc(8px + env(safe-area-inset-top,0px))}}
.pvsp{display:block}@media(max-width:600px){.pvsp{display:none}}      /* case vide dans une grille de saisie (alignement) */
/* personnes d'un prestataire : saisie (formulaire), liste (fiche) et choix dans les plans de prévention / protocoles */
.pctr{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr) auto;gap:6px;margin:0 0 6px;color:var(--t);font-size:14px}
@media(max-width:700px){.pctr{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto}.pctr input:nth-child(3){grid-row:2;grid-column:1}.pctr input:nth-child(4){grid-row:2;grid-column:2}.pctr button{grid-row:1/3;grid-column:3;align-self:center}.pctr{padding-bottom:6px;border-bottom:1px dashed var(--b)}}
.pctl{display:flex;flex-direction:column}
.pcti{display:flex;align-items:center;gap:10px 16px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--b)}.pcti:first-child{border-top:0}
.pctn{flex:1 1 180px;min-width:0;display:flex;flex-direction:column}.pctn small{color:var(--m)}
.pctc{flex:2 1 240px;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:14px}.pctc span{display:inline-flex;align-items:center;gap:6px;min-width:0;overflow-wrap:anywhere}
.pctb{display:flex;gap:6px}
.ppk{margin-top:4px;font-size:13px;color:var(--m)}
.pvpk{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:8px 0 0}.pvpk .ppk{margin:0;width:auto;max-width:100%}
/* fiche d'un site : documents remis aux entreprises extérieures, joints en annexe du PDF des plans de prévention */
.pvar{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(0,2fr) auto;gap:8px 16px;align-items:center;padding:12px 0;border-top:1px solid var(--b)}.pvar:first-child{border-top:0}
.pvah{display:flex;gap:10px;align-items:flex-start}.pvah>svg{flex:none;margin-top:2px;color:var(--m)}.pvar.ok .pvah>svg{color:#16a34a}.pvah>div{display:flex;flex-direction:column;min-width:0}.pvah small{font-size:12px;line-height:1.3}
.pvab{min-width:0;display:flex;flex-direction:column;gap:4px}.pvai{overflow-wrap:anywhere}.pvaf{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pvbt{display:flex;justify-content:flex-end}
@media(max-width:800px){.pvar{grid-template-columns:1fr}.pvbt{justify-content:flex-start}}
.pvst{display:flex;flex-direction:column;gap:4px;margin:10px 0;font-size:14px}.pvst>div{display:flex;gap:8px;align-items:flex-start}.pvst>div>svg{flex:none;margin-top:2px}.pvst .ok>svg{color:#16a34a}.pvst .no>svg{color:#d97706}
.pvab>.bd{align-self:flex-start}
.pvasc .sh .bd{white-space:nowrap}
.pvapl{display:flex;gap:8px;align-items:flex-start;margin:4px 0 0;padding-top:12px;border-top:1px solid var(--b)}.pvapl>svg{flex:none;margin-top:2px}

/* ordinateur : fiche d'un équipement, d'une demande, saisie d'une inspection en fenêtre ; l'application grisée derrière */
body.popm{overflow-y:scroll}
.popbg{position:fixed;top:var(--hh,60px);left:216px;right:0;bottom:0;overflow:hidden;pointer-events:none;user-select:none;z-index:1}
.popov{position:fixed;inset:0;z-index:9;background:rgba(15,23,42,.48);cursor:pointer}
body.popm{--pw:1344px}
body.popm.popr{--pw:1008px}      /* saisie pas à pas : fenêtre plus étroite */
body.popm #main{position:relative;z-index:10;box-sizing:border-box;width:min(var(--pw),calc(100% - 48px));max-width:none;margin:22px auto 48px;background:var(--bg);border-radius:14px;box-shadow:0 18px 50px #0005;padding:0 22px 26px;min-height:200px}      /* centrée dans la partie de droite (hors menu de gauche), aussi large que possible jusqu'à 1344 px */
body.popm #main>.phead,body.popm #main>.pback,body.popm #main>p.pback{display:none}
.popbar{position:sticky;top:0;z-index:7;display:flex;align-items:center;gap:8px;margin:0 -22px 14px;padding:10px 14px;background:var(--bg);border-bottom:1px solid var(--b);border-radius:14px 14px 0 0}
.popbar .popx{width:38px;height:38px;justify-content:center;padding:0;border-radius:50%}
body.popm #main .irun{padding-top:14px;padding-bottom:0;max-width:none}
body.popm #main .ihd{top:0}
body.popm #main .inav{position:sticky;left:auto;right:auto;bottom:0;margin:18px -22px -26px;border-radius:0 0 14px 14px}
body.popm .toast{z-index:50}
@media print{.popbg,.popov,.popbar{display:none!important}body.popm #main{box-shadow:none;margin:0;max-width:none;width:auto}}

/* liste : raccourci (vert, demi-gras) et ID unique (étiquette vert clair) ; un clic ouvre la fiche */
.tlk{font-weight:600;color:var(--p);text-decoration:none}.tlk:hover{text-decoration:underline;text-underline-offset:3px}
.tlk.tlkid,.idchip{display:inline-block;font:600 12.5px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--p);background:#f2e3e9;border-radius:6px;padding:2px 7px;white-space:nowrap;line-height:1.4}.tlk.tlkid:hover{background:#ebd1db;text-decoration:none}.tlk:focus-visible{outline:2px solid var(--p);outline-offset:2px;border-radius:3px}
h3.anah{margin:22px 0 10px;font-size:17px;font-weight:800}
/* informatique : avatars des utilisateurs (initiales), matériel attribué */
.itav{color:#fff!important;font-weight:700;letter-spacing:.5px}.avs.itav{font-size:12px}.av.itav{font-size:26px}
.vhav{display:flex;gap:16px;align-items:center;min-width:0}
.itl{display:flex;flex-direction:column;border-top:1px solid var(--b)}
.itr{display:flex;align-items:center;gap:12px;padding:9px 4px;border-bottom:1px solid var(--b);cursor:pointer}.itr:hover{background:#f9fafb}
.itrt{flex:1;min-width:0;display:flex;flex-direction:column}.itrt small{color:var(--m)}
.itck{display:flex;flex-direction:column;gap:4px;max-height:40vh;overflow:auto}
.gtabs{display:flex;width:fit-content}      /* onglets d'Actifs, Accueil, Pilotage : seuls sur leur ligne (les sous-onglets d'un module viennent dessous) */
.tabs.tsub{background:none;padding:0;gap:6px;margin-top:-4px}.tabs.tsub button{border:1px solid var(--b);background:#fff;border-radius:999px;padding:6px 14px}.tabs.tsub button.on,.tabs.tsub button.on:hover{background:var(--p);color:#fff;border-color:var(--p);box-shadow:none}.tabs.tsub button.on .ic{color:#fff}
/* informatique : import depuis Excel (aperçu) */
#m.imp .box{max-width:980px}
.imk{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 4px}.imk>div{flex:1 1 140px;border:1px solid var(--b);border-radius:10px;padding:10px 12px;background:#f9fafb}.imk b{display:block;font-size:24px;color:var(--p)}.imk small{color:var(--m)}
.imh{font-size:15px;margin:16px 0 6px}
.imm,.imp2{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:8px 14px}.imm label,.imp2 label{display:flex;flex-direction:column;gap:4px;margin:0}.imp2{max-height:46vh;overflow:auto;padding-right:4px}
.imd{margin:10px 0 0;border:1px solid var(--b);border-radius:8px;padding:8px 12px}.imd summary{cursor:pointer;font-weight:600}.imd ul{margin:8px 0 0;padding-left:20px;max-height:34vh;overflow:auto}
/* informatique : chiffres en tête de la liste du matériel */
.itks{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.itk{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:10px;border:1px solid var(--b);background:#fff}.itk b{font-size:18px}.itk.on{border-color:var(--p);box-shadow:0 0 0 2px #a8436a33}.itk.warn{border-color:#fdba74;background:#fff7ed}
/* double authentification : page de connexion et « Mon compte et sécurité » */
#mmsg{min-height:20px;font-size:13px;margin-bottom:6px}#mmsg.err{color:#b91c1c}
.mfh{margin:0 0 12px}
.mfl{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--m)}
.mfl input,.mfc{font-size:24px!important;letter-spacing:6px;text-align:center;font-variant-numeric:tabular-nums;padding:10px!important}
.mfr{border:0;margin:8px 0 0;font-size:13.5px}
.mfa2{text-align:center;margin:6px 0 0}
.mfs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0}
.mfq{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-start;margin:6px 0 4px}
.mfq svg{width:190px;height:190px;flex:none;border:1px solid var(--b);border-radius:10px;background:#fff;padding:4px;box-sizing:border-box}
.mfq ol{margin:0;padding-left:20px;flex:1;min-width:220px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.mfk{display:inline-block;max-width:100%;box-sizing:border-box;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;letter-spacing:1px;background:#f3f4f6;border-radius:6px;padding:4px 8px;margin-top:2px;user-select:all}
.mfb{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:10px 0;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:17px;letter-spacing:1px}
.mfb span{background:#f3f4f6;border-radius:8px;padding:8px;text-align:center}
@media(max-width:600px){.mfq svg{width:170px;height:170px;margin:0 auto}}
a.btn.bkp{background:var(--p);color:#fff;border-color:var(--p)}      /* rappel de sauvegarde : le lien de téléchargement en bouton principal */
/* ===== Contrôles > Analyse de l'eau (eau.js) : sous-onglets, schéma vertical du réseau (tuyaux, pastilles), saisie des résultats ===== */
.etw{margin:-6px 0 12px}
.etabs{background:#eef3f8}.etabs button{padding:6px 12px;font-size:13px}
.esc{--ef:#bcd7ef;--eb:#6f9ccb;--ei:40px;position:relative;padding:4px 0 6px;color:var(--t)}
.esn{display:flex;align-items:center;gap:10px;min-height:40px;flex-wrap:wrap;position:relative}
.esi{flex:0 0 40px;width:40px;height:40px;box-sizing:border-box;border-radius:10px;background:#fff;border:1.5px solid var(--eb);color:#2b5f8f;display:flex;align-items:center;justify-content:center}
.esi svg{width:24px;height:24px}
.esi.src{background:#dbeafe;color:#1d4ed8;border-color:#60a5fa}
.esi.t{background:#f8fafc;border-style:dashed;color:#475569}
.esi.g{background:#eef6fd}
.esi.pt{border:0;background:none}
.esl{display:flex;flex-direction:column;line-height:1.25;min-width:0;flex:0 1 auto}
.esl small{color:var(--m);font-size:12px}
.esl a{color:var(--p);text-decoration:none}.esl a:hover{text-decoration:underline}
.esv{width:8px;height:16px;margin-left:16px;box-sizing:border-box;background:var(--ef);border-left:1.5px solid var(--eb);border-right:1.5px solid var(--eb)}
.escl{position:relative;margin-left:16px}
.er{position:relative;padding:0 0 10px var(--ei)}
.er:last-child{padding-bottom:0}
.er::before{content:'';position:absolute;left:0;top:0;bottom:0;width:8px;box-sizing:border-box;background:var(--ef);border-left:1.5px solid var(--eb);border-right:1.5px solid var(--eb)}
.er:last-child::before{bottom:auto;height:24px;border-bottom:1.5px solid var(--eb);border-bottom-left-radius:5px}
.er::after{content:'';position:absolute;left:1.5px;top:16px;width:calc(var(--ei) - 1.5px);height:8px;box-sizing:border-box;background:var(--ef);border-top:1.5px solid var(--eb);border-bottom:1.5px solid var(--eb);z-index:1}
.esub{padding-top:10px}
.esub::before{content:'';position:absolute;left:0;top:0;height:10px;width:8px;box-sizing:border-box;background:var(--ef);border-left:1.5px solid var(--eb);border-right:1.5px solid var(--eb)}
.er.eg>details>summary{list-style:none;cursor:pointer}
.er.eg>details>summary::-webkit-details-marker{display:none}
.egh .esl b{font-size:15px}
.egc{color:var(--m);display:inline-flex;transition:transform .15s}
.er.eg>details:not([open])>summary .egc{transform:rotate(-90deg)}
.er.eg>details:not([open])>summary{margin-bottom:0}
.esn>.esl{flex:0 0 210px;min-width:0}
.esn>.esl b,.esn>.esl small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.esc>.esn::before,.evc>.esn:not(:last-child)::before{content:'';position:absolute;left:16px;top:40px;bottom:0;width:8px;box-sizing:border-box;background:var(--ef);border-left:1.5px solid var(--eb);border-right:1.5px solid var(--eb)}      /* ligne plus haute que le dessin (pastilles repliées dessous) : le tuyau continue */
.esp{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.esh{width:22px;height:8px;box-sizing:border-box;background:var(--ef);border-top:1.5px solid var(--eb);border-bottom:1.5px solid var(--eb)}
.epo{--c:#9ca3af;display:inline-block;flex:0 0 auto;width:24px;height:24px;padding:0;box-sizing:border-box;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 0 0 2px var(--c);cursor:pointer;transition:transform .1s}
button.epo:hover{transform:scale(1.15)}
.epo.s-ok{--c:#16a34a}.epo.s-ref{--c:#ea580c}.epo.s-lim{--c:#b91c1c}.epo.s-none,.epo.s-todo{--c:#9ca3af}
.epl{font-weight:600;font-size:13px}
.ecs{display:inline-flex;gap:6px;flex-wrap:wrap}
.ec{display:inline-flex;align-items:center;gap:4px;font-size:12px;line-height:1.2;padding:3px 9px;border-radius:999px;border:1px solid #d1d5db;background:#f3f4f6;color:#4b5563;white-space:nowrap}
button.ec{cursor:pointer}button.ec:hover{filter:brightness(.96)}
.ec.s-ok{background:#dcfce7;color:#166534;border-color:#86efac}
.ec.s-ref{background:#ffedd5;color:#9a3412;border-color:#fdba74}
.ec.s-lim{background:#fee2e2;color:#991b1b;border-color:#fca5a5}
.ec.s-none{background:#fff;color:#9ca3af;border-style:dashed}
.elg{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;font-size:12px;margin:-4px 0 12px}
.elg>span{display:inline-flex;align-items:center;gap:6px}
.elg i.epo{width:14px;height:14px;border-width:2px;box-shadow:0 0 0 1.5px var(--c);cursor:default}
.ehg{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,360px);gap:12px;align-items:start}
.eov{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;margin:0 0 6px;border-left:4px solid #ea580c;background:#fff7ed;border-radius:8px;padding:8px 10px}
.eov.s-lim{border-left-color:#b91c1c;background:#fef2f2}
.eovh{display:flex;gap:8px;align-items:baseline;width:100%}.eovh small{margin-left:auto;color:var(--m)}
.eat td,.eat th{white-space:nowrap}.eat td.wr{white-space:normal}
.ert tr.s-ref td{background:#fff7ed}.ert tr.s-lim td{background:#fef2f2}
.ert tr.s-ref td:first-child{box-shadow:inset 4px 0 #ea580c}.ert tr.s-lim td:first-child{box-shadow:inset 4px 0 #b91c1c}.ert tr.s-ok td:first-child{box-shadow:inset 4px 0 #16a34a}
.elr+.elr{margin-top:14px}.elrh{margin:0 0 6px;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.eovc{border-left:5px solid #ea580c}.eovc.s-lim{border-left-color:#b91c1c}.eovc ul{margin:0;padding-left:20px}.eovc li{margin:2px 0}
.erg-w{color:var(--t)!important;font-size:13px!important}
.ergh{margin:0 0 8px;font-size:12px}
.erg{border:1px solid var(--b);border-radius:8px;padding:8px 10px;margin-bottom:10px}
.ergt{display:block;color:var(--p);margin-bottom:4px}
.erh,.erw{display:grid;grid-template-columns:minmax(150px,1fr) 130px 120px 130px;gap:8px;align-items:center}
.erh{font-size:11px;color:var(--m);padding:0 6px}
.erw{padding:3px 6px;border-radius:6px}
.erw+.erw{border-top:1px solid #f3f4f6}
.ern small{color:var(--m)}
.erw input,.erw select{padding:5px 7px}
.ers{font-size:12px;color:#374151}.ers small{color:var(--m)}
.erw.s-ok input{border-color:#86efac;background:#f0fdf4}
.erw.s-ref{background:#fff7ed}.erw.s-ref input{border-color:#fb923c}
.erw.s-lim{background:#fef2f2}.erw.s-lim input{border-color:#f87171}
.egl{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.egi{align-items:flex-start!important}.egi input{width:18px;height:18px;margin:2px 0 0;flex:0 0 auto}
.egi>span{display:flex;flex-direction:column}.egi small{color:var(--m)}
.egt{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--m);margin:0 0 6px 28px}
@media(max-width:1100px){.ehg{grid-template-columns:1fr}}
@media(max-width:700px){.esc{--ei:26px}.esn>.esl{flex:1 1 150px}.esn>.esl b,.esn>.esl small{white-space:normal}.esn .esp,.esn>.ecs{flex-basis:100%;padding-left:50px;box-sizing:border-box}.esh{display:none}
 .erh{display:none}.erw{grid-template-columns:1fr 1fr;padding:6px}.erw .ern{grid-column:1/-1}.erw .ers{grid-column:1/-1;order:3}}
.eats td,.eats th{white-space:normal}
/* import d'un rapport PDF (eaupdf.js) : bandeau en tête du formulaire */
.eib{border:1px solid #c7dbef;background:#f5f9fd;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.eib p{margin:0}.eibn{font-size:12px;color:var(--p)}
.eibf{display:flex;align-items:center;gap:8px;flex-wrap:wrap;overflow-wrap:anywhere}
.eibw{padding:6px 10px;border-radius:8px;font-size:13px}.eibw.ok{background:#dcfce7;color:#14532d}.eibw.wa{background:#ffedd5;color:#7c2d12}.eibw.ko{background:#fee2e2;color:#7f1d1d}
.eibd small{color:var(--m)}.eibq{color:#9a3412;font-weight:600}
.g label.eibc{flex-direction:row;gap:8px;border:0!important;padding:2px 0!important;font-size:13px;color:var(--t);align-items:flex-start!important}.eibc input{width:16px;height:16px;margin:2px 0 0;flex:0 0 auto}
/* analyse de l'eau, partie 3 (eaugraph.js) : à traiter, dernières valeurs, courbes, comparaison entrée → sortie */
.etd{border-left:4px solid #ea580c;background:#fffaf5;border-radius:8px;padding:9px 11px;margin:0 0 8px;display:flex;flex-direction:column;gap:4px;font-size:13px}
.etd.s-lim{border-left-color:#b91c1c;background:#fef6f6}.etd.s-watch{border-left-color:#ca8a04;background:#fefce8}.etd.s-late{border-left-color:#2563eb;background:#f5f8ff}
.etdh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.etdh b{font-size:14px}
.etdm{color:var(--m);font-size:12px}.etdm.etdb{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center}.etdm a{color:var(--p)}
.etdn{font-size:12px;color:#7c2d12;background:#fff1e6;border-radius:6px;padding:4px 8px}
.etda{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.etda .ib{font-size:12px;padding:4px 9px}
.elt th,.elt td{white-space:nowrap}.elt td:first-child{white-space:normal;min-width:160px}
.elh a{color:var(--p);text-decoration:none;font-weight:700}.elh small{display:block;color:var(--m);font-weight:400}
.elv{cursor:pointer}.elt td.elv.s-ref{background:#ffedd5!important;color:#9a3412;font-weight:600}.elt td.elv.s-lim{background:#fee2e2!important;color:#991b1b;font-weight:700}.elv:hover{filter:brightness(.96)}
.ets{font-size:12px}
.ech2s{display:flex;flex-wrap:wrap;gap:6px;margin:-4px 0 12px}
.ech2{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--b);background:#fff;color:#374151}
.ech2.on{background:#e0edfb;border-color:#93c5fd;color:#1e3a8a;font-weight:600}
.ecgr{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.ecc{border:1px solid var(--b);border-radius:8px;padding:8px 10px 2px}.ecc>b{font-size:13px}.ecc small{color:var(--m);font-weight:400}
.echt{width:100%;height:auto;display:block}
.echt .ecg{stroke:#eef0f3;stroke-width:1}.echt .ecl{font-size:10px;fill:#6b7280}.echt .ecv{font-size:11px;font-weight:700}
.echt .ecp1{fill:none;stroke:#2563eb;stroke-width:2}.echt .ecp2{fill:none;stroke:#9ca3af;stroke-width:1.6;stroke-dasharray:3 3}.echt .ecd2{fill:#fff;stroke:#9ca3af;stroke-width:2}
.elg2{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center;font-size:12px;margin:10px 0 0}.elg2 span{display:inline-flex;align-items:center;gap:5px}
.elg2 i{display:inline-block;width:14px;height:4px;border-radius:2px}.elg2 i.ho{width:10px;height:10px;border-radius:50%;border:2px solid #2563eb;background:#fff}.elg2 i.da{height:0;border-top:2px dashed #ea580c}
.ecmp td:nth-child(2),.ecmp td:nth-child(3),.ecmp td:nth-child(4){white-space:nowrap}
.ecmp td.s-ref{color:#9a3412;font-weight:600}.ecmp td.s-lim{color:#991b1b;font-weight:700}.ecmp tr.s-ref td:first-child{box-shadow:inset 4px 0 #ea580c}.ecmp tr.s-lim td:first-child{box-shadow:inset 4px 0 #b91c1c}
.ecv2{font-weight:700;color:#4b5563}.ecv2.up{color:#b91c1c}.ecv2.dn{color:#15803d}
.ecn{display:flex;gap:10px;align-items:flex-start;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:10px 12px;margin:0 0 12px;font-size:13px;color:#7c2d12}.ecn .ic{color:#ea580c;flex:0 0 auto}
.ecmo{margin-top:10px}.ecmo summary{cursor:pointer;color:var(--p);font-size:13px;margin-bottom:8px}
@media print{.etb,.ech2s{display:none!important}.ecgr{grid-template-columns:1fr 1fr}}
.ech2x{flex-basis:100%}.ech2x summary{cursor:pointer;color:var(--p);font-size:12px;margin:2px 0 6px}.ech2x .ech2s{margin:0}
.etl{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px;align-items:start}.etl .etd{margin:0}      /* « À traiter » sous le réseau : éléments côte à côte */
@media(max-width:600px){.etl{grid-template-columns:1fr}}
.etda .ib{display:inline-flex;width:auto}
/* schéma réel du réseau (eaunet.js) : éléments posés sur la conduite, antennes, points à placer, page « Modifier le schéma » */
.er.inl{padding-left:0}.er.inl::after{display:none}.er.inl>*{margin-left:-16px}
.eunp{margin-top:18px;border:1.5px dashed #cbd5e1;border-radius:10px;padding:10px 12px;background:#fafbfc}
.eunp .esc{--ef:#e5e7eb;--eb:#cbd5e1}
.eunh{display:flex;gap:8px;align-items:flex-start;margin:0 0 10px;font-size:13px}.eunh .ic{color:#ea580c;flex:0 0 auto}.eunh small{display:block;color:var(--m)}
.engr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}
@media(max-width:1100px){.engr{grid-template-columns:1fr}}
.enl{list-style:none;margin:0;padding:0}.enl .enl{margin:6px 0 2px 18px;padding-left:12px;border-left:3px solid #bcd7ef}
.enr{margin:0 0 6px}.enh{display:flex;align-items:center;gap:8px;flex-wrap:wrap;border:1px solid var(--b);border-radius:8px;padding:6px 8px;background:#fff}
.ena0>.enh{background:#f5f9fd;border-color:#c7dbef}
.enlb{display:inline-flex;align-items:center;gap:6px;flex:1 1 220px;min-width:0;font-size:13px}
.enx{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;color:#2b5f8f}.enx svg{width:18px;height:18px}.enx .epo{width:14px;height:14px;border-width:2px;box-shadow:0 0 0 1.5px var(--c)}
.ena{display:inline-flex;gap:4px;flex-wrap:wrap}.ena .ib{font-size:12px;padding:3px 8px}.ena .ib.i0{padding:3px 5px}
.g1 label.enk,.g1 label.enw{display:flex;font-weight:400;margin:8px 0 2px;flex-direction:row;align-items:flex-start;gap:8px;color:var(--t);font-size:13px;border:0}.g1 label.enk input,.g1 label.enw input{width:16px;height:16px;margin:2px 0 0;flex:0 0 auto}
.enf{margin:0 0 6px 24px;display:flex;flex-direction:column;gap:6px}
.enote{margin:0;font-size:12px}

/* épaisseur des tuyaux : conduite principale (--rw 12px) plus grosse que les antennes (6px) ; les éléments restent centrés sur leur tuyau */
.esc{--rw:6px;--sw:6px}
.escl{margin-left:calc(20px - var(--rw)/2)}
.escl.emain,.esv.em,.esc>.esn{--rw:12px}
.emain .escl,.er:not(.inl)>*{--rw:6px}
.er::before,.esub::before{width:var(--rw)}
.er:last-child::before{height:calc(21px + var(--sw)/2)}
.er::after{top:calc(20px - var(--sw)/2);height:var(--sw)}
.esv{width:var(--rw);margin-left:calc(20px - var(--rw)/2)}
.esc>.esn::before,.evc>.esn:not(:last-child)::before{left:calc(20px - var(--rw)/2);width:var(--rw)}
.esh{height:var(--sw)}
.er.inl>*{margin-left:calc(var(--rw)/2 - 20px)}
.eant>.er:first-child::before{top:20px}      /* antenne en série : le tuyau part du premier élément */
.eant>.er:first-child:last-child::before{display:none}
/* nœud : le tuyau (conduite ou antenne) se divise en branches ; chaque branche garde la grosseur du tuyau d'où elle part */
.esc .er.inl>.escl.endb{--rw:inherit;margin-left:0}
.esc .er.ebr{--sw:var(--rw)}
.esc .er.ebr>*{--rw:inherit;--sw:6px}
.esi.end{border-radius:50%}
.enl.enb{border-left-style:dashed}
.enbr>.enh{background:#f8fbff;border-style:dashed;border-color:#9fc3e6}
/* dernières valeurs : un tableau, section chimie puis bactériologie */
.elt tr.els th{background:#e8f1fb;color:#1e3a5f;font-size:13px;text-transform:uppercase;letter-spacing:.04em;padding:7px 10px;border-top:2px solid #bcd7ef}
.elt tr.eld td{font-size:12px;color:var(--m);background:#fafcff!important}
.elt td.eldv{cursor:pointer;font-weight:600;color:#334155}.elt td.eldv:hover{text-decoration:underline}
/* point de prélèvement en 2 moitiés : gauche chimie, droite bactériologie */
.epo{--cc:#9ca3af;--cb:#9ca3af;position:relative;display:inline-block;flex:0 0 auto;width:28px;height:28px;padding:0;box-sizing:border-box;border:0;border-radius:50%;background:linear-gradient(90deg,var(--cc) 50%,var(--cb) 50%);box-shadow:none;transition:transform .1s;vertical-align:middle;cursor:default}
.epo::after{content:'';position:absolute;inset:2px;border-radius:50%;border:3px solid #fff;background:linear-gradient(90deg,var(--cc) 50%,var(--cb) 50%);pointer-events:none}
.epo::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#fff;z-index:1;pointer-events:none}
.epo .eph{position:absolute;top:0;bottom:0;width:50%;padding:0;margin:0;border:0;background:none;cursor:pointer;z-index:2}
.epo .eph.c{left:0;border-radius:14px 0 0 14px}.epo .eph.b{right:0;border-radius:0 14px 14px 0}
.epo .eph:focus-visible{outline:2px solid var(--p);outline-offset:1px}
span.epo:hover{transform:scale(1.15)}
.epo.c-ok{--cc:#16a34a}.epo.c-ref{--cc:#ea580c}.epo.c-lim{--cc:#b91c1c}
.epo.b-ok{--cb:#16a34a}.epo.b-ref{--cb:#ea580c}.epo.b-lim{--cb:#b91c1c}
.elg i.epo,.enx .epo{width:16px;height:16px;border:0;box-shadow:none}.elg i.epo::after,.enx .epo::after{inset:1.5px;border-width:2px}.elg i.epo::before,.enx .epo::before{width:1.5px;margin-left:-.75px}
.elg i.epo:not([class*="c-"])::after{background:linear-gradient(90deg,#64748b 50%,#cbd5e1 50%)}
.elg i.epo:not([class*="c-"]){background:linear-gradient(90deg,#64748b 50%,#cbd5e1 50%)}
.esl a.ept{color:inherit}.esl a.ept:hover{color:var(--p)}
/* le tuyau va jusqu'au point : depuis la gauche (au bout d'une antenne) et de haut en bas (dans une colonne amont → équipement → sortie) */
.esi.pt{position:relative}.esi.pt>.epo{z-index:1}
.er:not(.inl)>.esn>.esi.pt::before,.eant>.er:first-child>.esn>.esi.pt::before,.er:not(.inl)>.evc>.esn:first-child>.esi.pt::before,.eant>.er:first-child>.evc>.esn:first-child>.esi.pt::before{content:'';position:absolute;left:-2px;width:22px;top:calc(20px - var(--sw)/2);height:var(--sw);box-sizing:border-box;background:var(--ef);border-top:1.5px solid var(--eb);border-bottom:1.5px solid var(--eb)}
.evc{--pw:6px}.evc>.esv{width:var(--pw);margin-left:calc(20px - var(--pw)/2)}
.esc>.esn::before,.evc>.esn:not(:last-child)::before{left:calc(20px - var(--rw)/2);width:var(--rw)}
.evc>.esn:not(:last-child)::before{left:calc(20px - var(--pw)/2);width:var(--pw)}
.evc>.esn>.esi.pt{--vw:var(--pw)}.esc>.esn>.esi.pt{--vw:var(--rw)}
.evc>.esn>.esi.pt::after,.esc>.esn>.esi.pt::after{content:'';position:absolute;top:20px;bottom:20px;left:calc(20px - var(--vw)/2);width:var(--vw);box-sizing:border-box;background:var(--ef);border-left:1.5px solid var(--eb);border-right:1.5px solid var(--eb)}
.evc>.esv+.esn>.esi.pt::after,.esc>.esv+.esn>.esi.pt::after{top:-1px}
.evc>.esn:not(:last-child)>.esi.pt::after,.esc>.esn:not(:last-child)>.esi.pt::after{bottom:-1px}
.elt td.ets{border-right:1px solid var(--b)}      /* seuil juste après le paramètre, séparé des points */
/* ===== schéma du réseau d'eau, dessin compact (v2.17) : conduite verticale, antennes en lignes, équipement et sortie sur une étiquette, branches repliables ===== */
.zw{container-type:inline-size;padding:4px 0 6px;color:var(--t)}
.znet{--pf:#bcd7ef;--pb:#6f9ccb;padding-left:12px}
.zsrc{display:flex;align-items:center;gap:10px;margin-left:-12px}
.zsrc small{display:block;color:var(--m);font-size:12px}
.zib{display:inline-flex;flex:none;width:30px;height:30px;box-sizing:border-box;align-items:center;justify-content:center;border:1.5px solid var(--pb);border-radius:8px;background:#fff;color:#2b5f8f;position:relative;z-index:2}
.zib svg{width:17px;height:17px}
.zib.src{width:36px;height:36px;background:#dbeafe;border-color:#60a5fa;color:#1d4ed8}
.zib.dv{border-style:dashed;background:#f8fafc;color:#475569}
.zib.pt{border:0;background:transparent}
.zib.nd{border-radius:50%;background:#eef6fd}
.zev{display:block;width:12px;height:12px;box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb)}
.ztk{position:relative;--w:12px}
.ztk.a{--w:6px}
.zsb>.ztk{--w:inherit}
.zr{position:relative;padding:0 0 6px 56px;min-height:30px}
.zr:last-child{padding-bottom:0}
.zr::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--w);box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb)}
.zr:last-child::before{bottom:auto;height:18px;border-bottom:1.5px solid var(--pb);border-bottom-left-radius:6px}
.zr::after{content:'';position:absolute;left:calc(var(--w) - 1.5px);top:12px;width:calc(57.5px - var(--w));height:6px;box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb);z-index:1}
.zr.in{padding-left:0}
.zr.in::after{display:none}
.zon{position:relative;display:flex;align-items:center;gap:10px;min-height:30px;margin-left:calc(var(--w)/2 - 15px)}
.zlb{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
.zlb small,.zc small{color:var(--m);font-size:12px}
.zt{color:inherit;text-decoration:none;display:inline-flex;align-items:baseline;gap:6px;min-width:0}
a.zt:hover{color:var(--p);text-decoration:underline}
.zch{display:flex;align-items:center;flex-wrap:wrap;row-gap:6px;min-height:30px}
.zcx{display:block;flex:none;width:14px;height:6px;box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb)}
.zc{display:inline-flex;align-items:center;gap:7px;height:30px;box-sizing:border-box;padding:0 10px 0 9px;border:1px solid #c9d8ea;border-radius:8px;background:#fff;white-space:nowrap;font-size:13px;flex:none;max-width:100%}
.zc svg{width:16px;height:16px;flex:none;color:#2b5f8f}
.zc .zk{font-weight:700;color:var(--p)}
.zc .zt{overflow:hidden;text-overflow:ellipsis}
.zc.dv{border-style:dashed;background:#f8fafc;color:#334155}.zc.dv svg{color:#64748b}
.zc.ref{border-color:#fdba74;background:#fff7ed}.zc.lim{border-color:#f87171;background:#fef2f2}
.zc.ze{border-style:dashed;color:var(--m);font-size:12px}
.zbh{display:flex;align-items:center;gap:10px;min-height:30px}
.zbp{font:inherit;display:inline-flex;align-items:center;gap:8px;min-height:30px;box-sizing:border-box;padding:3px 12px;border-radius:15px;background:#eef6fd;border:1px solid #c9d8ea;font-size:13px;color:var(--t);cursor:pointer;text-align:left;flex-wrap:wrap}
.zbp:hover{border-color:var(--pb)}
.zbp small{color:#4b5563;font-size:12px}
.zbp svg{width:14px;height:14px;color:#2b5f8f;flex:none}
.zbp.cl{background:#fff;border-style:dashed;border-color:#9fc3e6}
.zw8{color:#c2410c;font-weight:600}
.zmini{display:inline-flex;align-items:center;gap:4px;flex-wrap:wrap}
.zfold{border:0;background:none;padding:4px;margin-left:-4px;color:var(--m);cursor:pointer;display:inline-flex;border-radius:6px}
.zfold:hover{background:#f3f4f6;color:var(--t)}
.zfold svg{width:14px;height:14px}
.zsub{margin-left:calc(15px - var(--w)/2);padding-top:6px}
.zsub::before{content:'';position:absolute;left:0;top:0;width:var(--w);height:6px;box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb)}
.zsp{position:relative}
.zsb{position:relative;padding:0 0 6px 56px}
.zsb:last-child{padding-bottom:0}
.zsb::before{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--w);box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb)}
.zsp:not(.cont)>.zsb:last-child::before{bottom:auto;height:calc(15px + var(--w)/2);border-bottom:1.5px solid var(--pb);border-bottom-left-radius:7px}
.zsb::after{content:'';position:absolute;left:calc(var(--w) - 1.5px);top:calc(15px - var(--w)/2);width:calc(57.5px - var(--w));height:var(--w);box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb);z-index:1}
@container (min-width:900px){
 .zsp.side{display:grid;grid-template-columns:minmax(0,1fr) 320px;padding-top:30px}
 .zsp.side>.zsb{padding:0}
 .zsp.side>.zsb::before,.zsp.side>.zsb::after{display:none}
 .zsp.side::before{content:'';position:absolute;left:0;top:0;height:30px;width:var(--w);box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb)}
 .zsp.side::after{content:'';position:absolute;left:calc(var(--w) - 1.5px);right:calc(320px - var(--w));top:calc(15px - var(--w)/2);height:var(--w);box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb);border-right:1.5px solid var(--pb);border-top-right-radius:7px;z-index:1}
 .zsp.side>.zsb:last-child>.ztk::before{content:'';position:absolute;left:0;top:calc(var(--w)/2 - 16.5px);height:calc(16.5px - var(--w)/2);width:var(--w);box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb);z-index:2}
 .zsp.side>.zsb:last-child .zc{max-width:260px}
}
.epo.sm{width:16px;height:16px}.epo.sm::after{inset:1.5px;border-width:2px}.epo.sm::before{width:1.5px;margin-left:-.75px}
.epo.xs{width:12px;height:12px}.epo.xs::after{inset:1px;border-width:1.5px}.epo.xs::before{width:1px;margin-left:-.5px}
.zug{display:flex;flex-direction:column;gap:6px;margin:10px 0 0}
.zug>small{color:var(--m);font-size:12px;font-weight:600}
.zuw{display:flex;flex-wrap:wrap;gap:8px 14px}
.eunp .zc{background:#f9fafb}
@media(max-width:700px){.zr{padding-left:40px}.zr::after{width:calc(41.5px - var(--w))}.zsb{padding-left:40px}.zsb::after{width:calc(41.5px - var(--w))}}
.zcj{display:inline-flex;align-items:center;flex:none;max-width:100%}
@container (max-width:520px){.zc .zt small{display:none}}      /* petit écran : le code seul, sans le local */
.zser{margin-left:calc(15px - var(--w)/2)}
.zser>.zr:first-child::before{top:15px}
.zser>.zr:first-child:last-child::before{display:none}
/* traitement en parallèle (ex. adoucisseur de la machine à glace) : alimenté à part, se déverse dans l'équipement */
.zpg{display:inline-grid;grid-template-columns:minmax(0,auto) minmax(0,auto);row-gap:18px;align-items:center;flex:0 1 auto;min-width:0;max-width:100%}
.zpc .zc,.zpe .zc,.zpt .zc{flex:0 1 auto;min-width:0}
.zpc,.zpe,.zpt{min-width:0}
.zpc,.zpe{display:flex;align-items:center;min-height:30px}
.zpf{position:relative;align-self:stretch;min-height:30px}
.zpf::before{content:'';position:absolute;left:4px;top:-31.5px;height:49.5px;width:6px;box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb);z-index:1}
.zpf::after{content:'';position:absolute;left:4px;right:0;top:12px;height:6px;box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb);border-left:1.5px solid var(--pb);border-bottom-left-radius:4px}
.zpt{position:relative;display:flex;align-items:center;flex-wrap:wrap}
.zarr{position:absolute;left:12px;top:-18px;height:18px;display:flex;align-items:center;gap:4px;color:#2b5f8f;white-space:nowrap;pointer-events:none}
.zarr svg{width:12px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.zarr small{color:var(--m);font-size:11px}
@container (max-width:520px){.zarr small{display:none}}      /* petit écran : la flèche seule */

/* v2.18.0 : groupe d'éléments (ex. groupe surpresseur) : cadre en pointillés avec son nom, la conduite le traverse */
.znet:has(.zg){padding-left:24px}
.zg{position:relative;width:fit-content;min-width:min(280px,100%);max-width:100%;box-sizing:border-box;padding:26px 16px 14px 0}
.zg::before{content:'';position:absolute;left:calc(var(--w)/2 - 24px);right:0;top:9px;bottom:6px;border:1.5px dashed #a24f6f;border-radius:12px;background:#faf3f6;pointer-events:none}
.zg::after{content:'';position:absolute;left:0;top:0;bottom:0;width:var(--w);box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb)}
.zg:last-child::after{bottom:auto;height:26px}
.zg:not(:last-child)>.zr:last-child{padding-bottom:6px}
.zg:not(:last-child)>.zr:last-child::before{bottom:0;height:auto;border-bottom:0;border-radius:0}
.zser>.zg:first-child::after{top:15px}
.zgn{position:absolute;left:calc(var(--w)/2 + 20px);top:0;height:18px;box-sizing:border-box;display:inline-flex;align-items:center;gap:5px;padding:0 9px 0 7px;border-radius:9px;background:#fff;border:1px solid #d09fb2;color:#a8436a;font-size:12px;white-space:nowrap;max-width:calc(100% - 40px);overflow:hidden;text-overflow:ellipsis;z-index:3}
.zgn svg{width:13px;height:13px;flex:none}
.zgn b{font-weight:700;overflow:hidden;text-overflow:ellipsis}
.eng0>.enh{background:#faf3f6;border:1.5px dashed #a24f6f}
.eng0>.enl{border-left:3px dashed #d09fb2}

/* v2.20.0 : antenne qui se divise (éléments branchés chacun sur l'antenne) : un collecteur sous les étiquettes, une descente vers chacune ; en cascade : l'un derrière l'autre */
.zr.zpr::after{top:38px;width:calc(59px - var(--w))}
.zr.zpr:last-child::before{height:44px}
.zpar{position:relative;display:flex;flex-wrap:wrap;row-gap:6px;min-height:44px}
.zpar::before{content:'';position:absolute;left:0;top:41px;bottom:3px;width:6px;box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb)}
.zpu{position:relative;display:inline-flex;align-items:center;flex:0 1 auto;min-width:0;max-width:100%;padding:0 0 14px 14px;box-sizing:border-box}
.zpu>.zc,.zpu>.zcj,.zpu>.zeq{flex:0 1 auto;min-width:0}
.zpu::after{content:'';position:absolute;left:0;right:0;bottom:0;height:6px;box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb);z-index:1}
@media(max-width:700px){.zr.zpr::after{width:calc(43px - var(--w))}}
.enc{display:inline-flex;font-size:12px;color:#334155;padding:2px 8px;border:1px dashed #9fc3e6;border-radius:6px;background:#f8fbff;gap:6px}

/* v2.21.0 : point de prélèvement = robinet ─ fiole ; la fiole remplace le rond (gauche chimie, droite bactériologie) */
.epo{width:22px;height:26px;border-radius:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 24'%3E%3Cpath d='M7 1h6a1 1 0 0 1 0 2h-.5v6.2l6.1 10.3A2.2 2.2 0 0 1 16.7 23H3.3a2.2 2.2 0 0 1-1.9-3.5L7.5 9.2V3H7a1 1 0 0 1 0-2z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 24'%3E%3Cpath d='M7 1h6a1 1 0 0 1 0 2h-.5v6.2l6.1 10.3A2.2 2.2 0 0 1 16.7 23H3.3a2.2 2.2 0 0 1-1.9-3.5L7.5 9.2V3H7a1 1 0 0 1 0-2z'/%3E%3C/svg%3E") center/contain no-repeat}
.epo::after{display:none}
.epo::before{top:3px;bottom:1px}
.epo.sm{width:15px;height:18px}
.epo.xs{width:10px;height:12px}
.elg i.epo,.enx .epo{width:14px;height:17px}
.zpv{display:inline-flex;align-items:center;flex:none}
.zpv>.epo{margin-left:1px}.zpv>.epo+.epo{margin-left:4px}
.zsm{display:block;flex:none;width:9px;height:0;border-top:1.5px solid #64748b}
.zc .zpv svg{width:17px;height:17px}
.zib.tp{background:#fff}
.zpv0 .zsm{width:10px}
.epo.sm{width:16px;height:20px}
.zpv0>.epo{width:18px;height:22px}

/* v2.22.0 : le point de prélèvement d'un équipement sort de son étiquette (trait puis fiole, à droite) ; descente du collecteur au milieu de la 1re étiquette (zin) */
.zeq{display:inline-flex;align-items:center;flex:0 1 auto;min-width:0;max-width:100%}
.zeq>.zc{flex:0 1 auto;min-width:0}
.zpo{margin-left:0}.zpo>.zsm{width:10px}
.zpu:last-child::after,.zpu.le::after{display:none}
.zin{position:relative}
.zin::before{content:'';position:absolute;left:calc(50% - 3px);top:calc(100% + 1px);height:9.5px;width:6px;box-sizing:border-box;background:var(--pf);border-left:1.5px solid var(--pb);border-right:1.5px solid var(--pb);z-index:2}
.zin::after{content:'';position:absolute;left:-15px;right:calc(50% - 3px);top:calc(100% + 9px);height:6px;box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb);z-index:1}
.zpu:last-child .zin::after,.zpu.le .zin::after{border-right:1.5px solid var(--pb);border-bottom-right-radius:5px}

/* un point au milieu d'une suite (amont, cascade) : sa fiole est posée sur le tuyau qui continue vers l'élément suivant (pas de trait) */
.zpo{position:relative}
.zpo>.epo{z-index:1}
.zeq:has(+.zcj)>.zpo,.zeq:has(+.zcx)>.zpo,.zcj:has(+.zcj)>.zeq>.zpo{padding:0 3px}
.zeq:has(+.zcj)>.zpo>.zsm,.zeq:has(+.zcx)>.zpo>.zsm,.zcj:has(+.zcj)>.zeq>.zpo>.zsm{display:none}
.zeq:has(+.zcj)>.zpo::before,.zeq:has(+.zcx)>.zpo::before,.zcj:has(+.zcj)>.zeq>.zpo::before{content:'';position:absolute;left:0;right:0;top:50%;height:6px;margin-top:-3px;box-sizing:border-box;background:var(--pf);border-top:1.5px solid var(--pb);border-bottom:1.5px solid var(--pb)}

/* v2.23.0 : Hygiène > Analyses de surfaces */
.srh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:0 0 12px}
.srh .ws{font-size:12.5px}
.tool.srf input{min-width:220px}
.tool.srf select{width:auto;flex:none}
.srt{width:100%;border-collapse:collapse;font-size:13px}
.srt th{text-align:left;font-size:12px;color:var(--m);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--b);white-space:nowrap}
.srt td{padding:6px 8px;border-bottom:1px solid #f0f2f5;vertical-align:top}
.srt tr.nc td{background:#fef6f6}
.srt .nw{white-space:nowrap}
.srb{display:inline-flex;align-items:center;gap:3px;margin:0 4px 2px 0;padding:1px 7px 1px 5px;border-radius:10px;font-size:11.5px;font-weight:600;white-space:nowrap}
.srb svg{width:12px;height:12px}
.srb.ok{background:#dcfce7;color:#166534}.srb.ko{background:#fee2e2;color:#991b1b}
.srca{color:#9a3412}
.srnc{color:#b91c1c}
.srim{width:100%;border-collapse:collapse;font-size:13px}.srim th,.srim td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--b)}.srim th{font-size:12px;color:var(--m)}
.srt td{white-space:normal}.srt td.nw{white-space:nowrap}
.tw .srt tbody tr.nc td{background:#fef2f2}
.srwarn{display:flex;gap:8px;align-items:flex-start;margin:10px 0 0;padding:8px 10px;border-radius:8px;background:#fff7ed;color:#9a3412;font-size:13px}.srwarn svg{flex:none;width:16px;height:16px;margin-top:2px}

/* v2.24.0 : analyses de surfaces, statistiques */
.srst{font-weight:600;align-self:center}
.srml{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:var(--m)}.srml select{width:auto}
.srkp0{margin:0 0 6px}
.srv.ok{color:#15803d}.srv.mid{color:#c2410c}.srv.ko{color:#b91c1c}
.srleg{margin:4px 0 12px;font-size:12.5px;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center}
.srlv{display:inline-flex;align-items:center;gap:4px;font-weight:600;white-space:nowrap}.srlv svg{width:13px;height:13px}
.srlv.ok{color:#15803d}.srlv.mid{color:#c2410c}.srlv.ko{color:#b91c1c}.srlv.none{color:var(--m)}
.srg{margin:18px 0 8px;font-size:15px}
.srks{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.srks>.card{margin:0}
.srk{border-top:4px solid #cbd5e1}.srk.ok{border-top-color:#16a34a}.srk.mid{border-top-color:#ea580c}.srk.ko{border-top-color:#b91c1c}
.srk.none{opacity:.8}
.srkh b{display:block;font-size:14px}.srkh small{color:var(--m);font-size:12px}
.srkp{display:flex;align-items:center;gap:12px;margin:10px 0 8px}
.srkp b{display:block;font-size:13px}.srkp small{color:var(--m);font-size:12px}
.srbig{display:inline-flex;align-items:center;gap:6px;font-size:26px;font-weight:800;line-height:1}
.srbig svg{width:20px;height:20px}
.srbig.ok{color:#15803d}.srbig.mid{color:#c2410c}.srbig.ko{color:#b91c1c}
.srkt{width:100%;font-size:12.5px}.srkt td{border:0;padding:3px 4px;white-space:normal}.srkt td:first-child{width:34%;color:#374151}
.srbar span{display:flex;height:10px;border-radius:5px;overflow:hidden;background:#f1f5f9;gap:2px}
.srbar i{display:block;height:100%}.srbar i.c{background:#16a34a}.srbar i.n{background:#dc2626}
.srknc{margin:8px 0 0;padding:8px 0 0;border-top:1px solid var(--b);font-size:12.5px;display:flex;flex-direction:column;gap:4px}
.srknc small{display:block}
button.lnk{border:0;background:none;padding:0;color:var(--p);font:inherit;font-size:12.5px;cursor:pointer;text-align:left;text-decoration:underline}
.srev{font-size:12.5px}.srev th{text-align:center}.srev th:first-child{text-align:left}
.srev td.src{text-align:center;font-weight:600;white-space:nowrap}
.srev td.src svg{width:12px;height:12px;vertical-align:-1px;margin-right:2px}
.tw .srev tbody tr td.src.ok{background:#f0fdf4;color:#15803d}.tw .srev tbody tr td.src.mid{background:#fff7ed;color:#c2410c}.tw .srev tbody tr td.src.ko{background:#fef2f2;color:#b91c1c}.tw .srev tbody tr td.src.none{color:#9ca3af;font-weight:400}
.tw .srev tr.grp0 td{background:#f3f4f6;font-weight:700;font-size:12px}
.srchs{display:grid;grid-template-columns:repeat(auto-fill,minmax(520px,1fr));gap:12px;margin-top:14px}
.srchs>.card{margin:0}
.srch svg{width:100%;height:auto;display:block;margin-top:6px}
.srch .ax{stroke:#9ca3af;stroke-width:1}.srch .gl{stroke:#e5e7eb;stroke-width:1}
.srch .gl.th{stroke-dasharray:5 4;stroke-width:1.5}.srch .gl.th.ok{stroke:#16a34a}.srch .gl.th.mid{stroke:#ea580c}
.srch .yl,.srch .xl{font-size:11px;fill:#6b7280}.srch .dl{font-size:11.5px;fill:#374151}
.srlg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:12px;color:#374151;margin-top:6px}
.srlg span{display:inline-flex;align-items:center;gap:5px}.srlg i{display:inline-block;width:14px;height:3px;border-radius:2px}
.srlg i.th{height:0;border-top:2px dashed #16a34a;background:none}.srlg i.th.mid{border-top-color:#ea580c}
@media(max-width:700px){.srchs{grid-template-columns:1fr}}
.srks{align-items:start}
.srkt td:first-child{width:30%}.srkt td.srbar{width:46%}
.srknc>div{line-height:1.35}
.srch .yl,.srch .xl{font-size:12.5px}.srch .dl{font-size:13px}
.tool.srf .srrp{margin-left:auto}

.srpl small.ws{font-size:12px}.srpl label.chk{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.srpk{font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:700;letter-spacing:.5px;padding:1px 6px;border:1.5px solid #1f2937;border-radius:4px;background:#fff;color:#111827}
.srplw{align-items:center;margin:0 0 10px;flex-wrap:wrap}.srplw span{flex:1;min-width:200px}.srplw button{flex:none}
.srdoc{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 12px;margin:12px 0 0;padding:10px 12px;border-radius:8px;background:var(--bg,#f3f4f6)}.srdoc>b{flex-basis:100%;font-size:13px}.srdoc label{display:flex;flex-direction:column;gap:3px;font-size:12px;flex:1;min-width:140px}.srdoc input{width:100%}

/* ===== fiche d'une demande de maintenance (v2.30) ===== */
.dfbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px}.dfsp{flex:1}
.dfback{display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:var(--p);font-weight:600;padding:8px 4px}.dfback .ic{margin:0}
.dfh{display:flex;flex-direction:column;gap:6px;padding:20px 22px}
.dfh1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.dfref{font-size:13px;font-weight:600;color:#667085;letter-spacing:.4px;font-variant-numeric:tabular-nums}
.dfnat{font-size:12.5px;font-weight:600;color:#344054;background:#eef2f6;border-radius:7px;padding:2px 8px}
.dft{margin:4px 0 0!important;font-size:24px;font-weight:750;line-height:1.25}.dfby{font-size:14px;color:#475467}
.dforg{display:flex;flex-direction:column;gap:4px;font-size:13.5px;color:#475467}.dforg span{display:inline-flex;align-items:center;gap:6px}.dforg .ic{width:15px;height:15px;margin:0}
.dfsteps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:14px 0 4px}
.dfstep{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;border:0;background:transparent;padding:0 8px 0 0;text-align:left;cursor:pointer;color:var(--t);min-width:0}
.dfstep:disabled{cursor:default;color:var(--t)}
.dfstep::before{content:"";position:absolute;left:34px;right:6px;top:14px;height:3px;border-radius:2px;background:#e4e7ec}.dfstep:last-child::before{display:none}
.dfdot{width:30px;height:30px;border-radius:50%;box-sizing:border-box;border:2px solid #d0d5dd;background:#fff;display:flex;align-items:center;justify-content:center;color:#fff}.dfdot .ie{width:16px;height:16px;stroke-width:3}
.dfstep b{font-size:14px}.dfstep small{font-size:12.5px;color:#667085;min-height:16px}
.dfstep.todo b{color:#667085}
.dfstep.done.s-y .dfdot{background:#ca8a04;border-color:#ca8a04}.dfstep.done.s-bl .dfdot{background:#2563eb;border-color:#2563eb}.dfstep.done.s-o .dfdot{background:#ea580c;border-color:#ea580c}
.dfstep.done.s-y::before{background:#ca8a04}.dfstep.done.s-bl::before{background:#2563eb}.dfstep.done.s-o::before{background:#ea580c}
.dfstep.cur .dfdot{border-width:3px;background:#fff}.dfstep.cur .dfdot::after{content:"";width:10px;height:10px;border-radius:50%;background:currentColor}
.dfstep.cur.s-y .dfdot{border-color:#ca8a04;color:#ca8a04}.dfstep.cur.s-bl .dfdot{border-color:#2563eb;color:#2563eb}.dfstep.cur.s-o .dfdot{border-color:#ea580c;color:#ea580c}.dfstep.cur.s-g .dfdot{background:#16a34a;border-color:#16a34a;color:#fff}.dfstep.cur.s-g .dfdot::after{display:none}
.dfstep.cur.s-y b{color:#854d0e}.dfstep.cur.s-bl b{color:#1e40af}.dfstep.cur.s-o b{color:#9a3412}.dfstep.cur.s-g b{color:#166534}
.dfstep:not(:disabled):hover b{text-decoration:underline}
.dfsteps.ann .dfdot{border-color:#d0d5dd!important;background:#f2f4f7!important}.dfsteps.ann::after{content:"Demande annulée";grid-column:1/-1;font-size:13px;font-weight:600;color:#667085;margin-top:6px}
.dfnext{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-top:14px;margin-top:8px;border-top:1px solid #f0f2f5}
.dfgo{display:inline-flex;align-items:center;gap:8px;min-height:46px;padding:0 20px;border-radius:11px;font-size:15px;font-weight:650}.dfgo .ic{color:#fff;margin:0}
.dfcancel{color:#667085}
.dfdue{display:inline-flex;align-items:center;gap:7px;font-size:14px;font-weight:650;color:#344054;background:#eef2f6;border-radius:10px;padding:8px 12px}.dfdue .ie{width:16px;height:16px}
.dfdue.late{color:#b42318;background:#fde8e8}.dfdue.soon{color:#93370d;background:#fef0c7}.dfdue.ok{color:#067647;background:#dcfae6}
.dfgrid{display:flex;gap:16px;align-items:flex-start;flex-wrap:wrap}.dfmain{flex:2 1 520px;min-width:0}.dfside{flex:1 1 280px;min-width:0}
.dfmain>.card,.dfside>.card{margin-bottom:16px}
.dfdesc{margin:0;font-size:15px;line-height:1.55;white-space:pre-line}
.dfph{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.dfph img{width:120px;height:90px;object-fit:cover;border-radius:10px;cursor:zoom-in}
.dfloc{display:flex;align-items:flex-start;gap:8px;margin-top:10px;font-size:14px}.dfloc .ic{margin:2px 0 0;color:#667085}.dfloc small{display:block;font-size:12px;color:#667085}
.dfp{display:flex;align-items:center;gap:12px;margin-bottom:12px}.dfp small{display:block;font-size:13px;color:#667085}.dfp a{font-size:15px;font-weight:700}
.dmav.big{width:44px;height:44px;font-size:14px;background:#f0e6ea;color:var(--p)}
.dfpb{display:flex;flex-wrap:wrap;gap:8px}.dfpb>*{flex:1 1 auto;justify-content:center;display:inline-flex;align-items:center;gap:6px;min-height:44px}
.dfwho .rlbox{margin-top:12px}
.dfmini{display:flex;align-items:center;gap:10px}.dfmini>div{flex:1;min-width:0}.dfmini h3{margin:0 0 4px;font-size:15px}.dfmini b{font-size:15px}.dfmini small{display:block;font-size:13px;margin-top:2px}.dfmini .late{color:#b42318;font-weight:700}
.dftl{list-style:none;margin:0;padding:0}.dftl li{display:flex;gap:12px;position:relative;padding-bottom:14px}
.dftl li::before{content:"";position:absolute;left:4px;top:14px;bottom:0;width:2px;background:#e5e7eb}.dftl li:last-child::before{display:none}
.dftd{flex:none;width:10px;height:10px;border-radius:50%;background:var(--p);margin-top:5px}.dftl li:last-child .dftd{background:#98a2b3}
.dftl b{font-size:14px}.dftv{display:block;font-size:13.5px;color:#344054}.dftl small{display:block;font-size:12.5px;color:#667085}
@media(max-width:760px){.dfgrid{flex-direction:column;align-items:stretch}.dfside{order:-1}.dfmain,.dfside{flex:none;width:100%}
 .dft{font-size:20px}.dfstep::before{left:30px;right:2px}.dfstep b{font-size:12.5px}.dfstep small{font-size:11px}.dfdot{width:26px;height:26px}.dfstep::before{top:12px}
 .dfgo{flex:1;justify-content:center}.dfnext .dfsp{display:none}.dfdue{width:100%}}
body.popm .dfback{display:none}
@media(max-width:760px){.dfbar .dfback{flex-basis:100%;justify-content:flex-start}.dfbar .dfsp{display:none}}
.tplkb{border:0;background:none;font-size:20px;line-height:1;padding:6px 10px;margin:0;color:var(--t);cursor:pointer}.tplkb:hover{background:#f3f4f6;border-radius:8px}
.dmav.img{object-fit:contain;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:2px;box-sizing:border-box}.dmav.img.big{width:56px;height:56px;padding:3px}.dmkp{display:inline-flex}      /* logo du prestataire */
.dfplz{margin:0 0 0 auto!important}.dfplv{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}.dfplv button{padding:5px 10px;border-radius:999px;font-size:13px}.dfplv button.on{background:var(--p);border-color:var(--p);color:#fff}.dfplan .plw,.dfplan .plw.sm,.dfplan .plw.fit{max-height:none!important;overflow:hidden!important;touch-action:auto}.dfplan .plw .pli{width:100%!important;min-width:0}.dfplan .plw,.dfplan .plw *{pointer-events:none!important;cursor:default!important}.dfplt{margin:6px 0 0;font-size:13px}      /* fiche d'une demande : rappel du plan */
/* import de documents : zone de dépôt de la bibliothèque, fichiers glissés sur une fiche ou un dossier */
.gdimp{margin:0 0 12px}.gdimpb{width:100%;display:flex;align-items:center;gap:14px;text-align:left;border:2px dashed #c49fad;border-radius:14px;background:#f8f2f4;padding:16px 18px;cursor:pointer;font:inherit;color:var(--t)}
.gdimpb:hover,.gdimp.dropon .gdimpb{border-color:var(--p);background:#f1e3e8}.gdimp.dropon .gdimpb{box-shadow:0 0 0 3px rgba(168,67,106,.15)}
.gdimpi{flex:none;width:46px;height:46px;border-radius:50%;background:var(--p);display:flex;align-items:center;justify-content:center}.gdimpi .ie{width:22px;height:22px;margin:0;color:#fff}
.gdimpt{display:flex;flex-direction:column;gap:2px;min-width:0}.gdimpt b{font-size:16px;color:var(--p)}.gdimpt small{font-size:13px;color:#344054}.gdimpt small.ws{color:var(--m);font-size:12.5px}
.gdimp.busy .gdimpb{cursor:progress;opacity:.75}
.gdres{display:flex;align-items:flex-start;gap:10px;justify-content:space-between;border:1px solid #abefc6;background:#ecfdf3;border-radius:12px;padding:10px 12px;margin:0 0 12px}.gdres>div{display:flex;gap:8px;align-items:flex-start;min-width:0}.gdres .ie{color:#16a34a;flex:none;margin-top:2px}.gdres .ib{flex:none;padding:2px 9px;font-size:16px}
.gdf.dropon{border-color:var(--p);background:#f1e3e8;box-shadow:0 0 0 3px rgba(168,67,106,.18)}
.dcard.dropon{outline:2px dashed var(--p);outline-offset:-4px;background:#f8f2f4}
.dcsel{padding:3px 6px;font-size:13px;max-width:180px;border-radius:7px}
@media(max-width:600px){.gdimpb{padding:14px;gap:12px}.gdimpi{width:40px;height:40px}}
.dcnote{margin:-4px 0 10px;display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:13px}.dcnote .ie{color:var(--p)}
/* équipements liés (maître / esclaves) */
.eqlg{display:grid;grid-template-columns:1fr 1.4fr;gap:14px 24px}.eqlg>div{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0}
.eqlh{color:var(--m);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}
.eqlr{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;border:1px solid var(--b);border-radius:10px;background:#fff;min-width:0}.eqlr a{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--t);text-decoration:none}.eqlr a:hover{color:var(--p);text-decoration:underline}.eqlr a b{color:var(--p)}
.eqlsp{flex:1}.eqlr .bd{flex:none}.eqlx{flex:none;padding:0 8px!important;font-size:16px;line-height:24px}
.eqln{margin:0;font-size:13px}.eqlnote{margin:12px 0 0;font-size:12.5px}
.eqpk{max-height:50vh;overflow:auto;margin:8px 0 0}.eqpks{width:100%}
@media(max-width:700px){.eqlg{grid-template-columns:1fr}}
/* Hygiène > Consommations : machine à glace */
.glbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 12px}.glti h3{margin:0;font-size:17px}.glti .ws{font-size:13px}.glsp{flex:1}
.glyr{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--b);border-radius:10px;background:#fff;padding:2px 4px}.glyr b{min-width:44px;text-align:center}.glyr .ib{padding:2px 10px;font-size:16px}
.gltiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}.gltile{background:#fff;border:1px solid var(--b);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px}.gltile small{color:var(--m)}.gltile b{font-size:22px;color:var(--t)}.gltile .ws{font-size:12.5px}
.glch{position:relative}.glch svg{width:100%;height:auto;display:block}.glb{fill:#0e7fa0}.glch .glh:hover{fill:rgba(14,116,144,.06)}.glgr{stroke:#eef0f2}.glbase{stroke:#9ca3af}.glax{font-size:11px;fill:#6b7280}.glval{font-size:11px;font-weight:700;fill:#1c1f26}
.gltip{position:absolute;pointer-events:none;background:#1c1f26;color:#fff;border-radius:8px;padding:7px 10px;font-size:12.5px;line-height:1.45;box-shadow:0 4px 14px rgba(0,0,0,.18);white-space:nowrap}.gltip .ws{color:#d1d5db}
.gltab td.num,.gltab th.num{text-align:right;font-variant-numeric:tabular-nums}.gltab tr.glemp td{color:#9ca3af}.gltab tr.glemp td b{color:#6b7280;font-weight:600}.gltab tr.glck{cursor:pointer}.gltab tr.glck:hover td{background:#f8f2f4}
.gltab tfoot td{font-weight:700;border-top:2px solid var(--t);background:#f9fafb}.glnote{margin:8px 0 0;font-size:12.5px}
@media(max-width:700px){.gltiles{grid-template-columns:1fr}.gltile b{font-size:19px}.glbar .glsp{display:none}}
.glln{fill:none;stroke:#c2410c;stroke-width:2;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}.glpt{fill:#c2410c;stroke:#fff;stroke-width:2;pointer-events:none}.glat{font-size:11px;fill:#6b7280;font-weight:600}
.gllg{display:flex;flex-wrap:wrap;gap:6px 18px;margin:2px 0 4px;font-size:12.5px;color:#344054}.gllg span{display:inline-flex;align-items:center;gap:7px}.glsw{display:inline-block;flex:none}.glswb{width:12px;height:12px;border-radius:3px;background:#0e7fa0}.glswl{width:18px;height:2px;background:#c2410c;position:relative}.glswl::after{content:'';position:absolute;left:5px;top:-4px;width:8px;height:8px;border-radius:50%;background:#c2410c;box-shadow:0 0 0 2px #fff}
.efg{fill:#0e7fa0}.efo{fill:#4fb3d9}.efswg{width:12px;height:12px;border-radius:3px;background:#0e7fa0}.efswo{width:12px;height:12px;border-radius:3px;background:#4fb3d9}
.g1 .g2{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}@media(max-width:520px){.g1 .g2{grid-template-columns:1fr}}
.glct{border-color:#fed7aa;background:#fffaf5}.glct b{color:#9a3412}
.glcost0{display:flex;gap:8px;align-items:flex-start;border:1px dashed #fdba74;background:#fff7ed;border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:13px}.glcost0 .ie{color:#c2410c;flex:none;margin-top:1px}
/* scanner : zoom de la caméra (pincer l'image ou + / −), la page ne zoome plus */
.qsc{touch-action:none;-webkit-user-select:none;user-select:none}.qsc video{transform-origin:50% 50%;transition:transform .08s linear}
.qscz{position:absolute;right:max(12px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;background:#0009;border:1px solid #ffffff40;border-radius:999px;padding:6px;z-index:2}
.qscz button{width:42px;height:42px;border-radius:50%;border:0;background:#ffffff1f;color:#fff;font-size:24px;line-height:1;cursor:pointer}.qscz button:active{background:#ffffff40}.qscz span{font-size:13px;font-weight:700;min-width:36px;text-align:center}
.qsc input{touch-action:manipulation;-webkit-user-select:text;user-select:text}
/* ===== CAP PRODEV ===== */
/* Administration > Listes de choix : une colonne par liste */
.lstg{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}
.lstb{display:flex;flex-direction:column;gap:4px;font-size:13px}
.lstb textarea{font-size:13px;line-height:1.5;resize:vertical}
.lstr{display:flex;justify-content:flex-end}.lstr .ib{font-size:12px;padding:4px 8px}
/* Fournisseurs : cartes de visite dans le formulaire, lecture automatique, galerie de la fiche */
.fcar{background:#fbf3f6;border:1px dashed #e2b9c8;border-radius:10px;padding:10px 12px}
.fcarb{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.fcarl{display:flex;flex-wrap:wrap;gap:6px}.fcarl:empty{display:none}
.fcara{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fcara .phb{margin:0}
.fcth{position:relative}.fcth img{width:120px;height:76px;object-fit:cover;border-radius:6px;cursor:zoom-in;border:1px solid var(--b)}
.fcth i{position:absolute;left:4px;bottom:4px;background:#000a;color:#fff;font:600 10px system-ui,sans-serif;font-style:normal;padding:1px 6px;border-radius:999px}
.fcrd{border-color:var(--p);color:var(--p);font-weight:600}.fcrd .ie{color:var(--p)}.fcrd[hidden]{display:none}
#fcar_m{display:block;margin-top:6px}#fcar_m .ie{color:#16a34a}
label.aifill input,label.aifill select,label.aifill textarea{background:#fbeef3;border-color:#d996b0}
label.aifill>span::after{content:" ✦ lu sur la carte";color:var(--p);font-weight:600;font-size:11px}
.fcsg{margin-top:8px;border:1px solid #e2b9c8;background:#fff;border-radius:8px;padding:8px 10px;font-size:13px}
.fcsr{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:6px 0;border-top:1px solid var(--b)}.fcsr:first-of-type{border-top:0}
.fcsr span{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}.fcsr small{font-size:11px}
.fcspin{display:inline-block;width:14px;height:14px;border:2px solid #e2b9c8;border-top-color:var(--p);border-radius:50%;margin-right:8px;vertical-align:-2px;animation:fcsp .8s linear infinite}
@keyframes fcsp{to{transform:rotate(360deg)}}
.fcgal{display:flex;flex-wrap:wrap;gap:12px}
.fcgal figure{margin:0;width:230px;max-width:100%;border:1px solid var(--b);border-radius:10px;overflow:hidden;background:#fafafa}
.fcgal img{display:block;width:100%;height:140px;object-fit:contain;background:#fff;cursor:zoom-in}
.fcgal figcaption{display:flex;gap:6px;justify-content:flex-end;padding:6px;border-top:1px solid var(--b)}.fcgal figcaption:empty{display:none}
.fcgal figcaption .ib{padding:4px 8px;font-size:12px}
label.fcadd{position:relative;margin-left:auto;cursor:pointer}
.fct td{white-space:normal}.fct td.mc{text-align:center}
.fcper{display:block;background:#fbf3f6;border:1px solid #e2b9c8;border-radius:8px;padding:8px 10px;margin:4px 0 10px}
.fcqk{margin:12px 0}.fcqk .phb{margin:0}
.fcact{display:flex;flex-wrap:wrap;gap:6px}.fcact .btn,.fcact button{display:inline-flex;align-items:center}
/* Fournisseurs : cartes rangées par paire recto / verso */
.fcpair{position:relative;display:inline-flex;gap:4px;padding:4px;border:1px solid #e2b9c8;border-radius:8px;background:#fff}
.fcpx{position:absolute;top:-8px;right:-8px;width:22px;height:22px;border-radius:50%;background:#fff;border:1px solid #d996b0;color:var(--p);font:700 15px/19px system-ui,sans-serif;text-align:center;cursor:pointer;box-shadow:0 1px 4px #0002}
.fcimgs{display:flex;gap:2px;background:#fff}.fcimgs img{flex:1 1 0;min-width:0}
.fcgal figure.fcrv{width:340px}.fcgal figcaption small{margin-right:auto;align-self:center;font-size:11px;color:var(--p);font-weight:600}
.fcpb{display:inline-flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-left:auto}.sh .fcpb .ob{margin-left:0}.ctpr .ie,.ctrt .ie{fill:currentColor}
@media(max-width:600px){.sh:has(>.fcpb){flex-wrap:wrap}.sh>.fcpb{width:100%;justify-content:flex-start}}
/* Fournisseurs : contacts (une carte de visite = un contact) */
.fcst{background:#fbf3f6;border:1px solid #e2b9c8;border-radius:10px;padding:10px 12px;margin-bottom:6px;font-size:14px}.fcst[hidden]{display:none}.fcst .ie{color:#16a34a}.fcst .fcsg{margin-top:8px}
.ctf>span small{font-weight:400}
#ctl{display:flex;flex-direction:column;gap:10px;margin-top:6px}#ctl:empty{display:none}
.ctr{border:1px solid var(--b);border-radius:10px;padding:8px 10px 10px;background:#fff}
.ctr.aifill{border-color:#d996b0;background:#fffafc}
.ctrh{display:flex;align-items:center;gap:8px;margin-bottom:6px}.ctrt{font-size:13px;color:var(--nav);display:inline-flex;align-items:center;gap:4px}.ctrt .ie{color:#d97706}
.ctrc{display:flex;gap:4px;margin-left:auto}.ctrc .fcth img{width:72px;height:45px}.ctrh>.ib{padding:4px 6px}
.ctrg{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:6px 10px}
.ctrg label{display:flex;flex-direction:column;gap:2px;font-size:12px;color:#6b7280}
.ctrf{display:block;margin-top:6px}.ctrf:empty{display:none}
.ctfb{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 0}
.ctl{display:flex;flex-direction:column}
.ctc{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid var(--b)}.ctc:first-child{border-top:0;padding-top:4px}
.ctci{display:flex;gap:3px;flex:none}.ctci img{width:96px;height:60px;object-fit:cover;border-radius:6px;border:1px solid var(--b);cursor:zoom-in;background:#fff}
.ctci.ctcn0{width:60px;height:60px;border-radius:50%;background:#f6e7ed;color:var(--p);align-items:center;justify-content:center;font-size:26px}
.ctcb{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.ctcn{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ctpr{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:#92400e;background:#fef3c7;border-radius:999px;padding:1px 8px}.ctpr .ie{color:#d97706}
.ctcf{color:#374151}
.ctcl{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:4px;font-size:13.5px}.ctcl>span{display:inline-flex;align-items:center;gap:4px;min-width:0;overflow-wrap:anywhere}
.ctwa .ie,.ctwc .ie{color:#16a34a}.cpy{padding:2px 5px;margin-left:2px}
.ctca{display:flex;gap:4px;flex:none;flex-wrap:wrap;justify-content:flex-end}
small.ctsm{display:block;font-size:11.5px}
.cte{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fbf3f6;border:1px dashed #e2b9c8;border-radius:10px;padding:8px 10px}.ctec{display:flex;gap:4px}.ctec:empty{display:none}.ctec .fcth img{width:96px;height:60px}
#cte_m:empty{display:none}#cte_t:empty{display:none}#cte_m .ie{color:#16a34a}
@media(max-width:600px){.ctc{flex-wrap:wrap}.ctci img{width:84px;height:53px}.ctca{width:100%;justify-content:flex-start}.ctrg{grid-template-columns:1fr 1fr}}
/* Assistant « carte de visite » : recto puis verso, toujours demandés avant la lecture */
.dlg.cwz{z-index:45}
.cwzb{max-width:440px}
.cwzh{display:flex;align-items:center;gap:6px;font-size:16px!important;margin-bottom:10px!important}.cwzh .ic{color:var(--p)}
.cwzs{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:13px;font-weight:600;color:#6b7280}
.cwzs span{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:#f3f4f6}
.cwzs span.on{background:var(--p);color:#fff}.cwzs span.ok{background:#dcfce7;color:#166534}.cwzs span .ie{color:#16a34a;margin:0}
.cwzs i{flex:1;height:2px;background:#e5e7eb;max-width:40px}
.cwzp{position:relative;display:inline-block;margin:0 0 10px}.cwzp img{display:block;width:150px;height:94px;object-fit:cover;border-radius:6px;border:1px solid var(--b)}
.cwzp small{position:absolute;left:4px;bottom:4px;background:#000a;color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:999px}
.cwzt{color:#374151}
.cwza{margin:12px 0 4px}.cwza .phb{margin:0;display:flex;flex-wrap:wrap;gap:8px}.cwza .ib{font-weight:600}.cwza .ibp{background:var(--p);color:#fff;border-color:var(--p)}.cwza .ibp .ie{color:#fff}
/* Traduction proposée (fiche en langue étrangère) : sous le texte d'origine */
small.trp{display:block;color:#6b7280;font-size:12.5px;font-weight:400;margin-top:2px;line-height:1.35}small.trp b{color:var(--nav);font-weight:600}small.trp i{font-size:11px}
td small.trp{font-size:11.5px;margin:1px 0 0 42px}
small.trp.nomo b,small.trp.nomo{color:#374151}.ctrn:empty,#cte_n:empty{display:none}.ctrn{display:block;margin-top:6px}
h2+small.trp{font-size:14px;margin-top:2px}
.ftr{background:#f8f5ff;border:1px dashed #c9b8ee;border-radius:10px;padding:10px 12px}.ftr[hidden]{display:none}.ftr>span small{font-weight:400;color:#6b7280}
/* Accueil : derniers éléments d'un module */
.hml{margin-top:10px;display:flex;flex-direction:column;gap:6px}.hml>div{display:flex;align-items:center;gap:8px;min-width:0}.hml span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:600px){.fcgal figure{width:calc(50% - 6px)}.fcgal img{height:110px}.fcth img{width:104px;height:66px}}
/* Produits : vignettes, galerie de photos, statut, étiquette */
.avs.pdav{object-fit:cover;border-radius:8px}.pdavi{display:inline-flex;align-items:center;justify-content:center;background:#f6e7ed;color:var(--p)}.pdavi .ic{margin:0;color:var(--p)}
.av.pdbig{object-fit:cover;cursor:zoom-in;border-radius:12px}.av.pdavi .ic{width:30px;height:30px}
.pdgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.pdgal figure{margin:0;border:1px solid var(--b);border-radius:10px;overflow:hidden;background:#fafafa;display:flex;flex-direction:column}
.pdgal img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;background:#fff}
.pdgal figure.pdg1{grid-column:span 2;grid-row:span 2}.pdgal figure.pdg1 img{aspect-ratio:auto;flex:1;min-height:0;height:100%}
.pdgal figcaption{display:flex;gap:6px;align-items:center;justify-content:flex-end;padding:5px 6px;border-top:1px solid var(--b)}.pdgal figcaption small{margin-right:auto;font-size:11px;color:var(--p);font-weight:600}
.pdgal figcaption .ib{padding:4px 7px}
.pdphb{margin-left:auto}.pdphb .phb{margin:0}
.pdst{width:auto;padding:4px 8px;border-radius:999px;font-weight:600;font-size:12.5px;border-color:#e2b9c8;background:#fbf3f6;color:var(--nav)}
.pdnf{margin-top:4px;align-self:flex-start;font-size:12.5px;padding:4px 8px;color:var(--p);border-color:#e2b9c8}.pdnf .ie{color:var(--p)}
.pdetb{flex-wrap:wrap;align-items:flex-end}.pdetn{display:flex;flex-direction:column;font-size:12px;color:var(--m);gap:3px}.pdetn input{width:110px}
/* galerie en grand : photo précédente / suivante */
.gal .galn{position:fixed;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:1px solid #ffffff59;background:#000a;color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.gal .galn .ie{width:26px;height:26px}.gal .galp{left:calc(10px + env(safe-area-inset-left,0px))}.gal .galx2{right:calc(10px + env(safe-area-inset-right,0px))}
.gal .galn:hover{background:#000d;border-color:#fff}
.gal .galc{position:fixed;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:#000a;color:#fff;font-size:13px;padding:4px 12px;border-radius:999px}
.gal img{max-width:88%;max-height:88%}
@media(max-width:600px){.pdgal{grid-template-columns:repeat(2,1fr)}.gal .galn{width:44px;height:44px;top:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px));transform:none}.gal img{max-width:100%;max-height:80%}}
.pddlc{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.pddlc .bd{padding:2px 8px;font-size:11.5px}
.th.phup{width:80px;height:80px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;border:1px dashed #e2b9c8;border-radius:6px;background:#fbf3f6;vertical-align:top;text-align:center}.th.phup .fcspin{margin:0}.th.phup small{font-size:10.5px;line-height:1.2}
.hml>div>span:not(.bd){flex:1;min-width:0}.hml .bd{flex:none;padding:2px 8px;font-size:11.5px}
