/**
 * PRIMEDIS — Système de thème (mode clair / mode sombre)
 * Les couleurs métier sont conservées ; seuls fond, cartes et contrastes varient.
 */

/* ---------- Mode clair (défaut) ---------- */
html.theme-light,
html:not([class*="theme-"]) {
  --pri-bg: #f0f8ff;
  --pri-bg-subtle: #e8f4ff;
  --pri-card: #ffffff;
  --pri-card-hover: #fafcff;
  --pri-border: #d1e2f0;
  --pri-border-strong: #b0cce0;
  --pri-text: #0f1b31;
  --pri-text-muted: #4b5563;
  --pri-text-inverse: #e6edf3;
  --pri-primary: #1f6feb;
  --pri-primary-hover: #1a5ed0;
  --pri-primary-subtle: rgba(31, 111, 235, 0.12);
  --pri-success: #22c55e;
  --pri-success-subtle: rgba(34, 197, 94, 0.12);
  --pri-danger: #dc3545;
  --pri-danger-subtle: rgba(220, 53, 69, 0.12);
  --pri-warning: #eab308;
  --pri-warning-subtle: rgba(234, 179, 8, 0.12);
  --pri-shadow: rgba(0, 68, 204, 0.08);
  --pri-shadow-strong: rgba(0, 0, 0, 0.12);
  --pri-input-bg: #ffffff;
  --pri-input-border: #d1e2f0;
  --pri-nav-footer-bg: linear-gradient(90deg, rgba(15,27,49,0.98) 0%, rgba(31,111,235,0.98) 100%);
}

/* ---------- Mode sombre (contrastes renforcés, lisible et agréable) ---------- */
html.theme-dark {
  --pri-bg: #0d1117;
  --pri-bg-subtle: #161b22;
  --pri-card: #1c2128;
  --pri-card-hover: #22272e;
  --pri-border: #30363d;
  --pri-border-strong: #444c56;
  --pri-text: #f0f6fc;
  --pri-text-muted: #8b949e;
  --pri-text-inverse: #0d1117;
  --pri-primary: #6ea8fe;
  --pri-primary-hover: #8cc4ff;
  --pri-primary-subtle: rgba(110, 168, 254, 0.18);
  --pri-success: #3fb950;
  --pri-success-subtle: rgba(63, 185, 80, 0.2);
  --pri-danger: #f85149;
  --pri-danger-subtle: rgba(248, 81, 73, 0.2);
  --pri-warning: #d29922;
  --pri-warning-subtle: rgba(210, 153, 34, 0.2);
  --pri-shadow: rgba(0, 0, 0, 0.4);
  --pri-shadow-strong: rgba(0, 0, 0, 0.55);
  --pri-input-bg: #161b22;
  --pri-input-border: #30363d;
  --pri-nav-footer-bg: linear-gradient(90deg, rgba(15,27,49,0.98) 0%, rgba(31,111,235,0.98) 100%);
}

/* ---------- Application globale ---------- */
body {
  font-family: 'Open Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background-color: var(--pri-bg);
  color: var(--pri-text);
  margin: 0;
  padding: 0;
  min-height: 100vh;
  transition: background-color 0.25s ease, color 0.2s ease;
}

/* Mode sombre : fond avec très léger dégradé pour la profondeur */
html.theme-dark body {
  background: radial-gradient(ellipse 120% 80% at 50% -20%, rgba(31, 111, 235, 0.08), transparent 50%), var(--pri-bg);
}

/* Mode sombre : lisibilité formulaires et sélects */
html.theme-dark .prime-form-control,
html.theme-dark input[type="text"],
html.theme-dark input[type="email"],
html.theme-dark input[type="password"],
html.theme-dark select,
html.theme-dark textarea {
  color: var(--pri-text);
  background-color: var(--pri-input-bg);
  border-color: var(--pri-border);
}
html.theme-dark .prime-form-control::placeholder,
html.theme-dark input::placeholder,
html.theme-dark textarea::placeholder {
  color: var(--pri-text-muted);
}
html.theme-dark select option {
  background: var(--pri-card);
  color: var(--pri-text);
}

/* Mode sombre : Bootstrap (form-control, modal, table) */
html.theme-dark .form-control {
  background-color: var(--pri-input-bg);
  border-color: var(--pri-border);
  color: var(--pri-text);
}
html.theme-dark .form-control:focus {
  background-color: var(--pri-input-bg);
  border-color: var(--pri-primary);
  color: var(--pri-text);
}
html.theme-dark .modal-content {
  background-color: var(--pri-card);
  border-color: var(--pri-border);
}
html.theme-dark .modal-header,
html.theme-dark .modal-footer {
  border-color: var(--pri-border);
}
html.theme-dark .table {
  color: var(--pri-text);
}
html.theme-dark .table th,
html.theme-dark .table td {
  border-color: var(--pri-border);
}
html.theme-dark .table thead th {
  background-color: var(--pri-bg-subtle);
  color: var(--pri-text);
}
html.theme-dark .table-hover tbody tr:hover {
  background-color: var(--pri-bg-subtle);
  color: var(--pri-text);
}

main {
  flex: 1;
  padding: clamp(16px, 3vw, 28px);
  transition: background-color 0.25s ease;
}

/* Conteneur de page standard */
.page-content {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 clamp(12px, 2vw, 20px);
}

/* Titres */
h1, h2, h3, h4, h5, h6 {
  color: var(--pri-text);
  font-weight: 600;
}

h1 {
  font-size: clamp(1.5rem, 2.2vw, 1.75rem);
  margin: 0 0 0.5rem;
}

a {
  color: var(--pri-primary);
  transition: color 0.2s ease;
}

a:hover {
  color: var(--pri-primary-hover);
}

/* Respect préférence mouvement réduit */
@media (prefers-reduced-motion: reduce) {
  body,
  main,
  a {
    transition: none;
  }
}
