/* WatchON Neo theme — inspired by KissNeo's compact cyan streaming interface. */
:root {
    --neo-bg: #181722;
    --neo-deep: #11101a;
    --neo-panel: #29283d;
    --neo-panel-2: #34324b;
    --neo-cyan: #00cfe8;
    --neo-accent: #00cfe8;
    --neo-rating: #f5c451;
    --neo-text: #ffffff;
    --neo-muted: #aaa9b8;
}

html { background: var(--neo-bg); }
::selection { background: rgba(0,207,232,.28) !important; color: #fff !important; }
body {
    background: var(--neo-bg) !important;
    color: var(--neo-text);
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}

body::before {
    content: '';
    position: fixed;
    inset: 0;
    pointer-events: none;
    background: radial-gradient(circle at 68% 6%, rgba(0,207,232,.04), transparent 31%);
    z-index: -1;
}

nav, #top-navbar {
    height: 70px;
    min-height: 70px;
    padding: 0 max(22px, calc((100vw - 1380px) / 2)) !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none;
    backdrop-filter: blur(12px);
    isolation: isolate;
    overflow: visible;
}
nav::before, #top-navbar::before {
    content: '';
    position: absolute;
    z-index: -1;
    pointer-events: none;
    top: 0;
    left: 0;
    right: 0;
    height: 135px;
    background: linear-gradient(180deg, rgba(13,14,29,.82) 0%, rgba(13,14,29,.48) 48%, rgba(13,14,29,0) 100%);
}
#home-navbar {
    background: transparent !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
#home-navbar::before {
    height: 190px;
    background: linear-gradient(180deg,
        rgba(5, 6, 10, .88) 0%,
        rgba(5, 6, 10, .68) 28%,
        rgba(5, 6, 10, .34) 58%,
        rgba(5, 6, 10, .10) 80%,
        rgba(5, 6, 10, 0) 100%);
}
#top-navbar .animate-pulse { display: none !important; }
#player-loading div[class*="border-t-amber"] { border-color: rgba(0,207,232,.2) !important; border-top-color: var(--neo-accent) !important; }

.neo-menu-icon {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    color: #fff;
}

nav button, nav a { letter-spacing: .02em !important; }
nav button:hover, nav a:hover { color: var(--neo-cyan) !important; }
nav button:hover svg, nav a:hover svg { color: var(--neo-cyan) !important; }
nav svg { color: #aaa9b8 !important; }

#global-search {
    border: 0 !important;
    background: #fff !important;
    color: #242235 !important;
    border-radius: 999px !important;
    height: 40px;
    box-shadow: 0 7px 20px rgba(0,0,0,.15);
}
#global-search::placeholder { color: #878494 !important; }
#global-search:focus { box-shadow: 0 0 0 2px rgba(0,207,232,.7), 0 8px 24px rgba(0,0,0,.2); }

#hero-slider {
    height: min(590px, 72vh) !important;
    margin-top: 0;
    background: var(--neo-deep) !important;
    overflow: visible !important;
}
#hero-slider::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -36px;
    height: 38%;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(180deg,
        transparent 0%,
        rgba(24,23,34,.08) 28%,
        rgba(24,23,34,.52) 62%,
        var(--neo-bg) 84%,
        var(--neo-bg) 100%);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.18) 25%, #000 72%);
    mask-image: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,.18) 25%, #000 72%);
}
#hero-slider::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(90deg,
            rgba(24,23,34,.98) 0%,
            rgba(9,9,14,.84) 18%,
            rgba(9,9,14,.48) 35%,
            rgba(9,9,14,.12) 51%,
            transparent 63%),
        linear-gradient(270deg,
            rgba(24,23,34,.72) 0%,
            rgba(24,23,34,.22) 7%,
            transparent 15%);
    z-index: 2;
    pointer-events: none;
    -webkit-mask-image: linear-gradient(180deg, #000 0%, #000 60%, rgba(0,0,0,.72) 76%, rgba(0,0,0,.22) 91%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 0%, #000 60%, rgba(0,0,0,.72) 76%, rgba(0,0,0,.22) 91%, transparent 100%);
}
#hero-image { opacity: .88; }
.hero-shade { background: transparent !important; }
.hero-content {
    max-width: 1380px;
    left: 50% !important;
    transform: translateX(-50%);
    padding: 0 22px 70px !important;
    z-index: 4 !important;
}
#hero-title { font-size: clamp(1.9rem, 4.1vw, 3.8rem) !important; line-height: 1.08; max-width: 760px; }
#hero-description { color: #d5d3dd !important; font-weight: 300; max-width: 620px; }
#hero-link {
    background: var(--neo-accent) !important;
    color: #11101a !important;
    min-width: 184px;
    justify-content: center;
    border-radius: 999px !important;
    box-shadow: 0 10px 28px rgba(0,207,232,.24) !important;
}
#hero-link:hover { box-shadow: 0 13px 34px rgba(0,207,232,.31) !important; }
#hero-dots { z-index: 5 !important; }
#hero-dots .hero-dot {
    width: 7px;
    height: 7px;
    border: 0;
    border-radius: 999px;
    background: rgba(255,255,255,.55) !important;
    box-shadow: none;
    transition: width .25s ease, background-color .25s ease, transform .2s ease;
}
#hero-dots .hero-dot:hover { background: rgba(255,255,255,.82) !important; transform: translateY(-1px); }
#hero-dots .hero-dot.is-active { width: 34px; background: #fff !important; }

.hero-skeleton {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: flex-end;
    padding: 0 max(22px, calc((100vw - 1336px) / 2)) 76px;
    background: linear-gradient(110deg, #171625 12%, #242238 30%, #171625 48%);
    background-size: 240% 100%;
    animation: neoSkeletonSweep 1.45s ease-in-out infinite;
    opacity: 1;
    visibility: visible;
    transition: opacity .3s ease, visibility .3s ease;
}
.hero-skeleton.is-hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.hero-skeleton-copy { width: min(560px, 82vw); display: grid; gap: 13px; }
.hero-skeleton-copy span { height: 13px; border-radius: 999px; background: rgba(255,255,255,.1); }
.hero-skeleton-copy span:nth-child(1) { width: 18%; height: 9px; }
.hero-skeleton-copy span:nth-child(2) { width: 78%; height: 48px; border-radius: 12px; }
.hero-skeleton-copy span:nth-child(3) { width: 100%; }
.hero-skeleton-copy span:nth-child(4) { width: 60%; height: 42px; border-radius: 14px; margin-top: 9px; }

main { max-width: 1380px !important; position: relative; z-index: 2; }
#home-shelves-layout { gap: 44px; }
#home-shelves-layout section > div:first-child,
#grid-layout-context > div:first-child {
    border: 0 !important;
    padding-bottom: 10px !important;
}
#home-shelves-layout h2,
#grid-layout-headline,
#recommendations-section h3 {
    color: #fff !important;
    text-transform: none !important;
    font-size: 20px !important;
    letter-spacing: -.02em !important;
    font-weight: 600 !important;
}
#home-shelves-layout h2 span { width: 5px !important; height: 20px !important; border-radius: 999px !important; }
#home-shelves-layout section:nth-child(1) h2 span { background: #00cfe8 !important; }
#home-shelves-layout section:nth-child(2) h2 span { background: #f5c451 !important; }
#home-shelves-layout section:nth-child(3) h2 span { background: #f59e5b !important; }
#home-shelves-layout section:nth-child(4) h2 span { background: #41c983 !important; }
#home-shelves-layout section:nth-child(5) h2 span { background: #b88cff !important; }
#home-shelves-layout section:nth-child(6) h2 span { background: #9b87f5 !important; }
#home-shelves-layout section:nth-child(7) h2 span { background: #a3d65c !important; }
#home-shelves-layout section:nth-child(8) h2 span { background: #8b93a7 !important; }
#home-shelves-layout section:nth-child(9) h2 span { background: #55b7e9 !important; }
#home-shelves-layout section:nth-child(10) h2 span { background: #f59e5b !important; }
#home-shelves-layout button, #grid-layout-context button { color: #aaa9b8 !important; }
#home-shelves-layout button:hover, #grid-layout-context button:hover { color: #fff !important; }

.shelf-row { gap: 18px !important; }
.movie-card { width: 172px !important; gap: 8px !important; }
.movie-card > div:first-child {
    border: 0 !important;
    border-radius: 7px !important;
    background: var(--neo-deep) !important;
    box-shadow: 0 8px 22px rgba(12,11,20,.28);
}
.movie-card:hover > div:first-child { box-shadow: 0 12px 28px rgba(0,0,0,.34); }
.movie-card { transition: transform .2s ease; }
.movie-card:hover { transform: translateY(-2px); }
.movie-card:focus-visible { outline: 2px solid rgba(0,207,232,.72) !important; outline-offset: 5px; border-radius: 8px; }
.movie-card h3 { font-size: 13px !important; font-weight: 500 !important; color: #fff !important; }
.movie-card:hover h3 { color: #fff !important; }
.movie-card p { color: var(--neo-muted) !important; font-size: 10px !important; }
.movie-card .card-hover-description { color: #d9d8e2 !important; font-size: 12px !important; line-height: 1.45 !important; letter-spacing: .005em !important; }
.movie-card span[class*="bg-amber-500"] { background: var(--neo-rating) !important; color: #211c12 !important; }
.movie-card span[class*="bg-neutral-900"] { background: rgba(17,16,26,.92) !important; }
.movie-card span[class*="bg-red-600"] { background: #737b8f !important; color: #fff !important; }
.movie-card .group-hover\:bg-red-600:hover { background: var(--neo-accent) !important; color: #fff !important; }
#wrapping-matrix-grid { gap: 28px 18px !important; }

.media-skeleton-card { display: grid; gap: 9px; pointer-events: none; }
.media-skeleton-poster { width: 100%; aspect-ratio: 2 / 3; border-radius: 7px; }
.media-skeleton-line { height: 11px; width: 82%; border-radius: 999px; }
.media-skeleton-line-short { width: 52%; height: 8px; opacity: .7; }
.skeleton-shimmer {
    background: linear-gradient(105deg, rgba(255,255,255,.035) 20%, rgba(255,255,255,.095) 38%, rgba(255,255,255,.035) 56%) !important;
    background-size: 220% 100%;
    animation: neoSkeletonSweep 1.35s ease-in-out infinite;
}
.poster-shell::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background: linear-gradient(105deg, #171624 20%, #29273c 38%, #171624 56%);
    background-size: 220% 100%;
    animation: neoSkeletonSweep 1.35s ease-in-out infinite;
    opacity: 0;
    transition: opacity .2s ease;
}
.poster-shell.is-loading::before { opacity: 1; }
.media-poster-image { opacity: 0; }
.media-poster-image.is-loaded { opacity: 1; }
@keyframes neoSkeletonSweep { to { background-position-x: -220%; } }

@media (prefers-reduced-motion: reduce) {
    .skeleton-shimmer, .hero-skeleton, .poster-shell::before { animation: none; }
    .movie-card:hover { transform: none; }
}

footer {
    max-width: none !important;
    background: var(--neo-deep) !important;
    border: 0 !important;
    color: var(--neo-muted);
}
footer span[class*="bg-gradient"] { background: none !important; color: var(--neo-cyan) !important; }

/* Player page */
#player-main-view { padding-top: 2px; }
#player-layout-container { gap: 0 !important; }
#player-left-col { display: block; }
#iframe-wrapper-container {
    border-radius: 5px !important;
    box-shadow: 0 18px 50px rgba(8,7,13,.45) !important;
}
#player-left-col > div:nth-child(2) {
    margin: 0 !important;
    padding: 6px 8px !important;
    background: var(--neo-deep);
}
#player-left-col > div:nth-child(3) {
    margin: 18px 0 0 !important;
    padding: 16px 18px !important;
    border: 1px solid rgba(255,255,255,.055) !important;
    border-radius: 10px !important;
    background: rgba(17,16,26,.72) !important;
}
#player-left-col > div:nth-child(4) {
    margin: 28px 0 0 !important;
    padding: 26px 0 0;
    display: flex;
    flex-direction: row;
    gap: 24px !important;
    background: transparent;
    border-top: 1px solid rgba(255,255,255,.075);
}
#player-left-col > div:nth-child(4) > div:first-child { width: 105px !important; border-radius: 7px !important; }
#media-title { font-size: 21px !important; font-weight: 600 !important; }
#media-year { color: var(--neo-rating) !important; }
#media-desc {
    color: #f1f2f4 !important;
    font-size: 15px !important;
    font-weight: 400 !important;
    line-height: 1.7 !important;
}

.ctrl-btn, .server-btn {
    color: #ddd !important;
    border: 0 !important;
    border-radius: 5px !important;
    background: transparent !important;
}
.ctrl-btn:hover, .server-btn:hover { color: #fff !important; background: rgba(255,255,255,.075) !important; }
#report-btn {
    color: #ff5d73 !important;
    border: 1px solid rgba(255,93,115,.28) !important;
    background: rgba(180,25,49,.11) !important;
}
#report-btn:hover {
    color: #fff !important;
    border-color: #ff5d73 !important;
    background: #e33b55 !important;
    box-shadow: 0 7px 20px rgba(227,59,85,.22);
}
#report-btn svg { color: currentColor !important; }
#episode-nav-controls .ctrl-btn { background: rgba(255,255,255,.055) !important; padding: 9px 15px !important; }
#episode-nav-controls .ctrl-btn:hover { background: var(--neo-accent) !important; }
#provider-buttons-container { flex-wrap: nowrap !important; overflow-x: auto; padding: 2px 2px 6px; scrollbar-width: thin; }
.server-btn { background: var(--neo-panel) !important; padding: 10px 17px !important; border: 1px solid rgba(255,255,255,.05) !important; border-radius: 999px !important; text-transform: none !important; letter-spacing: .01em !important; }
.server-btn.active { background: var(--neo-accent) !important; border-color: var(--neo-accent) !important; color: #11101a !important; box-shadow: 0 6px 18px rgba(0,207,232,.17); }
.peer:checked ~ div { background: var(--neo-accent) !important; }

#tv-controls {
    border: 0 !important;
    border-radius: 6px !important;
    background: var(--neo-deep) !important;
}
#season-select { background: var(--neo-bg) !important; border-color: rgba(255,255,255,.12) !important; }
.episode-btn { aspect-ratio: auto !important; min-height: 42px; background: var(--neo-bg) !important; border: 0 !important; border-radius: 5px !important; }
.episode-btn:hover { color: var(--neo-accent) !important; }
.episode-btn.ep-active { background: var(--neo-accent) !important; color: #11101a !important; box-shadow: none !important; }
#episode-counter { color: var(--neo-rating) !important; background: var(--neo-panel) !important; }
.episode-toolbar {
    display: grid;
    grid-template-columns: minmax(170px, 1fr) minmax(210px, .8fr);
    gap: 12px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.07);
    border-radius: 10px;
    background: rgba(255,255,255,.025);
}
.episode-toolbar-single { grid-template-columns: minmax(0, 360px); }
.episode-control-group { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.episode-control-group > span:first-child {
    color: #777786;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .13em;
    text-transform: uppercase;
}
.episode-select {
    width: 100%;
    min-height: 42px;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 7px;
    outline: 0;
    background: #090a0e;
    color: #e7e7ec;
    font-size: 12px;
    font-weight: 650;
}
.episode-select { appearance: none; padding: 0 38px 0 13px; cursor: pointer; }
.episode-select:focus { border-color: rgba(0,207,232,.55); box-shadow: 0 0 0 3px rgba(0,207,232,.08); }
.episode-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(62px, 1fr));
    gap: 8px;
    max-height: 360px;
    overflow-y: auto;
    padding: 2px 6px 8px 2px;
}
.episode-grid .episode-btn {
    min-height: 48px;
    border: 1px solid rgba(255,255,255,.055) !important;
    background: #090a0e !important;
    border-radius: 8px !important;
    gap: 2px;
}
.episode-grid .episode-btn:hover { border-color: rgba(0,207,232,.28) !important; transform: translateY(-1px); }
.episode-grid .episode-btn.ep-active { background: var(--neo-accent) !important; border-color: var(--neo-accent) !important; }
.episode-btn .ep-prefix { color: #666674; font-size: 8px; font-weight: 800; text-transform: uppercase; }
.episode-btn.ep-active .ep-prefix, .episode-btn.ep-active .ep-title { color: #071014 !important; }
.ctrl-btn:disabled { opacity: .3; cursor: not-allowed; pointer-events: none; }
.divider-line { background: rgba(255,255,255,.08) !important; }

@media (max-width: 1023px) {
    nav { padding: 0 16px !important; }
    .movie-card { width: 154px !important; }
    #player-left-col > div:nth-child(4) { margin-top: 20px !important; flex-direction: row; }
}

@media (max-width: 639px) {
    .episode-toolbar, .episode-toolbar-single { grid-template-columns: 1fr; }
    .episode-grid { grid-template-columns: repeat(auto-fill, minmax(54px, 1fr)); max-height: 320px; }
    nav, #top-navbar { height: 62px; min-height: 62px; }
    .neo-menu-icon { display: none; }
    #hero-slider { height: 530px !important; }
    .hero-content { padding: 0 20px 55px !important; }
    #hero-description { font-size: 13px !important; }
    main { padding-left: 15px !important; padding-right: 15px !important; }
    .movie-card { width: 142px !important; }
    #player-left-col > div:nth-child(4) { flex-direction: column; padding: 18px; }
    #player-left-col > div:nth-child(4) > div:first-child { width: 96px !important; }
}
