/* ============================================================
   dark_mode_patches.css — Corrections centralisées du mode sombre
   Chargé EN TOUT DERNIER, après premium_overrides.css et les CSS
   de page (extra_css). Cible les couleurs hardcodées (#fff, #f7f9fc,
   #f8fafc, #fef2f2…) dans les CSS qui ne définissent pas leurs
   propres règles dark mode, afin d'assurer :
   - Fonds sombres (au lieu de blancs)
   - Texte lisible (contraste AA)
   - Tokens CSS partout où possible pour rester maintenable

   S'active via :
   - @media (prefers-color-scheme: dark)   ← préférence système
   - .dark-mode / .theme-dark / html[data-theme="dark"]  ← toggle manuel

   Les règles respectent l'ordre de cascade et utilisent !important
   UNIQUEMENT quand la règle ciblée elle-même utilise !important.
   ============================================================ */

/* ---------- Règles globales (s'appliquent aux deux thèmes) ---------- */
/* Bouton WhatsApp : couleur de marque officielle, texte blanc — contraste AAA */
.whatsapp-btn {
  background: #25D366 !important;
  color: #ffffff !important;
}
.whatsapp-btn:hover {
  background: #1ebe5d !important;
  color: #ffffff !important;
}

/* ---------- Préférence système ---------- */
@media (prefers-color-scheme: dark) {

  /* ===== comptabilite_premium.css ===== */
  .cp-card,
  .cp-panel,
  .cp-table-wrap,
  .cp-table,
  .cp-section,
  .cp-header,
  .cp-toolbar,
  .cp-filters,
  .cp-form,
  .cp-tabs,
  .cp-chip,
  .cp-kpi,
  .cp-badge {
    background: var(--cp-card, var(--card));
    color: var(--cp-fg, var(--fg));
  }
  .cp-table thead th,
  table.styled-table thead th,
  .enterprise-table thead th {
    background: rgba(96, 165, 250, 0.12) !important;
    color: var(--premium-primary-500, #60a5fa) !important;
  }
  .enterprise-table tbody tr:hover td,
  table.styled-table tbody tr:hover td {
    background: rgba(96, 165, 250, 0.08) !important;
  }
  .cp-bg-soft,
  .cp-input-soft,
  input:disabled, select:disabled, textarea:disabled {
    background: var(--premium-bg, #0b1220) !important;
    color: var(--cp-muted, var(--muted)) !important;
  }
  .btn-muted,
  .cp-btn--muted { background: transparent; color: var(--premium-primary-500); border-color: rgba(96, 165, 250, 0.35); }
  .btn-muted:hover { background: var(--premium-primary-500); color: #0b1220; }

  /* Badges financiers (fin-badge-*) : teintes sombres cohérentes */
  .fin-badge--draft    { background: rgba(251, 191, 36, 0.12); color: #fbbf24; border-color: rgba(251, 191, 36, 0.32); }
  .fin-badge--void     { background: rgba(248, 113, 113, 0.12); color: #f87171; border-color: rgba(248, 113, 113, 0.32); }
  .fin-badge--sent     { background: rgba(167, 139, 250, 0.14); color: #a78bfa; border-color: rgba(167, 139, 250, 0.32); }
  .fin-badge--closed   { background: rgba(148, 163, 184, 0.14); color: #cbd5e1; border-color: rgba(148, 163, 184, 0.32); }
  .fin-badge--pending  { background: rgba(251, 191, 36, 0.12); color: #fbbf24; border-color: rgba(251, 191, 36, 0.32); }

  /* ===== messagerie_v2.css (aucun token, tout hardcodé) ===== */
  .msg-shell, .msg-panel, .msg-list, .msg-thread, .msg-item,
  .msg-sidebar, .msg-header, .msg-compose, .msg-empty,
  .msg-content, .msg-toolbar, .msg-meta, .msg-attach,
  .msg-reply, .msg-quote, .msg-search, .msg-filter {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }
  .msg-item:hover, .msg-thread-item:hover {
    background: rgba(96, 165, 250, 0.08);
  }
  .msg-item.is-unread, .msg-thread-item.is-unread {
    background: rgba(96, 165, 250, 0.06);
  }
  .msg-item.is-selected, .msg-thread-item.is-selected {
    background: rgba(96, 165, 250, 0.15);
  }
  .msg-badge--primary { background: rgba(96, 165, 250, 0.15); color: #60a5fa; }
  .msg-badge--warn    { background: rgba(251, 191, 36, 0.15); color: #fbbf24; }
  .msg-badge--danger  { background: rgba(248, 113, 113, 0.15); color: #f87171; }
  .msg-badge--success { background: rgba(52, 211, 153, 0.15); color: #34d399; }

  /* ===== agences_list_premium.css (.ag-*) ===== */
  .ag-card, .ag-panel, .ag-table, .ag-toolbar, .ag-row, .ag-cell,
  .ag-header, .ag-search, .ag-actions, .ag-kpi {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }
  .ag-row:hover, .ag-table tbody tr:hover {
    background: rgba(96, 165, 250, 0.08);
  }

  /* ===== invoice_generate_premium.css (.inv-*) ===== */
  .inv-card, .inv-panel, .inv-row, .inv-header, .inv-summary,
  .inv-total, .inv-item, .inv-line, .inv-meta, .inv-preview,
  .inv-actions, .inv-toolbar, .inv-filters {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }
  .inv-line:hover { background: rgba(96, 165, 250, 0.06); }

  /* ===== home_dashboard_enterprise.css ===== */
  .home-dashboard, .home-dashboard__tile, .home-dashboard__kpi,
  .home-dashboard__card, .home-dashboard__panel {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }

  /* ===== global_search.css (overlay Ctrl+K) ===== */
  #global-search-overlay {
    background: rgba(0, 0, 0, 0.65);
  }
  .global-search-container,
  #global-search-results,
  .global-search-header,
  .global-search-footer {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }
  #global-search-input {
    background: transparent;
    color: var(--fg, #e5e7eb);
  }
  #global-search-input::placeholder { color: var(--muted, #94a3b8); }
  .global-search-result:hover,
  .global-search-result[aria-selected="true"] {
    background: rgba(96, 165, 250, 0.12);
  }
  .global-search-footer kbd {
    background: var(--premium-bg, #0b1220);
    border-color: var(--border-strong, #2b3442);
    color: var(--muted, #94a3b8);
  }

  /* ===== app_shell.css ===== */
  .app-container, .app-layout, .app-main, .page-content, .page-container,
  .internal-shell {
    background: var(--premium-bg, #0b1220);
    color: var(--fg, #e5e7eb);
  }

  /* ===== articles_table_overrides.css : neutralise #fff hardcodés ===== */
  .app-layout .internal-shell table.articles-table {
    background: var(--card, #0f1623);
  }
  .app-layout .internal-shell table.articles-table tbody tr {
    background: var(--card, #0f1623);
  }
  .app-layout .internal-shell table.articles-table tbody tr:nth-child(even) {
    background: rgba(255, 255, 255, 0.02);
  }

  /* ===== Enterprise preview box (peut apparaître partout) ===== */
  .enterprise-preview,
  .enterprise-boxtext,
  .enterprise-feedback {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }
  .enterprise-feedback--success { background: rgba(52, 211, 153, 0.08); border-color: rgba(52, 211, 153, 0.35); color: #34d399; }
  .enterprise-feedback--warning { background: rgba(251, 191, 36, 0.08); border-color: rgba(251, 191, 36, 0.35); color: #fbbf24; }
  .enterprise-feedback--danger,
  .enterprise-feedback--error   { background: rgba(248, 113, 113, 0.08); border-color: rgba(248, 113, 113, 0.35); color: #f87171; }
  .enterprise-feedback--info    { background: rgba(96, 165, 250, 0.08); border-color: rgba(96, 165, 250, 0.35); color: #60a5fa; }

  /* ===== Forms : contraste universel ===== */
  input[type="text"],
  input[type="email"],
  input[type="password"],
  input[type="number"],
  input[type="date"],
  input[type="month"],
  input[type="tel"],
  input[type="search"],
  select,
  textarea {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }
  input::placeholder, textarea::placeholder { color: var(--muted, #94a3b8); }

  /* ===== Links globaux ===== */
  a:not([class]) { color: var(--premium-primary-500, #60a5fa); }
  a:not([class]):hover { color: var(--premium-primary-600, #93c5fd); }

  /* ===== <code> blocks ===== */
  code {
    background: rgba(148, 163, 184, 0.12);
    color: #e5e7eb;
  }

  /* ===== Breadcrumb ===== */
  .enterprise-breadcrumb { color: var(--muted, #94a3b8); }

  /* ===== Notifications enterprise-feedback-stack ===== */
  .enterprise-feedback-stack .enterprise-feedback {
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.4);
  }

  /* ===== comptabilite_ux_v2.css : .fin-badge--* (color-mix avec --rh-white)
     Le mix donne des teintes quasi invisibles sur fond sombre → override rgba() explicite. */
  .internal-shell .fin-badge--draft    { background: rgba(148, 163, 184, 0.15) !important; color: #cbd5e1 !important; border-color: rgba(148, 163, 184, 0.35) !important; }
  .internal-shell .fin-badge--pending  { background: rgba(251, 191, 36, 0.15) !important; color: #fbbf24 !important; border-color: rgba(251, 191, 36, 0.35) !important; }
  .internal-shell .fin-badge--posted   { background: rgba(52, 211, 153, 0.15) !important; color: #34d399 !important; border-color: rgba(52, 211, 153, 0.35) !important; }
  .internal-shell .fin-badge--paid     { background: rgba(96, 165, 250, 0.15) !important; color: #93c5fd !important; border-color: rgba(96, 165, 250, 0.35) !important; }
  .internal-shell .fin-badge--sent     { background: rgba(167, 139, 250, 0.15) !important; color: #c4b5fd !important; border-color: rgba(167, 139, 250, 0.35) !important; }
  .internal-shell .fin-badge--locked   { background: rgba(226, 232, 240, 0.08) !important; color: #e2e8f0 !important; border-color: rgba(226, 232, 240, 0.22) !important; }
  .internal-shell .fin-badge--archived { background: rgba(148, 163, 184, 0.12) !important; color: #94a3b8 !important; border-color: rgba(148, 163, 184, 0.28) !important; }
  .internal-shell .fin-badge--void     { background: rgba(248, 113, 113, 0.15) !important; color: #f87171 !important; border-color: rgba(248, 113, 113, 0.35) !important; }

  /* ===== rh_enterprise_xxxl.css : .rh-badge--* (même problème color-mix) */
  .internal-shell .rh-badge--dt      { background: #334155 !important; color: #e5e7eb !important; border-color: rgba(226, 232, 240, 0.22) !important; }
  .internal-shell .rh-badge--muted   { background: rgba(96, 165, 250, 0.12) !important; color: #93c5fd !important; border-color: rgba(96, 165, 250, 0.28) !important; }
  .internal-shell .rh-badge--ok      { background: rgba(52, 211, 153, 0.15) !important; color: #34d399 !important; border-color: rgba(52, 211, 153, 0.35) !important; }
  .internal-shell .rh-badge--late    { background: rgba(251, 191, 36, 0.15) !important; color: #fbbf24 !important; border-color: rgba(251, 191, 36, 0.35) !important; }
  .internal-shell .rh-badge--absent  { background: rgba(248, 113, 113, 0.15) !important; color: #f87171 !important; border-color: rgba(248, 113, 113, 0.35) !important; }
  .internal-shell .rh-badge--system  { background: rgba(96, 165, 250, 0.12) !important; color: #60a5fa !important; border-color: rgba(96, 165, 250, 0.28) !important; }

  /* ===== form_enterprise_global.css : enterprise-feedback variants (color-mix) */
  .internal-shell .enterprise-feedback--success {
    background: rgba(52, 211, 153, 0.08) !important;
    color: #34d399 !important;
    border-color: rgba(52, 211, 153, 0.35) !important;
  }
  .internal-shell .enterprise-feedback--error {
    background: rgba(248, 113, 113, 0.08) !important;
    color: #f87171 !important;
    border-color: rgba(248, 113, 113, 0.35) !important;
  }
  .internal-shell .enterprise-feedback--warning {
    background: rgba(251, 191, 36, 0.08) !important;
    color: #fbbf24 !important;
    border-color: rgba(251, 191, 36, 0.35) !important;
  }
  .internal-shell .enterprise-feedback--info {
    background: rgba(96, 165, 250, 0.08) !important;
    color: #60a5fa !important;
    border-color: rgba(96, 165, 250, 0.35) !important;
  }

  /* ===== utilities_system.css : .u-avatar-initials fond clair #eef2ff */
  .u-avatar-initials {
    background: var(--premium-bg, #0b1220) !important;
    color: var(--premium-primary-500, #60a5fa) !important;
    border: 1px solid var(--premium-border, #2b3442);
  }
  .u-text-accent { color: var(--premium-primary-500, #60a5fa); }
  .u-text-danger { color: #f87171; }

  /* ===== rh_enterprise_xxxl.css : autres blocs warn/error (ligne 506+) */
  .internal-shell .rh-warn-block {
    background: rgba(251, 191, 36, 0.1) !important;
    color: #fbbf24 !important;
  }
  .internal-shell .rh-error-block {
    background: rgba(248, 113, 113, 0.1) !important;
    color: #f87171 !important;
  }

  /* ===== Pages publiques (.about-*, .team-*, .gallery-*, .executive-*) ===== */
  /* Tous les backgrounds sont en dur #ffffff, les textes en #0f172a/#334155.
     On inverse vers tokens premium. */
  .about-page { color: var(--fg, #e5e7eb); }

  .about-section {
    background: var(--card, #0f1623) !important;
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4) !important;
    border: 1px solid var(--border-strong, #2b3442);
  }
  .about-section__title {
    color: var(--premium-primary-500, #60a5fa) !important;
  }
  .about-empty {
    background: var(--premium-bg, #0b1220) !important;
    border-color: var(--border-strong, #2b3442) !important;
    color: var(--muted, #cbd5e1) !important;
  }

  .about-hero {
    background: var(--card, #0f1623) !important;
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4) !important;
    border: 1px solid var(--border-strong, #2b3442);
  }
  .about-hero__overlay {
    background: rgba(0, 0, 0, 0.72);
    color: #f8fafc;
  }
  .about-hero__title { color: var(--fg, #e5e7eb) !important; }
  .about-hero__subtitle { color: var(--muted, #cbd5e1) !important; }

  .about-card {
    background: linear-gradient(135deg, var(--card, #0f1623) 65%, rgba(96, 165, 250, 0.08)) !important;
    border-color: var(--border-strong, #2b3442) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
  }
  .about-card__title { color: var(--fg, #e5e7eb) !important; }
  .about-card__desc { color: var(--muted, #cbd5e1) !important; }
  .about-card__icon svg { fill: var(--premium-primary-500, #60a5fa); }

  .team-card,
  .gallery-card {
    background: var(--card, #0f1623) !important;
    border-color: var(--border-strong, #2b3442) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35) !important;
  }
  .team-card__name { color: var(--fg, #e5e7eb) !important; }
  .team-card__role { color: var(--premium-primary-500, #60a5fa) !important; }
  .team-card__desc { color: var(--muted, #cbd5e1) !important; }
  .gallery-card__cap { color: var(--muted, #cbd5e1) !important; }
  .gallery-card__cat { color: var(--premium-primary-500, #60a5fa) !important; }

  /* Direction générale (executive-card) : hérite du fond .about-section */
  .about-section--executive .executive-card__headline { color: var(--fg, #e5e7eb); }
  .about-section--executive .executive-card__desc { color: var(--muted, #cbd5e1); }

  /* Hero gradient box (identité) : ajuster le dégradé pour rester lisible */
  .page-container .hero-gradient-text {
    background: linear-gradient(
      90deg,
      color-mix(in srgb, var(--primary-600) 65%, var(--card, #0f1623)) 0%,
      color-mix(in srgb, #64748b 55%, var(--card, #0f1623)) 52%,
      var(--card, #0f1623) 100%
    ) !important;
    color: var(--fg, #e5e7eb) !important;
    border-color: var(--border-strong, #2b3442) !important;
  }

  /* ===== Page publique /services/ ===== */
  .services-page { color: var(--fg, #e5e7eb); }

  .services-hero,
  .services-section {
    background: var(--card, #0f1623) !important;
    border-color: var(--border-strong, #2b3442) !important;
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4) !important;
  }
  .services-hero__content {
    background: linear-gradient(135deg, var(--card, #0f1623) 60%, rgba(96, 165, 250, 0.08)) !important;
  }
  .services-hero__title { color: var(--fg, #e5e7eb) !important; }
  .services-hero__subtitle { color: var(--muted, #cbd5e1) !important; }

  .services-section__title { color: var(--premium-primary-500, #60a5fa) !important; }

  .service-card {
    background: linear-gradient(135deg, var(--card, #0f1623) 65%, rgba(96, 165, 250, 0.08)) !important;
    border-color: var(--border-strong, #2b3442) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3) !important;
  }
  .service-card:hover {
    box-shadow: 0 10px 24px rgba(96, 165, 250, 0.18) !important;
  }
  .service-card__title { color: var(--fg, #e5e7eb) !important; }
  .service-card__desc { color: var(--muted, #cbd5e1) !important; }
  .service-card__icon svg { fill: var(--premium-primary-500, #60a5fa); }

  .services-contact__row,
  .hours-row {
    background: var(--premium-bg, #0b1220) !important;
    border-color: var(--border-strong, #2b3442) !important;
  }
  .services-contact__label,
  .hours-day { color: var(--fg, #e5e7eb) !important; }
  .services-contact__value,
  .hours-hours { color: var(--muted, #cbd5e1) !important; }
  .services-contact__value a { color: var(--premium-primary-500, #60a5fa) !important; }
  .services-contact__sep { color: var(--muted, #94a3b8) !important; }

  .services-map {
    border-color: var(--border-strong, #2b3442) !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35) !important;
  }

  .services-empty {
    background: var(--premium-bg, #0b1220) !important;
    color: var(--muted, #cbd5e1) !important;
  }

  .services-cta-btn {
    background: var(--premium-primary-500, #60a5fa) !important;
    color: #0b1220 !important;
  }
  .services-cta-btn:hover {
    background: var(--premium-primary-600, #93c5fd) !important;
  }

  .whatsapp-btn {
    background: #25D366 !important;
    color: #ffffff !important;
  }
  .whatsapp-btn:hover { background: #1ebe5d !important; color: #ffffff !important; }
}

/* ---------- Mode manuel (.dark-mode / .theme-dark / [data-theme=dark]) ---------- */
:is(.theme-dark, body.theme-dark, .prefers-dark, body.prefers-dark, .dark-mode, body.dark-mode, html[data-theme="dark"]) {

  /* Reprise des règles principales via une classe racine.
     On applique tout le bloc @media en miroir pour les utilisateurs qui
     forcent manuellement le mode sombre sans changer la préférence OS. */

  .cp-card, .cp-panel, .cp-table-wrap, .cp-table, .cp-section, .cp-header,
  .cp-toolbar, .cp-filters, .cp-form, .cp-kpi,
  .msg-shell, .msg-panel, .msg-list, .msg-thread, .msg-item,
  .msg-sidebar, .msg-header, .msg-compose, .msg-content, .msg-toolbar,
  .ag-card, .ag-panel, .ag-table, .ag-toolbar,
  .inv-card, .inv-panel, .inv-row, .inv-header, .inv-summary, .inv-total,
  .home-dashboard, .home-dashboard__tile, .home-dashboard__kpi, .home-dashboard__card,
  .enterprise-preview, .enterprise-boxtext, .enterprise-feedback {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }

  .cp-table thead th,
  table.styled-table thead th,
  .enterprise-table thead th {
    background: rgba(96, 165, 250, 0.12) !important;
    color: var(--premium-primary-500, #60a5fa) !important;
  }

  #global-search-overlay { background: rgba(0, 0, 0, 0.65); }
  .global-search-container, #global-search-results,
  .global-search-header, .global-search-footer {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }
  #global-search-input { background: transparent; color: var(--fg, #e5e7eb); }
  .app-container, .app-main, .internal-shell {
    background: var(--premium-bg, #0b1220);
    color: var(--fg, #e5e7eb);
  }

  input[type="text"], input[type="email"], input[type="password"],
  input[type="number"], input[type="date"], input[type="month"],
  input[type="tel"], input[type="search"], select, textarea {
    background: var(--card, #0f1623);
    color: var(--fg, #e5e7eb);
    border-color: var(--border-strong, #2b3442);
  }

  .btn-muted { background: transparent; color: var(--premium-primary-500); border-color: rgba(96, 165, 250, 0.35); }
  .btn-muted:hover { background: var(--premium-primary-500); color: #0b1220; }

  .enterprise-feedback--success { background: rgba(52, 211, 153, 0.08); border-color: rgba(52, 211, 153, 0.35); color: #34d399; }
  .enterprise-feedback--warning { background: rgba(251, 191, 36, 0.08); border-color: rgba(251, 191, 36, 0.35); color: #fbbf24; }
  .enterprise-feedback--danger,
  .enterprise-feedback--error   { background: rgba(248, 113, 113, 0.08); border-color: rgba(248, 113, 113, 0.35); color: #f87171; }
  .enterprise-feedback--info    { background: rgba(96, 165, 250, 0.08); border-color: rgba(96, 165, 250, 0.35); color: #60a5fa; }

  /* Badges fin-* / rh-* en mode sombre manuel */
  .internal-shell .fin-badge--draft    { background: rgba(148, 163, 184, 0.15) !important; color: #cbd5e1 !important; border-color: rgba(148, 163, 184, 0.35) !important; }
  .internal-shell .fin-badge--pending,
  .internal-shell .rh-badge--late      { background: rgba(251, 191, 36, 0.15) !important; color: #fbbf24 !important; border-color: rgba(251, 191, 36, 0.35) !important; }
  .internal-shell .fin-badge--posted,
  .internal-shell .rh-badge--ok        { background: rgba(52, 211, 153, 0.15) !important; color: #34d399 !important; border-color: rgba(52, 211, 153, 0.35) !important; }
  .internal-shell .fin-badge--paid     { background: rgba(96, 165, 250, 0.15) !important; color: #93c5fd !important; border-color: rgba(96, 165, 250, 0.35) !important; }
  .internal-shell .fin-badge--sent     { background: rgba(167, 139, 250, 0.15) !important; color: #c4b5fd !important; border-color: rgba(167, 139, 250, 0.35) !important; }
  .internal-shell .fin-badge--void,
  .internal-shell .rh-badge--absent    { background: rgba(248, 113, 113, 0.15) !important; color: #f87171 !important; border-color: rgba(248, 113, 113, 0.35) !important; }
  .internal-shell .rh-badge--dt        { background: #334155 !important; color: #e5e7eb !important; }
  .internal-shell .rh-badge--muted,
  .internal-shell .rh-badge--system    { background: rgba(96, 165, 250, 0.12) !important; color: #93c5fd !important; border-color: rgba(96, 165, 250, 0.28) !important; }

  .u-avatar-initials {
    background: var(--premium-bg, #0b1220) !important;
    color: var(--premium-primary-500, #60a5fa) !important;
  }
  .u-text-accent { color: var(--premium-primary-500, #60a5fa); }
  .u-text-danger { color: #f87171; }

  /* Pages publiques en mode sombre manuel */
  .about-page { color: var(--fg, #e5e7eb); }
  .about-section,
  .about-hero,
  .team-card,
  .gallery-card {
    background: var(--card, #0f1623) !important;
    border-color: var(--border-strong, #2b3442) !important;
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4) !important;
  }
  .about-section__title { color: var(--premium-primary-500, #60a5fa) !important; }
  .about-hero__title,
  .about-card__title,
  .team-card__name { color: var(--fg, #e5e7eb) !important; }
  .about-hero__subtitle,
  .about-card__desc,
  .team-card__desc,
  .gallery-card__cap { color: var(--muted, #cbd5e1) !important; }
  .team-card__role, .gallery-card__cat { color: var(--premium-primary-500, #60a5fa) !important; }
  .about-card {
    background: linear-gradient(135deg, var(--card, #0f1623) 65%, rgba(96, 165, 250, 0.08)) !important;
    border-color: var(--border-strong, #2b3442) !important;
  }
  .about-section--executive .executive-card__headline { color: var(--fg, #e5e7eb); }
  .about-section--executive .executive-card__desc { color: var(--muted, #cbd5e1); }
  .page-container .hero-gradient-text {
    background: linear-gradient(
      90deg,
      color-mix(in srgb, var(--primary-600) 65%, var(--card, #0f1623)) 0%,
      color-mix(in srgb, #64748b 55%, var(--card, #0f1623)) 52%,
      var(--card, #0f1623) 100%
    ) !important;
    color: var(--fg, #e5e7eb) !important;
    border-color: var(--border-strong, #2b3442) !important;
  }

  /* Page publique /services/ en mode sombre manuel */
  .services-page { color: var(--fg, #e5e7eb); }
  .services-hero,
  .services-section,
  .service-card {
    background: var(--card, #0f1623) !important;
    border-color: var(--border-strong, #2b3442) !important;
    box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4) !important;
  }
  .services-hero__content,
  .service-card {
    background: linear-gradient(135deg, var(--card, #0f1623) 65%, rgba(96, 165, 250, 0.08)) !important;
  }
  .services-hero__title,
  .service-card__title { color: var(--fg, #e5e7eb) !important; }
  .services-hero__subtitle,
  .service-card__desc { color: var(--muted, #cbd5e1) !important; }
  .services-section__title { color: var(--premium-primary-500, #60a5fa) !important; }
  .service-card__icon svg { fill: var(--premium-primary-500, #60a5fa); }
  .services-contact__row,
  .hours-row {
    background: var(--premium-bg, #0b1220) !important;
    border-color: var(--border-strong, #2b3442) !important;
  }
  .services-contact__label,
  .hours-day { color: var(--fg, #e5e7eb) !important; }
  .services-contact__value,
  .hours-hours { color: var(--muted, #cbd5e1) !important; }
  .services-contact__value a { color: var(--premium-primary-500, #60a5fa) !important; }
  .services-cta-btn {
    background: var(--premium-primary-500, #60a5fa) !important;
    color: #0b1220 !important;
  }
  .whatsapp-btn { background: #25D366 !important; color: #ffffff !important; }
}
