:root{--p: #0b6e99;--p2: #0b4f6c;--pl: #e6f2f8;--bg: #f3f5f7;--card: #fff;--tx: #1b2329;--mut: #5f6b75;--ok: #2b8a3e;--warn: #e67700;--err: #c92a2a;--bd: #d7dde2;--r: 12px;--safe-top: env(safe-area-inset-top, 0px);--safe-bot: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}body{font-family:system-ui,-apple-system,Roboto,Segoe UI,sans-serif;background:var(--bg);color:var(--tx);font-size:16px}header#top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:8px;background:var(--p);color:#fff;padding:calc(8px + var(--safe-top)) 10px 8px;min-height:52px}header h1{font-size:18px;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}button.icon{background:transparent;border:0;color:inherit;font-size:24px;width:40px;height:40px;border-radius:50%}button.icon.hide{visibility:hidden}.net{width:12px;height:12px;border-radius:50%;background:#69db7c;border:2px solid #fff}.net.off{background:#adb5bd}main{padding:12px 12px calc(84px + var(--safe-bot));max-width:820px;margin:0 auto}nav#nav{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;background:#fff;border-top:1px solid var(--bd);padding-bottom:var(--safe-bot)}nav#nav a{flex:1;text-align:center;padding:6px 2px 8px;color:var(--mut);text-decoration:none;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:1px}nav#nav a span{font-size:21px;line-height:1.1}nav#nav a.on{color:var(--p);font-weight:600}.hidden{display:none!important}.card{background:var(--card);border-radius:var(--r);padding:14px;margin-bottom:12px;box-shadow:0 1px 2px #0000000f;border:1px solid #e6eaee}.card h2{font-size:16px;margin:0 0 10px;color:var(--p2);display:flex;align-items:center;gap:8px}.card h2 .sp{flex:1}.muted{color:var(--mut);font-size:14px}.small{font-size:13px}.row{display:flex;gap:10px;align-items:center}.row>*{flex:1;min-width:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}label{display:block;font-size:13px;color:var(--mut);margin:8px 0 4px;font-weight:500}input,select,textarea{width:100%;font:inherit;font-size:17px;padding:11px 10px;border:1px solid var(--bd);border-radius:10px;background:#fff;color:var(--tx)}input:focus,select:focus,textarea:focus{outline:2px solid var(--p);border-color:var(--p)}textarea{min-height:84px;resize:vertical}input.big{font-size:28px;font-weight:700;text-align:center;padding:12px;letter-spacing:.5px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;padding:12px 16px;font:inherit;font-size:16px;font-weight:600;background:var(--p);color:#fff;min-height:46px;text-decoration:none}.btn:active{filter:brightness(.9)}.btn.sec{background:var(--pl);color:var(--p2)}.btn.ghost{background:transparent;color:var(--p);border:1px solid var(--bd)}.btn.danger{background:#fff0f0;color:var(--err);border:1px solid #ffc9c9}.btn.ok{background:var(--ok)}.btn.warn{background:var(--warn)}.btn.block{width:100%}.btn.sm{min-height:36px;padding:6px 12px;font-size:14px}.btn[disabled]{opacity:.45}.btns{display:flex;gap:8px;flex-wrap:wrap}.btns>.btn{flex:1 1 auto}.list{list-style:none;padding:0;margin:0}.item{display:flex;align-items:center;gap:10px;padding:12px;background:#fff;border:1px solid #e6eaee;border-radius:10px;margin-bottom:8px;text-decoration:none;color:inherit}.item .main{flex:1;min-width:0}.item .t{font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item .s{font-size:13px;color:var(--mut);margin-top:2px}.item .val{text-align:right;font-weight:700;font-size:17px;white-space:nowrap}.item .val small{display:block;font-weight:500;font-size:12px}.badge{display:inline-block;white-space:nowrap;font-size:11px;font-weight:700;padding:2px 7px;border-radius:20px;background:var(--pl);color:var(--p2);vertical-align:middle}.badge.closed{background:#e9ecef;color:#495057}.badge.open{background:#ebfbee;color:var(--ok)}.badge.warn{background:#fff4e6;color:var(--warn)}.badge.err{background:#fff5f5;color:var(--err)}.progress{height:10px;background:#e9ecef;border-radius:10px;overflow:hidden;margin:8px 0}.progress>div{height:100%;background:var(--ok);transition:width .3s}.seg{display:flex;border:1px solid var(--bd);border-radius:10px;overflow:hidden}.seg button{flex:1;border:0;background:#fff;padding:11px 6px;font:inherit;font-size:15px;color:var(--mut)}.seg button.on{background:var(--p);color:#fff;font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{border:1px solid var(--bd);background:#fff;border-radius:20px;padding:7px 12px;font:inherit;font-size:14px;color:var(--tx)}.chip.on{background:var(--p);border-color:var(--p);color:#fff}.prev table,table.t{width:100%;border-collapse:collapse;font-size:14px}.prev td,.prev th,table.t td,table.t th{padding:6px 4px;border-bottom:1px solid #edf0f2;text-align:left}table.t th,.prev th{font-size:12px;color:var(--mut);font-weight:600}td.r,th.r{text-align:right}.up{color:var(--ok)}.down{color:var(--err)}.alert{padding:10px 12px;border-radius:10px;font-size:14px;margin:8px 0}.alert.warn{background:#fff4e6;color:#a34700;border:1px solid #ffd8a8}.alert.err{background:#fff5f5;color:var(--err);border:1px solid #ffc9c9}.alert.info{background:var(--pl);color:var(--p2);border:1px solid #c5e3f1}.alert.ok{background:#ebfbee;color:#1e6b30;border:1px solid #b2f2bb}.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:14px}.kv b{color:var(--mut);font-weight:500}#toast{position:fixed;left:50%;bottom:calc(90px + var(--safe-bot));transform:translate(-50%);background:#212529;color:#fff;padding:10px 16px;border-radius:10px;font-size:14px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:50;max-width:90%;text-align:center}#toast.show{opacity:.95}.chartbox{position:relative;height:340px}.chartbox.sm{height:230px}canvas.spark{width:100%;height:64px;display:block}.savestate{font-size:12px;color:var(--mut);text-align:right;min-height:16px}.empty{text-align:center;padding:30px 10px;color:var(--mut)}.fab{position:fixed;right:18px;bottom:calc(80px + var(--safe-bot));z-index:15;width:58px;height:58px;border-radius:50%;border:0;background:var(--p);color:#fff;font-size:30px;box-shadow:0 3px 10px #00000040}.sw{display:flex;align-items:center;justify-content:space-between;padding:8px 0;gap:10px}.sw input[type=checkbox]{width:24px;height:24px;flex:0 0 24px}details summary{cursor:pointer;font-weight:600;color:var(--p2);padding:4px 0}.ord{display:flex;flex-direction:column;gap:2px}.ord button{border:1px solid var(--bd);background:#fff;border-radius:6px;width:34px;height:26px;font-size:13px}button.syncb{position:relative;font-size:22px}button.syncb.hidden{display:none}button.syncb.spin{animation:syncspin 1s linear infinite}button.syncb.wait:after,button.syncb.err:after{content:"";position:absolute;top:7px;right:6px;width:9px;height:9px;border-radius:50%;background:#ffd43b;border:1.5px solid #fff}button.syncb.err:after{background:#ff6b6b}@keyframes syncspin{to{transform:rotate(360deg)}}#wrap{min-height:100%}aside#side{display:none}header#top{background:linear-gradient(90deg,#0b4f6c,#0b6e99)}a{color:var(--p)}.sp{flex:1}.dash{display:grid;grid-template-columns:1fr;gap:0 12px}.postes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.poste{display:block;text-decoration:none;color:var(--tx);border:2px dashed #f0a54a;background:#fff8ef;border-radius:12px;padding:14px 12px;min-height:92px}.poste.fait{border:2px solid #8ce99a;background:#ebfbee}.poste .ph{font-weight:800;font-size:18px}.poste .pe{font-size:14px;color:var(--mut);margin-top:6px}.poste:not(.fait) .pe{color:#b35c00;font-weight:700}.tiles{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.tile{background:#f8fafb;border:1px solid #e3e8ec;border-radius:10px;padding:10px;text-decoration:none;color:var(--tx);min-width:0}.tile .tl{font-size:12px;color:var(--mut);font-weight:600;text-transform:uppercase;letter-spacing:.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tile .tv{font-size:22px;font-weight:800;margin-top:2px;font-variant-numeric:tabular-nums}.tile .tv small{font-size:13px;font-weight:600;color:var(--mut)}.tile.lnk{border-color:#c5e3f1;background:#f2f9fc}.tile.warnt{background:#fff4e6;border-color:#ffd8a8}.tile.alerte{background:#fff5f5;border-color:#ffc9c9}.tile.alerte .tv{color:var(--err)}.gauge{height:8px;background:#e9ecef;border-radius:8px;overflow:hidden;margin:6px 0 2px}.gauge>div{height:100%;background:var(--p)}.gauge.tx>div.tx-ok{background:var(--ok)}.gauge.tx>div.tx-warn{background:var(--warn)}.gauge.tx>div.tx-err{background:var(--err)}.tx-ok{color:var(--ok)}.tx-warn{color:var(--warn)}.tx-err{color:var(--err)}.badge.tx-ok{background:#ebfbee}.badge.tx-warn{background:#fff4e6}.badge.tx-err{background:#fff5f5}.badge.tx-ok,.badge.tx-warn,.badge.tx-err{font-size:14px;padding:4px 10px}.card.lundi{border:2px solid var(--p)}.txbig{font-size:46px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.semlib{font-size:18px;min-width:92px;text-align:center}.item.txj{padding:9px 12px;margin-bottom:6px}.txv{font-weight:800;font-size:18px;white-space:nowrap}.txv small{font-weight:600;color:var(--mut);font-size:12px}table.txt td small{font-weight:600}table.t tr.sel td{background:#e6f2f8}tr.cumul td,.item.cumul{background:#f1f3f5;font-weight:700}.datenav{display:flex;align-items:center;gap:6px;margin-bottom:10px;flex-wrap:wrap}.datenav input[type=date]{width:auto;flex:1 1 150px;max-width:200px;padding:8px;font-size:16px}h2.jour{font-size:18px;margin:4px 2px 10px;color:var(--p2);text-transform:capitalize}.card.nopad{padding:0;overflow:hidden}.cardh{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid #edf0f2;flex-wrap:wrap}.cardh h2{margin:0;font-size:16px;color:var(--p2)}.pad{padding:10px}.toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:8px}.toolbar:last-child{margin-bottom:0}.toolbar select,.toolbar input{flex:1 1 180px;width:auto;padding:9px 10px;font-size:15px}.tblw{overflow-x:auto;-webkit-overflow-scrolling:touch}table.t{font-size:14px}table.t th{position:sticky;top:0;background:#f8fafb;white-space:nowrap;padding:8px 6px}table.t td{padding:7px 6px;vertical-align:top}table.t tbody tr[data-go]{cursor:pointer}table.t tbody tr[data-go]:hover td{background:#f2f9fc}table.t td.com{min-width:160px;max-width:320px;font-size:13px;color:var(--mut)}table.t td.prod{min-width:160px}table.t td.alerte{color:var(--err);font-weight:700}table.suivi tr.matin td{background:#fffaf2}table.conduite{width:100%;border-collapse:collapse}table.conduite th,table.conduite td{padding:5px 8px;border-bottom:1px solid #edf0f2;text-align:left;vertical-align:middle}table.conduite thead th{background:#0b4f6c;color:#fff;font-size:14px;position:sticky;top:calc(52px + var(--safe-top));z-index:5;vertical-align:top}table.conduite thead .opin{margin-top:4px;padding:6px 8px;font-size:14px}table.conduite thead .savestate{color:#cde6f2;text-align:left}table.conduite tr.grp th{background:#e6f2f8;color:var(--p2);font-size:13px;text-transform:uppercase;letter-spacing:.3px;padding:6px 8px}table.conduite td.pn{font-weight:600;white-space:nowrap}table.conduite td.veille,table.conduite th.veille{color:var(--mut);font-size:14px;text-align:right;width:90px}table.conduite thead th.veille{color:#cde6f2}table.conduite td.u{color:var(--mut);font-size:13px;width:50px}table.conduite input,table.conduite select{padding:9px 10px;font-size:17px;min-height:44px}table.conduite tr.indr td{background:#fafbfc}table.conduite td.iv{font-weight:800;font-size:17px}.iv.alerte{color:var(--err)}.seg.big button{padding:14px 6px;font-size:16px;font-weight:700}.seg.wrap{flex-wrap:wrap}.seg.wrap button{flex:1 1 auto;min-width:56px;border-right:1px solid var(--bd);min-height:44px}.seg.wrap button:last-child{border-right:0}.indbar{display:flex;gap:6px;overflow-x:auto;margin:10px 0;padding-bottom:2px}.indbar>div{flex:1 0 auto;background:#fff;border:1px solid #e3e8ec;border-radius:10px;padding:6px 10px;text-align:center}.indbar span{display:block;font-size:11px;color:var(--mut);font-weight:600;white-space:nowrap}.indbar b{font-size:17px;white-space:nowrap}.fld{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid #f1f3f5}.fld:last-child{border-bottom:0}.fld .fl{flex:1;min-width:0;font-weight:600}.fld .fl small{display:block;font-weight:400;color:var(--mut);font-size:12px}.fld .fi{flex:0 0 46%;display:flex;align-items:center;gap:6px}.fld .fi input{text-align:right;font-size:19px;font-weight:600;padding:10px}.fld .fi .u{color:var(--mut);font-size:13px;min-width:22px}.fld.col{flex-direction:column;align-items:stretch}.fld.col .fi{flex:1 1 auto}.fld.col .fi .seg{flex:1}.daycard{border:1px solid #e6eaee;border-radius:10px;padding:8px;margin-bottom:8px;background:#fff;overflow-x:auto}.daycard .dh{font-weight:700;color:var(--p2);margin-bottom:4px}table.mini{font-size:12px}table.mini th,table.mini td{padding:4px 3px}.com{color:var(--mut)}.badge.matin{background:#fff4e6;color:#b35c00}.badge.soir{background:#e7f5ff;color:#1864ab}.badge.st-attente,.chip.st-attente b{background:#fff4e6;color:#b35c00}.badge.st-analyse,.chip.st-analyse b{background:#fff0f6;color:#c2255c}.badge.st-envoye,.chip.st-envoye b{background:#ebfbee;color:var(--ok)}.chip b{display:inline-block;min-width:20px;padding:0 5px;border-radius:10px;background:#f1f3f5;font-size:12px;margin-left:3px}.chip.on b{background:#ffffff40!important;color:#fff!important}.statbar{display:flex;align-items:center;gap:10px;margin-bottom:10px}.statbar .badge{font-size:13px;padding:4px 10px}.envform{gap:0 12px}.row .fit,.fit{flex:0 0 auto!important;width:auto}.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:4px 0 16px}.btn.dangerf{background:var(--err);color:#fff}.btns.end{justify-content:flex-end;margin-top:12px}.btns.end>.btn{flex:0 0 auto}.btns.col{flex-direction:column}.hgrid{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.delta{color:var(--ok);font-weight:600}.list.ed li{display:flex;align-items:center;gap:4px;padding:8px 10px 8px 14px;border-bottom:1px solid #f1f3f5}.list.ed li:last-child{border-bottom:0}.list.ed .nm{flex:1;min-width:0;overflow-wrap:anywhere}.list.ed li.retire .nm{color:#adb5bd;text-decoration:line-through}.ib{border:1px solid var(--bd);background:#fff;border-radius:8px;width:38px;height:38px;font-size:15px;color:var(--mut);flex:0 0 38px}.ib.rm{color:var(--err)}.ib.ok{color:var(--ok)}.chkgrid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;max-height:240px;overflow-y:auto}.chk{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--tx);margin:0;font-weight:400}.chk input{width:20px;height:20px;flex:0 0 20px}.menu .item{padding:14px}.mi{width:42px;height:42px;border-radius:10px;background:var(--pl);color:var(--p2);display:flex;align-items:center;justify-content:center;font-size:21px;flex:0 0 42px;font-weight:700}.modalw{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f192373;z-index:60;display:flex;align-items:flex-end;justify-content:center}.modal{background:#fff;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;border-radius:16px 16px 0 0;padding:16px 16px calc(16px + var(--safe-bot))}.modal.lg{max-width:760px}.modal h3{margin:0 0 8px;color:var(--p2)}@media(min-width:600px){.modalw{align-items:center}.modal{border-radius:16px}}.item .val .badge{margin-top:3px}@media(min-width:900px){body{font-size:16px}aside#side{display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;width:236px;background:#0b4f6c;color:#fff;padding:calc(10px + var(--safe-top)) 10px 10px;z-index:30;overflow-y:auto;gap:2px}aside#side .brand{display:flex;align-items:center;gap:10px;padding:6px 6px 16px}aside#side .brand img{width:40px;height:40px;border-radius:10px}aside#side .brand small{display:block;color:#a9d1e3;font-size:12px}aside#side a{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:10px;color:#dcecf4;text-decoration:none;font-size:16px;min-height:50px}aside#side a span{width:24px;text-align:center;font-size:19px}aside#side a.on{background:#fff;color:var(--p2);font-weight:700}aside#side a:not(.on):hover{background:#ffffff1a}#wrap{margin-left:236px}nav#nav{display:none}main{max-width:1320px;padding:16px 20px 30px}header#top{min-height:56px;padding-left:20px}header h1{font-size:20px}#toast{bottom:30px;left:calc(50% + 118px)}.dash{grid-template-columns:1fr 1fr}.dash>.span2{grid-column:span 2}.tiles{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}.tiles.t2{grid-template-columns:1fr 1fr}.tiles.t4{grid-template-columns:repeat(4,1fr);margin-bottom:12px}.postes .poste{min-height:110px;padding:18px}.chartbox{height:380px}.btn.sm{min-height:42px}.fab{display:none}}@media(min-width:1200px){.tiles.t2{grid-template-columns:1fr 1fr}}@media(max-width:899px){.grid2{grid-template-columns:1fr}.hgrid,.grid2 .grid2{grid-template-columns:1fr 1fr}}@media(max-width:380px){.tile .tv{font-size:19px}.fld .fi{flex-basis:50%}}
