* {
            font-family: 'Outfit', Inter, sans-serif
        }

        body {
            background-color: #020617;
            color: #e2e8f0;
            min-height: 100vh
        }

        /* fondo */
        .bg-animated {
            position: fixed;
            inset: 0;
            z-index: 0;
            overflow: hidden;
            pointer-events: none
        }

        .bg-animated::before {
            content: '';
            position: absolute;
            top: -40%;
            left: -20%;
            width: 80%;
            height: 80%;
            background: radial-gradient(ellipse, rgba(255, 107, 53, .12) 0%, transparent 70%);
            animation: pulse-orb 8s ease-in-out infinite
        }

        .bg-animated::after {
            content: '';
            position: absolute;
            bottom: -30%;
            right: -10%;
            width: 60%;
            height: 60%;
            background: radial-gradient(ellipse, rgba(99, 102, 241, .07) 0%, transparent 70%);
            animation: pulse-orb 10s ease-in-out infinite reverse
        }

        @keyframes pulse-orb {

            0%,
            100% {
                transform: scale(1) translate(0, 0);
                opacity: 1
            }

            50% {
                transform: scale(1.1) translate(2%, 3%);
                opacity: .7
            }
        }

        /* navbar */
        .glass-nav {
            background: rgba(2, 6, 23, .8);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            border-bottom: 1px solid rgba(255, 255, 255, .06)
        }

        /* cards */
        .news-card {
            background: rgba(15, 23, 42, .6);
            border: 1px solid rgba(255, 255, 255, .08);
            backdrop-filter: blur(12px);
            -webkit-backdrop-filter: blur(12px);
            transition: all .3s ease;
            position: relative;
            overflow: hidden
        }

        .news-card::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            height: 2px;
            background: linear-gradient(90deg, transparent, rgba(255, 107, 53, .6), transparent);
            opacity: 0;
            transition: opacity .3s
        }

        .news-card:hover {
            background: rgba(30, 41, 59, .7);
            border-color: rgba(255, 107, 53, .25);
            transform: translateY(-3px);
            box-shadow: 0 20px 40px rgba(0, 0, 0, .4), 0 0 30px rgba(255, 107, 53, .06)
        }

        .news-card:hover::before {
            opacity: 1
        }

        .pci-card::before {
            background: linear-gradient(90deg, transparent, rgba(96, 165, 250, .6), transparent)
        }

        .pci-card:hover {
            border-color: rgba(96, 165, 250, .25)
        }

        /* badges */
        .badge-critico {
            background: rgba(239, 68, 68, .15);
            color: #f87171;
            border: 1px solid rgba(239, 68, 68, .3)
        }

        .badge-alto {
            background: rgba(255, 107, 53, .15);
            color: #ff6b35;
            border: 1px solid rgba(255, 107, 53, .3)
        }

        .badge-medio {
            background: rgba(234, 179, 8, .12);
            color: #facc15;
            border: 1px solid rgba(234, 179, 8, .3)
        }

        .badge-info {
            background: rgba(99, 102, 241, .15);
            color: #818cf8;
            border: 1px solid rgba(99, 102, 241, .3)
        }

        .badge-blue {
            background: rgba(59, 130, 246, .15);
            color: #60a5fa;
            border: 1px solid rgba(59, 130, 246, .3)
        }

        .badge-green {
            background: rgba(34, 197, 94, .12);
            color: #4ade80;
            border: 1px solid rgba(34, 197, 94, .3)
        }

        /* stat */
        .stat-item {
            background: rgba(15, 23, 42, .7);
            border: 1px solid rgba(255, 255, 255, .07);
            backdrop-filter: blur(8px)
        }

        /* ticker */
        .alert-ticker {
            background: linear-gradient(90deg, rgba(239, 68, 68, .15), rgba(255, 107, 53, .15));
            border-bottom: 1px solid rgba(239, 68, 68, .2)
        }

        .ticker-inner {
            display: inline-flex;
            gap: 4rem;
            animation: ticker 40s linear infinite;
            white-space: nowrap
        }

        @keyframes ticker {
            0% {
                transform: translateX(0)
            }

            100% {
                transform: translateX(-50%)
            }
        }

        /* tabs principales */
        .tab-btn {
            padding: 10px 24px;
            border-radius: 12px;
            font-weight: 600;
            font-size: .9rem;
            border: 1px solid rgba(255, 255, 255, .1);
            color: #94a3b8;
            background: rgba(255, 255, 255, .03);
            cursor: pointer;
            transition: all .25s;
            display: flex;
            align-items: center;
            gap: 8px
        }

        .tab-btn:hover {
            background: rgba(255, 255, 255, .07);
            color: #e2e8f0
        }

        .tab-btn.active-fire {
            background: rgba(255, 107, 53, .15);
            color: #ff6b35;
            border-color: rgba(255, 107, 53, .4);
            box-shadow: 0 0 20px rgba(255, 107, 53, .1)
        }

        .tab-btn.active-pci {
            background: rgba(59, 130, 246, .15);
            color: #60a5fa;
            border-color: rgba(59, 130, 246, .4);
            box-shadow: 0 0 20px rgba(59, 130, 246, .1)
        }

        .tab-panel {
            display: none
        }

        .tab-panel.visible {
            display: block
        }

        /* selector de año */
        .year-selector {
            display: flex;
            gap: 10px;
            flex-wrap: wrap;
            margin-bottom: 28px
        }

        .year-btn {
            position: relative;
            padding: 0;
            border: none;
            background: none;
            cursor: pointer;
            outline: none
        }

        .year-btn .year-card {
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            width: 110px;
            padding: 14px 12px;
            border-radius: 16px;
            border: 2px solid rgba(255, 255, 255, .08);
            background: rgba(15, 23, 42, .6);
            transition: all .25s;
        }

        .year-btn .year-num {
            font-size: 1.5rem;
            font-weight: 800;
            color: #94a3b8;
            line-height: 1;
            transition: color .2s
        }

        .year-btn .year-ha {
            font-size: .7rem;
            color: #475569;
            margin-top: 4px;
            transition: color .2s
        }

        .year-btn .year-badge {
            font-size: .6rem;
            font-weight: 700;
            padding: 2px 8px;
            border-radius: 999px;
            margin-top: 6px
        }

        .year-btn:hover .year-card {
            border-color: rgba(255, 107, 53, .3);
            background: rgba(30, 41, 59, .7)
        }

        .year-btn:hover .year-num {
            color: #e2e8f0
        }

        /* estados activos por año */
        .year-btn.active-2025 .year-card {
            border-color: #f87171;
            background: rgba(239, 68, 68, .12);
            box-shadow: 0 0 24px rgba(239, 68, 68, .15)
        }

        .year-btn.active-2025 .year-num {
            color: #f87171
        }

        .year-btn.active-2025 .year-ha {
            color: #fca5a5
        }

        .year-btn.active-2024 .year-card {
            border-color: #4ade80;
            background: rgba(34, 197, 94, .1);
            box-shadow: 0 0 24px rgba(34, 197, 94, .12)
        }

        .year-btn.active-2024 .year-num {
            color: #4ade80
        }

        .year-btn.active-2024 .year-ha {
            color: #86efac
        }

        .year-btn.active-2023 .year-card {
            border-color: #fb923c;
            background: rgba(251, 146, 60, .1);
            box-shadow: 0 0 24px rgba(251, 146, 60, .12)
        }

        .year-btn.active-2023 .year-num {
            color: #fb923c
        }

        .year-btn.active-2023 .year-ha {
            color: #fdba74
        }

        .year-btn.active-2026 .year-card {
            border-color: #f59e0b;
            background: rgba(245, 158, 11, .12);
            box-shadow: 0 0 24px rgba(245, 158, 11, .15);
            animation: pulse-year 2s ease-in-out infinite
        }

        .year-btn.active-2026 .year-num {
            color: #fbbf24
        }

        .year-btn.active-2026 .year-ha {
            color: #fde68a
        }

        @keyframes pulse-year {

            0%,
            100% {
                box-shadow: 0 0 24px rgba(245, 158, 11, .15)
            }

            50% {
                box-shadow: 0 0 32px rgba(245, 158, 11, .35)
            }
        }

        /* banner 2026 */
        .year-banner-2026 {
            background: linear-gradient(135deg, rgba(245, 158, 11, .12), rgba(239, 68, 68, .07));
            border: 1px solid rgba(245, 158, 11, .25)
        }

        /* banda de contexto anual */
        .year-banner {
            border-radius: 16px;
            padding: 20px 24px;
            margin-bottom: 20px;
            display: flex;
            flex-wrap: wrap;
            align-items: center;
            gap: 16px
        }

        .year-banner-2025 {
            background: linear-gradient(135deg, rgba(239, 68, 68, .12), rgba(255, 107, 53, .08));
            border: 1px solid rgba(239, 68, 68, .25)
        }

        .year-banner-2024 {
            background: linear-gradient(135deg, rgba(34, 197, 94, .1), rgba(16, 185, 129, .07));
            border: 1px solid rgba(34, 197, 94, .2)
        }

        .year-banner-2023 {
            background: linear-gradient(135deg, rgba(251, 146, 60, .1), rgba(234, 179, 8, .07));
            border: 1px solid rgba(251, 146, 60, .2)
        }

        .year-panel {
            display: none
        }

        .year-panel.visible {
            display: block
        }

        /* filtros */
        .filter-btn {
            background: rgba(255, 255, 255, .04);
            border: 1px solid rgba(255, 255, 255, .1);
            color: #94a3b8;
            transition: all .2s
        }

        .filter-btn:hover:not(.active) {
            background: rgba(255, 255, 255, .08);
            color: #e2e8f0
        }

        .filter-btn.active {
            background: #ff6b35;
            color: #fff;
            border-color: #ff6b35
        }

        /* buscador */
        .search-wrap {
            position: relative
        }

        .search-input {
            width: 100%;
            background: rgba(15, 23, 42, .8);
            border: 1px solid rgba(255, 255, 255, .1);
            color: #e2e8f0;
            border-radius: 14px;
            padding: 12px 20px 12px 46px;
            font-size: .9rem;
            outline: none;
            transition: border-color .2s, box-shadow .2s
        }

        .search-input::placeholder {
            color: #475569
        }

        .search-input:focus {
            border-color: rgba(255, 107, 53, .5);
            box-shadow: 0 0 0 3px rgba(255, 107, 53, .08)
        }

        .search-icon {
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            color: #475569;
            font-size: .85rem;
            pointer-events: none
        }

        .search-count {
            position: absolute;
            right: 16px;
            top: 50%;
            transform: translateY(-50%);
            color: #475569;
            font-size: .75rem
        }

        /* cards expandibles */
        .card-body-short {
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden
        }

        .card-body-full {
            display: block
        }

        .expand-btn {
            font-size: .75rem;
            color: #ff6b35;
            cursor: pointer;
            background: none;
            border: none;
            padding: 4px 0;
            margin-top: 4px;
            display: flex;
            align-items: center;
            gap: 4px;
            transition: opacity .2s
        }

        .expand-btn:hover {
            opacity: .75
        }

        /* animaciones */
        @keyframes fadeUp {
            from {
                opacity: 0;
                transform: translateY(24px)
            }

            to {
                opacity: 1;
                transform: translateY(0)
            }
        }

        .fade-up {
            animation: fadeUp .6s ease forwards
        }

        .delay-1 {
            animation-delay: .1s;
            opacity: 0
        }

        .delay-2 {
            animation-delay: .2s;
            opacity: 0
        }

        .delay-3 {
            animation-delay: .3s;
            opacity: 0
        }

        .delay-4 {
            animation-delay: .4s;
            opacity: 0
        }

        .delay-5 {
            animation-delay: .5s;
            opacity: 0
        }

        /* misc */
        .region-badge {
            font-size: .7rem;
            padding: 2px 8px;
            border-radius: 999px;
            background: rgba(255, 255, 255, .06);
            border: 1px solid rgba(255, 255, 255, .1);
            color: #94a3b8
        }

        .breadcrumb-sep {
            color: rgba(255, 255, 255, .2)
        }

        .fire-icon {
            filter: drop-shadow(0 0 8px rgba(255, 107, 53, .7))
        }

        /* Logo common override to match foro.html */
        .logo {
            display: flex;
            align-items: center;
            gap: .65rem;
            text-decoration: none;
            flex-shrink: 0;
        }

        .logo-flame {
            height: 32px;
            width: auto;
            object-fit: contain;
            filter: brightness(2) contrast(1.25) grayscale(1) drop-shadow(0 0 10px rgba(255, 107, 53, .3));
            transition: filter .3s ease, transform .3s ease;
        }

        .logo-text {
            font-family: 'Outfit', 'Syne', sans-serif;
            font-weight: 800;
            font-size: 1.5rem;
            letter-spacing: -0.6px;
            color: #fff;
        }

        .logo-text b {
            color: rgb(255, 107, 53);
            font-weight: 800;
        }

        .no-results {
            display: none;
            text-align: center;
            padding: 48px 0;
            color: #475569
        }

        .no-results.visible {
            display: block
        }

        table {
            border-collapse: collapse
        }

        /* barra progreso */
        #read-progress {
            position: fixed;
            top: 0;
            left: 0;
            height: 3px;
            z-index: 200;
            background: linear-gradient(90deg, #ff6b35, #f97316);
            width: 0%;
            transition: width .1s linear
        }

        /* volver arriba */
        #back-to-top {
            position: fixed;
            bottom: 32px;
            right: 32px;
            z-index: 100;
            width: 44px;
            height: 44px;
            border-radius: 12px;
            background: rgba(255, 107, 53, .9);
            border: none;
            cursor: pointer;
            color: #fff;
            font-size: 1rem;
            display: flex;
            align-items: center;
            justify-content: center;
            opacity: 0;
            transform: translateY(16px);
            transition: opacity .3s, transform .3s, box-shadow .2s;
            box-shadow: 0 4px 20px rgba(255, 107, 53, .35)
        }

        #back-to-top.visible {
            opacity: 1;
            transform: translateY(0)
        }

        #back-to-top:hover {
            box-shadow: 0 6px 28px rgba(255, 107, 53, .55)
        }

        /* ── Accesibilidad y reducción de movimiento ── */
        .skip-link {
            position: absolute;
            left: -999px;
            top: auto;
            width: 1px;
            height: 1px;
            overflow: hidden
        }

        .skip-link:focus {
            left: 16px;
            top: 16px;
            width: auto;
            height: auto;
            z-index: 9999;
            background: #ff6b35;
            color: #fff;
            padding: 10px 14px;
            border-radius: 10px;
            font-weight: 700;
            text-decoration: none
        }

        @media (prefers-reduced-motion: reduce) {

            *,
            *::before,
            *::after {
                animation-duration: .001ms !important;
                animation-iteration-count: 1 !important;
                scroll-behavior: auto !important;
                transition-duration: .001ms !important
            }

            .ticker-inner {
                animation: none !important;
                transform: none !important;
                white-space: normal;
                flex-wrap: wrap
            }
        }

/* Fase 2H · Ajustes de accesibilidad */
.tab-btn:focus-visible,
.year-btn:focus-visible,
.filter-btn:focus-visible,
.expand-btn:focus-visible {
    outline: 2px solid #ff6b35;
    outline-offset: 3px;
}

/* Fase 4C.4 · Pulido visual conservador de páginas internas */
.glass-nav {
  box-shadow: 0 14px 40px rgba(0, 0, 0, .22);
}

.news-card,
.article-card,
.stat-item,
.search-box,
.timeline-item,
.year-section {
  transition: transform .22s ease, border-color .22s ease, box-shadow .22s ease, background-color .22s ease;
}

.news-card:hover,
.article-card:hover,
.stat-item:hover {
  transform: translateY(-2px);
  border-color: rgba(255, 107, 53, .24);
  box-shadow: 0 18px 44px rgba(0, 0, 0, .30);
}

.tab-btn,
.year-btn,
.filter-btn,
.expand-btn {
  min-height: 42px;
}

.news-card .text-yellow-400,
.news-card strong,
.article-card strong {
  text-wrap: balance;
}

@media (max-width: 768px) {
  .alert-ticker {
    font-size: .78rem;
  }

  .stat-item {
    padding: 1rem !important;
  }

  .tab-btn,
  .year-btn,
  .filter-btn {
    min-height: 44px;
  }

  #back-to-top {
    right: 18px;
    bottom: 18px;
  }
}

@media (max-width: 520px) {
  .news-card,
  .article-card,
  .search-box {
    border-radius: 18px !important;
  }

  .ticker-inner span {
    padding-right: 1.25rem;
  }
}


/* Fase 4C.6 - Ajustes responsive y accesibilidad visual */
.news-card, .article-card, .search-box {
  overflow-wrap: anywhere;
}

.tab-btn, .year-btn, .filter-btn, .expand-btn {
  touch-action: manipulation;
}

@media (max-width: 640px) {
  .tab-btn, .year-btn, .filter-btn {
    flex: 1 1 auto;
    justify-content: center;
  }

  .search-box input {
    font-size: 16px;
  }
}
