html.tv-remote-active {
    scroll-behavior: smooth;
}

body.tv-remote-mode *:focus {
    outline: none;
}

body.tv-remote-mode .tv-focus-target:focus,
body.tv-remote-mode .tv-focus-target.tv-focused,
body.tv-remote-mode button:focus-visible,
body.tv-remote-mode a:focus-visible,
body.tv-remote-mode input:focus-visible,
body.tv-remote-mode select:focus-visible,
body.tv-remote-mode textarea:focus-visible,
body.tv-remote-mode [tabindex]:focus-visible {
    outline: 3px solid rgba(192, 132, 252, 0.95) !important;
    outline-offset: 4px !important;
    box-shadow:
        0 0 0 1px rgba(34, 211, 238, 0.45),
        0 0 24px rgba(139, 92, 246, 0.8),
        0 0 44px rgba(34, 211, 238, 0.22) !important;
    border-color: rgba(192, 132, 252, 0.85) !important;
}

body.tv-remote-mode .navbar:focus-within,
body.tv-remote-mode .navbar.tv-nav-open {
    width: 220px;
    background: rgba(15, 8, 32, 0.78);
    border-color: rgba(139, 92, 246, 0.3);
}

body.tv-remote-mode .navbar:focus-within .nav-label,
body.tv-remote-mode .navbar.tv-nav-open .nav-label,
body.tv-remote-mode .navbar:focus-within .brand-name-nav,
body.tv-remote-mode .navbar.tv-nav-open .brand-name-nav {
    opacity: 1;
    transform: translateX(0);
}

body.tv-remote-mode .tv-focus-target {
    -webkit-tap-highlight-color: transparent;
}

body.tv-remote-mode .tv-focus-target:focus {
    position: relative;
    z-index: 15;
}

body.tv-remote-mode .tv-skip-focus,
body.tv-remote-mode [aria-hidden="true"] {
    outline: none !important;
}

body.tv-remote-mode .tv-focus-hint {
    position: fixed;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    z-index: 999999;
    pointer-events: none;
    padding: 10px 16px;
    border: 1px solid rgba(139, 92, 246, 0.36);
    border-radius: 999px;
    background: rgba(12, 7, 24, 0.84);
    color: rgba(255, 255, 255, 0.82);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    opacity: 0;
    transition: opacity 0.2s ease;
    backdrop-filter: blur(16px);
}

body.tv-remote-mode .tv-focus-hint.show {
    opacity: 1;
}
