/* ============================================
   Variables de tema — se sobreescriben con JS
   from: /api/temas/activo → configuracion
   ============================================ */

:root {
    /* Primario */
    --dm-primario: #003087;
    --dm-primario-claro: #0056b3;
    --dm-primario-oscuro: #002566;
    --dm-secundario: #0047ab;
    --dm-terciario: #1e79c7;

    /* Acento */
    --dm-acento: #ffd700;
    --dm-acento-oscuro: #e6b800;

    /* Texto */
    --dm-texto-oscuro: #13213c;
    --dm-texto-medio: #4b5563;
    --dm-texto-claro: #8a93a6;
    --dm-texto-muted: #6b7688;

    /* Fondos */
    --dm-fondo-claro: #f8f9fa;
    --dm-fondo-body: #f1f5f9;
    --dm-fondo-tarjeta: #ffffff;
    --dm-borde-claro: #e8edf6;

    /* Sidebar */
    --dm-sidebar-bg: #0f172a;
    --dm-sidebar-bg-2: #1e293b;
    --dm-sidebar-texto: #cbd5e1;
    --dm-sidebar-activo-bg: #1d4ed8;
    --dm-sidebar-activo-borde: #60a5fa;
    --dm-sidebar-subtexto: #94a3b8;

    /* Topbar */
    --dm-topbar-grad-1: #003087;
    --dm-topbar-grad-2: #0056b3;

    /* Botones */
    --dm-boton-grad: #003087, #0056b3;
    --dm-boton-hover: #ffd700, #e6b800;

    /* Semánticos */
    --dm-enlace: #003087;
    --dm-exito: #198754;
    --dm-peligro: #dc3545;
    --dm-advertencia: #fd7e14;
    --dm-info: #0dcaf0;

    /* RGB variants for rgba() usage in shadows/overlays */
    --dm-primario-rgb: 0,48,135;
    --dm-primario-oscuro-rgb: 0,37,102;
    --dm-primario-claro-rgb: 0,86,179;
    --dm-secundario-rgb: 0,71,171;
    --dm-terciario-rgb: 30,121,199;
    --dm-acento-rgb: 255,215,0;
    --dm-acento-oscuro-rgb: 230,184,0;
    --dm-sidebar-bg-rgb: 15,23,42;
    --dm-sidebar-bg-2-rgb: 30,41,59;

    /* Compat: variables legacy (custom.css las usa) */
    --medical-blue: var(--dm-primario);
    --medical-blue-hover: var(--dm-primario-oscuro);
    --light-gray: var(--dm-fondo-claro);
    --gold-accent: var(--dm-acento);
    --admin-dark: var(--dm-sidebar-bg);
    --admin-dark-2: var(--dm-sidebar-bg-2);
    --admin-border: var(--dm-borde-claro);

    /* Tipografía */
    --dm-fuente: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --dm-fs-xs: 0.75rem;
    --dm-fs-sm: 0.875rem;
    --dm-fs-md: 1rem;
    --dm-fs-lg: 1.25rem;
    --dm-fs-xl: 1.5rem;
    --dm-fs-display: clamp(1.75rem, 1.3rem + 1.8vw, 2.5rem);

    /* Radios */
    --dm-radio-sm: 8px;
    --dm-radio-md: 12px;
    --dm-radio-lg: 16px;
    --dm-radio-xl: 20px;
    --dm-radio-pill: 999px;

    /* Sombras */
    --dm-sombra-1: 0 2px 8px rgba(15, 29, 69, 0.08);
    --dm-sombra-2: 0 8px 24px rgba(15, 29, 69, 0.12);
    --dm-sombra-3: 0 18px 40px rgba(15, 29, 69, 0.18);

    /* Ritmo */
    --dm-transicion: 0.2s ease;
}

/* Tipografía global */
body {
    font-family: var(--dm-fuente);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    letter-spacing: -0.01em;
    text-wrap: balance;
}

/* Números tabulares en tablas (columnas alineadas) */
table.dataTable,
.tabla-medicos,
.horarios-tabla {
    font-variant-numeric: tabular-nums;
}

/* Foco visible accesible y consistente */
:focus-visible {
    outline: 2px solid var(--dm-primario-claro);
    outline-offset: 2px;
}

/* Respeto a usuarios con movimiento reducido */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}
