/* ═══════════════════════════════════════════════════════════
   Thème « nuit » du registre (27/09/2026)
   Activé par html[data-theme="nuit"] (theme.js), par défaut.
   Palette : fond bleu nuit, une seule couleur d'interaction (indigo),
   couleurs d'état réservées aux statuts (rouge échu, ambre à obtenir, vert à jour).
   ═══════════════════════════════════════════════════════════ */

html[data-theme="nuit"] {
  color-scheme: dark;
  --bg: #0a0f1d;
  --surface: #121a2d;
  --surface-2: #172036;
  --fg: #e7ebf5;
  --muted: #98a2bb;
  --border: rgba(255, 255, 255, 0.09);
  --accent: #8b9cff;
  --accent-2: #a5b2ff;
  --accent-soft: rgba(139, 156, 255, 0.14);
  --navy: #eef1f9;
  --red: #ff6b6b;
  --orange: #f2a73b;
  --yellow: #e6c350;
  --green: #3fd79a;
  --shadow: 0 24px 60px -30px rgba(0, 0, 0, 0.7);
  background: var(--bg);
}

html[data-theme="nuit"] body {
  background:
    radial-gradient(1200px 700px at 12% -10%, rgba(64, 86, 170, 0.22), transparent 60%),
    radial-gradient(900px 600px at 100% 0%, rgba(28, 62, 120, 0.18), transparent 55%),
    var(--bg);
  background-attachment: fixed;
}

/* Barre latérale et barre mobile */
html[data-theme="nuit"] .sidebar {
  background: linear-gradient(180deg, #111a33 0%, #0c1328 100%);
  border-inline-end: 1px solid var(--border);
}
html[data-theme="nuit"] .mobile-bar {
  background: rgba(12, 18, 36, 0.9);
  border-block-end: 1px solid var(--border);
  box-shadow: 0 1px 16px -2px rgba(0, 0, 0, 0.5);
}
html[data-theme="nuit"] .nav-item:hover { background: rgba(255, 255, 255, 0.05); border-color: var(--border); }
html[data-theme="nuit"] .nav-item.active { color: #fff; background: rgba(139, 156, 255, 0.16); border-color: rgba(139, 156, 255, 0.35); }
html[data-theme="nuit"] .sidebar-footer { border-color: var(--border); }
html[data-theme="nuit"] .sidebar-bottom { background: linear-gradient(to bottom, rgba(12, 19, 40, 0), #0c1328 14px); }
html[data-theme="nuit"] .sidebar-partner { background: rgba(255, 255, 255, 0.04); border-color: var(--border); color: var(--fg); }
/* Bouton PDF : mis en avant par un halo indigo légèrement fluorescent (le rouge reste réservé aux retards) */
html[data-theme="nuit"] .sidebar-export {
  padding: 14px 14px;
  color: #fff;
  background: linear-gradient(135deg, #6d7cff 0%, #8b5cf6 100%);
  border: 1px solid rgba(190, 200, 255, 0.55);
  box-shadow: 0 0 0 1px rgba(139, 156, 255, 0.25), 0 0 18px rgba(124, 140, 255, 0.55), 0 0 42px -6px rgba(139, 92, 246, 0.55);
  animation: pdf-lueur 3.2s ease-in-out infinite;
}
html[data-theme="nuit"] .sidebar-export b { font-size: 14px; }
html[data-theme="nuit"] .sidebar-export small { color: rgba(255, 255, 255, 0.82); }
html[data-theme="nuit"] .sidebar-export:hover { transform: translateY(-1px); box-shadow: 0 0 0 1px rgba(139, 156, 255, 0.4), 0 0 26px rgba(124, 140, 255, 0.75), 0 0 56px -6px rgba(139, 92, 246, 0.7); }
@keyframes pdf-lueur {
  0%, 100% { box-shadow: 0 0 0 1px rgba(139, 156, 255, 0.25), 0 0 16px rgba(124, 140, 255, 0.45), 0 0 38px -6px rgba(139, 92, 246, 0.45); }
  50%      { box-shadow: 0 0 0 1px rgba(139, 156, 255, 0.35), 0 0 24px rgba(124, 140, 255, 0.7), 0 0 52px -6px rgba(139, 92, 246, 0.65); }
}
@media (prefers-reduced-motion: reduce) { html[data-theme="nuit"] .sidebar-export { animation: none; } }

/* Cartes et surfaces */
html[data-theme="nuit"] .card {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.015)), var(--surface);
  border: 1px solid var(--border);
  box-shadow: var(--shadow);
}
html[data-theme="nuit"] .site-banner { background: rgba(255, 255, 255, 0.04); border-color: var(--border); color: var(--fg); }
html[data-theme="nuit"] .todo-group { background: var(--surface); border-color: var(--border); }
html[data-theme="nuit"] .todo-group.navy { border-top-color: var(--accent); }

/* Tableaux */
html[data-theme="nuit"] table { background: transparent; }
html[data-theme="nuit"] td { border-block-end-color: var(--border); }
html[data-theme="nuit"] .table-wrap { border-color: var(--border); }
html[data-theme="nuit"] tr.pnl-cliquable:hover td { background: rgba(255, 255, 255, 0.035); }

/* Boutons, filtres, champs */
html[data-theme="nuit"] .filterbar button,
html[data-theme="nuit"] .ghost-button,
html[data-theme="nuit"] .download,
html[data-theme="nuit"] .suivi-filtres button { background: rgba(255, 255, 255, 0.04); border-color: rgba(255, 255, 255, 0.12); color: var(--fg); }
html[data-theme="nuit"] .filterbar button.active,
html[data-theme="nuit"] .suivi-filtres button.active { background: var(--accent); border-color: var(--accent); color: #0a0f1d; }
html[data-theme="nuit"] input,
html[data-theme="nuit"] select,
html[data-theme="nuit"] .search { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); color: var(--fg); }

/* Pastilles d'état : fond teinté, texte clair */
html[data-theme="nuit"] .chip { border-color: currentColor; }
html[data-theme="nuit"] .chip.red { background: rgba(255, 107, 107, 0.12); box-shadow: none; }
html[data-theme="nuit"] .chip.orange { background: rgba(242, 167, 59, 0.12); }
html[data-theme="nuit"] .chip.yellow { background: rgba(230, 195, 80, 0.12); }
html[data-theme="nuit"] .chip.green { background: rgba(63, 215, 154, 0.12); }
html[data-theme="nuit"] .chip.blue,
html[data-theme="nuit"] .chip.purple { color: var(--accent); background: rgba(139, 156, 255, 0.12); }
html[data-theme="nuit"] .chip.muted,
html[data-theme="nuit"] .chip.subtle { color: var(--muted); background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.14); }

/* Tableau de bord */
html[data-theme="nuit"] .todo-banner { --todo-bg: linear-gradient(118deg, rgba(180, 83, 9, 0.62), rgba(92, 45, 12, 0.55)); border: 1px solid rgba(242, 167, 59, 0.35); box-shadow: 0 14px 40px -24px rgba(242, 167, 59, 0.5); }
html[data-theme="nuit"] .todo-banner.is-urgent { --todo-bg: linear-gradient(118deg, rgba(192, 38, 28, 0.62), rgba(96, 20, 16, 0.55)); border-color: rgba(255, 107, 107, 0.4); }
html[data-theme="nuit"] .todo-banner.is-clear { --todo-bg: linear-gradient(118deg, rgba(31, 138, 90, 0.5), rgba(14, 60, 42, 0.5)); border-color: rgba(63, 215, 154, 0.35); }
html[data-theme="nuit"] .kpi-favorable {
  background: linear-gradient(160deg, rgba(63, 215, 154, 0.2), rgba(18, 26, 45, 0.9) 70%) !important;
  border: 1px solid rgba(63, 215, 154, 0.4) !important;
  box-shadow: 0 0 0 1px rgba(63, 215, 154, 0.12), 0 20px 50px -28px rgba(63, 215, 154, 0.55) !important;
}
html[data-theme="nuit"] .addonut-track,
html[data-theme="nuit"] .res-gauge-track { stroke: rgba(255, 255, 255, 0.08); }
html[data-theme="nuit"] .prochaine-comm .pc-stats div { background: rgba(255, 255, 255, 0.04); border: 1px solid var(--border); }
html[data-theme="nuit"] .dernieres-interv li,
html[data-theme="nuit"] .todo-item,
html[data-theme="nuit"] .suivi-row,
html[data-theme="nuit"] .pnl .pnl-ligne,
html[data-theme="nuit"] .drawer-piece,
html[data-theme="nuit"] .docs-attente-liste li { border-top-color: var(--border); }
html[data-theme="nuit"] .suivi-row:hover { background: rgba(255, 255, 255, 0.035); }
html[data-theme="nuit"] .oblig-ico { background: rgba(139, 156, 255, 0.14); color: var(--accent); }
html[data-theme="nuit"] .oblig-table tr.oblig-group td { border-bottom-color: var(--border); }

/* Panneaux latéraux */
html[data-theme="nuit"] .pnl,
html[data-theme="nuit"] .drawer { background: #111a2e; box-shadow: -20px 0 60px -20px rgba(0, 0, 0, 0.8); }
html[data-theme="nuit"] .pnl-fermer,
html[data-theme="nuit"] .drawer-close { background: rgba(255, 255, 255, 0.06); border-color: rgba(255, 255, 255, 0.14); color: var(--fg); }
html[data-theme="nuit"] .pnl .pnl-texte,
html[data-theme="nuit"] .drawer .drawer-notes { background: rgba(255, 255, 255, 0.045); }

/* Bouton de changement de thème */
.theme-toggle {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 10px 12px; border-radius: 12px; cursor: pointer;
  font: inherit; font-size: 13px; font-weight: 600; color: var(--fg);
  background: transparent; border: 1px solid var(--border);
}
.theme-toggle:hover { background: rgba(127, 127, 127, 0.08); }
.theme-toggle svg { width: 18px; height: 18px; flex-shrink: 0; }
html[data-theme="nuit"] .sidebar-partner span { color: var(--fg); }
html[data-theme="nuit"] .sidebar-partner img { filter: brightness(1.8) saturate(1.2); }

/* Menu latéral mobile (tiroir) */
@media (max-width: 768px) {
  html[data-theme="nuit"] .sidebar { background: linear-gradient(180deg, #111a33 0%, #0c1328 100%) !important; border-inline-end: 1px solid var(--border) !important; }
}
/* Cartes propres à certaines pages */
html[data-theme="nuit"] .person-card,
html[data-theme="nuit"] .doc-card,
html[data-theme="nuit"] .res-card { background: rgba(255, 255, 255, 0.035); border-color: var(--border); }
html[data-theme="nuit"] .contracts-table tr { background: rgba(255, 255, 255, 0.035); border-color: var(--border); }
html[data-theme="nuit"] .head-meta { background: rgba(255, 255, 255, 0.04); border-color: var(--border); }
/* Pastilles colorées par lot et par catégorie : teintes sombres */
html[data-theme="nuit"] .lot-chip { background: hsl(var(--lot-hue) 35% 20%); color: hsl(var(--lot-hue) 70% 80%); }
html[data-theme="nuit"] #eq-filterbar button:not([data-filter="all"]) { background: hsl(var(--lot-hue) 30% 17%); color: hsl(var(--lot-hue) 70% 80%); border-color: hsl(var(--lot-hue) 30% 30%); }
html[data-theme="nuit"] #eq-filterbar button:not([data-filter="all"]).active { background: hsl(var(--lot-hue) 45% 30%); border-color: hsl(var(--lot-hue) 60% 60%); }
html[data-theme="nuit"] .doc-cat-chip,
html[data-theme="nuit"] .filterbar button.doc-filter-pill:not(.active) { background: rgba(255, 255, 255, 0.05) !important; color: color-mix(in srgb, var(--cat-fg, #98a2bb) 40%, #ffffff) !important; border-color: rgba(255, 255, 255, 0.14) !important; }

/* ── Variantes de fond à l'essai (?palette=graphite ou ?palette=champagne dans l'adresse) ── */
/* Graphite : noir neutre anthracite, sans teinte bleue (registre des outils type Linear, Vercel). */
html[data-theme="nuit"][data-palette="graphite"] { --bg: #09090b; --surface: #131316; --border: rgba(255, 255, 255, 0.08); --muted: #a1a1aa; --fg: #ececef; }
html[data-theme="nuit"][data-palette="graphite"] body { background: radial-gradient(1000px 600px at 15% -10%, rgba(255, 255, 255, 0.06), transparent 60%), var(--bg); }
html[data-theme="nuit"][data-palette="graphite"] .sidebar,
html[data-theme="nuit"][data-palette="graphite"] .mobile-bar { background: #0d0d10 !important; }
html[data-theme="nuit"][data-palette="graphite"] .sidebar-bottom { background: linear-gradient(to bottom, rgba(13, 13, 16, 0), #0d0d10 14px); }
html[data-theme="nuit"][data-palette="graphite"] .pnl,
html[data-theme="nuit"][data-palette="graphite"] .drawer { background: #141417; }
html[data-theme="nuit"][data-palette="graphite"] .kpi-favorable { background: linear-gradient(160deg, rgba(63, 215, 154, 0.16), rgba(19, 19, 22, 0.95) 70%) !important; }

/* Champagne : charbon chaud et accent doré, registre hôtellerie haut de gamme. */
html[data-theme="nuit"][data-palette="champagne"] { --bg: #0e0d0b; --surface: #181613; --border: rgba(232, 213, 170, 0.1); --muted: #b3aa98; --fg: #f1ece2; --accent: #d9b77c; --accent-2: #e8cb96; --accent-soft: rgba(217, 183, 124, 0.14); }
html[data-theme="nuit"][data-palette="champagne"] body { background: radial-gradient(1000px 600px at 15% -10%, rgba(217, 183, 124, 0.1), transparent 60%), var(--bg); }
html[data-theme="nuit"][data-palette="champagne"] .sidebar,
html[data-theme="nuit"][data-palette="champagne"] .mobile-bar { background: linear-gradient(180deg, #171410 0%, #0f0d0b 100%) !important; }
html[data-theme="nuit"][data-palette="champagne"] .sidebar-bottom { background: linear-gradient(to bottom, rgba(15, 13, 11, 0), #0f0d0b 14px); }
html[data-theme="nuit"][data-palette="champagne"] .nav-item.active { background: rgba(217, 183, 124, 0.14); border-color: rgba(217, 183, 124, 0.4); }
html[data-theme="nuit"][data-palette="champagne"] .pnl,
html[data-theme="nuit"][data-palette="champagne"] .drawer { background: #1a1814; }
html[data-theme="nuit"][data-palette="champagne"] .sidebar-export { background: linear-gradient(135deg, #c9a266 0%, #e3c48d 100%); color: #1a1408; border-color: rgba(240, 220, 175, 0.7); box-shadow: 0 0 18px rgba(217, 183, 124, 0.5), 0 0 42px -6px rgba(217, 183, 124, 0.45); animation: none; }
html[data-theme="nuit"][data-palette="champagne"] .sidebar-export small { color: rgba(26, 20, 8, 0.75); }
html[data-theme="nuit"][data-palette="champagne"] .filterbar button.active,
html[data-theme="nuit"][data-palette="champagne"] .suivi-filtres button.active { color: #1a1408; }
html[data-theme="nuit"][data-palette="champagne"] .kpi-favorable { background: linear-gradient(160deg, rgba(63, 215, 154, 0.14), rgba(24, 22, 19, 0.95) 70%) !important; }

/* Logo rouge des Mûriers : légèrement éclairci sur fond sombre */
html[data-theme="nuit"] img[src*="logo-muriers-rouge"] { filter: brightness(1.45) saturate(1.1); }

/* Tableau de bord : détail du bandeau « À traiter » */
html[data-theme="nuit"] .todo-panel { background: var(--surface); color: var(--fg); }
html[data-theme="nuit"] .todo-item { border-bottom-color: var(--border); }
html[data-theme="nuit"] .todo-link:hover { background: rgba(255, 255, 255, 0.04); }
html[data-theme="nuit"] .todo-clear { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.16); color: var(--fg); }
