
:root{--p:#1e3a8a;--bg:#f6f7f9;--t:#1c1f26;--m:#6b7280;--b:#e5e7eb}
*{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;position:sticky;top:var(--vabh,0px);z-index:6;margin-top:calc(-1*env(safe-area-inset-top,0px));padding-top:calc(10px + env(safe-area-inset-top,0px))}      /* barre du haut fixe : elle reste visible quand on fait défiler (sous le bandeau d'aperçu s'il y en a un) */
html{scroll-padding-top:calc(76px + var(--vabh,0px))}      /* un élément amené à l'écran n'est pas caché sous la barre du haut */
@media print{header{position:static}}
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 (repris de CAP CONTROL 2.8.6) */
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:9}
#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:inline-flex;gap:4px;background:#e8ecf3;border-radius:12px;padding:4px;margin:0 0 14px;max-width:100%;overflow-x:auto;vertical-align:top}      /* onglets de chaque module et de chaque fiche : même style que les onglets regroupés (repris de CAP CONTROL 2.8.6) */
.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}
.gtt{margin:0 0 12px}@media screen{.gth{display:none}}      /* titre d'Accueil au-dessus des onglets ; titre de la page masqué s'il répète l'onglet (gardé à l'impression) */
.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:#dbeafe;color:#1e40af}
.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}
.plate{display:inline-block;white-space:nowrap;min-width:124px;padding:3px 30px;text-align:center;font:700 15px/1.5 Arial,Helvetica,sans-serif;letter-spacing:2px;color:#111;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAO8AAAA4CAYAAAAVS68uAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAGHaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+PHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj48cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0idXVpZDpmYWY1YmRkNS1iYTNkLTExZGEtYWQzMS1kMzNkNzUxODJmMWIiIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj48dGlmZjpPcmllbnRhdGlvbj4xPC90aWZmOk9yaWVudGF0aW9uPjwvcmRmOkRlc2NyaXB0aW9uPjwvcmRmOlJERj48L3g6eG1wbWV0YT4NCjw/eHBhY2tldCBlbmQ9J3cnPz4slJgLAAAEeElEQVR4Xu3dsU/jVgDH8V8AVc3J6tAYXaRja6Rc1MHZeopvT3RXIbFcN8zOdAPJX9CBIJWJHbP1FqToWkGHTmd0nRpPIVJuaAUSiKRDZRHpBKRDsM9+4CS27PQcfh/pCXjPIJav8pzYSery8nIAIkqcOXGCiJKB8RIlFOMlSqiU3zlvOp0GADSbJnRdh9k0xUOIKGKatjr8uqYBAPr9vnDEJyPj1Xd16PoeLGkJAGBJT8TDAnuek6F+kxGniWbC5mFbnApEsk4hWSfQtFVoa1q4eN/8/Aa6voez7Hc4zz4Tl0NrrJeg5mRxmmgmZF43xKnAHp+9R/bsD2jaKl798Epcdvie8zZNE5a0FGm4RDTeefYZLGkJTXP0qapvvGbTjGSbTPQQzV1dI3Vz4xmPvpj3jOzCDb68/ugZj64+ArenqOOeZ/KNl4jCkzvnWPrzL2d8e9LDhx/LnlH/+gK//1b3DOWfv8U/5YvxEiVUJPGqckucIqKYhYpXlVvYKOw7P5cWj52AxTUiikeoeAHg6OKp8/1WawVGt3DvGhHFI1S8RrfgidXNvcbtNFF8AsW7UdifOEhVbqG0eCxOE1FEAsV7dPHU9xFXZHQL2GqtiNNEFJFA8U4aLhHFb+J4wz6DPOk2m2jWDQbeAQADpDwjCN8bE16++N5zU4Iqt0I98m4U9j3bZ96YQLPMvjEhNRhgkBod41eDK/ybWvDMLdxc42pu3rk54Zdf33rW3SZ+5A0TLm5fRiJ6aMaFC+BOuABwNTcvTvmaOF6E2AIHPZ6IJhco3tLicaBzX/eVV0QUrUDxbrVWAm2DxSuviCg6geJ187tgQ5Vb984TUbRCxavKLc8FG34hE1F8QsUrXtvsDllcI6J4hIpXxFiJpi+SeIlo+hgvUUIxXqKEYrxEMVJzGTTWS6iW86iW8/eu2etBMV6imFTLeTTWVQBArZJHrZKHmht+1I977V2nh1rlbtzjhI63Ws6jt718ZzTWS+KhRA9SrZKH0elieefIuduoJgS6vHOE+mEbRqeLWmVK8RKRP/sR9l2n58wZna5zO6wdts0+zv69SUQSb+Z1wxnLO0fiMhHFIJJ4iWj6IolXzWWcQUSfPHc1oeZkZ6vs3kK7Ga5t9jiRxNtYV50R9BkzollkdHpOoO6XiexzW/tDuKvl4TPQtUoemwfBPpg7kniNTtcZRDRkB2q/TLR50Eb9ds7o9LB50EatMnzJyOh0YXwI1s/Eb0AnqpaH/xACfho434COZtl9Ldink35bYjWXubMW6RvQEVE4wy30/eFiRNTjMF6ihGK8RAkVOt76Ydu5MIOIpi90vET0/2K8RAnFeIkSyjdepahAsk7FaSKaEqWoiFMevvFqmgbJOsHjs/fiEhHFyL5Ao6iMjtf3Cqt0Og19V4eu78GSlmBJT8RDQhFvRiaaJfYlkWFJ1ikk6wRKUcH29k/o9/viIY6R8QKAvqujaZowm6Z4CBFFTCkqKCoKtDUNAMLFS0SfN99zXiL6vDFeooRivEQJ9R92RtMkQSo8mAAAAABJRU5ErkJggg==) center/100% 100% no-repeat;border-radius:4px;vertical-align:middle}
.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:#2563eb}
.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(--p);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:#2563eb}.tl .dot.b .ic{color:#2563eb}
.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:#eef1f6;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}
.ang .vgs{font-style:normal;font-size:10px;line-height:1.15;font-weight:600;color:#9ca3af;text-align:center}
.ang .vgs.no{color:#dc2626}.ang .vgs.ok{color:#16a34a}
.vgg{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:10px}
.vgt{display:flex;flex-direction:column;gap:4px;break-inside:avoid}
.vgt img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:8px;cursor:pointer;background:#f3f4f6}
.vgt span{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;border:2px dashed #fca5a5;border-radius:8px;color:#dc2626;font-size:13px;font-weight:600}
.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}
tr.off .avs{opacity:.5}
#main[data-tab=veh] tr.off .mql,#main[data-tab=veh] tr.off .bd{opacity:.6}
.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:#e9edf5!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:#1e3a8a;border-color:#1e3a8a;color:#fff}.chp.on b{background:#fff;color:#1e3a8a}
.anm-t th.ac,.anm-t td.ac{text-align:center}.anm-t th.gc{text-align:center;background:#eef2ff;color:#1e3a8a}
.anm-t .okc{color:#16a34a;font-weight:700;font-size:16px}
.anm-t a.anm{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;background:#fee2e2;color:#dc2626;border-radius:50%;font-size:15px;font-weight:800;text-decoration:none;line-height:1}
.anm-t a.anm:hover{background:#fecaca}
.anm-t a.anm.anx{background:#f3f4f6;color:#9ca3af;font-weight:700}.anm-t a.anm.anx:hover{background:#e5e7eb;color:#6b7280}      /* non renseigné mais pas nécessaire pour ce véhicule */
.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}

/* ----- amendes : dossiers clôturés grisés ----- */
.tw tbody tr.am-closed td{background:#f3f4f6!important;color:#9ca3af}
.tw tbody tr.am-closed td a{color:#9ca3af}
.tw tbody tr.am-closed .avs{opacity:.45}
.tw tbody tr.am-closed .bd{opacity:.75}
/* cloche de l'en-tête : notifications et alertes (reprise de CAP CONTROL) */
.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}
.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:#eef4ff}.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:#dbeafe}
.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);white-space:normal}
.nti:hover{background:#f8fafc}.nti.un{background:#e4edff;box-shadow:inset 4px 0 0 var(--p)}.nti.un:hover{background:#d6e3ff}      /* 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}
.ntk{margin:0;padding:8px 14px;border-top:1px solid var(--b);font-size:12px;color:var(--m);background:#fafafa}
@media(max-width:600px){.ntm{left:8px;right:8px;width:auto}.hqb.ntb{padding:6px}}
.mql{height:18px;width:auto;max-width:40px;object-fit:contain;vertical-align:-4px;margin-right:6px}      /* logo de la marque : liste des véhicules */
.mqh{height:30px;width:auto;max-width:64px;object-fit:contain;vertical-align:-6px;margin-right:10px}      /* en tête de la fiche */
.mqw{display:flex;align-items:center;gap:8px}.mqw select{flex:1;min-width:0}.mqi{flex:none;display:inline-flex;align-items:center;justify-content:center;min-width:0}.mqb{height:28px;width:auto;max-width:56px;object-fit:contain}
.mqt{margin-top:6px}
.mqg{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}      /* Administration > Gestion des marques */
.mqc{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--b);border-radius:10px;padding:10px;background:#fff}.mqc.off{background:#f9fafb;opacity:.75}
.mqlg{flex:none;width:84px;height:52px;display:flex;align-items:center;justify-content:center;border:1px solid #f1f5f9;border-radius:8px;background:#fff}.mqlg img{max-width:76px;max-height:44px;object-fit:contain}
.mqn{font-weight:700;color:var(--m)}.mqx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.mqx small{line-height:1.3}
.mqb2{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:4px}.mqb2 button{padding:4px 9px;font-size:12px}.mqb2 .chk{border:0;padding:0;font-size:12px}
.mqst{color:#9ca3af;font-size:15px!important;line-height:1;padding:3px 8px!important}.mqst.on{color:#eab308;border-color:#eab308}
.fdc{border-left:4px solid #2563eb}.fdh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.fdh>span:first-child{display:inline-flex;align-items:center}      /* futur conducteur d'un véhicule */
.cpvl{max-height:260px;overflow:auto;border:1px solid var(--b);border-radius:8px;padding:4px 8px;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:0 12px}      /* cartes partagées : liste des véhicules à cocher */
.cpvl .chk{border:0;padding:5px 0;align-items:flex-start}.cpvl .chk span{line-height:1.3}
.cpv{display:inline-block;padding:1px 7px;margin:1px 0;border-radius:6px;background:#eef2ff;color:#1e3a8a;font-size:12px;font-weight:600;white-space:nowrap}
.cpfree{margin-top:10px;padding:10px;border:1px dashed #f59e0b;border-radius:10px;background:#fffbeb}.cpfr{margin-top:8px}.cpfh{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.cpsh{color:#1e40af;font-size:12px}      /* part d'une carte partagée */
.cpin{margin-top:8px;padding:10px;background:#fff;border:1px solid var(--b);border-radius:8px}
.vab{position:sticky;top:0;z-index:7;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}      /* aperçu « voir comme cette personne » : bandeau toujours visible en haut */
.vab .ic{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}}
.amdo{font-weight:700;color:#b45309;white-space:nowrap}.amdc{font-weight:600;white-space:nowrap}      /* délai de remboursement d'une contravention : en attente (orange) ou remboursée */
.tw th.thw{white-space:normal;min-width:96px}.amw{display:inline-block;max-width:190px;white-space:normal;line-height:1.3}      /* tableau des contraventions plus étroit : titre et détail du statut sur deux lignes */

/* logos monocolores dans les boutons, badges et lignes de texte : couleur du texte, taille proche de celle du texte */
.ic.ib{width:16px;height:16px;flex:none;margin:0 3px 0 0;color:inherit;vertical-align:-3px}
.btn .ic.ib{margin:0}
.bd .ic.ib{width:12px;height:12px;margin-right:2px;vertical-align:-1px}
.btn.ph .ic.ib{width:18px;height:18px}
/* aperçu des PDF (v1.14.0) */
.pv{position:fixed;inset:0;z-index:35;background:#0009;display:flex;align-items:center;justify-content:center;padding:16px}
.pvb{background:#fff;border-radius:12px;width:min(1100px,100%);height:100%;display:flex;flex-direction:column;overflow:hidden}
.pvh{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--b)}
.pvh b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.pv iframe{flex:1;width:100%;border:0;background:#525659}
.pvs{flex:1;overflow:auto;background:#525659;padding:12px;display:flex;flex-direction:column;align-items:center;gap:12px;-webkit-overflow-scrolling:touch}
.pvs canvas{background:#fff;box-shadow:0 2px 8px #0005;max-width:none;flex:none}
.pvm{color:#fff;text-align:center;margin:40px 12px;line-height:1.8}.pvm .btn{color:var(--t)}
.pvt{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.pvz{min-width:48px;text-align:center;font-size:13px;color:var(--m)}
@media(max-width:600px){.pv{padding:0}.pvb{border-radius:0}.pvh{padding:8px 10px}.pvs{padding:8px;gap:8px}}
/* modification groupée des véhicules (v1.15.0) */
.bkbar{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;margin:0 0 10px}
.bkbar .bkn{background:#eef2ff;color:var(--p);padding:4px 10px;border-radius:999px}
input.bkc,.tw input.bkc{width:16px;height:16px;margin:0 4px 0 0;padding:0;vertical-align:middle;accent-color:var(--p);cursor:pointer}
.bksec{border:1px solid var(--b);border-radius:10px;padding:10px 12px;margin:0 0 10px}
.bksec>b{display:block;margin-bottom:4px;color:var(--p)}
.bkrow{display:grid;grid-template-columns:minmax(170px,240px) 1fr;gap:4px 12px;align-items:start;padding:7px 0;border-top:1px dashed var(--b)}
.bksec>b+.bkrow{border-top:0}
.bkck{display:flex;gap:8px;align-items:center;cursor:pointer;font-weight:500;padding-top:7px}
.bkck input{width:16px;height:16px;flex:none;margin:0;accent-color:var(--p)}
.bkin{display:flex;flex-direction:column;gap:3px;min-width:0}
.bkin input:disabled,.bkin select:disabled{background:#f3f4f6;color:#9ca3af}
.bksum{background:#f8fafc;border:1px solid var(--b);border-radius:10px;padding:10px 12px;margin:4px 0 6px}
.bksum ul{margin:6px 0 0;padding-left:18px}
.bkt{display:flex;align-items:center;gap:12px}
.bkt button{background:#fff;color:#111827;border:0;font-weight:600;padding:5px 12px}
@media (max-width:600px){.bkrow{grid-template-columns:1fr}.bkck{padding-top:0}}
.bkclr{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--m);cursor:pointer}
.bkclr input{width:14px;height:14px;margin:0;flex:none}
/* recherche globale (v1.16.1 : même présentation que CAP CONTROL) */
.ie{display:inline-block;width:1.1em;height:1.1em;vertical-align:-.2em;margin-right:.35em;flex:none}
.ie.i0{margin-right:0}
.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 .gsx{font:inherit;padding:8px;border-radius:10px;border:1px solid var(--b);background:#fff;color:var(--t);cursor:pointer;display:inline-flex;align-items:center}
.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:#eef2ff}
.gsic{flex:none;width:34px;height:34px;border-radius:9px;background:#f1f4f9;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}}
.gsin input::-webkit-search-cancel-button{display:none;-webkit-appearance:none}
/* corbeille (v1.17.0) */
.trday{font-size:12px;font-weight:700;color:var(--p);text-transform:uppercase;letter-spacing:.4px;margin:14px 2px 6px}
.trrow{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--b);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.trt{flex:1;min-width:0;display:flex;flex-direction:column}.trt b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trt small{color:var(--m)}
.trt .trk{font-size:11px;text-transform:uppercase;letter-spacing:.3px;color:var(--m)}
.trt .trkids{color:#92400e}
.trw{display:flex;align-items:center;gap:12px;text-align:right;flex:none}.trw small{color:var(--m);line-height:1.35}
.trempty{text-align:center;color:var(--m);padding:28px}.trempty .ic{width:30px;height:30px;margin:0 0 6px;color:#9ca3af}
@media(max-width:600px){.trrow{flex-wrap:wrap}.trw{width:100%;justify-content:space-between;text-align:left}}
/* planning (v1.18.0 : même présentation que CAP CONTROL, plus la vue calendrier) */
.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}}
.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);line-height:1.2}
.io.chip{flex:0 1 auto;padding:10px 14px;font-size:15px}
.io.chip.on{background:var(--p);border-color:var(--p);color:#fff}
.iopts.plf{display:flex;flex-wrap:wrap;gap:6px}.iopts.plf .io.chip{flex:0 0 auto;padding:6px 10px;font-size:13px;min-width:0}
.pltabs{display:inline-flex;gap:4px;flex-wrap:wrap;vertical-align:middle}.pltabs button{padding:5px 12px;border-radius:999px;font-weight:600}.pltabs button.on{background:var(--p);color:#fff;border-color:var(--p)}
.pcalh{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.pcalh b{font-size:17px;min-width:150px;text-align:center}.pcalh>button:not(:last-of-type){font-size:18px;line-height:1;padding:5px 12px}
.pcalg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid var(--b);border-left:1px solid var(--b)}
.pcw{font-size:12px;font-weight:700;color:var(--m);text-transform:uppercase;padding:6px;border-right:1px solid var(--b);border-bottom:1px solid var(--b);background:#f8fafc}
.pcd{min-height:96px;padding:4px;border-right:1px solid var(--b);border-bottom:1px solid var(--b);display:flex;flex-direction:column;gap:2px;min-width:0;position:relative}
.pcd.out{background:#f8fafc}.pcd.we{background:#fcfcfd}.pcd.today{background:#eef2ff}.pcd.today .pcdn{background:var(--p);color:#fff;border-radius:999px;padding:0 6px}
.pcdn{font-size:12px;font-weight:700;color:var(--m);align-self:flex-start}
.pce{font-size:11px;line-height:1.3;padding:2px 5px;border-radius:5px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-left:3px solid;background:#f3f4f6}
.pce:hover{filter:brightness(.95)}
.pcmore{font-size:11px;color:var(--p);cursor:pointer;padding:0 5px}
.pcdot{display:none}
.k-maint{border-color:#2563eb;background:#eff6ff}.k-ct{border-color:#7c3aed;background:#f5f3ff}.k-con{border-color:#ea580c;background:#fff7ed}.k-ass{border-color:#0891b2;background:#ecfeff}.k-permis{border-color:#16a34a;background:#f0fdf4}.k-equip{border-color:#ca8a04;background:#fefce8}.k-doc{border-color:#6b7280;background:#f9fafb}
.pce.late{border-color:#dc2626;background:#fef2f2;color:#991b1b}
.pcalk{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:12px;color:var(--m)}.pcalk span{display:inline-flex;align-items:center;gap:5px}.pcalk i{width:0;height:12px;border-radius:3px;border-left:12px solid;display:inline-block}.pcalk i.late{border-color:#dc2626;background:#fef2f2}
@media(max-width:700px){.pcd{min-height:52px}.pce,.pcmore{display:none}.pcdot{display:flex;align-self:center;margin-top:auto;min-width:22px;height:22px;border-radius:999px;background:var(--p);color:#fff;font-size:12px;font-weight:700;align-items:center;justify-content:center;cursor:pointer}.pcw{font-size:10px;padding:4px 2px;text-align:center}}
@media print{.pcalg .pcd{min-height:70px}.pce{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
/* carte « Alertes » de l'accueil (v1.21.0) */
.alr{display:flex;align-items:center;gap:10px;padding:9px 6px;border-top:1px solid var(--b);cursor:pointer;border-radius:8px}
.alr:hover{background:#f8fafc}
.alb{width:4px;align-self:stretch;border-radius:4px;flex:none;min-height:30px}
.alt{flex:1;min-width:0;display:flex;flex-direction:column}.alt b{font-weight:600;font-size:14px}.alt small{color:var(--m);font-size:12px}
.alc{color:#9ca3af;font-size:20px;line-height:1}
.alok{padding:14px 2px;color:#15803d;font-weight:600;border-top:1px solid var(--b)}
.alfoot{margin:8px 0 0;font-size:12px;color:#15803d}.alfoot::before{content:"✓ "}
/* modules regroupés en onglets (v1.22.0) */
.tabs .tdot,.gtabs .tdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#dc2626;margin-left:6px;vertical-align:middle}

/* ===== v1.24.0 : nouveau menu (comme CAP CONTROL) ===== */
/* 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:206px}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}nav button .ntd{left:26px;right:auto}}
/* onglets d'une entrée regroupée (Accueil : tableau de bord, planning ; Véhicules ; Conducteurs : conducteurs, amendes ; Maintenance : maintenance, sinistres) */
.gtabs{display:inline-flex;gap:4px;background:#e8ecf3;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 small{color:var(--m);font-weight:500}
.gtabs button.on{background:#fff;color:var(--p);box-shadow:0 1px 2px #0002}.gtabs button.on small{color:var(--p)}
.mn .madm{display:flex;align-items:center;gap:8px}.mn .madm .ic{margin:0;width:18px;height:18px;color:var(--p)}

/* ===== v1.24.1 : téléphone, barre de navigation en bas d'écran (comme CAP CONTROL) ===== */
.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)}
 .toast{bottom:calc(76px + env(safe-area-inset-bottom,0px))}}

/* ===== v2.0.0 : téléphone (comme CAP CONTROL) ===== */
/* haut de page sur une seule ligne ; le nom du compte est dans le menu ⋮ */
@media(max-width:600px){header{padding:8px 8px 8px 12px;gap:2px;flex-wrap:nowrap}header h1{font-size:19px;min-width:0;white-space:nowrap;display:flex;align-items:center;gap:8px}header .lgo{height:34px;width:34px}header #who{display:none}}
/* listes et tableaux en cartes (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}
@media(max-width:600px){
 .tw.tkc{border:0;background:none;overflow:visible;border-radius:0;box-shadow:none}
 .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.tko{cursor:pointer}.tw.tkc>table>tbody>tr.tko:active{background:#f6f7f9}
 .tw.tkc>table>tbody>tr.grp{background:#e9edf5;border-color:#d7deea}
 .tw.tkc>table>tbody>tr.w{border-left:4px solid #ea580c}
 .tw.tkc>table>tbody>tr.off{opacity:.65}
 .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;order:-1}
 .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>td:not([data-l]):not(.tkt):not(.tkf):empty{display:none}
 .tw.tkc>table>tbody>tr.tkr{position:relative}.tw.tkc>table>tbody>tr.tkr>td.tkt{padding-right:56px}
 .tw.tkc>table>tbody>tr>td.tkm{position:absolute;top:4px;right:0;display:flex;align-items:center;gap:2px;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}}
/* « Plus d'actions » des barres d'outils ; onglets sur une ligne qui défile */
.tbm{display:none}
@media(max-width:600px){.tool>.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}
 .gtabs{display:flex}
 .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)}}
/* 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 ; les petites étiquettes ne sont jamais coupées */
@media(max-width:600px){body{overflow-wrap:anywhere}.bd:not(a),nav,.bnav,h1,kbd,th,.tabs,.gtabs button,input,select,textarea{overflow-wrap:normal}.sh>b{overflow-wrap:break-word}a.bd{max-width:100%}select{max-width:100%}.g>label,.g1>label{min-width:0}}
.lgw{margin:0 0 10px}.lgw summary{cursor:pointer;color:var(--p);font-size:13px;font-weight:600;padding:4px 0}.lgw .lg{margin-top:6px}

/* v2.1.0 : véhicules affichés (tous, particuliers, utilitaires) */
.vts{display:inline-flex;gap:2px;background:#e8ecf3;border-radius:10px;padding:3px;margin:0 0 12px;max-width:100%;overflow-x:auto}
.vts button{border:0;background:none;border-radius:8px;padding:6px 12px;font-weight:600;color:#374151;white-space:nowrap}
.vts button small{color:var(--m);font-weight:500}.vts button.on{background:#fff;color:var(--p);box-shadow:0 1px 2px #0002}.vts button.on small{color:var(--p)}

/* v2.3.0 : titre de page et raccourcis vers les analyses du module */
.pgh{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;margin:0 0 10px}.pgh h2{margin:0;min-width:0}.anl{flex:none}
.anl{display:inline-flex;gap:6px;flex-wrap:wrap}
.anlb{display:inline-flex;align-items:center;gap:5px;padding:6px 12px 6px 10px;border-radius:999px;border:1px solid #c7d2e6;background:#eef2fa;color:var(--p);font-size:12.5px;font-weight:600;line-height:1.2}
.anlb:hover{background:#e0e7f5;border-color:var(--p)}.anlb .ic{width:15px;height:15px;margin:0;color:var(--p)}
/* statut du véhicule en un clic (fiche du véhicule), repris des équipements de CAP CONTROL */
.vstw{margin:10px 0 2px}
.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=b]{background:#2563eb}.eqst button.on[data-bc=o]{background:#ea580c}.eqst button.on[data-bc=r]{background:#dc2626}.eqst button.on[data-bc=n]{background:#9ca3af}
@media(max-width:600px){.eqst{border-radius:12px}.eqst button{padding:7px 10px}}
@media print{.eqst button:not(.on){display:none}.eqst{background:none;padding:0}}
/* véhicule de relais (sinistre ou maintenance) */
.vre{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border:1.5px dashed #cbd5e1;background:#f8fafc}
.vri{flex:none;width:44px;height:44px;border-radius:12px;background:#e0e7ff;color:#3730a3;display:flex;align-items:center;justify-content:center}
.vri .ic{width:22px;height:22px;margin:0}
.vret{flex:1;min-width:200px;display:flex;flex-direction:column;gap:2px}.vret small{color:var(--m)}
.vrc{border-top:4px solid #9ca3af}.vrc.vro{border-top-color:#ea580c}.vrc.vrb{border-top-color:#2563eb}.vrc.vrg{border-top-color:#16a34a}
.vrbt{margin-left:auto;display:flex;gap:6px;flex-wrap:wrap}.vrbt .ob{margin-left:0}
.vrbd{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.vrlg{flex:none;width:84px;height:56px;display:flex;align-items:center;justify-content:center;border:1px solid #eef2f7;border-radius:10px;background:#fff;color:#94a3b8}
.vrlg .ic{width:30px;height:30px;margin:0}.vrlo{max-width:72px;max-height:44px;object-fit:contain}
.vrn{flex:1;min-width:150px;display:flex;flex-direction:column;gap:2px}.vrn b{font-size:17px}.vrn small{color:var(--m)}
.vrpl{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.vrs{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0 6px;font-size:14px}
.vrt{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--m);white-space:nowrap}
.vrbar{flex:1;height:8px;border-radius:4px;background:#eef2f7;overflow:hidden;min-width:60px}
.vrbar i{display:block;height:100%;border-radius:4px;background:#9ca3af}
.vrbar.vko i{background:#ea580c}.vrbar.vkb i{background:#2563eb}.vrbar.vkg i{background:#16a34a}
.vrbar.ind i{background:repeating-linear-gradient(45deg,#fdba74 0 8px,#fed7aa 8px 16px)}
.vrm{margin:10px 0 0;padding:8px 10px;background:#f8fafc;border-radius:8px;white-space:pre-wrap}
.vrty{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--m)}.vrty .seg button{padding:9px 6px;font-size:14px}
@media(max-width:600px){.vrpl{align-items:flex-start;width:100%;flex-direction:row;flex-wrap:wrap}.vrbt{width:100%;margin-left:0}.vrc .sh{flex-wrap:wrap}}
.vrcost,.vrco0{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #eef2f7}
.vrcost>span,.vrco0>span{font-weight:600;color:var(--m);font-size:13px}.vrcost b{font-size:18px}.vrcost small{color:var(--m)}
.vrco{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--m)}
.vrcr{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.vrcin{display:flex;align-items:center;gap:6px;flex:0 0 140px}.vrcin input{width:100%}.vrcin i{font-style:normal;font-weight:600;color:var(--t,#111)}
.vrper{flex:1;min-width:240px}.vrper button{padding:9px 6px;font-size:13.5px}
.vrct{font-size:13px;color:#111}
.g [hidden]{display:none}
/* étiquettes des véhicules (101 × 54 mm) */
.lbm{display:flex;flex-wrap:wrap;gap:16px;margin:8px 0}
.lbc{flex:1 1 300px;display:flex;flex-direction:column;gap:6px;min-width:0}
.lbv svg{display:block;width:100%;max-width:440px;height:auto;border-radius:6px;box-shadow:0 0 0 1px var(--b),0 2px 8px rgba(0,0,0,.08);background:#fff}
#prt{display:none}
@page lbpage{size:101mm 54mm;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 .lbp svg{display:block;width:101mm;height:54mm}#prt .lbp{display:block;width:101mm;height:54mm;overflow:hidden;page:lbpage;break-after:page;page-break-after:always}#prt .lbp:last-child{break-after:auto;page-break-after:auto}}
.lbo{display:flex;flex-direction:column;gap:6px}
.lbsum{display:flex;flex-direction:column;gap:2px;margin:12px 0 8px;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #eef2f7}
.lbv1 svg{max-width:360px}
/* scanner de QR code (en-tête), repris de CAP CONTROL */
.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}
.qbt{font:inherit;padding:10px 14px;border-radius:10px;border:1px solid #ffffff40;background:#ffffff1f;color:#fff;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.qbt.qbp{background:var(--p);border-color:var(--p)}.qbt.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}
/* double authentification : page de connexion et « Mon compte » */
#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}
.mfq ol{margin:0;padding-left:20px;flex:1;min-width:220px;display:flex;flex-direction:column;gap:8px;font-size:14px}
.mfk{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;letter-spacing:1px;background:#f3f4f6;border-radius:6px;padding:4px 8px;word-break:break-all;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)}
.mprev{display:inline-flex;vertical-align:middle;margin-left:6px;color:#16a34a}.mprev .ic{width:18px;height:18px;margin:0;color:#16a34a}
input.ro{background:#f1f5f9;color:#475569;cursor:default}
.anxp{padding:2px 0}.anxp+.anxp{border-top:1px dashed #e5e7eb;margin-top:3px;padding-top:4px}.anr .anxp svg.ic{display:inline-block;width:12px;height:12px;margin:0 3px 0 0;vertical-align:-1px}
.anmorebtn{margin-top:6px;padding:5px 12px;border:1px solid #c7d2e6;border-radius:999px;background:#eef2fa;color:var(--p);font-size:13px;font-weight:600}.anmorebtn:hover{border-color:var(--p)}.tw tr[hidden]{display:none}
/* ----- rapport carburant (rapportcarb.js) : A4, imprimé par le navigateur ----- */
@page{size:A4;margin:12mm 11mm 15mm;@bottom-left{content:"CAP FLEET";font:8.5px system-ui,sans-serif;color:#94a3b8}@bottom-right{content:"Page " counter(page) " / " counter(pages);font:8.5px system-ui,sans-serif;color:#94a3b8}}      /* impressions de l'application (rapport carburant…) ; les étiquettes ont leur propre page (lbpage). Pas de page nommée ici : Chrome y coupe la page avant chaque graphique */
#prt .rc{font:10.5px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;color:#1c1f26;-webkit-print-color-adjust:exact;print-color-adjust:exact}
#prt .rc *{box-sizing:border-box}
#prt .rc svg{display:block}
#prt .rc-hd{display:flex;align-items:center;gap:14px;padding:4px 0 12px;border-bottom:3px solid #1e3a8a;margin-bottom:12px}
#prt .rc-hd img{height:46px;width:auto}
#prt .rc-tt{flex:1}#prt .rc-tt small{color:#64748b;font-size:9.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
#prt .rc-tt h1{margin:2px 0 2px;font-size:26px;line-height:1.1;color:#1e3a8a;font-weight:800}#prt .rc-tt p{margin:0;color:#334155;font-size:11.5px}
#prt .rc-ed{text-align:right;color:#64748b;font-size:9.5px}
#prt .rc-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
#prt .rc-k{border:1px solid #e2e8f0;border-radius:10px;padding:9px 11px;background:linear-gradient(180deg,#f8fafc,#fff)}
#prt .rc-k small{display:block;color:#64748b;font-size:9px}#prt .rc-k b{display:block;font-size:19px;color:#1e3a8a;font-weight:800;margin:2px 0}#prt .rc-k b span{font-size:10px;font-weight:600;color:#475569}
#prt .rc-2{display:grid;grid-template-columns:1.25fr 1fr;gap:10px}
#prt .rc-box{border:1px solid #e2e8f0;border-radius:10px;padding:10px 12px;margin-bottom:10px}#prt .rc-box.rc-ch,#prt .rc-2 .rc-box,#prt .rc-kpis{break-inside:avoid}#prt .rc-box h3{break-after:avoid}
#prt .rc-box h3{margin:0 0 8px;font-size:12px;color:#0f172a}#prt .rc-box h3 small{font-weight:400;color:#64748b;font-size:9px}
#prt .rc-att ul{list-style:none;margin:0;padding:0}#prt .rc-att li{position:relative;padding:3px 0 3px 15px;font-size:10px;border-bottom:1px dashed #eef0f3}#prt .rc-att li:last-child{border:0}
#prt .rc-att li::before{content:'';position:absolute;left:2px;top:7px;width:8px;height:8px;border-radius:50%;background:#94a3b8}
#prt .rc-att li.r::before{background:#dc2626}#prt .rc-att li.o::before{background:#ea580c}#prt .rc-att li.b::before{background:#2563eb}#prt .rc-att li.g::before{background:#16a34a}
#prt .rc-dn{display:flex;align-items:center;gap:12px}#prt .rc-dn svg{width:38mm!important;height:38mm!important;flex:none}
#prt .rc-lg{flex:1;display:grid;gap:3px;font-size:9.5px}#prt .rc-lg div{display:flex;align-items:center;gap:6px}#prt .rc-lg i{width:9px;height:9px;border-radius:2px;flex:none}#prt .rc-lg span{flex:1}#prt .rc-lg b{color:#0f172a}
#prt .rc-leg{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:9.5px;margin-top:6px}#prt .rc-leg span{display:inline-flex;align-items:center;gap:5px}#prt .rc-leg i{width:12px;height:3px;border-radius:2px}
#prt .rc-pg{break-before:page}
#prt .rc-h{font-size:17px;color:#1e3a8a;margin:0 0 10px;padding-bottom:5px;border-bottom:2px solid #dbe3f0}
#prt .rc-t{width:100%;border-collapse:collapse;font-size:9.5px}
#prt .rc-t thead{display:table-header-group}#prt .rc-t tr{break-inside:avoid}
#prt .rc-t th{background:#f1f5f9;color:#334155;text-align:left;font-weight:700;padding:5px 6px;font-size:9px;border-bottom:1px solid #e2e8f0}
#prt .rc-t td{padding:5px 6px;border-bottom:1px solid #eef0f3;vertical-align:top}#prt .rc-t td small{color:#64748b}
#prt .rc-t td.n,#prt .rc-t th.n{text-align:right;white-space:nowrap}#prt .rc-t tfoot td{background:#f8fafc;border-top:1px solid #cbd5e1}
#prt .rc-m{font-size:8.5px}#prt .rc-m td,#prt .rc-m th{padding:4px 4px}
#prt .rc-t tr.rc-warn td{background:#fef2f2}
#prt .rc-bar{white-space:nowrap}#prt .rc-bar span{display:inline-block;height:8px;border-radius:4px;vertical-align:middle;margin-right:6px}
#prt .rc-sw{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px;vertical-align:0}
#prt .rc-b{display:inline-block;border-radius:999px;padding:1px 7px;font-size:8.5px;font-weight:700;white-space:nowrap}
#prt .rc-b.g{background:#dcfce7;color:#166534}#prt .rc-b.b{background:#dbeafe;color:#1e40af}#prt .rc-b.r{background:#fee2e2;color:#991b1b}#prt .rc-b.o{background:#ffedd5;color:#9a3412}#prt .rc-b.n{background:#f1f5f9;color:#475569}
#prt .rc-note{background:#fef2f2;border-left:3px solid #dc2626;padding:6px 10px;margin:8px 0;font-size:9.5px}#prt .rc-note p{margin:2px 0}
#prt .rc-sec{margin:0 0 14px;break-inside:auto}#prt .rc-sec h2{font-size:13px;margin:0 0 3px;display:flex;align-items:center;gap:7px;color:#0f172a;break-after:avoid}
#prt .rc-sec h2 i{width:10px;height:10px;border-radius:50%;background:#94a3b8}#prt .rc-sec h2 i.r{background:#dc2626}#prt .rc-sec h2 i.o{background:#ea580c}#prt .rc-sec h2 i.b{background:#2563eb}#prt .rc-sec h2 i.g{background:#16a34a}
#prt .rc-mini{display:flex;gap:8px;margin:6px 0 8px;break-after:avoid}#prt .rc-mini .rc-k{padding:6px 10px;flex:0 0 auto;min-width:120px}#prt .rc-mini .rc-k b{font-size:15px}
#prt .rc-ws{color:#64748b;font-size:9px;margin:2px 0 6px}#prt .rc-ok{color:#166534;font-weight:600;font-size:10px;margin:4px 0}
#prt .rc-pl+.rc-pl{border-top:1px dashed #e2e8f0;margin-top:3px;padding-top:3px}
#prt .rc-ft{margin-top:14px;padding-top:6px;border-top:1px solid #e2e8f0;color:#94a3b8;font-size:8.5px}
#prt .rc-pg2{margin-top:14px}
#prt .rc-sh{break-inside:avoid;break-after:avoid}#prt .rc-t tfoot{display:table-row-group}
/* Administration > Messages types (msgtpl.js) */
.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;max-width:100%}
.msgc span{font:11px system-ui,sans-serif;color:#6366f1;white-space:normal}
.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}
.msgw{margin:8px 0 0;color:#b45309;font-size:13px}
/* Colonne « Contrat (km / durée) » de la liste des véhicules (ctInfo, app.js) */
.ctb{display:inline-flex;flex-direction:column;gap:4px;width:180px;max-width:100%;vertical-align:middle}
.ctt{position:relative;display:block;height:8px;background:#e5e9f0;border-radius:4px}
.ctt i{position:absolute;left:0;top:0;bottom:0;border-radius:4px}
.ctt b{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:#111827;border-radius:1px}
.ctb small{display:flex;justify-content:space-between;gap:8px;font-size:11px;color:var(--m);white-space:nowrap}
.ctb small b{font-weight:600}
.lg .lgct{display:inline-block;width:36px;margin-right:4px;vertical-align:middle}
/* Fiche véhicule > Synthèse en modules (synthese.js) */
.sy{display:flex;flex-direction:column;gap:14px}
.sy .sy-m,.sy .sy-more{margin:0}
.sy-m{display:flex;flex-direction:column;gap:10px}
.sy-h{margin:0;font-size:16px;display:flex;align-items:center;gap:8px}
.sy-top{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.sy-pill{border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700}
.sy-row{display:flex;flex-wrap:wrap;gap:16px 40px}
.sy-kmb{flex:2 1 460px;min-width:0;display:flex;flex-direction:column;gap:8px}
.sy-tmb{flex:1 1 260px;min-width:0;display:flex;flex-direction:column;gap:8px}
.sy-big{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px}.sy-big>b{font-size:28px;font-weight:800}.sy-big>span{color:var(--m);font-size:14px}.sy-big>em{margin-left:auto;font-style:normal;font-size:20px;font-weight:800}
.sy-bar{position:relative;height:18px;background:#eef1f6;border-radius:6px;margin:24px 0 34px}
.sy-bar.t{margin:6px 0 0;height:14px}
.sy-bar>i{position:absolute;top:0;bottom:0}
.sy-in{left:0;background:var(--p);border-radius:6px 0 0 6px}
.sy-out{background:#dc2626}
.sy-hatch{background:repeating-linear-gradient(135deg,#c7d2fe 0 6px,#e0e7ff 6px 12px)}.sy-hatch.r{background:repeating-linear-gradient(135deg,#fecaca 0 6px,#fee2e2 6px 12px)}
.sy-bar>i.sy-hatch{border-radius:0 6px 6px 0}
.sy-tm{left:0;background:#64748b;border-radius:6px}
.sy-lim{position:absolute;top:-8px;bottom:-8px;border-left:2px solid #111827;margin-left:-1px}.sy-lim small{position:absolute;bottom:100%;left:0;transform:translateX(-50%);white-space:nowrap;font-size:12px;font-weight:700;padding-bottom:2px}
.sy-exp{position:absolute;top:100%;width:0}.sy-exp::before{content:'';position:absolute;left:-7px;top:3px;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:10px solid #111827}.sy-exp small{position:absolute;top:15px;left:0;white-space:nowrap;font-size:12px;color:#374151}
.sy-lg{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12px;color:var(--m)}.sy-lg span{display:inline-flex;align-items:center;gap:6px}.sy-lg i{display:inline-block;width:14px;height:10px;border-radius:2px}.sy-lg i.sy-tri{width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:8px solid #111827;border-radius:0}
.sy-tl{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px;color:#374151}
.sy-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:10px}
.sy-tile{background:#f6f7f9;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:2px}.sy-tile small{color:var(--m);font-size:12px}.sy-tile b{font-size:18px;font-weight:800}.sy-tile.r{background:#fef2f2}.sy-tile.r small{color:#7f1d1d}.sy-tile.r b{color:#991b1b}
.sy-g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:14px}
.sy-g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:14px;align-items:start}
.sy-g2>.card,.sy-g3>.card{margin:0}
.sy-g2:empty,.sy-g3:empty{display:none}
.sy-al{display:flex;gap:10px;align-items:flex-start;font-size:14px}.sy-al small{color:var(--m)}
.sy-dot{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;background:#f1f5f9;color:#334155}.sy-dot.r{background:#fee2e2;color:#b91c1c}.sy-dot.o{background:#ffedd5;color:#c2410c}.sy-dot.y{background:#fef9c3;color:#a16207}.sy-dot.b{background:#dbeafe;color:#1d4ed8}.sy-dot.k{background:#e5e7eb;color:#111827}
.sy-ok{display:flex;gap:8px;align-items:center;font-size:14px;color:#166534}.sy-ok .ic{width:20px;height:20px;color:inherit;margin:0}
.sy-ev{display:flex;gap:12px;align-items:center;font-size:14px}.sy-ev small{color:var(--m)}.sy-ev.c,.sy-act.c{cursor:pointer}
.sy-cal{flex:none;width:52px;text-align:center;border:1px solid var(--b);border-radius:10px;padding:3px 0;display:flex;flex-direction:column;line-height:1.15}.sy-cal small{font-size:11px;color:var(--m)}.sy-cal b{font-size:19px;font-weight:800}.sy-cal.q{border-style:dashed;color:var(--m);font-weight:700;font-size:18px;padding:10px 0}
.sy-drv{display:flex;gap:12px;align-items:center;font-size:14px}.sy-drv small{color:var(--m)}.sy-drv .avs{width:46px;height:46px;font-size:16px;flex:none}
.sy-btns{display:flex;gap:8px;flex-wrap:wrap}
.sy-a{font-size:14px;margin-top:auto;align-self:flex-start}
.sy-stack{display:flex;height:14px;border-radius:6px;overflow:hidden;gap:2px;background:#eef1f6}.sy-stack i{display:block;height:100%}
.sy-cl{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:6px 20px;font-size:14px}.sy-cl span{display:flex;gap:8px;align-items:center}.sy-cl i{flex:none;width:10px;height:10px;border-radius:3px}.sy-cl b{margin-left:auto;white-space:nowrap}
.sy-act{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:9px 0;border-top:1px solid #f1f5f9;font-size:14px}.sy-act>small{width:84px;color:var(--m)}.sy-act>span:last-child{flex:1;min-width:180px}
.sy-tag{border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600;background:#f1f5f9;color:#334155}.sy-tag.b{background:#e0e7ff;color:#1e3a8a}.sy-tag.r{background:#fee2e2;color:#991b1b}.sy-tag.g{background:#dcfce7;color:#166534}
.sy-more>summary{cursor:pointer;font-weight:600;color:var(--p);font-size:15px}.sy-more>summary small{color:var(--m);font-weight:400}.sy-more[open]>summary{margin-bottom:12px}
/* Documents : des blocs côte à côte avec une grande vignette (docRows, app.js) */
.dcl{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),1fr));gap:14px;margin-top:10px}
.dci{display:flex;flex-direction:column;border:1px solid var(--b);border-radius:12px;background:#fff;overflow:hidden;min-width:0}
.dch{border-style:dashed;background:#fafbfc}
.dct{position:relative;width:100%;height:250px;padding:0;border:0;border-bottom:1px solid var(--b);background:#f1f5f9;overflow:hidden;cursor:pointer;display:flex;align-items:center;justify-content:center;font:inherit;border-radius:0}
.dch .dct{cursor:default;background:transparent}
.dct:hover,.dct:focus-visible{box-shadow:inset 0 0 0 2px var(--p)}.dch .dct:hover{box-shadow:none}
.dct img{width:100%;height:100%;object-fit:contain;background:#fff;display:block}
.dct img[data-pdft],.dct.nf img{display:none}
.dcph{display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--m);font-size:12px;font-weight:600}.dcph .ic{width:44px;height:44px;margin:0;color:var(--m)}
.dct.ok .dcph{display:none}
.dct:not(.ok):not(.nf):not(.im) .dcph{animation:dcpulse 1.4s ease-in-out infinite}
@keyframes dcpulse{50%{opacity:.45}}
.dcpdf{position:absolute;left:8px;bottom:8px;background:#b91c1c;color:#fff;font-size:11px;font-weight:700;border-radius:4px;padding:2px 6px}.dct:not(.ok) .dcpdf{display:none}
.dccat{position:absolute;left:8px;top:8px;background:var(--p);color:#fff;font-size:12px;font-weight:600;border-radius:999px;padding:3px 10px;max-width:calc(100% - 60px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dcnb{position:absolute;right:8px;top:8px;background:rgba(17,24,39,.8);color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:2px 8px}
.dcb{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}
.dcn{font-size:15px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:anywhere}
.dcb small{color:var(--m)}
.dcm{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.dca{display:flex;gap:6px;flex-wrap:wrap;margin-top:auto;padding-top:8px}.dca .ob{flex:1}
@media(max-width:600px){.dcl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dct{height:190px}.dcb{padding:8px 10px 10px}.dca .ob{flex:1 1 100%}.dca button:not(.ob){flex:1}}
.dca button{white-space:nowrap}
@media(max-width:360px){.dcl{grid-template-columns:minmax(0,1fr)}}
@media (prefers-reduced-motion:reduce){.dct .dcph{animation:none!important}}
.sy-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.sy-rl{border:1.5px solid currentColor;border-radius:999px;padding:2px 10px 2px 6px;font-size:13px;background:#fff}.sy-rl .ic{width:20px;height:20px}
/* Onglets Contrat et Assurance de la fiche véhicule (onglets.js) */
.og-kv{display:flex;flex-direction:column}
.og-kv>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:7px 0;border-top:1px solid #f1f5f9;font-size:14px}
.og-kv>div>span{color:var(--m)}.og-kv>div>b{text-align:right;font-weight:600}
.og-kv .rl{margin-left:6px;vertical-align:middle}.og-kv .rl .ic{width:18px;height:18px}
.og-ctt .ctt{height:12px;border-radius:6px}.og-ctt .ctt i{border-radius:6px}.og-ctt .ctt b{top:-4px;bottom:-4px}
.og-chip{display:inline-block;background:#e0e7ff;color:#1e3a8a;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}.og-chip.n{background:#f1f5f9;color:#334155}
.og-chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0}
.og-hist{display:flex;flex-direction:column}
.og-he{display:flex;gap:12px;align-items:flex-start;padding:10px 0;border-top:1px solid #f1f5f9;font-size:14px}.og-he:first-child{border-top:0}
.og-he>.d{margin-left:auto}
.og-set{display:flex;flex-direction:column;gap:8px;border-top:1px dashed var(--b);padding-top:10px;font-size:14px}.og-set select{max-width:100%}
.og-note{background:#f6f7f9;border-radius:10px;padding:10px 12px;font-size:14px}.og-note small{color:var(--m)}
.og-dh{display:flex;gap:14px;align-items:center}.og-dh .avs{width:56px;height:56px;font-size:18px;flex:none}.og-dh>div{display:flex;flex-direction:column;gap:2px;font-size:17px}.og-dh small{color:var(--m);font-size:13px}
.og-he .avs{flex:none}
.sy .fdc{margin:0}
.og-list{display:flex;flex-direction:column}
.og-it{display:flex;gap:12px;align-items:center;padding:10px 6px;border-top:1px solid #f1f5f9;cursor:pointer;border-radius:8px}.og-list>.og-it:first-child{border-top:0}
.og-it:hover,.og-it:focus-visible{background:#f8fafc;outline:none;box-shadow:inset 0 0 0 1px var(--b)}
.og-itb{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;font-size:14px}.og-itb small{overflow-wrap:anywhere}
.og-itr{flex:none;display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-size:14px}.og-itr small{color:var(--m);font-size:11px}
.og-th{flex:none;width:64px;height:64px;object-fit:cover;border-radius:8px;border:1px solid var(--b)}
.og-more>summary{cursor:pointer;color:var(--p);font-weight:600;font-size:14px;padding:8px 6px}
.og-edl{cursor:pointer}.og-edl:hover,.og-edl:focus-visible{box-shadow:0 0 0 2px var(--p);outline:none}.og-edl .dct{cursor:pointer;border-bottom:1px solid var(--b)}
.og-edl .dct img{object-fit:cover}
@media(max-width:600px){.og-th{width:48px;height:48px}.og-itr small{display:none}}

.og-itt{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.og-itt .bd{font-size:11px;padding:2px 8px}
.og-it .sy-cal{width:46px}.og-it .sy-cal b{font-size:17px}
.sy-bar>i.sy-est{background:var(--p);opacity:.4}.sy-bar>i.sy-est.r{background:#dc2626}.sy-lg i.sy-est{background:var(--p);opacity:.4}
.sy-hatch.f{opacity:.5}
.cpold{color:#c2410c;font-weight:600}
.sy-tile.o{background:#fff7ed}.sy-tile.o small{color:#9a3412}.sy-tile.o b{color:#c2410c}
.og-hl{display:flex;flex-direction:column}
.og-hd{font-size:12px;font-weight:700;color:var(--m);text-transform:uppercase;letter-spacing:.03em;padding:12px 0 4px;border-top:1px solid #f1f5f9}.og-hl>.og-hd:first-child{border-top:0;padding-top:0}
.og-hr{display:flex;gap:12px;padding:6px 0;font-size:14px}.og-hr>small{flex:none;width:44px;color:var(--m);padding-top:2px}.og-hr>div{flex:1;min-width:0}
.og-hr .og-chips{align-items:center}.og-hr .og-chip{overflow-wrap:anywhere;max-width:100%}
.sy textarea{width:100%;box-sizing:border-box}
.og-tb{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;font-size:11px;font-weight:700;line-height:1;background:#e5e7eb;color:#374151}.og-tb.o{background:#ea580c;color:#fff}.og-tb.r{background:#dc2626;color:#fff}

.kzl{display:block;margin:4px 0 6px}.kzl span{white-space:nowrap;margin-right:12px}.kzl i{display:inline-block;width:14px;height:10px;border-radius:2px;border:1px solid #d1d5db;margin-right:5px;vertical-align:-1px}

.sy-fw{position:absolute;top:50%;height:0;border-top:2px solid #1f2937;z-index:1}.sy-fw::before,.sy-fw::after{content:'';position:absolute;top:-7px;height:12px;border-left:2px solid #1f2937}.sy-fw::before{left:0}.sy-fw::after{right:0}
.sy-lg i.sy-fwl{position:relative;height:0;border-top:2px solid #1f2937;border-radius:0;width:16px}.sy-lg i.sy-fwl::before,.sy-lg i.sy-fwl::after{content:'';position:absolute;top:-6px;height:10px;border-left:2px solid #1f2937}.sy-lg i.sy-fwl::before{left:0}.sy-lg i.sy-fwl::after{right:0}

/* tableau des véhicules : choix des colonnes (colonnes.js) */
.vcb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 6px}
.vcw{position:relative}
.vcbtn small{color:var(--m);font-weight:400}
.vcst{font-size:13px;color:var(--m)}.vcst.t{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:999px;padding:3px 10px}
.vcp{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:min(820px,calc(100vw - 32px));background:#fff;border:1px solid #d1d5db;border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.18);display:flex;flex-direction:column;max-height:min(72vh,660px);text-align:left}
.vcp-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 12px;padding:12px 14px;border-bottom:1px solid var(--b)}
.vcp-q{font-size:13px}
.vcp-b{display:flex;min-height:0;flex:1}
.vcp-g{flex:1.7;overflow:auto;padding:10px 14px;columns:200px;column-gap:20px}
.vcp-g fieldset{border:0;margin:0 0 10px;padding:0;min-width:0}
.vcp-g legend{font-weight:700;font-size:13px;padding:0;margin-bottom:2px}
.vcp-g label{display:flex;gap:8px;align-items:flex-start;font-size:13px;padding:4px 0;cursor:pointer;break-inside:avoid}
.vcp-g input{margin:2px 0 0;flex:none;width:16px;height:16px}
.vcp-o{flex:1;min-width:220px;border-left:1px solid var(--b);overflow:auto;padding:10px 14px;background:#f8fafc}
.vcp-o>small{display:block;margin-top:2px}
.vcp-o ol{margin:8px 0 0;padding:0;list-style:none;counter-reset:vc}
.vcp-o li{display:flex;align-items:center;gap:4px;padding:2px 0;font-size:13px;counter-increment:vc}
.vcp-o li span{flex:1;min-width:0}.vcp-o li span::before{content:counter(vc) '. ';color:var(--m)}
.vcp-o li button{min-width:32px;min-height:32px;padding:0 6px;line-height:1}
.vcp-o li button[disabled]{opacity:.35;cursor:default}
.vcp-f{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;border-top:1px solid var(--b)}
.vcp-f small{flex:1 1 240px;color:var(--m)}
@media(max-width:600px){.vcp{position:fixed;left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:86vh}.vcp-b{flex-direction:column;overflow:auto}.vcp-g,.vcp-o{overflow:visible;flex:none}.vcp-o{border-left:0;border-top:1px solid var(--b);min-width:0}}
/* véhicules déclassés : roulage et barre du contrat en couleurs ternes */
#main[data-tab=veh] tr.off .rl,#main[data-tab=veh] tr.off .ctb{filter:saturate(.15);opacity:.6}

/* téléphone (classe posée par viewport.js) : pas de zoom de la page par double-tape ou pincement ; on garde le défilement.
   « manipulation » d'abord pour les navigateurs qui ne connaissent pas « pan-x pan-y » (il bloque au moins le double-tape) */
html.nozoom,html.nozoom *{touch-action:manipulation;touch-action:pan-x pan-y}
html.nozoom .lb,html.nozoom .lb *,html.nozoom canvas[data-k]{touch-action:none}      /* photo en grand : son propre zoom ; signatures au doigt */
