/* ATNV — Mode sombre automatique V4
   Couche visuelle uniquement. Le fonctionnement PHP/JS/SQL n'est pas modifié.
*/
@media (prefers-color-scheme: dark) {
  :root {
    color-scheme: dark;
    --atnv-bg: #0b1220;
    --atnv-surface: #172033;
    --atnv-surface-2: #1e293b;
    --atnv-input: #0f172a;
    --atnv-border: #475569;
    --atnv-border-soft: #334155;
    --atnv-text: #f1f5f9;
    --atnv-text-strong: #f8fafc;
    --atnv-text-muted: #94a3b8;
    --atnv-blue: #38bdf8;
  }

  html, body { background: var(--atnv-bg) !important; color: var(--atnv-text) !important; }
  body * { border-color: var(--atnv-border-soft); }

  /* Tailwind + conteneurs génériques */
  .bg-white, [class*="bg-white"] { background-color: var(--atnv-surface) !important; }
  .bg-gray-50, .bg-gray-100, .bg-slate-50, .bg-slate-100,
  [class*="bg-gray-50"], [class*="bg-gray-100"], [class*="bg-slate-50"], [class*="bg-slate-100"] {
    background-color: var(--atnv-surface-2) !important;
  }
  .text-gray-900, .text-gray-800, .text-gray-700, .text-gray-600,
  .text-slate-900, .text-slate-800, .text-slate-700, .text-slate-600,
  [class*="text-gray-900"], [class*="text-gray-800"], [class*="text-gray-700"], [class*="text-gray-600"] {
    color: var(--atnv-text) !important;
  }
  .text-gray-500, .text-slate-500, [class*="text-gray-500"] { color: var(--atnv-text-muted) !important; }
  .border-gray-100, .border-gray-200, .border-gray-300,
  [class*="border-gray-100"], [class*="border-gray-200"], [class*="border-gray-300"] {
    border-color: var(--atnv-border) !important;
  }

  /* Tous les champs */
  input, select, textarea, button {
    color: var(--atnv-text) !important;
  }
  input:not([type="checkbox"]):not([type="radio"]), select, textarea {
    background-color: var(--atnv-input) !important;
    border-color: var(--atnv-border) !important;
  }
  input::placeholder, textarea::placeholder { color: #94a3b8 !important; opacity: 1 !important; }
  option { background: var(--atnv-input) !important; color: var(--atnv-text) !important; }

  /* Cartes, tableaux et listes */
  table, tbody, thead, tr, td, th { color: var(--atnv-text) !important; }
  .table-responsive-cards tr, .table-responsive-cards tbody tr,
  .table-wrapper tr, .table-wrapper tbody tr,
  .mat-table tr.item-row,
  .card, .vehicle-card, .calendar-card, .day-card {
    background: var(--atnv-surface) !important;
    color: var(--atnv-text) !important;
    border-color: var(--atnv-border) !important;
  }
  .table-responsive-cards td, .table-wrapper td, .mat-table td {
    background: transparent !important;
    color: var(--atnv-text) !important;
    border-bottom-color: var(--atnv-border-soft) !important;
  }
  .table-responsive-cards td::before, .mat-table td::before { color: var(--atnv-text-muted) !important; }
  strong, b, h1, h2, h3, h4, h5, h6, label { color: var(--atnv-text-strong) !important; }

  /* Calendrier — couvre les classes Tailwind de la page */
  main, .main-content { background-color: var(--atnv-bg) !important; color: var(--atnv-text) !important; }
  main .bg-white, .main-content .bg-white { background-color: var(--atnv-surface) !important; }
  main .bg-gray-50, main [class*="bg-gray-50"], .main-content .bg-gray-50, .main-content [class*="bg-gray-50"] { background-color: var(--atnv-surface-2) !important; }
  main .text-gray-900, main .text-gray-800, main .text-gray-700, main .text-gray-600,
  .main-content .text-gray-900, .main-content .text-gray-800, .main-content .text-gray-700, .main-content .text-gray-600 { color: var(--atnv-text) !important; }
  main .border-gray-100, main .border-gray-200, main .border-gray-300,
  .main-content .border-gray-100, .main-content .border-gray-200, .main-content .border-gray-300 { border-color: var(--atnv-border) !important; }
  main a.bg-white { background-color: var(--atnv-input) !important; color: #93c5fd !important; border-color: var(--atnv-border) !important; }
  main .rounded-xl.bg-gray-50\/80,
  main [class*="bg-gray-50/80"], main [class*="hover:bg-gray-100"] {
    background-color: #22304a !important;
    color: var(--atnv-text) !important;
    border-color: var(--atnv-border) !important;
  }
  #eventModal > div { background-color: var(--atnv-surface) !important; color: var(--atnv-text) !important; }

  /* Formulaires spécifiques */
  .section-title { background: #0f172a !important; color: #f8fafc !important; }
  .section-sub { background: #24344f !important; color: #bfdbfe !important; }
  .signature-container, .signature-preview-box img { background: var(--atnv-surface) !important; border-color: var(--atnv-border) !important; }
  canvas#sig-canvas { background-color: var(--atnv-input) !important; border-color: #64748b !important; }

  /* Styles inline : neutraliser les principaux fonds clairs sans toucher aux couleurs sémantiques */
  [style*="background:#fff"], [style*="background: #fff"],
  [style*="background:#ffffff"], [style*="background: #ffffff"],
  [style*="background:white"], [style*="background: white"],
  [style*="background-color:#fff"], [style*="background-color: #fff"],
  [style*="background-color:#ffffff"], [style*="background-color: #ffffff"],
  [style*="background-color:white"], [style*="background-color: white"] {
    background: var(--atnv-surface) !important;
    background-color: var(--atnv-surface) !important;
  }
  [style*="background:#f8fafc"], [style*="background: #f8fafc"],
  [style*="background-color:#f8fafc"], [style*="background-color: #f8fafc"],
  [style*="background:#f1f5f9"], [style*="background: #f1f5f9"],
  [style*="background-color:#f1f5f9"], [style*="background-color: #f1f5f9"],
  [style*="background:#e2e8f0"], [style*="background: #e2e8f0"],
  [style*="background-color:#e2e8f0"], [style*="background-color: #e2e8f0"] {
    background: var(--atnv-surface-2) !important;
    background-color: var(--atnv-surface-2) !important;
  }
  [style*="color:#0f172a"], [style*="color: #0f172a"],
  [style*="color:#1e293b"], [style*="color: #1e293b"],
  [style*="color:#334155"], [style*="color: #334155"],
  [style*="color:#475569"], [style*="color: #475569"] { color: var(--atnv-text) !important; }
  [style*="color:#64748b"], [style*="color: #64748b"] { color: var(--atnv-text-muted) !important; }

  /* Boutons : garder les couleurs d'action, mais les boutons neutres deviennent sombres */
  .btn-secondary, button.bg-gray-100, button.bg-gray-200,
  [class*="bg-gray-100"].btn, [class*="bg-gray-200"].btn {
    background-color: var(--atnv-surface-2) !important;
    color: var(--atnv-text-strong) !important;
    border-color: var(--atnv-border) !important;
  }
  .btn-primary, .bg-blue-600 { color: #fff !important; }

  /* Sidebar */
  .sidebar { background-color: #020617 !important; color: var(--atnv-text) !important; }
  .sidebar-header, .sidebar-user { background-color: #020617 !important; border-color: var(--atnv-border) !important; }
  .sidebar-nav a { color: #cbd5e1 !important; }
  .sidebar-nav a:hover { background-color: #1e293b !important; color: #fff !important; }
  .menu-toggle { background-color: #020617 !important; color: #fff !important; border-color: var(--atnv-border) !important; }

  /* Images / logos : ne pas inverser automatiquement */
  img { background-color: transparent !important; }
}


/* =====================================================================
   ATNV DARK MODE V5 — CONTRASTE COMPLET
   Visuel uniquement. Aucun comportement PHP/SQL/JS n'est modifié.
   Cette feuille est volontairement chargée EN DERNIER.
   ===================================================================== */
@media (prefers-color-scheme: dark) {
  :root {
    --atnv-bg: #0b1220 !important;
    --atnv-surface: #172033 !important;
    --atnv-surface-2: #1f2b40 !important;
    --atnv-input: #0f172a !important;
    --atnv-border: #475569 !important;
    --atnv-border-soft: #334155 !important;
    --atnv-text: #f1f5f9 !important;
    --atnv-text-strong: #ffffff !important;
    --atnv-text-muted: #cbd5e1 !important;
  }

  html, body, #app {
    background: #0b1220 !important;
    color: #f1f5f9 !important;
  }

  /* -------------------- Conteneurs / cartes -------------------- */
  .bg-white, [class~="bg-white"], [class*="bg-white/"] {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
  }
  .bg-gray-50, .bg-gray-100, .bg-slate-50, .bg-slate-100,
  [class~="bg-gray-50"], [class~="bg-gray-100"],
  [class~="bg-slate-50"], [class~="bg-slate-100"],
  [class*="bg-gray-50/"], [class*="bg-gray-100/"] {
    background-color: #1f2b40 !important;
    color: #f1f5f9 !important;
  }
  .bg-gray-200, .bg-slate-200 {
    background-color: #334155 !important;
    color: #f8fafc !important;
  }

  /* -------------------- Texte Tailwind -------------------- */
  .text-gray-900, .text-gray-800, .text-gray-700, .text-gray-600,
  .text-slate-900, .text-slate-800, .text-slate-700, .text-slate-600,
  [class~="text-gray-900"], [class~="text-gray-800"],
  [class~="text-gray-700"], [class~="text-gray-600"],
  [class~="text-slate-900"], [class~="text-slate-800"],
  [class~="text-slate-700"], [class~="text-slate-600"] {
    color: #f1f5f9 !important;
  }
  .text-gray-500, .text-slate-500,
  [class~="text-gray-500"], [class~="text-slate-500"] {
    color: #cbd5e1 !important;
  }
  .text-gray-400, .text-slate-400,
  [class~="text-gray-400"], [class~="text-slate-400"] {
    color: #94a3b8 !important;
  }

  /* -------------------- Bordures -------------------- */
  .border-gray-100, .border-gray-200, .border-gray-300,
  .border-slate-100, .border-slate-200, .border-slate-300,
  [class~="border-gray-100"], [class~="border-gray-200"],
  [class~="border-gray-300"], [class~="border-slate-100"],
  [class~="border-slate-200"], [class~="border-slate-300"] {
    border-color: #475569 !important;
  }

  /* -------------------- Champs -------------------- */
  input:not([type="checkbox"]):not([type="radio"]),
  select, textarea {
    background-color: #0f172a !important;
    color: #f8fafc !important;
    border-color: #475569 !important;
    -webkit-text-fill-color: #f8fafc !important;
  }
  input::placeholder, textarea::placeholder {
    color: #94a3b8 !important;
    opacity: 1 !important;
    -webkit-text-fill-color: #94a3b8 !important;
  }
  input[readonly], input:disabled, select:disabled, textarea:disabled {
    background-color: #334155 !important;
    color: #e2e8f0 !important;
    -webkit-text-fill-color: #e2e8f0 !important;
  }
  option {
    background: #0f172a !important;
    color: #f8fafc !important;
  }

  /* -------------------- Boutons NEUTRES -------------------- */
  button.bg-gray-50, button.bg-gray-100, button.bg-gray-200,
  a.bg-gray-50, a.bg-gray-100, a.bg-gray-200,
  .btn-quick {
    background: #334155 !important;
    color: #ffffff !important;
    border-color: #64748b !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  /* Boutons d'action : conserver leur intention, corriger le contraste */
  .bg-blue-600, .bg-blue-700, .btn-submit, .btn-primary,
  button[class~="bg-blue-600"], a[class~="bg-blue-600"] {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  .bg-red-50, button.bg-red-50, a.bg-red-50 {
    background-color: #450a0a !important;
    color: #fecaca !important;
    -webkit-text-fill-color: #fecaca !important;
    border-color: #7f1d1d !important;
  }
  .hover\:bg-red-100:hover { background-color: #7f1d1d !important; }
  .text-red-600, .text-red-700 { color: #fca5a5 !important; -webkit-text-fill-color: #fca5a5 !important; }

  /* Boutons d'annulation / secondaire */
  .bg-gray-100, .bg-gray-200 {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
  }

  /* -------------------- CALENDRIER -------------------- */
  .main-content, main {
    background-color: #0b1220 !important;
    color: #f1f5f9 !important;
  }

  /* conteneur calendrier et panneaux latéraux */
  main .rounded-2xl.bg-white,
  main .rounded-xl.bg-white,
  main .bg-white.p-4,
  main .bg-white.p-6 {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
    border-color: #475569 !important;
  }

  /* cases des jours */
  main .bg-white.p-3.rounded-xl,
  main [class*="bg-white"][class*="rounded-xl"] {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
    border-color: #475569 !important;
  }

  /* boutons précédent / suivant */
  main a.bg-white {
    background-color: #0f172a !important;
    color: #93c5fd !important;
    border-color: #475569 !important;
  }
  main a.bg-white:hover { background-color: #1e293b !important; }

  /* numéro du jour */
  main .text-gray-600.bg-gray-100,
  main [class*="text-gray-600"][class*="bg-gray-100"] {
    background-color: #334155 !important;
    color: #f8fafc !important;
  }

  /* événements dans les jours */
  main [class*="bg-gray-50/80"],
  main [class*="hover:bg-gray-100"] {
    background-color: #22304a !important;
    color: #f8fafc !important;
    border-color: #475569 !important;
  }

  /* formulaires calendrier */
  main select.bg-gray-50,
  main input.bg-gray-50,
  main textarea.bg-gray-50 {
    background-color: #0f172a !important;
    color: #f8fafc !important;
    border-color: #475569 !important;
  }

  /* modale calendrier */
  #eventModal {
    background-color: rgba(0,0,0,.72) !important;
  }
  #eventModal > div {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
    border: 1px solid #334155 !important;
  }
  #eventModal label { color: #cbd5e1 !important; }
  #eventModal .bg-gray-100,
  #eventModal button.bg-gray-100 {
    background-color: #334155 !important;
    color: #ffffff !important;
  }

  /* -------------------- ENTRETIEN -------------------- */
  .container, .container-narrow,
  .form-container, .form-card {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
  }

  .section-title {
    background-color: #0f172a !important;
    color: #ffffff !important;
  }
  .section-sub {
    background-color: #263b5c !important;
    color: #bfdbfe !important;
  }
  .checkbox-group label,
  .form-group label {
    color: #e2e8f0 !important;
  }

  /* boutons "Tout cocher / Tout décocher" */
  .quick-action-bar .btn-quick {
    background-color: #334155 !important;
    color: #ffffff !important;
    border-color: #64748b !important;
  }

  /* signature */
  .signature-container {
    background-color: #172033 !important;
    border-color: #64748b !important;
  }
  canvas#sigCanvas, canvas#sig-canvas {
    background-color: #0f172a !important;
    border-color: #64748b !important;
  }

  /* -------------------- INVENTAIRE / CANULES -------------------- */
  .mat-table, .mat-table tbody {
    background: transparent !important;
  }
  .mat-table tr.item-row {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
    border-color: #475569 !important;
  }
  .mat-table td {
    background-color: transparent !important;
    color: #e2e8f0 !important;
    border-color: #334155 !important;
  }
  .mat-table td[data-label="Désignation"] {
    background-color: #22304a !important;
    color: #f8fafc !important;
    border-color: #475569 !important;
  }
  .mat-table td::before { color: #cbd5e1 !important; }

  /* Cartes canules / inventaire génériques */
  .card, .vehicle-card, .inventory-card, .canule-card,
  .item-card, .calendar-card, .day-card {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
    border-color: #475569 !important;
  }

  /* -------------------- STYLES INLINE DE COULEURS CLAIRES -------------------- */
  [style*="background:#fff"], [style*="background: #fff"],
  [style*="background:#ffffff"], [style*="background: #ffffff"],
  [style*="background:white"], [style*="background: white"],
  [style*="background-color:#fff"], [style*="background-color: #fff"],
  [style*="background-color:#ffffff"], [style*="background-color: #ffffff"],
  [style*="background-color:white"], [style*="background-color: white"] {
    background-color: #172033 !important;
  }
  [style*="background:#f8fafc"], [style*="background: #f8fafc"],
  [style*="background-color:#f8fafc"], [style*="background-color: #f8fafc"],
  [style*="background:#f1f5f9"], [style*="background: #f1f5f9"],
  [style*="background-color:#f1f5f9"], [style*="background-color: #f1f5f9"],
  [style*="background:#e2e8f0"], [style*="background: #e2e8f0"],
  [style*="background-color:#e2e8f0"], [style*="background-color: #e2e8f0"] {
    background-color: #334155 !important;
  }

  [style*="color:#0f172a"], [style*="color: #0f172a"],
  [style*="color:#1e293b"], [style*="color: #1e293b"],
  [style*="color:#334155"], [style*="color: #334155"],
  [style*="color:#475569"], [style*="color: #475569"] {
    color: #f1f5f9 !important;
    -webkit-text-fill-color: #f1f5f9 !important;
  }

  /* -------------------- ÉTATS / ACCESSIBILITÉ -------------------- */
  :disabled { opacity: .95 !important; }
  :focus-visible {
    outline: 2px solid #60a5fa !important;
    outline-offset: 2px;
  }
}

/* ========================================================================
   ATNV V6 — TABLEAUX : suppression définitive des surfaces blanches
   Correction visuelle uniquement.
   ======================================================================== */
@media (prefers-color-scheme: dark) {
  .table-wrapper,
  .table-responsive-cards,
  table,
  #fleetTable,
  #fleetTable thead,
  #fleetTable tbody {
    background-color: #172033 !important;
    background: #172033 !important;
    color: #f1f5f9 !important;
  }

  #fleetTable thead,
  #fleetTable thead tr,
  #fleetTable thead th,
  table thead,
  table thead tr,
  table thead th {
    background-color: #172033 !important;
    background: #172033 !important;
    color: #f8fafc !important;
    border-color: #475569 !important;
  }

  #fleetTable tbody tr,
  #fleetTable tbody td,
  table tbody tr,
  table tbody td {
    background-color: #172033 !important;
    color: #f1f5f9 !important;
  }

  /* Évite qu'une règle de page ou de framework réintroduise du blanc. */
  .table-wrapper[style*="background"],
  table[style*="background"],
  thead[style*="background"],
  tbody[style*="background"] {
    background-color: #172033 !important;
  }
}
