/* pulpo.news - Pobreza Cara v3 */

:root {
    --font-sans: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-serif: 'Playfair Display', Georgia, 'Times New Roman', serif;
    --font-mono: 'JetBrains Mono', 'SF Mono', Monaco, monospace;

    /* Colores base */
    --ink: #1a1a2e;
    --ink-light: #3d3d5c;
    --ink-muted: #6b6b8a;
    --ink-faint: #9a9ab0;
    --paper: #fafbfc;
    --paper-alt: #f0f2f5;

    /* Acentos fríos/pasteles */
    --accent-blue: #4a6fa5;
    --accent-blue-light: #e8f0f8;
    --accent-slate: #64748b;
    --accent-teal: #0d9488;
    --accent-teal-light: #e6f7f5;
    --accent-lavender: #8b7ec8;
    --accent-lavender-light: #f3f0ff;

    /* Canales */
    --channel-bg: #e8ecf2;
    --channel-border: #c5cdd8;

    --border: #dde2e8;
    --border-light: #eaeff4;

    --max-width: 1100px;
    --space-xs: 0.25rem;
    --space-sm: 0.5rem;
    --space-md: 1rem;
    --space-lg: 1.5rem;
    --space-xl: 2.5rem;
    --space-2xl: 4rem;
}

/* Reset */
*, *::before, *::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* Base */
html {
    font-size: 17px;
    scroll-behavior: smooth;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

body {
    font-family: var(--font-sans);
    font-size: 1rem;
    line-height: 1.6;
    color: var(--ink);
    background: var(--paper);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
}

/* Scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 0;
}

::-webkit-scrollbar:horizontal {
    display: none;
}

::-webkit-scrollbar-track {
    background: var(--paper-alt);
}

::-webkit-scrollbar-thumb {
    background: var(--ink-faint);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--ink-muted);
}

/* Scrollbar colors by daypart */
.viewing-daypart-madrugada::-webkit-scrollbar-thumb { background: #1a1a2e; }
.viewing-daypart-trasnoche::-webkit-scrollbar-thumb { background: #2d2d44; }
.viewing-daypart-primera-manana::-webkit-scrollbar-thumb { background: #7a9eb8; }
.viewing-daypart-manana::-webkit-scrollbar-thumb { background: #e8c872; }
.viewing-daypart-mediodia::-webkit-scrollbar-thumb { background: #f5d67a; }
.viewing-daypart-primera-tarde::-webkit-scrollbar-thumb { background: #e8a855; }
.viewing-daypart-segunda-tarde::-webkit-scrollbar-thumb { background: #c87850; }
.viewing-daypart-prime::-webkit-scrollbar-thumb { background: #5a4a7a; }

/* Container */
.container {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--space-lg);
    width: 100%;
}

/* ========================================
   HEADER
   ======================================== */
.header {
    padding: var(--space-lg) 0;
    border-bottom: 1px solid var(--border);
    background: var(--paper);
}

.header .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.logo {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    text-decoration: none;
    color: var(--ink);
}

.logo-icon {
    width: 42px;
    height: 42px;
    object-fit: contain;
}

.logo-text {
    font-family: var(--font-mono);
    font-size: 1.1rem;
    font-weight: 600;
    letter-spacing: -0.02em;
    color: var(--accent-blue);
}

.nav {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

.nav-link {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: 0.875rem;
    color: var(--ink-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.nav-link:hover {
    color: var(--accent-blue);
}

/* Iconos ocultos en desktop, visibles en móvil */
.nav-icon {
    display: none;
}

/* Texto visible en desktop */
.nav-text {
    display: inline;
}

/* Texto que siempre se muestra */
.nav-text-always {
    display: inline;
}

/* ========================================
   MAIN
   ======================================== */
.main {
    flex: 1;
    padding: var(--space-2xl) 0;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

/* ========================================
   TIMELINE (Navegador temporal)
   ======================================== */
/* El timeline ahora vive dentro de .reading-timeline en el header */

/* Marcas de tiempo posicionadas */
.timeline-marks {
    position: relative;
    height: 14px;
    margin-bottom: 2px;
}

.timeline-mark {
    position: absolute;
    transform: translateX(-50%);
    font-family: var(--font-mono);
    font-size: 9px;
    color: var(--ink-muted);
    cursor: pointer;
    transition: all 0.15s ease;
    white-space: nowrap;
}

.timeline-mark:hover {
    color: var(--accent-blue);
}

.timeline-mark--current {
    color: var(--ink);
    font-weight: 600;
}

.timeline-mark--hidden {
    display: none;
}

/* La línea del tiempo */
.timeline-track {
    position: relative;
    height: 12px;
    display: flex;
    align-items: center;
    cursor: pointer;
    padding: 0 4px;
}

.timeline-line {
    position: absolute;
    left: 4px;
    right: 4px;
    height: 2px;
    background: #d0e0f0;
    border-radius: 1px;
}

.timeline-progress {
    position: absolute;
    left: 4px;
    height: 2px;
    background: var(--accent-blue);
    border-radius: 1px;
    transition: width 0.15s ease;
}

.timeline-cursor {
    position: absolute;
    width: 6px;
    height: 6px;
    background: var(--ink);
    border-radius: 50%;
    transform: translateX(-50%);
    transition: left 0.15s ease;
    z-index: 2;
}

/* Ocultar cuando vacío */
.timeline-bar:empty {
    display: none;
}

/* ========================================
   DAY HEADER
   ======================================== */
.day-header {
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-lg);
    border-bottom: 3px solid var(--ink);
}

.day-title {
    font-family: var(--font-serif);
    font-size: 2rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-xs);
}

.day-subtitle {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

/* ========================================
   DAY NAVIGATION
   ======================================== */
.day-nav {
    margin-top: var(--space-2xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-md);
}

.day-nav-link {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.day-nav-link:hover {
    color: var(--accent-blue);
}

.day-nav-prev {
    color: var(--ink-light);
}

.day-nav-archivo {
    margin-left: auto;
}

/* ========================================
   COBERTURAS - Periodista Pulpo
   Síntesis de múltiples fuentes sobre un tema
   Filosofía: prominente pero no gritón
   ======================================== */
.coberturas-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

/* Cobertura individual */
.cobertura {
    padding: var(--space-lg) 0;
    border-bottom: 1px solid var(--border-light);
}

.cobertura:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.cobertura-category-line {
    display: flex;
    align-items: baseline;
    gap: var(--space-md);
    margin-bottom: var(--space-xs);
}

.cobertura-categoria {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-muted);
}

.cobertura-meta-inline {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
}

.cobertura-titulo {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: var(--space-xs);
}

.cobertura-titulo a {
    color: var(--ink);
    text-decoration: none;
    transition: color 0.15s ease;
}

.cobertura-titulo a:hover {
    color: var(--accent-blue);
}

/* Niveles de importancia - solo peso tipográfico */
.cobertura--nivel-5 .cobertura-titulo {
    font-size: 1.8rem;
    font-weight: 800;
}

.cobertura--nivel-4 .cobertura-titulo {
    font-size: 1.6rem;
    font-weight: 700;
}

.cobertura--nivel-3 .cobertura-titulo {
    font-size: 1.4rem;
    font-weight: 600;
}

.cobertura-resumen {
    font-size: 0.95rem;
    color: var(--ink-light);
    line-height: 1.5;
    margin: 0;
}

/* Página de detalle de cobertura */
.cobertura-full {
    margin-bottom: var(--space-xl);
}

.cobertura-header {
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.cobertura-categoria-wrap {
    display: flex;
    align-items: baseline;
    gap: var(--space-md);
    margin-bottom: var(--space-md);
}

.cobertura-importancia {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    font-weight: 600;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.cobertura-importancia--5,
.cobertura-importancia--4 {
    color: var(--ink);
}

.cobertura-full .cobertura-titulo {
    font-family: var(--font-serif);
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.25;
    color: var(--ink);
    margin-bottom: var(--space-md);
}

.cobertura-copete {
    font-size: 1.2rem;
    color: var(--ink-light);
    line-height: 1.5;
    margin-bottom: var(--space-lg);
}

.cobertura-meta {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-md);
}

.cobertura-meta-item {
    display: inline;
}

.cobertura-meta-sep {
    color: var(--ink-faint);
    margin: 0 var(--space-xs);
}

.cobertura-canales {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.cobertura-canal {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-muted);
    background: var(--paper-alt);
    padding: 2px var(--space-sm);
    border-radius: 3px;
}

/* Cuerpo - Markdown renderizado */
.cobertura-cuerpo {
    font-size: 1.1rem;
    line-height: 1.75;
    color: var(--ink-light);
}

.cobertura-cuerpo h2 {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--ink);
    margin-top: var(--space-xl);
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--border-light);
}

.cobertura-cuerpo h2:first-child {
    margin-top: 0;
}

.cobertura-cuerpo p {
    margin-bottom: var(--space-md);
}

.cobertura-cuerpo ul,
.cobertura-cuerpo ol {
    margin-bottom: var(--space-md);
    padding-left: var(--space-lg);
}

.cobertura-cuerpo li {
    margin-bottom: var(--space-xs);
}

/* Keywords */
.cobertura-keywords {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    margin-top: var(--space-xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border-light);
}

.cobertura-keyword {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-muted);
    text-decoration: none;
    padding: var(--space-xs) var(--space-sm);
    background: var(--paper-alt);
    border-radius: 3px;
    transition: all 0.15s ease;
}

.cobertura-keyword:hover {
    background: var(--accent-blue-light);
    color: var(--accent-blue);
}

/* Footer */
.cobertura-footer {
    margin-top: var(--space-xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border);
}

.cobertura-footer-meta {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
}

.cobertura-nav {
    margin-top: var(--space-xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border);
}

/* Responsive */
@media (max-width: 768px) {
    .cobertura-titulo {
        font-size: 1.3rem;
    }

    .cobertura--nivel-5 .cobertura-titulo {
        font-size: 1.5rem;
    }

    .cobertura--nivel-4 .cobertura-titulo {
        font-size: 1.4rem;
    }

    .cobertura-full .cobertura-titulo {
        font-size: 1.8rem;
    }

    .cobertura-copete {
        font-size: 1.1rem;
    }

    .cobertura-cuerpo {
        font-size: 1rem;
    }
}

/* ========================================
   PULSE BAR - Barra de trending compacta
   ======================================== */
.pulse-bar {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    padding: var(--space-lg) 0;
    margin-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.pulse-content {
    flex: 1;
    display: flex;
    align-items: baseline;
    gap: var(--space-md);
    flex-wrap: wrap;
}

/* Tema principal - destaca */
.pulse-hero {
    font-family: var(--font-serif);
    font-size: 1.8rem;
    font-weight: 700;
    color: var(--ink);
    text-decoration: none;
    transition: color 0.15s ease;
}

.pulse-hero:hover {
    color: var(--accent);
}

/* Otros temas - inline, más discretos */
.pulse-topics {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    color: var(--ink-muted);
}

.pulse-topics a {
    color: var(--ink-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.pulse-topics a:hover {
    color: var(--ink);
}

/* Buscador compacto */
.pulse-search {
    display: flex;
    align-items: center;
    gap: 0;
    flex-shrink: 0;
}

.pulse-search input {
    width: 140px;
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-sans);
    font-size: 0.9rem;
    border: 1px solid var(--border);
    border-right: none;
    border-radius: 4px 0 0 4px;
    background: var(--paper);
    color: var(--ink);
    transition: border-color 0.15s ease;
}

.pulse-search input::placeholder {
    color: var(--ink-faint);
}

.pulse-search input:focus {
    outline: none;
    border-color: var(--ink-light);
}

.pulse-search button {
    padding: var(--space-sm) var(--space-md);
    border: 1px solid var(--border);
    border-radius: 0 4px 4px 0;
    background: var(--paper-alt);
    color: var(--ink-muted);
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.pulse-search button:hover {
    background: var(--ink);
    color: var(--paper);
}

.pulse-search button svg {
    display: block;
}

@media (max-width: 768px) {
    .pulse-bar {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-md);
    }

    .pulse-content {
        flex-direction: column;
        gap: var(--space-sm);
    }

    .pulse-hero {
        font-size: 1.5rem;
    }

    .pulse-search {
        width: 100%;
    }

    .pulse-search input {
        flex: 1;
        width: auto;
    }
}

/* ========================================
   SECCIONES PRINCIPALES
   ======================================== */
.main-section {
    padding: 3rem 0;
    margin-bottom: 2rem;
    border-bottom: 1px solid var(--border-light);
}

.section-title {
    font-family: var(--font-mono);
    font-size: 1.25rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: #A569BA;
    margin: 0 0 0.5rem 0;
}

.section-subtitle {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--ink-muted);
    margin: 0 0 2rem 0;
}

/* Cuando no hay subtitle, dar espacio después del título */
.section-title + .coberturas-list,
.section-title + .news-container {
    margin-top: 1.5rem;
}

/* ========================================
   DE QUÉ SE HABLA - Punto de partida compacto
   ======================================== */
#searchSection {
    padding: 0;
    margin-bottom: var(--space-xl);
}

.word-cloud-header {
    display: flex;
    align-items: baseline;
    gap: var(--space-xs);
    margin-bottom: var(--space-sm);
}

#searchSection .section-title {
    font-size: 1.25rem;
    letter-spacing: 0.12em;
    color: #A569BA;
    margin: 0;
}

#searchSection .section-subtitle {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: var(--ink-faint);
    margin: 0;
}

/* ========================================
   WORD CLOUD - Nube de palabras compacta
   Punto de partida: escaneo rápido de temas
   ======================================== */

.word-cloud {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: baseline;
    gap: 0.35rem 1rem;
    line-height: 1.9;
    max-width: 100%;
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.word-cloud-item {
    font-family: var(--font-serif);
    color: var(--ink-muted);
    text-decoration: none;
    transition: all 0.15s ease;
}

.word-cloud-item:hover {
    color: #7a4a8a; /* Violeta más oscuro */
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Top keywords - destacan sin gritar */
.word-cloud-item--top {
    color: #A569BA;
    font-weight: 600;
}

.word-cloud-item--top:hover {
    color: #7a4a8a; /* Violeta más oscuro en hover */
}

/* Keywords que aparecen en coberturas */
.word-cloud-item--cobertura {
    font-style: italic;
}

@media (max-width: 768px) {
    .main-section {
        padding: var(--space-lg) 0;
    }

    .section-title {
        font-size: 1.1rem;
    }

    /* Word cloud compacto en móvil */
    #searchSection {
        padding: 0;
        margin-bottom: var(--space-lg);
    }

    #searchSection .section-title {
        font-size: 1.1rem; /* Mismo que .section-title en móvil */
    }

    #searchSection .section-subtitle {
        margin-bottom: var(--space-sm);
    }

    .word-cloud {
        gap: 0.25rem 0.75rem;
        line-height: 1.7;
        padding-bottom: var(--space-md);
    }

    /* Limitar tamaño en móvil para compactar */
    .word-cloud-item {
        font-size: max(0.9rem, calc(var(--size, 1) * 0.85rem)) !important;
    }
}

/* ========================================
   HEADER TRANSITION
   ======================================== */
.header {
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.header--hidden {
    opacity: 0;
    pointer-events: none;
}


/* ========================================
   READING HEADER - ESTADO 2: LECTURA
   ======================================== */

/* Colores del cielo por momento del día */
:root {
    --sky-madrugada: #1a1a2e;
    --sky-primera-manana: #e8b4a0;
    --sky-manana: #87ceeb;
    --sky-mediodia: #f5e6c8;
    --sky-primera-tarde: #e8c872;
    --sky-segunda-tarde: #e07850;
    --sky-prime: #5a4a7a;
    --sky-trasnoche: #2d2d44;
}

.reading-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--paper);
    border-bottom: 1px solid var(--border);
    transform: translateY(-100%);
    transition: transform 0.3s ease;
}

.reading-header--visible {
    transform: translateY(0);
}

.reading-header-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: var(--space-sm) var(--space-lg);
    display: flex;
    align-items: center;
    gap: 0;
}

/* Marca */
.reading-brand {
    flex-shrink: 0;
    padding-right: var(--space-md);
    border-right: 1px solid var(--border-light);
}

.reading-brand a {
    display: flex;
    align-items: center;
}

.reading-logo {
    width: 32px;
    height: 32px;
}

/* Indicador del momento actual */
.reading-current {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 0 var(--space-md);
    border-right: 1px solid var(--border-light);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink);
    white-space: nowrap;
}

.reading-current-icon {
    font-size: 1.1rem;
}

.reading-current-position {
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--ink);
}

.reading-current-sep {
    color: var(--ink-faint);
}

.reading-current-date {
    color: var(--ink-muted);
    font-weight: 500;
}

/* Carrusel de segmentos */
.reading-carousel-wrap {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    flex: 1;
    padding: 0 var(--space-sm);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    overflow: hidden;
}

.reading-arrow {
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink-faint);
    cursor: pointer;
    transition: color 0.15s ease;
    background: none;
    border: none;
    padding: 0;
}

.reading-arrow:hover {
    color: var(--ink);
}

.reading-carousel {
    display: flex;
    align-items: center;
    gap: 2px;
    overflow-x: auto;
    overflow-y: hidden;
    flex: 1;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding: 0 calc(50% - 50px);
}

.reading-carousel::-webkit-scrollbar {
    display: none;
}

/* Segmentos */
.reading-segment {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px 8px;
    min-width: 48px;
    color: var(--ink-muted);
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.2s ease;
    border-radius: 3px;
    flex-shrink: 0;
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    scroll-snap-align: center;
}

.reading-segment:hover {
    color: var(--ink);
}

.reading-segment--has-content {
    color: var(--ink-muted);
    background: var(--paper-alt);
}

.reading-segment--active {
    color: var(--paper);
    font-weight: 700;
    padding: 6px 12px;
    font-size: 0.7rem;
    min-width: 60px;
}

/* Colores según daypart */
.reading-segment--active[data-daypart="madrugada"] { background: var(--sky-madrugada); }
.reading-segment--active[data-daypart="primera-manana"] { background: var(--sky-primera-manana); color: var(--ink); }
.reading-segment--active[data-daypart="manana"] { background: var(--sky-manana); color: var(--ink); }
.reading-segment--active[data-daypart="mediodia"] { background: var(--sky-mediodia); color: var(--ink); }
.reading-segment--active[data-daypart="primera-tarde"] { background: var(--sky-primera-tarde); color: var(--ink); }
.reading-segment--active[data-daypart="segunda-tarde"] { background: var(--sky-segunda-tarde); }
.reading-segment--active[data-daypart="prime"] { background: var(--sky-prime); }
.reading-segment--active[data-daypart="trasnoche"] { background: var(--sky-trasnoche); }

.reading-segment--empty {
    color: var(--ink-faint);
    opacity: 0.3;
    cursor: default;
    background: transparent;
}

/* Búsqueda */
.reading-search {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--ink-muted);
    text-decoration: none;
    padding-left: var(--space-md);
    margin-left: var(--space-md);
    border-left: 1px solid var(--border-light);
}

.reading-search:hover {
    color: var(--ink);
}

/* Timeline dentro del reading header */
.reading-timeline {
    padding: 4px 0 6px;
    border-top: 1px solid var(--border-light);
}

.reading-timeline-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 0 var(--space-lg);
}

/* Hide old elements */
.timeline-nav,
.time-bar {
    display: none;
}

/* Responsive */
@media (max-width: 768px) {
    .reading-segment {
        padding: 2px 4px;
    }
}

@media (max-width: 480px) {
    .reading-header-inner {
        flex-wrap: wrap;
    }

    .reading-brand {
        padding-right: var(--space-sm);
    }

    .reading-current {
        flex: 1;
        border-right: none;
    }

    /* Búsqueda: cierra la primera fila */
    .reading-search {
        order: 3;
        padding-left: var(--space-sm);
        margin-left: auto;
        border-left: none;
    }

    /* Carrusel: segunda fila completa, entre barra superior y timeline */
    .reading-carousel-wrap {
        order: 4;
        flex-basis: 100%;
        padding: var(--space-xs) 0;
        margin: 0 calc(-1 * var(--space-lg));
        width: calc(100% + 2 * var(--space-lg));
        overflow: hidden;
        border-top: 1px solid var(--border-light);
    }

    /* Ocultar flechas - usar swipe */
    .reading-arrow {
        display: none;
    }

    .reading-carousel {
        width: 100%;
        padding: 0 calc(50% - 45px);
        gap: 4px;
        -webkit-overflow-scrolling: touch;
    }

    .reading-segment {
        padding: 5px 10px;
        font-size: 0.65rem;
        min-width: 50px;
    }

    .reading-segment--active {
        font-size: 0.75rem;
        padding: 6px 14px;
        min-width: 70px;
    }
}

/* ========================================
   HOUR SECTION (DAYPARTS)
   ======================================== */
.hour-section {
    margin-bottom: var(--space-2xl);
    scroll-margin-top: 90px; /* Compensar el reading header fijo */
}

.hour-header {
    /* Sutil, tipográfico, sin fondo */
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--border-light);
}

.hour-header-inner {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.daypart-name {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--ink-muted);
}

.hour-meta {
    display: flex;
    align-items: baseline;
    gap: var(--space-xs);
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.hour-meta time {
    color: var(--ink-muted);
}

.hour-sep {
    color: var(--border);
}

.hour-date {
    color: var(--ink-faint);
}

/* Daypart colors - matching timeline pills (night to day) */
.daypart-madrugada {
    background: #1a1a2e10;
    border-color: #1a1a2e;
}
.daypart-madrugada .daypart-name {
    color: #1a1a2e;
}

.daypart-trasnoche {
    background: #2d2d4410;
    border-color: #2d2d44;
}
.daypart-trasnoche .daypart-name {
    color: #2d2d44;
}

.daypart-primera-manana {
    background: #7a9eb815;
    border-color: #7a9eb8;
}
.daypart-primera-manana .daypart-name {
    color: #4a7089;
}

.daypart-manana {
    background: #e8c87218;
    border-color: #e8c872;
}
.daypart-manana .daypart-name {
    color: #8a7030;
}

.daypart-mediodia {
    background: #f5d67a18;
    border-color: #f5d67a;
}
.daypart-mediodia .daypart-name {
    color: #8a6e20;
}

.daypart-primera-tarde {
    background: #e8a85518;
    border-color: #e8a855;
}
.daypart-primera-tarde .daypart-name {
    color: #8a5a20;
}

.daypart-segunda-tarde {
    background: #c8785018;
    border-color: #c87850;
}
.daypart-segunda-tarde .daypart-name {
    color: #8a4a30;
}

.daypart-prime {
    background: #5a4a7a15;
    border-color: #5a4a7a;
}
.daypart-prime .daypart-name {
    color: #5a4a7a;
    font-weight: 700;
}

/* ========================================
   ARTICLE CARD
   ======================================== */
.article {
    padding: var(--space-lg) 0;
    border-bottom: 1px solid var(--border-light);
}

.article:last-child {
    border-bottom: none;
}

.article-meta {
    font-size: 0.8rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-sm);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.article-meta .channel {
    font-family: var(--font-mono);
    font-weight: 600;
    font-size: 0.7rem;
    color: var(--accent-slate);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    background: var(--channel-bg);
    padding: 3px var(--space-sm);
    border-radius: 3px;
    border-left: 3px solid var(--accent-blue);
}

.article-time {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
}

.meta-separator {
    color: var(--border);
}

.article-title {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.35;
    margin-bottom: var(--space-sm);
    letter-spacing: -0.01em;
    position: relative;
    z-index: 1;
}

.article-title a {
    color: var(--ink);
    text-decoration: none;
    transition: color 0.15s ease;
}

.article-title a:hover {
    color: var(--accent-blue);
}

/* Badge "en desarrollo" - sutil, violeta pulpo.news */
.badge-en-desarrollo {
    display: inline;
    font-family: var(--font-mono);
    font-size: 0.6rem;
    font-weight: 500;
    color: #A569BA;
    vertical-align: middle;
    margin-left: var(--space-xs);
    letter-spacing: 0.02em;
}

.article-summary {
    font-size: 0.95rem;
    color: var(--ink-light);
    line-height: 1.65;
    margin-bottom: var(--space-md);
}

.article-footer {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    flex-wrap: wrap;
}

.article-link {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--paper);
    background: var(--accent-blue);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    padding: var(--space-xs) var(--space-md);
    border-radius: 3px;
    transition: all 0.15s ease;
}

.article-link:hover {
    background: var(--ink);
}

.article-tags {
    display: flex;
    gap: var(--space-xs);
    flex-wrap: wrap;
}

.tag {
    font-size: 0.7rem;
    color: var(--accent-slate);
    background: var(--accent-blue-light);
    padding: 2px var(--space-sm);
    border-radius: 3px;
    font-family: var(--font-mono);
}

/* ========================================
   NEWS GRID - Sistema simplificado
   ======================================== */
.news-grid {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    padding-left: 24px;
}

/* Línea de tiempo vertical */
.news-grid::before {
    content: '';
    position: absolute;
    left: 6px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--border);
}

/* Punto de timeline para cada artículo - centrado verticalmente */
.article {
    position: relative;
}

.article::before {
    content: '';
    position: absolute;
    left: -24px;
    top: 50%;
    transform: translateY(-50%) translateX(2px);
    width: 9px;
    height: 9px;
    background: var(--ink-muted);
    border-radius: 50%;
}

/* Destacadas igual - centrado vertical */
.article--destacada::before {
    width: 9px;
    height: 9px;
    background: var(--ink-muted);
}

/* Quitar el punto de artículos dentro de grupos simultáneos */
.simultaneous-group .article::before {
    display: none;
}

/* ===================
   NOTICIA DESTACADA (con imagen)
   =================== */
/* Formato clásico: imagen arriba, título abajo, descripción abajo */
.article--destacada {
    padding: var(--space-xl) 0;
    padding-left: var(--space-sm); /* Aire respecto al punto */
    margin: 0;
    border-bottom: 1px solid var(--border);
}

.article--destacada .article-source {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.article--destacada .article-title {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: var(--space-md);
}

.article--destacada .article-title a {
    color: var(--ink);
    text-decoration: none;
}

.article--destacada .article-title a:hover {
    color: var(--accent-blue);
}

.article--destacada .article-content {
    display: block;
}

.article--destacada .article-thumbnail {
    display: block;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: var(--space-md);
}

.article--destacada .article-thumbnail img {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    transition: transform 0.2s ease;
}

.article--destacada .article-thumbnail:hover img {
    transform: scale(1.02);
}

.article--destacada .article-summary {
    font-size: 1rem;
    line-height: 1.6;
    color: var(--ink-light);
    margin: 0;
}

/* ===================
   NOTICIA NORMAL (sin imagen)
   =================== */
.article--normal {
    padding: var(--space-lg) 0;
    padding-left: var(--space-sm); /* Aire respecto al punto */
    margin: 0;
    border-bottom: 1px solid var(--border-light);
}

.article--normal .article-source {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-xs);
}

.article--normal .article-title {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.3;
}

.article--normal .article-title a {
    color: var(--ink);
    text-decoration: none;
}

.article--normal .article-title a:hover {
    color: var(--accent-blue);
}

.article--normal .article-summary {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    color: var(--ink-light);
    line-height: 1.5;
    margin-top: var(--space-sm);
}

/* ===================
   EL MINUTO - Grupo de noticias simultáneas
   =================== */
/* Noticias simultáneas (mismo minuto) en columnas */
/* Contenedor de grupo simultáneo (todas las filas bajo un punto) */
.simultaneous-group {
    position: relative;
    padding: var(--space-lg) 0;
    margin: 0;
    border-bottom: 1px solid var(--border-light);
}

/* Punto del grupo - color logo, centrado verticalmente */
.simultaneous-group::before {
    content: '';
    position: absolute;
    left: -24px;
    top: 50%;
    transform: translateY(-50%) translateX(2px);
    width: 9px;
    height: 9px;
    background: #A569BA;
    border-radius: 50%;
    z-index: 2;
}

/* Línea vertical violeta para el segmento del grupo */
.simultaneous-group::after {
    content: '';
    position: absolute;
    left: -18px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #A569BA;
    z-index: 1;
}

/* Fila dentro del grupo */
.simultaneous-row {
    display: grid;
    gap: var(--space-lg);
    margin-bottom: var(--space-lg);
}

.simultaneous-row:last-child {
    margin-bottom: 0;
}

.simultaneous-row.cols-1 {
    grid-template-columns: 1fr;
    max-width: 50%;
}

.simultaneous-row.cols-2 {
    grid-template-columns: 1fr 1fr;
}

.simultaneous-row.cols-3 {
    grid-template-columns: 1fr 1fr 1fr;
}

.article--column {
    padding: var(--space-md) var(--space-lg);
    text-align: center;
    border-bottom: none;
    position: relative;
}

/* Línea vertical entre columnas (no en la última) */
.article--column:not(:last-child)::after {
    content: '';
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 60%;
    width: 1px;
    background: var(--border-light);
}

.article--column .article-source {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-xs);
}

.article--column .article-title {
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
}

.article--column .article-title a {
    color: var(--ink);
    text-decoration: none;
}

.article--column .article-title a:hover {
    color: var(--accent-blue);
}

/* Noticias compactas (resto del grupo, una línea) */
.article--compact {
    padding: var(--space-xs) 0;
    border-top: 1px solid var(--border-light);
}

.compact-link {
    display: flex;
    align-items: baseline;
    gap: var(--space-sm);
    text-decoration: none;
    color: var(--ink);
}

.compact-link:hover .compact-title {
    color: var(--accent-blue);
}

.compact-time {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
    flex-shrink: 0;
}

.compact-channel {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ink-muted);
    flex-shrink: 0;
}

.compact-title {
    font-size: 0.95rem;
    line-height: 1.4;
    transition: color 0.15s ease;
}

@media (max-width: 768px) {
    /* Timeline más sutil en móvil */
    .news-grid {
        padding-left: 18px;
    }

    .news-grid::before {
        left: 3px;
    }

    /* Puntos en móvil - más pequeños pero siempre centrados verticalmente */
    .article::before {
        left: -18px;
        width: 5px;
        height: 5px;
        top: 50%;
        transform: translateY(-50%) translateX(1px);
    }

    .article--destacada::before {
        left: -18px;
        width: 5px;
        height: 5px;
        top: 50%;
        transform: translateY(-50%) translateX(1px);
    }

    .simultaneous-group::before {
        left: -18px;
        width: 6px;
        height: 6px;
        top: 50%;
        transform: translateY(-50%) translateX(1px);
    }

    /* Línea violeta en móvil - ajustar posición */
    .simultaneous-group::after {
        left: -15px;
        width: 2px;
    }

    /* Columnas en móvil - todas a 1 columna */
    .simultaneous-row.cols-1,
    .simultaneous-row.cols-2,
    .simultaneous-row.cols-3 {
        grid-template-columns: 1fr;
        max-width: 100%;
    }

    /* En móvil cada artículo del grupo se muestra individual */
    .article--column {
        text-align: left;
        padding: var(--space-md) 0;
        padding-left: var(--space-xs);
        border-bottom: 1px solid var(--border-light);
    }

    .article--column:last-child {
        border-bottom: none;
    }

    /* Sin línea separadora vertical en móvil (ya no hay columnas) */
    .article--column:not(:last-child)::after {
        display: none;
    }

    /* Noticias normales en móvil - padding simétrico */
    .article--normal {
        padding: var(--space-md) 0;
        padding-left: var(--space-xs);
    }

    /* Noticias destacadas en móvil - padding simétrico */
    .article--destacada {
        padding: var(--space-lg) 0;
        padding-left: var(--space-xs);
    }

    /* Grupos simultáneos en móvil - padding simétrico */
    .simultaneous-group {
        padding: var(--space-md) 0;
    }
}

/* Legacy - puede eliminarse después de verificar */
.minute-title {
    color: var(--ink);
    text-decoration: none;
}

.minute-title:hover {
    color: var(--accent-blue);
}

/* ========================================
   HOUR BREAK - Avance de temas que continúan
   ======================================== */
.limit-summary {
    grid-column: span 6;
    padding: var(--space-xl) var(--space-lg);
    margin: var(--space-lg) 0;
    text-align: center;
    background: var(--paper-alt);
    border-radius: 8px;
}

.limit-summary--hour {
    padding: var(--space-lg) var(--space-md);
    background: linear-gradient(to bottom, var(--paper-alt), var(--paper));
}

.limit-summary--daypart {
    padding: var(--space-xl) var(--space-lg);
    background: linear-gradient(to bottom, var(--paper-alt), var(--paper));
}

/* Emoji de celebración */
.limit-summary-emoji {
    font-size: 2rem;
    margin-bottom: var(--space-sm);
    display: block;
}

/* Texto de avance */
.limit-summary-label {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: var(--space-sm);
}

/* Label en color pulpo (violeta) */
.limit-summary-label--accent {
    color: #A569BA;
}

.limit-summary-range {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ink-light);
    margin-bottom: var(--space-md);
}

.limit-summary-keywords {
    font-family: var(--font-serif);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.6;
}

.limit-summary-keywords span {
    display: inline-block;
    margin: 0 var(--space-sm);
    padding: var(--space-xs) 0;
}

.limit-summary-keywords span::after {
    content: none;
}

.limit-summary-meta {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
    margin-top: var(--space-md);
}

/* ========================================
   RESPONSIVE - Solo 1 breakpoint (móvil)
   ======================================== */
@media (max-width: 768px) {
    html {
        font-size: 18px; /* Base más grande para legibilidad */
    }

    /* Destacada: imagen arriba en móvil */
    .article--destacada .article-content {
        grid-template-columns: 1fr;
    }

    .article--destacada .article-title {
        font-size: 1.4rem;
        text-align: left;
        max-width: 100%;
    }

    .article--destacada .article-source {
        text-align: left;
    }

    .article--normal .article-title {
        font-size: 1.15rem;
    }

    /* El Minuto: más compacto */
    .minute-group {
        padding: var(--space-sm) var(--space-md);
    }
}

/* Scroll margin para compensar reading header */
.article--destacada,
.article--normal,
.article--column,
.article--compact {
    scroll-margin-top: 100px;
}

/* ========================================
   BREADCRUMB
   ======================================== */
.breadcrumb {
    font-size: 0.8rem;
    font-family: var(--font-mono);
    color: var(--ink-faint);
    margin-bottom: var(--space-xl);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.breadcrumb a {
    color: var(--ink-muted);
    text-decoration: none;
}

.breadcrumb a:hover {
    color: var(--accent-blue);
}

.breadcrumb-sep {
    margin: 0 var(--space-sm);
    color: var(--border);
}

/* ========================================
   NOTICIA PAGE
   Filosofía: Flujo de lectura sin interrupciones
   El contenido es rey. Todo lo demás: susurros.
   ======================================== */

/* Fuente - primera línea, discreta */
.noticia-fuente {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-md);
    line-height: 1.6;
}

.noticia-canal {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink);
}

.noticia-categoria {
    color: var(--ink-muted);
}

.noticia-categoria::before {
    content: " · ";
    color: var(--border);
}

.noticia-programa {
    color: var(--ink-faint);
}

.noticia-programa::before {
    content: " · ";
    color: var(--border);
}

.noticia-fuente time {
    color: var(--ink-muted);
}

.noticia-fuente time::before {
    content: " · ";
    color: var(--border);
}

/* Título - el gancho, prominente */
.noticia-titulo {
    font-family: var(--font-serif);
    font-size: 2.2rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--ink);
    margin-bottom: var(--space-xl);
    max-width: 900px;
}

/* Cuerpo - el contenido */
.noticia-cuerpo {
    font-size: 1.1rem;
    line-height: 1.8;
    color: var(--ink-light);
    margin-bottom: var(--space-2xl);
    max-width: 720px;
}

.noticia-cuerpo p {
    margin-bottom: var(--space-md);
}

/* Cierre - todo junto, fluye como texto */
.noticia-cierre {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    padding-top: var(--space-sm);
}

/* Temas - inline, como una oración */
.noticia-temas {
    margin-bottom: var(--space-sm);
    line-height: 1.6;
}

.noticia-temas a {
    color: var(--ink-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.noticia-temas a:hover {
    color: #A569BA;
}

/* ========================================
   INSTRUMENT - Análisis de cobertura
   ======================================== */
/* Indicadores - subtítulo debajo del título */
.noticia-indicadores {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-faint);
    margin-bottom: var(--space-lg);
}

/* Instrumento: actores y temas como metadata */
.instrument {
    font-family: var(--font-mono);
    margin-top: var(--space-xl);
    margin-bottom: var(--space-lg);
}

.instrument-words {
    font-size: 0.8rem;
    color: var(--ink-muted);
    line-height: 1.8;
}

.instrument-words a {
    color: var(--ink-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.instrument-words a:hover {
    color: var(--ink);
}

.instrument-words--actores {
    font-size: 0.85rem;
    color: var(--ink-light);
    margin-bottom: 0.25rem;
}

.instrument-words--actores a {
    color: var(--ink-light);
    font-weight: 700;
}

/* Desarrollo - referencia a noticia padre */
.noticia-desarrollo {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-md);
    padding: var(--space-sm) 0;
    border-top: 1px solid var(--border-light);
}

.noticia-desarrollo a {
    color: #A569BA;
    text-decoration: none;
}

.noticia-desarrollo a:hover {
    text-decoration: underline;
}

/* Origen - cita al pie, casi invisible */
.noticia-origen {
    font-size: 0.7rem;
    color: var(--ink-faint);
    margin-bottom: var(--space-md);
}

.noticia-origen a {
    color: var(--ink-faint);
    text-decoration: none;
    border-bottom: 1px dotted var(--ink-faint);
}

.noticia-origen a:hover {
    color: #A569BA;
    border-bottom-color: #A569BA;
}

/* Barra de acciones: compartir + inicio */
.noticia-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) 0;
    margin-top: var(--space-md);
    border-top: 1px solid var(--border);
}

.noticia-share {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-family: var(--font-mono);
    font-size: 0.75rem;
}

.noticia-share-label {
    color: var(--ink-faint);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin-right: var(--space-xs);
}

.share-link {
    color: var(--ink-muted);
    text-decoration: none;
    padding: 0.25em 0.5em;
    border: 1px solid var(--border);
    border-radius: 3px;
    transition: color 0.15s ease, border-color 0.15s ease;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    line-height: 1;
}

.share-link:hover {
    color: var(--ink);
    border-color: var(--ink-muted);
}

.share-sep {
    display: none;
}

.noticia-volver {
    display: flex;
}

.noticia-volver a {
    color: var(--ink-muted);
    text-decoration: none;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    padding: 0.25em 0.5em;
    border: 1px solid var(--border);
    border-radius: 3px;
    transition: color 0.15s ease, border-color 0.15s ease;
}

.noticia-volver a:hover {
    color: var(--ink);
    border-color: var(--ink-muted);
}

/* ========================================
   EDICION PAGE
   Filosofía: Lista clara de noticias de una hora
   ======================================== */
.edicion {
    max-width: 900px;
    margin: 0 auto;
}

.edicion-header {
    margin-bottom: var(--space-2xl);
    padding-bottom: var(--space-lg);
    border-bottom: 2px solid var(--ink);
}

.edicion-hora {
    font-family: var(--font-mono);
    font-size: 3rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--ink);
    display: block;
}

.edicion-fecha {
    font-family: var(--font-serif);
    font-size: 1.2rem;
    color: var(--ink-light);
    margin: var(--space-xs) 0;
}

.edicion-count {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
    text-transform: uppercase;
    letter-spacing: 0.1em;
}

.edicion-noticias {
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
}

/* Items de noticia en listado */
.noticia-item {
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.noticia-item:last-child {
    border-bottom: none;
}

.noticia-item-meta {
    display: flex;
    align-items: baseline;
    gap: var(--space-sm);
    margin-bottom: var(--space-sm);
    font-family: var(--font-mono);
    font-size: 0.7rem;
}

.noticia-item-canal {
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--ink-muted);
}

.noticia-item-hora {
    color: var(--ink-faint);
}

.noticia-item-hora::before {
    content: "·";
    margin-right: var(--space-sm);
    color: var(--border);
}

.noticia-item-thumb {
    display: block;
    margin-bottom: var(--space-sm);
}

.noticia-item-thumb img {
    width: 100%;
    max-width: 400px;
    aspect-ratio: 16/9;
    object-fit: cover;
    display: block;
}

.noticia-item-titulo {
    font-family: var(--font-serif);
    font-size: 1.3rem;
    font-weight: 600;
    line-height: 1.35;
    margin-bottom: var(--space-xs);
}

.noticia-item-titulo a {
    color: var(--ink);
    text-decoration: none;
}

.noticia-item-titulo a:hover {
    color: #A569BA;
}

.noticia-item-resumen {
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--ink-muted);
}

.noticia-item--destacada .noticia-item-titulo {
    font-size: 1.5rem;
}

.edicion-nav {
    display: flex;
    gap: var(--space-lg);
    padding-top: var(--space-xl);
    margin-top: var(--space-xl);
    border-top: 1px solid var(--border);
    font-family: var(--font-mono);
    font-size: 0.8rem;
}

.edicion-nav a {
    color: var(--ink-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.edicion-nav a:hover {
    color: #A569BA;
}

.article-index {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--paper);
    background: var(--accent-blue);
    min-width: 1.6rem;
    height: 1.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 3px;
    margin-right: var(--space-sm);
}

/* ========================================
   BUTTONS
   ======================================== */
.btn {
    display: inline-block;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--accent-blue);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    padding: var(--space-sm) var(--space-lg);
    border: 1px solid var(--accent-blue);
    border-radius: 3px;
    transition: all 0.15s ease;
}

.btn:hover {
    background: var(--accent-blue);
    color: var(--paper);
}

/* ========================================
   PAGINATION
   ======================================== */
.pagination {
    text-align: center;
    padding: var(--space-xl) 0;
    border-top: 1px solid var(--border);
    margin-top: var(--space-lg);
}

/* ========================================
   ARCHIVO
   ======================================== */
.archivo-header {
    margin-bottom: var(--space-xl);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border);
}

.archivo-titulo {
    font-family: var(--font-serif);
    font-size: 2rem;
    font-weight: 700;
    letter-spacing: -0.03em;
    margin-bottom: var(--space-xs);
    color: var(--ink);
}

.archivo-stats {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-faint);
}

.archivo-meses {
    display: flex;
    flex-direction: column;
    gap: var(--space-xl);
}

.archivo-mes-block {
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.archivo-mes-titulo {
    font-family: var(--font-serif);
    font-size: 1.3rem;
    font-weight: 600;
    margin-bottom: var(--space-md);
}

.archivo-mes-titulo a {
    color: var(--ink);
    text-decoration: none;
}

.archivo-mes-titulo a:hover {
    color: var(--ink-light);
}

.archivo-dias-grid {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
}

.archivo-dia {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    text-decoration: none;
    padding: var(--space-xs) var(--space-sm);
    border-bottom: 1px solid transparent;
    transition: all 0.15s ease;
}

.archivo-dia:hover {
    color: var(--ink);
    border-bottom-color: var(--ink);
}

.archivo-nav {
    margin-top: var(--space-xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border);
}

.archivo-link {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    text-decoration: none;
}

.archivo-link:hover {
    color: var(--ink);
}

/* Archivo: lista de días (mes view) */
.archivo-list {
    list-style: none;
}

.archivo-list li {
    border-bottom: 1px solid var(--border-light);
}

.archivo-list a {
    color: var(--ink);
    text-decoration: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-md) var(--space-sm);
    font-family: var(--font-mono);
    font-size: 0.95rem;
    transition: all 0.15s ease;
}

.archivo-list a:hover {
    color: var(--ink-light);
}

.archivo-count {
    font-size: 0.8rem;
    color: var(--ink-faint);
}

.archivo-section {
    margin-bottom: var(--space-2xl);
}

.archivo-section h2 {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--ink-muted);
    margin-bottom: var(--space-md);
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--border);
}

/* ========================================
   FOOTER
   ======================================== */
.footer {
    border-top: 1px solid var(--border);
    padding: var(--space-xl) 0;
    margin-top: auto;
    background: var(--paper-alt);
}

.footer p {
    font-size: 0.8rem;
    color: var(--ink-faint);
    text-align: center;
    font-family: var(--font-mono);
}

.footer-links {
    margin-top: var(--space-sm);
}

.footer-links a {
    color: var(--ink-muted);
    text-decoration: none;
}

.footer-links a:hover {
    color: var(--accent-blue);
}

.footer-legal {
    margin-top: var(--space-xs);
    font-size: 0.75rem;
}

.footer-legal a {
    color: var(--ink-faint);
    text-decoration: none;
}

.footer-legal a:hover {
    color: #A569BA;
}

/* ========================================
   RESPONSIVE
   ======================================== */
@media (max-width: 640px) {
    html {
        font-size: 18px;
    }

    .container {
        padding: 0 var(--space-md);
    }

    .header {
        padding: var(--space-md) 0;
    }

    .logo-icon {
        width: 36px;
        height: 36px;
    }

    /* Ocultar texto del logo en móvil */
    .logo-text {
        display: none;
    }

    /* Mostrar iconos en móvil */
    .nav-icon {
        display: block;
    }

    /* Ocultar texto de nav en móvil (excepto nav-text-always) */
    .nav-text {
        display: none;
    }

    /* Reducir gap en nav móvil */
    .nav {
        gap: var(--space-md);
    }

    .hour-header-inner {
        flex-direction: column;
        gap: var(--space-xs);
    }

    .daypart-name {
        font-size: 1.1rem;
    }

    .article-title {
        font-size: 1.35rem;
    }

    .article-summary {
        font-size: 1rem;
        line-height: 1.7;
    }

    .noticia-titulo {
        font-size: 1.6rem;
    }

    .noticia-cuerpo {
        font-size: 1rem;
    }

    /* Instrument mobile - ya es texto plano, solo ajustar tamaño */
    .noticia-indicadores {
        font-size: 0.75rem;
    }

    .edicion-hora {
        font-size: 2.5rem;
    }

    .noticia-item-titulo {
        font-size: 1.15rem;
    }

    .noticia-item--destacada .noticia-item-titulo {
        font-size: 1.3rem;
    }

    .noticia-volver,
    .edicion-nav {
        flex-direction: column;
        gap: var(--space-md);
    }
}

/* ========================================
   SEARCH PAGE
   ======================================== */
.search-page {
    max-width: var(--max-width);
}

.search-header {
    margin-bottom: var(--space-xl);
    text-align: center;
}

.search-title {
    font-family: var(--font-mono);
    font-size: 2rem;
    font-weight: 700;
    color: var(--accent-blue);
    margin-bottom: var(--space-sm);
}

/* Search - Minimal, Coco Chanel inspired */
.search-form {
    padding: var(--space-2xl) 0;
}

.search-box {
    max-width: 500px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    border-bottom: 2px solid var(--ink-faint);
    transition: border-color 0.2s ease;
}

.search-box:focus-within {
    border-bottom-color: #A569BA;
}

.search-box input {
    flex: 1;
    padding: var(--space-md) 0;
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 400;
    color: var(--ink);
    background: transparent;
    border: none;
}

.search-box input:focus {
    outline: none;
}

.search-box input::placeholder {
    color: var(--ink-faint);
    font-style: italic;
}

.search-submit {
    padding: var(--space-sm) var(--space-md);
    font-size: 1.25rem;
    color: var(--ink-faint);
    background: transparent;
    border: none;
    cursor: pointer;
    transition: color 0.2s ease;
}

.search-submit:hover {
    color: #A569BA;
}

.search-box:focus-within .search-submit {
    color: #A569BA;
}

/* Filters area */
.search-filters {
    max-width: 500px;
    margin: var(--space-md) auto 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-sm);
}

/* Selected channel chips */
.search-chips {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.search-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: #A569BA;
    background: rgba(165, 105, 186, 0.1);
    border-radius: 3px;
}

.search-chip-remove {
    background: none;
    border: none;
    color: #A569BA;
    cursor: pointer;
    padding: 0;
    font-size: 0.9rem;
    line-height: 1;
    opacity: 0.6;
    transition: opacity 0.15s;
}

.search-chip-remove:hover {
    opacity: 1;
}

/* Filter toggle - the pocket */
.search-filter-toggle {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-xs) 0;
    transition: color 0.15s ease;
}

.search-filter-toggle:hover {
    color: #A569BA;
}

.search-filter-toggle.active {
    color: #A569BA;
}

.search-channel-hidden {
    display: none;
    width: 100%;
    margin-top: var(--space-sm);
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink);
    background: var(--paper-alt);
    border: 1px solid var(--border);
    border-radius: 4px;
    cursor: pointer;
    flex-basis: 100%;
}

.search-channel-hidden.visible {
    display: block;
}

.search-checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.4em;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-muted);
    cursor: pointer;
    margin-left: auto;
}

.search-checkbox-label input[type="checkbox"] {
    width: 14px;
    height: 14px;
    cursor: pointer;
    accent-color: #A569BA;
}

.search-checkbox-label:hover {
    color: var(--ink);
}

.search-channel-hidden:focus {
    outline: none;
    border-color: #A569BA;
}

/* Status - subtle */
.search-status {
    text-align: center;
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-lg);
    min-height: 1.2em;
}

.search-status:empty {
    display: none;
}

.search-status.loading {
    color: #A569BA;
}

.search-status.error {
    color: #dc2626;
}

/* Results */
.search-results:not(:empty) {
    border-top: 1px solid var(--border);
    padding-top: var(--space-lg);
}

.search-empty {
    text-align: center;
    padding: var(--space-2xl);
    color: var(--ink-faint);
    font-style: italic;
}

.search-error {
    text-align: center;
    padding: var(--space-xl);
    color: #dc2626;
}

.search-results .article-archived {
    opacity: 0.7;
}

.article-archived-label {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-muted);
    letter-spacing: 0.03em;
}

.article-archived-tag {
    color: #A569BA;
    font-size: inherit;
}

.article-archived-tag .lock-icon {
    width: 1em;
    height: 1em;
    vertical-align: -0.15em;
    margin-right: 3px;
}

.search-results mark {
    background: rgba(165, 105, 186, 0.15);
    color: #7a4a8a;
    padding: 0 2px;
    border-radius: 2px;
}

/* Pagination - just numbers */
.search-pagination {
    display: flex;
    justify-content: center;
    gap: 1em;
    padding: var(--space-xl) 0;
}

.page-num,
.page-current {
    font-family: var(--font-mono);
    font-size: 1.4rem;
    font-weight: 700;
    background: none;
    border: none;
    padding: 0.3em;
    cursor: pointer;
}

.page-num {
    color: #A569BA;
}

.page-current {
    color: var(--ink);
    cursor: default;
}

@media (max-width: 640px) {
    .search-pagination {
        gap: 0.4em;
    }
    .page-num,
    .page-current {
        font-size: 1.2rem;
        padding: 0.5em 0.3em;
    }
}

@media (max-width: 640px) {
    .search-box input {
        font-size: 1.25rem;
    }
}

/* ========================================
   SEARCH NAV - Barra fija de navegación de búsqueda
   Filosofía: Pobreza Cara - Máxima info, mínima fricción
   ======================================== */
.search-nav {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    background: var(--paper);
    border-bottom: 1px solid var(--border);
    transform: translateY(-100%);
    opacity: 0;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.search-nav--visible {
    transform: translateY(0);
    opacity: 1;
}

.search-nav-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: var(--space-sm) var(--space-lg);
    display: flex;
    align-items: center;
    gap: var(--space-md);
}

/* Marca */
.search-nav-brand {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding-right: var(--space-md);
    border-right: 1px solid var(--border-light);
    text-decoration: none;
}

.search-nav-logo {
    width: 28px;
    height: 28px;
}

.search-nav-name {
    font-family: var(--font-mono);
    font-size: 0.95rem;
    font-weight: 700;
    color: #A569BA;
    letter-spacing: -0.02em;
}

/* Info de búsqueda */
.search-nav-info {
    display: flex;
    align-items: baseline;
    gap: var(--space-xs);
    font-family: var(--font-mono);
    font-size: 0.75rem;
    white-space: nowrap;
    overflow: hidden;
    min-width: 0;
}

.search-nav-query {
    color: var(--ink);
    font-weight: 600;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.search-nav-sep {
    color: var(--ink-faint);
}

.search-nav-count {
    color: var(--ink-muted);
}

/* Paginación compacta */
.search-nav-pagination {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 0 var(--space-sm);
    border-left: 1px solid var(--border-light);
    border-right: 1px solid var(--border-light);
}

.search-nav-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    background: none;
    border: none;
    color: var(--ink-muted);
    cursor: pointer;
    transition: color 0.15s ease;
    border-radius: 3px;
}

.search-nav-arrow:hover:not(:disabled) {
    color: #A569BA;
    background: rgba(165, 105, 186, 0.08);
}

.search-nav-arrow:disabled {
    color: var(--ink-faint);
    opacity: 0.4;
    cursor: not-allowed;
}

.search-nav-page {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink);
    min-width: 40px;
    text-align: center;
}

/* Búsqueda rápida */
.search-nav-form {
    display: flex;
    align-items: center;
    gap: 0;
    margin-left: auto;
}

.search-nav-input {
    width: 120px;
    padding: var(--space-xs) var(--space-sm);
    font-family: var(--font-sans);
    font-size: 0.8rem;
    color: var(--ink);
    background: var(--paper-alt);
    border: 1px solid var(--border);
    border-right: none;
    border-radius: 3px 0 0 3px;
    transition: border-color 0.15s ease, width 0.2s ease;
}

.search-nav-input::placeholder {
    color: var(--ink-faint);
    font-style: italic;
}

.search-nav-input:focus {
    outline: none;
    border-color: #A569BA;
    width: 160px;
}

.search-nav-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--space-xs) var(--space-sm);
    background: var(--paper-alt);
    border: 1px solid var(--border);
    border-radius: 0 3px 3px 0;
    color: var(--ink-muted);
    cursor: pointer;
    transition: all 0.15s ease;
}

.search-nav-submit:hover {
    background: #A569BA;
    border-color: #A569BA;
    color: var(--paper);
}

/* Responsive */
@media (max-width: 768px) {
    .search-nav-inner {
        padding: var(--space-xs) var(--space-md);
        gap: var(--space-sm);
    }

    .search-nav-name {
        display: none;
    }

    .search-nav-info {
        flex: 1;
        min-width: 0;
    }

    .search-nav-query {
        max-width: 80px;
    }

    .search-nav-form {
        display: none;
    }

    .search-nav-pagination {
        padding: 0 var(--space-xs);
    }
}

@media (max-width: 480px) {
    .search-nav-count {
        display: none;
    }

    .search-nav-sep {
        display: none;
    }

    .search-nav-query {
        max-width: 100px;
    }

    .search-nav-brand {
        padding-right: var(--space-sm);
    }

    .search-nav-logo {
        width: 24px;
        height: 24px;
    }
}

/* Nav link activo */
.nav-link--active {
    color: #A569BA;
}

/* ========================================
   PÁGINAS DE CONTENIDO (legal, institucional)
   Filosofía: legibilidad absoluta, calma, claridad
   ======================================== */
.pagina {
    max-width: 680px;
    margin: 0 auto;
    padding: var(--space-xl) 0 var(--space-2xl);
}

.pagina-header {
    margin-bottom: var(--space-2xl);
    padding-bottom: var(--space-lg);
    border-bottom: 2px solid var(--ink);
}

.pagina-titulo {
    font-family: var(--font-serif);
    font-size: 2.2rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
    margin: 0;
}

.pagina-subtitulo {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    margin-top: var(--space-sm);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Contenido - optimizado para lectura larga */
.pagina-contenido {
    font-size: 1.05rem;
    line-height: 1.8;
    color: var(--ink-light);
}

.pagina-contenido h2 {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    font-weight: 700;
    color: var(--ink);
    margin: var(--space-2xl) 0 var(--space-md);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border-light);
}

.pagina-contenido h2:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

.pagina-contenido h3 {
    font-family: var(--font-sans);
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--ink);
    margin: var(--space-xl) 0 var(--space-sm);
}

.pagina-contenido p {
    margin-bottom: var(--space-md);
}

.pagina-contenido ul,
.pagina-contenido ol {
    margin-bottom: var(--space-md);
    padding-left: var(--space-lg);
}

.pagina-contenido li {
    margin-bottom: var(--space-xs);
}

.pagina-contenido strong {
    color: var(--ink);
    font-weight: 600;
}

.pagina-contenido a {
    color: #A569BA;
    text-decoration: none;
}

.pagina-contenido a:hover {
    text-decoration: underline;
}

.pagina-contenido hr {
    border: none;
    border-top: 1px solid var(--border-light);
    margin: var(--space-xl) 0;
}

.pagina-contenido em {
    font-style: italic;
    color: var(--ink-muted);
}

/* Navegación entre páginas legales */
.pagina-nav {
    margin-top: var(--space-2xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border);
    font-family: var(--font-mono);
    font-size: 0.8rem;
    text-align: center;
}

.pagina-nav a {
    color: var(--ink-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}

.pagina-nav a:hover {
    color: #A569BA;
}

.pagina-nav-sep {
    color: var(--border);
    margin: 0 var(--space-sm);
}

/* Responsive */
@media (max-width: 768px) {
    .pagina {
        padding: var(--space-lg) 0 var(--space-xl);
    }

    .pagina-titulo {
        font-size: 1.8rem;
    }

    .pagina-contenido {
        font-size: 1rem;
    }

    .pagina-contenido h2 {
        font-size: 1.25rem;
    }
}

/* ========================================
   PRINT
   ======================================== */
@media print {
    .header,
    .footer,
    .nav,
    .btn,
    .noticia-video,
    .hour-link,
    .article-link {
        display: none;
    }

    body {
        font-size: 11pt;
        color: #000;
        background: #fff;
    }

    .article {
        page-break-inside: avoid;
    }

    .article-title a {
        color: #000;
    }
}

/* ========================================
   CANALES PAGE - Radiografía de la TV
   ======================================== */
.canales-page {
    padding: var(--space-xl) 0;
}

.canales-header {
    margin-bottom: var(--space-2xl);
}

.canales-titulo {
    font-family: var(--font-serif);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-xs);
}

.canales-fecha {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    margin-bottom: var(--space-sm);
}

.canales-bajada {
    font-size: 0.95rem;
    color: var(--ink-light);
    max-width: 600px;
    line-height: 1.5;
}

/* Sections */
.canales-section {
    margin-bottom: var(--space-2xl);
    padding-bottom: var(--space-xl);
    border-bottom: 1px solid var(--border-light);
}

.canales-section:last-of-type {
    border-bottom: none;
}

.canales-section-title {
    font-family: var(--font-serif);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-xs);
}

.canales-section-desc {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
    margin-bottom: var(--space-lg);
    max-width: 550px;
}

/* Channel rows */
.canales-ranking {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.canal-row {
    display: grid;
    grid-template-columns: 1.5rem 120px 1fr 40px 90px;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-xs) 0;
}

.canal-row--politica {
    grid-template-columns: 120px 1fr 100px;
}

.canal-rank {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    color: var(--ink-faint);
    text-align: right;
}

.canal-nombre {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--ink);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.canal-valor {
    font-family: var(--font-mono);
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--ink);
    text-align: right;
}

.canal-palabra {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-muted);
    text-transform: lowercase;
}

/* Bars */
.canal-bar-container {
    height: 18px;
    background: var(--paper-alt);
    border-radius: 2px;
    position: relative;
    overflow: hidden;
}

.canal-bar {
    height: 100%;
    border-radius: 2px;
    transition: width 0.3s ease;
}

.canal-bar--tension {
    background: var(--ink);
    opacity: 0.7;
}

/* Sesgo bar (centered) */
.canal-bar-container--sesgo {
    position: relative;
}

.canal-bar--sesgo-neg {
    position: absolute;
    background: var(--ink);
    opacity: 0.5;
}

.canal-bar--sesgo-pos {
    position: absolute;
    background: var(--ink);
    opacity: 0.3;
}

.canal-bar-center {
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--ink-faint);
}

.canal-valor--sesgo {
    font-size: 0.75rem;
}

.sesgo-neg { color: var(--ink); }
.sesgo-pos { color: var(--ink-muted); }

/* Political spectrum */
.canal-espectro {
    display: flex;
    height: 22px;
    border-radius: 2px;
    overflow: hidden;
    background: var(--paper-alt);
}

.espectro-segmento {
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 2px;
}

.espectro-segmento span {
    font-family: var(--font-mono);
    font-size: 0.6rem;
    font-weight: 600;
    color: white;
}

.espectro-izquierda { background: #1a1a2e; }
.espectro-centro_izquierda { background: #3d3d5c; }
.espectro-centro { background: #6b6b8a; }
.espectro-centro_derecha { background: #9a9ab0; }
.espectro-derecha { background: #c5c5d0; }
.espectro-derecha span { color: var(--ink); }
.espectro-na { background: var(--border); }
.espectro-na span { color: var(--ink-muted); }

.canal-posicion-label {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-muted);
    text-align: right;
    white-space: nowrap;
}

/* Spectrum legend */
.espectro-leyenda {
    display: flex;
    gap: var(--space-md);
    margin-top: var(--space-sm);
    flex-wrap: wrap;
}

.espectro-leyenda-item {
    display: flex;
    align-items: center;
    gap: 4px;
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: var(--ink-faint);
}

.espectro-dot {
    width: 8px;
    height: 8px;
    border-radius: 1px;
    display: inline-block;
}

/* Daypart breakdown */
.canales-daypart {
    margin-bottom: var(--space-lg);
}

.daypart-label {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xs);
    padding-bottom: var(--space-xs);
    border-bottom: 1px solid var(--border-light);
}

.daypart-canales {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.daypart-canal-row {
    display: grid;
    grid-template-columns: 120px 1fr 40px 50px 30px;
    align-items: center;
    gap: var(--space-sm);
    padding: 2px 0;
}

.canal-mini-bar-wrap {
    height: 12px;
    background: var(--paper-alt);
    border-radius: 1px;
    overflow: hidden;
    display: block;
}

.canal-mini-bar {
    height: 100%;
    border-radius: 1px;
    display: block;
}

.canal-count {
    font-family: var(--font-mono);
    font-size: 0.65rem;
    color: var(--ink-faint);
}


/* Footer */
.canales-footer {
    margin-top: var(--space-xl);
    padding-top: var(--space-lg);
    border-top: 1px solid var(--border);
}

.canales-footer p {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
    max-width: 550px;
    line-height: 1.6;
}

.canales-footer a {
    color: var(--ink-muted);
}

/* Mobile */
@media (max-width: 768px) {
    .canales-titulo {
        font-size: 2rem;
    }

    .canal-row {
        grid-template-columns: 1.2rem 80px 1fr 35px 70px;
        font-size: 0.75rem;
    }

    .canal-row--politica {
        grid-template-columns: 80px 1fr 70px;
    }

    .daypart-canal-row {
        grid-template-columns: 80px 1fr 35px 45px 25px;
    }

}

@media (max-width: 480px) {
    .canal-row {
        grid-template-columns: 1rem 70px 1fr 30px;
    }

    .canal-palabra {
        display: none;
    }

    .canal-row--politica {
        grid-template-columns: 70px 1fr;
    }

    .canal-posicion-label {
        display: none;
    }

    .daypart-canal-row {
        grid-template-columns: 70px 1fr 30px 40px;
    }

    .canal-count {
        display: none;
    }
}

/* ========================================
   RANKINGS PAGE
   ======================================== */
.rankings-page {
    padding: var(--space-xl) 0;
}

.rankings-header {
    margin-bottom: var(--space-xl);
}

.rankings-titulo {
    font-family: var(--font-serif);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-xs);
}

.rankings-fecha {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
}

.rankings-ronda {
    margin-bottom: var(--space-lg);
    padding-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border-light);
}

.rankings-ronda:last-child {
    border-bottom: none;
}

@media (max-width: 768px) {
    .rankings-titulo {
        font-size: 2rem;
    }
}

/* ========================================
   TENDENCIAS PAGE
   ======================================== */
.tendencias-page {
    padding: var(--space-xl) 0;
}

.tendencias-header {
    margin-bottom: var(--space-xl);
}

.tendencias-titulo {
    font-family: var(--font-serif);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-xs);
}

.tendencias-fecha {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
}

.tendencias-list {
    display: flex;
    flex-direction: column;
}

.tendencia {
    padding: var(--space-lg) 0;
    border-bottom: 1px solid var(--border-light);
}

.tendencia:last-child {
    border-bottom: none;
}

.tendencia-category-line {
    display: flex;
    align-items: baseline;
    gap: var(--space-sm);
    margin-bottom: var(--space-xs);
}

.tendencia-categoria {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.tendencia-meta-inline {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
}

.tendencia-titulo {
    font-family: var(--font-serif);
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.3;
    margin-bottom: var(--space-xs);
}

.tendencia-titulo--importante {
    font-weight: 700;
    font-size: 1.6rem;
}

.tendencia-titulo a {
    color: inherit;
    text-decoration: none;
}

.tendencia-titulo a:hover {
    color: #A569BA;
}

.tendencia-copete {
    font-family: var(--font-sans);
    font-size: 0.95rem;
    color: var(--ink-light);
    line-height: 1.5;
    margin-bottom: var(--space-xs);
}

.tendencia-rango {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
}

.tendencia-estado {
    color: var(--ink-muted);
    margin-left: var(--space-sm);
}

.tendencias-empty {
    color: var(--ink-muted);
    font-style: italic;
    padding: var(--space-xl) 0;
}

@media (max-width: 768px) {
    .tendencias-titulo {
        font-size: 2rem;
    }
    .tendencia-titulo {
        font-size: 1.2rem;
    }
    .tendencia-titulo--importante {
        font-size: 1.35rem;
    }
}

/* ========================================
   INICIO PAGE — home alternativa (coberturas + rankings)
   ======================================== */
.inicio-page {
    padding: var(--space-xl) 0;
}

.inicio-header {
    margin-bottom: var(--space-2xl);
}

.inicio-titulo {
    font-family: var(--font-serif);
    font-size: 2.5rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-xs);
}

.inicio-fecha {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
}

.inicio-section {
    margin-bottom: var(--space-2xl);
}

.inicio-section-title {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    padding-bottom: var(--space-sm);
    border-bottom: 1px solid var(--border);
    margin-bottom: var(--space-lg);
}

/* --- Lead cobertura --- */
.tendencia--lead {
    padding-bottom: var(--space-xl);
    margin-bottom: var(--space-lg);
    border-bottom: 1px solid var(--border);
}

.tendencia-titulo--lead {
    font-family: var(--font-serif);
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
    margin-bottom: var(--space-sm);
}

.tendencia-titulo--lead a {
    color: inherit;
    text-decoration: none;
}

.tendencia-titulo--lead a:hover {
    color: #A569BA;
}

/* --- Coberturas grid (2 col) --- */
.inicio-coberturas-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
}

.tendencia--compact {
    padding: var(--space-md) var(--space-md) var(--space-md) 0;
    border-bottom: 1px solid var(--border-light);
}

/* Línea vertical entre columnas impares y pares */
.tendencia--compact:nth-child(odd) {
    padding-right: var(--space-lg);
    border-right: 1px solid var(--border-light);
}

.tendencia--compact:nth-child(even) {
    padding-left: var(--space-lg);
}

.tendencia--compact .tendencia-titulo {
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
    margin: var(--space-xs) 0;
}

.tendencia--compact .tendencia-rango {
    font-size: 0.7rem;
}

/* --- Intensas grid (2 col para rondas 2+) --- */
.inicio-intensas-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin-top: var(--space-md);
    padding-top: var(--space-md);
    border-top: 1px solid var(--border-light);
}

.inicio-intensa-compact {
    padding: var(--space-sm) var(--space-md) var(--space-md) 0;
    border-bottom: 1px solid var(--border-light);
}

.inicio-intensa-compact:nth-child(odd) {
    padding-right: var(--space-lg);
    border-right: 1px solid var(--border-light);
}

.inicio-intensa-compact:nth-child(even) {
    padding-left: var(--space-lg);
}

.inicio-intensa-titulo {
    font-family: var(--font-serif);
    font-size: 1.05rem;
    font-weight: 600;
    line-height: 1.3;
    margin: var(--space-xs) 0;
}

.inicio-intensa-titulo a {
    color: var(--ink);
    text-decoration: none;
}

.inicio-intensa-titulo a:hover {
    color: var(--accent-blue);
}

/* --- Nav final --- */
.inicio-nav {
    padding-top: var(--space-xl);
    border-top: 1px solid var(--border);
    text-align: center;
    font-family: var(--font-mono);
    font-size: 0.85rem;
}

.inicio-nav-link {
    color: var(--ink-muted);
    text-decoration: none;
}

.inicio-nav-link:hover {
    color: var(--ink);
}

.inicio-nav-sep {
    color: var(--ink-faint);
    margin: 0 var(--space-sm);
}

/* --- Mobile --- */
@media (max-width: 768px) {
    .inicio-titulo {
        font-size: 2rem;
    }

    .tendencia-titulo--lead {
        font-size: 1.5rem;
    }

    .inicio-coberturas-grid {
        grid-template-columns: 1fr;
    }

    .tendencia--compact:nth-child(odd) {
        padding-right: 0;
        border-right: none;
    }

    .tendencia--compact:nth-child(even) {
        padding-left: 0;
    }

    .inicio-intensas-grid {
        grid-template-columns: 1fr;
    }

    .inicio-intensa-compact:nth-child(odd) {
        padding-right: 0;
        border-right: none;
    }

    .inicio-intensa-compact:nth-child(even) {
        padding-left: 0;
    }
}

/* ========================================
   RELATED NEWS — reutiliza article--normal de la cronología
   ======================================== */
.noticia-related {
    margin-top: var(--space-2xl);
    padding-top: var(--space-xl);
    border-top: 1px solid var(--border);
}

.noticia-related-title {
    font-family: var(--font-serif);
    font-size: 2rem;
    font-weight: 700;
    color: var(--ink);
    margin-bottom: var(--space-md);
}

.related-list {
    display: flex;
    flex-direction: column;
}

.related-list .article {
    padding: var(--space-md) 0;
    border-bottom: 1px solid var(--border-light);
}

.related-list .article::before {
    display: none;
}

.related-list .article:last-child {
    border-bottom: none;
}

@media (max-width: 768px) {
    .noticia-related-title {
        font-size: 1.6rem;
    }
}

/* ============================
   PRIMICIAS PAGE — Timeline
   ============================ */
/* --- Primicias flow --- */
.primicia-count {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
    margin-left: auto;
}

.primicia-flow {
    list-style: none;
    padding: 0 0 0 1rem;
    margin: 0.75rem 0 0 0;
    border-left: 2px solid rgba(var(--cat-color, 255,255,255), 0.25);
    position: relative;
}

.primicia-node {
    padding: 0 0 0 1rem;
    margin-bottom: 0;
    position: relative;
}

.primicia-node::before {
    content: '';
    position: absolute;
    left: -1.07rem;
    top: 0.55rem;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: rgba(var(--cat-color, 255,255,255), 0.4);
    border: 1.5px solid rgba(var(--cat-color, 255,255,255), 0.6);
}

.primicia-node--first::before {
    width: 9px;
    height: 9px;
    left: -1.14rem;
    top: 0.45rem;
    background: rgb(var(--cat-color, 255,255,255));
    border: none;
    box-shadow: 0 0 6px rgba(var(--cat-color, 255,255,255), 0.5);
}

.primicia-node-head {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    font-family: var(--font-mono);
    font-size: 0.8rem;
}

.primicia-canal {
    color: var(--ink);
    font-weight: 600;
}

.primicia-hora {
    color: var(--ink-muted);
}

.primicia-delay {
    color: var(--ink-faint);
    font-size: 0.7rem;
}

.primicia-node--first .primicia-delay {
    color: rgb(var(--cat-color, 255,255,255));
    font-weight: 600;
}

.primicia-programa {
    font-family: var(--font-mono);
    font-size: 0.7rem;
    color: var(--ink-faint);
    margin-top: 0.15rem;
}

.primicia-titulo {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    color: var(--ink-muted);
    margin-top: 0.2rem;
    line-height: 1.35;
}

.primicia-node--first .primicia-titulo {
    color: var(--ink);
    font-weight: 500;
}

.primicia-arrow {
    font-size: 0.75rem;
    color: rgba(var(--cat-color, 255,255,255), 0.35);
    padding: 0.35rem 0;
    line-height: 1;
}

/* Single-channel (no flow) */
.primicia-solo {
    padding: 0.75rem 0 0 0;
}

.primicia-solo .primicia-node-head {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    font-family: var(--font-mono);
    font-size: 0.8rem;
}

.primicia-solo .primicia-canal {
    font-weight: 600;
}

.primicia-solo .primicia-titulo {
    font-family: var(--font-sans);
    font-size: 0.85rem;
    color: var(--ink);
    font-weight: 500;
    margin-top: 0.2rem;
    line-height: 1.35;
}

.primicia-exclusiva {
    font-family: var(--font-mono);
    font-size: 0.75rem;
    color: var(--ink-faint);
    margin: 0.5rem 0 0 0;
}

@media (max-width: 600px) {
    .primicia-node-head {
        font-size: 0.75rem;
    }

    .primicia-titulo {
        font-size: 0.8rem;
    }

    .primicia-programa {
        font-size: 0.65rem;
    }
}
