/* ============================================================
   VARIABLES — Única fuente de verdad del sistema de diapositivas
   ============================================================ */
:root {
    /* Paleta ADN */
    --adn-azul: #05283a;
    --adn-azul-2: #0a3f4e;
    --adn-verde: #00e6ac;
    --adn-verde-oscuro: #008f7c;
    --adn-verde-suave: #dffbf3;
    --adn-blanco: #ffffff;
    --adn-fondo: #f8fafb;
    --adn-superficie: #ffffff;
    --adn-texto: #0b2a3b;
    --adn-suave: #5d7180;
    --adn-borde: #dce5e9;
    --adn-error: #b42318;
    --adn-aviso: #8a5a00;
    --adn-exito: #08765d;

    /* Sombras */
    --adn-sombra-1: 0 8px 24px rgb(5 40 58 / 8%);
    --adn-sombra-2: 0 18px 48px rgb(5 40 58 / 13%);

    /* Radios */
    --adn-radio-sm: 10px;
    --adn-radio: 18px;
    --adn-radio-lg: 28px;

    /* Transición base */
    --adn-transicion: 180ms ease;

    /* Tipografías */
    --fuente-principal: 'DM Sans', Arial, sans-serif;
    --fuente-titulo: 'Galano Grotesk', 'Montserrat', 'DM Sans', Arial, sans-serif;
    --fuente-tecnica: 'Galano Grotesk', 'Montserrat', 'DM Sans', Arial, sans-serif;

    /* Aliases semánticos para slides */
    --color-principal: var(--adn-azul);
    --color-secundario: var(--adn-verde-oscuro);
    --color-acento: var(--adn-verde);
    --color-fondo: var(--adn-fondo);
    --color-superficie: var(--adn-superficie);
    --color-texto: var(--adn-texto);
    --color-suave: var(--adn-suave);
    --color-borde: var(--adn-borde);
    --color-error: var(--adn-error);
    --color-exito: var(--adn-exito);

    /* Radios (aliases) */
    --radio-sm: var(--adn-radio-sm);
    --radio-md: var(--adn-radio);
    --radio-lg: var(--adn-radio-lg);

    /* Transición (alias) */
    --transicion: var(--adn-transicion);

    /* Admin (no se usa en slides pero preservado del esquema ADN) */
    --admin-fondo: #f4f8f9;
    --admin-superficie: #fff;
    --admin-superficie-suave: #f7fafb;
    --admin-texto: var(--adn-texto);
    --admin-suave: var(--adn-suave);
    --admin-borde: var(--adn-borde);
    --admin-primario: var(--adn-azul);
    --admin-accion: #008f7c;
    --admin-peligro: var(--adn-error);
    --admin-exito: var(--adn-exito);
    --admin-radio: 16px;
    --admin-sombra: var(--adn-sombra-1);

    --aula-fondo: #f4f8f9;
    --aula-superficie: #fff;

    /* === Escala tipográfica para slides (legibilidad a distancia) ===
       Basada en viewport-width para que escale con la proyección 16:9.
       clamp(mínimo, preferido, máximo) garantiza_READ_FOOT para proyectores. */
    --slide-titulo-size: clamp(2.1rem, 3.2vw, 3.6rem);
    --slide-subtitulo-size: clamp(1.3rem, 2vw, 2rem);
    --slide-cuerpo-size: clamp(1rem, 1.35vw, 1.35rem);
    --slide-nota-size: clamp(0.82rem, 1vw, 1rem);
    --slide-ley-size: clamp(1rem, 1.4vw, 1.35rem);
    --slide-eyebrow-size: clamp(0.8rem, 1vw, 1rem);

    /* Espaciado base de slides */
    --slide-pad-x: clamp(2rem, 4vw, 4rem);
    --slide-pad-y: clamp(1.5rem, 2.5vw, 2.5rem);
}

/*
 * Tema oscuro de las diapositivas.
 * Se limita al documento del módulo para conservar el menú general,
 * pero garantiza que toda superficie de contenido sea oscura.
 */
body[data-curso] {
    --adn-fondo: #071d28;
    --adn-superficie: #0d3342;
    --adn-verde-suave: #123d49;
    --adn-verde-oscuro: #8cebd5;
    --adn-texto: #ffffff;
    --adn-suave: #c4d5dc;
    --adn-borde: rgb(255 255 255 / 22%);
    --adn-aviso: #ffd27d;
    --adn-exito: #78efd0;

    --color-principal: var(--adn-blanco);
    --color-secundario: var(--adn-blanco);
    --color-fondo: var(--adn-fondo);
    --color-superficie: var(--adn-superficie);
    --color-texto: var(--adn-texto);
    --color-suave: var(--adn-suave);
    --color-borde: var(--adn-borde);
    --color-exito: var(--adn-exito);
}
