/* Base de la parte pública (portales de cada institución). Reemplaza al
   bundle de la intranet (Tailwind + css/base/index.css, ~110 KB) que antes se
   cargaba en cada página pública: aquí solo va lo que estas páginas usan
   (variables, reset mínimo, avisos, contenido enriquecido y paginación). */

:root {
    --dre-primary: #4f6ef7;
    --dre-primary-dark: #3142a8;
    --dre-success: #027a48;
    --dre-success-bg: #ecfdf3;
    --dre-danger: #b42318;
    --dre-danger-bg: #fef3f2;
    --radius-md: 0.625rem;

    /* Superficies y textos del portal público. Cada plantilla puede redefinirlos
       y todas tienen su juego oscuro (html[data-tema="oscuro"]). */
    color-scheme: light;
    --pi-fondo: #ffffff;
    --pi-superficie: #ffffff;
    --pi-superficie-2: #f8fafc;
    --pi-superficie-3: #f2f4f7;
    --pi-tinta: #101828;
    --pi-texto: #344054;
    --pi-texto-2: #475467;
    --pi-texto-suave: #667085;
    --pi-texto-tenue: #98a2b3;
    --pi-linea: #eaecf0;
    --pi-linea-fuerte: #d0d5dd;
    --pi-sombra: rgba(16, 24, 40, 0.35);
}

/* Modo oscuro: el público lo activa con el botón de la barra superior (se recuerda
   en el navegador); la institución elige con qué tema abre la página. */
html[data-tema="oscuro"] {
    color-scheme: dark;
    --pi-fondo: #0c1017;
    --pi-superficie: #141a23;
    --pi-superficie-2: #1a212c;
    --pi-superficie-3: #212935;
    --pi-tinta: #f2f4f7;
    --pi-texto: #d0d5dd;
    --pi-texto-2: #b9c0cb;
    --pi-texto-suave: #98a2b3;
    --pi-texto-tenue: #6b7585;
    --pi-linea: #262f3c;
    --pi-linea-fuerte: #364152;
    --pi-sombra: rgba(0, 0, 0, 0.7);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; line-height: 1.5; }
body { margin: 0; }
h1, h2, h3, h4, h5, h6, p, figure, blockquote, dl, dd { margin: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: 700; letter-spacing: -0.015em; color: var(--pi-tinta); text-wrap: balance; }
p, li, dd, blockquote { text-wrap: pretty; }
body { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
ol, ul { margin: 0; padding: 0; }
img, svg, video, iframe { display: block; max-width: 100%; }
img, video { height: auto; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
a { color: inherit; }
[hidden] { display: none !important; }
fieldset { margin: 0; padding: 0; border: 0; min-width: 0; }

/* Avisos */
.notice { margin-bottom: 1.5rem; padding: 0.85rem 1.1rem; border-radius: var(--radius-md); background: var(--pi-superficie-3); color: var(--pi-texto); font-size: 0.875rem; }
.notice-success { background: var(--dre-success-bg); color: var(--dre-success); }
.notice-danger { background: var(--dre-danger-bg); color: var(--dre-danger); }
.notice-warning { background: #fef6e7; color: #8a5a00; }

/* Contenido enriquecido de las noticias (depurado con HTMLPurifier) */
.prose { color: var(--pi-texto); line-height: 1.7; }
.prose :where(h1, h2, h3, h4) { color: var(--pi-tinta); font-weight: 700; margin: 1.1em 0 0.5em; line-height: 1.25; }
.prose h2 { font-size: 1.3em; }
.prose h3 { font-size: 1.15em; }
.prose p { margin: 0.75em 0; }
.prose ul, .prose ol { margin: 0.75em 0; padding-left: 1.4em; }
.prose ul { list-style: disc; }
.prose ol { list-style: decimal; }
.prose li { margin: 0.25em 0; }
.prose a { color: var(--pi-acento); text-decoration: underline; text-underline-offset: 2px; }
.prose strong { color: var(--pi-tinta); }
.prose blockquote { margin: 1em 0; padding: 0.5em 1em; border-left: 4px solid var(--dre-primary); color: var(--pi-texto-2); background: var(--pi-superficie-2); border-radius: 0 0.5rem 0.5rem 0; }
.prose table { width: 100%; margin: 1em 0; border-collapse: collapse; font-size: 0.925em; }
.prose th, .prose td { border: 1px solid var(--pi-linea); padding: 0.5em 0.7em; text-align: left; }
.prose th { background: var(--pi-superficie-2); }
.prose img, .prose video { max-width: 100%; border-radius: var(--radius-md); margin: 0.75em 0; }
.prose hr { border: none; border-top: 1px solid var(--pi-linea); margin: 1.5em 0; }

/* Paginación pública (portal/acceso/_paginacion) */
.pi-paginas { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.35rem; margin: 0; padding: 0; list-style: none; }
.pi-paginas a, .pi-paginas span {
    display: inline-flex; align-items: center; justify-content: center; min-width: 2.4rem; height: 2.4rem; padding: 0 0.75rem;
    border-radius: 0.6rem; font-size: 0.88rem; font-weight: 700; text-decoration: none; color: var(--pi-texto); background: var(--pi-superficie);
    box-shadow: 0 0 0 1px rgba(16, 24, 40, 0.1);
}
.pi-paginas a:hover { color: var(--pi-acento); box-shadow: 0 0 0 1px var(--dre-primary); }
.pi-paginas .activa { color: #fff; background: var(--dre-primary); box-shadow: none; }
.pi-paginas .inactiva { color: var(--pi-texto-tenue); }

/* Íconos SVG (<x-pi-icono>): reemplazan emojis y símbolos Unicode. */
.pi-icono { display: inline-block; width: 1em; height: 1em; vertical-align: -0.14em; flex-shrink: 0; }
.pi-estrellas label .pi-icono { vertical-align: middle; }
