:root{
    --bg:#050711;
    --bg2:#090d1a;
    --panel:rgba(11,18,32,.78);
    --panel2:rgba(18,26,42,.72);
    --glass:rgba(255,255,255,.075);
    --glass2:rgba(255,255,255,.12);
    --line:rgba(255,255,255,.12);
    --line2:rgba(0,224,255,.28);
    --text:#f7fbff;
    --muted:#aeb9ca;
    --soft:#78869d;
    --cyan:#27d7ff;
    --cyan2:#00a9ff;
    --blue:#0b74ff;
    --gold:#f6ba43;
    --danger:#ff5b79;
    --green:#19dea4;
    --shadow:0 28px 90px rgba(0,0,0,.55);
    --radius:26px;
    --radius2:18px;
    --side:270px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;border:0}
input,select{outline:none}
::selection{background:rgba(39,215,255,.35)}
.hidden{display:none!important}

.auth-page,.app-page{background:
    radial-gradient(circle at 14% 8%,rgba(39,215,255,.18),transparent 34%),
    radial-gradient(circle at 85% 0%,rgba(11,116,255,.18),transparent 30%),
    radial-gradient(circle at 55% 100%,rgba(246,186,67,.06),transparent 30%),
    linear-gradient(140deg,#030510,#08101d 45%,#030510)}
.app-bg,.auth-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:-1}
.app-bg:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:52px 52px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),transparent 80%)}
.app-bg:after{content:"";position:absolute;inset:-20%;background:radial-gradient(circle at 20% 20%,rgba(0,224,255,.14),transparent 22%),radial-gradient(circle at 75% 18%,rgba(0,94,255,.12),transparent 24%),radial-gradient(circle at 60% 90%,rgba(0,224,255,.07),transparent 22%);filter:blur(5px)}
.blob{position:absolute;border-radius:999px;filter:blur(8px);opacity:.75}.blob-a{width:420px;height:420px;background:rgba(0,224,255,.13);left:-140px;top:10%}.blob-b{width:380px;height:380px;background:rgba(9,132,255,.16);right:-120px;bottom:6%}.grid-glow{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.75),transparent 75%)}

.primary-btn,.secondary-btn,.ghost-btn{min-height:46px;border-radius:14px;padding:0 18px;font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:.22s ease;white-space:nowrap;position:relative;overflow:hidden}
.primary-btn{background:linear-gradient(135deg,var(--cyan),#0a8fff);color:#02121d;box-shadow:0 14px 34px rgba(39,215,255,.24)}
.primary-btn:hover{transform:translateY(-1px);filter:saturate(1.16)}
.secondary-btn{background:rgba(255,255,255,.095);border:1px solid rgba(255,255,255,.13);color:var(--text)}
.secondary-btn:hover,.ghost-btn:hover{background:rgba(255,255,255,.14);border-color:rgba(39,215,255,.36)}
.ghost-btn{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.10);color:var(--text)}
.small{min-height:38px;padding:0 14px;border-radius:12px;font-size:.88rem}
.icon-btn{width:54px;height:54px;border-radius:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:2rem;font-weight:800;display:grid;place-items:center;line-height:1;transition:.2s}
.icon-btn:hover{background:rgba(255,255,255,.2);transform:scale(1.03)}

/* LOGIN */
.auth-shell{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(360px,430px);gap:28px;align-items:center;padding:44px;max-width:1180px;margin:0 auto}
.auth-brand-card,.login-card{background:linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.055));border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(20px)}
.auth-brand-card{border-radius:34px;padding:44px;min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
.auth-brand-card:before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.14)),radial-gradient(circle at 70% 20%,rgba(39,215,255,.24),transparent 32%)}
.auth-brand-card>*{position:relative;z-index:1}.brand-pill,.eyebrow{display:inline-flex;width:max-content;padding:8px 12px;border-radius:999px;background:rgba(39,215,255,.1);border:1px solid rgba(39,215,255,.25);color:#bdf4ff;font-size:.78rem;font-weight:900;letter-spacing:.04em;text-transform:uppercase}.auth-brand-card h1{font-size:clamp(2.3rem,4vw,4.8rem);line-height:.96;margin:20px 0 16px;letter-spacing:-.07em}.auth-brand-card p{max-width:580px;color:var(--muted);font-size:1.06rem;line-height:1.65}.auth-feature-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.auth-feature-row span{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:10px 14px;font-weight:800}.login-card{border-radius:30px;padding:34px}.logo-wrap{display:flex;align-items:center;gap:14px;margin-bottom:30px}.logo-mark{width:52px;height:52px;border-radius:18px;background:linear-gradient(135deg,var(--cyan),var(--blue));display:grid;place-items:center;color:#06121d;font-weight:1000;box-shadow:0 16px 36px rgba(39,215,255,.25)}.logo-wrap strong{display:block;font-size:1.15rem}.logo-wrap small{color:var(--muted);font-weight:700}.login-card h2{font-size:2rem;margin:0 0 8px}.muted{color:var(--muted);line-height:1.55}.login-form{display:grid;gap:16px;margin-top:24px}.login-form label span{display:block;font-weight:800;color:#dce9ff;font-size:.86rem;margin:0 0 8px}.login-form input{width:100%;height:52px;border-radius:16px;background:rgba(0,0,0,.24);border:1px solid rgba(255,255,255,.12);padding:0 15px;color:#fff}.login-form input:focus{border-color:rgba(39,215,255,.48);box-shadow:0 0 0 4px rgba(39,215,255,.08)}.alert.error{background:rgba(255,77,109,.12);border:1px solid rgba(255,77,109,.28);color:#ffd3dc;border-radius:16px;padding:12px 14px;font-weight:800}.auth-note{margin-top:20px;color:var(--muted);font-size:.86rem}.auth-note strong{color:#fff}

/* SHELL */
.sidebar{position:fixed;left:18px;top:18px;bottom:18px;width:var(--side);z-index:20;background:linear-gradient(180deg,rgba(10,17,31,.72),rgba(7,11,22,.86));border:1px solid rgba(255,255,255,.1);box-shadow:var(--shadow);backdrop-filter:blur(22px);border-radius:28px;padding:18px;display:flex;flex-direction:column;gap:16px}.side-logo{display:flex;align-items:center;gap:12px;padding:8px}.brand-dot{width:44px;height:44px;border-radius:16px;background:radial-gradient(circle at 35% 35%,#fff,#77f1ff 18%,#0aa8ff 45%,#052547 72%);box-shadow:0 0 24px rgba(39,215,255,.35)}.side-logo strong{display:block;font-size:1.1rem}.side-logo small{color:var(--muted);font-weight:800}.side-nav{display:grid;gap:8px;margin-top:12px}.nav-btn,.side-link{width:100%;height:54px;border-radius:18px;background:transparent;color:#d8e6f8;text-align:left;padding:0 16px;font-weight:900;border:1px solid transparent;display:flex;align-items:center;gap:12px;text-decoration:none}.nav-btn span,.side-link span{width:25px;text-align:center;color:#bdf4ff}.nav-btn.active{background:linear-gradient(135deg,rgba(39,215,255,.19),rgba(11,116,255,.1));border-color:rgba(39,215,255,.25);box-shadow:inset 3px 0 0 var(--cyan)}.nav-btn:hover,.side-link:hover{background:rgba(255,255,255,.07)}.side-spacer{flex:1}.side-user{border-radius:22px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.06);padding:14px;display:grid;gap:4px}.side-user small{color:var(--soft);font-weight:800}.side-user strong{font-size:1rem}.side-user span{font-size:.78rem;color:var(--muted)}
.main-shell{min-height:100vh;margin-left:calc(var(--side) + 28px);padding:18px 24px 36px;max-width:1680px}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:12px}.mobile-logo{display:none}.desktop-tabs{display:flex;gap:8px}.tab-btn{height:42px;border-radius:999px;background:transparent;color:var(--muted);padding:0 16px;font-weight:900;border:1px solid transparent}.tab-btn.active{color:#fff;border-color:rgba(39,215,255,.23);background:rgba(39,215,255,.08);box-shadow:inset 0 -2px 0 var(--cyan)}.top-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.search-box{height:48px;min-width:min(480px,42vw);border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.12);display:flex;align-items:center;gap:10px;padding:0 16px;backdrop-filter:blur(14px)}.search-box span{font-size:1.3rem;color:#d7e8ff}.search-box input{border:0;background:transparent;width:100%;font-weight:700}.avatar-mini{width:42px;height:42px;border-radius:16px;background:linear-gradient(135deg,rgba(39,215,255,.22),rgba(255,255,255,.1));border:1px solid rgba(255,255,255,.16);display:grid;place-items:center;font-weight:1000}.menu-dot{width:42px;height:42px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.1)}

.showcase{position:relative;border:1px solid rgba(255,255,255,.1);border-radius:30px;min-height:270px;overflow:hidden;background:linear-gradient(135deg,rgba(8,16,31,.92),rgba(10,18,32,.72));box-shadow:0 26px 80px rgba(0,0,0,.38);isolation:isolate}.showcase:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.74),rgba(0,0,0,.22),rgba(0,0,0,.65)),url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="1200" height="420"><defs><linearGradient id="g" x1="0" y1="0" x2="1" y2="1"><stop stop-color="%2300e0ff" stop-opacity=".35"/><stop offset="1" stop-color="%230b74ff" stop-opacity=".08"/></linearGradient></defs><rect width="1200" height="420" fill="%23050a14"/><circle cx="880" cy="120" r="180" fill="url(%23g)"/><circle cx="1080" cy="340" r="220" fill="%2300e0ff" opacity=".08"/><path d="M40 330 C250 180 420 410 680 230 S1050 120 1180 260" stroke="%2300e0ff" stroke-opacity=".18" stroke-width="6" fill="none"/></svg>') center/cover}.showcase-content{position:relative;z-index:2;padding:34px;max-width:720px}.showcase h1{font-size:clamp(2.4rem,5vw,5.4rem);letter-spacing:-.07em;line-height:.9;margin:18px 0 14px}.showcase p{color:var(--muted);font-size:1.05rem;line-height:1.58;max-width:620px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:22px}.showcase-stack{position:absolute;right:36px;bottom:34px;display:flex;gap:14px;transform:rotate(-5deg);z-index:1}.showcase-stack span{width:130px;height:180px;border-radius:22px;background:linear-gradient(150deg,rgba(39,215,255,.2),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.11);box-shadow:0 22px 50px rgba(0,0,0,.34)}.showcase-stack span:nth-child(2){transform:translateY(-22px);background:linear-gradient(150deg,rgba(246,186,67,.18),rgba(255,255,255,.04))}.showcase-stack span:nth-child(3){transform:translateY(10px);background:linear-gradient(150deg,rgba(11,116,255,.25),rgba(255,255,255,.04))}

.content-tools{display:flex;gap:14px;justify-content:space-between;align-items:center;margin:20px 0 12px}.segment-tabs{display:none}.category-select,.mini-select{height:44px;border-radius:16px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:0 14px;color:#fff;font-weight:800}.category-select{min-width:260px}.chips-row{display:flex;gap:10px;overflow:auto;padding:2px 0 14px;scrollbar-width:none}.chips-row::-webkit-scrollbar{display:none}.chip{height:38px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);padding:0 14px;color:#d4e2f4;font-weight:850;white-space:nowrap}.chip.active{background:rgba(39,215,255,.15);border-color:rgba(39,215,255,.33);color:#fff}.status-line{color:var(--muted);font-weight:800;font-size:.9rem;margin:0 0 14px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:16px}.media-card{position:relative;min-height:292px;border-radius:22px;overflow:hidden;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.1);box-shadow:0 18px 44px rgba(0,0,0,.28);transition:.25s ease;isolation:isolate}.media-card:hover{transform:translateY(-4px);border-color:rgba(39,215,255,.33)}.poster{position:absolute;inset:0;background:#111a2b}.poster img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.05)}.poster:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.92),rgba(0,0,0,.04) 58%,rgba(0,0,0,.18))}.fallback{height:100%;display:grid;place-items:center;font-size:2rem;font-weight:1000;color:rgba(255,255,255,.35);background:linear-gradient(135deg,#172136,#06101c)}.card-body{position:absolute;left:0;right:0;bottom:0;padding:54px 13px 13px;z-index:2}.card-title{font-weight:950;line-height:1.17;letter-spacing:-.03em;text-shadow:0 2px 10px rgba(0,0,0,.65);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{display:flex;justify-content:space-between;gap:8px;color:#c8d5e6;font-size:.76rem;font-weight:850;margin-top:7px}.play-btn{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(.92);width:54px;height:54px;border-radius:18px;background:rgba(39,215,255,.92);color:#04131d;font-weight:1000;z-index:3;box-shadow:0 14px 36px rgba(39,215,255,.28);opacity:0;transition:.22s}.media-card:hover .play-btn{opacity:1;transform:translate(-50%,-50%) scale(1)}.fav-dot{position:absolute;top:10px;right:10px;z-index:4;width:36px;height:36px;border-radius:999px;background:rgba(0,0,0,.46);border:1px solid rgba(255,255,255,.14);color:#fff;font-size:1.06rem;font-weight:900;display:grid;place-items:center;line-height:1;transition:.2s ease}.fav-dot.active{background:linear-gradient(135deg,rgba(255,87,125,.26),rgba(255,52,92,.18));color:#ff5b79;border-color:rgba(255,91,121,.45);box-shadow:0 8px 18px rgba(255,91,121,.18)}.type-badge{position:absolute;top:12px;left:12px;z-index:3;font-size:.68rem;font-weight:1000;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:7px 9px;color:#cde9ff}.skeleton{height:292px;border-radius:22px;background:linear-gradient(90deg,rgba(255,255,255,.055),rgba(255,255,255,.11),rgba(255,255,255,.055));background-size:220% 100%;animation:shimmer 1.2s infinite}@keyframes shimmer{to{background-position:-220% 0}}.empty-state{grid-column:1/-1;border:1px dashed rgba(255,255,255,.14);background:rgba(255,255,255,.045);border-radius:22px;padding:28px;color:var(--muted);font-weight:850;text-align:center}

/* PLAYER */
.player-modal{position:fixed;inset:0;z-index:90;display:none}.player-modal.open{display:block}.player-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);backdrop-filter:blur(16px)}.premium-player{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1360px,calc(100vw - 56px));max-height:calc(100vh - 48px);overflow:auto;border-radius:30px;background:linear-gradient(180deg,rgba(11,18,32,.90),rgba(6,10,19,.94));border:1px solid rgba(255,255,255,.12);box-shadow:0 36px 110px rgba(0,0,0,.68);backdrop-filter:blur(26px)}.premium-player::-webkit-scrollbar{width:10px}.premium-player::-webkit-scrollbar-thumb{background:rgba(255,255,255,.16);border-radius:999px}.close-floating{position:absolute;right:22px;top:22px;z-index:12;background:rgba(8,12,22,.65);backdrop-filter:blur(10px)}.drag-handle{display:none}.player-hero{position:relative;min-height:420px;background:linear-gradient(120deg,#0b1424,#050711);background-size:cover;background-position:center;isolation:isolate;overflow:hidden}.player-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.88),rgba(0,0,0,.37) 45%,rgba(0,0,0,.32)),linear-gradient(to top,rgba(6,10,19,1),transparent 52%);z-index:1}.hero-overlay{position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(39,215,255,.16),transparent 30%);z-index:2}.player-main-info{position:relative;z-index:3;width:min(700px,70%);padding:54px 44px 42px}.content-type{display:inline-flex;padding:8px 11px;border-radius:999px;background:rgba(39,215,255,.12);border:1px solid rgba(39,215,255,.28);color:#bdf4ff;font-size:.73rem;font-weight:1000;text-transform:uppercase;letter-spacing:.08em}.detail-logo-wrap{margin:14px 0 8px;max-width:360px;max-height:115px}.detail-logo-wrap img{max-width:100%;max-height:115px;object-fit:contain;filter:drop-shadow(0 10px 24px rgba(0,0,0,.45))}.player-main-info h2{font-size:clamp(2.2rem,4vw,4.7rem);line-height:.96;letter-spacing:-.07em;margin:16px 0 12px;text-shadow:0 4px 30px rgba(0,0,0,.5)}.meta-pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.meta-pills span{border-radius:999px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);padding:7px 10px;color:#dce8f5;font-weight:900;font-size:.78rem}.meta-pills .rating{color:#07131c;background:linear-gradient(135deg,#ffc75f,#f8a42b);border:0}.detail-overview{font-size:1.02rem;line-height:1.62;color:#d4deea;max-width:680px;margin:0 0 22px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.player-cta-row{display:flex;gap:12px;flex-wrap:wrap}.player-stage{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;padding:0 18px 18px;margin-top:-112px;position:relative;z-index:8}.video-shell{position:relative;aspect-ratio:16/9;border-radius:22px;overflow:hidden;background:#000;border:1px solid rgba(255,255,255,.12);box-shadow:0 20px 64px rgba(0,0,0,.5)}.video-shell video{width:100%;height:100%;display:block;background:#000}.video-empty{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:22px;color:#c7d7e7;background:linear-gradient(135deg,#03060d,#07111e)}.video-empty strong{display:block;font-size:1.15rem;margin-bottom:6px}.video-empty span{display:block;color:var(--muted)}.video-shell.is-loading:after{content:"Cargando reproducción...";position:absolute;left:14px;bottom:14px;border-radius:999px;padding:10px 13px;background:rgba(0,0,0,.55);color:#fff;font-weight:900}.player-options-card{align-self:end;border-radius:22px;background:rgba(7,11,20,.72);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 52px rgba(0,0,0,.35);padding:14px;backdrop-filter:blur(18px)}.options-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:12px}.options-tabs button{height:40px;border-radius:13px;background:transparent;color:var(--muted);font-weight:950}.options-tabs button.active{background:rgba(39,215,255,.13);color:#fff;box-shadow:inset 0 -2px 0 var(--cyan)}.player-select-control{display:grid;gap:8px;margin:0 0 12px}.player-select-control span{color:#dce8f9;font-weight:1000;text-transform:uppercase;font-size:.72rem;letter-spacing:.08em}.player-select-control select{width:100%;height:46px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.13);padding:0 12px;font-weight:900}.player-select-control.is-disabled select{opacity:.72}.option-note{display:block;color:var(--soft);line-height:1.45}.detail-grid{display:grid;grid-template-columns:minmax(300px,.95fr) minmax(250px,.75fr) minmax(330px,1fr);gap:14px;padding:0 18px 18px}.episodes-card,.info-card,.cast-card,.related-card{border-radius:22px;background:rgba(255,255,255,.052);border:1px solid rgba(255,255,255,.1);padding:16px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h3{margin:0;font-size:1.05rem;letter-spacing:-.03em}.section-head button{background:transparent;color:#8edfff;font-weight:900}.episodes-card.is-hidden{display:none}.episodes-list{display:grid;gap:8px;max-height:280px;overflow:auto;padding-right:4px}.episode-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border-radius:16px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);padding:10px 12px}.episode-row.active{background:rgba(39,215,255,.13);border-color:rgba(39,215,255,.28)}.episode-row strong{display:block;font-size:.9rem}.episode-row span{display:block;color:var(--muted);font-size:.76rem;margin-top:3px;line-height:1.35}.info-list{display:grid;grid-template-columns:auto 1fr;gap:10px 14px;margin:0;color:#dce8f9}.info-list dt{color:var(--soft);font-weight:900}.info-list dd{margin:0;font-weight:800}.cast-list{display:flex;gap:16px;overflow:auto;padding-bottom:4px}.cast-person{min-width:72px;text-align:center}.cast-avatar{width:64px;height:64px;border-radius:22px;overflow:hidden;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);margin:0 auto 8px;display:grid;place-items:center;color:#9cb0c7;font-weight:1000}.cast-avatar img{width:100%;height:100%;object-fit:cover}.cast-person strong{display:block;font-size:.78rem}.cast-person span{display:block;font-size:.7rem;color:var(--muted);margin-top:2px}.related-card{margin:0 18px 18px}.related-list{display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:12px}.related-item{min-height:108px;border-radius:16px;overflow:hidden;position:relative;background:#0d1524;border:1px solid rgba(255,255,255,.1)}.related-item img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.75}.related-item:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.86),transparent)}.related-item strong{position:absolute;left:10px;right:10px;bottom:10px;z-index:2;font-size:.8rem;line-height:1.2}.bottom-nav{display:none}
#toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);z-index:120;background:rgba(8,12,27,.94);border:1px solid rgba(255,255,255,.14);color:white;padding:12px 14px;border-radius:16px;font-weight:900;box-shadow:0 18px 50px rgba(0,0,0,.4);max-width:calc(100vw - 24px);text-align:center;opacity:0;transition:.2s ease;pointer-events:none}

@media (max-width:1100px){
    :root{--side:92px}.sidebar{width:74px;padding:12px;border-radius:24px}.side-logo div,.nav-btn:not(.active),.nav-btn.active,.side-link,.side-user{font-size:0}.side-logo{justify-content:center}.brand-dot{width:44px}.nav-btn{justify-content:center;padding:0}.nav-btn span{font-size:1.2rem}.nav-btn.active{box-shadow:inset 0 0 0 1px rgba(39,215,255,.28)}.side-link{justify-content:center;padding:0}.side-link span{font-size:1.1rem}.main-shell{margin-left:98px}.player-stage{grid-template-columns:1fr}.player-options-card{align-self:stretch}.detail-grid{grid-template-columns:1fr 1fr}.cast-card{grid-column:1/-1}.related-list{grid-template-columns:repeat(4,1fr)}
}
@media (max-width:760px){
    body.app-page{padding-bottom:74px}.sidebar{display:none}.main-shell{margin:0;padding:12px 12px 22px}.topbar{height:auto;align-items:flex-start;display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:10px}.mobile-logo{display:flex;align-items:center;gap:10px}.mobile-logo strong{font-size:1.05rem}.desktop-tabs{display:none}.top-actions{width:100%;display:grid;grid-template-columns:1fr auto;gap:9px}.search-box{min-width:0;width:100%;height:46px}.avatar-mini{display:none}.top-actions .ghost-btn{display:none}.showcase{min-height:168px;border-radius:24px}.showcase-content{padding:20px}.showcase h1{font-size:2.1rem;margin:12px 0 8px}.showcase p{font-size:.9rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.showcase-stack{display:none}.hero-actions{display:none}.content-tools{margin:14px 0 10px;display:grid;gap:10px}.segment-tabs{display:flex;gap:8px;overflow:auto}.mobile-nav-btn{min-width:76px;height:42px;border-radius:999px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.09);display:flex;align-items:center;justify-content:center;gap:6px;color:#d4dfed;font-weight:900}.mobile-nav-btn.active{background:rgba(39,215,255,.14);border-color:rgba(39,215,255,.34);color:#fff}.category-select{width:100%;min-width:0}.chips-row{padding-bottom:10px}.chip{height:34px;font-size:.82rem}.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.media-card{min-height:172px;border-radius:16px}.card-body{padding:40px 9px 9px}.card-title{font-size:.78rem}.card-meta{font-size:.66rem}.play-btn{width:42px;height:42px;border-radius:14px;opacity:1;background:rgba(39,215,255,.88)}.fav-dot{width:30px;height:30px;border-radius:11px;font-size:.82rem}.type-badge{display:none}.status-line{font-size:.8rem}.bottom-nav{position:fixed;left:10px;right:10px;bottom:10px;z-index:40;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:8px;border-radius:24px;background:rgba(6,10,18,.82);border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 50px rgba(0,0,0,.5);backdrop-filter:blur(20px)}.bottom-btn{height:50px;border-radius:18px;background:transparent;color:#9bacbf;display:grid;place-items:center;font-weight:900}.bottom-btn span{font-size:1rem}.bottom-btn small{font-size:.68rem}.bottom-btn.active{background:rgba(39,215,255,.13);color:#fff}.premium-player{left:0;right:0;bottom:0;top:auto;transform:none;width:100%;max-height:94vh;border-radius:30px 30px 0 0;border-left:0;border-right:0;border-bottom:0}.drag-handle{display:block;position:sticky;top:0;margin:10px auto -2px;width:68px;height:5px;border-radius:999px;background:rgba(255,255,255,.38);z-index:16}.close-floating{width:48px;height:48px;right:16px;top:42px;border-radius:17px}.player-hero{min-height:315px}.player-main-info{width:100%;padding:60px 16px 102px}.player-main-info h2{font-size:1.55rem;line-height:1.1;letter-spacing:-.045em;margin:12px 0 10px;max-width:calc(100% - 58px)}.detail-logo-wrap{max-width:210px;max-height:70px}.detail-logo-wrap img{max-height:70px}.meta-pills{gap:5px}.meta-pills span{font-size:.64rem;padding:5px 7px}.detail-overview{font-size:.83rem;line-height:1.45;-webkit-line-clamp:2;margin-bottom:14px}.player-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.player-cta-row .ghost-btn{grid-column:auto}.player-cta-row button{min-height:42px;border-radius:14px;font-size:.82rem;padding:0 10px}.player-stage{display:grid;grid-template-columns:1fr;gap:10px;padding:0 14px 14px;margin-top:-86px}.video-shell{border-radius:18px}.player-options-card{border-radius:20px;padding:12px}.options-tabs{display:none}.player-select-control{margin-bottom:10px}.player-select-control select{height:42px}.option-note{font-size:.73rem}.detail-grid{display:grid;grid-template-columns:1fr;gap:10px;padding:0 14px 14px}.episodes-card,.info-card,.cast-card,.related-card{border-radius:20px;padding:14px}.episodes-list{max-height:245px}.episode-row{grid-template-columns:1fr auto;padding:9px 10px}.info-list{font-size:.82rem}.cast-list{gap:12px}.cast-avatar{width:56px;height:56px;border-radius:18px}.related-card{margin:0 14px 14px}.related-list{display:flex;overflow:auto;gap:10px}.related-item{min-width:140px}.auth-shell{grid-template-columns:1fr;padding:16px}.auth-brand-card{min-height:300px;padding:24px;border-radius:28px}.auth-brand-card h1{font-size:2.2rem}.login-card{padding:22px;border-radius:26px}
}
@media (max-width:390px){.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-card{min-height:210px}.player-main-info h2{font-size:1.38rem}.player-cta-row{grid-template-columns:1fr}.player-cta-row button{width:100%}}

/* =========================================================
   ONLY TV PLAY - DISEÑO PREVIEW EXACTO v1.1.2
   Reestructura visual del reproductor para que el modal móvil
   se vea como ficha premium tipo streaming: video arriba,
   datos debajo, opciones integradas y cards compactas.
   ========================================================= */
.player-modal{--detail-bg-image:linear-gradient(135deg,#060b14,#101b2b);--detail-bg-url:none}.player-backdrop{backdrop-filter:blur(14px);background:rgba(1,5,13,.70)}.premium-player{background:linear-gradient(180deg,rgba(16,24,38,.90),rgba(5,8,16,.96));box-shadow:0 30px 100px rgba(0,0,0,.72);border-color:rgba(255,255,255,.12)}.player-hero{background-position:center!important;background-size:cover!important}.player-hero:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 82% 25%,rgba(39,215,255,.10),transparent 35%),linear-gradient(to top,rgba(4,7,13,.95),rgba(4,7,13,.18) 48%,rgba(4,7,13,.76));z-index:1}.hero-overlay{z-index:2}.player-main-info{position:relative;z-index:4}.detail-logo-wrap{margin:4px 0 8px}.detail-logo-wrap img{filter:drop-shadow(0 12px 24px rgba(0,0,0,.58))}.content-type{background:rgba(39,215,255,.12);border-color:rgba(39,215,255,.36);color:#c9f8ff}.meta-pills span{box-shadow:0 8px 24px rgba(0,0,0,.18)}.meta-pills span:nth-child(3){background:linear-gradient(135deg,#ffc64d,#f0a528);color:#160e02;border-color:rgba(255,198,77,.45)}.video-empty{background-image:var(--detail-bg-image);background-size:cover;background-position:center}.video-empty:before{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,.14) 46%,rgba(0,0,0,.38));z-index:0}.video-empty:after{content:"▶";position:relative;z-index:2;width:74px;height:74px;border-radius:999px;display:grid;place-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);box-shadow:0 18px 52px rgba(0,0,0,.48),0 0 0 10px rgba(39,215,255,.08);color:white;font-size:1.55rem;text-indent:4px;backdrop-filter:blur(12px)}.video-empty strong,.video-empty span{display:none}.player-options-card{background:rgba(5,8,16,.78);border-color:rgba(255,255,255,.13)}.player-select-control select{appearance:none;background-color:rgba(255,255,255,.08);background-image:linear-gradient(45deg,transparent 50%,#bfefff 50%),linear-gradient(135deg,#bfefff 50%,transparent 50%);background-position:calc(100% - 18px) 19px,calc(100% - 13px) 19px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:34px}.info-card,.episodes-card,.cast-card,.related-card{box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}

@media (min-width:761px){
    .premium-player{width:min(1260px,calc(100vw - 38px));max-height:calc(100vh - 34px);border-radius:26px;overflow:auto}.player-hero{min-height:430px;border-radius:22px;margin:16px 16px 0;border:1px solid rgba(255,255,255,.11);overflow:hidden}.player-main-info{padding:96px 26px 150px;width:min(62%,720px)}.player-main-info h2{font-size:clamp(2.3rem,4vw,4.3rem);line-height:.94;letter-spacing:-.075em;margin:14px 0}.detail-overview{max-width:680px}.player-stage{grid-template-columns:minmax(0,1fr) 320px;align-items:end;margin-top:-132px;padding:0 30px 20px}.video-shell{box-shadow:0 25px 80px rgba(0,0,0,.56);border-color:rgba(255,255,255,.14)}.player-options-card{margin-bottom:16px}.detail-grid{padding:0 30px 18px}.related-card{margin:0 30px 24px}.close-floating{top:32px;right:32px;z-index:30;background:rgba(12,18,30,.70);backdrop-filter:blur(16px)}
}

@media (max-width:760px){
    .player-modal.open{align-items:flex-end}.player-backdrop{background:rgba(1,5,13,.68);backdrop-filter:blur(16px)}.premium-player{display:flex;flex-direction:column;width:100%;max-height:calc(100dvh - 58px);border-radius:30px 30px 0 0;background:linear-gradient(180deg,rgba(18,28,42,.92),rgba(4,7,14,.98));overflow:auto;box-shadow:0 -18px 70px rgba(0,0,0,.74)}.drag-handle{display:block;position:sticky;top:0;order:0;margin:12px auto 8px;width:66px;height:5px;border-radius:999px;background:rgba(255,255,255,.36);z-index:40}.close-floating{order:0;position:absolute;right:18px;top:44px;width:52px;height:52px;border-radius:18px;background:rgba(8,12,20,.70);border-color:rgba(255,255,255,.14);backdrop-filter:blur(16px);z-index:45}.player-stage{display:contents}.video-shell{order:1;width:calc(100% - 28px);margin:0 14px;aspect-ratio:16/9;border-radius:22px;border-color:rgba(255,255,255,.14);box-shadow:0 20px 58px rgba(0,0,0,.55);background:#000}.video-shell video{border-radius:22px}.video-empty:after{width:62px;height:62px;font-size:1.28rem}.player-hero{order:2;min-height:0!important;background:none!important;border:0!important;overflow:visible}.player-hero:after,.player-hero .hero-overlay{display:none!important}.player-main-info{padding:14px 14px 12px;width:100%}.content-type{font-size:.68rem;padding:7px 11px;margin-bottom:8px}.detail-logo-wrap{max-width:205px;max-height:64px;margin:4px 0 8px}.detail-logo-wrap img{max-height:64px}.player-main-info h2{font-size:1.42rem;line-height:1.12;letter-spacing:-.045em;margin:6px 0 9px;max-width:calc(100% - 72px);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meta-pills{gap:6px;margin:8px 0 12px}.meta-pills span{font-size:.68rem;padding:6px 8px;border-radius:999px;background:rgba(255,255,255,.105)}.detail-overview{font-size:.88rem;line-height:1.45;margin:0 0 14px;color:#d5dfec;max-width:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.player-cta-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.player-cta-row button{width:100%;min-height:48px;border-radius:15px;font-size:.88rem;padding:0 10px}.player-cta-row #mainPlayBtn{grid-column:1/-1;background:linear-gradient(135deg,#43dcff,#168eff);color:#03101a}.player-cta-row #continueBtn,.player-cta-row #shareBtn{background:rgba(255,255,255,.07)}.player-options-card{order:3;width:calc(100% - 28px);margin:0 14px 12px;border-radius:22px;padding:14px;background:rgba(5,8,15,.66);backdrop-filter:blur(18px)}.options-tabs{display:none}.player-options-card:before{content:"Opciones de reproducción";display:block;margin:0 0 12px;font-size:1rem;font-weight:950;letter-spacing:-.03em}.player-select-control{grid-template-columns:1fr;gap:8px;margin-bottom:10px}.player-select-control span{font-size:.72rem;color:#d8e6f7}.player-select-control select{height:44px;border-radius:15px;background-color:rgba(255,255,255,.075);font-size:.84rem}.option-note{display:none}.detail-grid{order:4;display:flex;flex-direction:column;gap:12px;padding:0 14px 14px}.episodes-card{order:1}.cast-card{order:2}.info-card{order:3}.episodes-card.is-hidden{display:none!important}.episodes-card,.cast-card,.info-card,.related-card{border-radius:22px;background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.10);padding:14px}.section-head h3{font-size:1rem}.cast-list{gap:12px}.cast-person{min-width:70px}.cast-avatar{width:58px;height:58px;border-radius:19px}.cast-person strong{font-size:.74rem}.cast-person span{font-size:.67rem}.info-list{grid-template-columns:102px 1fr;font-size:.80rem;gap:8px 10px}.episodes-list{max-height:230px}.episode-row{border-radius:16px;background:rgba(255,255,255,.055);padding:10px}.related-card{order:5;width:calc(100% - 28px);margin:0 14px 14px}.related-list{display:flex;overflow:auto;gap:10px;padding-bottom:2px}.related-item{min-width:145px;min-height:92px;border-radius:16px}.bottom-nav{z-index:35}.cards-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.media-card{min-height:178px}.card-body{padding-bottom:10px}.showcase{display:none}.content-tools{margin-top:8px}
}

@media (max-width:390px){.player-cta-row{grid-template-columns:1fr 1fr}.player-cta-row button{font-size:.82rem}.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.media-card{min-height:210px}.player-main-info h2{font-size:1.32rem}.info-list{grid-template-columns:88px 1fr}}


/* =========================================================
   ONLY TV PLAY - CORRECCIÓN PREVIEW MÓVIL v1.2.0
   Objetivo: reproducir el diseño aprobado en la imagen mockup.
   Orden real en celular: video/backdrop arriba, ficha debajo,
   botones, opciones de audio, reparto e información. Nada de
   panel de opciones encima del video.
   ========================================================= */
#toast{
    max-width:min(360px,calc(100vw - 54px));
    font-size:.86rem;
    line-height:1.25;
    padding:10px 13px;
    border-radius:14px;
    bottom:86px;
}

@media (min-width:761px){
    .premium-player{
        width:min(1320px,calc(100vw - 34px));
        max-height:calc(100vh - 28px);
        border-radius:28px;
    }
    .player-hero{
        min-height:430px;
        border-radius:24px;
        margin:16px 16px 0;
    }
    .player-main-info{
        padding:98px 30px 154px;
        width:min(58%,720px);
    }
    .player-stage{
        display:grid!important;
        grid-template-columns:minmax(0,1fr) 320px!important;
        gap:16px!important;
        align-items:end!important;
        margin-top:-132px!important;
        padding:0 30px 20px!important;
        position:relative;
        z-index:8;
    }
    .player-stage .video-shell{
        width:100%;
        margin:0;
        aspect-ratio:16/9;
        border-radius:22px;
    }
    .player-stage .player-options-card{
        width:auto;
        margin:0 0 16px;
        align-self:end;
    }
}

@media (max-width:760px){
    .player-backdrop{
        background:rgba(1,5,13,.72)!important;
        backdrop-filter:blur(18px)!important;
    }
    .premium-player{
        left:0!important;
        right:0!important;
        bottom:0!important;
        top:auto!important;
        transform:none!important;
        width:100%!important;
        max-height:calc(100dvh - 70px)!important;
        display:flex!important;
        flex-direction:column!important;
        border-radius:30px 30px 0 0!important;
        overflow:auto!important;
        background:
            radial-gradient(circle at 78% 4%,rgba(39,215,255,.13),transparent 34%),
            linear-gradient(180deg,rgba(18,28,42,.94),rgba(4,7,14,.99))!important;
        border-top:1px solid rgba(255,255,255,.13)!important;
        box-shadow:0 -24px 86px rgba(0,0,0,.78)!important;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
    }
    .drag-handle{
        display:block!important;
        position:sticky!important;
        top:0!important;
        flex:0 0 auto!important;
        width:70px!important;
        height:5px!important;
        margin:12px auto 9px!important;
        border-radius:999px!important;
        background:rgba(255,255,255,.38)!important;
        z-index:70!important;
    }
    .close-floating{
        position:absolute!important;
        right:20px!important;
        top:42px!important;
        width:50px!important;
        height:50px!important;
        border-radius:18px!important;
        z-index:80!important;
        background:rgba(7,11,20,.72)!important;
        border:1px solid rgba(255,255,255,.14)!important;
        backdrop-filter:blur(18px)!important;
        font-size:2rem!important;
    }

    /* El contenedor stage deja de controlar el orden en móvil: JS mueve video y opciones al panel. */
    .premium-player > .player-stage{
        display:block!important;
        height:0!important;
        min-height:0!important;
        padding:0!important;
        margin:0!important;
        overflow:visible!important;
    }
    .premium-player > .video-shell{
        order:1!important;
        flex:0 0 auto!important;
        width:calc(100% - 28px)!important;
        margin:0 14px 0!important;
        aspect-ratio:16/9!important;
        min-height:0!important;
        border-radius:22px!important;
        overflow:hidden!important;
        background:#000!important;
        border:1px solid rgba(255,255,255,.14)!important;
        box-shadow:0 20px 58px rgba(0,0,0,.58)!important;
    }
    .premium-player > .video-shell video,
    .premium-player > .video-shell .video-empty{
        border-radius:22px!important;
    }
    .premium-player > .video-shell .video-empty{
        background-image:var(--detail-bg-image)!important;
        background-size:cover!important;
        background-position:center!important;
    }
    .premium-player > .video-shell .video-empty:before{
        content:"";
        position:absolute;
        inset:0;
        background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.10) 44%,rgba(0,0,0,.42));
        z-index:1;
    }
    .premium-player > .video-shell .video-empty:after{
        width:62px!important;
        height:62px!important;
        font-size:1.28rem!important;
        z-index:2!important;
    }

    .player-hero{
        order:2!important;
        flex:0 0 auto!important;
        min-height:auto!important;
        background:none!important;
        border:0!important;
        margin:0!important;
        overflow:visible!important;
    }
    .player-hero:before,
    .player-hero:after,
    .player-hero .hero-overlay{
        display:none!important;
    }
    .player-main-info{
        width:100%!important;
        padding:14px 14px 12px!important;
        display:flex!important;
        flex-direction:column!important;
    }
    .content-type{
        width:max-content!important;
        margin:0 0 8px!important;
        padding:7px 11px!important;
        font-size:.68rem!important;
        border-radius:999px!important;
    }
    .detail-logo-wrap{
        max-width:215px!important;
        max-height:66px!important;
        margin:2px 0 8px!important;
    }
    .detail-logo-wrap img{max-height:66px!important;}
    .player-main-info h2{
        margin:4px 58px 8px 0!important;
        font-size:1.48rem!important;
        line-height:1.10!important;
        letter-spacing:-.045em!important;
        display:-webkit-box!important;
        -webkit-line-clamp:2!important;
        -webkit-box-orient:vertical!important;
        overflow:hidden!important;
    }
    .meta-pills{
        display:flex!important;
        flex-wrap:wrap!important;
        gap:6px!important;
        margin:7px 0 12px!important;
    }
    .meta-pills span{
        padding:6px 8px!important;
        border-radius:999px!important;
        font-size:.67rem!important;
        font-weight:950!important;
        background:rgba(255,255,255,.105)!important;
        border:1px solid rgba(255,255,255,.10)!important;
    }
    .meta-pills span.rating,
    .meta-pills span:nth-child(3){
        background:linear-gradient(135deg,#ffc64d,#f0a528)!important;
        color:#140e04!important;
        border-color:transparent!important;
    }
    .detail-overview{
        max-width:none!important;
        margin:0 0 14px!important;
        font-size:.88rem!important;
        line-height:1.45!important;
        color:#d5dfec!important;
        display:-webkit-box!important;
        -webkit-line-clamp:3!important;
        -webkit-box-orient:vertical!important;
        overflow:hidden!important;
    }
    .player-cta-row{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:9px!important;
        margin-top:0!important;
    }
    .player-cta-row button{
        width:100%!important;
        min-height:48px!important;
        border-radius:15px!important;
        font-size:.88rem!important;
        padding:0 10px!important;
    }
    .player-cta-row #mainPlayBtn{
        grid-column:1/-1!important;
        background:linear-gradient(135deg,#43dcff,#168eff)!important;
        color:#03101a!important;
        box-shadow:0 14px 34px rgba(31,174,255,.28)!important;
    }
    .player-cta-row #continueBtn,
    .player-cta-row #toggleFavoriteBtn,
    .player-cta-row #shareBtn{
        background:rgba(255,255,255,.065)!important;
        border:1px solid rgba(255,255,255,.11)!important;
    }

    .premium-player > .player-options-card{
        order:3!important;
        flex:0 0 auto!important;
        width:calc(100% - 28px)!important;
        margin:0 14px 12px!important;
        padding:14px!important;
        border-radius:22px!important;
        background:rgba(5,8,15,.64)!important;
        border:1px solid rgba(255,255,255,.105)!important;
        box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
        backdrop-filter:blur(18px)!important;
    }
    .premium-player > .player-options-card:before{
        content:"Opciones de reproducción"!important;
        display:block!important;
        margin:0 0 12px!important;
        color:#fff!important;
        font-size:1rem!important;
        font-weight:950!important;
        letter-spacing:-.03em!important;
    }
    .premium-player > .player-options-card .options-tabs{
        display:none!important;
    }
    .player-select-control{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        margin:0 0 10px!important;
    }
    .player-select-control span{
        font-size:.72rem!important;
        letter-spacing:.10em!important;
        color:#d8e6f7!important;
        text-transform:uppercase!important;
    }
    .player-select-control select{
        height:44px!important;
        border-radius:15px!important;
        background-color:rgba(255,255,255,.075)!important;
        border:1px solid rgba(255,255,255,.12)!important;
        font-size:.84rem!important;
        font-weight:900!important;
    }
    .option-note{display:none!important;}

    .detail-grid{
        order:4!important;
        display:flex!important;
        flex-direction:column!important;
        gap:12px!important;
        padding:0 14px 14px!important;
    }
    .episodes-card{order:1!important;}
    .cast-card{order:2!important;}
    .info-card{order:3!important;}
    .episodes-card.is-hidden{display:none!important;}
    .episodes-card,.cast-card,.info-card,.related-card{
        border-radius:22px!important;
        background:rgba(255,255,255,.055)!important;
        border:1px solid rgba(255,255,255,.10)!important;
        padding:14px!important;
    }
    .cast-list{
        display:flex!important;
        gap:12px!important;
        overflow:auto!important;
        padding-bottom:2px!important;
    }
    .cast-person{min-width:70px!important;}
    .cast-avatar{width:58px!important;height:58px!important;border-radius:19px!important;}
    .cast-person strong{font-size:.74rem!important;line-height:1.15!important;}
    .cast-person span{font-size:.67rem!important;}
    .info-list{
        grid-template-columns:102px 1fr!important;
        gap:8px 10px!important;
        font-size:.80rem!important;
    }
    .related-card{
        order:5!important;
        width:calc(100% - 28px)!important;
        margin:0 14px 14px!important;
    }
    .related-list{
        display:flex!important;
        overflow:auto!important;
        gap:10px!important;
    }
    .related-item{min-width:145px!important;min-height:92px!important;}
}

@media (max-width:390px){
    .player-main-info h2{font-size:1.34rem!important;}
    .player-cta-row{grid-template-columns:1fr 1fr!important;}
    .player-cta-row button{font-size:.82rem!important;}
    .info-list{grid-template-columns:88px 1fr!important;}
}

/* =========================================================
   ONLY TV PLAY - AJUSTES ESTÉTICOS MÓVIL v1.3.0
   ========================================================= */
.detail-tagline{
    margin:2px 0 8px;
    font-size:1.02rem;
    line-height:1.15;
    font-weight:800;
    color:#f4f7fb;
    opacity:.95;
}
.detail-overview-wrap{display:block}
.detail-overview-toggle{
    appearance:none;
    background:none;
    border:0;
    color:#7ed1ff;
    font-weight:800;
    font-size:.88rem;
    padding:2px 0 0;
    margin-top:6px;
    cursor:pointer;
}
.options-toggle-btn{
    display:none;
    appearance:none;
    width:calc(100% - 28px);
    margin:0 14px 12px;
    min-height:48px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.12);
    background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.04));
    color:#f5fbff;
    font-size:.92rem;
    font-weight:800;
    letter-spacing:.01em;
    text-align:left;
    padding:0 16px;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.options-toggle-btn::after{
    content:'▾';
    float:right;
    opacity:.9;
}
.player-modal:not(.options-collapsed) .options-toggle-btn::after{content:'▴'}
.poster-list{display:flex;gap:12px;overflow:auto;padding-bottom:4px}
.related-item.poster-item{
    appearance:none;
    border:0;
    background:transparent;
    color:inherit;
    text-align:left;
    min-width:126px;
    max-width:126px;
    padding:0;
    cursor:pointer;
}
.related-item.poster-item .related-poster{
    width:126px;
    aspect-ratio:2/3;
    border-radius:18px;
    overflow:hidden;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 10px 30px rgba(0,0,0,.28);
    margin-bottom:8px;
}
.related-item.poster-item img{width:100%;height:100%;object-fit:cover;display:block}
.related-item.poster-item strong{
    display:block;
    font-size:.86rem;
    line-height:1.18;
    color:#fff;
    overflow:hidden;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
}
.related-item.poster-item span{display:block;font-size:.72rem;color:#a9bfd6;margin-top:4px}

@media (max-width:760px){
    .detail-tagline{order:3;font-size:.92rem;margin:0 0 10px;color:#e8f2fd}
    .meta-pills{order:2}
    .detail-overview-wrap{order:4}
    .player-cta-row{order:5;display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important}
    .player-cta-row #mainPlayBtn{grid-column:auto!important}
    .player-cta-row button{min-height:52px!important;font-size:.88rem!important}
    .player-cta-row #fullscreenBtn{background:rgba(255,255,255,.07)}
    .options-toggle-btn{display:block}
    .player-options-card{margin-top:0!important}
    .player-modal.options-collapsed .player-options-card{display:none!important}
    .player-modal:not(.options-collapsed) .player-options-card{display:block!important}
    .player-modal:not(.options-collapsed) .options-toggle-btn{margin-bottom:12px}
    .player-options-card:before{display:none!important}
    .detail-overview{
        display:-webkit-box!important;
        -webkit-line-clamp:3!important;
        -webkit-box-orient:vertical!important;
        overflow:hidden!important;
    }
    .detail-overview.expanded{
        display:block!important;
        -webkit-line-clamp:unset!important;
        overflow:visible!important;
    }
    .related-card{width:calc(100% - 28px)!important;margin:0 14px 16px!important}
    .poster-list{gap:12px}
    .related-item.poster-item{min-width:118px;max-width:118px}
    .related-item.poster-item .related-poster{width:118px;border-radius:16px}
}

@media (min-width:761px){
    .detail-tagline{font-size:1.14rem;color:#eaf3ff;margin:2px 0 12px}
    .detail-overview{max-width:670px}
    .detail-overview.expanded{display:block!important}
    .detail-overview-toggle{display:none!important}
    .options-toggle-btn{display:none!important}
    .related-item.poster-item{min-width:156px;max-width:156px}
    .related-item.poster-item .related-poster{width:156px}
}

/* =========================================================
   ONLY TV PLAY - AJUSTE FINO MÓVIL v1.3.1
   ========================================================= */
@media (max-width:760px){
    /* Ocultar la segunda línea/título auxiliar arriba; el título principal baja sobre la sinopsis */
    .detail-tagline{display:none !important}

    /* El título principal debe verse donde antes estaba el título secundario */
    .player-main-info h2{
        order:3 !important;
        font-size:1rem !important;
        line-height:1.18 !important;
        letter-spacing:-.02em !important;
        margin:8px 0 8px !important;
        max-width:100% !important;
        color:#f5fbff !important;
        font-weight:800 !important;
        display:block !important;
    }
    .meta-pills{order:2 !important;margin:8px 0 6px !important}
    .detail-overview-wrap{order:4 !important}
    .player-cta-row{order:5 !important}
    .options-toggle-btn{
        order:6 !important;
        display:block !important;
        width:calc(100% - 28px) !important;
        margin:0 14px 12px !important;
    }
    .player-options-card{
        order:7 !important;
        width:calc(100% - 28px) !important;
        margin:0 14px 12px !important;
    }
    .detail-grid{order:8 !important}
    .related-card{order:9 !important}

    /* La tarjeta de opciones queda oculta hasta tocar el botón y aparece en el mismo lugar */
    .player-modal.options-collapsed .player-options-card{display:none !important}
    .player-modal:not(.options-collapsed) .player-options-card{display:block !important}

    /* El botón no debe colarse arriba de la ficha */
    .player-hero .options-toggle-btn{display:none !important}
}

/* =========================================================
   ONLY TV PLAY - FONDO POSTER Y REPARTO UNIFORME v1.3.2
   ========================================================= */
.premium-player{
    position:relative;
    isolation:isolate;
}
.premium-player::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:0;
    pointer-events:none;
    background-image:
        linear-gradient(180deg, rgba(4,8,14,.84) 0%, rgba(4,8,14,.90) 26%, rgba(4,8,14,.95) 58%, rgba(4,8,14,.98) 100%),
        var(--detail-poster-image, none);
    background-size:cover;
    background-position:center top;
    opacity:.95;
    filter:saturate(1.06) contrast(1.02);
}
.premium-player > *{position:relative; z-index:1;}

@media (max-width:760px){
    .premium-player::before{
        background-image:
            linear-gradient(180deg, rgba(4,8,14,.62) 0%, rgba(4,8,14,.78) 22%, rgba(4,8,14,.92) 48%, rgba(4,8,14,.97) 70%, rgba(4,8,14,.995) 100%),
            var(--detail-poster-image, none);
        background-size:cover;
        background-position:center top;
        opacity:1;
    }
    .cast-card .section-head button,
    #castMoreBtn{
        display:none !important;
    }
    .cast-card{
        padding:16px 14px !important;
    }
    .cast-list{
        display:grid !important;
        grid-template-columns:repeat(4, minmax(0,1fr)) !important;
        gap:12px !important;
        overflow:visible !important;
        padding-bottom:0 !important;
        align-items:start !important;
    }
    .cast-person{
        min-width:0 !important;
        width:100% !important;
        text-align:center !important;
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:flex-start !important;
    }
    .cast-avatar{
        width:64px !important;
        height:64px !important;
        border-radius:20px !important;
        margin:0 auto 8px !important;
        box-shadow:0 8px 24px rgba(0,0,0,.22);
    }
    .cast-person strong{
        width:100%;
        font-size:.78rem !important;
        line-height:1.15 !important;
        min-height:2.3em !important;
        display:-webkit-box !important;
        -webkit-line-clamp:2 !important;
        -webkit-box-orient:vertical !important;
        overflow:hidden !important;
        text-wrap:balance;
    }
    .cast-person span{
        width:100%;
        font-size:.68rem !important;
        line-height:1.15 !important;
        color:#b7c7d9 !important;
        min-height:2.2em !important;
        display:-webkit-box !important;
        -webkit-line-clamp:2 !important;
        -webkit-box-orient:vertical !important;
        overflow:hidden !important;
    }
}

/* =========================================================
   ONLY TV PLAY - AJUSTE ALTURA MÓVIL Y CARRUSEL REPARTO v1.3.3
   ========================================================= */
@media (max-width:760px){
    /* Quitar el espacio superior extra del modal móvil */
    .player-modal.open{
        display:flex !important;
        align-items:flex-end !important;
    }
    .premium-player{
        max-height:calc(100dvh - 8px) !important;
        min-height:calc(100dvh - 8px) !important;
        margin-top:8px !important;
        border-radius:28px 28px 0 0 !important;
    }
    .drag-handle{
        margin:8px auto 6px !important;
    }

    /* Reparto principal en carrusel horizontal limpio y uniforme */
    .cast-card{
        overflow:hidden !important;
    }
    .cast-list{
        display:flex !important;
        flex-wrap:nowrap !important;
        overflow-x:auto !important;
        overflow-y:hidden !important;
        gap:14px !important;
        padding:2px 2px 6px !important;
        scroll-snap-type:x proximity;
        -webkit-overflow-scrolling:touch;
    }
    .cast-list::-webkit-scrollbar{
        height:4px;
    }
    .cast-list::-webkit-scrollbar-thumb{
        background:rgba(255,255,255,.16);
        border-radius:999px;
    }
    .cast-person{
        flex:0 0 78px !important;
        min-width:78px !important;
        max-width:78px !important;
        scroll-snap-align:start;
    }
    .cast-avatar{
        width:68px !important;
        height:68px !important;
        border-radius:21px !important;
    }
    .cast-person strong{
        font-size:.77rem !important;
        line-height:1.12 !important;
        min-height:2.25em !important;
    }
    .cast-person span{
        font-size:.69rem !important;
        line-height:1.1 !important;
        min-height:2.15em !important;
    }
}

/* =========================================================
   ONLY TV PLAY - RESTAURAR ESPACIO SUPERIOR MÓVIL v1.3.4
   Mantiene el modal como bottom-sheet con aire arriba, como antes.
   ========================================================= */
@media (max-width:760px){
    .player-modal.open{
        display:flex !important;
        align-items:flex-end !important;
    }
    .premium-player{
        /* Este valor controla el espacio superior visible antes del panel. */
        max-height:calc(100dvh - 112px) !important;
        min-height:auto !important;
        margin-top:0 !important;
        border-radius:30px 30px 0 0 !important;
    }
    .drag-handle{
        margin:12px auto 8px !important;
    }
}

@media (max-width:390px){
    .premium-player{
        max-height:calc(100dvh - 96px) !important;
    }
}

/* =========================================================
   ONLY TV PLAY - CUSTOM SELECT PREMIUM v1.3.5
   ========================================================= */
.player-select-control.has-custom-select select{
    position:absolute !important;
    opacity:0 !important;
    pointer-events:none !important;
    width:1px !important;
    height:1px !important;
}
.player-select-control.has-custom-select{
    position:relative;
}
.custom-select-trigger{
    width:100%;
    min-height:46px;
    border-radius:15px;
    border:1px solid rgba(255,255,255,.14);
    background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.05));
    color:#f5f9ff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:0 14px;
    font-size:.87rem;
    font-weight:900;
    text-align:left;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.06), 0 8px 20px rgba(0,0,0,.12);
}
.custom-select-value{
    flex:1;
    line-height:1.25;
}
.custom-select-chevron{
    flex:0 0 auto;
    font-size:.92rem;
    opacity:.9;
    transition:transform .18s ease;
}
.player-select-control.is-open .custom-select-chevron{
    transform:rotate(180deg);
}
.player-select-control.is-disabled .custom-select-trigger{
    opacity:.74;
}
.custom-select-menu{
    display:none;
    position:absolute;
    left:0;
    right:0;
    top:calc(100% + 8px);
    z-index:30;
    border-radius:18px;
    overflow:hidden;
    background:linear-gradient(180deg,rgba(12,17,29,.98),rgba(7,10,19,.98));
    border:1px solid rgba(126,209,255,.16);
    box-shadow:0 18px 40px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.05);
    backdrop-filter:blur(18px);
}
.player-select-control.is-open .custom-select-menu{
    display:block;
}
.custom-select-option{
    width:100%;
    border:0;
    background:transparent;
    color:#eff7ff;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:14px 14px;
    text-align:left;
    font-size:.88rem;
    font-weight:800;
}
.custom-select-option + .custom-select-option{
    border-top:1px solid rgba(255,255,255,.08);
}
.custom-select-option:active,
.custom-select-option:hover{
    background:rgba(126,209,255,.10);
}
.custom-select-option.is-selected{
    background:rgba(126,209,255,.10);
    color:#ffffff;
}
.custom-select-check{
    flex:0 0 auto;
    min-width:16px;
    text-align:right;
    color:#7ed1ff;
    font-weight:1000;
}
.custom-select-option-text{
    display:block;
    line-height:1.28;
}

@media (max-width:760px){
    .custom-select-trigger{
        min-height:44px;
        border-radius:15px;
        font-size:.84rem;
        padding:0 13px;
    }
    .custom-select-menu{
        border-radius:18px;
        box-shadow:0 18px 48px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.05);
    }
    .custom-select-option{
        padding:13px 13px;
        font-size:.85rem;
    }
}

/* =========================================================
   ONLY TV PLAY - FIX DROPDOWN VISIBILIDAD Y CONTRASTE v1.3.6
   ========================================================= */
.player-options-card{
    position:relative;
    overflow:visible !important;
    z-index:60;
}
.player-select-control{
    position:relative;
    z-index:1;
}
.player-select-control.is-open{
    z-index:120;
}
.custom-select-trigger{
    background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.06)) !important;
    border:1px solid rgba(255,255,255,.16) !important;
    color:#ffffff !important;
}
.custom-select-value{
    color:#f5fbff !important;
}
.custom-select-menu{
    z-index:9999 !important;
    background:linear-gradient(180deg,rgba(14,20,34,.995),rgba(8,12,22,.995)) !important;
    border:1px solid rgba(126,209,255,.24) !important;
    box-shadow:0 24px 64px rgba(0,0,0,.62), 0 0 0 1px rgba(255,255,255,.03) inset !important;
}
.custom-select-option{
    color:#f4f9ff !important;
    font-weight:900 !important;
}
.custom-select-option + .custom-select-option{
    border-top:1px solid rgba(255,255,255,.06) !important;
}
.custom-select-option:hover,
.custom-select-option:active{
    background:rgba(126,209,255,.14) !important;
}
.custom-select-option.is-selected{
    background:linear-gradient(90deg,rgba(67,220,255,.18),rgba(22,142,255,.12)) !important;
    color:#ffffff !important;
}
.custom-select-check{
    color:#8ee5ff !important;
    font-size:1rem !important;
}

@media (max-width:760px){
    .player-options-card{
        z-index:80 !important;
    }
    .toggleOptionsBtn,
    .options-toggle-btn{
        position:relative;
        z-index:50;
    }
    .custom-select-trigger{
        min-height:48px !important;
        border-radius:16px !important;
        padding:0 15px !important;
        font-size:.87rem !important;
        letter-spacing:.01em !important;
        text-transform:none !important;
    }
    .custom-select-value{
        line-height:1.3 !important;
    }
    .custom-select-menu{
        top:calc(100% + 10px) !important;
        border-radius:18px !important;
        max-height:260px;
        overflow:auto;
    }
    .custom-select-option{
        padding:14px 14px !important;
        font-size:.88rem !important;
        line-height:1.25 !important;
    }
    .cast-card,
    .info-card,
    .related-card,
    .episodes-card,
    .detail-grid,
    .related-list,
    .cast-list{
        position:relative;
        z-index:1;
    }
}

/* =========================================================
   ONLY TV PLAY - EPISODIOS COMPACTOS Y TÍTULO ACTUAL v1.3.7
   ========================================================= */
.episode-row.compact{
    width:100%;
    text-align:left;
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:10px;
    border-radius:16px;
    background:rgba(255,255,255,.055);
    border:1px solid rgba(255,255,255,.08);
    padding:12px 14px;
    color:#eef6ff;
}
.episode-row.compact .episode-row-main strong{
    display:block;
    font-size:.92rem;
    line-height:1.22;
    color:#ffffff;
}
.episode-row.compact .episode-row-play{
    width:34px;
    height:34px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:rgba(67,220,255,.16);
    color:#8fe4ff;
    font-size:.9rem;
    font-weight:900;
    box-shadow:inset 0 0 0 1px rgba(126,209,255,.18);
}
.episode-row.compact.active{
    background:linear-gradient(180deg,rgba(67,220,255,.13),rgba(67,220,255,.08));
    border-color:rgba(126,209,255,.32);
}

@media (max-width:760px){
    .detail-tagline{
        display:block !important;
        order:3 !important;
        font-size:.95rem !important;
        line-height:1.25 !important;
        font-weight:900 !important;
        color:#f4fbff !important;
        margin:2px 0 10px !important;
    }
    .episodes-list{
        display:grid !important;
        gap:10px !important;
        max-height:none !important;
        overflow:visible !important;
    }
    .episode-row.compact{
        padding:11px 12px !important;
        border-radius:16px !important;
    }
    .episode-row.compact .episode-row-main strong{
        font-size:.9rem !important;
        display:-webkit-box;
        -webkit-line-clamp:2;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }
    .episode-row.compact .episode-row-play{
        width:32px !important;
        height:32px !important;
        border-radius:11px !important;
    }
}

/* =========================================================
   ONLY TV PLAY - BANNER EPISODIO Y TEMPORADAS PREMIUM v1.3.8
   ========================================================= */
.current-episode-banner{
    display:block;
    width:calc(100% - 28px);
    margin:2px 14px 10px;
    padding:11px 14px;
    border-radius:16px;
    background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.045));
    border:1px solid rgba(126,209,255,.16);
    color:#f6fbff;
    font-size:.96rem;
    line-height:1.25;
    font-weight:900;
    box-shadow:0 12px 28px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.05);
}
.current-episode-banner.hidden{display:none !important}
.season-inline-control{
    width:min(220px, 48vw);
    margin-left:auto;
}
.season-inline-control > span{display:none}
.season-inline-control .custom-select-trigger{
    min-height:48px;
    border-radius:16px;
    font-size:.95rem;
    font-weight:900;
    padding:0 14px;
}
.season-inline-control .custom-select-menu{
    top:calc(100% + 8px);
}

@media (max-width:760px){
    .current-episode-banner{
        margin:4px 14px 10px !important;
        font-size:.95rem !important;
        line-height:1.23 !important;
    }
    .player-hero .detail-tagline{display:none !important}
    .season-inline-control{
        width:min(188px, 48vw) !important;
    }
    .section-head{
        align-items:center;
        gap:10px;
    }
    .section-head h3{
        margin-right:auto;
    }
}

@media (min-width:761px){
    .current-episode-banner{
        margin:0 0 12px 0;
        width:100%;
    }
}


/* =========================================================
   ONLY TV PLAY - GALERÍA TMDB + VISOR INTERNO v1.4.0
   ========================================================= */
.gallery-card{
    margin:0 18px 18px;
    border-radius:22px;
    background:rgba(255,255,255,.052);
    border:1px solid rgba(255,255,255,.10);
    padding:16px;
}
.gallery-card.hidden{display:none !important}
.gallery-list{
    display:grid;
    grid-template-columns:repeat(7,minmax(120px,1fr));
    gap:12px;
}
.gallery-item{
    position:relative;
    appearance:none;
    border:0;
    padding:0;
    overflow:hidden;
    min-height:96px;
    aspect-ratio:16/9;
    border-radius:16px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.10);
    cursor:pointer;
    box-shadow:0 10px 28px rgba(0,0,0,.24);
}
.gallery-item.is-poster{aspect-ratio:2/3}
.gallery-item img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .22s ease, filter .22s ease;
}
.gallery-item:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top,rgba(0,0,0,.18),transparent 55%);
    opacity:.9;
    pointer-events:none;
}
.gallery-item:active img,
.gallery-item:hover img{transform:scale(1.04);filter:saturate(1.08)}

.gallery-viewer{
    position:fixed;
    inset:0;
    z-index:130;
    display:none;
}
.gallery-viewer.open{display:block}
.gallery-viewer-backdrop{
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.78);
    backdrop-filter:blur(18px);
}
.gallery-viewer-panel{
    position:absolute;
    inset:50% auto auto 50%;
    transform:translate(-50%,-50%);
    width:min(1040px,calc(100vw - 24px));
    max-height:calc(100dvh - 50px);
    margin:0;
    border-radius:24px;
    overflow:hidden;
    background:rgba(6,10,18,.96);
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 28px 90px rgba(0,0,0,.72);
}
.gallery-viewer-panel img{
    display:block;
    width:100%;
    max-height:calc(100dvh - 50px);
    object-fit:contain;
    background:#02050a;
}
.gallery-viewer-close{
    position:absolute;
    right:12px;
    top:12px;
    z-index:2;
    width:48px;
    height:48px;
    border-radius:16px;
    background:rgba(4,8,16,.72);
    backdrop-filter:blur(12px);
}

@media (max-width:760px){
    .gallery-card{
        order:9;
        width:calc(100% - 28px);
        margin:0 14px 14px;
        border-radius:22px;
        padding:14px;
    }
    .gallery-list{
        display:flex;
        overflow:auto;
        gap:10px;
        padding-bottom:4px;
    }
    .gallery-item{
        flex:0 0 190px;
        min-height:108px;
        border-radius:16px;
    }
    .gallery-item.is-poster{
        flex-basis:112px;
        min-height:168px;
    }
    .gallery-viewer-panel{
        width:calc(100vw - 18px);
        border-radius:22px;
    }
    .gallery-viewer-close{
        width:46px;
        height:46px;
        right:10px;
        top:10px;
    }
}


/* =========================================================
   ONLY TV PLAY - EPISODIOS CON ALTURA CONTROLADA v1.4.2
   Objetivo móvil: que no se despliegue toda la temporada dentro
   de un card gigante. Se muestran aprox. 4 episodios y el resto
   queda con scroll interno como antes.
   ========================================================= */
@media (max-width:760px){
    .episodes-card{
        overflow:hidden !important;
    }
    .episodes-card .episodes-list{
        max-height:390px !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
        padding-right:4px !important;
        -webkit-overflow-scrolling:touch;
        overscroll-behavior:contain;
    }
    .episodes-card .episodes-list::-webkit-scrollbar{
        width:4px;
    }
    .episodes-card .episodes-list::-webkit-scrollbar-track{
        background:rgba(255,255,255,.05);
        border-radius:999px;
    }
    .episodes-card .episodes-list::-webkit-scrollbar-thumb{
        background:rgba(126,209,255,.28);
        border-radius:999px;
    }
    .episodes-card .episode-row.compact,
    .episodes-card .episode-row{
        min-height:76px !important;
    }
}

@media (max-width:390px){
    .episodes-card .episodes-list{
        max-height:355px !important;
    }
}

/* =========================================================
   ONLY TV PLAY - EPISODIOS MÁS COMPACTOS + FADE POSTER v1.4.3
   Ajuste móvil: card de episodios más bajo y filas más angostas.
   También suaviza el corte inferior del poster detrás de los botones.
   ========================================================= */
@media (max-width:760px){
    /* Suaviza el poster de fondo para que no se vea el filo/corte detrás de los botones */
    .premium-player::before{
        background-image:
            linear-gradient(180deg,
                rgba(4,8,14,.56) 0%,
                rgba(4,8,14,.68) 18%,
                rgba(4,8,14,.82) 36%,
                rgba(4,8,14,.94) 55%,
                rgba(4,8,14,.985) 72%,
                rgba(4,8,14,1) 100%),
            var(--detail-poster-image, none) !important;
        background-position:center top !important;
    }
    .player-main-info{
        position:relative !important;
        isolation:isolate;
    }
    .player-main-info::before{
        content:"";
        position:absolute;
        left:-14px;
        right:-14px;
        bottom:-18px;
        height:180px;
        pointer-events:none;
        z-index:-1;
        background:linear-gradient(180deg,
            rgba(4,8,14,0) 0%,
            rgba(4,8,14,.72) 34%,
            rgba(4,8,14,.97) 70%,
            rgba(4,8,14,1) 100%);
    }

    /* Card de episodios más compacto */
    .episodes-card{
        padding:13px 12px !important;
        border-radius:20px !important;
        overflow:hidden !important;
    }
    .episodes-card .section-head{
        margin-bottom:10px !important;
    }
    .episodes-card .section-head h3{
        font-size:.98rem !important;
    }
    .season-inline-control{
        width:min(176px,46vw) !important;
    }
    .season-inline-control .custom-select-trigger{
        min-height:42px !important;
        border-radius:15px !important;
        font-size:.82rem !important;
        letter-spacing:.09em !important;
        padding:0 12px !important;
    }
    .episodes-card .episodes-list{
        max-height:300px !important;
        gap:8px !important;
        padding-right:4px !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
    }
    .episodes-card .episode-row.compact,
    .episodes-card .episode-row{
        min-height:58px !important;
        padding:9px 10px !important;
        border-radius:15px !important;
        gap:8px !important;
    }
    .episodes-card .episode-row.compact .episode-row-main strong,
    .episodes-card .episode-row strong{
        font-size:.82rem !important;
        line-height:1.18 !important;
    }
    .episodes-card .episode-row.compact .episode-row-play{
        width:31px !important;
        height:31px !important;
        border-radius:11px !important;
        font-size:.78rem !important;
    }
}

@media (max-width:390px){
    .episodes-card .episodes-list{
        max-height:280px !important;
    }
    .episodes-card .episode-row.compact,
    .episodes-card .episode-row{
        min-height:54px !important;
    }
}

/* =========================================================
   ONLY TV TUMBES - TEMA OFICIAL v1.4.5
   Colores: rojo, negro, amarillo, naranja y azul marino
   Logo/fav: carpeta /img/logo.png y /img/favicon.png
   ========================================================= */
:root{
    --bg:#020307;
    --bg2:#071426;
    --panel:rgba(8,18,34,.82);
    --panel2:rgba(13,28,50,.76);
    --glass:rgba(255,255,255,.075);
    --glass2:rgba(255,255,255,.12);
    --line:rgba(255,255,255,.12);
    --line2:rgba(255,122,0,.34);
    --text:#fffaf2;
    --muted:#c4c9d3;
    --soft:#8c96a8;
    --cyan:#ffcf00;
    --cyan2:#ff7a00;
    --blue:#d90416;
    --gold:#ffcf00;
    --danger:#d90416;
    --green:#ff7a00;
    --brand-red:#d90416;
    --brand-red-dark:#8f0010;
    --brand-yellow:#ffcf00;
    --brand-orange:#ff7a00;
    --brand-navy:#071426;
    --brand-black:#020307;
}
body{background:var(--brand-black);}
::selection{background:rgba(255,122,0,.36)}
.auth-page,.app-page{
    background:
        radial-gradient(circle at 12% 8%,rgba(255,122,0,.20),transparent 34%),
        radial-gradient(circle at 85% 0%,rgba(217,4,22,.20),transparent 30%),
        radial-gradient(circle at 55% 100%,rgba(255,207,0,.10),transparent 34%),
        linear-gradient(140deg,#020307,#071426 46%,#020307) !important;
}
.app-bg:after{
    background:
        radial-gradient(circle at 20% 20%,rgba(255,122,0,.16),transparent 24%),
        radial-gradient(circle at 75% 18%,rgba(217,4,22,.16),transparent 26%),
        radial-gradient(circle at 60% 90%,rgba(255,207,0,.08),transparent 24%) !important;
}
.blob-a{background:rgba(255,122,0,.16)!important}.blob-b{background:rgba(217,4,22,.18)!important}
.primary-btn{
    background:linear-gradient(135deg,var(--brand-yellow),var(--brand-orange) 54%,var(--brand-red))!important;
    color:#120600!important;
    box-shadow:0 16px 36px rgba(255,122,0,.28),0 0 0 1px rgba(255,207,0,.18) inset!important;
}
.secondary-btn,.ghost-btn{
    background:linear-gradient(180deg,rgba(255,255,255,.095),rgba(255,255,255,.045))!important;
    border-color:rgba(255,122,0,.15)!important;
}
.secondary-btn:hover,.ghost-btn:hover{
    background:rgba(255,122,0,.13)!important;
    border-color:rgba(255,207,0,.34)!important;
}
.brand-pill,.eyebrow,.content-type{
    background:rgba(255,122,0,.13)!important;
    border-color:rgba(255,207,0,.32)!important;
    color:#ffe69a!important;
}
.logo-mark,.brand-dot,.play-btn,.mobile-nav-btn.active,.bottom-btn.active,.tab-btn.active,.chip.active{
    background:linear-gradient(135deg,var(--brand-yellow),var(--brand-orange),var(--brand-red))!important;
    color:#130700!important;
    border-color:rgba(255,207,0,.30)!important;
}
.nav-btn.active{
    background:linear-gradient(135deg,rgba(255,122,0,.22),rgba(217,4,22,.13))!important;
    border-color:rgba(255,207,0,.25)!important;
    box-shadow:inset 3px 0 0 var(--brand-orange)!important;
}
.tab-btn.active{box-shadow:inset 0 -2px 0 var(--brand-orange)!important;color:#fff!important;}
.nav-btn span,.side-link span,.search-box span,.section-head button{color:#ffd568!important}
.auth-brand-card,.login-card,.sidebar,.showcase,.media-card,.premium-player,.episodes-card,.info-card,.cast-card,.related-card,.player-options-card,.bottom-nav,.side-user{
    border-color:rgba(255,122,0,.13)!important;
}
.auth-brand-card,.login-card,.sidebar,.premium-player{
    background:linear-gradient(145deg,rgba(7,20,38,.86),rgba(2,3,7,.92))!important;
}
.auth-brand-card:before{
    background:
        linear-gradient(to top,rgba(0,0,0,.90),rgba(0,0,0,.18)),
        radial-gradient(circle at 70% 20%,rgba(255,122,0,.22),transparent 33%),
        radial-gradient(circle at 18% 75%,rgba(217,4,22,.15),transparent 30%)!important;
}
.showcase{
    background:linear-gradient(135deg,rgba(7,20,38,.92),rgba(15,8,8,.78))!important;
}
.showcase:before{
    background:linear-gradient(90deg,rgba(0,0,0,.76),rgba(0,0,0,.22),rgba(0,0,0,.68))!important;
}
.meta-pills .rating,.meta-pills span:nth-child(3){
    background:linear-gradient(135deg,var(--brand-yellow),var(--brand-orange))!important;
    color:#170800!important;
}
.type-badge,.fav-dot.active{
    background:linear-gradient(135deg,var(--brand-red),var(--brand-orange))!important;
    color:#fff!important;
}
.video-empty:after{
    background:rgba(217,4,22,.22)!important;
    border-color:rgba(255,207,0,.25)!important;
    box-shadow:0 18px 52px rgba(0,0,0,.48),0 0 0 10px rgba(255,122,0,.08)!important;
}
.player-select-control select:focus,.login-form input:focus{
    border-color:rgba(255,122,0,.55)!important;
    box-shadow:0 0 0 4px rgba(255,122,0,.10)!important;
}
.episode-row.active{
    background:rgba(255,122,0,.14)!important;
    border-color:rgba(255,207,0,.26)!important;
}
.related-item,.episode-row,.media-card .poster,.search-box,.category-select,.chip,.bottom-nav,.player-options-card,.video-shell{
    border-color:rgba(255,122,0,.12)!important;
}
#toast{
    background:rgba(7,20,38,.96)!important;
    border-color:rgba(255,122,0,.24)!important;
}
/* Logo oficial */
.auth-hero-logo{
    width:min(420px,100%);
    max-height:135px;
    object-fit:contain;
    object-position:left center;
    filter:drop-shadow(0 22px 38px rgba(0,0,0,.55));
    margin:0 0 18px;
}
.login-logo-img{
    width:190px;
    max-width:58vw;
    max-height:70px;
    object-fit:contain;
    object-position:left center;
    filter:drop-shadow(0 12px 20px rgba(0,0,0,.42));
}
.side-logo-img{
    width:100%;
    max-width:205px;
    max-height:72px;
    object-fit:contain;
    object-position:left center;
    filter:drop-shadow(0 12px 22px rgba(0,0,0,.42));
}
.mobile-logo-img{
    width:168px;
    max-width:calc(100vw - 88px);
    max-height:42px;
    object-fit:contain;
    object-position:left center;
    filter:drop-shadow(0 10px 18px rgba(0,0,0,.4));
}
.logo-wrap{align-items:center!important}.side-logo{align-items:center!important}
@media (max-width:1100px){
    .side-logo-img{width:52px;height:52px;object-fit:contain;object-position:center}
}
@media (max-width:760px){
    .auth-hero-logo{width:260px;max-height:95px;margin-bottom:14px}
    .login-logo-img{width:172px;max-height:62px}
    .mobile-logo-img{width:150px;max-height:38px}
    .topbar{background:rgba(2,3,7,.10)}
    .bottom-btn.active{box-shadow:0 0 0 1px rgba(255,207,0,.14) inset!important}
    .player-cta-row #mainPlayBtn{background:linear-gradient(135deg,var(--brand-yellow),var(--brand-orange),var(--brand-red))!important;color:#140700!important}
}


/* =========================================================
   ONLY TV TUMBES - Footer profesional v2.2.5
   ========================================================= */
.onlytv-footer{
    position:relative;
    width:min(1180px,calc(100% - 36px));
    margin:44px auto 26px;
    border-radius:28px;
    border:1px solid rgba(255,122,0,.16);
    background:
        radial-gradient(circle at 14% 0%,rgba(255,178,38,.16),transparent 32%),
        radial-gradient(circle at 92% 20%,rgba(217,4,22,.16),transparent 34%),
        linear-gradient(145deg,rgba(255,255,255,.065),rgba(255,255,255,.026));
    box-shadow:0 24px 70px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.05);
    overflow:hidden;
    color:#fff;
}
.onlytv-footer-glow{position:absolute;inset:-1px;background:linear-gradient(90deg,rgba(255,183,45,.12),transparent 34%,rgba(255,80,24,.10));pointer-events:none}.onlytv-footer-inner{position:relative;z-index:1;padding:24px;display:grid;grid-template-columns:1.05fr 1.15fr;gap:18px 28px;align-items:center}.onlytv-footer-brand{display:flex;align-items:center;gap:14px;min-width:0}.onlytv-footer-brand img{width:178px;max-width:42vw;max-height:62px;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(0,0,0,.42))}.onlytv-footer-brand strong{display:block;font-size:1.12rem;font-weight:1000;letter-spacing:-.02em}.onlytv-footer-brand span{display:block;color:#aeb8c9;font-size:.82rem;font-weight:750;margin-top:2px}.onlytv-footer-copy{margin:0;color:#c6cfdd;line-height:1.55;font-weight:650}.onlytv-footer-links{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.onlytv-footer-links a{color:#f7f8fb;text-decoration:none;font-size:.82rem;font-weight:900;border:1px solid rgba(255,255,255,.105);background:rgba(255,255,255,.045);border-radius:999px;padding:10px 13px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.onlytv-footer-links a:hover{border-color:rgba(255,177,45,.32);background:rgba(255,122,0,.13)}.onlytv-footer-bottom{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.08);padding-top:14px;display:flex;justify-content:space-between;gap:12px;color:#9faabd;font-size:.78rem;font-weight:750}.onlytv-footer-badge{color:#ffd27a}
.auth-page .onlytv-footer{width:min(980px,calc(100% - 32px));margin-top:22px;margin-bottom:24px}.app-page .main-shell .onlytv-footer{margin-top:36px;margin-bottom:92px}
@media (max-width:760px){.onlytv-footer{width:calc(100% - 28px);border-radius:24px;margin:34px auto 24px}.onlytv-footer-inner{padding:18px;grid-template-columns:1fr;gap:13px}.onlytv-footer-brand img{width:150px;max-height:54px}.onlytv-footer-copy{font-size:.82rem}.onlytv-footer-links{justify-content:flex-start;gap:8px}.onlytv-footer-links a{font-size:.76rem;padding:8px 10px}.onlytv-footer-bottom{flex-direction:column;font-size:.72rem}.app-page .main-shell .onlytv-footer{margin-bottom:104px}}


/* =========================================================
   ONLY TV TUMBES - Footer limpio sin card v2.2.6
   Pedido: quitar títulos, botones y card; dejar logo centrado + texto.
   ========================================================= */
.onlytv-footer,
.auth-page .onlytv-footer,
.app-page .main-shell .onlytv-footer{
    width:100%!important;
    max-width:100%!important;
    margin:36px auto 100px!important;
    padding:0 18px!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    color:#fff!important;
}
.auth-page .onlytv-footer{margin:18px auto 24px!important;}
.onlytv-footer-glow,
.onlytv-footer-brand,
.onlytv-footer-links,
.onlytv-footer-bottom,
.onlytv-footer-badge{display:none!important;}
.onlytv-footer-inner{
    width:min(620px,100%)!important;
    margin:0 auto!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    text-align:center!important;
}
.onlytv-footer-logo{
    display:block!important;
    width:min(230px,58vw)!important;
    max-height:78px!important;
    object-fit:contain!important;
    margin:0 auto!important;
    filter:drop-shadow(0 14px 28px rgba(0,0,0,.45))!important;
}
.onlytv-footer-copy{
    margin:0 auto!important;
    max-width:560px!important;
    color:#d7deea!important;
    font-size:.92rem!important;
    line-height:1.55!important;
    font-weight:700!important;
    letter-spacing:-.01em!important;
}
@media (max-width:760px){
    .onlytv-footer,
    .auth-page .onlytv-footer,
    .app-page .main-shell .onlytv-footer{
        margin:30px auto 104px!important;
        padding:0 22px!important;
    }
    .auth-page .onlytv-footer{margin:18px auto 24px!important;}
    .onlytv-footer-logo{width:min(205px,64vw)!important;max-height:72px!important;}
    .onlytv-footer-copy{font-size:.82rem!important;line-height:1.55!important;}
}


/* =========================================================
   ONLY TV TUMBES - Footer estilo página principal v2.2.7
   Replicado visualmente del footer público de onlytvtumbes.com.
   ========================================================= */
.onlytv-footer,
.auth-page .onlytv-footer,
.app-page .main-shell .onlytv-footer{
  position:relative!important;
  width:min(1120px,calc(100% - 34px))!important;
  margin:42px auto 112px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:30px!important;
  overflow:hidden!important;
  background:
    radial-gradient(circle at 12% 14%,rgba(255,181,55,.18),transparent 32%),
    radial-gradient(circle at 92% 2%,rgba(255,78,28,.14),transparent 30%),
    linear-gradient(145deg,rgba(18,20,27,.94),rgba(5,7,12,.98))!important;
  box-shadow:0 26px 70px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.06)!important;
  color:#fff!important;
}
.onlytv-footer-glow{display:block!important;position:absolute!important;inset:-1px!important;background:linear-gradient(90deg,rgba(255,183,45,.15),transparent 36%,rgba(255,80,24,.12))!important;pointer-events:none!important;}
.onlytv-footer-inner{position:relative!important;z-index:1!important;padding:26px!important;display:grid!important;grid-template-columns:1.15fr .82fr .9fr!important;gap:22px!important;align-items:start!important;text-align:left!important;}
.onlytv-footer-brand{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:12px!important;min-width:0!important;}
.onlytv-footer-logo{display:block!important;width:min(205px,50vw)!important;max-height:72px!important;object-fit:contain!important;filter:drop-shadow(0 14px 26px rgba(0,0,0,.46))!important;margin:0!important;}
.onlytv-footer-brand p{margin:0!important;color:#d7deea!important;line-height:1.55!important;font-weight:750!important;max-width:430px!important;}
.onlytv-footer-social{display:flex!important;flex-wrap:wrap!important;gap:8px!important;margin-top:2px!important;}
.onlytv-footer-social a,
.onlytv-footer-nav a{color:#f7f8fb!important;text-decoration:none!important;font-size:.82rem!important;font-weight:900!important;border:1px solid rgba(255,255,255,.105)!important;background:rgba(255,255,255,.045)!important;border-radius:999px!important;padding:9px 12px!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;}
.onlytv-footer-social a:hover,
.onlytv-footer-nav a:hover{border-color:rgba(255,177,45,.34)!important;background:rgba(255,122,0,.14)!important;}
.onlytv-footer-nav,
.onlytv-footer-contact{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:9px!important;}
.onlytv-footer-nav h4,
.onlytv-footer-contact h4{margin:0 0 6px!important;color:#fff!important;font-size:.94rem!important;font-weight:1000!important;letter-spacing:.02em!important;}
.onlytv-footer-contact p{margin:0!important;color:#c8d1df!important;font-size:.86rem!important;font-weight:760!important;line-height:1.35!important;}
.onlytv-footer-contact strong{color:#ffcf70!important;font-size:.85rem!important;font-weight:1000!important;margin-top:2px!important;}
.onlytv-footer-badges{grid-column:1/-1!important;display:flex!important;flex-wrap:wrap!important;gap:9px!important;padding-top:14px!important;border-top:1px solid rgba(255,255,255,.08)!important;}
.onlytv-footer-badges span{display:inline-flex!important;align-items:center!important;min-height:30px!important;padding:0 11px!important;border-radius:999px!important;background:rgba(255,255,255,.055)!important;border:1px solid rgba(255,255,255,.085)!important;color:#ffd27a!important;font-size:.72rem!important;font-weight:1000!important;letter-spacing:.025em!important;}
.onlytv-footer-bottom{grid-column:1/-1!important;display:flex!important;justify-content:flex-start!important;padding-top:2px!important;color:#9faabd!important;font-size:.78rem!important;font-weight:760!important;}
.onlytv-footer-copy{display:none!important;}
@media (max-width:760px){
  .onlytv-footer,
  .auth-page .onlytv-footer,
  .app-page .main-shell .onlytv-footer{width:calc(100% - 28px)!important;margin:34px auto 104px!important;border-radius:26px!important;}
  .onlytv-footer-inner{grid-template-columns:1fr!important;padding:22px!important;gap:18px!important;}
  .onlytv-footer-brand{align-items:flex-start!important;text-align:left!important;}
  .onlytv-footer-logo{width:min(196px,58vw)!important;max-height:68px!important;}
  .onlytv-footer-brand p{font-size:.88rem!important;}
  .onlytv-footer-nav{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;width:100%!important;}
  .onlytv-footer-nav h4{grid-column:1/-1!important;}
  .onlytv-footer-nav a{justify-content:center!important;text-align:center!important;font-size:.76rem!important;padding:9px 8px!important;}
  .onlytv-footer-contact{padding:14px!important;border-radius:20px!important;background:rgba(255,255,255,.035)!important;border:1px solid rgba(255,255,255,.07)!important;}
  .onlytv-footer-badges{gap:7px!important;}
  .onlytv-footer-badges span{font-size:.66rem!important;min-height:28px!important;padding:0 9px!important;}
  .onlytv-footer-bottom{font-size:.72rem!important;}
}


/* =========================================================
   ONLY TV TUMBES - Footer replicado desde web principal v2.2.8
   Sin card: footer real, ancho completo, responsive a celular.
   Basado en el código compartido por el usuario.
   ========================================================= */
.onlytv-main-footer.footer,
.footer.onlytv-main-footer{
  background:linear-gradient(180deg, rgba(0,0,0,.88) 0%, rgba(4,5,7,.98) 100%)!important;
  border-top:1px solid rgba(255,255,255,.06)!important;
  margin:42px 0 0!important;
  position:relative!important;
  z-index:1!important;
  backdrop-filter:blur(10px)!important;
  width:100%!important;
  max-width:none!important;
  border-radius:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
.onlytv-main-footer::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 18% 0%, rgba(232,64,12,.13), transparent 38%),
    radial-gradient(circle at 86% 18%, rgba(255,215,0,.07), transparent 35%)!important;
}
.onlytv-main-footer .footer-grid{
  position:relative!important;
  z-index:1!important;
  display:grid!important;
  grid-template-columns:1.4fr 1fr 1fr!important;
  gap:34px!important;
  padding:42px clamp(24px,5vw,60px) 0!important;
  max-width:1180px!important;
  margin:0 auto!important;
  box-sizing:border-box!important;
}
.onlytv-main-footer .footer-brand-block{min-width:0!important;}
.onlytv-main-footer .footer-logo{
  display:block!important;
  height:44px!important;
  width:auto!important;
  max-width:min(230px,58vw)!important;
  object-fit:contain!important;
  margin:0 0 14px!important;
  filter:drop-shadow(0 0 10px rgba(232,64,12,.55))!important;
}
.onlytv-main-footer .footer-logo-fallback{
  font-family:'Bebas Neue','Outfit',sans-serif!important;
  font-size:32px!important;
  letter-spacing:3px!important;
  margin-bottom:12px!important;
  color:#fff!important;
}
.onlytv-main-footer .footer-logo-fallback span{color:#e8400c!important;}
.onlytv-main-footer .footer-tagline{
  font-size:13px!important;
  color:#aaa!important;
  line-height:1.7!important;
  margin:0 0 18px!important;
  font-weight:500!important;
  max-width:430px!important;
}
.onlytv-main-footer .footer-social{
  display:flex!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}
.onlytv-main-footer .social-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  background:rgba(255,255,255,.06)!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:50px!important;
  padding:7px 14px!important;
  font-size:12px!important;
  color:#fff!important;
  text-decoration:none!important;
  transition:background .2s,border-color .2s,transform .2s!important;
  font-weight:800!important;
  box-shadow:none!important;
}
.onlytv-main-footer .social-btn:hover{
  background:rgba(255,255,255,.12)!important;
  border-color:#e8400c!important;
  transform:translateY(-2px)!important;
}
.onlytv-main-footer .footer-col h5{
  font-size:14px!important;
  font-weight:900!important;
  margin:0 0 14px!important;
  color:#fff!important;
  letter-spacing:.5px!important;
}
.onlytv-main-footer .footer-col ul{list-style:none!important;margin:0!important;padding:0!important;}
.onlytv-main-footer .footer-col li{margin-bottom:8px!important;}
.onlytv-main-footer .footer-col a{
  font-size:13px!important;
  color:#aaa!important;
  text-decoration:none!important;
  transition:color .2s,padding-left .2s!important;
  display:flex!important;
  align-items:center!important;
  gap:6px!important;
  font-weight:700!important;
}
.onlytv-main-footer .footer-col a:hover{color:#fff!important;padding-left:4px!important;}
.onlytv-main-footer .footer-contact p{
  color:#aaa!important;
  font-size:13px!important;
  margin:0 0 9px!important;
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  font-weight:700!important;
  line-height:1.45!important;
}
.onlytv-main-footer .footer-bottom{
  position:relative!important;
  z-index:1!important;
  border-top:1px solid rgba(255,255,255,.05)!important;
  padding:20px clamp(24px,5vw,60px) 22px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  gap:10px!important;
  text-align:center!important;
  max-width:1180px!important;
  margin:28px auto 0!important;
  box-sizing:border-box!important;
  color:rgba(255,255,255,.3)!important;
}
.onlytv-main-footer .footer-bottom p{
  color:rgba(255,255,255,.3)!important;
  font-size:12px!important;
  margin:0!important;
  font-weight:700!important;
}
.onlytv-main-footer .badges{
  display:flex!important;
  gap:8px!important;
  flex-wrap:wrap!important;
  justify-content:center!important;
}
.onlytv-main-footer .badge{
  background:rgba(255,255,255,.05)!important;
  border:1px solid rgba(255,255,255,.07)!important;
  border-radius:6px!important;
  padding:4px 10px!important;
  font-size:10px!important;
  color:rgba(255,255,255,.35)!important;
  letter-spacing:.5px!important;
  font-weight:900!important;
}
.app-page .main-shell .onlytv-main-footer{margin-bottom:0!important;padding-bottom:104px!important;}
.auth-page .onlytv-main-footer{margin-top:30px!important;}
@media(max-width:760px){
  .onlytv-main-footer.footer,
  .footer.onlytv-main-footer{
    margin-top:34px!important;
    width:100%!important;
    border-radius:0!important;
  }
  .onlytv-main-footer .footer-grid{
    grid-template-columns:1fr!important;
    gap:24px!important;
    padding:32px 18px 0!important;
  }
  .onlytv-main-footer .footer-logo{
    height:42px!important;
    max-width:64vw!important;
    margin-bottom:14px!important;
  }
  .onlytv-main-footer .footer-tagline{
    font-size:13px!important;
    line-height:1.65!important;
    max-width:100%!important;
  }
  .onlytv-main-footer .footer-social{gap:8px!important;}
  .onlytv-main-footer .social-btn{font-size:12px!important;padding:7px 13px!important;}
  .onlytv-main-footer .footer-col h5{font-size:14px!important;margin-bottom:12px!important;}
  .onlytv-main-footer .footer-col li{margin-bottom:9px!important;}
  .onlytv-main-footer .footer-col a,
  .onlytv-main-footer .footer-contact p{font-size:13px!important;}
  .onlytv-main-footer .footer-bottom{
    padding:18px 18px 22px!important;
    margin-top:24px!important;
  }
  .onlytv-main-footer .badges{gap:7px!important;}
  .onlytv-main-footer .badge{font-size:9.5px!important;padding:4px 8px!important;}
  .app-page .main-shell .onlytv-main-footer{padding-bottom:110px!important;}
}


/* =========================================================
   ONLY TV TUMBES - Footer dentro del reproductor v2.2.9b
   Base v2.2.8: el footer se coloca al final del detalle, debajo de contenido relacionado.
   ========================================================= */
.player-modal.is-movie-detail .player-footer-section{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  order:6!important;
  grid-column:1/-1!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  overflow:visible!important;
}
.player-modal.is-movie-detail .player-footer-section .onlytv-main-footer{
  margin:24px calc(-1 * clamp(18px,5vw,24px)) 0!important;
  width:calc(100% + (clamp(18px,5vw,24px) * 2))!important;
  max-width:none!important;
  border-radius:0!important;
  background:linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(2,3,6,.96) 36%, rgba(0,0,0,1) 100%)!important;
  border-top:1px solid rgba(255,255,255,.06)!important;
  padding-bottom:calc(86px + env(safe-area-inset-bottom))!important;
}
.player-modal.is-movie-detail .player-footer-section .onlytv-main-footer .footer-grid{
  max-width:100%!important;
}
.player-modal.is-movie-detail .player-footer-section .onlytv-main-footer .footer-bottom{
  max-width:100%!important;
}

/* =========================================================
   ONLY TV TUMBES - Footer limpio v2.4.6
   - Se elimina la columna Navegación del footer.
   - Se elimina el número telefónico visible.
   - Footer más compacto, sin espacios vacíos innecesarios.
   ========================================================= */
.onlytv-main-footer .footer-grid{
  grid-template-columns:minmax(0,1.35fr) minmax(230px,.65fr)!important;
  gap:24px!important;
}
.onlytv-main-footer .footer-col:not(.footer-contact){
  display:none!important;
}
.onlytv-main-footer .footer-bottom{
  margin-top:18px!important;
  padding-top:16px!important;
  padding-bottom:16px!important;
}
@media(max-width:760px){
  .onlytv-main-footer .footer-grid{
    grid-template-columns:1fr!important;
    gap:16px!important;
    padding:26px 20px 0!important;
  }
  .onlytv-main-footer .footer-logo{
    margin-bottom:10px!important;
  }
  .onlytv-main-footer .footer-tagline{
    margin-bottom:14px!important;
  }
  .onlytv-main-footer .footer-contact{
    margin-top:4px!important;
  }
  .onlytv-main-footer .footer-contact h5{
    margin-bottom:10px!important;
  }
  .onlytv-main-footer .footer-contact p{
    margin-bottom:7px!important;
  }
  .onlytv-main-footer .footer-bottom{
    margin-top:16px!important;
    padding:14px 20px 16px!important;
  }
}

/* =========================================================
   ONLY TV TUMBES - Footer global compacto v2.4.7
   Pedido:
   - Aplicar el mismo footer limpio a todas las vistas.
   - Sin Navegación, sin número telefónico visible.
   - Reducir espacios inferiores excesivos en app, login, diagnóstico y reproductores.
   ========================================================= */
.onlytv-main-footer .footer-col:not(.footer-contact){display:none!important;}
.onlytv-main-footer .footer-grid{
  grid-template-columns:minmax(0,1.28fr) minmax(180px,.58fr)!important;
  gap:18px!important;
  padding:24px clamp(20px,4vw,42px) 0!important;
  max-width:1080px!important;
}
.onlytv-main-footer .footer-logo{height:40px!important;margin:0 0 10px!important;}
.onlytv-main-footer .footer-tagline{margin:0 0 12px!important;line-height:1.55!important;}
.onlytv-main-footer .footer-social{gap:8px!important;}
.onlytv-main-footer .social-btn{padding:7px 13px!important;font-size:12px!important;min-height:34px!important;}
.onlytv-main-footer .footer-contact h5{margin:0 0 9px!important;}
.onlytv-main-footer .footer-contact p{margin:0 0 6px!important;font-size:12.5px!important;line-height:1.32!important;}
.onlytv-main-footer .footer-bottom{margin-top:12px!important;padding:11px clamp(20px,4vw,42px) 12px!important;gap:7px!important;}
.onlytv-main-footer .badges{gap:6px!important;}
.onlytv-main-footer .badge{font-size:9.5px!important;padding:4px 8px!important;line-height:1!important;}
.onlytv-main-footer .footer-bottom p{font-size:11.5px!important;line-height:1.25!important;}
.app-page .main-shell .onlytv-main-footer{margin-top:24px!important;margin-bottom:0!important;padding-bottom:calc(78px + env(safe-area-inset-bottom))!important;}
.auth-page .onlytv-main-footer,
.onlytv-main-footer.footer-diagnostico{margin-top:22px!important;margin-bottom:0!important;padding-bottom:calc(14px + env(safe-area-inset-bottom))!important;}
.player-modal .player-footer-section .onlytv-main-footer,
.player-modal .player-footer-section .footer.onlytv-main-footer{
  margin-top:10px!important;
  padding-bottom:calc(12px + env(safe-area-inset-bottom))!important;
  min-height:0!important;
}
.player-modal .player-footer-section .onlytv-main-footer .footer-grid{padding-top:20px!important;}
.player-modal .player-footer-section .onlytv-main-footer .footer-bottom{margin-top:10px!important;padding-bottom:10px!important;}
@media(max-width:760px){
  .onlytv-main-footer.footer,
  .footer.onlytv-main-footer{margin-top:24px!important;min-height:0!important;}
  .onlytv-main-footer .footer-grid{grid-template-columns:1fr!important;gap:10px!important;padding:18px 20px 0!important;}
  .onlytv-main-footer .footer-logo{height:38px!important;max-width:58vw!important;margin-bottom:8px!important;}
  .onlytv-main-footer .footer-tagline{font-size:12.5px!important;line-height:1.5!important;margin-bottom:10px!important;}
  .onlytv-main-footer .footer-social{gap:7px!important;}
  .onlytv-main-footer .social-btn{font-size:11.5px!important;padding:6px 11px!important;min-height:32px!important;}
  .onlytv-main-footer .footer-contact{margin-top:2px!important;}
  .onlytv-main-footer .footer-contact h5{font-size:13px!important;margin-bottom:8px!important;}
  .onlytv-main-footer .footer-contact p{font-size:12.2px!important;margin-bottom:5px!important;}
  .onlytv-main-footer .footer-bottom{margin-top:10px!important;padding:10px 20px 10px!important;gap:6px!important;}
  .onlytv-main-footer .badge{font-size:8.8px!important;padding:4px 7px!important;}
  .onlytv-main-footer .footer-bottom p{font-size:11px!important;}
  .app-page .main-shell .onlytv-main-footer{padding-bottom:calc(74px + env(safe-area-inset-bottom))!important;}
  .auth-page .onlytv-main-footer,
  .onlytv-main-footer.footer-diagnostico{padding-bottom:calc(10px + env(safe-area-inset-bottom))!important;}
}

/* =========================================================
   ONLY TV TUMBES - Footer compacto global v2.4.8
   Refuerzo para login/diagnóstico y respaldo antes del CSS móvil.
   ========================================================= */
.onlytv-main-footer.footer,
.footer.onlytv-main-footer{
  min-height:auto!important;
  height:auto!important;
  margin-bottom:0!important;
  padding-bottom:0!important;
}
.onlytv-main-footer .footer-col:not(.footer-contact){display:none!important;}
.onlytv-main-footer .footer-bottom{margin-bottom:0!important;min-height:0!important;}
@media(max-width:760px){
  body.app-page{padding-bottom:0!important;}
  .main-shell{min-height:auto!important;padding-bottom:calc(72px + env(safe-area-inset-bottom))!important;}
  .onlytv-main-footer.footer,
  .footer.onlytv-main-footer{margin-top:18px!important;padding-bottom:0!important;min-height:auto!important;}
  .app-page .main-shell .onlytv-main-footer,
  .auth-page .onlytv-main-footer,
  .onlytv-main-footer.footer-diagnostico{padding-bottom:0!important;margin-bottom:0!important;}
  .onlytv-main-footer .footer-grid{grid-template-columns:1fr!important;gap:8px!important;padding:16px 20px 0!important;}
  .onlytv-main-footer .footer-logo{height:34px!important;max-width:54vw!important;margin:0 0 6px!important;}
  .onlytv-main-footer .footer-tagline{font-size:12.2px!important;line-height:1.42!important;margin:0 0 8px!important;}
  .onlytv-main-footer .footer-social{gap:6px!important;margin:0!important;}
  .onlytv-main-footer .social-btn{min-height:30px!important;padding:5px 10px!important;font-size:11.2px!important;line-height:1!important;}
  .onlytv-main-footer .footer-contact{margin:8px 0 0!important;}
  .onlytv-main-footer .footer-contact h5{font-size:12.8px!important;margin:0 0 6px!important;}
  .onlytv-main-footer .footer-contact p{font-size:12px!important;line-height:1.24!important;margin:0 0 4px!important;}
  .onlytv-main-footer .footer-bottom{margin:8px auto 0!important;padding:8px 20px 8px!important;gap:5px!important;}
  .onlytv-main-footer .badges{gap:5px!important;}
  .onlytv-main-footer .badge{font-size:8.4px!important;padding:3px 6px!important;line-height:1!important;}
  .onlytv-main-footer .footer-bottom p{font-size:10.8px!important;line-height:1.18!important;}
  .player-modal.open .player-panel.premium-player,
  .player-modal.open .premium-player,
  .player-modal.open.is-live-detail .player-panel.premium-player,
  .player-modal.open.is-movie-detail .player-panel.premium-player,
  .player-modal.open.is-series-detail .player-panel.premium-player{padding-bottom:calc(6px + env(safe-area-inset-bottom))!important;}
  .player-modal.open .player-footer-section,
  .player-modal.open.is-live-detail .player-footer-section,
  .player-modal.open.is-movie-detail .player-footer-section,
  .player-modal.open.is-series-detail .player-footer-section{margin-bottom:0!important;padding-bottom:0!important;min-height:auto!important;overflow:hidden!important;}
  .player-modal.open .player-footer-section .onlytv-main-footer,
  .player-modal.open .player-footer-section .footer.onlytv-main-footer,
  .player-modal.open.is-live-detail .player-footer-section .onlytv-main-footer,
  .player-modal.open.is-live-detail .player-footer-section .footer.onlytv-main-footer,
  .player-modal.open.is-movie-detail .player-footer-section .onlytv-main-footer,
  .player-modal.open.is-movie-detail .player-footer-section .footer.onlytv-main-footer,
  .player-modal.open.is-series-detail .player-footer-section .onlytv-main-footer,
  .player-modal.open.is-series-detail .player-footer-section .footer.onlytv-main-footer{margin-top:8px!important;margin-bottom:0!important;padding-bottom:0!important;min-height:auto!important;}
}


/* =========================================================
   ONLY TV TUMBES - Footer sin espacio muerto v2.4.9
   Refuerzo final: corrige Inicio/Películas/Series/Mi lista y detalles.
   ========================================================= */
html, body{min-height:100%!important;}
.onlytv-main-footer.footer,
.footer.onlytv-main-footer{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin-bottom:0!important;
  padding-bottom:0!important;
  overflow:hidden!important;
}
.onlytv-main-footer .footer-grid{
  margin-bottom:0!important;
}
.onlytv-main-footer .footer-bottom{
  min-height:0!important;
  margin-bottom:0!important;
}

@media(max-width:767px){
  body.app-page{padding-bottom:0!important;min-height:auto!important;}
  .main-shell{
    min-height:0!important;
    padding-bottom:calc(70px + env(safe-area-inset-bottom))!important;
  }

  /* Footer normal de catálogo: compacto y sin franja negra larga. */
  main.main-shell > .onlytv-main-footer,
  .app-page .main-shell > .onlytv-main-footer.footer,
  .app-page .main-shell > .footer.onlytv-main-footer{
    margin:18px 0 0!important;
    padding:0!important;
    min-height:0!important;
    height:auto!important;
  }
  .onlytv-main-footer .footer-grid{
    padding:14px 20px 0!important;
    gap:7px!important;
  }
  .onlytv-main-footer .footer-logo{
    height:32px!important;
    max-width:52vw!important;
    margin:0 0 5px!important;
  }
  .onlytv-main-footer .footer-tagline{
    margin:0 0 7px!important;
    font-size:12px!important;
    line-height:1.35!important;
  }
  .onlytv-main-footer .footer-social{gap:6px!important;margin:0!important;}
  .onlytv-main-footer .social-btn{
    min-height:28px!important;
    padding:5px 10px!important;
    font-size:11px!important;
    line-height:1!important;
  }
  .onlytv-main-footer .footer-contact{
    margin:6px 0 0!important;
    padding:0!important;
    background:transparent!important;
    border:0!important;
  }
  .onlytv-main-footer .footer-contact h5{
    margin:0 0 5px!important;
    font-size:12.5px!important;
    line-height:1.1!important;
  }
  .onlytv-main-footer .footer-contact p{
    margin:0 0 3px!important;
    font-size:11.8px!important;
    line-height:1.18!important;
  }
  .onlytv-main-footer .footer-bottom{
    margin:7px auto 0!important;
    padding:7px 20px 7px!important;
    gap:4px!important;
    min-height:0!important;
  }
  .onlytv-main-footer .badges{gap:5px!important;line-height:1!important;}
  .onlytv-main-footer .badge{
    padding:3px 6px!important;
    font-size:8.2px!important;
    line-height:1!important;
    min-height:0!important;
  }
  .onlytv-main-footer .footer-bottom p{
    margin:0!important;
    font-size:10.4px!important;
    line-height:1.15!important;
  }

  /* Footer dentro de película/serie/TV: versión más corta para no crear vacío al final. */
  .player-modal.open .premium-player,
  .player-modal.open .player-panel.premium-player,
  .player-modal.open.is-live-detail .premium-player,
  .player-modal.open.is-movie-detail .premium-player,
  .player-modal.open.is-series-detail .premium-player{
    padding-bottom:calc(2px + env(safe-area-inset-bottom))!important;
    min-height:100dvh!important;
  }
  .player-modal.open .detail-grid,
  .player-modal.open.is-movie-detail .detail-grid,
  .player-modal.open.is-series-detail .detail-grid{
    padding-bottom:0!important;
    margin-bottom:0!important;
  }
  .player-modal.open .related-card,
  .player-modal.open .gallery-card,
  .player-modal.open .trailer-card,
  .player-modal.open .info-card,
  .player-modal.open .cast-card{
    margin-bottom:10px!important;
  }
  .player-modal.open .player-footer-section,
  .player-modal.open.is-live-detail .player-footer-section,
  .player-modal.open.is-movie-detail .player-footer-section,
  .player-modal.open.is-series-detail .player-footer-section{
    order:99!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    min-height:0!important;
    height:auto!important;
    overflow:hidden!important;
  }
  .player-modal.open .player-footer-section .onlytv-main-footer,
  .player-modal.open .player-footer-section .footer.onlytv-main-footer,
  .player-modal.open.is-live-detail .player-footer-section .onlytv-main-footer,
  .player-modal.open.is-live-detail .player-footer-section .footer.onlytv-main-footer,
  .player-modal.open.is-movie-detail .player-footer-section .onlytv-main-footer,
  .player-modal.open.is-movie-detail .player-footer-section .footer.onlytv-main-footer,
  .player-modal.open.is-series-detail .player-footer-section .onlytv-main-footer,
  .player-modal.open.is-series-detail .player-footer-section .footer.onlytv-main-footer{
    margin:4px 0 0!important;
    width:100%!important;
    padding:0!important;
    min-height:0!important;
    height:auto!important;
    border-radius:0!important;
  }
  .player-modal.open .player-footer-section .onlytv-main-footer .footer-grid,
  .player-modal.open.is-live-detail .player-footer-section .onlytv-main-footer .footer-grid,
  .player-modal.open.is-movie-detail .player-footer-section .onlytv-main-footer .footer-grid,
  .player-modal.open.is-series-detail .player-footer-section .onlytv-main-footer .footer-grid{
    padding:12px 20px 0!important;
    gap:6px!important;
  }
  .player-modal.open .player-footer-section .onlytv-main-footer .footer-contact,
  .player-modal.open.is-live-detail .player-footer-section .onlytv-main-footer .footer-contact,
  .player-modal.open.is-movie-detail .player-footer-section .onlytv-main-footer .footer-contact,
  .player-modal.open.is-series-detail .player-footer-section .onlytv-main-footer .footer-contact{
    display:none!important;
  }
  .player-modal.open .player-footer-section .onlytv-main-footer .footer-logo,
  .player-modal.open.is-live-detail .player-footer-section .onlytv-main-footer .footer-logo,
  .player-modal.open.is-movie-detail .player-footer-section .onlytv-main-footer .footer-logo,
  .player-modal.open.is-series-detail .player-footer-section .onlytv-main-footer .footer-logo{
    height:30px!important;
    margin-bottom:5px!important;
  }
  .player-modal.open .player-footer-section .onlytv-main-footer .footer-tagline,
  .player-modal.open.is-live-detail .player-footer-section .onlytv-main-footer .footer-tagline,
  .player-modal.open.is-movie-detail .player-footer-section .onlytv-main-footer .footer-tagline,
  .player-modal.open.is-series-detail .player-footer-section .onlytv-main-footer .footer-tagline{
    margin-bottom:6px!important;
    font-size:11.5px!important;
    line-height:1.28!important;
  }
  .player-modal.open .player-footer-section .onlytv-main-footer .footer-bottom,
  .player-modal.open.is-live-detail .player-footer-section .onlytv-main-footer .footer-bottom,
  .player-modal.open.is-movie-detail .player-footer-section .onlytv-main-footer .footer-bottom,
  .player-modal.open.is-series-detail .player-footer-section .onlytv-main-footer .footer-bottom{
    margin-top:6px!important;
    padding:6px 20px calc(6px + env(safe-area-inset-bottom))!important;
    gap:4px!important;
  }
}

/* ONLY TV TUMBES - Base carrusel canales TV v2.4.10 */
.live-category-strip{display:none;}

/* =========================================================
   ONLY TV TUMBES - TV en vivo v2.4.12
   En TV solo se usan Ver ahora y Mi lista.
   Se ocultan Continuar y Audio sin tocar HLS, FFmpeg ni reproducción.
   ========================================================= */
.player-modal.is-live-detail .player-cta-row{
    grid-template-columns:1fr 1fr!important;
}
.player-modal.is-live-detail #continueBtn,
.player-modal.is-live-detail #fullscreenBtn,
.player-modal.is-live-detail .tv-unused-action{
    display:none!important;
}
.player-modal.is-live-detail #toggleFavoriteBtn,
.player-modal.is-live-detail .tv-list-action{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:44px!important;
}


/* =========================================================
   ONLY TV TUMBES - TV en vivo v2.4.14
   Mantiene los botones Ver ahora / Mi lista fijos debajo del título
   aunque el reproductor ya esté reproduciendo. Evita que se peguen
   al card de Reparto principal.
   ========================================================= */
@media (max-width: 767px){
  .player-modal.open.is-live-detail.is-playing .player-cta-row{
    position:relative!important;
    order:initial!important;
    width:100%!important;
    max-width:100%!important;
    margin:12px 0 16px!important;
    padding:0!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
    z-index:5!important;
    box-sizing:border-box!important;
  }

  .player-modal.open.is-live-detail.is-playing .player-main-info{
    padding-bottom:18px!important;
  }

  .player-modal.open.is-live-detail.is-playing .player-hero{
    margin-bottom:10px!important;
    overflow:visible!important;
  }

  .player-modal.open.is-live-detail.is-playing .detail-grid{
    margin-top:4px!important;
  }
}

/* v2.4.15 — soporte estable de pantalla completa para TV, películas y series */
html.onlytv-video-fullscreen,
body.onlytv-video-fullscreen{background:#000!important;overflow:hidden!important;}
.player-modal.is-native-fullscreen,
.player-modal.is-native-fullscreen .premium-player,
.player-modal.is-native-fullscreen .player-panel{transform:none!important;animation:none!important;transition:none!important;}
.video-shell:fullscreen,
.video-shell:-webkit-full-screen{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#000!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important;overflow:hidden!important;}
#videoPlayer:fullscreen,
#videoPlayer:-webkit-full-screen,
.video-shell:fullscreen #videoPlayer,
.video-shell:-webkit-full-screen #videoPlayer{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;object-fit:contain!important;border-radius:0!important;background:#000!important;box-shadow:none!important;}
.video-shell:fullscreen .video-empty,
.video-shell:-webkit-full-screen .video-empty{display:none!important;}

/* v2.4.16 — recuperación de escala al salir de fullscreen */
html.onlytv-resetting-viewport,
body.onlytv-resetting-viewport{width:100%!important;min-width:0!important;max-width:100vw!important;overflow-x:hidden!important;transform:none!important;zoom:1!important;-webkit-text-size-adjust:100%!important;text-size-adjust:100%!important;}
html.onlytv-resetting-viewport .player-modal.open,
body.onlytv-resetting-viewport .player-modal.open{width:100vw!important;max-width:100vw!important;overflow-x:hidden!important;transform:none!important;}
html.onlytv-resetting-viewport .premium-player,
body.onlytv-resetting-viewport .premium-player{width:100%!important;max-width:100vw!important;left:0!important;right:0!important;transform:none!important;overflow-x:hidden!important;}
html.onlytv-resetting-viewport .video-shell:not(:fullscreen):not(:-webkit-full-screen),
body.onlytv-resetting-viewport .video-shell:not(:fullscreen):not(:-webkit-full-screen){height:auto!important;max-height:none!important;min-height:0!important;aspect-ratio:16/9!important;transform:none!important;zoom:1!important;}
html.onlytv-resetting-viewport #videoPlayer:not(:fullscreen):not(:-webkit-full-screen),
body.onlytv-resetting-viewport #videoPlayer:not(:fullscreen):not(:-webkit-full-screen){width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;object-fit:contain!important;transform:none!important;zoom:1!important;}

/* v2.4.18 — carpetas compactas de canales en Inicio TV */
.live-folder-strip.hidden{display:none!important;}
.live-folder-strip{width:100%;margin:0 0 18px;padding:14px;border-radius:22px;border:1px solid rgba(255,124,34,.18);background:rgba(6,9,16,.72);box-shadow:0 18px 42px rgba(0,0,0,.22);}
.live-folder-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px;}
.live-folder-head strong{color:#fff;font-size:.9rem;font-weight:900;text-transform:uppercase;letter-spacing:.1em;}
.live-folder-head small{color:#d6dbe7;font-size:.75rem;font-weight:800;}
.live-folder-track{display:flex;gap:10px;overflow-x:auto;padding:0 0 3px;scrollbar-width:none;}
.live-folder-track::-webkit-scrollbar{display:none;}
.live-folder-pill{flex:0 0 150px;border:1px solid rgba(255,255,255,.10);border-radius:16px;background:linear-gradient(145deg,rgba(17,22,32,.94),rgba(6,8,14,.96));color:#fff;padding:12px;text-align:left;display:grid;gap:6px;cursor:pointer;}
.live-folder-pill.active{border-color:rgba(255,174,44,.74);background:linear-gradient(145deg,rgba(93,61,10,.88),rgba(10,12,18,.98));}
.live-folder-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.08);color:#ffd074;}
.live-folder-pill strong{font-size:.8rem;line-height:1.1;font-weight:950;text-transform:uppercase;}
.live-folder-pill small{font-size:.7rem;color:#aeb5c2;font-weight:800;}


/* v2.4.18 — carpetas compactas: solo icono + título, sin cantidad de canales */
.live-folder-pill{flex:0 0 auto!important;width:auto!important;min-height:0!important;height:42px!important;border-radius:999px!important;padding:0 13px 0 9px!important;display:inline-flex!important;align-items:center!important;gap:8px!important;white-space:nowrap!important;}
.live-folder-icon{width:25px!important;height:25px!important;min-width:25px!important;border-radius:9px!important;font-size:.82rem!important;}
.live-folder-pill strong{display:block!important;font-size:.72rem!important;line-height:1!important;letter-spacing:.035em!important;white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;}
.live-folder-pill small{display:none!important;}


/* v2.4.19 — logos de canales sin recorte */
.media-card[data-type="live"] .poster img{object-fit:contain!important;object-position:center!important;padding:10px!important;box-sizing:border-box!important;background:#080b11!important;}
.media-card[data-type="live"] .poster{overflow:hidden!important;background:#080b11!important;}


/* v2.4.20 — cards de canales con fondo temático y fallback elegante */
.media-card[data-type="live"]{
    --live-card-start:#17303b;
    --live-card-end:#080b11;
    --live-card-glow:rgba(255,168,57,.34);
    position:relative;
    background:linear-gradient(180deg,var(--live-card-start),var(--live-card-end))!important;
    isolation:isolate;
}
.media-card[data-type="live"]::before{
    content:"";
    position:absolute;
    inset:0;
    background:
        radial-gradient(circle at 18% 14%,var(--live-card-glow),transparent 34%),
        linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,0) 34%),
        linear-gradient(180deg,var(--live-card-start),var(--live-card-end));
    z-index:0;
}
.media-card[data-type="live"] > *{position:relative;z-index:1;}
.media-card[data-type="live"] .poster{
    overflow:hidden!important;
    background:transparent!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
}
.media-card[data-type="live"] .poster::before{
    content:"";
    position:absolute;
    inset:10px 10px auto;
    height:48%;
    border-radius:18px;
    background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.03));
    border:1px solid rgba(255,255,255,.10);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.media-card[data-type="live"] .poster::after{
    background:linear-gradient(to top,rgba(5,7,12,.92),rgba(5,7,12,.16) 58%,rgba(5,7,12,0) 100%)!important;
}
.media-card[data-type="live"] .poster img{
    width:74%!important;
    height:42%!important;
    max-height:42%!important;
    object-fit:contain!important;
    object-position:center!important;
    padding:0!important;
    box-sizing:border-box!important;
    background:transparent!important;
    filter:drop-shadow(0 10px 22px rgba(0,0,0,.35));
}
.media-card[data-type="live"] .card-body{
    background:linear-gradient(to top,rgba(3,5,10,.94),rgba(3,5,10,.62) 56%,transparent 100%)!important;
}
.media-card[data-type="live"] .card-title,
.media-card[data-type="live"] .card-meta span{
    text-shadow:0 2px 10px rgba(0,0,0,.35);
}
.media-card[data-type="live"] .live-fallback{
    position:absolute;
    inset:16px 14px 48px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:12px;
    border-radius:18px;
    border:1px solid rgba(255,255,255,.12);
    background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.04));
    color:#f8fbff;
    font-weight:1000;
    font-size:.92rem;
    letter-spacing:.04em;
    line-height:1.06;
    text-transform:uppercase;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 12px 26px rgba(0,0,0,.22);
}
.media-card[data-type="live"].no-live-logo .card-title{display:-webkit-box!important;}


/* v2.4.21 — live cards limpios: sin cards internos, solo corazón favorito */
.media-card[data-type="live"] .type-badge,
.media-card[data-type="live"] .play-btn,
.media-card[data-type="live"] .card-body{display:none!important;}
.media-card[data-type="live"] .poster::before{display:none!important;content:none!important;}
.media-card[data-type="live"] .poster::after{background:linear-gradient(to top,rgba(5,7,12,.12),rgba(5,7,12,.02) 58%,rgba(5,7,12,0) 100%)!important;}
.media-card[data-type="live"] .poster img{width:78%!important;height:56%!important;max-height:56%!important;}
.media-card[data-type="live"] .fav-dot{top:8px!important;right:8px!important;}
.media-card[data-type="live"] .live-fallback{
    inset:14px 12px!important;
    border-radius:0!important;
    border:0!important;
    background:none!important;
    box-shadow:none!important;
    padding:8px!important;
    font-size:1rem!important;
    text-shadow:0 3px 12px rgba(0,0,0,.35);
}
.media-card[data-type="live"].no-live-logo .poster{display:flex!important;align-items:center!important;justify-content:center!important;}


/* v2.4.22 — corazón premium y fallback solo sin logo */
.fav-dot{
    left:auto!important;
    right:10px!important;
    top:10px!important;
    width:36px!important;
    height:36px!important;
    border-radius:999px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0!important;
    background:rgba(8,12,20,.52)!important;
    border:1px solid rgba(255,255,255,.16)!important;
    backdrop-filter:blur(8px);
    box-shadow:0 8px 20px rgba(0,0,0,.18);
}
.fav-dot .heart-icon{
    display:block;
    line-height:1;
    font-size:1rem;
    color:rgba(255,255,255,.96);
    transform:translateY(1px);
    text-shadow:0 2px 8px rgba(0,0,0,.28);
}
.fav-dot.active{
    background:linear-gradient(135deg,rgba(255,96,128,.34),rgba(255,48,92,.24))!important;
    border-color:rgba(255,88,120,.52)!important;
    box-shadow:0 10px 22px rgba(255,76,110,.22)!important;
}
.fav-dot.active .heart-icon{color:#ff4f71!important;}
.media-card[data-type="live"] .fav-dot{left:auto!important;right:8px!important;top:8px!important;}
.media-card[data-type="live"] .live-fallback{
    white-space:normal!important;
    word-break:break-word!important;
    overflow-wrap:anywhere!important;
}


/* v2.4.23 — favoritos de TV: clic estable, posición igual a películas y corazón SVG */
.fav-dot{
    z-index:40!important;
    pointer-events:auto!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:visible!important;
}
.fav-dot .heart-icon{
    width:58%!important;
    height:58%!important;
    display:block!important;
    transform:none!important;
    fill:rgba(255,255,255,.88)!important;
    stroke:rgba(255,255,255,.9)!important;
    stroke-width:1.25px!important;
    filter:drop-shadow(0 2px 6px rgba(0,0,0,.32));
}
.fav-dot.active .heart-icon{
    fill:#ff315f!important;
    stroke:#ff315f!important;
    filter:drop-shadow(0 4px 10px rgba(255,49,95,.42));
}
.media-card[data-type="live"] .fav-dot{
    top:10px!important;
    right:10px!important;
    left:auto!important;
    z-index:60!important;
}
.media-card[data-type="live"] .poster{z-index:1!important;}
.media-card[data-type="live"] .poster img{pointer-events:none!important;}
.media-card[data-type="live"] .live-fallback{pointer-events:none!important;}


/* v2.4.24 — corazón TV igual a películas */
.cards-grid .fav-dot,
.mobile-row-scroll .fav-dot{
  left:auto!important;
  right:10px!important;
  top:10px!important;
  z-index:8!important;
}
.media-card[data-type="live"] .fav-dot,
.mobile-row-scroll .media-card[data-type="live"] .fav-dot{
  left:auto!important;
  right:10px!important;
  top:10px!important;
  z-index:8!important;
}
.media-card[data-type="live"] .fav-dot svg,
.cards-grid .fav-dot svg,
.mobile-row-scroll .fav-dot svg{
  pointer-events:none;
}
.media-card[data-type="live"] .poster img{
  pointer-events:none;
}


/* v2.4.25 — fijar corazón TV arriba derecha exacto */
.cards-grid .media-card[data-type="live"] .fav-dot,
.mobile-row-scroll .media-card[data-type="live"] .fav-dot{
  inset:10px 10px auto auto!important;
  left:unset!important;
  right:10px!important;
  top:10px!important;
  bottom:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:99!important;
}


/* v2.4.26 — corazón TV estilo mock arriba derecha */
.cards-grid .media-card[data-type="live"] .fav-dot,
.mobile-row-scroll .media-card[data-type="live"] .fav-dot{
  inset:12px 12px auto auto!important;
  left:auto!important;
  right:12px!important;
  top:12px!important;
  bottom:auto!important;
  width:34px!important;
  height:34px!important;
  margin:0!important;
  padding:0!important;
  border-radius:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  transform:none!important;
  z-index:120!important;
}
.cards-grid .media-card[data-type="live"] .fav-dot .heart-icon,
.mobile-row-scroll .media-card[data-type="live"] .fav-dot .heart-icon{
  width:20px!important;
  height:20px!important;
  display:block!important;
  fill:#ffffff!important;
  stroke:#ffffff!important;
  stroke-width:1px!important;
  filter:drop-shadow(0 2px 6px rgba(0,0,0,.22))!important;
}
.cards-grid .media-card[data-type="live"] .fav-dot.active .heart-icon,
.mobile-row-scroll .media-card[data-type="live"] .fav-dot.active .heart-icon{
  fill:#ff315f!important;
  stroke:#ff315f!important;
  filter:drop-shadow(0 4px 10px rgba(255,49,95,.32))!important;
}


/* v2.4.27 — carpetas también en películas y series */
.live-folder-strip{scroll-margin-top:88px;}
.live-folder-head strong{white-space:nowrap;}


/* v2.4.28 — carpetas más compactas global */
.live-folder-strip{padding:10px!important;border-radius:18px!important;margin-bottom:12px!important;}
.live-folder-head{margin-bottom:7px!important;}
.live-folder-head strong{font-size:.78rem!important;letter-spacing:.095em!important;}
.live-folder-head small{font-size:.68rem!important;padding:7px 10px!important;border-radius:999px!important;}
.live-folder-track{gap:7px!important;padding-bottom:1px!important;}
.live-folder-pill{height:36px!important;padding:0 10px 0 7px!important;gap:6px!important;border-radius:999px!important;}
.live-folder-icon{width:22px!important;height:22px!important;min-width:22px!important;border-radius:8px!important;font-size:.72rem!important;}
.live-folder-pill strong{font-size:.66rem!important;letter-spacing:.03em!important;line-height:1!important;}

/* v2.4.39 — Top 10 TMDB disponible en IPTV */
.tmdb-top-strip.hidden{display:none!important;}
.tmdb-top-strip{width:100%;margin:0 0 14px;padding:16px 14px 12px;border-radius:22px;background:linear-gradient(180deg,rgba(13,16,27,.90),rgba(3,5,11,.96));border:1px solid rgba(255,255,255,.10);box-shadow:0 20px 48px rgba(0,0,0,.34);overflow:hidden;position:relative;}
.tmdb-top-strip:before{content:"";position:absolute;left:-6%;right:-6%;top:-65px;height:110px;border-radius:0 0 50% 50%;background:radial-gradient(circle at 50% 0%,rgba(229,9,20,.22),transparent 64%),linear-gradient(180deg,rgba(255,255,255,.05),transparent);border-bottom:1px solid rgba(229,9,20,.34);pointer-events:none;}
.tmdb-top-head{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin:0 0 12px;}
.tmdb-top-head small{display:block;color:#ffb45d;font-weight:900;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px;}
.tmdb-top-head strong{display:block;color:#fff;font-weight:950;font-size:1.1rem;letter-spacing:-.02em;}
.tmdb-top-head span{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);color:#dce3ee;border-radius:999px;padding:7px 10px;font-weight:900;font-size:.72rem;white-space:nowrap;}
.tmdb-top-track{display:flex;gap:14px;overflow-x:auto;overflow-y:hidden;padding:2px 2px 8px;scrollbar-width:none;position:relative;z-index:1;}
.tmdb-top-track::-webkit-scrollbar{display:none;}
.tmdb-top-loading{min-height:134px;display:grid;place-items:center;color:#c7ceda;font-weight:850;border:1px dashed rgba(255,255,255,.14);border-radius:16px;padding:16px;min-width:240px;background:rgba(255,255,255,.035);}
.tmdb-top-item{position:relative;flex:0 0 126px;width:126px;height:188px;background:transparent;color:#fff;border:0;padding:0;text-align:left;overflow:visible;}
.tmdb-rank-number{position:absolute;left:-7px;bottom:22px;z-index:3;font-size:4.8rem;line-height:.78;font-weight:1000;color:#05070d;-webkit-text-stroke:2.2px rgba(255,255,255,.92);text-shadow:0 4px 14px rgba(0,0,0,.65);letter-spacing:-.12em;}
.tmdb-rank-poster{position:absolute;right:0;top:0;width:94px;height:142px;border-radius:11px;overflow:hidden;background:#121722;box-shadow:0 14px 32px rgba(0,0,0,.48);border:1px solid rgba(255,255,255,.10);}
.tmdb-rank-poster img{width:100%;height:100%;object-fit:cover;display:block;}
.tmdb-rank-poster i{height:100%;display:grid;place-items:center;font-style:normal;font-weight:1000;color:rgba(255,255,255,.35);}
.tmdb-rank-meta{position:absolute;left:16px;right:0;bottom:0;z-index:4;display:block;}
.tmdb-rank-meta strong{display:block;font-size:.68rem;line-height:1.08;font-weight:950;text-shadow:0 2px 8px #000;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.tmdb-rank-meta small{display:block;color:#d1d7e1;font-size:.6rem;font-weight:850;margin-top:3px;text-shadow:0 2px 8px #000;}


/* v2.4.40 — Top 10 más compacto, número arriba y pegado al poster */
.tmdb-top-strip{margin-bottom:10px!important;padding-top:13px!important;padding-bottom:8px!important;border-radius:19px!important;}
.tmdb-top-head{margin-bottom:8px!important;}
.tmdb-top-track{gap:10px!important;padding-bottom:4px!important;}
.tmdb-top-item{flex-basis:112px!important;width:112px!important;height:158px!important;}
.tmdb-rank-poster{right:0!important;top:0!important;width:82px!important;height:124px!important;border-radius:10px!important;}
.tmdb-rank-number{left:0!important;bottom:30px!important;font-size:4.05rem!important;line-height:.72!important;-webkit-text-stroke:2px rgba(255,255,255,.96)!important;letter-spacing:-.15em!important;}
.tmdb-rank-meta{left:12px!important;bottom:0!important;}
.tmdb-rank-meta strong{font-size:.61rem!important;line-height:1.05!important;}
.tmdb-rank-meta small{font-size:.54rem!important;margin-top:2px!important;}


/* v2.4.41 — Top 10: número más arriba y sección también en series */
.tmdb-top-strip[data-top-section="series"]:before{background:radial-gradient(circle at 50% 0%,rgba(109,40,217,.25),transparent 64%),linear-gradient(180deg,rgba(255,255,255,.05),transparent)!important;border-bottom-color:rgba(139,92,246,.34)!important;}
.tmdb-top-strip[data-top-section="series"] .tmdb-top-head small{color:#c4b5fd!important;}
.tmdb-rank-number{bottom:42px!important;left:-1px!important;font-size:3.9rem!important;line-height:.7!important;letter-spacing:-.17em!important;}
.tmdb-rank-poster{right:-1px!important;}


/* v2.4.42 — Top 10 sin título y números premium */
.tmdb-rank-meta strong{display:none!important;}
.tmdb-rank-meta{left:24px!important;right:0!important;bottom:3px!important;text-align:center!important;}
.tmdb-rank-meta small{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:18px!important;
    padding:2px 6px!important;
    border-radius:999px!important;
    background:rgba(0,0,0,.42)!important;
    border:1px solid rgba(255,255,255,.10)!important;
    color:#f1f5fb!important;
    font-size:.58rem!important;
    font-weight:950!important;
    letter-spacing:.01em!important;
    text-shadow:0 2px 8px rgba(0,0,0,.75)!important;
    backdrop-filter:blur(6px);
}
.tmdb-rank-number{
    font-family:Impact,"Arial Black",system-ui,sans-serif!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    -webkit-text-stroke:2.45px rgba(255,255,255,.98)!important;
    text-shadow:
        0 0 0 #fff,
        0 4px 0 rgba(255,255,255,.12),
        0 10px 22px rgba(0,0,0,.78),
        -2px 0 12px rgba(229,9,20,.24)!important;
    filter:drop-shadow(0 7px 8px rgba(0,0,0,.55));
    transform:skewX(-4deg)!important;
}
.tmdb-top-strip[data-top-section="series"] .tmdb-rank-number{
    text-shadow:
        0 0 0 #fff,
        0 4px 0 rgba(255,255,255,.10),
        0 10px 22px rgba(0,0,0,.78),
        -2px 0 12px rgba(139,92,246,.28)!important;
}

/* v2.4.44 — Carrusel de partidos Liga 1 y Liga 2 sobre carpetas de canales */
.sports-fixture-strip.hidden{display:none!important;}
.sports-fixture-strip{width:100%;margin:0 0 14px;padding:15px 0 12px 14px;border-radius:20px;background:linear-gradient(180deg,rgba(10,18,14,.94),rgba(2,6,6,.97));border:1px solid rgba(255,255,255,.10);box-shadow:0 20px 48px rgba(0,0,0,.34);overflow:hidden;position:relative;}
.sports-fixture-strip:before{content:"";position:absolute;left:-10%;right:-10%;top:-72px;height:120px;border-radius:0 0 50% 50%;background:radial-gradient(circle at 50% 0%,rgba(255,122,24,.25),transparent 64%),linear-gradient(180deg,rgba(255,255,255,.055),transparent);border-bottom:1px solid rgba(255,122,24,.32);pointer-events:none;}
.sports-fixture-head{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin:0 0 10px;padding-right:14px;}
.sports-fixture-head small{display:block;color:#ffb45d;font-weight:950;font-size:.62rem;letter-spacing:.095em;text-transform:uppercase;margin-bottom:3px;}
.sports-fixture-head strong{display:block;color:#fff;font-weight:1000;font-size:1.02rem;letter-spacing:-.02em;}
.sports-fixture-head span{background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);color:#eef3fa;border-radius:999px;padding:6px 9px;font-weight:950;font-size:.66rem;white-space:nowrap;}
.sports-fixture-track{display:flex;gap:10px;overflow-x:auto;overflow-y:hidden;padding:0 14px 2px 0;scrollbar-width:none;position:relative;z-index:1;}
.sports-fixture-track::-webkit-scrollbar{display:none;}
.sports-fixture-loading{min-height:118px;display:grid;place-items:center;color:#d5ddeb;font-weight:900;border:1px dashed rgba(255,255,255,.14);border-radius:17px;padding:16px;min-width:250px;background:rgba(255,255,255,.04);}
.sports-fixture-card{position:relative;flex:0 0 242px;width:242px;min-height:126px;border:1px solid rgba(255,255,255,.10);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.085),rgba(255,255,255,.03));box-shadow:0 18px 36px rgba(0,0,0,.35);padding:10px 10px 9px;overflow:hidden;}
.sports-fixture-card:after{content:"";position:absolute;inset:auto -20px -48px auto;width:120px;height:120px;border-radius:50%;background:rgba(255,122,24,.12);filter:blur(10px);pointer-events:none;}
.sports-fixture-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px;position:relative;z-index:1;}
.sports-fixture-top span{height:22px;display:inline-flex;align-items:center;padding:0 8px;border-radius:999px;background:linear-gradient(135deg,#ff8a18,#ff4516);color:#fff;font-size:.64rem;font-weight:1000;letter-spacing:.02em;box-shadow:0 7px 14px rgba(255,90,18,.22);}
.sports-fixture-top em{font-style:normal;color:#dce4ef;font-size:.62rem;font-weight:950;text-transform:uppercase;}
.sports-fixture-body{display:grid;grid-template-columns:1fr 62px 1fr;align-items:center;gap:8px;position:relative;z-index:1;}
.sports-team{min-width:0;display:grid;justify-items:center;gap:5px;text-align:center;}
.sports-team-badge{width:40px;height:40px;border-radius:13px;background:rgba(255,255,255,.88);border:1px solid rgba(255,255,255,.18);display:grid;place-items:center;overflow:hidden;box-shadow:0 8px 18px rgba(0,0,0,.30);}
.sports-team-badge img{max-width:90%;max-height:90%;object-fit:contain;display:block;}
.sports-team-badge b{font-size:1rem;}
.sports-team strong{max-width:78px;color:#fff;font-size:.68rem;font-weight:1000;line-height:1.05;letter-spacing:.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.sports-fixture-center{min-width:0;display:grid;place-items:center;text-align:center;gap:2px;}
.sports-fixture-center b{display:inline-flex;align-items:center;justify-content:center;min-width:54px;min-height:27px;border-radius:999px;background:rgba(0,0,0,.44);border:1px solid rgba(255,255,255,.12);color:#fff;font-size:.72rem;font-weight:1000;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);}
.sports-fixture-center small{color:#ffcf9a;font-size:.52rem;font-weight:950;text-transform:uppercase;letter-spacing:.04em;}
.sports-fixture-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:9px;position:relative;z-index:1;}
.sports-fixture-bottom span{min-width:0;color:#aeb9c8;font-size:.58rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sports-fixture-open{height:25px;border:0;border-radius:999px;padding:0 9px;background:rgba(255,255,255,.10);color:#fff;font-size:.58rem;font-weight:1000;white-space:nowrap;box-shadow:inset 0 0 0 1px rgba(255,255,255,.10);}
.sports-fixture-open:active{transform:scale(.97);}


/* =========================================================
   ONLY TV TUMBES - Login cliente limpio v2.4.63
   Objetivo: login móvil profesional, sin footer ni textos comerciales.
   No cambia validación, sesiones ni API IPTV.
   ========================================================= */
.auth-page{
  min-height:100vh!important;
  background:
    radial-gradient(circle at 16% 0%,rgba(255,136,18,.18),transparent 32%),
    radial-gradient(circle at 88% 8%,rgba(9,31,70,.42),transparent 34%),
    linear-gradient(180deg,#071426 0%,#020307 46%,#000 100%)!important;
  overflow-x:hidden!important;
}
.auth-page .auth-bg{opacity:.70!important;}
.auth-page .auth-bg .grid-glow{opacity:.34!important;}
.auth-page .auth-bg .blob-a{background:rgba(255,122,0,.10)!important;filter:blur(18px)!important;}
.auth-page .auth-bg .blob-b{background:rgba(7,20,38,.32)!important;filter:blur(18px)!important;}
.login-only-shell{
  width:100%!important;
  min-height:100vh!important;
  max-width:620px!important;
  margin:0 auto!important;
  padding:clamp(22px,6vh,62px) 18px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.login-client-card{
  width:100%!important;
  max-width:520px!important;
  border-radius:32px!important;
  padding:34px 28px 30px!important;
  background:
    radial-gradient(circle at 12% 0%,rgba(255,149,28,.14),transparent 35%),
    linear-gradient(145deg,rgba(7,20,38,.92),rgba(2,3,7,.96))!important;
  border:1px solid rgba(255,122,0,.16)!important;
  box-shadow:0 28px 90px rgba(0,0,0,.58), inset 0 1px 0 rgba(255,255,255,.05)!important;
  backdrop-filter:blur(22px)!important;
  overflow:hidden!important;
  position:relative!important;
}
.login-client-card:before{
  content:""!important;
  position:absolute!important;
  left:32px!important;
  right:32px!important;
  top:0!important;
  height:3px!important;
  border-radius:0 0 999px 999px!important;
  background:linear-gradient(90deg,transparent,#ffcf00,#ff5a17,transparent)!important;
  opacity:.9!important;
}
.login-logo-only{
  justify-content:center!important;
  margin:0 0 26px!important;
  text-align:center!important;
}
.login-logo-only .login-logo-img,
.login-client-card .login-logo-img{
  width:min(248px,72vw)!important;
  max-width:100%!important;
  max-height:92px!important;
  object-fit:contain!important;
  object-position:center!important;
  margin:0 auto!important;
  filter:drop-shadow(0 16px 24px rgba(0,0,0,.48))!important;
}
.login-access-pill{
  width:max-content!important;
  max-width:100%!important;
  margin:0 0 14px!important;
  padding:8px 13px!important;
  border-radius:999px!important;
  color:#ffd98a!important;
  background:rgba(255,122,0,.12)!important;
  border:1px solid rgba(255,207,0,.22)!important;
  font-size:.75rem!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:.075em!important;
  text-transform:uppercase!important;
}
.login-client-card h2{
  margin:0 0 10px!important;
  color:#fff!important;
  font-size:clamp(2rem,8vw,3.25rem)!important;
  line-height:1.02!important;
  letter-spacing:-.055em!important;
  font-weight:950!important;
}
.login-client-card .muted{
  max-width:380px!important;
  margin:0!important;
  color:#c6cedb!important;
  font-size:1rem!important;
  line-height:1.55!important;
  font-weight:600!important;
}
.login-client-card .login-form{
  margin-top:26px!important;
  gap:17px!important;
}
.login-client-card .login-form label span{
  color:#eef4ff!important;
  font-size:.88rem!important;
  font-weight:900!important;
  margin-bottom:8px!important;
}
.login-client-card .login-form input{
  height:56px!important;
  border-radius:18px!important;
  background:rgba(0,0,0,.26)!important;
  border:1px solid rgba(255,255,255,.12)!important;
  padding:0 18px!important;
  color:#fff!important;
  font-size:.98rem!important;
  font-weight:700!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03)!important;
}
.login-client-card .login-form input::placeholder{color:rgba(255,255,255,.38)!important;font-weight:650!important;}
.login-client-card .login-form input:focus{
  border-color:rgba(255,122,0,.58)!important;
  box-shadow:0 0 0 4px rgba(255,122,0,.10), inset 0 1px 0 rgba(255,255,255,.04)!important;
}
.login-client-card .primary-btn{
  width:100%!important;
  min-height:58px!important;
  margin-top:14px!important;
  border-radius:18px!important;
  font-size:1rem!important;
  letter-spacing:.01em!important;
  background:linear-gradient(135deg,#ffcf00,#ff7a00 54%,#d90416)!important;
  color:#160700!important;
  box-shadow:0 18px 40px rgba(255,91,24,.28), inset 0 1px 0 rgba(255,255,255,.20)!important;
}
.auth-page .onlytv-main-footer,
.auth-page .onlytv-footer,
.auth-page footer{
  display:none!important;
}
.auth-page .auth-brand-card,
.auth-page .auth-note{
  display:none!important;
}

@media(max-width:760px){
  .auth-page{
    background:
      radial-gradient(circle at 50% -12%,rgba(255,122,0,.18),transparent 36%),
      linear-gradient(180deg,#071426 0%,#020307 48%,#000 100%)!important;
  }
  .login-only-shell{
    min-height:100svh!important;
    padding:22px 16px calc(22px + env(safe-area-inset-bottom))!important;
    align-items:center!important;
  }
  .login-client-card{
    border-radius:30px!important;
    padding:30px 22px 26px!important;
  }
  .login-logo-only{margin-bottom:22px!important;}
  .login-client-card .login-logo-img{width:min(230px,72vw)!important;max-height:84px!important;}
  .login-client-card h2{font-size:2.45rem!important;}
  .login-client-card .muted{font-size:.96rem!important;line-height:1.5!important;}
  .login-client-card .login-form{margin-top:24px!important;gap:15px!important;}
  .login-client-card .login-form input{height:54px!important;border-radius:17px!important;}
  .login-client-card .primary-btn{min-height:56px!important;border-radius:18px!important;}
}

@media(max-width:390px){
  .login-client-card{padding:28px 20px 24px!important;border-radius:28px!important;}
  .login-client-card h2{font-size:2.18rem!important;}
  .login-client-card .muted{font-size:.90rem!important;}
  .login-client-card .login-logo-img{width:min(206px,70vw)!important;}
}


/* =========================================================
   ONLY TV TUMBES - Login cliente premium v2.4.64
   Objetivo: card más compacto + fondo animado con portadas TMDB.
   ========================================================= */
.auth-page{
  position:relative!important;
}
.auth-page .auth-bg{
  opacity:1!important;
}
.auth-poster-wall{
  position:absolute!important;
  inset:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:18px!important;
  padding:18px 0!important;
  opacity:.28!important;
  z-index:0!important;
  transform:scale(1.04)!important;
}
.auth-poster-wall::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(180deg,rgba(4,10,20,.84),rgba(3,6,12,.58) 24%,rgba(2,4,8,.42) 48%,rgba(1,2,4,.84) 100%)!important;
  z-index:2!important;
}
.auth-poster-wall::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:radial-gradient(circle at center,transparent 0%,rgba(0,0,0,.12) 55%,rgba(0,0,0,.48) 100%)!important;
  z-index:2!important;
}
.auth-poster-row{
  position:relative!important;
  overflow:hidden!important;
  flex:1 1 0!important;
}
.auth-poster-track{
  position:absolute!important;
  inset:0 auto 0 0!important;
  display:flex!important;
  align-items:center!important;
  gap:14px!important;
  width:max-content!important;
  animation:authPosterSlide 48s linear infinite!important;
}
.auth-poster-row-2 .auth-poster-track{animation-duration:56s!important;animation-direction:reverse!important;}
.auth-poster-row-3 .auth-poster-track{animation-duration:64s!important;}
.auth-poster-item{
  width:112px!important;
  height:168px!important;
  border-radius:18px!important;
  overflow:hidden!important;
  flex:0 0 auto!important;
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 10px 24px rgba(0,0,0,.24)!important;
  background:rgba(255,255,255,.04)!important;
}
.auth-poster-item img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
@keyframes authPosterSlide{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}
.auth-page .auth-bg .blob-a{z-index:3!important;}
.auth-page .auth-bg .blob-b{z-index:3!important;}
.auth-page .auth-bg .grid-glow{z-index:3!important;}
.login-only-shell{
  max-width:500px!important;
  padding:clamp(18px,5.2vh,46px) 16px!important;
}
.login-client-card{
  max-width:430px!important;
  border-radius:28px!important;
  padding:24px 22px 22px!important;
  background:
    radial-gradient(circle at 12% 0%,rgba(255,149,28,.12),transparent 32%),
    linear-gradient(145deg,rgba(6,16,31,.82),rgba(1,3,8,.90))!important;
  box-shadow:0 22px 64px rgba(0,0,0,.54), inset 0 1px 0 rgba(255,255,255,.05)!important;
}
.login-client-card:before{
  left:26px!important;
  right:26px!important;
  height:4px!important;
}
.login-logo-only{margin:0 0 18px!important;}
.login-logo-only .login-logo-img,
.login-client-card .login-logo-img{
  width:min(206px,60vw)!important;
  max-height:74px!important;
}
.login-access-pill{
  margin:0 0 10px!important;
  padding:7px 12px!important;
  font-size:.70rem!important;
}
.login-client-card h2{
  margin:0 0 8px!important;
  font-size:clamp(1.72rem,7vw,2.55rem)!important;
  line-height:1.02!important;
}
.login-client-card .muted{
  max-width:340px!important;
  font-size:.88rem!important;
  line-height:1.42!important;
}
.login-client-card .login-form{
  margin-top:18px!important;
  gap:13px!important;
}
.login-client-card .login-form label span{
  font-size:.82rem!important;
  margin-bottom:6px!important;
}
.login-client-card .login-form input{
  height:50px!important;
  border-radius:16px!important;
  padding:0 16px!important;
  font-size:.92rem!important;
}
.login-client-card .primary-btn{
  min-height:52px!important;
  margin-top:10px!important;
  border-radius:16px!important;
  font-size:.95rem!important;
}
@media(max-width:760px){
  .auth-page{
    background:
      radial-gradient(circle at 50% -12%,rgba(255,122,0,.14),transparent 34%),
      linear-gradient(180deg,#071426 0%,#020307 48%,#000 100%)!important;
  }
  .auth-poster-wall{
    gap:12px!important;
    padding:10px 0!important;
    opacity:.26!important;
  }
  .auth-poster-item{
    width:88px!important;
    height:132px!important;
    border-radius:15px!important;
  }
  .login-only-shell{
    min-height:100svh!important;
    max-width:420px!important;
    align-items:center!important;
    justify-content:center!important;
    padding:18px 14px calc(16px + env(safe-area-inset-bottom))!important;
  }
  .login-client-card{
    max-width:372px!important;
    border-radius:24px!important;
    padding:22px 18px 20px!important;
  }
  .login-logo-only{margin-bottom:16px!important;}
  .login-client-card .login-logo-img{width:min(180px,56vw)!important;max-height:64px!important;}
  .login-client-card h2{font-size:2rem!important;}
  .login-client-card .muted{font-size:.84rem!important;line-height:1.38!important;max-width:300px!important;}
  .login-client-card .login-form{margin-top:16px!important;gap:12px!important;}
  .login-client-card .login-form input{height:48px!important;border-radius:15px!important;}
  .login-client-card .primary-btn{min-height:50px!important;border-radius:15px!important;font-size:.92rem!important;}
}
@media(max-width:390px){
  .auth-poster-item{width:78px!important;height:117px!important;}
  .login-client-card{max-width:344px!important;padding:20px 16px 18px!important;border-radius:22px!important;}
  .login-client-card .login-logo-img{width:min(166px,54vw)!important;max-height:58px!important;}
  .login-client-card h2{font-size:1.82rem!important;}
  .login-access-pill{font-size:.65rem!important;}
  .login-client-card .muted{font-size:.80rem!important;}
}


/* =========================================================
   ONLY TV TUMBES - Login móvil ultra compacto v2.4.65
   Objetivo: reducir mucho el card y mostrar mejor los pósters TMDB.
   ========================================================= */
.auth-page{
  background:#020307!important;
}
.auth-page .auth-bg{
  opacity:1!important;
}
.auth-page .auth-bg .grid-glow,
.auth-page .auth-bg .blob-a,
.auth-page .auth-bg .blob-b{
  display:none!important;
}
.auth-poster-wall{
  opacity:.92!important;
  gap:10px!important;
  padding:10px 0!important;
  transform:none!important;
}
.auth-poster-wall::before,
.auth-poster-wall::after{
  display:none!important;
}
.auth-poster-track{
  gap:10px!important;
}
.auth-poster-row-1 .auth-poster-track{animation-duration:42s!important;}
.auth-poster-row-2 .auth-poster-track{animation-duration:48s!important;}
.auth-poster-row-3 .auth-poster-track{animation-duration:54s!important;}
.auth-poster-item{
  width:96px!important;
  height:144px!important;
  border-radius:14px!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 8px 18px rgba(0,0,0,.18)!important;
}
.login-only-shell{
  max-width:420px!important;
  padding:12px 14px!important;
  align-items:center!important;
  justify-content:center!important;
}
.login-client-card{
  max-width:336px!important;
  border-radius:22px!important;
  padding:16px 16px 15px!important;
  background:rgba(3,8,16,.88)!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:0 18px 44px rgba(0,0,0,.48)!important;
  backdrop-filter:blur(8px)!important;
}
.login-client-card:before{
  left:18px!important;
  right:18px!important;
  height:3px!important;
}
.login-logo-only{
  margin:0 0 12px!important;
}
.login-logo-only .login-logo-img,
.login-client-card .login-logo-img{
  width:min(150px,50vw)!important;
  max-height:52px!important;
}
.login-access-pill{
  margin:0 0 8px!important;
  padding:6px 10px!important;
  font-size:.60rem!important;
}
.login-client-card h2{
  margin:0 0 6px!important;
  font-size:clamp(1.45rem,5.6vw,2rem)!important;
  letter-spacing:-.04em!important;
}
.login-client-card .muted{
  max-width:260px!important;
  font-size:.76rem!important;
  line-height:1.34!important;
}
.login-client-card .login-form{
  margin-top:12px!important;
  gap:10px!important;
}
.login-client-card .login-form label span{
  font-size:.77rem!important;
  margin-bottom:5px!important;
}
.login-client-card .login-form input{
  height:42px!important;
  border-radius:13px!important;
  padding:0 14px!important;
  font-size:.86rem!important;
}
.login-client-card .primary-btn{
  min-height:44px!important;
  margin-top:6px!important;
  border-radius:14px!important;
  font-size:.88rem!important;
}
@media(max-width:760px){
  .login-only-shell{
    min-height:100svh!important;
    max-width:380px!important;
    padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important;
  }
  .auth-poster-wall{
    opacity:.96!important;
    gap:8px!important;
    padding:8px 0!important;
  }
  .auth-poster-item{
    width:82px!important;
    height:123px!important;
    border-radius:12px!important;
  }
  .login-client-card{
    max-width:300px!important;
    padding:14px 14px 13px!important;
    border-radius:20px!important;
  }
  .login-logo-only .login-logo-img,
  .login-client-card .login-logo-img{
    width:min(136px,48vw)!important;
    max-height:48px!important;
  }
  .login-client-card h2{font-size:1.64rem!important;}
  .login-client-card .muted{font-size:.72rem!important;max-width:236px!important;}
  .login-client-card .login-form input{height:40px!important;border-radius:12px!important;}
  .login-client-card .primary-btn{min-height:42px!important;font-size:.84rem!important;}
}
@media(max-width:390px){
  .auth-poster-item{
    width:72px!important;
    height:108px!important;
  }
  .login-client-card{
    max-width:282px!important;
    padding:13px 12px 12px!important;
  }
  .login-logo-only .login-logo-img,
  .login-client-card .login-logo-img{
    width:min(126px,46vw)!important;
    max-height:44px!important;
  }
  .login-client-card h2{font-size:1.54rem!important;}
  .login-client-card .muted{font-size:.69rem!important;}
  .login-client-card .login-form label span{font-size:.74rem!important;}
  .login-client-card .login-form input{height:38px!important;font-size:.83rem!important;}
  .login-client-card .primary-btn{min-height:40px!important;}
}


/* =========================================================
   ONLY TV TUMBES - Login móvil estático v2.4.66
   Objetivo: sin scroll, fondo más lleno de pósters y degradado azul marino suave.
   ========================================================= */
html,
body.auth-page{
  height:100svh!important;
  min-height:100svh!important;
  overflow:hidden!important;
}
body.auth-page{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  overscroll-behavior:none!important;
  touch-action:manipulation!important;
  background:#02050b!important;
}
.auth-page .auth-bg{
  position:fixed!important;
  inset:0!important;
  overflow:hidden!important;
}
.auth-poster-wall{
  inset:-2% -4%!important;
  gap:6px!important;
  padding:6px!important;
  opacity:1!important;
  transform:scale(1.03)!important;
}
.auth-poster-wall::before{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    linear-gradient(180deg,rgba(5,24,58,.34),rgba(3,14,34,.20) 30%,rgba(2,8,20,.16) 55%,rgba(1,5,12,.34) 100%),
    radial-gradient(circle at 50% 50%,rgba(0,30,90,.12),transparent 62%)!important;
  z-index:3!important;
  pointer-events:none!important;
}
.auth-poster-wall::after{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(90deg,rgba(1,4,10,.18),transparent 12%,transparent 88%,rgba(1,4,10,.18))!important;
  z-index:3!important;
  pointer-events:none!important;
}
.auth-poster-row{
  flex:1 1 0!important;
  min-height:0!important;
}
.auth-poster-track{
  gap:8px!important;
  height:100%!important;
  align-items:stretch!important;
}
.auth-poster-row-1 .auth-poster-track{animation-duration:36s!important;}
.auth-poster-row-2 .auth-poster-track{animation-duration:43s!important;animation-direction:reverse!important;}
.auth-poster-row-3 .auth-poster-track{animation-duration:48s!important;}
.auth-poster-row-4 .auth-poster-track{animation-duration:40s!important;animation-direction:reverse!important;}
.auth-poster-row-5 .auth-poster-track{animation-duration:52s!important;}
.auth-poster-item{
  width:76px!important;
  height:100%!important;
  min-height:104px!important;
  border-radius:12px!important;
  box-shadow:0 10px 24px rgba(0,0,0,.24)!important;
  background:#0c1420!important;
}
.auth-poster-item img{
  object-position:center!important;
}
.login-only-shell{
  position:relative!important;
  z-index:4!important;
  width:100%!important;
  max-width:360px!important;
  min-height:100svh!important;
  max-height:100svh!important;
  padding:10px 12px calc(10px + env(safe-area-inset-bottom))!important;
  overflow:hidden!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.login-client-card{
  max-width:286px!important;
  width:100%!important;
  padding:12px 12px 11px!important;
  border-radius:20px!important;
  background:linear-gradient(180deg,rgba(2,8,22,.74),rgba(2,6,16,.86))!important;
  border:1px solid rgba(255,175,54,.12)!important;
  box-shadow:0 20px 48px rgba(0,0,0,.54), inset 0 1px 0 rgba(255,255,255,.04)!important;
  backdrop-filter:blur(10px)!important;
}
.login-client-card:before{
  left:16px!important;
  right:16px!important;
  height:2px!important;
  opacity:.92!important;
}
.login-logo-only{margin:0 0 10px!important;}
.login-logo-only .login-logo-img,
.login-client-card .login-logo-img{
  width:min(124px,42vw)!important;
  max-height:42px!important;
}
.login-access-pill{
  margin:0 0 6px!important;
  padding:5px 9px!important;
  font-size:.56rem!important;
}
.login-client-card h2{
  margin:0 0 5px!important;
  font-size:1.44rem!important;
}
.login-client-card .muted{
  max-width:230px!important;
  font-size:.68rem!important;
  line-height:1.3!important;
}
.login-client-card .login-form{
  margin-top:10px!important;
  gap:9px!important;
}
.login-client-card .login-form label span{
  font-size:.72rem!important;
  margin-bottom:4px!important;
}
.login-client-card .login-form input{
  height:36px!important;
  border-radius:11px!important;
  padding:0 12px!important;
  font-size:.79rem!important;
}
.login-client-card .primary-btn{
  min-height:38px!important;
  margin-top:4px!important;
  border-radius:12px!important;
  font-size:.80rem!important;
}
@media(max-width:760px){
  .auth-poster-wall{
    inset:-1% -5%!important;
    gap:5px!important;
    padding:5px!important;
  }
  .auth-poster-track{gap:6px!important;}
  .auth-poster-item{
    width:70px!important;
    min-height:96px!important;
    border-radius:11px!important;
  }
  .login-only-shell{
    max-width:332px!important;
    padding:8px 10px calc(8px + env(safe-area-inset-bottom))!important;
  }
  .login-client-card{
    max-width:266px!important;
    padding:11px 11px 10px!important;
    border-radius:18px!important;
  }
  .login-logo-only .login-logo-img,
  .login-client-card .login-logo-img{
    width:min(114px,40vw)!important;
    max-height:38px!important;
  }
  .login-client-card h2{font-size:1.36rem!important;}
  .login-client-card .muted{font-size:.65rem!important;max-width:212px!important;}
  .login-client-card .login-form input{height:34px!important;font-size:.76rem!important;}
  .login-client-card .primary-btn{min-height:36px!important;font-size:.78rem!important;}
}
@media(max-width:390px){
  .auth-poster-item{
    width:64px!important;
    min-height:90px!important;
  }
  .login-client-card{
    max-width:252px!important;
    padding:10px 10px 9px!important;
  }
  .login-logo-only .login-logo-img,
  .login-client-card .login-logo-img{
    width:min(106px,38vw)!important;
    max-height:35px!important;
  }
  .login-client-card h2{font-size:1.28rem!important;}
  .login-client-card .muted{font-size:.62rem!important;}
  .login-client-card .login-form label span{font-size:.69rem!important;}
  .login-client-card .login-form input{height:33px!important;font-size:.74rem!important;}
}


/* =========================================================
   ONLY TV TUMBES - Login móvil ajuste visual v2.4.67
   Objetivo: pósters casi estáticos/más lentos y degradado azul marino más oscuro.
   ========================================================= */
@keyframes authPosterSlideSoft{
  from{transform:translateX(0)}
  to{transform:translateX(-18%)}
}

.auth-poster-wall::before{
  background:
    linear-gradient(180deg,rgba(4,18,46,.48),rgba(3,12,30,.34) 30%,rgba(2,8,20,.26) 56%,rgba(1,5,12,.46) 100%),
    radial-gradient(circle at 50% 50%,rgba(0,26,82,.20),transparent 62%)!important;
}
.auth-poster-wall::after{
  background:linear-gradient(90deg,rgba(1,4,10,.24),transparent 12%,transparent 88%,rgba(1,4,10,.24))!important;
}
.auth-poster-track{
  animation-name:authPosterSlideSoft!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
}
.auth-poster-row-1 .auth-poster-track{animation-duration:180s!important;}
.auth-poster-row-2 .auth-poster-track{animation-duration:220s!important;animation-direction:reverse!important;}
.auth-poster-row-3 .auth-poster-track{animation-duration:200s!important;}
.auth-poster-row-4 .auth-poster-track{animation-duration:210s!important;animation-direction:reverse!important;}
.auth-poster-row-5 .auth-poster-track{animation-duration:240s!important;}

@media(max-width:760px){
  .auth-poster-row-1 .auth-poster-track{animation-duration:190s!important;}
  .auth-poster-row-2 .auth-poster-track{animation-duration:230s!important;}
  .auth-poster-row-3 .auth-poster-track{animation-duration:210s!important;}
  .auth-poster-row-4 .auth-poster-track{animation-duration:220s!important;}
  .auth-poster-row-5 .auth-poster-track{animation-duration:250s!important;}
}


/* =========================================================
   ONLY TV TUMBES - Login móvil ajuste final v2.4.68
   Objetivo: velocidad media, pósters sin recorte de ancho y degradado azul marino más oscuro.
   ========================================================= */
@keyframes authPosterSlideMedium{
  from{transform:translateX(0)}
  to{transform:translateX(-35%)}
}

.auth-poster-wall{
  inset:0!important;
  gap:4px!important;
  padding:4px!important;
  transform:none!important;
  background:linear-gradient(180deg,#06152e 0%,#020712 48%,#00040a 100%)!important;
}

.auth-poster-wall::before{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    linear-gradient(180deg,rgba(3,16,42,.62),rgba(2,10,28,.48) 32%,rgba(1,6,18,.44) 60%,rgba(0,3,10,.62) 100%),
    radial-gradient(circle at 50% 48%,rgba(0,28,86,.26),rgba(0,0,0,.22) 72%)!important;
  z-index:3!important;
  pointer-events:none!important;
}

.auth-poster-wall::after{
  display:block!important;
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(90deg,rgba(0,3,10,.30),rgba(0,0,0,.06) 16%,rgba(0,0,0,.06) 84%,rgba(0,3,10,.30))!important;
  z-index:3!important;
  pointer-events:none!important;
}

.auth-poster-track{
  gap:5px!important;
  height:100%!important;
  align-items:stretch!important;
  animation-name:authPosterSlideMedium!important;
  animation-timing-function:linear!important;
  animation-iteration-count:infinite!important;
}

.auth-poster-row-1 .auth-poster-track{animation-duration:72s!important;}
.auth-poster-row-2 .auth-poster-track{animation-duration:84s!important;animation-direction:reverse!important;}
.auth-poster-row-3 .auth-poster-track{animation-duration:78s!important;}
.auth-poster-row-4 .auth-poster-track{animation-duration:90s!important;animation-direction:reverse!important;}
.auth-poster-row-5 .auth-poster-track{animation-duration:96s!important;}

.auth-poster-item{
  height:100%!important;
  width:auto!important;
  aspect-ratio:2/3!important;
  min-width:auto!important;
  min-height:0!important;
  border-radius:10px!important;
  overflow:hidden!important;
  flex:0 0 auto!important;
  border:1px solid rgba(255,255,255,.10)!important;
  box-shadow:0 10px 22px rgba(0,0,0,.30)!important;
  background:#081223!important;
}

.auth-poster-item img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
}

@media(max-width:760px){
  .auth-poster-wall{
    gap:4px!important;
    padding:4px!important;
  }
  .auth-poster-track{gap:4px!important;}
  .auth-poster-row-1 .auth-poster-track{animation-duration:68s!important;}
  .auth-poster-row-2 .auth-poster-track{animation-duration:80s!important;}
  .auth-poster-row-3 .auth-poster-track{animation-duration:74s!important;}
  .auth-poster-row-4 .auth-poster-track{animation-duration:86s!important;}
  .auth-poster-row-5 .auth-poster-track{animation-duration:92s!important;}
}

@media(max-width:390px){
  .auth-poster-wall{
    gap:3px!important;
    padding:3px!important;
  }
  .auth-poster-track{gap:3px!important;}
}


/* =========================================================
   ONLY TV TUMBES - Login móvil centrado v2.4.69
   Objetivo: centrar todo el card de acceso y agrandar un poco el logo.
   ========================================================= */
.login-client-card{
  text-align:center!important;
}
.login-logo-only,
.login-client-card .login-logo-only{
  display:flex!important;
  justify-content:center!important;
  align-items:center!important;
  margin:0 0 12px!important;
}
.login-logo-only .login-logo-img,
.login-client-card .login-logo-img{
  width:min(142px,48vw)!important;
  max-height:48px!important;
}
.login-access-pill{
  display:inline-flex!important;
  align-self:center!important;
  margin:0 auto 8px!important;
}
.login-client-card h2,
.login-client-card .muted{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.login-client-card .muted{
  max-width:240px!important;
}
.login-client-card .login-form{
  align-items:center!important;
}
.login-client-card .login-form label{
  width:100%!important;
  text-align:center!important;
}
.login-client-card .login-form label span{
  display:block!important;
  text-align:center!important;
}
.login-client-card .login-form input{
  text-align:center!important;
}
.login-client-card .login-form input::placeholder{
  text-align:center!important;
}
@media(max-width:760px){
  .login-logo-only .login-logo-img,
  .login-client-card .login-logo-img{
    width:min(132px,46vw)!important;
    max-height:44px!important;
  }
  .login-client-card .muted{
    max-width:220px!important;
  }
}
@media(max-width:390px){
  .login-logo-only .login-logo-img,
  .login-client-card .login-logo-img{
    width:min(124px,44vw)!important;
    max-height:41px!important;
  }
  .login-client-card .muted{
    max-width:208px!important;
  }
}


/* =========================================================
   ONLY TV TUMBES - Fix scroll app v2.4.70
   Objetivo: el bloqueo de scroll queda SOLO en login; Dashboard vuelve a deslizar.
   ========================================================= */
html{
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  position:static!important;
}
body.app-page{
  position:relative!important;
  height:auto!important;
  min-height:100vh!important;
  max-height:none!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  touch-action:auto!important;
  overscroll-behavior-y:auto!important;
}
body.app-page.movie-folder-modal-open,
body.app-page.catalog-update-open,
body.app-page.audio-modal-open,
body.app-page.mobile-menu-open{
  overflow:hidden!important;
}
body.auth-page{
  position:fixed!important;
  inset:0!important;
  width:100%!important;
  height:100svh!important;
  min-height:100svh!important;
  max-height:100svh!important;
  overflow:hidden!important;
  overscroll-behavior:none!important;
  touch-action:manipulation!important;
}
body.app-page .main-shell,
body.app-page .content-area{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
}
@media(max-width:767px){
  body.app-page{
    position:relative!important;
    height:auto!important;
    min-height:100vh!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding-bottom:96px!important;
  }
  body.app-page .main-shell{
    min-height:100vh!important;
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
    padding-bottom:calc(112px + env(safe-area-inset-bottom))!important;
  }
  body.app-page .content-area{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body.app-page.movie-folder-modal-open,
  body.app-page.catalog-update-open,
  body.app-page.audio-modal-open,
  body.app-page.mobile-menu-open{
    overflow:hidden!important;
  }
}


/* v2.4.79 — corazón más limpio en canales */
.cards-grid .media-card[data-type="live"] .fav-dot,
.mobile-row-scroll .media-card[data-type="live"] .fav-dot{
  left:auto!important;
  right:10px!important;
  top:10px!important;
  bottom:auto!important;
  width:34px!important;
  height:34px!important;
  border-radius:50%!important;
  background:rgba(8,10,20,.60)!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 6px 16px rgba(0,0,0,.28)!important;
  padding:0!important;
}
.cards-grid .media-card[data-type="live"] .fav-dot .heart-icon,
.mobile-row-scroll .media-card[data-type="live"] .fav-dot .heart-icon{
  width:16px!important;
  height:16px!important;
}


/* v2.4.80 — corazón canales a la derecha con separación */
.cards-grid .media-card[data-type="live"] > .fav-dot,
.mobile-row-scroll .media-card[data-type="live"] > .fav-dot{
  position:absolute!important;
  inset:14px 14px auto auto!important;
  left:auto!important;
  right:14px!important;
  top:14px!important;
  bottom:auto!important;
  margin:0!important;
  transform:none!important;
  z-index:140!important;
}


/* v2.4.81 — centrar encabezados de sports / top10 y ocultar contador de partidos */
.sports-fixture-head,
.tmdb-top-head{
  position:relative!important;
}
.sports-fixture-head{
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  padding-right:14px!important;
}
.sports-fixture-head > div{
  width:100%!important;
  text-align:center!important;
  margin:0 auto!important;
}
.sports-fixture-head > span{
  display:none!important;
}
.tmdb-top-head{
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  padding-right:54px!important;
}
.tmdb-top-head > div{
  width:100%!important;
  text-align:center!important;
  margin:0 auto!important;
}
.tmdb-top-head > span{
  position:absolute!important;
  right:0!important;
  top:50%!important;
  transform:translateY(-50%)!important;
}


/* v2.4.82 — ocultar badge Top 10 en películas y series */
.tmdb-top-head > span{display:none!important;}


/* v2.4.83 — centrar correctamente el bloque de texto del Top TMDB */
.tmdb-top-head{
  justify-content:center!important;
  align-items:center!important;
  text-align:center!important;
  padding-left:0!important;
  padding-right:0!important;
}
.tmdb-top-head > div{
  width:auto!important;
  max-width:100%!important;
  margin:0 auto!important;
  text-align:center!important;
}
.tmdb-top-head small,
.tmdb-top-head strong{
  text-align:center!important;
}


/* v2.4.84 — bajar un poco las cards de partidos para que no choquen con la línea del título */
.sports-fixture-head{margin-bottom:14px!important;}
.sports-fixture-track{padding-top:4px!important;}


/* v2.4.90 — logo sobre reproductor: base oculto en PC */
.video-shell .player-corner-logo{
  display:none;
  position:absolute;
  z-index:38;
  pointer-events:none;
  object-fit:contain;
  user-select:none;
  opacity:.88;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.55));
}


/* v2.4.91 — logo transparente pequeño abajo izquierda sobre reproductor */
.video-shell .player-corner-logo{
  display:none;
  position:absolute!important;
  left:12px!important;
  right:auto!important;
  top:auto!important;
  bottom:12px!important;
  width:84px!important;
  height:auto!important;
  max-height:34px!important;
  z-index:180!important;
  pointer-events:none!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  opacity:.72!important;
  filter:drop-shadow(0 4px 10px rgba(0,0,0,.45))!important;
  user-select:none!important;
}
.video-shell:fullscreen .player-corner-logo,
.video-shell:-webkit-full-screen .player-corner-logo,
.video-shell.is-native-fullscreen .player-corner-logo{
  display:block!important;
  left:16px!important;
  right:auto!important;
  top:auto!important;
  bottom:16px!important;
  width:108px!important;
  max-height:42px!important;
  z-index:2147483647!important;
  background:transparent!important;
}


/* =========================================================
   ONLY TV TUMBES - Logo reproductor final v2.4.92
   - Transparente real.
   - Abajo a la izquierda, pero más arriba.
   - Botón flotante para fullscreen del contenedor.
   ========================================================= */
.video-shell{
  position:relative!important;
}
.video-shell .player-corner-logo{
  position:absolute!important;
  display:none;
  inset:auto auto 30px 14px!important;
  right:auto!important;
  top:auto!important;
  bottom:30px!important;
  left:14px!important;
  width:86px!important;
  height:auto!important;
  max-height:32px!important;
  object-fit:contain!important;
  object-position:left center!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  opacity:.70!important;
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.50))!important;
  pointer-events:none!important;
  z-index:2147483000!important;
}
.video-shell .video-shell-fullscreen-btn{
  display:none;
  position:absolute!important;
  right:12px!important;
  bottom:12px!important;
  width:38px!important;
  height:38px!important;
  border-radius:50%!important;
  border:1px solid rgba(255,255,255,.18)!important;
  background:rgba(0,0,0,.42)!important;
  color:#fff!important;
  z-index:2147483001!important;
  font-size:1.05rem!important;
  font-weight:900!important;
  line-height:1!important;
  align-items:center!important;
  justify-content:center!important;
  backdrop-filter:blur(8px)!important;
  box-shadow:0 10px 20px rgba(0,0,0,.30)!important;
}
.video-shell:fullscreen .player-corner-logo,
.video-shell:-webkit-full-screen .player-corner-logo,
.video-shell.is-native-fullscreen .player-corner-logo,
.player-modal.is-native-fullscreen .video-shell .player-corner-logo{
  display:block!important;
  inset:auto auto 34px 18px!important;
  right:auto!important;
  top:auto!important;
  bottom:34px!important;
  left:18px!important;
  width:106px!important;
  max-height:38px!important;
  background:transparent!important;
  z-index:2147483646!important;
}
.video-shell:fullscreen .video-shell-fullscreen-btn,
.video-shell:-webkit-full-screen .video-shell-fullscreen-btn,
.video-shell.is-native-fullscreen .video-shell-fullscreen-btn{
  display:none!important;
}


/* =========================================================
   ONLY TV TUMBES - Logo reproductor derecha real v2.4.93
   - Corrige posición: derecha.
   - Mantiene transparencia y tamaño pequeño.
   - Ajusta fullscreen del contenedor.
   ========================================================= */
.video-shell .player-corner-logo,
.player-modal.open.is-live-detail .video-shell .player-corner-logo{
  display:block!important;
  position:absolute!important;
  inset:auto 18px 32px auto!important;
  left:auto!important;
  right:18px!important;
  top:auto!important;
  bottom:32px!important;
  width:86px!important;
  height:auto!important;
  max-height:32px!important;
  object-fit:contain!important;
  object-position:right center!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  opacity:.72!important;
  filter:drop-shadow(0 5px 12px rgba(0,0,0,.50))!important;
  pointer-events:none!important;
  z-index:2147483000!important;
}
.video-shell:fullscreen .player-corner-logo,
.video-shell:-webkit-full-screen .player-corner-logo,
.video-shell.is-native-fullscreen .player-corner-logo,
.player-modal.is-native-fullscreen .video-shell .player-corner-logo{
  display:block!important;
  inset:auto 22px 38px auto!important;
  left:auto!important;
  right:22px!important;
  top:auto!important;
  bottom:38px!important;
  width:106px!important;
  max-height:38px!important;
  background:transparent!important;
  z-index:2147483646!important;
}
