        :root {
            --primary-color: #00a4dc;
            --bg-dark: #050505;
            --card-bg: #121212;
            --text-main: #e0e0e0;
            --text-dim: #a0a0a0;
            --alert-color: #dc3545;
            /* Zwiększona szerokość godziny na 1000px, aby pokazywać ok. 2 godziny */
            --epg-hour-width: 1000px;
            --epg-row-height: 80px;
            --epg-sidebar-width: 100px;
        }

        /* --- GLOBAL LAYOUT --- */
        .page-wrapper {
            padding-top: 100px;
            padding-bottom: 50px;
            min-height: 100vh;
        }

        /* --- PREMIUM NAVBAR --- */
        #main-site-nav {
            background: rgba(0, 0, 0, 0.7);
            backdrop-filter: blur(15px);
            border-bottom: 1px solid rgba(255, 255, 255, 0.05);
            transition: all 0.3s ease;
        }

        #main-site-nav.scrolled {
            background: rgba(0, 0, 0, 0.9);
            box-shadow: 0 5px 20px rgba(0, 0, 0, 0.5);
        }

        html,
        body {
            max-width: 100%;
            overflow-x: hidden;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: 'Inter', sans-serif;
            background-color: var(--bg-dark);
            color: var(--text-main);
        }

        /* --- LOADING SPINNER --- */
        #loading-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.8);
            z-index: 9999;
            display: none;
            /* Domyślnie ukryty */
            justify-content: center;
            align-items: center;
            backdrop-filter: blur(5px);
        }

        /* --- NAVBAR --- */
        .navbar {
            background-color: rgba(5, 5, 5, 0.95) !important;
            backdrop-filter: blur(12px);
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
            z-index: 1000;
        }

        .navbar-brand img {
            transition: transform 0.3s;
        }

        .navbar-brand:hover img {
            transform: scale(1.1);
        }

        /* --- SEARCH PILL & SUGGESTIONS --- */
        .search-container {
            position: relative;
            width: 100%;
            max-width: 250px;
        }

        .search-pill-form {
            display: flex;
            align-items: center;
            background: rgba(255, 255, 255, 0.1);
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 50px;
            padding: 4px 15px;
            transition: all 0.3s ease;
            width: 100%;
        }

        .search-pill-form:focus-within {
            background: rgba(0, 0, 0, 0.6);
            border-color: var(--primary-color);
            box-shadow: 0 0 0 3px rgba(0, 164, 220, 0.25);
        }

        .search-pill-input {
            background: transparent;
            border: none;
            color: #fff;
            font-size: 0.95rem;
            width: 100%;
            outline: none;
        }

        .search-pill-input::placeholder {
            color: rgba(255, 255, 255, 0.6);
        }

        .search-pill-btn {
            background: transparent;
            border: none;
            color: rgba(255, 255, 255, 0.7);
            padding: 0;
            margin-left: 8px;
            transition: 0.2s;
            display: flex;
            align-items: center;
        }

        .search-pill-btn:hover {
            color: var(--primary-color);
        }

        .search-suggestions {
            position: absolute;
            top: 100%;
            left: 0;
            width: 100%;
            background: rgba(18, 18, 18, 0.98);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 0 0 12px 12px;
            z-index: 1050;
            max-height: 300px;
            overflow-y: auto;
            display: none;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(10px);
        }

        .search-suggestions.show {
            display: block;
        }

        .suggestion-item {
            display: flex;
            align-items: center;
            gap: 10px;
            padding: 10px 15px;
            cursor: pointer;
            border-bottom: 1px solid rgba(255, 255, 255, 0.05);
            transition: background 0.2s;
            color: #ccc;
            text-decoration: none;
        }

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

        .suggestion-item:hover {
            background: rgba(0, 164, 220, 0.15);
            color: #fff;
        }

        .suggestion-poster {
            width: 30px;
            height: 45px;
            object-fit: cover;
            border-radius: 4px;
            background: #333;
        }

        .suggestion-info {
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }

        .suggestion-title {
            font-size: 0.85rem;
            font-weight: 600;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .suggestion-meta {
            font-size: 0.7rem;
            color: #888;
        }

        /* --- HERO --- */
        #heroCarousel {
            height: 85vh;
            min-height: 600px;
        }

        .carousel-inner,
        .carousel-item {
            height: 100%;
        }

        .intro-slide {
            height: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            background: radial-gradient(circle at center, #1a1a1a 0%, #000000 100%);
            position: relative;
            overflow: hidden;
        }

        .logo-wrapper {
            width: 160px;
            height: 160px;
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            animation: float 6s ease-in-out infinite;
            text-align: center;
            width: 100%;
            margin: 0 auto 2rem auto;
        }

        .logo-img {
            width: 160px;
            height: 160px;
            object-fit: contain;
            filter: drop-shadow(0 8px 20px rgba(0, 164, 220, 0.3));
            margin: 0 auto;
            display: block;
        }

        .intro-title {
            font-size: clamp(2rem, 5vw, 3.5rem);
            font-weight: 900;
            text-transform: uppercase;
            background: linear-gradient(135deg, #fff 50%, var(--primary-color) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            text-shadow: 0 4px 20px rgba(0, 0, 0, 0.9);
            filter: drop-shadow(0 2px 10px rgba(0, 0, 0, 0.8));
            margin-bottom: 0.5rem;
            position: relative;
            z-index: 2;
            text-align: center;
        }

        .intro-subtitle {
            font-size: 1rem;
            color: #fff;
            letter-spacing: 3px;
            text-transform: uppercase;
            font-weight: 300;
            opacity: 0.95;
            text-shadow: 0 3px 15px rgba(0, 0, 0, 0.9),
                0 1px 3px rgba(0, 0, 0, 0.8);
            margin-bottom: 35px;
            position: relative;
            z-index: 2;
            text-align: center;
        }

        .btn-enter-vod {
            display: inline-block;
            background: transparent;
            color: #fff;
            font-weight: 700;
            padding: 12px 40px;
            text-decoration: none;
            border: 2px solid var(--primary-color);
            border-radius: 30px;
            transition: all 0.3s;
            position: relative;
            z-index: 2;
            letter-spacing: 1px;
            cursor: pointer;
        }

        .btn-enter-vod:hover {
            background: var(--primary-color);
            box-shadow: 0 0 30px rgba(0, 164, 220, 0.5);
            transform: translateY(-3px);
            color: #fff;
        }

        /* --- COMMON --- */
        .content-container {
            width: 90%;
            max-width: 1200px;
            margin: 0 auto;
            position: relative;
            z-index: 5;
        }

        .section-header {
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
            margin: 40px 0 20px 0;
            padding-bottom: 10px;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .section-title {
            font-size: 1.4rem;
            font-weight: 700;
            text-transform: uppercase;
            border-left: 5px solid var(--primary-color);
            padding-left: 15px;
            margin: 0;
            color: #fff;
        }

        /* --- UNIFIED CARD STYLES --- */
        .programs-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
            gap: 25px;
            margin-bottom: 60px;
        }

        a.program-card {
            display: block;
            text-decoration: none;
            color: inherit;
        }

        .program-card {
            background: #1a1a1a;
            border-radius: 12px;
            overflow: hidden;
            position: relative;
            aspect-ratio: 16/9;
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            cursor: pointer;
            border: 1px solid rgba(255, 255, 255, 0.05);
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.3);
        }

        /* --- GLASS PANEL FOR HOME --- */
        .glass-panel {
            background: rgba(0, 0, 0, 0.4);
            backdrop-filter: blur(15px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            padding: 40px;
            border-radius: 24px;
            max-width: 800px;
            margin: 0 auto;
            box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
            animation: fadeIn 1s ease-out;
        }

        @keyframes fadeIn {
            from {
                opacity: 0;
                transform: translateY(20px);
            }

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

        @keyframes float {

            0%,
            100% {
                transform: translateY(0px);
            }

            50% {
                transform: translateY(-15px);
            }
        }

        /* --- HOME PAGE SECTIONS --- */
        .home-section {
            margin: 60px 0;
        }

        .home-section-title {
            font-size: 2rem;
            font-weight: 900;
            text-transform: uppercase;
            margin-bottom: 30px;
            text-align: center;
            background: linear-gradient(135deg, #fff 50%, var(--primary-color) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        /* Feature Boxes */
        .features-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
            gap: 30px;
            margin-bottom: 60px;
        }

        .feature-box {
            background: rgba(255, 255, 255, 0.03);
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 16px;
            padding: 30px 20px;
            text-align: center;
            transition: all 0.3s ease;
            cursor: default;
        }

        .feature-box:hover {
            background: rgba(255, 255, 255, 0.05);
            border-color: var(--primary-color);
            transform: translateY(-5px);
            box-shadow: 0 10px 30px rgba(0, 164, 220, 0.2);
        }

        .feature-icon {
            font-size: 3rem;
            color: var(--primary-color);
            margin-bottom: 15px;
        }

        .feature-title {
            font-size: 1.2rem;
            font-weight: 700;
            margin-bottom: 10px;
            color: #fff;
        }

        .feature-desc {
            font-size: 0.9rem;
            color: var(--text-dim);
            line-height: 1.5;
        }

        /* Live TV Section */
        .live-tv-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
            gap: 20px;
            margin-bottom: 40px;
        }

        .live-tv-card {
            background: rgba(255, 255, 255, 0.03);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 12px;
            padding: 20px;
            display: flex;
            align-items: center;
            gap: 15px;
            transition: all 0.3s ease;
            text-decoration: none;
            color: inherit;
        }

        .live-tv-card:hover,
        .live-tv-card.active {
            background: rgba(255, 255, 255, 0.05);
            border-color: var(--primary-color);
            transform: translateX(5px);
        }

        .live-tv-card.active {
            background: rgba(0, 164, 220, 0.15);
            /* Stronger highlight for active */
            box-shadow: 0 0 15px rgba(0, 164, 220, 0.2);
        }

        .live-tv-logo {
            width: 60px;
            height: 60px;
            object-fit: contain;
            border-radius: 8px;
            background: rgba(0, 0, 0, 0.3);
            padding: 5px;
        }

        .live-tv-info {
            flex: 1;
        }

        .live-tv-channel {
            font-size: 0.85rem;
            color: var(--primary-color);
            font-weight: 700;
            margin-bottom: 3px;
        }

        .live-tv-program {
            font-size: 1rem;
            font-weight: 600;
            color: #fff;
            margin-bottom: 3px;
            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-line-clamp: 1;
            -webkit-box-orient: vertical;
            line-height: 1.4;
        }

        .live-tv-time {
            font-size: 0.75rem;
            color: var(--text-dim);
        }

        /* .live-badge deprecated - now using .tv-program-badge */

        /* Footer */
        .site-footer {
            background: rgba(0, 0, 0, 0.5);
            border-top: 1px solid rgba(255, 255, 255, 0.1);
            padding: 40px 0 20px;
            margin-top: 80px;
        }

        .footer-content {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
            gap: 30px;
            margin-bottom: 30px;
        }

        .footer-section h4 {
            font-size: 1rem;
            font-weight: 700;
            margin-bottom: 15px;
            color: var(--primary-color);
        }

        .footer-links {
            list-style: none;
            padding: 0;
            margin: 0;
        }

        .footer-links li {
            margin-bottom: 8px;
        }

        .footer-links a {
            color: var(--text-dim);
            text-decoration: none;
            font-size: 0.9rem;
            transition: 0.2s;
        }

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

        .footer-bottom {
            text-align: center;
            padding-top: 20px;
            border-top: 1px solid rgba(255, 255, 255, 0.05);
            color: var(--text-dim);
            font-size: 0.85rem;
        }

        /* Hero Carousel Slide Styles */
        .hero-slide {
            height: 100%;
            min-height: 70vh;
            position: relative;
            background-size: cover;
            background-position: center;
            padding-top: 80px;
            /* Space for navbar */
        }

        .hero-overlay {
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: linear-gradient(to bottom, rgba(0, 0, 0, 0.3) 0%, rgba(0, 0, 0, 0.7) 100%);
        }

        .hero-content {
            position: absolute;
            bottom: 80px;
            left: 0;
            right: 0;
            z-index: 2;
            padding: 0 20px;
        }

        .hero-slide-title {
            font-size: clamp(2rem, 4vw, 3rem);
            font-weight: 900;
            color: #fff;
            margin-bottom: 15px;
            text-shadow: 0 4px 10px rgba(0, 0, 0, 0.8);
            overflow: hidden;
            text-overflow: ellipsis;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            max-width: 100%;
        }

        .hero-slide-desc {
            font-size: clamp(0.9rem, 1.5vw, 1.1rem);
            color: rgba(255, 255, 255, 0.9);
            max-width: 600px;
            margin-bottom: 20px;
            line-height: 1.5;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .hero-slide-btn {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            background: var(--primary-color);
            color: #fff;
            padding: 10px 24px;
            border-radius: 25px;
            text-decoration: none;
            font-weight: 700;
            font-size: 0.9rem;
            transition: all 0.3s ease;
            border: 2px solid var(--primary-color);
            white-space: nowrap;
        }

        .hero-slide-btn:hover {
            background: transparent;
            color: var(--primary-color);
            transform: translateY(-3px);
            box-shadow: 0 10px 30px rgba(0, 164, 220, 0.3);
        }

        @media (max-width: 768px) {
            .features-grid {
                grid-template-columns: 1fr;
                gap: 20px;
            }

            .live-tv-grid {
                grid-template-columns: 1fr;
            }

            .home-section {
                margin: 40px 0;
            }

            .home-section-title {
                font-size: 1.5rem;
            }

            .hero-slide-content {
                bottom: 40px;
            }
        }


        .program-card:hover {
            transform: translateY(-5px) scale(1.02);
            z-index: 5;
            box-shadow: 0 15px 30px rgba(0, 164, 220, 0.15);
            border-color: var(--primary-color);
        }

        .program-card img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s ease;
        }

        .program-card:hover img {
            transform: scale(1.1);
        }

        .program-info-overlay {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.4) 50%, transparent 100%);
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            padding: 15px;
            opacity: 0;
            transition: opacity 0.3s;
        }

        .program-card:hover .program-info-overlay {
            opacity: 1;
        }

        /* --- SKELETON LOADING --- */
        .skeleton {
            background: #1e1e1e;
            position: relative;
            overflow: hidden;
        }

        .skeleton::after {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.05), transparent);
            animation: shimmer 1.5s infinite;
        }

        @keyframes shimmer {
            0% {
                transform: translateX(-100%);
            }

            100% {
                transform: translateX(100%);
            }
        }

        .badge-type {
            position: absolute;
            top: 10px;
            right: 10px;
            background: rgba(0, 0, 0, 0.7);
            backdrop-filter: blur(4px);
            padding: 4px 8px;
            border-radius: 4px;
            font-size: 0.7rem;
            font-weight: 700;
            color: #fff;
            border: 1px solid rgba(255, 255, 255, 0.2);
            z-index: 3;
            display: flex;
            align-items: center;
            gap: 4px;
        }

        .badge-genre {
            position: absolute;
            top: 10px;
            left: 10px;
            background: rgba(0, 0, 0, 0.7);
            border: 1px solid rgba(255, 255, 255, 0.15);
            backdrop-filter: blur(4px);
            padding: 3px 10px;
            border-radius: 4px;
            font-size: 0.65rem;
            color: #fff;
            z-index: 3;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            text-shadow: 0 1px 2px rgba(0, 0, 0, 1);
        }

        .program-info-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.95) 10%, rgba(0, 0, 0, 0.5) 50%, transparent 100%);
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            padding: 20px;
            opacity: 1;
        }

        .program-title {
            font-size: 1.1rem;
            font-weight: 700;
            color: #fff;
            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.8);
            margin-bottom: 5px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .program-meta {
            font-size: 0.8rem;
            color: #ccc;
            display: flex;
            align-items: center;
            gap: 10px;
            opacity: 0.9;
        }

        .program-actions {
            margin-top: 15px;
            height: 0;
            opacity: 0;
            overflow: hidden;
            transition: 0.3s;
        }

        .program-card:hover .program-actions {
            height: auto;
            opacity: 1;
        }

        /* --- EPISODE/MOVIE GRID --- */
        .movies-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
            gap: 30px 20px;
            margin-bottom: 60px;
        }

        /* --- MODERN EPISODE CARD --- */
        .episode-card {
            background: #111;
            border-radius: 12px;
            overflow: hidden;
            position: relative;
            aspect-ratio: 16/9;
            transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
            cursor: pointer;
            border: 1px solid rgba(255, 255, 255, 0.05);
            display: block;
            text-decoration: none;
            color: inherit;
        }

        .episode-card:hover {
            transform: translateY(-5px);
            border-color: var(--primary-color);
            box-shadow: 0 15px 30px rgba(0, 164, 220, 0.2);
        }

        .episode-card img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s ease;
        }

        .episode-card:hover img {
            transform: scale(1.08);
        }

        .episode-card-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.6) 40%, transparent 100%);
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            padding: 15px;
            transition: 0.3s;
        }

        .episode-number-badge {
            position: absolute;
            top: 10px;
            left: 10px;
            background: var(--primary-color);
            color: #fff;
            font-size: 0.7rem;
            font-weight: 800;
            padding: 4px 10px;
            border-radius: 6px;
            z-index: 2;
            box-shadow: 0 4px 10px rgba(0, 164, 220, 0.3);
            letter-spacing: 1px;
        }

        .episode-date-badge {
            position: absolute;
            top: 10px;
            right: 10px;
            background: rgba(0, 0, 0, 0.6);
            backdrop-filter: blur(4px);
            color: #ccc;
            font-size: 0.65rem;
            padding: 4px 8px;
            border-radius: 6px;
            z-index: 2;
        }

        .episode-title {
            color: #fff;
            font-weight: 700;
            font-size: 0.95rem;
            margin-bottom: 5px;
            line-height: 1.3;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        .episode-meta {
            font-size: 0.75rem;
            color: #888;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        a.movie-card {
            display: block;
            text-decoration: none;
            color: inherit;
        }

        .movie-card {
            background: #1a1a1a;
            border-radius: 8px;
            overflow: hidden;
            position: relative;
            aspect-ratio: 16/9;
            transition: transform 0.3s, box-shadow 0.3s;
            cursor: pointer;
            border: 1px solid rgba(255, 255, 255, 0.05);
        }

        .movie-card:hover {
            transform: scale(1.05);
            z-index: 5;
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.8);
            border-color: var(--primary-color);
        }

        .movie-card img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .card-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.95) 0%, transparent 60%);
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            padding: 15px;
            opacity: 0;
            transition: 0.3s;
        }

        .movie-card:hover .card-overlay {
            opacity: 1;
        }

        .card-actions {
            display: flex;
            gap: 5px;
        }

        .btn-card {
            flex: 1;
            font-size: 0.7rem;
            font-weight: bold;
            padding: 4px 0;
        }

        .duration-badge {
            position: absolute;
            bottom: 8px;
            right: 8px;
            background: rgba(0, 0, 0, 0.85);
            color: #fff;
            font-size: 0.7rem;
            font-weight: 700;
            padding: 2px 6px;
            border-radius: 4px;
            z-index: 2;
        }

        /* --- VOD UI ENHANCEMENTS --- */
        .ae-utility-bar {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 20px;
            margin-bottom: 30px;
            background: rgba(255, 255, 255, 0.03);
            padding: 15px 20px;
            border-radius: 12px;
            border: 1px solid rgba(255, 255, 255, 0.05);
        }

        .ae-search-container {
            position: relative;
            flex: 1;
            max-width: 400px;
        }

        .ae-search-input {
            width: 100%;
            background: rgba(0, 0, 0, 0.5);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 50px;
            padding: 10px 20px 10px 45px;
            color: #fff;
            font-size: 0.9rem;
            transition: 0.3s;
        }

        .ae-search-input:focus {
            outline: none;
            border-color: var(--primary-color);
            background: rgba(0, 0, 0, 0.8);
            box-shadow: 0 0 15px rgba(0, 164, 220, 0.2);
        }

        .ae-search-icon {
            position: absolute;
            left: 18px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            pointer-events: none;
        }

        .vod-secondary-filters {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 30px;
            flex-wrap: wrap;
            gap: 20px;
        }

        .vod-search-container {
            flex-grow: 1;
            max-width: 400px;
            position: relative;
        }

        .vod-search-input {
            width: 100%;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 50px;
            padding: 10px 20px 10px 45px;
            color: #fff;
            font-size: 0.9rem;
            transition: 0.3s;
        }

        .vod-search-input:focus {
            background: rgba(255, 255, 255, 0.1);
            border-color: var(--primary-color);
            outline: none;
            box-shadow: 0 0 15px rgba(0, 164, 220, 0.2);
        }

        .vod-search-icon {
            position: absolute;
            left: 18px;
            top: 50%;
            transform: translateY(-50%);
            color: #666;
            font-size: 1rem;
        }

        .vod-sort-container {
            display: flex;
            align-items: center;
            gap: 12px;
        }

        .vod-sort-select {
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid rgba(255, 255, 255, 0.1);
            color: #ccc;
            padding: 8px 15px;
            border-radius: 10px;
            font-size: 0.85rem;
            cursor: pointer;
            transition: 0.3s;
        }

        .vod-sort-select:hover {
            border-color: rgba(255, 255, 255, 0.2);
        }

        .vod-sort-select:focus {
            outline: none;
            border-color: var(--primary-color);
        }

        .program-hero {
            position: relative;
            aspect-ratio: 16 / 9;
            width: 100%;
            border-radius: 24px;
            overflow: hidden;
            box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6);
            border: 1px solid rgba(255, 255, 255, 0.05);
            transition: transform 0.3s ease;
            margin-bottom: 60px;
        }

        .program-hero:hover {
            transform: scale(1.005);
            border-color: rgba(0, 164, 220, 0.3);
        }

        .program-hero-img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            filter: brightness(0.6);
            transition: transform 10s ease;
        }

        .program-hero:hover .program-hero-img {
            transform: scale(1.05);
            /* Ken Burns effect on hover */
        }

        .program-hero-content {
            position: absolute;
            bottom: 0;
            left: 0;
            width: 100%;
            padding: 40px;
            background: linear-gradient(to top, rgba(0, 0, 0, 0.95), rgba(0, 0, 0, 0.6), transparent);
            display: flex;
            flex-direction: column;
            justify-content: flex-end;
            align-items: flex-start;
        }

        .hero-glass-panel {
            background: rgba(255, 255, 255, 0.02);
            backdrop-filter: blur(10px);
            padding: 30px;
            border-radius: 20px;
            border: 1px solid rgba(255, 255, 255, 0.05);
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
            max-width: 800px;
            animation: fadeInUp 0.8s ease-out;
        }

        .hero-title {
            font-size: 3.5rem;
            font-weight: 800;
            line-height: 1.1;
            margin-bottom: 1rem;
            background: linear-gradient(45deg, #fff, #e0e0e0);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            text-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
        }

        .hero-badge {
            background: var(--primary-color);
            color: #fff;
            padding: 8px 16px;
            border-radius: 50px;
            font-weight: 700;
            font-size: 0.8rem;
            letter-spacing: 1px;
            text-transform: uppercase;
            box-shadow: 0 0 20px rgba(0, 164, 220, 0.4);
            margin-bottom: 20px;
            display: inline-block;
        }

        .hero-meta {
            display: flex;
            gap: 20px;
            margin-bottom: 20px;
            font-size: 0.95rem;
            color: rgba(255, 255, 255, 0.8);
            font-weight: 600;
        }

        .hero-desc {
            font-size: 1.15rem;
            color: rgba(255, 255, 255, 0.7);
            line-height: 1.6;
            margin-bottom: 30px;
            max-width: 650px;
            display: -webkit-box;
            -webkit-line-clamp: 3;
            -webkit-box-orient: vertical;
            overflow: hidden;
        }

        @keyframes fadeInUp {
            from {
                opacity: 0;
                transform: translateY(30px);
            }

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

        @media (max-width: 768px) {
            .hero-title {
                font-size: 1.4rem;
                line-height: 1.15;
                margin-bottom: 0.5rem;
                /* Remove gradient on mobile to prevent clipping */
                background: none;
                -webkit-background-clip: unset;
                -webkit-text-fill-color: #fff;
                color: #fff;
                text-shadow: 0 2px 10px rgba(0, 0, 0, 0.8);
                word-wrap: break-word;
                overflow-wrap: break-word;
            }

            .hero-desc {
                font-size: 0.85rem;
                line-height: 1.4;
                -webkit-line-clamp: 1;
                margin-bottom: 15px;
            }

            /* Hide metadata on mobile to simplify */
            .hero-meta {
                display: none;
            }

            .program-hero {
                aspect-ratio: 16 / 9;
                width: 100%;
            }

            .hero-glass-panel {
                padding: 15px;
                background: none;
                border: none;
                backdrop-filter: none;
                box-shadow: none;
            }

            /* Mobile button adjustments */
            .hero-glass-panel .btn {
                font-size: 0.75rem !important;
                padding: 10px 16px !important;
                white-space: nowrap;
            }

            /* Stack buttons vertically on mobile */
            .hero-glass-panel .d-flex {
                flex-direction: column;
                gap: 8px;
            }

            .hero-glass-panel .btn {
                width: 100%;
                min-width: 0;
            }

            .hero-badge {
                font-size: 0.65rem;
                padding: 5px 10px;
                margin-bottom: 10px;
            }

            /* Adjust program hero content positioning */
            .program-hero-content {
                padding: 20px;
            }
        }

        @media (max-width: 768px) {
            .program-hero {
                height: 50vh;
                min-height: 350px;
                border-radius: 16px;
            }
        }

        .vod-filters {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
            gap: 25px;
            margin-bottom: 40px;
            background: rgba(15, 15, 15, 0.5);
            padding: 25px;
            border-radius: 20px;
            backdrop-filter: blur(10px);
            border: 1px solid rgba(255, 255, 255, 0.05);
        }

        .filter-section-label {
            font-size: 0.75rem;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            color: #666;
            margin-bottom: 15px;
            font-weight: 800;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .scroll-filters {
            display: flex;
            gap: 12px;
            overflow-x: auto;
            padding-bottom: 12px;
            scrollbar-width: thin;
            scrollbar-color: #444 transparent;
            mask-image: linear-gradient(to right, black 90%, transparent 100%);
            -webkit-mask-image: linear-gradient(to right, black 90%, transparent 100%);
        }

        .filter-btn {
            padding: 10px 22px;
            border-radius: 12px;
            border: 1px solid rgba(255, 255, 255, 0.08);
            background: rgba(255, 255, 255, 0.03);
            color: #999;
            font-weight: 600;
            font-size: 0.85rem;
            transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
            cursor: pointer;
            white-space: nowrap;
            display: flex;
            align-items: center;
            gap: 10px;
        }

        .filter-btn i {
            font-size: 1rem;
            opacity: 0.7;
        }

        .filter-btn:hover {
            background: rgba(255, 255, 255, 0.08);
            color: #fff;
            border-color: rgba(255, 255, 255, 0.2);
            transform: translateY(-2px);
        }

        .filter-btn.active {
            background: var(--primary-color);
            color: #fff;
            border-color: var(--primary-color);
            box-shadow: 0 8px 20px rgba(0, 164, 220, 0.3);
            transform: translateY(-2px);
        }

        /* --- PROGRAM DETAILS PAGE --- */
        .program-details-hero {
            position: relative;
            min-height: 80vh;
            width: 100%;
            margin-top: -80px;
            padding-top: 150px;
            /* Increased padding to clear navbar */
            overflow: hidden;
        }

        .program-hero-backdrop {
            position: absolute;
            top: -20px;
            left: -20px;
            width: calc(100% + 40px);
            height: calc(100% + 40px);
            background-size: cover;
            background-position: center center;
            filter: blur(15px) brightness(0.4);
            transform: scale(1.1);
            z-index: -2;
            transition: background-image 0.5s ease-in-out;
        }

        .program-hero-overlay {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: linear-gradient(to bottom, rgba(5, 5, 5, 0.2) 0%, rgba(5, 5, 5, 0.8) 70%, var(--bg-dark) 100%);
            z-index: -1;
        }

        .tv-row {
            background: var(--card-bg);
            border-radius: 8px;
            display: grid;
            grid-template-columns: 80px 1fr 40px;
            align-items: center;
            padding: 12px;
            gap: 15px;
            border: 1px solid rgba(255, 255, 255, 0.05);
            transition: 0.3s;
            margin-bottom: 10px;
            cursor: pointer;
        }

        .tv-row:hover {
            background: #1f1f1f;
            border-color: var(--primary-color);
        }

        /* NOWY UI KANAŁU - Czerwony Gradient */
        .tv-row.active {
            border-color: #dc3545;
            background: linear-gradient(90deg, rgba(220, 53, 69, 0.2) 0%, rgba(37, 37, 37, 0) 100%);
        }

        .tv-row-content {
            display: flex;
            flex-direction: column;
            justify-content: center;
            overflow: hidden;
        }

        .tv-program-info {
            font-size: 0.75rem;
            color: #aaa;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            margin-top: 2px;
        }

        .tv-program-badge {
            color: #dc3545;
            font-weight: 800;
            margin-right: 4px;
            font-size: 0.7rem;
        }

        .progress-bar-bg {
            width: 100%;
            height: 4px;
            background: #333;
            margin-top: 8px;
            border-radius: 2px;
        }

        .progress-fill {
            height: 100%;
            background: var(--primary-color);
            border-radius: 2px;
        }

        /* --- PLAYER --- */
        .player-container {
            background: #000;
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 10px 50px rgba(0, 0, 0, 0.5);
            margin-bottom: 20px;
            position: relative;
            aspect-ratio: 16/9;
        }

        .channel-list-container {
            max-height: 400px;
            overflow-y: auto;
            padding-right: 5px;
        }

        @media (min-width: 992px) {
            .channel-list-container {
                height: 500px;
                max-height: 70vh;
            }
        }

        .channel-list-container::-webkit-scrollbar {
            width: 6px;
        }

        .channel-list-container::-webkit-scrollbar-track {
            background: #1a1a1a;
        }

        .channel-list-container::-webkit-scrollbar-thumb {
            background: #444;
            border-radius: 3px;
        }

        /* --- EMBEDDED PLAYER STYLES --- */
        .embedded-player-wrapper {
            position: relative;
            width: 100%;
            max-width: 1200px;
            margin: 0 auto;
            border-radius: 12px;
            overflow: hidden;
            background: #000;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
            aspect-ratio: 16/9;
        }

        .embedded-player-wrapper video,
        .embedded-player-wrapper .video-js {
            width: 100%;
            height: 100%;
            display: block;
        }

        .close-player-btn {
            position: absolute;
            top: 15px;
            right: 15px;
            z-index: 20;
            background: rgba(0, 0, 0, 0.6);
            border: 1px solid rgba(255, 255, 255, 0.2);
            color: #fff;
            width: 40px;
            height: 40px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: 0.2s;
        }

        .close-player-btn:hover {
            background: var(--primary-color);
            border-color: var(--primary-color);
        }

        /* --- EPG (TIMELINE) CSS - FIXED FOR DESCRIPTION & BUTTON --- */
        .epg-container {
            background-color: #0b0b0b;
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 12px;
            overflow: hidden;
            position: relative;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.5);
        }

        .epg-days-header {
            display: flex;
            overflow-x: auto;
            background-color: #161616;
            border-bottom: 1px solid rgba(255, 255, 255, 0.08);
            scrollbar-width: none;
        }

        .epg-day-btn {
            padding: 15px 25px;
            background: none;
            border: none;
            color: #888;
            font-weight: 600;
            white-space: nowrap;
            transition: 0.3s;
            text-transform: capitalize;
            border-bottom: 3px solid transparent;
            font-size: 0.9rem;
        }

        .epg-day-btn:hover {
            color: #fff;
            background: rgba(255, 255, 255, 0.02);
        }

        .epg-day-btn.active {
            color: #fff;
            border-bottom-color: var(--primary-color);
            background: rgba(0, 164, 220, 0.05);
        }

        /* --- EPG SCROLL UPDATES --- */
        .epg-viewport {
            overflow-x: hidden;
            /* Hide scrollbar for button nav */
            overflow-y: auto;
            height: 70vh;
            position: relative;
            background-color: #0b0b0b;
            scroll-behavior: smooth;
        }

        .epg-navigation-wrapper {
            position: relative;
        }

        .epg-nav-btn {
            position: absolute;
            top: 50%;
            transform: translateY(-50%);
            z-index: 100;
            background: rgba(0, 0, 0, 0.8);
            color: var(--primary-color);
            border: 1px solid var(--primary-color);
            border-radius: 50%;
            width: 50px;
            height: 50px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: 0.2s;
            font-size: 1.5rem;
        }

        .intro-slide {
            min-height: 70vh;
            display: flex;
            align-items: center;
            justify-content: center;
            background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
            background-image: url('https://btb.j00r.us/ebtb/vod/Branding/Splashscreen?t=1768628193311');
            background-size: cover;
            background-position: center;
            position: relative;
        }

        /* Overlay removed - better visibility without darkening
        .intro-slide::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            z-index: 1;
            pointer-events: none;
        }
        */

        .epg-nav-btn:hover {
            background: var(--primary-color);
            color: #fff;
            box-shadow: 0 0 15px var(--primary-color);
        }

        .epg-nav-prev {
            left: -25px;
        }

        .epg-nav-next {
            right: -25px;
        }

        @media (max-width: 1000px) {
            .epg-nav-prev {
                left: 0;
                border-radius: 0 50% 50% 0;
            }

            .epg-nav-next {
                right: 0;
                border-radius: 50% 0 0 50%;
            }
        }

        .epg-time-track {
            display: flex;
            height: 40px;
            position: sticky;
            top: 0;
            z-index: 30;
            background-color: #161616;
            border-bottom: 1px solid rgba(255, 255, 255, 0.1);
            margin-left: var(--epg-sidebar-width);
            min-width: fit-content;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
        }

        .epg-hour-mark {
            width: var(--epg-hour-width);
            flex-shrink: 0;
            border-left: 1px solid rgba(255, 255, 255, 0.05);
            padding: 10px;
            font-size: 0.75rem;
            color: #666;
            font-weight: bold;
            letter-spacing: 1px;
        }

        .epg-row {
            display: flex;
            height: var(--epg-row-height);
            border-bottom: 1px solid rgba(255, 255, 255, 0.05);
            position: relative;
            min-width: fit-content;
            transition: background 0.2s;
        }

        .epg-row:hover {
            background-color: rgba(255, 255, 255, 0.02);
        }

        .epg-sidebar {
            width: var(--epg-sidebar-width);
            height: var(--epg-row-height);
            position: sticky;
            left: 0;
            z-index: 40;
            background-color: #121212;
            border-right: 1px solid rgba(255, 255, 255, 0.1);
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
            box-shadow: 4px 0 15px rgba(0, 0, 0, 0.3);
        }

        .epg-channel-logo {
            max-width: 65%;
            max-height: 65%;
            object-fit: contain;
            filter: grayscale(20%);
            transition: 0.3s;
        }

        .epg-row:hover .epg-channel-logo {
            filter: grayscale(0%);
            transform: scale(1.1);
        }

        .epg-programs-rail {
            position: relative;
            flex-grow: 1;
            width: calc(24 * var(--epg-hour-width));
        }

        /* BLOK AUDYCJI - BASE */
        .epg-program-block {
            position: absolute;
            top: 4px;
            bottom: 4px;
            background-color: #252525;
            border-radius: 6px;
            padding: 4px 8px;
            overflow: hidden;
            border-left: 3px solid rgba(255, 255, 255, 0.2);
            transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
            cursor: pointer;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
            display: flex;
            flex-direction: column;
            justify-content: center;
            font-family: 'Inter', sans-serif;
            z-index: 10;
        }

        .epg-program-block.extends-next-day {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
            border-right: 2px dashed rgba(255, 255, 255, 0.3);
        }

        .epg-program-block.extends-next-day::after {
            content: '»';
            position: absolute;
            right: 2px;
            top: 50%;
            transform: translateY(-50%);
            font-size: 1rem;
            color: rgba(255, 255, 255, 0.5);
            font-weight: bold;
        }

        .epg-program-block:hover {
            background-color: #333;
            border-left-color: var(--primary-color);
            z-index: 20;
        }

        /* LIVE STATUS STYLES */
        .epg-program-block.is-live {
            border: 1px solid var(--alert-color);
            border-left: 4px solid var(--alert-color);
            background: linear-gradient(90deg, rgba(220, 53, 69, 0.2) 0%, rgba(37, 37, 37, 1) 100%);
        }

        .epg-program-block.is-live .epg-prog-time::before {
            content: '• TERAZ ';
            color: var(--alert-color);
            font-weight: 900;
            animation: pulse 2s infinite;
        }

        @keyframes pulse {
            0% {
                opacity: 1;
            }

            50% {
                opacity: 0.5;
            }

            100% {
                opacity: 1;
            }
        }

        /* TYTUŁY I TEKSTY - NORMAL VIEW */
        .epg-text-wrapper {
            display: flex;
            flex-direction: column;
            justify-content: center;
            height: 100%;
        }

        .epg-prog-title {
            font-weight: 600;
            color: #e0e0e0;
            font-size: 0.8rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            line-height: 1.2;
        }

        .epg-prog-episode {
            color: #999;
            font-size: 0.7rem;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            margin-top: 1px;
        }

        .epg-prog-time {
            color: var(--primary-color);
            font-size: 0.7rem;
            margin-bottom: 2px;
            font-weight: 700;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        /* New Description Class - HIDDEN BY DEFAULT */
        .epg-prog-desc {
            display: none;
            /* Hide by default */
            font-size: 0.75rem;
            color: #aaa;
            margin-top: 8px;
            margin-bottom: 8px;
            line-height: 1.4;
            white-space: normal;
        }

        /* --- LOGIKA ROZSZERZANIA (EXPANDED) --- */
        .epg-program-block.expanded {
            z-index: 1000 !important;
            width: auto !important;
            /* Allow width to auto-adjust */
            min-width: 350px !important;
            /* Wider */
            max-width: 450px;

            height: auto !important;
            /* Grow with content */
            min-height: 200px;
            /* Minimum height for better click targets */
            overflow: visible !important;
            /* Allow content to show */

            top: -20px;
            background: #1a1a1a;
            border: 1px solid var(--primary-color);
            box-shadow: 0 15px 50px rgba(0, 0, 0, 0.9);
            padding: 15px;
            border-radius: 8px;
        }

        /* REPLACED BY MODAL */


        /* LINIA CZASU */
        .epg-current-time-line {
            position: absolute;
            top: 0;
            bottom: 0;
            width: 2px;
            background-color: #ff0000;
            z-index: 25;
            pointer-events: none;
            opacity: 0.8;
        }

        .epg-current-time-line::after {
            content: '';
            position: absolute;
            top: -5px;
            left: -4px;
            width: 10px;
            height: 10px;
            background: #ff0000;
            border-radius: 50%;
            box-shadow: 0 0 10px #ff0000;
        }


        .clickable-title:hover {
            text-decoration: underline;
            color: var(--primary-color);
            cursor: pointer;
        }

        @media (max-width: 768px) {
            .content-container {
                width: 96%;
                padding-left: 10px;
                padding-right: 10px;
            }

            .tv-row {
                grid-template-columns: 80px 1fr;
                gap: 10px;
            }

            #heroCarousel {
                margin-bottom: 0;
            }

            .intro-title {
                font-size: 1.8rem;
            }

            .logo-wrapper {
                width: 140px;
                height: 140px;
            }

            .program-hero {
                height: 40vh;
                min-height: 300px;
            }

            .navbar-brand {
                font-size: 1.1rem;
            }

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

            .programs-grid {
                grid-template-columns: 1fr;
            }

            .program-actions {
                height: auto;
                opacity: 1;
                margin-top: 10px;
            }

            .display-1 {
                font-size: 4rem !important;
            }

            .display-4 {
                font-size: 2.5rem !important;
            }

            .display-5 {
                font-size: 1.8rem !important;
            }
        }

        /* --- EPG MODAL --- */
        .epg-modal-overlay {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background: rgba(0, 0, 0, 0.85);
            backdrop-filter: blur(8px);
            z-index: 10000;
            display: none;
            justify-content: center;
            align-items: center;
            opacity: 0;
            transition: opacity 0.3s;
        }

        .epg-modal-overlay.show {
            display: flex;
            opacity: 1;
        }

        .epg-modal-content {
            background: #121212;
            width: 90%;
            max-width: 700px;
            border-radius: 16px;
            overflow: hidden;
            box-shadow: 0 25px 50px rgba(0, 0, 0, 0.5);
            border: 1px solid rgba(255, 255, 255, 0.1);
            position: relative;
            transform: scale(0.95);
            transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
        }

        .epg-modal-overlay.show .epg-modal-content {
            transform: scale(1);
        }

        .epg-modal-close {
            position: absolute;
            top: 15px;
            right: 15px;
            background: rgba(0, 0, 0, 0.5);
            border: 1px solid rgba(255, 255, 255, 0.2);
            color: #fff;
            width: 36px;
            height: 36px;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 1.5rem;
            cursor: pointer;
            z-index: 20;
            transition: 0.2s;
            line-height: 1;
        }

        .epg-modal-close:hover {
            background: var(--primary-color);
            border-color: var(--primary-color);
        }

        .epg-modal-hero {
            height: 300px;
            position: relative;
            background-size: cover;
            background-position: center top;
        }

        .epg-modal-hero-overlay {
            position: absolute;
            inset: 0;
            background: linear-gradient(to top, #1a1a1a 0%, rgba(26, 26, 26, 0.8) 20%, rgba(26, 26, 26, 0.1) 100%);
        }

        .epg-modal-hero-content {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            padding: 30px;
            z-index: 2;
        }

        #epg-modal-title {
            font-size: 1.8rem;
            font-weight: 800;
            color: #fff;
            margin: 0;
            line-height: 1.2;
            text-shadow: 0 4px 20px rgba(0, 0, 0, 0.8);
            letter-spacing: -0.5px;
        }

        #epg-modal-subtitle {
            margin-top: 8px;
            font-weight: 500;
            font-size: 1rem;
            color: rgba(255, 255, 255, 0.7);
            letter-spacing: 0.5px;
            text-transform: uppercase;
        }

        .epg-modal-body {
            padding: 0 30px 40px 30px;
        }

        #epg-modal-desc {
            font-size: 1.05rem;
            line-height: 1.6;
            color: #c0c0c0;
            margin-bottom: 30px;
        }

        .epg-modal-meta {
            display: flex;
            align-items: center;
            margin-bottom: 20px;
            font-size: 0.9rem;
            color: #aaa;
            gap: 15px;
        }

        .epg-modal-meta i {
            color: var(--primary-color);
        }

        /* --- UTILITY CLASSES REFACTORED FROM INLINE --- */
        .text-dim-small {
            color: var(--text-dim);
            font-size: 0.9rem;
            line-height: 1.6;
        }

        .error-page-wrapper {
            padding-top: 150px;
            padding-bottom: 100px;
        }

        .error-title {
            font-size: 6rem;
            text-shadow: 0 0 30px rgba(0, 164, 220, 0.4);
        }

        .error-desc {
            max-width: 500px;
            margin: 0 auto;
            color: var(--text-dim);
        }

        /* --- HERO REFACTORED --- */
        .hero-carousel-inner {
            border-radius: 24px;
            overflow: hidden;
            box-shadow: 0 40px 80px rgba(0, 0, 0, 0.6);
        }

        .intro-slide-bg {
            border-radius: 24px;
            background-size: cover;
            background-position: center;
        }

        .intro-glass-panel {
            max-width: 800px;
            padding: 3rem;
            margin: 0 auto;
            backdrop-filter: blur(10px);
            background: rgba(0, 0, 0, 0.4);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 24px;
        }

        .intro-title-lg {
            font-size: 3.5rem;
        }

        .blur-5 {
            backdrop-filter: blur(5px);
        }

        /* --- EPG MODAL REFACTORED --- */
        .epg-modal-genres {
            letter-spacing: 1px;
        }

        .epg-modal-desc {
            line-height: 1.6;
            color: #ccc !important;
        }