/* ============================================
   MOVIEVIBES.NET - VERSION 46 STYLESHEET
   NEW: Share btn on poster top-right
        Movie-name placeholder poster
        Upcoming filter support
   FIX: Month & week-filter button hover
        truncation on mobile (v45 → v46)
        Root cause: overflow-x:auto on a flex
        container forces overflow-y:clip too,
        so translateY(-2px) on hover gets cut.
        Fix: add vertical padding to every
        overflow:auto scroll container so the
        transformed button stays within the
        paint bounds. Year buttons are unaffected
        because they live in a plain flex row
        with no overflow:auto ancestor.
   ============================================ */

/* ===== RESET & BASE ===== */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { overflow-x:hidden; max-width:100vw; }

:root {
    --color-primary:   #8b5cf6;
    --color-secondary: #ec4899;
    --color-accent:    #3b82f6;
    --color-success:   #22c55e;
    --color-warning:   #eab308;
    --color-danger:    #ef4444;
    --color-bg-dark:   #0f172a;
    --color-bg-mid:    #1e1b4b;
    --color-bg-light:  rgba(255,255,255,0.08);
    --color-text:      #fff;
    --color-text-muted:#cbd5e1;
    --color-text-dim:  #b8b8d1;
    --transition-base: all 0.3s ease;
    --shadow-base:     0 4px 15px rgba(0,0,0,0.2);
    --shadow-elevated: 0 10px 30px rgba(0,0,0,0.3);
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --radius-xl: 25px;
}

body {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: linear-gradient(135deg, var(--color-bg-dark) 0%, #1e1b4b 25%, #312e81 50%, #4c1d95 75%, #581c87 100%);
    min-height: 100vh;
    color: var(--color-text);
    overflow-x: hidden;
    line-height: 1.6;
    max-width: 100vw;
}
body::before {
    content:'';
    position:fixed; inset:0;
    background:
        radial-gradient(circle at 20% 30%, rgba(139,92,246,.10) 0%, transparent 50%),
        radial-gradient(circle at 80% 70%, rgba(236,72,153,.10) 0%, transparent 50%),
        radial-gradient(circle at 50% 50%, rgba(59,130,246,.05) 0%, transparent 50%);
    pointer-events:none; z-index:0;
}
body > * { position:relative; z-index:1; }

/* ===== LOADER ===== */
.loader {
    position:fixed; inset:0;
    background:linear-gradient(135deg, var(--color-bg-dark) 0%, #1e1b4b 50%, #4c1d95 100%);
    display:flex; align-items:center; justify-content:center;
    z-index:10000; transition:opacity .5s ease, visibility .5s ease;
}
.loader.hidden { opacity:0; visibility:hidden; }

/* ===== COOKIE BANNER ===== */
.cookie-banner {
    display:none; position:fixed; bottom:0; left:0; right:0;
    background:linear-gradient(135deg,#1a1a2e 0%,#2d1b4e 100%);
    border-top:2px solid rgba(168,85,247,.3);
    padding:20px; box-shadow:0 -5px 30px rgba(0,0,0,.5); z-index:9000;
}
.cookie-banner.active { display:block; }
.cookie-content {
    max-width:1200px; margin:0 auto;
    display:flex; align-items:center; gap:20px; flex-wrap:wrap;
}
.cookie-icon { font-size:2.5rem; flex-shrink:0; }
.cookie-text { flex:1; min-width:250px; }
.cookie-text h3 { color:#c084fc; margin-bottom:8px; font-size:1.2rem; }
.cookie-text p  { color:var(--color-text-dim); font-size:.9rem; line-height:1.5; }
.cookie-actions { display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.cookie-btn { border:none; border-radius:var(--radius-sm); font-weight:600; cursor:pointer; transition:var(--transition-base); font-size:.95rem; }
.reject-btn { padding:12px 24px; background:rgba(255,255,255,.10); color:#e5e7eb; }
.reject-btn:hover { background:rgba(255,255,255,.15); transform:translateY(-2px); }
.accept-btn { padding:15px 32px; background:linear-gradient(135deg,var(--color-primary),#c084fc); color:#fff; font-size:1.05rem; font-weight:700; box-shadow:0 2px 8px rgba(168,85,247,.3); }
.accept-btn:hover { transform:translateY(-2px); box-shadow:0 5px 15px rgba(168,85,247,.4); }

/* ===== HEADER ===== */
.header-new {
    background:linear-gradient(180deg,rgba(15,23,42,.95) 0%,rgba(30,27,75,.9) 100%);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(139,92,246,.2);
    padding:15px 20px; box-shadow:0 2px 20px rgba(0,0,0,.3);
}
.header-container {
    max-width:1600px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    gap:30px; flex-wrap:wrap;
}
.logo-section { display:flex; align-items:center; gap:15px; }
.site-icon {
    font-size:3rem;
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
    border-radius:15px; width:60px; height:60px;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 15px rgba(139,92,246,.4);
}
.site-info { display:flex; flex-direction:column; }
.site-title {
    font-size:1.8rem; margin:0; letter-spacing:.5px; font-weight:800;
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary) 50%,var(--color-accent));
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
}
.site-tagline { color:var(--color-text-muted); font-size:.9rem; font-weight:300; margin:0; }
.search-section-header { flex:1; min-width:200px; max-width:260px; }
.search-box-header { position:relative; width:100%; display:flex; align-items:center; }
.search-icon { position:absolute; left:18px; font-size:1.1rem; pointer-events:none; z-index:2; }
.search-input-header {
    width:100%; padding:10px 48px 10px 50px;
    border-radius:30px; border:2px solid rgba(139,92,246,.3);
    background:var(--color-bg-light); color:#fff; font-size:.95rem;
    transition:var(--transition-base); backdrop-filter:blur(10px);
}
.search-input-header::placeholder { color:var(--color-text-dim); }
.search-input-header:focus {
    outline:none; border-color:rgba(139,92,246,.6);
    background:rgba(255,255,255,.12); box-shadow:0 4px 20px rgba(139,92,246,.3);
}
.clear-search-header {
    position:absolute; right:12px;
    background:rgba(239,68,68,.8); color:#fff; border:none; border-radius:50%;
    width:28px; height:28px; font-size:.9rem; cursor:pointer;
    display:flex; align-items:center; justify-content:center; z-index:2;
    transition:var(--transition-base);
}
.clear-search-header:hover { background:var(--color-danger); transform:scale(1.1); }

/* ===== STICKY NAV ===== */
.sticky-nav-wrapper {
    position:sticky; top:0; z-index:1000;
    background:linear-gradient(180deg,rgba(15,23,42,.98) 0%,rgba(30,27,75,.95) 100%);
    backdrop-filter:blur(10px);
    border-bottom:1px solid rgba(139,92,246,.2);
    box-shadow:0 4px 20px rgba(0,0,0,.4);
    transition:box-shadow .3s ease; overflow-x:hidden; max-width:100vw;
}
.sticky-nav-wrapper.scrolled { box-shadow:0 6px 30px rgba(0,0,0,.6); }

/* ===== MAIN MENU ===== */
.main-menu {
    display:flex; justify-content:center; gap:8px;
    padding:12px 15px 8px; flex-wrap:wrap;
    border-bottom:1px solid rgba(139,92,246,.1);
}
.menu-btn {
    padding:8px 18px; border-radius:var(--radius-xl);
    border:1px solid rgba(139,92,246,.3); background:var(--color-bg-light);
    color:#e2e8f0; font-size:.9rem; cursor:pointer;
    transition:var(--transition-base); text-decoration:none; white-space:nowrap;
    backdrop-filter:blur(10px);
}
.menu-btn:hover { border-color:rgba(139,92,246,.6); transform:translateY(-2px); box-shadow:var(--shadow-base); }
.menu-btn.active {
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
    border-color:transparent; box-shadow:0 4px 15px rgba(139,92,246,.5);
    color:#fff; font-weight:600;
}

/* ===== COMPACT FILTERS ===== */
/*
 * FIX (v46): Extra vertical padding here gives the sticky-nav-wrapper
 * enough inner height so that translateY(-2px) on hovered buttons is
 * never clipped by the wrapper's overflow-x:hidden (which implicitly
 * clips overflow-y on the same axis in most browsers).
 */
.filters-compact {
    display:flex; align-items:center; justify-content:center;
    gap:15px; padding:14px 15px; flex-wrap:wrap; max-width:100%;
}

.filter-group {
    display:flex; align-items:center; gap:6px;
    flex-wrap:wrap; max-width:100%; justify-content:center;
    /* FIX (v46): vertical padding so overflow-x:auto (added on mobile)
       doesn't clip the upward translateY hover transform            */
    padding:4px 2px;
}
.month-filter-group {
    flex-wrap:nowrap !important;
    overflow:visible;
    align-items:center;
}
.filter-divider { width:1px; height:30px; background:rgba(139,92,246,.3); }

.filter-btn-compact, .month-btn-compact {
    padding:8px 18px; border-radius:var(--radius-xl);
    border:1px solid rgba(139,92,246,.3); background:var(--color-bg-light);
    color:#e2e8f0; font-size:.9rem; cursor:pointer;
    transition:var(--transition-base); white-space:nowrap; backdrop-filter:blur(10px);
}
.filter-btn-compact:hover, .month-btn-compact:hover {
    border-color:rgba(139,92,246,.6); transform:translateY(-2px); box-shadow:var(--shadow-base);
}
.filter-btn-compact.active, .month-btn-compact.active {
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
    border-color:transparent; box-shadow:0 4px 15px rgba(139,92,246,.5);
    color:#fff; font-weight:600;
}

/* Upcoming button — accent teal variant when active */
#upcomingBtn.active {
    background:linear-gradient(135deg,#0ea5e9,#06b6d4);
    border-color:transparent; box-shadow:0 4px 15px rgba(6,182,212,.5);
    color:#fff; font-weight:600;
}

/* ===== MONTH CONTAINER — hover truncation fix ===== */
/*
 * FIX (v46): overflow-x:auto implicitly forces overflow-y:clip (CSS spec).
 * padding:4px 2px gives vertical paint room so translateY(-2px) renders
 * fully. scroll-padding keeps edge buttons unclipped after scrollIntoView.
 */
.month-container-compact {
    display:flex; gap:6px; overflow-x:auto; scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    flex-shrink:1; min-width:0;
    padding:4px 2px;
    scroll-padding:0 4px;
}
.month-container-compact::-webkit-scrollbar { display:none; }

.month-nav-compact {
    width:32px; height:32px; border-radius:50%; border:none;
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
    color:#fff; font-size:.9rem; cursor:pointer; font-weight:bold;
    display:flex; align-items:center; justify-content:center;
    flex-shrink:0; transition:var(--transition-base);
}
.month-nav-compact:hover { transform:scale(1.1); box-shadow:0 4px 15px rgba(139,92,246,.5); }

/* ===== CONTENT ===== */
.content { max-width:1600px; margin:0 auto; padding:25px 20px; }
.category-section { display:none; }
.category-section.active { display:block; }

/* ===== MOVIE COUNT PILL ===== */
.count-bar {
    display:flex; justify-content:center; margin-bottom:22px;
}
.movie-count-pill {
    display:inline-flex; align-items:center; gap:8px;
    background:rgba(139,92,246,.14);
    border:1px solid rgba(139,92,246,.35);
    border-radius:30px; padding:8px 22px;
    font-size:.9rem; color:#c4b5fd;
    box-shadow:0 2px 10px rgba(139,92,246,.15);
    backdrop-filter:blur(6px);
}
.count-icon { font-size:1rem; }
.movie-count { font-weight:600; letter-spacing:.2px; }

/* ===== MOVIES GRID ===== */
.movies-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(320px,1fr));
    gap:25px; margin-bottom:60px;
}
.no-movies {
    grid-column:1/-1; display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    padding:80px 20px; text-align:center;
}
.no-movies h3 { font-size:2rem; color:#e0e7ff; margin-bottom:12px; font-weight:600; }
.no-movies p  { font-size:1.05rem; color:#cbd5e1; }

/* ===== MOVIE CARD ===== */
.movie-card {
    background:rgba(255,255,255,.05);
    border-radius:var(--radius-lg); overflow:hidden;
    transition:all .4s ease; backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.10); position:relative;
}
.movie-card.hidden { display:none; }
.movie-card:hover {
    transform:translateY(-8px);
    box-shadow:0 15px 40px rgba(139,92,246,.3);
    background:rgba(255,255,255,.08);
    border-color:rgba(139,92,246,.4);
}
.movie-card::before {
    content:''; position:absolute; top:0; left:0; right:0; height:4px;
    background:linear-gradient(90deg,var(--color-primary),var(--color-secondary),var(--color-accent));
    opacity:0; transition:opacity .4s ease;
}
.movie-card:hover::before { opacity:1; }

/* ===== POSTER CONTAINER ===== */
.movie-poster-container {
    position:relative; width:100%; height:280px;
    overflow:hidden; background:rgba(0,0,0,.2); cursor:pointer;
}
.movie-poster-container .movie-image {
    width:100%; height:100%; object-fit:cover;
    display:block; transition:transform .4s ease; pointer-events:none;
}
.movie-card:hover .movie-poster-container .movie-image { transform:scale(1.05); }

/* ============================================
   ★ MOVIE NAME PLACEHOLDER (no image / no YT)
   ============================================ */
.movie-name-placeholder {
    width:100%; height:100%;
    display:flex; align-items:center; justify-content:center;
    background:linear-gradient(135deg,rgba(49,30,129,.85) 0%,rgba(76,29,149,.9) 50%,rgba(88,28,135,.85) 100%);
    padding:24px; text-align:center;
    pointer-events:none;
}
.movie-name-placeholder span {
    font-size:1.5rem; font-weight:800; line-height:1.35;
    background:linear-gradient(135deg,#c4b5fd 0%,#f9a8d4 60%,#93c5fd 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
    letter-spacing:.3px;
}

/* ============================================
   ★ OTT PLATFORM BADGE  — top-left of poster
   ============================================ */
.ott-badge {
    position:absolute; top:12px; left:12px; z-index:10;
    background:rgba(0,0,0,.72);
    border:1px solid rgba(255,255,255,.22);
    backdrop-filter:blur(6px);
    color:#fff; font-size:.72rem; font-weight:700;
    padding:4px 11px; border-radius:20px;
    letter-spacing:.4px; text-transform:uppercase;
    box-shadow:0 2px 8px rgba(0,0,0,.4);
    pointer-events:none;
}

/* ============================================
   ★ "NEW" BADGE — bottom-left of poster
   ============================================ */
.new-badge {
    position:absolute; bottom:12px; left:12px; z-index:10;
    background:linear-gradient(135deg,#22c55e 0%,#16a34a 100%);
    color:#fff; font-size:.72rem; font-weight:700;
    padding:4px 11px; border-radius:20px;
    letter-spacing:.4px; text-transform:uppercase;
    box-shadow:0 2px 8px rgba(34,197,94,.45);
    animation:newPulse 2.4s ease-in-out infinite;
    pointer-events:none;
}
@keyframes newPulse {
    0%,100% { box-shadow:0 2px 8px rgba(34,197,94,.45); }
    50%      { box-shadow:0 2px 18px rgba(34,197,94,.75); }
}

/* ============================================
   ★ SHARE BUTTON — top-right of poster
   ============================================ */
.share-btn {
    position:absolute; top:12px; right:12px; z-index:20;
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
    color:#fff; border:none; border-radius:50%;
    width:40px; height:40px; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 4px 15px rgba(139,92,246,.55);
    transition:var(--transition-base);
}
.share-btn:hover { transform:scale(1.15) rotate(5deg); box-shadow:0 6px 25px rgba(139,92,246,.7); }

/* ===== VIDEO PLAY OVERLAY ===== */
.video-play-overlay {
    position:absolute; inset:0;
    background:rgba(0,0,0,.4);
    display:flex; align-items:center; justify-content:center;
    opacity:0; transition:opacity .3s ease; z-index:5; pointer-events:none;
}
.movie-card:hover .video-play-overlay { opacity:1; }
.video-play-button {
    width:60px; height:60px; border-radius:50%;
    background:rgba(255,255,255,.95); border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:center;
    transition:all .3s ease; box-shadow:0 4px 15px rgba(0,0,0,.3);
    pointer-events:all;
}
.video-play-button:hover { transform:scale(1.15); background:#fff; box-shadow:0 6px 25px rgba(0,0,0,.5); }
.play-icon {
    width:0; height:0;
    border-left:20px solid #e50914;
    border-top:13px solid transparent;
    border-bottom:13px solid transparent;
    margin-left:4px; transition:border-color .3s ease;
}
.video-play-button:hover .play-icon { border-left-color:#b20710; }

/* ===== MOVIE INFO ===== */
.movie-info { padding:18px 18px 20px; position:relative; }
.movie-title {
    font-size:1.35rem; margin-bottom:10px; font-weight:700;
    background:linear-gradient(135deg,#e0e7ff 0%,#ddd6fe 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
    line-height:1.3;
}
.movie-detail { color:var(--color-text-muted); margin-bottom:7px; font-size:.88rem; line-height:1.5; }
.movie-detail strong { color:#e0e7ff; font-weight:600; }

/* ===== GENRE PILL TAGS ===== */
.genre-tags { display:flex; flex-wrap:wrap; gap:6px; margin:10px 0 4px; }
.genre-tag {
    display:inline-block; padding:4px 12px;
    background:rgba(139,92,246,.14); border:1px solid rgba(139,92,246,.35);
    border-radius:20px; color:#c4b5fd;
    font-size:.76rem; font-weight:600; letter-spacing:.2px;
    transition:var(--transition-base);
}
.genre-tag:hover {
    background:rgba(139,92,246,.28); border-color:rgba(139,92,246,.6); color:#e9d5ff;
}

/* ===== RATING SECTION ===== */
.rating-section { margin-top:18px; padding-top:18px; border-top:1px solid rgba(139,92,246,.2); }
.rating-label { color:var(--color-text-muted); margin-bottom:12px; font-size:.88rem; font-weight:500; }
.rating-buttons { display:flex; gap:10px; }
.rating-btn {
    flex:1; display:flex; flex-direction:column; align-items:center;
    gap:6px; padding:13px 8px; border-radius:var(--radius-md);
    border:1px solid rgba(139,92,246,.2); background:rgba(15,23,42,.5);
    color:#94a3b8; cursor:pointer; transition:var(--transition-base);
    font-size:.82rem; backdrop-filter:blur(10px);
}
.rating-btn:hover { background:rgba(139,92,246,.10); transform:translateY(-3px); border-color:rgba(139,92,246,.4); }
.rating-btn.excellent:hover { background:rgba(34,197,94,.15); border-color:rgba(34,197,94,.5); color:#4ade80; box-shadow:0 4px 15px rgba(34,197,94,.3); }
.rating-btn.average:hover   { background:rgba(234,179,8,.15);  border-color:rgba(234,179,8,.5); color:#facc15; box-shadow:0 4px 15px rgba(234,179,8,.3); }
.rating-btn.not-good:hover  { background:rgba(239,68,68,.15);  border-color:rgba(239,68,68,.5); color:#f87171; box-shadow:0 4px 15px rgba(239,68,68,.3); }
.rating-btn.selected { transform:scale(1.05); }
.rating-btn.excellent.selected { background:linear-gradient(135deg,rgba(34,197,94,.3),rgba(16,185,129,.3)); border-color:rgba(34,197,94,.7); color:#4ade80; box-shadow:0 4px 20px rgba(34,197,94,.4); }
.rating-btn.average.selected   { background:linear-gradient(135deg,rgba(234,179,8,.3),rgba(245,158,11,.3)); border-color:rgba(234,179,8,.7); color:#facc15; box-shadow:0 4px 20px rgba(234,179,8,.4); }
.rating-btn.not-good.selected  { background:linear-gradient(135deg,rgba(239,68,68,.3),rgba(220,38,38,.3)); border-color:rgba(239,68,68,.7); color:#f87171; box-shadow:0 4px 20px rgba(239,68,68,.4); }
.rating-btn:disabled { opacity:.6; cursor:not-allowed; }
.thumb-icon   { font-size:1.4rem; }
.rating-count { font-size:.72rem; font-weight:600; margin-top:2px; }

/* ===== FOOTER ===== */
.footer {
    text-align:center; padding:30px 20px;
    border-top:1px solid rgba(255,255,255,.1);
    color:var(--color-text-dim); margin-top:40px;
}
.footer .heart { color:var(--color-danger); }
.footer-links { margin-top:15px; display:flex; flex-wrap:wrap; justify-content:center; gap:10px; }
.footer-link  { color:var(--color-primary); text-decoration:none; font-size:.9rem; transition:color .3s ease; }
.footer-link:hover { color:#c084fc; text-decoration:underline; }
.footer-separator { margin:0 5px; color:rgba(255,255,255,.3); }
.footer-copyright {
    margin-top:20px; padding-top:20px;
    border-top:1px solid rgba(255,255,255,.1);
    color:#94a3b8; font-size:.85rem;
}

/* ===== MODALS ===== */
.modal {
    display:none; position:fixed; z-index:1000; inset:0; overflow:auto;
    background:rgba(0,0,0,.7); backdrop-filter:blur(5px);
}
.modal-content {
    background:linear-gradient(135deg,#1a1a2e 0%,#2d1b4e 100%);
    margin:3% auto; padding:0;
    border:1px solid rgba(168,85,247,.3); border-radius:var(--radius-lg);
    width:90%; max-width:800px; max-height:85vh; overflow:hidden;
    box-shadow:0 10px 50px rgba(0,0,0,.5);
}
.modal-content h2 {
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
    padding:25px 30px; margin:0; font-size:1.8rem; color:#fff;
    border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.close { color:#fff; float:right; font-size:32px; font-weight:bold; line-height:25px; cursor:pointer; transition:color .3s ease; }
.close:hover { color:var(--color-danger); }
.terms-content { padding:30px; overflow-y:auto; max-height:calc(85vh - 100px); color:#e0e0e0; }

/* ===== RATING CONFIRMATION ===== */
.rating-confirmation {
    display:none; position:fixed; z-index:10000; inset:0;
    background:rgba(0,0,0,.8); backdrop-filter:blur(5px); animation:fadeIn .3s ease;
}
.rating-confirmation.active { display:flex; justify-content:center; align-items:center; }
.confirmation-box {
    background:linear-gradient(135deg,#1a1a2e 0%,#2d1b4e 100%);
    padding:40px; border-radius:var(--radius-lg); text-align:center;
    max-width:450px; width:90%;
    border:2px solid var(--color-primary); box-shadow:0 10px 50px rgba(168,85,247,.4);
    animation:slideUp .3s ease;
}
.confirmation-icon { font-size:3.5rem; margin-bottom:20px; }
.confirmation-box h3 { font-size:1.8rem; margin-bottom:20px; color:#c084fc; }
.confirmation-box p  { color:var(--color-text-dim); margin-bottom:30px; font-size:1.05rem; line-height:1.6; }
.confirmation-buttons { display:flex; gap:15px; justify-content:center; }
.confirm-yes-btn, .confirm-no-btn { padding:14px 36px; border:none; border-radius:var(--radius-md); font-size:1.05rem; font-weight:600; cursor:pointer; transition:var(--transition-base); min-width:120px; }
.confirm-yes-btn { background:linear-gradient(135deg,var(--color-success),#16a34a); color:#fff; }
.confirm-yes-btn:hover { transform:translateY(-2px); box-shadow:0 5px 20px rgba(34,197,94,.4); }
.confirm-no-btn  { background:linear-gradient(135deg,var(--color-danger),#dc2626); color:#fff; }
.confirm-no-btn:hover  { transform:translateY(-2px); box-shadow:0 5px 20px rgba(239,68,68,.4); }

/* ===== VIDEO MODAL ===== */
.video-modal {
    display:none; position:fixed; inset:0; background:rgba(0,0,0,.95); z-index:10000;
    align-items:center; justify-content:center; padding:40px 20px;
    backdrop-filter:blur(10px); animation:fadeIn .3s ease;
}
.video-modal.active { display:flex; }
.video-modal-content {
    position:relative; width:100%; max-width:900px; background:#000;
    border-radius:16px; overflow:hidden;
    box-shadow:0 20px 60px rgba(0,0,0,.9); animation:slideUp .4s ease;
    border:2px solid rgba(139,92,246,.3);
}
.video-modal iframe { width:100%; aspect-ratio:16/9; border:none; display:block; }
.video-close-btn {
    position:fixed; top:15px; right:15px; width:45px; height:45px;
    background:rgba(0,0,0,.75); color:#fff; font-size:2.5rem; cursor:pointer;
    border:2px solid rgba(255,255,255,.4); border-radius:8px;
    display:flex; align-items:center; justify-content:center;
    z-index:10005; transition:all .3s ease; line-height:1; font-weight:300;
}
.video-close-btn:hover { background:rgba(229,9,20,.95); transform:scale(1.1); border-color:rgba(255,255,255,.6); }

/* ===== NOTIFICATIONS ===== */
.daily-notification-banner {
    position:fixed; top:-300px; left:50%; transform:translateX(-50%);
    width:90%; max-width:700px;
    background:linear-gradient(135deg,rgba(139,92,246,.95),rgba(168,85,247,.95));
    backdrop-filter:blur(20px); border-radius:16px; padding:20px 25px;
    box-shadow:0 10px 40px rgba(139,92,246,.5),0 0 0 1px rgba(255,255,255,.1);
    z-index:9999; border:2px solid rgba(255,255,255,.2);
    transition:top .6s cubic-bezier(.68,-.55,.265,1.55), opacity .4s ease;
    opacity:0; visibility:hidden;
}
.daily-notification-banner.show { top:20px; opacity:1; visibility:visible; }
.notification-content { display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.notification-icon-wrapper {
    flex-shrink:0; background:rgba(255,255,255,.2); width:60px; height:60px;
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    animation:notificationPulse 2s ease-in-out infinite;
}
.notification-emoji { font-size:2rem; }
.notification-text  { flex:1; min-width:200px; }
.notification-title { font-size:1.3rem; font-weight:700; color:#fff; margin:0 0 8px; }
.notification-message { font-size:.95rem; color:rgba(255,255,255,.95); margin:0; }
.notification-actions { display:flex; gap:10px; flex-wrap:wrap; }
.notification-btn { padding:10px 20px; border:none; border-radius:10px; font-size:.9rem; font-weight:600; cursor:pointer; transition:all .3s ease; display:inline-flex; align-items:center; gap:6px; }
.enable-btn   { background:rgba(255,255,255,.95); color:#8b5cf6; }
.enable-btn:hover { background:#fff; transform:translateY(-2px); }
.dismiss-btn  { background:rgba(0,0,0,.2); color:#fff; border:1px solid rgba(255,255,255,.3); }
.dismiss-btn:hover { background:rgba(0,0,0,.35); transform:translateY(-2px); }

/* ===== ANIMATIONS ===== */
@keyframes fadeIn   { from{opacity:0}    to{opacity:1} }
@keyframes slideUp  { from{transform:translateY(50px);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes spin     { 0%{transform:rotate(0deg)} 100%{transform:rotate(360deg)} }
@keyframes notificationPulse {
    0%,100%{transform:scale(1);box-shadow:0 4px 15px rgba(0,0,0,.2)}
    50%    {transform:scale(1.05);box-shadow:0 6px 20px rgba(255,255,255,.3)}
}

/* ===== RESPONSIVE ===== */
@media (max-width:1024px) {
    .movies-grid { grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:20px; }
    .header-container { flex-direction:column; gap:20px; }
    .search-section-header { max-width:100%; }
    .month-container-compact { max-width:500px; }
    .video-modal { padding:30px 15px; }
    .video-modal-content { max-width:700px; }
    .video-close-btn { top:12px; right:12px; width:42px; height:42px; font-size:2.2rem; }
}
@media (max-width:820px) {
    .filter-btn-compact, .month-btn-compact { padding:7px 15px; font-size:.85rem; }
    .month-container-compact { max-width:calc(100vw - 120px); }
}
@media (max-width:768px) {
    .site-icon { width:50px; height:50px; font-size:2.5rem; }
    .site-title { font-size:1.5rem; }
    .movies-grid { grid-template-columns:1fr; gap:18px; }
    .main-menu { gap:6px; padding:10px 10px 8px; }
    .menu-btn  { padding:7px 12px; font-size:.82rem; }
    .filters-compact {
        flex-direction:column; gap:10px;
        /* FIX (v46): keep vertical padding on mobile so hovered buttons
           are not clipped by sticky-nav-wrapper's overflow-x:hidden   */
        padding:14px 10px;
        width:100%;
    }
    .filter-group {
        width:100%; justify-content:center;
        overflow-x:auto; -webkit-overflow-scrolling:touch;
        /* FIX (v46): vertical padding so overflow-x:auto doesn't clip
           the translateY(-2px) hover transform on week-filter buttons  */
        padding:4px 2px;
    }
    .month-filter-group { width:100%; padding:4px 5px; flex-wrap:nowrap !important; }
    .filter-divider { display:none; }
    .filter-btn-compact, .month-btn-compact { padding:7px 13px; font-size:.82rem; flex-shrink:0; }
    /* FIX (v46): was padding:0 5px — zero vertical padding re-introduced
       the clipping bug on mobile; use 4px top/bottom to match base fix  */
    .month-container-compact { max-width:calc(100vw - 120px); padding:4px 5px; }
    .month-nav-compact { width:28px; height:28px; font-size:.8rem; }
    .rating-buttons { gap:8px; }
    .rating-btn { padding:11px 6px; font-size:.74rem; }
    .thumb-icon { font-size:1.2rem; }
    .footer-separator { display:none; }
    .confirmation-buttons { flex-direction:column; }
    .confirm-yes-btn, .confirm-no-btn { width:100%; }
    .video-play-overlay { opacity:.8; }
    .video-modal { padding:20px 10px; }
    .video-modal-content { max-width:100%; border-radius:12px; }
    .video-close-btn { top:22px; right:14px; width:40px; height:40px; font-size:2.1rem; background:rgba(229,9,20,.95); }
    .daily-notification-banner { width:95%; padding:18px 20px; }
    .daily-notification-banner.show { top:10px; }
    .notification-title { font-size:1.1rem; }
    .movie-count-pill { font-size:.85rem; padding:7px 18px; }
    .share-btn { width:36px; height:36px; }
}
@media (max-width:480px) {
    .site-icon { width:45px; height:45px; font-size:2rem; }
    .site-title { font-size:1.3rem; }
    .search-input-header { padding:10px 40px 10px 44px; font-size:.88rem; }
    .filter-btn-compact, .month-btn-compact { padding:6px 11px; font-size:.78rem; }
    /* FIX (v46): preserve vertical padding at this breakpoint too */
    .month-container-compact { max-width:calc(100vw - 90px); gap:4px; padding:4px 3px; }
    .month-nav-compact { width:26px; height:26px; font-size:.75rem; }
    .movie-title { font-size:1.15rem; }
    .share-btn { width:34px; height:34px; top:9px; right:9px; }
    .ott-badge { font-size:.68rem; padding:3px 9px; top:9px; left:9px; }
    .new-badge { font-size:.68rem; padding:3px 9px; bottom:9px; left:9px; }
    .genre-tag { font-size:.72rem; padding:3px 9px; }
    .movie-count-pill { font-size:.8rem; padding:6px 14px; }
    .cookie-banner { padding:15px; }
    .accept-btn { padding:12px 22px; font-size:.95rem; }
    .reject-btn { padding:10px 16px; font-size:.85rem; }
    .video-close-btn { top:18px; right:10px; width:38px; height:38px; font-size:2rem; background:rgba(229,9,20,.98); }
    .video-modal { padding:14px 8px; }
    .movie-name-placeholder span { font-size:1.2rem; }
}
@media (max-width:375px) {
    .month-container-compact { max-width:calc(100vw - 85px); }
    .video-close-btn { top:16px; right:8px; width:36px; height:36px; font-size:1.8rem; }
}

/* ===== PRINT ===== */
@media print {
    .header-new, .sticky-nav-wrapper, .share-btn, .rating-section,
    .footer, .modal, .cookie-banner, .loader, .video-modal,
    .daily-notification-banner, .video-play-overlay { display:none !important; }
    body { background:#fff; color:#000; }
    .movies-grid { display:block; }
    .movie-card { page-break-inside:avoid; margin-bottom:20px; border:1px solid #ccc; }
}

/* ===== ACCESSIBILITY ===== */
.visually-hidden {
    position:absolute; width:1px; height:1px; padding:0;
    margin:-1px; overflow:hidden; clip:rect(0,0,0,0);
    white-space:nowrap; border-width:0;
}
button:focus-visible, a:focus-visible, input:focus-visible {
    outline:2px solid var(--color-primary); outline-offset:2px;
}
.video-close-btn:focus-visible { outline:3px solid #fff; outline-offset:3px; }
@media (prefers-reduced-motion:reduce) {
    *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
    .new-badge { animation:none; }
}

/* ============================================
   STANDALONE PAGES (privacy, terms, etc.)
   ============================================ */
.back-link {
    display:inline-flex; align-items:center; gap:6px; padding:10px 22px;
    background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));
    color:#fff; text-decoration:none; border-radius:var(--radius-xl);
    font-size:.95rem; font-weight:600; transition:var(--transition-base);
    box-shadow:0 4px 15px rgba(139,92,246,.4); white-space:nowrap;
}
.back-link:hover { transform:translateY(-2px); box-shadow:0 6px 25px rgba(139,92,246,.6); color:#fff; }
.standalone-page { max-width:860px; margin:0 auto; padding:40px 20px 60px; }
.page-hero {
    text-align:center; padding:50px 20px 40px;
    background:linear-gradient(135deg,rgba(139,92,246,.15),rgba(236,72,153,.15));
    border-radius:var(--radius-lg); border:1px solid rgba(139,92,246,.25); margin-bottom:40px;
}
.page-hero-icon { font-size:3.5rem; margin-bottom:15px; display:block; }
.page-hero-title { font-size:clamp(2rem,5vw,3rem); font-weight:800; margin:0 0 10px; background:linear-gradient(135deg,var(--color-primary),var(--color-secondary) 50%,var(--color-accent)); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.page-hero-sub  { color:var(--color-text-muted); font-size:1rem; margin:0; }
.page-body { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius-lg); padding:40px; backdrop-filter:blur(10px); }
.page-body h2 { color:#c084fc; font-size:1.5rem; margin:35px 0 12px; padding-bottom:8px; border-bottom:1px solid rgba(139,92,246,.2); }
.page-body h3 { color:#e0d7ff; font-size:1.15rem; margin:22px 0 8px; }
.page-body p  { color:var(--color-text-muted); line-height:1.8; margin-bottom:14px; }
.page-body ul { color:var(--color-text-muted); line-height:1.8; padding-left:24px; margin-bottom:16px; }
.page-body ul li { margin-bottom:6px; }
.page-body a  { color:#a78bfa; text-decoration:underline; transition:color .3s ease; }
.page-body a:hover { color:#c084fc; }
.page-body strong { color:#e0e7ff; }
.page-lead { font-size:1.15rem !important; color:#e2e8f0 !important; line-height:1.9 !important; font-weight:500; }
.page-sign-off { margin-top:35px !important; text-align:center; color:#a78bfa !important; font-size:1.1rem !important; font-weight:600; }
.contact-card { background:rgba(139,92,246,.1); border:1px solid rgba(139,92,246,.3); border-radius:var(--radius-md); padding:18px 22px; margin:20px 0; }
.contact-cards { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:25px 0; }
.contact-card-big { display:flex; align-items:flex-start; gap:16px; padding:20px; background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius:var(--radius-md); transition:var(--transition-base); }
.contact-card-big:hover { background:rgba(139,92,246,.1); border-color:rgba(139,92,246,.3); }
.contact-card-icon { font-size:2rem; flex-shrink:0; }
.contact-label { color:#a855f7 !important; font-weight:600; margin-bottom:4px !important; font-size:.85rem !important; text-transform:uppercase; letter-spacing:.5px; }
.contact-value { color:#fff !important; font-size:1.05rem !important; margin:0 !important; }
.info-box { background:rgba(59,130,246,.1); border-left:4px solid rgba(59,130,246,.6); border-radius:0 var(--radius-sm) var(--radius-sm) 0; padding:18px 22px; margin:22px 0; }
.info-box h3 { margin-top:0 !important; color:#93c5fd !important; }
.info-box p  { color:#bfdbfe !important; margin-bottom:6px !important; }
.mission-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:20px 0; }
.mission-item { background:rgba(139,92,246,.1); border:1px solid rgba(139,92,246,.25); border-radius:var(--radius-sm); padding:14px 18px; color:#e2e8f0; font-size:.95rem; }
.cta-box { background:linear-gradient(135deg,rgba(139,92,246,.2),rgba(192,132,252,.2)); border:1px solid rgba(139,92,246,.35); border-radius:var(--radius-md); padding:32px; text-align:center; margin:35px 0; }
.cta-box h3 { color:#c084fc !important; font-size:1.6rem !important; margin-bottom:12px !important; }
.cta-box p  { color:#e2e8f0 !important; }
.cta-btn { display:inline-block; margin-top:18px; padding:14px 36px; background:linear-gradient(135deg,var(--color-primary),var(--color-secondary)); color:#fff !important; text-decoration:none !important; border-radius:var(--radius-xl); font-weight:700; font-size:1rem; transition:var(--transition-base); box-shadow:0 4px 15px rgba(139,92,246,.4); }
.cta-btn:hover { transform:translateY(-3px); box-shadow:0 8px 25px rgba(139,92,246,.6); }
.legal-divider { border:none; border-top:1px solid rgba(255,255,255,.1); margin:40px 0; }
.browser-item { padding:14px 18px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); border-radius:var(--radius-sm); color:var(--color-text-muted); font-size:.9rem; }

@media (max-width:768px) {
    .page-body { padding:25px 20px; }
    .contact-cards, .mission-grid { grid-template-columns:1fr; }
    .page-hero { padding:35px 15px 30px; }
}
@media (max-width:480px) {
    .standalone-page { padding:20px 12px 40px; }
    .page-body { padding:20px 15px; }
    .cta-box { padding:22px 18px; }
}
/* ===== END v46 ===== */