:root{--st:env(safe-area-inset-top,0px);--sb:env(safe-area-inset-bottom,0px)}
html{background:#0f1320;-webkit-tap-highlight-color:transparent;scroll-behavior:smooth}
body{padding-top:calc(56px + var(--st));padding-bottom:calc(70px + var(--sb));overscroll-behavior-y:contain;min-height:100dvh}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid #ffb547;outline-offset:2px}

.topbar{position:fixed;top:0;left:0;right:0;z-index:40;height:calc(56px + var(--st));padding:var(--st) 16px 0;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(#0f1320 55%,#0f132000)}
.botnav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:var(--sb);background:#121828f2;backdrop-filter:blur(14px);border-top:1px solid #262e45}
.botnav a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:9px 0 8px;font-size:11px;color:#9aa4bf}
.botnav svg{width:24px;height:24px;fill:currentColor}
.botnav a.on{color:#ffb547}

.rail{display:flex;gap:.75rem;overflow-x:auto;padding:0 1rem;scroll-snap-type:x proximity;scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail>.poster{flex:0 0 112px;scroll-snap-align:start}
.rail>.epc{flex:0 0 220px;scroll-snap-align:start}
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.9rem .65rem;padding:0 1rem}
@media(min-width:640px){.pgrid{grid-template-columns:repeat(5,minmax(0,1fr))}.rail>.poster{flex-basis:140px}}
@media(min-width:1024px){.pgrid{grid-template-columns:repeat(8,minmax(0,1fr))}main{max-width:1280px;margin:auto}}
.bdg{position:absolute;font-size:10px;font-weight:700;padding:2px 6px;border-radius:6px;background:#0f1320e0}
.sk{background:linear-gradient(90deg,#171d2e 25%,#1f2740 50%,#171d2e 75%);background-size:200% 100%;animation:sh 1.4s linear infinite;border-radius:12px}
@keyframes sh{to{background-position:-200% 0}}

.chip{flex:0 0 auto;padding:7px 14px;border-radius:999px;font-size:13px;background:#171d2e;border:1px solid #262e45;color:#c5cce0;white-space:nowrap}
.chip.on{background:#ffb547;border-color:#ffb547;color:#1a1305;font-weight:700}
.chips{display:flex;gap:.5rem;overflow-x:auto;padding:0 1rem;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.btn-p{display:inline-flex;align-items:center;gap:6px;padding:11px 18px;border-radius:12px;background:#ffb547;color:#1a1305;font-weight:700;font-size:14px}
.btn-g{display:inline-flex;align-items:center;gap:6px;padding:11px 18px;border-radius:12px;background:#ffffff1a;font-weight:500;font-size:14px}
.btn-p:active,.btn-g:active{transform:scale(.97)}
.inp{width:100%;padding:12px 14px;border-radius:12px;background:#171d2e;border:1px solid #262e45;color:#fff;font-size:15px}
.inp:focus{outline:2px solid #ffb547;border-color:transparent}
.card{background:#171d2e;border:1px solid #262e45;border-radius:16px;padding:16px}
.ep{display:flex;gap:12px;width:100%;padding:8px 0;text-align:left;align-items:flex-start}
.ep[disabled]{opacity:.4}
#toast{position:fixed;left:50%;bottom:calc(86px + var(--sb));transform:translate(-50%,20px);background:#fff;color:#111;padding:10px 16px;border-radius:12px;font-size:14px;opacity:0;pointer-events:none;transition:.25s;z-index:200}
#toast.on{opacity:1;transform:translate(-50%,0)}

/* ====== PLAYER (estilo ExoPlayer / Media3) ====== */
.np{position:fixed;inset:0;z-index:100;display:none;height:100dvh;background:#000;color:#fff;touch-action:none;user-select:none;-webkit-user-select:none;font-family:Roboto,'DM Sans',sans-serif;overflow:hidden}
.np.open{display:block}
.np video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.np-bright{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none}
.np-gest{position:absolute;inset:0}
.np-ui{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .2s}
.np.show .np-ui{opacity:1}
.np.show .np-top,.np.show .np-bot,.np.show .np-mid .np-b{pointer-events:auto}
.np.locked .np-ui{opacity:0!important;pointer-events:none}
.np-top{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:6px;padding:calc(var(--st) + 8px) calc(env(safe-area-inset-right,0px) + 10px) 28px calc(env(safe-area-inset-left,0px) + 6px);background:linear-gradient(#000000cc,transparent)}
.np-ttl{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.np-ttl b{font-size:16px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-ttl small{font-size:12px;color:#ffffffb3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.np-b{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#fff;flex:0 0 auto}
.np-b:active{background:#ffffff33}
.np-b[disabled]{opacity:.3}
.np-b.big{width:72px;height:72px;background:#00000080}
.np-pill{height:30px;padding:0 12px;border-radius:15px;border:1px solid #ffffff59;font-size:12px;font-weight:700;color:#fff;background:#00000040}
.np-mid{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:clamp(8px,4vw,32px);pointer-events:none}
.np-bot{position:absolute;bottom:0;left:0;right:0;padding:36px calc(env(safe-area-inset-right,0px) + 14px) calc(var(--sb) + 6px) calc(env(safe-area-inset-left,0px) + 14px);background:linear-gradient(transparent,#000000d9)}
.np-bar{position:relative;height:30px;cursor:pointer;touch-action:none}
.np-track{position:absolute;left:0;right:0;top:50%;height:4px;transform:translateY(-50%);background:#ffffff40;border-radius:2px}
.np-buf,.np-pos{position:absolute;left:0;top:0;bottom:0;border-radius:2px;width:0}
.np-buf{background:#ffffff66}
.np-pos{background:#ffb547}
.np-knob{position:absolute;top:50%;left:0;width:14px;height:14px;border-radius:50%;background:#ffb547;transform:translate(-50%,-50%);transition:transform .1s}
.np-bar.drag .np-knob{transform:translate(-50%,-50%) scale(1.6)}
.np-tip{position:absolute;bottom:30px;left:0;transform:translateX(-50%);background:#000000b3;padding:3px 8px;border-radius:6px;font-size:12px;display:none}
.np-bar.drag .np-tip{display:block}
.np-row{display:flex;align-items:center;gap:2px;font-size:13px;font-variant-numeric:tabular-nums;color:#ffffffe6}
.np-row .sp{flex:1}
.np-row .np-b{width:42px;height:42px}
.np-rip{position:absolute;top:0;bottom:0;width:36%;display:grid;place-items:center;background:#ffffff2e;opacity:0;pointer-events:none;font-size:14px;font-weight:700;transition:opacity .25s}
.np-rip.l{left:0;border-radius:0 60% 60% 0/0 50% 50% 0}
.np-rip.r{right:0;border-radius:60% 0 0 60%/50% 0 0 50%}
.np-rip.on{opacity:1;transition:none}
.np-hud{position:absolute;top:18%;left:50%;transform:translateX(-50%);background:#000000b3;border-radius:14px;padding:10px 16px;min-width:130px;font-size:13px;text-align:center;opacity:0;pointer-events:none;transition:opacity .2s}
.np-hud.on{opacity:1}
.np-hud i{display:block;height:4px;margin-top:8px;border-radius:2px;background:#ffffff40;overflow:hidden}
.np-hud i b{display:block;height:100%;background:#ffb547}
.np-spin{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px;border:4px solid #ffffff33;border-top-color:#ffb547;border-radius:50%;animation:spin .8s linear infinite;display:none;pointer-events:none}
.np.buf .np-spin{display:block}
@keyframes spin{to{transform:rotate(360deg)}}
.np-unlock{position:absolute;left:50%;bottom:calc(var(--sb) + 40px);transform:translateX(-50%);padding:10px 18px;border-radius:24px;background:#000000b3;border:1px solid #ffffff59;display:none;align-items:center;gap:8px;font-size:13px}
.np.locked.show .np-unlock{display:flex}
.np-sheet{position:absolute;inset:0;background:#00000080;display:none;align-items:flex-end;justify-content:center}
.np-sheet.on{display:flex}
.np-sheet-in{width:100%;max-width:520px;max-height:75%;overflow:auto;background:#1b2132;border-radius:20px 20px 0 0;padding:14px 16px calc(var(--sb) + 18px)}
.np-sheet h4{font-size:12px;color:#9aa4bf;margin:14px 0 8px}
.np-sheet .chips{padding:0}
.np-err,.np-next{position:absolute;inset:0;background:#000000d9;display:none;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center;padding:24px}
.np-err.on,.np-next.on{display:flex}
.np-err>div,.np-next>div{display:flex;gap:10px}
