/* ch.742 lots 4 ⊕ 5 — carnet des indemnités km PAR MOIS (composant `IndemnitesMoisC742.js`). Préfixe `ikm-` (⛔ aucune règle hors de ce préfixe : les autres modules ne bougent pas).
   Grilles déclarées par CLASSE (R120) ; zones tactiles ≥ 44 px ; une colonne sous 768 px ; couleurs de la charte (R119 : vert = actif, ambre = avertissement, rouge = vrai problème). */
.ikm { display: flex; flex-direction: column; gap: 10px; padding: 8px; min-width: 0; }
.ikm-outils { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.ikm-filtres, .ikm-groupe { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.ikm-groupe span { font-size: 12px; color: #475569; }
.ikm-f, .ikm-btn { min-height: 44px; padding: 0 12px; border-radius: 10px; border: 1px solid #CBD5E1; background: #fff; color: #334155; font-size: 13px; font-weight: 600; cursor: pointer; }
.ikm-f.on, .ikm-btn.prim { background: #34D399; border-color: #34D399; color: #0F172A; }
.ikm-btn:disabled { opacity: .5; cursor: not-allowed; }
.ikm-mois { border: 1px solid #E2E8F0; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(15,23,42,.06); overflow: hidden; }
.ikm-mt { display: grid; grid-template-columns: minmax(0, 180px) minmax(0, 1fr) 28px; gap: 10px; align-items: center; padding: 10px 14px; min-height: 52px; cursor: pointer; background: #F8FAFC; }
.ikm-mt h4 { margin: 0; font-size: 15px; font-weight: 800; color: #0F172A; text-transform: capitalize; }
.ikm-kpi { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 12px; color: #475569; }
.ikm-kpi b { color: #0F172A; }
.ikm-av { background: #FEF3C7; color: #92400E; border-radius: 999px; padding: 2px 8px; font-weight: 700; }
.ikm-db { background: #FFEDD5; color: #9A3412; border-radius: 999px; padding: 2px 8px; font-weight: 700; }
.ikm-chev { text-align: center; color: #64748B; transition: transform .15s; }
.ikm-mois.ouvert > .ikm-mt .ikm-chev, .ikm-jour.ouvert > .ikm-jl .ikm-chev { transform: rotate(180deg); }
.ikm-mc { display: none; padding: 6px 10px 10px; }
.ikm-mois.ouvert > .ikm-mc { display: block; }
.ikm-barre-mois { display: flex; justify-content: flex-end; padding: 4px 0 8px; }
.ikm-jour { border-left: 4px solid #10B981; border-radius: 10px; margin: 6px 0; background: #fff; box-shadow: 0 0 0 1px #EEF2F7 inset; }
.ikm-jl { display: grid; grid-template-columns: 40px minmax(0, 1fr) 90px 90px 28px; gap: 8px; align-items: center; padding: 6px 8px; min-height: 48px; cursor: pointer; }
.ikm-jd { font-size: 13px; color: #0F172A; min-width: 0; }
.ikm-sous { display: block; font-size: 12px; color: #64748B; }
.ikm-det { display: none; padding: 0 8px 8px 48px; }
.ikm-jour.ouvert > .ikm-det { display: block; }
.ikm-t { display: grid; grid-template-columns: 40px minmax(0, 1fr) 90px 90px 52px; gap: 8px; align-items: start; padding: 8px 0; border-top: 1px solid #F1F5F9; }
.ikm-case { display: flex; align-items: center; justify-content: center; min-height: 44px; }
.ikm-case input { width: 20px; height: 20px; accent-color: #34D399; }
.ikm-par { font-size: 13px; color: #1E293B; min-width: 0; overflow-wrap: anywhere; }
.ikm-motif { font-size: 12px; color: #64748B; }
.ikm-raison { font-size: 12px; color: #92400E; margin-top: 2px; }
.ikm-alerte { font-size: 12px; color: #9A3412; margin-top: 4px; font-weight: 600; }
.ikm-n { text-align: right; font-size: 13px; font-weight: 700; color: #0F172A; white-space: nowrap; }
.ikm-act { display: flex; justify-content: flex-end; }
.ikm-act .ikm-btn { min-width: 44px; padding: 0 8px; }
.ikm-pastille { display: inline-block; border-radius: 999px; padding: 1px 8px; font-size: 11px; font-weight: 700; margin-right: 4px; }
/* couleurs d'état : liseré de la ligne ⊕ pastille ⊕ bouton de filtre */
.ikm-jour.e-valide { border-left-color: #10B981; } .ikm-pastille.e-valide { background: #D1FAE5; color: #065F46; }
.ikm-jour.e-propose { border-left-color: #3B82F6; } .ikm-pastille.e-propose { background: #DBEAFE; color: #1E40AF; }
.ikm-jour.e-retire { border-left-color: #94A3B8; opacity: .75; } .ikm-pastille.e-retire { background: #F1F5F9; color: #475569; }
.ikm-jour.e-doublon { border-left-color: #F97316; } .ikm-pastille.e-doublon { background: #FFEDD5; color: #9A3412; }
.ikm-jour.e-verifier { border-left-color: #F59E0B; } .ikm-pastille.e-verifier { background: #FEF3C7; color: #92400E; }
.ikm-t.e-retire .ikm-par { text-decoration: line-through; color: #94A3B8; }
.ikm-vide { padding: 24px; text-align: center; color: #64748B; font-size: 13px; }
.ikm-err { padding: 12px; color: #B91C1C; font-size: 13px; }
.ikm-total { font-size: 13px; color: #334155; text-align: right; padding: 6px 4px; }
/* fenêtres (montées dans <body>) */
.ikm-ov { position: fixed; inset: 0; z-index: 9000; background: rgba(15,23,42,.45); display: flex; align-items: flex-start; justify-content: center; padding: 24px 12px; overflow-y: auto; }
.ikm-boite { background: #fff; border-radius: 16px; width: min(900px, 94vw); max-height: 90vh; display: flex; flex-direction: column; box-shadow: 0 20px 50px rgba(15,23,42,.25); overflow: hidden; }
.ikm-tete { display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; background: #F8FAFC; border-bottom: 1px solid #E2E8F0; }
.ikm-tete h3 { margin: 0; font-size: 16px; font-weight: 800; color: #0F172A; text-transform: none; }
.ikm-x { min-width: 44px; min-height: 44px; border: none; background: none; font-size: 24px; color: #64748B; cursor: pointer; }
.ikm-corps { padding: 12px 16px 16px; overflow-y: auto; overflow-x: hidden; min-height: 0; }
.ikm-fm-outils { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 8px; font-size: 13px; }
.ikm-fm-outils input, .ikm-fm-outils select, .ikm-mode select { min-height: 44px; border: 1px solid #CBD5E1; border-radius: 8px; padding: 0 8px; font-size: 13px; }
.ikm-fm-total { margin-left: auto; color: #334155; }
.ikm-fm-l { display: grid; grid-template-columns: 32px minmax(0, 1fr) 90px; gap: 8px; align-items: center; padding: 8px 4px; border-top: 1px solid #F1F5F9; font-size: 13px; cursor: pointer; min-height: 44px; }
.ikm-fm-l input { width: 20px; height: 20px; accent-color: #34D399; }
.ikm-fm-l.signal { background: #FFFBEB; }
.ikm-fm-sans { margin-top: 10px; font-size: 12px; color: #475569; }
.ikm-fm-sans summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; font-weight: 600; }
.ikm-fm-pied { display: flex; justify-content: flex-end; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.ikm-mode { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 260px) minmax(0, 120px); gap: 10px; align-items: center; padding: 8px 0; border-top: 1px solid #F1F5F9; font-size: 13px; }
@media (max-width: 767px) {
  .ikm-mt { grid-template-columns: minmax(0, 1fr) 28px; }
  .ikm-mt .ikm-kpi { grid-column: 1 / -1; grid-row: 2; }
  .ikm-jl { grid-template-columns: 36px minmax(0, 1fr) 80px 24px; }
  .ikm-jl .ikm-p { display: none; }
  .ikm-det { padding-left: 8px; }
  .ikm-t { grid-template-columns: 36px minmax(0, 1fr) 72px 48px; }
  .ikm-t .ikm-p { display: none; }
  .ikm-mode { grid-template-columns: minmax(0, 1fr); }
  .ikm-groupe { width: 100%; }
}
