:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#fff;background:#080808}
*{box-sizing:border-box}html,body{margin:0;background:#080808}body{min-height:100vh}.app{max-width:1100px;margin:auto;min-height:100vh;background:#080808;padding-bottom:24px}
.hero{height:auto;aspect-ratio:425/212;background:#080808 url('header-cis.png') center/cover no-repeat;border-radius:0 0 18px 18px;padding:0}.hero>*{display:none}
.card{background:#fff;color:#1c2734;border-radius:14px;margin:10px 8px;padding:13px;box-shadow:none}.login-card{max-width:520px;margin:28px auto}.login-card h2{color:#163d64}label{display:block;font-size:12px;font-weight:900;margin:14px 0 6px;color:#244b70}input,textarea{width:100%;border:1px solid #ccd4dc;border-radius:10px;padding:13px;font:inherit;background:#fff}.primary,.secondary,.validate,.archives{width:100%;border:0;border-radius:9px;padding:13px;margin-top:12px;font-weight:900}.primary{background:#d7193f;color:#fff}.secondary{background:#e9eef3;color:#163d64}.message{color:#c62828;font-weight:700}.muted{color:#6f7780}.hidden{display:none!important}
.profile{display:flex;align-items:center;gap:10px;margin-top:8px}.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#d7193f;color:#fff;font-size:16px;font-weight:900}.grow{flex:1}.grow small,.grow strong{display:block}.grow small{font-size:10px;color:#7a7f86}.grow strong{color:#163d64;font-size:13px}.link,.back{border:0;background:transparent;color:#d7193f;font-weight:900;cursor:pointer}

.section-title{font-size:15px;color:#d7193f;margin:15px 9px 3px}.section-title:first-of-type:before{content:"🚒  ";font-size:13px}.section-title:nth-of-type(2):before{content:"🧰  ";font-size:13px}.section-title:first-of-type:after{content:"Sélectionnez un véhicule pour accéder à son inventaire";display:block;color:#858585;font-size:9px;font-weight:400;margin-top:4px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:4px 8px}.vehicle{min-height:142px;border:0;border-radius:11px;background:#fff;padding:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:#143b68;overflow:hidden}.vehicle span{font-size:38px}.vehicle b{font-size:13px}.vehicle small{background:#080808;color:#fff;border-radius:4px;padding:6px 13px;font-size:10px;font-weight:800}.vehicle.disabled{opacity:.42}.vehicle[data-id="vsav"] span,.vehicle[data-id="vtu"] span{font-size:0;width:105px;height:65px;background:center/contain no-repeat}.vehicle[data-id="vsav"] span{background-image:url('vsav.png')}.vehicle[data-id="vtu"] span{background-image:url('vtu.png')}.archives{margin:14px 8px;width:calc(100% - 16px);background:#0d3976;color:#fff}
#inventory,#archivesPage{padding:8px;background:#eef5fb;color:#111;min-height:calc(100vh - 180px)}.back{padding:10px 0}#inventoryTitle{color:#163d64}.progress{text-align:center;font-weight:900;color:#315d86;margin-bottom:10px}.category{background:#7f9fc4;color:#fff;padding:9px 12px;border-radius:8px;font-weight:900;margin:10px 0 5px}.category.orange{background:#e89432}.item{background:#fff;border-radius:10px;padding:10px;margin:5px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.item.done{background:#e8f5ec}.item .grow b,.item .grow small{display:block}.item .grow small{color:#777}.counter{display:flex;align-items:center;gap:5px}.counter button{width:34px;height:34px;border:0;border-radius:8px;font-size:20px}.validate{background:#4e8e53;color:#fff;margin-bottom:30px}
.archives-title{text-align:center;color:#d7193f;margin:4px 0 18px}.archive-search{margin-bottom:12px}.archive-card{background:#fff;border:1px solid #d9e0e6;border-radius:13px;padding:13px;margin:7px 0;box-shadow:0 1px 3px #0000000d}.archive-head{display:flex;justify-content:space-between;align-items:center;color:#163d64}.archive-meta{font-size:12px;color:#68727c;margin:5px 0 9px}.archive-count{font-size:13px;font-weight:800}.ok,.ok-text{color:#248447}.warn,.warn-text,.archive-missing{color:#d7193f}.archive-missing{font-size:12px;font-weight:700;margin-top:5px}.archive-observation{font-size:12px;margin-top:7px;color:#555}.archive-detail-note{font-size:11px;color:#6b7f91;margin-top:7px}.archive-loading,.archive-error,.archive-empty{padding:20px;text-align:center;color:#68727c}.archive-error{color:#c62828}.archive-edit-btn{float:right;border:0;background:transparent;color:#29486f;font-size:11px;font-weight:900;cursor:pointer;margin-top:-18px;padding:4px 2px}
@media(min-width:700px){.app{max-width:1000px}.hero{max-height:350px;background-size:cover}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.vehicle{min-height:170px}.profile{margin:12px 14px}.section-title{margin-left:15px}.grid{padding-left:14px;padding-right:14px}.archives{margin-left:14px;width:calc(100% - 28px)}}

/* Véhicules : vraies photos */
.vehicle .vehicle-photo{font-size:0;width:125px;height:78px;background:center/contain no-repeat;display:block}
.vehicle .vehicle-photo.fptsr{background-image:url('fptsr.png')}
.vehicle .vehicle-photo.mpr{background-image:url('mpr.png')}
.vehicle .vehicle-photo.ep30{background-image:url('ep30.png')}
.vehicle .vehicle-photo.vlhr{background-image:url('vlhr.png')}
.vehicle .vehicle-photo.vl{background-image:url('vl.png')}
/* En-tête centré sur les grands écrans sans étirement */
@media(min-width:700px){.hero{width:min(100%,850px);margin-left:auto;margin-right:auto;background-size:contain;background-position:center;background-color:#080808;aspect-ratio:425/212}}

/* Administration réellement cliquable */
.admin-bar{
  display:block;width:calc(100% - 28px);margin:10px 14px 14px;padding:9px 12px;
  border:0;border-radius:8px;background:#20458a;color:#fff;font-weight:900;
  font-size:11px;cursor:pointer
}
.admin-bar.hidden{display:none!important}

.observation-send{
  width:100%;border:0;border-radius:12px;padding:13px;margin-top:10px;
  background:#d7193f;color:#fff;font-weight:900;cursor:pointer
}
.observation-send:disabled{background:#b8b8b8;cursor:not-allowed}
.observation-message{text-align:center;font-size:12px;font-weight:800;min-height:18px;margin:7px 0}
.observation-message.success,.admin-message.success{color:#248447}
.observation-message.error,.admin-message.error{color:#d7193f}

.admin-page{padding:12px 14px 30px;background:#f4f5f7;min-height:100vh}
.admin-title{text-align:center;color:#163d64;font-size:22px}
.admin-panel{max-width:900px;margin:auto}
.admin-panel select,.admin-panel input{
  width:100%;border:1px solid #cbd2d9;border-radius:10px;padding:10px;background:#fff;font:inherit
}
.admin-tools{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0}
.admin-tools button,.admin-save{
  border:0;border-radius:10px;padding:11px 14px;font-weight:900;cursor:pointer
}
.admin-tools button{background:#163d64;color:#fff}
.admin-save{width:100%;background:#248447;color:#fff;margin-top:14px}
.admin-item{background:#fff;border-radius:12px;padding:10px;margin:7px 0;box-shadow:0 1px 4px #00000012}
.admin-item label{margin:0 0 7px}
.admin-item-row{display:grid;grid-template-columns:1fr 140px;gap:8px}
.admin-item-actions{display:flex;justify-content:space-between;align-items:center;margin-top:7px}
.admin-active{display:flex!important;align-items:center;gap:7px;color:#333!important}
.admin-active input{width:auto}
.admin-delete{border:0;background:transparent;color:#d7193f;font-weight:900;cursor:pointer}
.admin-message{text-align:center;font-weight:900;margin:10px 0}
.admin-empty{text-align:center;padding:20px;color:#777}
@media(max-width:600px){
  .admin-tools,.admin-item-row{grid-template-columns:1fr}
}

.archive-actions{
  display:flex;
  justify-content:flex-end;
  gap:12px;
  margin-top:8px;
}
.archive-edit-btn,
.archive-delete-btn{
  border:0;
  background:transparent;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
  padding:4px 2px;
}
.archive-edit-btn{color:#29486f}
.archive-delete-btn{color:#d7193f}
.archive-edit-btn:hover,
.archive-delete-btn:hover{text-decoration:underline}

.archive-global-actions{
  display:flex;
  justify-content:space-around;
  align-items:center;
  margin:8px 0 10px;
}
.archive-global-actions button{
  border:0;
  background:transparent;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}
#archivesOpenAll{color:#163d64}
#archivesCloseAll{color:#d7193f}

.archive-month{margin:8px 0 12px}
.archive-month-head{
  width:100%;
  border:0;
  border-radius:12px;
  background:#d7e5f3;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  cursor:pointer;
  color:#163d64;
}
.archive-month-left{
  display:flex;
  align-items:flex-start;
  gap:8px;
  text-align:left;
}
.archive-month-left strong{
  display:block;
  font-size:14px;
}
.archive-month-left small{
  display:block;
  margin-top:2px;
  font-size:10px;
  color:#6c7a89;
  font-weight:600;
}
.archive-chevron{
  font-size:11px;
  padding-top:2px;
}
.archive-month-content{
  padding-top:4px;
}
.archive-month-content.hidden{
  display:none;
}

.signup-toggle{
  width:100%;
  margin-top:9px;
  border:0;
  background:transparent;
  color:#163d64;
  font-weight:900;
  cursor:pointer;
  padding:10px;
}
.signup-toggle:hover{text-decoration:underline}
#confirmPasswordBlock.hidden{display:none!important}

/* v1.6 - pré-contrôle véhicule */
#precontrol{padding:8px;background:#eef5fb;color:#111;min-height:calc(100vh - 180px)}
.precontrol-title{text-align:center;color:#163d64;margin:4px 0 12px}.precontrol-card{background:#fff;border-radius:12px;padding:12px;margin:8px 0}.precontrol-card h3{margin:0 0 10px;color:#163d64}.level-row,.body-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid #edf0f3}.level-row:last-child{border-bottom:0}.level-row input{width:24px;height:24px}.body-face{background:#fff;border-radius:12px;padding:12px;margin:10px 0}.body-face h3{text-align:center;color:#163d64;margin:0 0 8px}.body-photo{width:100%;height:180px;object-fit:contain;background:#f4f6f8;border-radius:10px}.body-photo-missing{height:100px;display:grid;place-items:center;background:#f4f6f8;border-radius:10px;color:#7a7f86;font-weight:800}.body-choice{display:flex;gap:8px;margin-top:9px}.body-choice button{flex:1}.body-choice .selected-ok{background:#4e8e53;color:#fff}.body-choice .selected-bad{background:#d7193f;color:#fff}.body-note{margin-top:8px}.precontrol-next{background:#163d64;color:#fff;margin:14px 0 28px}.function-check{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-basis:100%;font-size:11px;font-weight:900;color:#d7193f;padding-top:2px}.function-check input{width:22px;height:22px;margin:0}

/* Logos des lots identiques à l'application Android */
.vehicle .kit-photo{font-size:0;width:125px;height:78px;background:center/contain no-repeat;display:block}
.vehicle .kit-photo.epuisement1,.vehicle .kit-photo.epuisement2{background-image:url('kit_epuisement_2.png')}
.vehicle .kit-photo.hymenopteres{background-image:url('kit_hymenopteres.png')}
.vehicle .kit-photo.bachage1{background-image:url('kit_bachage_toit_1.png')}
.vehicle .kit-photo.bachage2{background-image:url('kit_bachage_toit_2.png')}
.vehicle .kit-photo.tronconnage{background-image:url('kit_tronconnage.png')}
.vehicle .kit-photo.etageres{background-image:url('kit_etagere.png')}
.vehicle .kit-photo.intemperie{background-image:url('kit_intemperie.png')}

/* v1.7 - suivi des dernières vérifications */
.verification-legend{margin:10px 8px 4px;padding:8px 10px;background:#fff;border-radius:9px;font-size:10px;font-weight:800;color:#143b68;line-height:1.45}
.last-check{width:100%;font-size:10px;font-weight:800;color:#555;text-align:center;line-height:1.25;margin-top:2px}
.archive-modified{font-size:10px;color:#666;margin-top:2px}
@media(min-width:700px){.verification-legend{margin-left:14px;margin-right:14px;font-size:11px}}

.carrosserie-consigne{margin:0 10px 10px;text-align:center;color:#d7193f;font-size:12px;font-weight:800;line-height:1.35}


/* v1.10 - contrôles sécurité, recomplètement et vérification thermique */
.vehicle .vehicle-photo.thermal{background-image:url('essai_thermique.png')}
.last-check{font-size:10px;line-height:1.35;text-align:center;color:#4b5865;font-weight:800}
.next-check{color:#163d64;margin-bottom:3px}
.level-block{border-bottom:1px solid #edf0f3;padding-bottom:8px;margin-bottom:6px}.level-block .level-row{border-bottom:0;padding-bottom:5px}
.recompletement-input{margin-top:4px;width:100%;box-sizing:border-box;border:1px solid #cdd7e1;border-radius:8px;padding:9px 10px;background:#f8fafc}
.security-row{padding:10px 0;border-bottom:1px solid #edf0f3}.security-row:last-child{border-bottom:0}.security-row>b{display:block;color:#163d64;margin-bottom:5px}
.mpr-thermal-note{background:#eaf3ff;border-left:4px solid #163d64;border-radius:8px;padding:10px 12px;color:#163d64;font-weight:800;line-height:1.4}
.back-precontrol{display:block;margin:4px 0 10px;text-align:left;font-size:11px}
#thermalPage{padding:8px;background:#eef5fb;color:#111;min-height:calc(100vh - 180px)}
.thermal-next-date{background:#fff;border-radius:10px;padding:10px;text-align:center;color:#163d64;font-weight:900}
.thermal-group{background:#fff;border-radius:12px;padding:0 12px 8px;margin:10px 0;overflow:hidden}
.thermal-group-title{background:#163d64;color:#fff;font-weight:900;text-align:center;margin:0 -12px 8px;padding:11px}
.thermal-check{padding:10px 0;border-bottom:1px solid #edf0f3}.thermal-check:last-child{border-bottom:0}.thermal-check>b{display:block;color:#163d64;margin-bottom:4px}

.category.trousse-bleue{background:#2878b8}.category.trousse-rouge{background:#b83b3b}.category.trousse-verte{background:#3f8b57}.category.caisse-noire{background:#333}

.category.sac-principal{background:#e89432;text-align:center;font-size:18px;margin-top:18px;text-transform:uppercase}

/* Couleurs catégories alignées sur l'application Android */
.category.cat-orange{background:#FF9800}
.category.cat-vert{background:#8BC34A}
.category.cat-rouge{background:#E53935}
.category.cat-bleu{background:#1976D2}
.category.cat-jaune{background:#FFC107;color:#fff}
.category.cat-gris{background:#9E9E9E}
.category.cat-noir{background:#424242}
.category.sac-principal.cat-orange{background:#FF9800}

/* Contrôle visuel du niveau des bouteilles O² */
.o2-levels{display:flex;gap:10px;align-items:center;margin-left:auto}
.o2-level-btn{font-size:25px;line-height:1;padding:7px 10px;border:2px solid transparent;border-radius:10px;background:#f3f5f8;cursor:pointer;opacity:.48}
.o2-level-btn.selected{opacity:1;border-color:#173b69;box-shadow:0 0 0 2px rgba(23,59,105,.12)}
@media(max-width:650px){.o2-levels{gap:5px}.o2-level-btn{font-size:22px;padding:6px 7px}}

/* O² : case OK sur la ligne article, niveau couleur sur une ligne dédiée */
.o2-levels-line{flex-basis:100%;justify-content:flex-end;margin-left:0;padding-top:2px}
.archive-o2{margin-top:7px;padding:7px 9px;background:#f4f7fa;border-radius:7px;font-size:13px;line-height:1.5}

.fait-avec{background:#fff;border:1px solid #d9e0e6;border-radius:12px;padding:12px;margin:8px 0 14px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.fait-avec label{font-weight:900;color:#163d64}.fait-avec select{flex:1;min-width:220px;padding:10px;border:1px solid #cbd5df;border-radius:9px;background:#fff;color:#111}.fait-avec small{color:#68727c;font-weight:700}

.fait-avec-menu{flex:1;min-width:230px;position:relative;color:#163d64}.fait-avec-menu summary{cursor:pointer;background:#f4f7fb;border:1px solid #cbd5df;border-radius:9px;padding:10px;font-weight:700}.fait-avec-options{max-height:310px;overflow:auto;border:1px solid #cbd5df;border-radius:9px;background:white;padding:8px}.fait-avec-option{display:flex;align-items:center;gap:8px;padding:6px 8px;font-weight:500!important;cursor:pointer}.fait-avec-option input{width:18px;height:18px}
