/*
 * WEB FZ • RESPONSIVO 2026-10-28
 * Camada exclusiva de apresentação. Não altera reprodução, playlists,
 * autenticação, API Sports, eventos, controles remotos nem scripts.
 * Carregada por último, após os estilos originais de cada página.
 */
:root {
    --fz-scroll-track: #050505;
    --fz-scroll-thumb: #ab101b;
    --fz-scroll-hover: #ef2330;
    --fz-safe-bottom: env(safe-area-inset-bottom, 0px);
    --fz-safe-top: env(safe-area-inset-top, 0px);
}
html { min-width: 0; }
html, body { max-width: 100%; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
button, input, select, textarea { font: inherit; }
img, video, svg { max-width: 100%; }
img { vertical-align: middle; }
/* Firefox e navegadores compatíveis: inclusive painéis com scrollbar oculta originalmente. */
*, *::before, *::after {
    scrollbar-color: var(--fz-scroll-thumb) var(--fz-scroll-track) !important;
    scrollbar-width: thin !important;
}
/* Chromium / Edge / Safari. A trilha preta e o polegar vermelho são globais. */
::-webkit-scrollbar { width: 8px !important; height: 7px !important; display: block !important; }
::-webkit-scrollbar-track { background: var(--fz-scroll-track) !important; border-radius: 999px; }
::-webkit-scrollbar-thumb { background: var(--fz-scroll-thumb) !important; border-radius: 999px; border: 1px solid #090909; }
::-webkit-scrollbar-thumb:hover { background: var(--fz-scroll-hover) !important; }
::-webkit-scrollbar-corner { background: #050505 !important; }
.carousel::-webkit-scrollbar, .sp-comps::-webkit-scrollbar,
.cat-menu::-webkit-scrollbar, .cat-list::-webkit-scrollbar,
.sz-tabs::-webkit-scrollbar { display: block !important; height: 6px !important; }
:where(.cat-menu,.channel-list,.cat-list,.media-grid,.recentes-grid,.nf-scroll,
  .content,.sports-dialog,.sidebar,.carousel,.sp-comps,.sz-tabs,.info-content) {
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}
:where(.fz-page) :is(button, a, input, textarea, select):focus-visible {
    outline: 2px solid #ff4b55;
    outline-offset: 2px;
}
/* Transições por propriedades específicas, sem animar layout em massa. */
@media (hover: none), (pointer: coarse) {
    body.fz-page :is(.media-card,.rec-card,.sport-card,.tile,.card):hover {
        transform: none;
    }
}
/* Mantém os componentes responsivos sem reduzir a definição do vídeo. */
@media (max-width: 768px) {
    ::-webkit-scrollbar { width: 5px !important; height: 5px !important; }
    body.fz-page :is(.navbar.scrolled,.tile,.top-bar,.info-modal,.sports-modal,.sports-dialog) {
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    body.fz-page :is(.media-card,.sport-card,.card,.rec-card,.tile,.nav-item) {
        transition-duration: .01ms !important;
    }
}

/* ─────────────────────── LOGIN ────────────────────────── */
body.fz-page-login .wrapper { min-height: 100dvh; height: 100dvh; min-width: 0; }
body.fz-page-login .side-brand, body.fz-page-login .side-login { min-width: 0; }
body.fz-page-login .side-login { min-height: 0; overflow-y: auto; }
body.fz-page-login .login-card { max-width: 420px; }
body.fz-page-login .login-card :is(input,button) { min-width: 0; }
body.fz-page-login .profiles-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,100px),1fr)); }
@media (min-width: 769px) and (max-height: 780px) {
    body.fz-page-login .side-brand { padding-top: 26px; padding-bottom: 26px; }
    body.fz-page-login .side-login { justify-content: safe center; padding-block: 24px; }
    body.fz-page-login .login-card { padding-block: 24px; }
}
@media (max-width: 1024px) and (min-width: 769px) {
    body.fz-page-login .side-brand { padding-inline: clamp(24px,3vw,42px); }
    body.fz-page-login .side-login { padding-inline: clamp(16px,2vw,28px); }
    body.fz-page-login .features { grid-template-columns: 1fr; gap: 10px; }
}
@media (max-width: 768px) {
    body.fz-page-login, body.fz-page-login html { min-height: 100%; height: auto; overflow-x: hidden; }
    body.fz-page-login .wrapper { display: flex; height: auto; min-height: 100dvh; }
    body.fz-page-login .side-login {
        min-height: 100dvh; height: auto; overflow: visible;
        justify-content: safe center;
        padding: max(20px, var(--fz-safe-top)) 16px calc(54px + var(--fz-safe-bottom));
    }
    body.fz-page-login .login-card { width: min(100%,440px); margin-inline: auto; }
    body.fz-page-login .login-footer { bottom: max(10px, var(--fz-safe-bottom)); }
}
@media (max-width: 360px) {
    body.fz-page-login .side-login { padding-inline: 10px; }
    body.fz-page-login .login-card { padding-inline: 14px; }
    body.fz-page-login .tab { font-size: 12px; gap: 4px; }
}

/* ─────────────────────── DASHBOARD ────────────────────── */
body.fz-page-dashboard { --pad: clamp(16px,3.4vw,52px); }
body.fz-page-dashboard .navbar { max-width: 100%; gap: 16px; }
body.fz-page-dashboard .nav-left { min-width: 0; }
body.fz-page-dashboard .nav-links { min-width: 0; flex-wrap: nowrap; }
body.fz-page-dashboard .nav-links a { white-space: nowrap; }
body.fz-page-dashboard .row, body.fz-page-dashboard .car-wrap { min-width: 0; }
body.fz-page-dashboard .carousel { padding-bottom: 16px; }
body.fz-page-dashboard .tile { min-width: 0; }
body.fz-page-dashboard .tile b, body.fz-page-dashboard .tile small { overflow-wrap: anywhere; }
body.fz-page-dashboard .sidebar { max-width: min(85vw,320px); }
@media (min-width: 769px) and (max-width: 1199px) {
    body.fz-page-dashboard { --pad: clamp(18px,2.8vw,32px); --card-w: clamp(126px,15vw,180px); }
    body.fz-page-dashboard .nav-left { gap: clamp(6px,1vw,14px); }
    body.fz-page-dashboard .nav-links a { padding-inline: clamp(7px,1vw,11px); font-size: 12px; }
    body.fz-page-dashboard .quick { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
    body.fz-page-dashboard .tile { padding: 13px 11px; gap: 9px; }
    body.fz-page-dashboard .tile i { width: 36px; height: 36px; font-size: 18px; }
    body.fz-page-dashboard .tile b { font-size: 13px; }
    body.fz-page-dashboard .tile small { font-size: 10px; }
}
@media (max-width: 768px) {
    body.fz-page-dashboard { --pad: clamp(12px,4vw,22px); --card-w: clamp(115px,34vw,158px); }
    body.fz-page-dashboard .navbar { padding: calc(10px + var(--fz-safe-top)) var(--pad) 10px; }
    body.fz-page-dashboard .hero { min-height: 430px; padding-top: 92px; padding-bottom: 75px; }
    body.fz-page-dashboard .hero-in { gap: 12px; }
    body.fz-page-dashboard .hero-content { min-width: 0; }
    body.fz-page-dashboard .hero-content h1 { overflow-wrap: anywhere; }
    body.fz-page-dashboard .quick { margin-top: -44px; gap: 8px; }
    body.fz-page-dashboard .tile { padding: 12px 10px; gap: 8px; }
    body.fz-page-dashboard .tile i { flex: 0 0 36px; width: 36px; height: 36px; }
    body.fz-page-dashboard .row-head { align-items: center; }
    body.fz-page-dashboard .carousel { scroll-padding-inline: var(--pad); }
}
@media (max-width: 420px) {
    body.fz-page-dashboard .hero { min-height: 390px; }
    body.fz-page-dashboard .tile { min-height: 62px; }
    body.fz-page-dashboard .tile b { font-size: 12px; }
    body.fz-page-dashboard .tile small { font-size: 10px; }
}

/* ─────────────────────── TV AO VIVO ────────────────────
 * Não troca controles, HLS, ordem visual, fontes ou o elemento <video>.
 */
body.fz-page-live .xui-layout { width: 100%; height: 100dvh; min-width: 0; min-height: 0; }
body.fz-page-live :is(.col-categories,.col-channels,.col-player) { min-height: 0; }
body.fz-page-live .cat-menu, body.fz-page-live .channel-list { min-height: 0; }
body.fz-page-live .col-player { min-width: 0; }
body.fz-page-live .video-wrapper { min-width: 0; }
body.fz-page-live video { max-width: 100%; }
body.fz-page-live .info-wrapper { min-height: 0; }
body.fz-page-live #channelName, body.fz-page-live #epgDesc { overflow-wrap: anywhere; }
@media (min-width: 1101px) and (max-width: 1450px) {
    body.fz-page-live .col-categories { width: clamp(190px,17vw,240px); }
    body.fz-page-live .col-channels { width: clamp(245px,23vw,320px); }
}
@media (min-width: 769px) and (max-width: 1100px) {
    body.fz-page-live .col-categories { width: clamp(170px,19vw,210px); }
    body.fz-page-live .col-channels { width: clamp(230px,26vw,290px); }
    body.fz-page-live .info-wrapper { padding: 14px 16px; }
    body.fz-page-live .video-wrapper { height: 55%; }
}
@media (min-width: 769px) and (max-height: 640px) {
    body.fz-page-live:not(.fz-tv-mode) .video-wrapper { height: 65%; }
    body.fz-page-live:not(.fz-tv-mode) .info-wrapper { padding-block: 10px; }
}
@media (max-width: 768px) {
    body.fz-page-live .xui-layout {
        height: 100dvh; max-height: 100dvh;
        min-height: 0; overflow-x: hidden; overflow-y: auto;
        overscroll-behavior-y: contain;
        scroll-padding-top: min(56.25vw, 56.25vh);
        padding-bottom: var(--fz-safe-bottom);
    }
    body.fz-page-live .col-player { position: sticky; top: 0; z-index: 100; flex: 0 0 auto; }
    body.fz-page-live .video-wrapper {
        width: 100%; height: auto !important;
        aspect-ratio: 16/9;
        max-height: min(56.25vw, 58dvh);
        overflow: hidden;
    }
    body.fz-page-live .video-wrapper video { width: 100%; height: 100%; object-fit: contain; }
    body.fz-page-live .col-categories { flex: 0 0 auto; min-height: 0; }
    body.fz-page-live .cat-header { height: auto; min-height: 38px; }
    body.fz-page-live .cat-menu { flex: none; max-width: 100%; padding-bottom: 8px; }
    body.fz-page-live .cat-menu li { min-height: 36px; }
    body.fz-page-live .col-channels { flex: 1 0 auto; min-height: 45dvh; }
    body.fz-page-live .channel-list { overflow-y: visible; flex: none; }
    body.fz-page-live .channel-item { min-width: 0; min-height: 52px; }
    body.fz-page-live .ch-name { min-width: 0; }
    body.fz-page-live .lo-top { padding: 8px 12px; }
    body.fz-page-live .lo-bottom { padding: 8px 12px max(8px,var(--fz-safe-bottom)); }
    body.fz-page-live .lo-btns { gap: clamp(10px,4vw,20px); }
}
@media (max-width: 380px) {
    body.fz-page-live .lo-btn-big { width: 44px; height: 44px; }
    body.fz-page-live .lo-btn i { font-size: 20px; }
    body.fz-page-live .lo-btns { gap: 8px; }
    body.fz-page-live .cat-menu li { padding-inline: 10px !important; }
}
@media (max-height: 500px) and (orientation: landscape) and (max-width: 768px) {
    body.fz-page-live .video-wrapper { max-height: 66dvh; aspect-ratio: 16 / 9; }
    body.fz-page-live .lo-btn-big { width: 42px; height: 42px; }
    body.fz-page-live .lo-btn span { display: none; }
    body.fz-page-live .col-channels { min-height: 34dvh; }
}

/* ───────────────────── FILMES / SÉRIES ────────────────── */
body.fz-page-vod .layout-wrapper,
body.fz-page-series .layout-wrapper { height: 100dvh; min-width: 0; min-height: 0; }
body.fz-page-vod .sidebar, body.fz-page-series .sidebar { min-height: 0; }
body.fz-page-vod .content-area, body.fz-page-series .content-area { min-width: 0; min-height: 0; }
body.fz-page-vod .cat-list, body.fz-page-series .cat-list { min-height: 0; }
body.fz-page-vod .media-grid, body.fz-page-series .media-grid,
body.fz-page-vod .recentes-grid, body.fz-page-series .recentes-grid { min-height: 0; min-width: 0; }
body.fz-page-vod .media-grid, body.fz-page-series .media-grid {
    grid-template-columns: repeat(auto-fill,minmax(min(100%,136px),1fr));
    gap: clamp(10px,1.3vw,16px);
}
body.fz-page-vod .media-card, body.fz-page-series .media-card { min-width: 0; }
body.fz-page-vod .top-bar, body.fz-page-series .top-bar { min-width: 0; }
body.fz-page-vod .info-box, body.fz-page-series .info-box {
    max-width: min(1100px, 96vw); max-height: min(92dvh,920px);
}
body.fz-page-vod .nf-scroll, body.fz-page-series .nf-scroll { min-width: 0; min-height: 0; }
body.fz-page-vod .nf-hero-in, body.fz-page-series .nf-hero-in { min-width: 0; }
body.fz-page-vod .nf-head, body.fz-page-series .nf-head { min-width: 0; }
body.fz-page-vod .nf-title, body.fz-page-series .nf-title { overflow-wrap: anywhere; }
@media (min-width: 641px) and (max-width: 1100px) {
    body.fz-page-vod .sidebar, body.fz-page-series .sidebar { width: clamp(185px,23vw,250px); }
    body.fz-page-vod .media-grid, body.fz-page-series .media-grid {
        grid-template-columns: repeat(auto-fill,minmax(min(100%,116px),1fr));
        gap: 10px;
    }
    body.fz-page-vod .top-bar, body.fz-page-series .top-bar { padding-inline: 14px; }
}
@media (max-width: 640px) {
    body.fz-page-vod, body.fz-page-series { height: 100dvh; overflow: hidden; }
    body.fz-page-vod .layout-wrapper, body.fz-page-series .layout-wrapper { height: 100dvh; }
    body.fz-page-vod .sidebar, body.fz-page-series .sidebar {
        width: 100%; min-height: 56px; max-height: 66px;
        flex: 0 0 auto;
    }
    body.fz-page-vod .cat-list, body.fz-page-series .cat-list {
        min-width: 0; height: 56px; padding: 6px 10px;
        -webkit-mask-image: none; mask-image: none;
    }
    body.fz-page-vod .cat-item, body.fz-page-series .cat-item { max-width: min(65vw,210px); }
    body.fz-page-vod .content-area, body.fz-page-series .content-area { flex: 1 1 auto; min-height: 0; }
    body.fz-page-vod .top-bar, body.fz-page-series .top-bar {
        display: flex; flex-wrap: wrap; gap: 9px;
        padding: 10px 12px;
    }
    body.fz-page-vod .top-bar h2, body.fz-page-series .top-bar h2 { min-width: 0; flex: 0 1 auto; }
    body.fz-page-vod .search-box, body.fz-page-series .search-box {
        flex: 1 1 160px; min-width: 0; max-width: 100%; font-size: 16px;
    }
    body.fz-page-vod .media-grid, body.fz-page-series .media-grid {
        grid-template-columns: repeat(auto-fill,minmax(min(100%,106px),1fr));
        gap: 10px; padding: 10px;
    }
    body.fz-page-vod .recentes-grid, body.fz-page-series .recentes-grid {
        grid-template-columns: repeat(auto-fill,minmax(min(100%,132px),1fr)); gap: 10px; padding: 10px;
    }
    body.fz-page-vod .info-modal, body.fz-page-series .info-modal { padding: 8px; }
    body.fz-page-vod .info-box, body.fz-page-series .info-box { width: 100%; max-width: 100%; max-height: 96dvh; border-radius: 14px; }
    body.fz-page-vod .nf-body, body.fz-page-series .nf-body { padding-inline: 16px; }
    body.fz-page-vod .nf-hero-in, body.fz-page-series .nf-hero-in { gap: 12px; }
}
@media (max-width: 360px) {
    body.fz-page-vod .media-grid, body.fz-page-series .media-grid {
        grid-template-columns: repeat(2,minmax(0,1fr));
        gap: 8px; padding: 8px;
    }
    body.fz-page-vod .top-bar, body.fz-page-series .top-bar { gap: 7px; }
}

/* ─────────────────────── JOGOS ─────────────────────────
 * Somente estética/responsividade: cartões continuam clicáveis, com
 * escudos/canais e status controlados pelo código original.
 */
body.fz-page-sports { --pad: clamp(14px,3.4vw,52px); }
body.fz-page-sports .navbar { width: 100%; min-width: 0; }
body.fz-page-sports .nav-left { min-width: 0; }
body.fz-page-sports .sp-hero { padding-inline: var(--pad); }
body.fz-page-sports .sp-hero-in { align-items: center; min-width: 0; }
body.fz-page-sports .sp-main { min-width: 0; padding-inline: var(--pad); }
body.fz-page-sports .sp-filters { min-width: 0; }
body.fz-page-sports .sp-filter { min-height: 42px; }
body.fz-page-sports .sp-comps { max-width: 100%; padding-block: 8px 12px; }
body.fz-page-sports .sp-grid {
    grid-template-columns: repeat(auto-fit,minmax(min(100%,330px),1fr));
    gap: clamp(12px,1.5vw,18px);
}
body.fz-page-sports .sport-card {
    min-width: 0; min-height: 220px; height: 100%;
    border-color: #303030;
    background: linear-gradient(155deg,#1c1c1e 0%,#111113 58%,#080809 100%);
    box-shadow: 0 5px 22px rgba(0,0,0,.25);
    gap: clamp(12px,1.5vw,16px);
    padding: clamp(14px,1.7vw,19px);
    border-radius: 17px;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
body.fz-page-sports .sport-card.is-live { border-color: rgba(229,9,20,.65); }
body.fz-page-sports .sc-match { min-width: 0; gap: clamp(6px,1vw,14px); }
body.fz-page-sports .sc-team { min-width: 0; }
body.fz-page-sports .sc-mid { min-width: 64px; }
body.fz-page-sports .sc-name { overflow-wrap: anywhere; }
body.fz-page-sports .sc-logo { flex: 0 0 auto; }
body.fz-page-sports .sc-foot { margin-top: auto; }
body.fz-page-sports .sc-cta { min-height: 34px; white-space: nowrap; }
body.fz-page-sports .sports-dialog { max-width: min(640px, 100%); overflow-x: hidden; }
body.fz-page-sports .sm-channel, body.fz-page-sports .sm-ch-head { min-width: 0; }
body.fz-page-sports .sm-ch-name, body.fz-page-sports .sm-play .nm { overflow-wrap: anywhere; }
body.fz-page-sports .sports-modal[style*="flex"] { padding-bottom: max(12px,var(--fz-safe-bottom)); }
@media (hover: hover) and (pointer: fine) {
    body.fz-page-sports .sport-card:hover {
        transform: translateY(-2px);
        border-color: #d62a35;
        box-shadow: 0 12px 32px rgba(0,0,0,.5);
    }
}
@media (min-width: 769px) and (max-width: 1199px) {
    body.fz-page-sports { --pad: clamp(16px,2.6vw,30px); }
    body.fz-page-sports .nav-links { gap: 0; }
    body.fz-page-sports .nav-links a { padding-inline: clamp(8px,1vw,12px); font-size: 12px; }
    body.fz-page-sports .sp-hero { padding-top: 92px; }
    body.fz-page-sports .sp-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,280px),1fr)); }
    body.fz-page-sports .sc-logo { width: 48px; height: 48px; }
}
@media (max-width: 768px) {
    body.fz-page-sports { --pad: clamp(12px,4vw,22px); }
    body.fz-page-sports .navbar { padding: calc(12px + var(--fz-safe-top)) var(--pad) 10px; }
    body.fz-page-sports .sp-hero { padding-top: calc(88px + var(--fz-safe-top)); padding-bottom: 24px; }
    body.fz-page-sports .sp-hero-in { align-items: stretch; flex-direction: column; gap: 18px; }
    body.fz-page-sports .sp-hero-in > div { min-width: 0; width: 100%; }
    body.fz-page-sports .sp-hero h1 { font-size: clamp(30px,7vw,46px); overflow-wrap: anywhere; }
    body.fz-page-sports .sp-stats { gap: 8px; }
    body.fz-page-sports .sp-controls { gap: 12px; }
    body.fz-page-sports .sp-filters { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; gap: 7px; }
    body.fz-page-sports .sp-filter { min-width: 0; justify-content: center; padding: 10px 7px; font-size: 12px; }
    body.fz-page-sports .sp-search-wrap { width: 100%; }
    body.fz-page-sports .sp-search { font-size: 16px; }
    body.fz-page-sports .sp-grid { grid-template-columns: minmax(0,1fr); }
    body.fz-page-sports .sport-card { min-height: 206px; }
    body.fz-page-sports .sc-channels { min-width: 0; }
    body.fz-page-sports .sports-modal { padding: 0; align-items: flex-end; }
    body.fz-page-sports .sports-dialog {
        width: 100%; max-width: 100%; max-height: 94dvh;
        padding: 22px 16px calc(20px + var(--fz-safe-bottom));
        border-radius: 20px 20px 0 0;
    }
    body.fz-page-sports .sm-versus { padding-inline: 6px; gap: 6px; }
}
@media (max-width: 400px) {
    body.fz-page-sports .sc-logo { width: 42px; height: 42px; }
    body.fz-page-sports .sm-versus .sc-logo { width: 44px; height: 44px; }
    body.fz-page-sports .sc-score { font-size: 22px; }
    body.fz-page-sports .sc-time { font-size: 20px; }
    body.fz-page-sports .sc-mid { min-width: 50px; }
    body.fz-page-sports .sc-cta { padding: 8px; font-size: 11px; }
    body.fz-page-sports .sm-channel { padding: 10px; }
}
@media (max-height: 470px) and (orientation: landscape) {
    body.fz-page-sports .sports-modal { align-items: center; padding: 8px; }
    body.fz-page-sports .sports-dialog { max-width: min(640px,100%); max-height: 94dvh; border-radius: 14px; padding: 16px; }
}

/* ──────────────────── ADMINISTRAÇÃO ───────────────────── */
body.fz-page-admin .admin-wrapper { height: 100dvh; min-width: 0; }
body.fz-page-admin .sidebar { min-height: 0; overflow-y: auto; }
body.fz-page-admin .content { min-width: 0; min-height: 0; }
body.fz-page-admin .stats-row { grid-template-columns: repeat(auto-fit,minmax(min(100%,170px),1fr)); }
body.fz-page-admin .card { min-width: 0; max-width: 100%; }
body.fz-page-admin .form-row { min-width: 0; }
body.fz-page-admin .form-group { min-width: 0; }
body.fz-page-admin .form-control { min-width: 0; }
body.fz-page-admin .table-wrap { max-width: 100%; overscroll-behavior-x: contain; }
body.fz-page-admin .login-box { max-width: calc(100vw - 24px); }
@media (min-width: 901px) and (max-width: 1199px) {
    body.fz-page-admin .sidebar { width: 215px; }
    body.fz-page-admin .content { padding: 22px 24px; }
    body.fz-page-admin .form-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 900px) {
    body.fz-page-admin .admin-wrapper { height: auto; min-height: 100dvh; overflow: visible; }
    body.fz-page-admin .sidebar { height: 100dvh; max-width: min(85vw,280px); }
    body.fz-page-admin .content { width: 100%; padding: clamp(12px,3vw,24px); overflow: visible; }
    body.fz-page-admin .content-header h1 { overflow-wrap: anywhere; }
    body.fz-page-admin .card { padding: clamp(14px,3vw,22px); }
    body.fz-page-admin .form-row { grid-template-columns: minmax(0,1fr); }
    body.fz-page-admin .history-mac-body { grid-template-columns: repeat(auto-fit,minmax(min(100%,165px),1fr)); }
    body.fz-page-admin .actions { flex-wrap: wrap; }
    body.fz-page-admin table { min-width: 560px; }
}
@media (max-width: 430px) {
    body.fz-page-admin .stats-row { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
    body.fz-page-admin .stat-card { padding: 14px 10px; }
    body.fz-page-admin .stat-card h2 { font-size: 24px; }
    body.fz-page-admin .login-box { padding: 24px 16px; }
}

/* ===========================================================================
   WEB FZ — VISUAL PERFORMANCE / EDIÇÃO ESTÁVEL
   Apenas CSS. Nenhum player, API, autenticação, botão ou evento é substituído.
   Sem blur em superfícies grandes, filtros caros ou animação de geometria.
   =========================================================================== */
:root {
    --fz-surface: #111115;
    --fz-surface-high: #19191e;
    --fz-raised: #202026;
    --fz-outline: #303036;
    --fz-accent: #e50914;
    --fz-accent-bright: #ff424b;
    --fz-muted: #a2a2ad;
    color-scheme: dark;
}
/* Previne overflow causado por conteúdo remoto longo sem tocar no HTML. */
body.fz-page { background-color: #060608; min-width: 0; }
body.fz-page :is(.content-area,.sp-main,.sp-grid,.sp-group,.sc-foot,.sports-dialog,
  .top-bar,.content,.content-header,.navbar,.nav-left,.nav-right,.quick,.carousel,
  .login-card,.wrapper,.row,.car-wrap) { min-width: 0; }
body.fz-page :is(button,input,select,textarea) { accent-color: var(--fz-accent); }
body.fz-page :is(button,a) { touch-action: manipulation; }
body.fz-page :is(input,select,textarea) { max-width: 100%; }
body.fz-page :is(img,video) { -webkit-backface-visibility: visible; }
/* Sombras pequenas e transições só em cor/borda: evita repinturas a cada hover. */
body.fz-page :is(.sport-card,.media-card,.tile,.card,.nav-item,.cat-item,
  .channel-item,.sp-chip,.sp-filter,.sm-play,.btn) {
    transition-property: background-color, border-color, color, opacity !important;
    transition-duration: 140ms !important;
    transition-timing-function: ease-out !important;
}
body.fz-page :is(.nav-item,.cat-item,.channel-item,.sp-filter,.sp-chip,.sm-play):active {
    transition-duration: 40ms !important;
}
@media (hover: hover) and (pointer: fine) {
    body.fz-page :is(.sport-card,.media-card,.tile,.card):hover { transform: none !important; }
}
/* Evita filtros de desfoque nos menus, no player e nos modais em qualquer tela. */
body.fz-page :is(.navbar.scrolled,.sidebar,.info-modal,.sports-modal,.sports-dialog,
  .top-bar,.sp-stat,.sp-refresh,.nav-overlay) {
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}
body.fz-page :is(.navbar.scrolled,.top-bar) { background-color: rgba(9,9,12,.97); }
/* Scrollbar consistente; não força barras em listas que o layout mantém ocultas. */
body.fz-page :is(.sidebar,.content,.cat-menu,.cat-list,.channel-list,.media-grid,
  .recentes-grid,.sports-dialog,.sp-comps,.carousel,.table-wrap,.nf-scroll) {
    scrollbar-color: #ce1523 #08080a;
}

/* LOGIN — interface limpa, sem alterar abas, PIN, formulários ou sessão. */
body.fz-page-index .login-card {
    background: #121216; border-color: #34343b;
    border-radius: 20px; box-shadow: 0 10px 30px rgba(0,0,0,.32);
}
body.fz-page-index .side-login { background: #08080a; }
body.fz-page-index .brand-logo { color: #ff303e; }
body.fz-page-index .brand-title { letter-spacing: -.035em; }
body.fz-page-index .input-wrap { background: #0a0a0e; border-color: #33333a; }
body.fz-page-index .tabs { background: #09090b; border-color: #303038; }
body.fz-page-index .tab.active { background: #cc1220; }
body.fz-page-index .login-card :is(button,input) { min-height: 42px; }
@media (max-width: 768px) {
    body.fz-page-index .side-login { padding-inline: clamp(12px,4vw,20px); }
    body.fz-page-index .login-card { padding: clamp(18px,5vw,32px); }
}

/* DASHBOARD — navegação e catálogo sem filtros pesados. */
body.fz-page-dashboard .navbar,
body.fz-page-sports .navbar {
    background: #0a0a0de8;
    border-bottom: 1px solid #25252b;
}
body.fz-page-dashboard .navbar.scrolled,
body.fz-page-sports .navbar.scrolled { background: #09090b; }
body.fz-page-dashboard .nav-links a.active,
body.fz-page-sports .nav-links a.active {
    background: #252028; color: #fff; border-bottom: 2px solid #e50914;
}
body.fz-page-dashboard .hero {
    background-color: #0c0c10;
    background-blend-mode: normal;
}
body.fz-page-dashboard .quick { gap: clamp(9px,1.35vw,18px); }
body.fz-page-dashboard .tile {
    background: #151519;
    border: 1px solid #33333a;
    border-radius: 15px;
    box-shadow: none !important;
}
body.fz-page-dashboard .tile:hover { border-color: #df2a37; }
body.fz-page-dashboard .tile i { color: #ff4b53; }
body.fz-page-dashboard :is(.row-head,.row-title) { letter-spacing: -.015em; }
body.fz-page-dashboard .carousel { scroll-snap-type: x proximity; }
body.fz-page-dashboard .rec-card,
body.fz-page-dashboard .media-card { box-shadow: none !important; }
body.fz-page-dashboard .sidebar { background: #0b0b0e; }
body.fz-page-dashboard .sidebar a { border-radius: 9px; }
@media (max-width: 768px) {
    body.fz-page-dashboard .quick { gap: 8px; }
    body.fz-page-dashboard .hero { padding-bottom: 60px; }
}

/* TV AO VIVO — apenas bordas, cores e tipografia; elemento vídeo intacto. */
body.fz-page-live .xui-layout { background: #050507; }
body.fz-page-live .col-categories {
    background: #0c0c0f;
    border-color: #29292f;
}
body.fz-page-live .col-channels {
    background: #101014;
    border-color: #2a2a30;
}
body.fz-page-live .col-player { background: #050505; }
body.fz-page-live :is(.cat-header,.ch-header,.channel-header) {
    background-color: #15151a; border-color: #29292f;
}
body.fz-page-live .channel-item { border-color: #29292e; }
body.fz-page-live .channel-item:hover { background-color: #202028; }
body.fz-page-live .channel-item.active,
body.fz-page-live .cat-menu li.active { border-color: #e50914; }
body.fz-page-live .video-wrapper { background: #000; }
body.fz-page-live .info-wrapper { background-color: #101014; }
body.fz-page-live .progress-container { background: #303037; }
@media (max-width: 768px) {
    body.fz-page-live .video-wrapper { box-shadow: none; }
    body.fz-page-live .col-categories { border-bottom: 1px solid #29292f; }
    body.fz-page-live .col-channels { border-top: 1px solid #29292f; }
}

/* CATÁLOGO — mantém cada pôster, rolagem, modal e reprodução como estão. */
body.fz-page-vod .sidebar,
body.fz-page-series .sidebar {
    background: #0d0d11; border-right-color: #292930;
}
body.fz-page-vod .content-area,
body.fz-page-series .content-area { background: #09090c; }
body.fz-page-vod .top-bar,
body.fz-page-series .top-bar {
    background: #111115;
    border-bottom-color: #292930;
    min-height: 62px;
}
body.fz-page-vod .cat-item,
body.fz-page-series .cat-item { border-radius: 9px; }
body.fz-page-vod .cat-item.active,
body.fz-page-series .cat-item.active { background: #c51624; }
body.fz-page-vod .search-box,
body.fz-page-series .search-box {
    border-color: #34343a; background: #19191e;
    border-radius: 11px;
}
body.fz-page-vod .search-box:focus,
body.fz-page-series .search-box:focus { border-color: #fa3644; }
body.fz-page-vod :is(.media-grid,.recentes-grid),
body.fz-page-series :is(.media-grid,.recentes-grid) {
    align-content: start;
}
body.fz-page-vod .media-card,
body.fz-page-series .media-card {
    background: transparent;
    border-radius: 12px;
    box-shadow: none !important;
}
body.fz-page-vod .poster,
body.fz-page-series .poster {
    background: #1b1b20; border-radius: 11px;
    border-color: #25252c;
    box-shadow: none !important;
}
body.fz-page-vod .media-card:hover .poster,
body.fz-page-series .media-card:hover .poster { border-color: #ec303e; box-shadow: none !important; }
body.fz-page-vod .media-title,
body.fz-page-series .media-title { color: #d7d7e0; line-height: 1.3; }
body.fz-page-vod .info-box,
body.fz-page-series .info-box { border: 1px solid #303039; }
@media (max-width: 640px) {
    body.fz-page-vod .top-bar,
    body.fz-page-series .top-bar { min-height: 54px; }
}

/* ESPORTES — destaque para jogos e canais sem efeitos pesados de repintura. */
body.fz-page-sports { background: #070709; }
body.fz-page-sports .sp-hero {
    background: linear-gradient(112deg,#181015 0%,#0c0c10 52%,#0a0b0e 100%);
    border-bottom: 1px solid #353039;
}
body.fz-page-sports .sp-hero::before,
body.fz-page-sports .sp-hero::after { display: none; }
body.fz-page-sports .sp-badge { color: #ff626c; letter-spacing: .1em; }
body.fz-page-sports .sp-hero h1 {
    letter-spacing: -.045em; color: #fff; text-shadow: none;
}
body.fz-page-sports .sp-dayline { color: #b7b7c0; }
body.fz-page-sports .sp-stat {
    background: #19191e; border: 1px solid #34343c; color: #dadadf;
}
body.fz-page-sports .sp-stat.live {
    background: #341317; border-color: #a62430;
}
body.fz-page-sports .sp-refresh {
    background: #222229; border-color: #45454b; box-shadow: none;
}
body.fz-page-sports .sp-refresh:hover { background: #303036; }
body.fz-page-sports .sp-main { padding-top: clamp(18px,2.5vw,32px); }
body.fz-page-sports .sp-controls { gap: 12px; }
body.fz-page-sports .sp-filter,
body.fz-page-sports .sp-chip {
    background: #16161b; border-color: #33333b;
    box-shadow: none;
}
body.fz-page-sports .sp-filter.active {
    background: #321317; border-color: #e62c39;
}
body.fz-page-sports .sp-chip.active {
    background: #252027; border-color: #e62c39;
}
body.fz-page-sports .sp-search {
    background: #141419; border: 1px solid #34343b;
    border-radius: 12px; min-height: 45px;
}
body.fz-page-sports .sp-search:focus { border-color: #ff3946; }
body.fz-page-sports .sp-group-head { color: #f1f1f5; }
body.fz-page-sports .sp-group-head .gi { background: #24242b; }
body.fz-page-sports .sport-card {
    border: 1px solid #35353c;
    border-left: 3px solid #55545e;
    background: #151519;
    box-shadow: none !important;
    border-radius: 15px;
}
body.fz-page-sports .sport-card.is-live {
    border-color: #a92b34;
    border-left-color: #ff2434;
    background: #1d1216;
}
body.fz-page-sports .sport-card.is-finished { opacity: .94; }
body.fz-page-sports .sport-card:hover,
body.fz-page-sports .sport-card.fz-focused {
    border-color: #e23b46;
    box-shadow: none !important;
}
body.fz-page-sports .sc-league { color: #c0c0c8; }
body.fz-page-sports .sc-badge { border-radius: 7px; }
body.fz-page-sports .sc-logo {
    background: #222229; border-color: #373740;
}
body.fz-page-sports .sc-name { color: #f1f1f4; }
body.fz-page-sports .sc-ch { background: #292932; }
body.fz-page-sports .sc-cta { background: #c51927; border-radius: 9px; }
body.fz-page-sports .sc-cta.none { background: #29292e; }
body.fz-page-sports .sports-modal { background: rgba(0,0,0,.92); }
body.fz-page-sports .sports-dialog {
    background: #151519; border: 1px solid #3b3b43;
    box-shadow: 0 12px 36px rgba(0,0,0,.3);
}
body.fz-page-sports .sm-channel {
    background: #1c1c21; border-color: #37373f;
}
body.fz-page-sports .sm-play { background: #c51927; }
body.fz-page-sports .sm-play.similar { background: #2b2b32; }
body.fz-page-sports .sm-play:hover { box-shadow: none !important; }
@media (max-width: 400px) {
    body.fz-page-sports .sc-foot { gap: 6px; }
    body.fz-page-sports .sc-ch { width: 24px; height: 24px; flex-basis: 24px; }
}

/* ADMIN — mudanças somente cosméticas. Formulários DNS e ações intactos. */
body.fz-page-admin { background: #09090c; }
body.fz-page-admin .sidebar { background: #0b0b0e; border-color: #2a2a30; }
body.fz-page-admin .content { background: #09090c; }
body.fz-page-admin .content-header h1 { letter-spacing: -.025em; }
body.fz-page-admin .stat-card,
body.fz-page-admin .card,
body.fz-page-admin .history-type-card {
    background: #141419; border-color: #34343b;
    border-radius: 13px;
    box-shadow: none !important;
}
body.fz-page-admin .stat-card small,
body.fz-page-admin .content-header p,
body.fz-page-admin .form-group label { color: #a5a5ae; }
body.fz-page-admin .form-control {
    border-color: #3b3b42; background: #0e0e12;
    border-radius: 9px;
    min-height: 41px;
}
body.fz-page-admin .form-control:focus { border-color: #ff3946; }
body.fz-page-admin .nav-item.active { background: #bd1927; }
body.fz-page-admin .nav-item:hover { background-color: #222229; }
body.fz-page-admin :is(.btn,.act-btn) { transform: none !important; }
body.fz-page-admin .table-wrap { border-radius: 10px; }
body.fz-page-admin th { background: #1b1b21; color: #b2b2bb; }
body.fz-page-admin td { border-bottom-color: #2b2b32; }
body.fz-page-admin .login-box {
    background: #16161b; border-color: #36363e;
    box-shadow: 0 12px 32px rgba(0,0,0,.35);
}
@media (max-width: 900px) {
    body.fz-page-admin .content { padding-bottom: max(24px,var(--fz-safe-bottom)); }
    body.fz-page-admin .card-header { align-items: flex-start; }
    body.fz-page-admin .card :is(input,select,textarea) { min-width: 0; }
}

/* Telas com pouca GPU, touch, TV box: elimina repintura de fundos grandes. */
@media (pointer: coarse), (max-width: 768px) {
    body.fz-page :is(.sport-card,.media-card,.tile,.card,.sm-channel,.poster) {
        box-shadow: none !important;
    }
    body.fz-page-sports .sp-hero { background: #111015; }
    body.fz-page-index .side-brand { background-color: #09090c; }
    body.fz-page-dashboard :is(.navbar,.navbar.scrolled) { background: #09090c; }
}
@media (prefers-reduced-motion: reduce) {
    body.fz-page *:not(video) { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
