:root{color-scheme:dark;--bg:#041525;--panel:#10293d;--panel2:#16354a;--line:#34536a;--red:#ed1939;--muted:#b3c7d6;--green:#23d875}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 75% 0%,#10243b 0%,#061525 42%,#04111e 100%);color:#f7f9ff;font:15px/1.5 system-ui,-apple-system,'Segoe UI',sans-serif;min-height:100vh;padding-bottom:92px}button,input,textarea,select{font:inherit}.hero-brand{background:#04111e;border-bottom:1px solid #335065}.hero-brand a{display:block;max-width:1050px;margin:auto}.hero-brand img{display:block;width:100%;height:auto}main{max-width:900px;margin:auto;padding:0 18px 40px}.intro{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #284259;padding:16px 0;margin-bottom:19px}.eyebrow{font-weight:900;letter-spacing:.5px;font-size:clamp(13px,2.6vw,20px)}.eyebrow:before,.section-heading:before{content:'';display:inline-block;width:6px;height:23px;background:var(--red);transform:skew(-15deg);vertical-align:middle;margin-right:12px;border-radius:2px}.version{color:#ff8f9c;border:1.5px solid var(--red);background:#3a1523;border-radius:40px;padding:7px 12px;font-weight:900;font-size:11px;white-space:nowrap}h1{font-size:clamp(23px,5vw,34px);margin:8px 0;font-weight:900;line-height:1.2}h2{font-size:20px;margin:0 0 14px}p{color:var(--muted)}[hidden]{display:none!important}#alert:not(:empty){border:1px solid #b86c3b;background:#4b3027;color:#fff;padding:14px 17px;border-radius:14px;margin:15px 0}.vehicle-card{background:linear-gradient(120deg,#152d40,#0b2033);border:1px solid var(--line);border-radius:21px;overflow:hidden;margin:13px 0;box-shadow:0 7px 22px #0002}.vehicle-link{display:flex;align-items:center;gap:14px;min-height:115px;color:inherit;text-decoration:none;padding:0 14px 0 0}.vehicle-photo{width:27%;max-width:190px;min-width:92px;height:116px;object-fit:cover;border-right:4px solid var(--red);clip-path:polygon(0 0,100% 0,94% 100%,0 100%)}.vehicle-info{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.vehicle-info strong{font-size:clamp(21px,4vw,29px);font-weight:900}.vehicle-info small{color:#c6d5e1;font-size:12px;line-height:1.4}.vehicle-badge{border-radius:25px;border:1px solid #a4b7c6;padding:7px 11px;white-space:nowrap;font-size:12px;font-weight:800}.vehicle-badge.done{color:#5af4a0;border-color:#12a55c;background:#063e2a}.vehicle-badge.pending{color:#d7e4ee;background:#2a3d4e}.vehicle-badge.closed{color:#f2a6b1;border-color:#a74a5a;background:#421f2c}.vehicle-arrow{font-size:29px;color:#eaf2fa}.back-link{display:inline-block;color:#d5e4f1;text-decoration:none;margin:5px 0 20px}.check-heading{display:flex;align-items:center;gap:16px;margin-bottom:18px}.check-heading img{width:120px;height:104px;object-fit:cover;border-radius:17px;border:1px solid var(--line)}.check-heading p{margin:4px 0 10px}.tag{display:inline-block;border:1px solid #49748c;background:#173b53;padding:5px 12px;border-radius:40px;color:#d8eaf5;font-size:12px}.info-strip,.progress{display:flex;flex-direction:column;gap:7px;background:linear-gradient(125deg,#102b40,#0b2133);border:1px solid var(--line);border-radius:17px;padding:14px 17px;margin:15px 0;color:#e1ebf3}.progress-top{display:flex;justify-content:space-between;gap:10px}.progress-track{height:12px;background:#536e82;border-radius:30px;overflow:hidden}.progress-track div{height:100%;width:0;background:linear-gradient(90deg,#12ae6a,#3cf0a0);border-radius:30px;transition:width .2s}.location{border:1px solid var(--line);background:linear-gradient(135deg,#112c40,#091e30);border-radius:17px;margin:12px 0;overflow:hidden}.location summary{cursor:pointer;display:flex;align-items:center;gap:10px;padding:16px 17px;list-style:none;font-size:17px;font-weight:850}.location summary::-webkit-details-marker{display:none}.location summary:before{content:'';width:5px;height:25px;background:var(--red);transform:skew(-15deg)}.location summary:after{content:'⌄';font-size:24px;margin-left:5px}.location[open] summary:after{content:'⌃'}.location-name{flex:1}.location-count{color:#b7d0e0;font-size:13px}.location-body{padding:0 17px 15px;border-top:1px solid #2c465b}.item{padding:15px 0;border-bottom:1px solid #294358}.item:last-child{border-bottom:0}.item-title{font-weight:800;font-size:15px;margin-bottom:9px}fieldset{border:0;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}fieldset label{position:relative;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:70px;border:1px solid #4b687e;border-radius:12px;background:#0a2336;color:#f1f5fa;font-size:12px;font-weight:700;margin:0;padding:8px 3px;text-align:center}fieldset input{position:absolute;opacity:0;inset:0;cursor:pointer}fieldset .choice-icon{font-size:22px;line-height:1.1}fieldset .choice-conforme:has(input:checked){background:#063d2b;border-color:#28e77c}fieldset .choice-anomalie:has(input:checked),fieldset .choice-absent:has(input:checked){background:#49202b;border-color:#f34c63}.observation-label{margin-top:13px}label{display:block;font-size:13px;color:#d8e5ee;font-weight:700;margin:13px 0}input:not([type=radio]):not([type=checkbox]),textarea,select{display:block;width:100%;border:1px solid #496a83;border-radius:12px;background:#061c2d;color:#fff;padding:12px 13px;margin-top:6px;outline:none}input:focus,textarea:focus,select:focus{border-color:#83c6ef}textarea{min-height:78px;resize:vertical}.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}button{border:1px solid transparent;border-radius:12px;background:#dc2340;color:#fff;padding:12px 16px;font-weight:850;cursor:pointer;min-height:43px}button:disabled{opacity:.5}.secondary{background:#173a53;border-color:#41627b}form:not(.edit-dialog form),#history article,#anomalies article,#admin-items article{background:linear-gradient(125deg,#122e42,#0b2133);border:1px solid var(--line);border-radius:18px;padding:17px;margin:14px 0}#inspection-form{margin-top:18px}.submit-control{width:100%;background:#08683e;border-color:#24e07a;font-size:18px;padding:16px;margin-top:10px}#captcha{margin:17px 0;overflow:hidden}.admin-heading{margin:15px 0}.admin-heading p{margin:0}.admin-session{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:15px 0}.admin-tiles{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:20px 0}.admin-tiles button{min-height:80px;text-align:left;font-size:14px;background:linear-gradient(125deg,#17364c,#0c2234);border:1px solid #3c6078;line-height:1.4}.admin-tiles #tab-anomalies{border-color:#794451}.admin-tiles #anomaly-count{background:var(--red);border-radius:50%;padding:3px 8px;margin-left:7px}.section-heading{font-size:22px;margin:25px 0 13px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stats>div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:118px;padding:12px 5px;background:linear-gradient(135deg,#153047,#091e30);border:1px solid #34566c;border-radius:17px}.stats strong{font-size:33px}.stats small{font-size:12px;color:#d4e0ea}.history-card button{width:100%;text-align:left;background:#1b405a}.history-card .panel{padding:8px 12px}.history-card .panel p{border-bottom:1px solid #2d4b60;padding-bottom:8px}.anomaly-card{border-color:#d92c49!important}.anomaly-card strong{font-size:17px}.anomaly-card button{margin-top:5px}.item.admin-item{border:1px solid #34556b;background:#0b2438;border-radius:12px;padding:13px;margin:10px 0}.item-meta{font-size:12px;color:#b3c7d6}.item-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.item-actions button{flex:1}.bottom-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:stretch;gap:0;background:#051726ed;backdrop-filter:blur(12px);border-top:1px solid #37536b;z-index:9;padding:9px max(5px,calc((100vw - 850px)/2)) calc(9px + env(safe-area-inset-bottom))}.bottom-nav a{color:#e4ecf4;text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:1px;flex:1;font-size:10px;min-width:0}.bottom-nav a span{font-size:24px;line-height:1.1}.bottom-nav a.active{color:#ff3049}.bottom-nav a.active:after{content:'';height:3px;background:#ff3049;border-radius:5px;width:75%;margin-top:4px}.edit-dialog{width:min(92vw,470px);max-height:90dvh;overflow:auto;background:#10283c;border:1px solid #47708b;border-radius:21px;color:white;padding:0}.edit-dialog::backdrop{background:#010b17cc}.edit-dialog form{padding:22px}.dialog-top,.dialog-actions{display:flex;justify-content:space-between;gap:9px;align-items:center}.dialog-actions button{flex:1}.close{font-size:27px;background:transparent}.switch-line{display:flex;align-items:center;gap:10px}.switch-line input{width:auto}#loading{padding:20px}@media(max-width:540px){main{padding-left:13px;padding-right:13px}.hero-brand img{width:100%}.vehicle-link{gap:9px;min-height:92px;padding-right:9px}.vehicle-photo{height:100px;min-width:88px}.vehicle-info strong{font-size:20px}.vehicle-info small{font-size:10px}.vehicle-badge{font-size:10px;padding:5px 7px}.vehicle-arrow{font-size:22px}.check-heading img{width:100px;height:91px}.two{grid-template-columns:1fr}.stats strong{font-size:28px}.admin-tiles button{font-size:12px}.eyebrow{font-size:12px}.version{font-size:10px;padding:6px 8px}}

/* Navigation claire : une destination par onglet, état actif visible */
.bottom-nav{justify-content:center;gap:8px}
.bottom-nav a{max-width:230px;padding:7px 5px 5px;border-radius:12px;transition:background .15s,color .15s}
.bottom-nav a.active{color:#fff;background:linear-gradient(145deg,#b60f2d,#e31e3d);box-shadow:0 0 0 1px #ff5b71 inset}
.bottom-nav a.active:after{background:#fff;width:70%;height:3px}
.admin-tiles button.selected{border-color:#f43d58;background:linear-gradient(135deg,#6e1b32,#2a253a);box-shadow:inset 4px 0 0 #ff3049;color:#fff}
@media(max-width:540px){.bottom-nav a{font-size:11px}.bottom-nav a span{font-size:23px}}
/* Netlify Free affiche un badge flottant en bas à droite.
   La navigation reste au-dessus pour que tous les onglets soient accessibles. */
body{padding-bottom:calc(180px + env(safe-area-inset-bottom))}
.bottom-nav{bottom:88px;border:1px solid #37536b;border-left:0;border-right:0;box-shadow:0 8px 24px #0008}
@media(min-width:900px){.bottom-nav{bottom:0}body{padding-bottom:100px}}

/* Navigation principale : fixe visuellement en haut, sous le bandeau. */
body{padding-bottom:0}
.bottom-nav{position:sticky!important;top:0!important;bottom:auto!important;left:auto;right:auto;width:100%;z-index:100;border-top:0;border-bottom:1px solid #37536b;box-shadow:0 6px 18px #0006;padding:8px max(5px,calc((100vw - 850px)/2));background:#061b2df5}
.bottom-nav a{min-height:54px;justify-content:center}
@media(min-width:900px){.bottom-nav{bottom:auto!important}body{padding-bottom:0}}

/* Etiquettes officielles de parc, lisibles sur mobile */
.vehicle-photo{object-fit:contain;background:#e6f3f3;padding:0;clip-path:polygon(0 0,100% 0,94% 100%,0 100%)}
.check-heading img{object-fit:contain;background:#e6f3f3}

/* Administration enrichie : modules compatibles avec les RPC existantes */
.admin-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.weekly-row{display:grid;grid-template-columns:1fr auto;gap:5px 12px;align-items:center;background:linear-gradient(120deg,#143147,#0c2134);border:1px solid #35556b;border-radius:14px;padding:14px 16px;margin:10px 0}
.weekly-row small{grid-column:1/-1;color:#b5cad9}.weekly-ok{color:#4ee69a;font-weight:800}.weekly-pending{color:#e6bd80;font-weight:800}
#export-csv{margin:18px 0}

.pdf-export{background:linear-gradient(125deg,#112d42,#0b2133);border:1px solid #385c73;border-radius:16px;padding:15px;margin:18px 0}.pdf-export button{width:100%;margin-top:8px;background:#b91d39}.pdf-export label{margin-top:4px}

.fpt-coffre-photo{display:block;width:calc(100% - 28px);max-height:350px;object-fit:contain;background:#091e30;border:1px solid #37556c;border-radius:12px;margin:10px 14px 16px}

.preview-link{display:block;padding:14px;border:1px solid #6e9bb5;border-radius:13px;background:#14374e;color:#fff;text-align:center;font-weight:800;text-decoration:none}

/* Contrôle compact : observations uniquement en cas de problème */
#locations .observation-label[hidden]{display:none!important}
#locations .item{padding:12px 0}
#locations .item-title{margin-bottom:7px}
#locations fieldset label{min-height:58px;padding:6px 3px}
#locations .observation-label{margin-top:10px}

/* Module entretiens */
.maint-intro{color:#b7cad8}.maint-card{background:linear-gradient(120deg,#143147,#0b2235);border:1px solid #38566d;border-radius:16px;padding:16px;margin:12px 0}.maint-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}.maint-head strong{font-size:16px}.maint-badge{font-size:12px;border-radius:20px;padding:5px 10px;font-weight:700;background:#344b5c;color:white}.maint-badge.due,.maint-badge.late{background:#6b302e;color:#ffe0c2}.maint-badge.booked{background:#1c4b72;color:#b9e0ff}.maint-badge.done{background:#1b5744;color:#baf3d7}.maint-warning{color:#ffbd7c}.maint-muted{color:#b3c5d1;font-size:14px}.maint-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.maint-actions button{width:auto;flex:1 1 130px}.maint-appointment{display:flex;align-items:center;gap:12px;margin:14px 0}.maint-appointment input{width:22px;height:22px;flex:none}.maint-appointment label{margin:0}.maint-detail{padding:12px;background:#0b2031;border-radius:12px}.maint-detail[hidden],.maint-form[hidden]{display:none!important}.maint-detail label,.maint-form label{display:block;margin:10px 0}.maint-detail input,.maint-detail textarea,.maint-form input,.maint-form textarea,.maint-form select{width:100%;margin-top:6px}.maint-add{display:block;width:100%;margin:18px 0;background:#d51e3b}.maint-form{background:#112e43;border:1px solid #42657b;border-radius:16px;padding:16px}.maint-error{color:#ffb3a9;padding:10px}.maint-message{color:#b9dccc}

/* Pictogrammes des rubriques VTU / VSOL, sans modification des compteurs. */
#locations details.location > summary .vehicle-location-icon {font-size:23px;line-height:1;min-width:27px;flex:none;text-align:center;}
@media(max-width:480px){#locations details.location > summary .vehicle-location-icon {font-size:20px;min-width:22px;}}
