@serifpersia/dango 3.5.9 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +44 -4
  2. package/client/dist/assets/{AnimeCard-CDeVbWJO.js → AnimeCard-DbrG4Bo-.js} +1 -1
  3. package/client/dist/assets/AnimeInfo-BivVqWcB.css +1 -0
  4. package/client/dist/assets/AnimeInfo-CgSQGjef.js +1 -0
  5. package/client/dist/assets/{AnimeInfoPage-Cc3OcfHY.js → AnimeInfoPage-DSybdvf_.js} +2 -2
  6. package/client/dist/assets/{Asmr-DZmR_EHb.js → Asmr-DFFV-7y4.js} +1 -1
  7. package/client/dist/assets/{AsmrResetProgressModal-DBCDlfYq.js → AsmrResetProgressModal-Brdfu_22.js} +1 -1
  8. package/client/dist/assets/AvSyncCalibrator-DBBUzoHn.js +10 -0
  9. package/client/dist/assets/AvSyncCalibrator-ZSpMgUid.css +1 -0
  10. package/client/dist/assets/Home-DeY8zvfI.css +1 -0
  11. package/client/dist/assets/{Home-BqhPqzWF.js → Home-DjGl-3os.js} +1 -1
  12. package/client/dist/assets/{Insights-CmbbDZr3.js → Insights-4O52Z1t2.js} +1 -1
  13. package/client/dist/assets/{LibraryListPage-jLA7gnux.js → LibraryListPage-Z0w_rmHP.js} +1 -1
  14. package/client/dist/assets/{ListeningList-Cm9zGlLB.js → ListeningList-DjbzDs1E.js} +1 -1
  15. package/client/dist/assets/{Manga-x4pVT4ZH.js → Manga-BRIDluzF.js} +1 -1
  16. package/client/dist/assets/{MangaInfoPage-BPSW9UER.js → MangaInfoPage-Q4CjEGJH.js} +1 -1
  17. package/client/dist/assets/{MangaReadPage-V1iDbCfL.js → MangaReadPage-BbJK5FY6.js} +1 -1
  18. package/client/dist/assets/{MangaResetProgressModal-Dto3km2X.js → MangaResetProgressModal-BCFPXDF6.js} +1 -1
  19. package/client/dist/assets/{Mature-B0DoN3tQ.js → Mature-DjQzs66p.js} +1 -1
  20. package/client/dist/assets/{MediaCard-D6_9HL2Z.js → MediaCard-DedwE5DX.js} +1 -1
  21. package/client/dist/assets/{Music-1MlUIfdw.js → Music-z2RkiMDf.js} +1 -1
  22. package/client/dist/assets/{OptionListMenu-BWwktIiH.js → OptionListMenu-CetjZizt.js} +1 -1
  23. package/client/dist/assets/Player-DCB994_8.css +1 -0
  24. package/client/dist/assets/{Player-Dgtn--lM.js → Player-DD-9SgWU.js} +6 -6
  25. package/client/dist/assets/PlayerSettings-BXGe3F5k.css +1 -0
  26. package/client/dist/assets/{PlayerSettings-CI5hGpEU.js → PlayerSettings-ne_DQSTl.js} +1 -1
  27. package/client/dist/assets/{QueueOptionsButton-DjcdOJgg.js → QueueOptionsButton-CIKT4YcD.js} +1 -1
  28. package/client/dist/assets/{QueueRail-B5z_xhzj.js → QueueRail-DPclldS0.js} +1 -1
  29. package/client/dist/assets/{Radio-BAE-Q-iN.js → Radio-aeqPTMht.js} +1 -1
  30. package/client/dist/assets/{ReadingList-B97i_hGv.js → ReadingList-p6G7NHtC.js} +1 -1
  31. package/client/dist/assets/{ResetProgressModal-C7-CvTi-.js → ResetProgressModal-B7UuuL3X.js} +1 -1
  32. package/client/dist/assets/{Search-CbPFjKeU.js → Search-BzyHVByR.js} +1 -1
  33. package/client/dist/assets/Settings-DMmtLUsL.js +21 -0
  34. package/client/dist/assets/{SkeletonGrid-BA_x2PRl.js → SkeletonGrid-B5JXhZO4.js} +1 -1
  35. package/client/dist/assets/Trackers-tLL1afjB.js +2 -0
  36. package/client/dist/assets/Tv-Bdruknna.css +1 -0
  37. package/client/dist/assets/Tv-CluLN4KA.js +4 -0
  38. package/client/dist/assets/{TvInfo-CxSmzVSL.js → TvInfo-DmrBLjgK.js} +1 -1
  39. package/client/dist/assets/{TvPopup-S5blnD3l.js → TvPopup-D1mSlOZt.js} +1 -1
  40. package/client/dist/assets/{TvSearch-B-2sRNbN.js → TvSearch-BGQRUq9E.js} +1 -1
  41. package/client/dist/assets/{TvWatchlist-MaA-qhQw.js → TvWatchlist-DdLkpeQT.js} +1 -1
  42. package/client/dist/assets/{Watchlist-yVEi1oVn.js → Watchlist-BObmM6QB.js} +1 -1
  43. package/client/dist/assets/{hls-CnFtaJwf.js → hls-qCuNYJym.js} +1 -1
  44. package/client/dist/assets/index-B4AdKbhW.js +178 -0
  45. package/client/dist/assets/index-D0Haw_Zl.css +1 -0
  46. package/client/dist/assets/{useAnimeInfoData-BqAd5seW.js → useAnimeInfoData-CSnwUBuU.js} +1 -1
  47. package/client/dist/assets/{useAsmr-B1vlDm2S.js → useAsmr-BKAaWEXn.js} +1 -1
  48. package/client/dist/assets/{useAsmrPopup-BNJC4JQo.js → useAsmrPopup-DDLRBLzz.js} +1 -1
  49. package/client/dist/assets/{useMangaLibrary-CU3bFfuD.js → useMangaLibrary-C6XEMuSr.js} +1 -1
  50. package/client/dist/assets/{useMangaPopup-LbRnTFzq.js → useMangaPopup-wfCJubPD.js} +1 -1
  51. package/client/dist/assets/{useProviders-CvKGEjDV.js → useProviders-C7jrBgxf.js} +1 -1
  52. package/client/dist/assets/{useTv-LsgXHZD4.js → useTv-DM5KtzEc.js} +1 -1
  53. package/client/dist/assets/{useTvLibrary-c90knUfT.js → useTvLibrary-73NkS_5R.js} +1 -1
  54. package/client/dist/index.html +2 -2
  55. package/orchestrator.js +107 -8
  56. package/package.json +2 -2
  57. package/server/dist/app-hono.js +13 -8
  58. package/server/dist/config.js +3 -2
  59. package/server/dist/hono/auth.js +0 -7
  60. package/server/dist/trpc/routers/auth.js +16 -0
  61. package/server/package.json +1 -1
  62. package/client/dist/assets/AnimeInfo-BFWtHlPC.css +0 -1
  63. package/client/dist/assets/AnimeInfo-DVpM_cPF.js +0 -1
  64. package/client/dist/assets/AvSyncCalibrator-Cf5L0Dxf.js +0 -10
  65. package/client/dist/assets/AvSyncCalibrator-ieaRTs3u.css +0 -1
  66. package/client/dist/assets/Home-B_q2l74h.css +0 -1
  67. package/client/dist/assets/Player-DBLl-bj_.css +0 -1
  68. package/client/dist/assets/PlayerSettings-Bj6SsmQ2.css +0 -1
  69. package/client/dist/assets/Settings-BbihEcZ2.js +0 -21
  70. package/client/dist/assets/Trackers-Bperfrcz.js +0 -2
  71. package/client/dist/assets/Tv-BSGuUz2F.js +0 -4
  72. package/client/dist/assets/Tv-BlVIanQL.css +0 -1
  73. package/client/dist/assets/index-Ck-R0JKv.css +0 -1
  74. package/client/dist/assets/index-DNxWyfmM.js +0 -178
@@ -1,10 +0,0 @@
1
- import{u as r,A as b,d as C,h as A,q as x,T as pe,$ as At}from"./vendor-core-DfaOB3Rn.js";import{B as re,M as $t,S as ye,h as Ft,R as Rt,t as Je,O as Dt,g as Ot}from"./index-DNxWyfmM.js";import{I as Q}from"./vendor-icons-DrybRNxP.js";import{u as qt}from"./vendor-query-BBT5_sHx.js";const Ht="_controls_ov6ol_1",Vt="_titleContainer_ov6ol_9",Wt="_scheduleInfo_ov6ol_15",Ut="_status_ov6ol_23",zt="_nextEpisode_ov6ol_35",Kt="_watchlistBtn_ov6ol_45",Gt="_inList_ov6ol_72",Xt="_queueBtn_ov6ol_83",Jt="_queueActive_ov6ol_95",Qt="_modeToggleBtn_ov6ol_101",jt="_modeToggleActive_ov6ol_108",Yt="_nativeToggleBtn_ov6ol_119",Zt="_nativeToggleActive_ov6ol_132",en="_markWatchedBtn_ov6ol_153",tn="_markWatchedDone_ov6ol_167",nn="_completeSeriesBtn_ov6ol_178",rn="_providerAndEpisodeRow_ov6ol_192",on="_episodeActions_ov6ol_199",sn="_desktopEpisodeActions_ov6ol_206",cn="_mobileEpisodeActions_ov6ol_213",an="_episodeNavBtn_ov6ol_217",ln="_primary_ov6ol_247",un="_secondary_ov6ol_257",dn="_episodePickerBtn_ov6ol_261",pn="_queueCountdown_ov6ol_265",fn="_speedBoostBadge_ov6ol_280",mn="_videoContainer_ov6ol_311",hn="_loadingOverlay_ov6ol_324",vn="_loadingDots_ov6ol_338",_n="_dot_ov6ol_343",gn="_bounce_ov6ol_1",yn="_bufferingOverlay_ov6ol_372",bn="_bufferingSpinner_ov6ol_381",wn="_spin_ov6ol_921",Sn="_videoIframe_ov6ol_396",Cn="_videoElementHidden_ov6ol_419",kn="_upscalerCanvas_ov6ol_424",En="_upscalerActive_ov6ol_437",Ln="_upscalerStatusBadge_ov6ol_441",Tn="_subtitleOverlay_ov6ol_456",Bn="_controlsOverlay_ov6ol_468",xn="_hidden_ov6ol_498",Nn="_centerPlayPause_ov6ol_504",In="_bottomControls_ov6ol_536",Pn="_progressBarContainer_ov6ol_553",Mn="_progressBar_ov6ol_553",An="_scrubbing_ov6ol_576",$n="_watchedBar_ov6ol_581",Fn="_bufferedBar_ov6ol_582",Rn="_thumb_ov6ol_604",Dn="_timeBubble_ov6ol_625",On="_skipSegment_ov6ol_648",qn="_op_ov6ol_662",Hn="_ed_ov6ol_666",Vn="_recap_ov6ol_670",Wn="_bottomControlsRow_ov6ol_674",Un="_controlBtn_ov6ol_682",zn="_timeDisplay_ov6ol_706",Kn="_leftControls_ov6ol_715",Gn="_rightControls_ov6ol_716",Xn="_middleControls_ov6ol_717",Jn="_skipControls_ov6ol_723",Qn="_skipBtn_ov6ol_729",jn="_volumeContainer_ov6ol_753",Yn="_volumeSlider_ov6ol_760",Zn="_settingsMenu_ov6ol_838",er="_slideUp_ov6ol_1",tr="_qualityListInMenu_ov6ol_877",nr="_ccOptionsContainer_ov6ol_878",rr="_qualityItemInMenu_ov6ol_886",or="_ccItem_ov6ol_887",sr="_active_ov6ol_908",cr="_sourceLoader_ov6ol_915",ar="_spinner_ov6ol_921",ir="_watchBtn_ov6ol_980",lr="_errorOverlay_ov6ol_1026",ur="_retryButton_ov6ol_1036",dr="_sourceSelectionContainer_ov6ol_1064",pr="_slideUpIn_ov6ol_1",fr="_providerSelectContainer_ov6ol_1079",mr="_providerSelect_ov6ol_1079",hr="_sourceSelect_ov6ol_1064",vr="_sourceButtons_ov6ol_1135",_r="_sourceButton_ov6ol_1135",gr="_detailsBox_ov6ol_1167",yr="_detailsToggleBtn_ov6ol_1180",br="_detailsGridContainer_ov6ol_1204",wr="_fadeIn_ov6ol_1",Sr="_detailItem_ov6ol_1216",Cr="_animeStatus_ov6ol_1236",kr="_genresList_ov6ol_1249",Er="_genreTag_ov6ol_1256",Lr="_loadingDetails_ov6ol_1274",Tr="_descriptionSection_ov6ol_1281",Br="_description_ov6ol_1281",xr="_epJumpControls_ov6ol_1317",Nr="_epRangeButtons_ov6ol_1328",Ir="_metaTags_ov6ol_1334",Pr="_epRangeBtn_ov6ol_1341",Mr="_epJumpInputGroup_ov6ol_1356",Ar="_fullscreenActive_ov6ol_1388",$r="_errorSubtext_ov6ol_1432",Ts={controls:Ht,titleContainer:Vt,scheduleInfo:Wt,status:Ut,nextEpisode:zt,watchlistBtn:Kt,inList:Gt,queueBtn:Xt,queueActive:Jt,modeToggleBtn:Qt,modeToggleActive:jt,nativeToggleBtn:Yt,nativeToggleActive:Zt,markWatchedBtn:en,markWatchedDone:tn,completeSeriesBtn:nn,providerAndEpisodeRow:rn,episodeActions:on,desktopEpisodeActions:sn,mobileEpisodeActions:cn,episodeNavBtn:an,primary:ln,secondary:un,episodePickerBtn:dn,queueCountdown:pn,speedBoostBadge:fn,videoContainer:mn,loadingOverlay:hn,loadingDots:vn,dot:_n,bounce:gn,bufferingOverlay:yn,bufferingSpinner:bn,spin:wn,videoIframe:Sn,videoElementHidden:Cn,upscalerCanvas:kn,upscalerActive:En,upscalerStatusBadge:Ln,subtitleOverlay:Tn,controlsOverlay:Bn,hidden:xn,centerPlayPause:Nn,bottomControls:In,progressBarContainer:Pn,progressBar:Mn,scrubbing:An,watchedBar:$n,bufferedBar:Fn,thumb:Rn,timeBubble:Dn,skipSegment:On,op:qn,ed:Hn,recap:Vn,bottomControlsRow:Wn,controlBtn:Un,timeDisplay:zn,leftControls:Kn,rightControls:Gn,middleControls:Xn,skipControls:Jn,skipBtn:Qn,volumeContainer:jn,volumeSlider:Yn,settingsMenu:Zn,slideUp:er,qualityListInMenu:tr,ccOptionsContainer:nr,qualityItemInMenu:rr,ccItem:or,active:sr,sourceLoader:cr,spinner:ar,watchBtn:ir,errorOverlay:lr,retryButton:ur,sourceSelectionContainer:dr,slideUpIn:pr,providerSelectContainer:fr,providerSelect:mr,sourceSelect:hr,sourceButtons:vr,sourceButton:_r,detailsBox:gr,detailsToggleBtn:yr,detailsGridContainer:br,fadeIn:wr,detailItem:Sr,animeStatus:Cr,genresList:kr,genreTag:Er,loadingDetails:Lr,descriptionSection:Tr,description:Br,epJumpControls:xr,epRangeButtons:Nr,metaTags:Ir,epRangeBtn:Pr,epJumpInputGroup:Mr,fullscreenActive:Ar,errorSubtext:$r},Fr="_playerPageLayout_6lomc_1",Rr="_episodeSidebar_6lomc_15",Dr="_playerMain_6lomc_28",Or="_videoPlayerWrapper_6lomc_36",qr="_playerInfoHeader_6lomc_52",Hr="_playerAnimeCard_6lomc_58",Vr="_playerInfoContainer_6lomc_70",Wr="_videoTitleSection_6lomc_94",Ur="_theaterMode_6lomc_276",zr="_theaterAmbient_6lomc_310",Kr={playerPageLayout:Fr,episodeSidebar:Rr,playerMain:Dr,videoPlayerWrapper:Or,playerInfoHeader:qr,playerAnimeCard:Hr,playerInfoContainer:Vr,videoTitleSection:Wr,theaterMode:Ur,theaterAmbient:zr},Gr="_shell_41rxp_1",Xr="_stage_41rxp_37",Jr="_shellFill_41rxp_85",Qr="_shellFullscreen_41rxp_93",jr="_uiLayer_41rxp_107",Yr="_volumeWrap_41rxp_118",Zr="_volumeSlider_41rxp_124",ce={shell:Gr,stage:Xr,shellFill:Jr,shellFullscreen:Qr,uiLayer:jr,volumeWrap:Yr,volumeSlider:Zr},eo=.8,to=5,Bs=2e3,Ze="autoplayEnabled",no=(e,n)=>n>0&&e>=n*eo,xs=(e,n)=>e>to&&!no(e,n),Ns=()=>{try{return localStorage.getItem(Ze)==="true"}catch{return!1}},Is=e=>{try{localStorage.setItem(Ze,String(e))}catch{}},ro=["finished","completed","complete","ended"],Ps=(e,n,t)=>e.length>0&&!!n&&e[e.length-1]===n&&ro.some(s=>String(t||"").trim().toLowerCase().includes(s)),Ms=e=>e.seekInduced?"none":e.autoplayEnabled&&e.hasNext?"advance":e.hasNext?"prompt-next":e.isFinal?"prompt-complete":"none",oo=e=>(e.language??e.lang??"").toLowerCase(),so=e=>(e.label??"").toLowerCase(),co=e=>`${e.language??e.lang??""}|||${e.label??""}`,ao=e=>oo(e).startsWith("en")||so(e).includes("english");function As(e,n){if(e.length===0||n?.enabled===!1)return-1;const t=n?.lastKey??null;if(t){const o=e.findIndex(i=>co(i)===t);if(o>=0)return o}const s=e.findIndex(ao);return s>=0?s:0}const Z={fontSize:1.8,position:0,bgOpacity:.5,bgColor:"#000000",textColor:"#ffffff",edge:"shadow",bold:!1},xe=(e,n,t)=>Math.max(n,Math.min(t,e)),Ne=e=>typeof e=="string"&&/^#[0-9a-fA-F]{6}$/.test(e),ke=(e,n,t,s)=>{try{const o=localStorage.getItem(e);if(o===null)return n;const i=parseFloat(o);return Number.isFinite(i)?xe(i,t,s):n}catch{return n}};function io(){let e=Z.edge,n=Z.bgColor,t=Z.textColor,s=Z.bold;try{const o=localStorage.getItem("subtitleEdge");(o==="shadow"||o==="outline"||o==="none")&&(e=o);const i=localStorage.getItem("subtitleBgColor");Ne(i)&&(n=i);const p=localStorage.getItem("subtitleTextColor");Ne(p)&&(t=p);const _=localStorage.getItem("subtitleBold");_!==null&&(s=_==="true")}catch{}return{fontSize:ke("subtitleFontSize",Z.fontSize,.5,10),position:ke("subtitlePosition",Z.position,0,100),bgOpacity:ke("subtitleBgOpacity",Z.bgOpacity,0,1),bgColor:n,textColor:t,edge:e,bold:s}}function et(e,n){const t=`rgba(0, 0, 0, ${xe(n,0,1)})`;if(!Ne(e))return t;const s=parseInt(e.slice(1,3),16),o=parseInt(e.slice(3,5),16),i=parseInt(e.slice(5,7),16);return`rgba(${s}, ${o}, ${i}, ${xe(n,0,1)})`}function tt(e,n){return e==="none"?n<=0?"0 1px 3px rgba(0, 0, 0, 0.9)":"none":e==="outline"?["-1px 0 0 black","1px 0 0 black","0 -1px 0 black","0 1px 0 black","-1px -1px 0 black","1px -1px 0 black","-1px 1px 0 black","1px 1px 0 black","0 0 6px rgba(0, 0, 0, 0.9)"].join(", "):"0 0 4px black, 0 1px 2px rgba(0, 0, 0, 0.8)"}function $s(e){return`
2
- video::cue {
3
- font-size: ${e.fontSize}rem !important;
4
- color: ${e.textColor} !important;
5
- background-color: ${et(e.bgColor,e.bgOpacity)} !important;
6
- font-weight: ${e.bold?"bold":"normal"} !important;
7
- text-shadow: ${tt(e.edge,e.bgOpacity)} !important;
8
- }
9
- `}function Fs(e){return[`font-size: ${e.fontSize}rem`,`color: ${e.textColor}`,`background-color: ${et(e.bgColor,e.bgOpacity)}`,`font-weight: ${e.bold?"700":"400"}`,`text-shadow: ${tt(e.edge,e.bgOpacity)}`,"padding: 0.2em 0.5em","border-radius: 0.25em","text-align: center","position: absolute","left: 50%","transform: translateX(-50%)","max-width: 92%","white-space: pre-wrap","overflow-wrap: break-word","line-height: 1.4"].join(`;
10
- `)+";"}const lo=new Set(["b","i","u","strong","em"]);function Rs(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/&lt;(\/?)([a-zA-Z]+)&gt;/g,(t,s,o)=>lo.has(o.toLowerCase())?`<${s}${o.toLowerCase()}>`:t)}function Ds(e){return e.replace(/<[^>]*>/g,"")}const Os=["#ffffff","#ffff00","#7CFC00","#00e5ff","#ff9ff3","#ffa502"],qs=["#000000","#1e272e","#2f3542","#3d0c02","#0c3d2e","#ffffff"];function Hs(e,n){const t=Number.isFinite(e)?e*16:Z.fontSize*16;return!Number.isFinite(n)||n<=0?t/16:Math.min(t,Math.max(13,n*.07))/16}function Vs(e){const n=Math.abs(e/1e3).toFixed(1);return e>0?`+${n}s`:e<0?`-${n}s`:"0.0s"}function Ws(e,n){const t=e.clientWidth||0,s=e.clientHeight||0,o=e.videoWidth>0&&e.videoHeight>0?e.videoWidth/e.videoHeight:0;let i=s;o>0&&t>0&&s>0&&(i=t/s>o?s:t/o);const p=Math.max(0,(s-i)/2),_=Math.max(0,Math.min(100,Number(n)||0))/100*i;return p+_}const Us=({isOpen:e,onClose:n,title:t,message:s,resumeLabel:o="Resume",restartLabel:i="Start Over",onResume:p,onRestart:_})=>r($t,{isOpen:e,onClose:n,title:t,width:"sm",children:r("div",{style:{padding:"1rem",textAlign:"center"},children:[r("p",{children:s}),r("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[r(re,{variant:"secondary",onClick:_,children:i}),r(re,{onClick:p,children:o})]})]})}),uo="_centerControls_61n7k_1",po="_centerSkipBtn_61n7k_15",fo="_centerPlayPause_61n7k_40",mo="_playIconOffset_61n7k_71",de={centerControls:uo,centerSkipBtn:po,centerPlayPause:fo,playIconOffset:mo},zs=({isPlaying:e,onTogglePlay:n,onSkipBack:t,onSkipForward:s,skipSeconds:o=10})=>r("div",{className:de.centerControls,onClick:i=>i.stopPropagation(),children:[r("button",{className:de.centerSkipBtn,onClick:t,title:`Skip back ${o}s`,"aria-label":`Skip back ${o} seconds`,children:r(Q,{name:"replay-10"})}),r("button",{className:de.centerPlayPause,"data-speed-boost-ignore":"true",onClick:n,"aria-label":e?"Pause":"Play",children:e?r(Q,{name:"pause"}):r(Q,{name:"play",className:de.playIconOffset})}),r("button",{className:de.centerSkipBtn,onClick:s,title:`Skip forward ${o}s`,"aria-label":`Skip forward ${o} seconds`,children:r(Q,{name:"forward-10"})})]}),Ks=({visible:e,title:n,episode:t,onBack:s,classes:o})=>r("div",{className:`${o.overlay} ${e?"":o.hidden} `,"data-speed-boost-ignore":"true",style:{pointerEvents:"none",background:"none"},children:r("div",{className:o.top,onClick:i=>i.stopPropagation(),children:[r("button",{className:o.backBtn,onClick:i=>{i.stopPropagation(),s()},title:"Back","aria-label":"Back",children:r(Q,{name:"chevron-left"})}),r("div",{className:o.titleInfo,children:[r("span",{className:o.title,children:n}),t&&r("span",{className:o.episode,children:t})]})]})}),Gs=({classes:e,videoRef:n,duration:t,formatTime:s,isScrubbing:o,buffered:i="auto",onSeek:p,onScrubStart:_,onScrubMove:a,onScrubEnd:h,timeLabelRef:l,children:E})=>{const v=b(null),L=b(null),f=b(null),g=b(null),S=b(null),u=b(!1),y=b(o);y.current=o;const d=b({onScrubMove:a,onScrubEnd:h});d.current={onScrubMove:a,onScrubEnd:h};const[N,$]=C({time:0,position:null});A(()=>{const m=n.current;if(!m)return;const w=j=>{const D=j/t*100||0;L.current&&(L.current.style.width=`${D}%`),f.current&&(f.current.style.left=`${D}%`),l?.current&&(l.current.innerText=`${s(j)} / ${s(t)}`)},R=()=>{o||w(m.currentTime)},U=()=>{if(i==="auto"&&m.buffered.length>0){const D=m.buffered.end(m.buffered.length-1)/t*100||0;g.current&&(g.current.style.width=`${D}%`)}};return w(m.currentTime),U(),m.addEventListener("timeupdate",R),m.addEventListener("progress",U),()=>{m.removeEventListener("timeupdate",R),m.removeEventListener("progress",U)}},[n,t,o,i,s,l]);const W=m=>{if(!v.current)return 0;const w=v.current.getBoundingClientRect();return Math.min(1,Math.max(0,(m-w.left)/w.width))},G=m=>{const w=m*t,R=w/t*100||0;L.current&&(L.current.style.width=`${R}%`),f.current&&(f.current.style.left=`${R}%`),l?.current&&(l.current.innerText=`${s(w)} / ${s(t)}`);const U=v.current?.getBoundingClientRect();$({time:w,position:U?m*U.width:null})};A(()=>{if(!o){S.current=null;return}const m=R=>{if(S.current!==null&&R.pointerId!==S.current||!t)return;const U=W(R.clientX);d.current.onScrubMove(U);const j=U*t,D=j/t*100||0;L.current&&(L.current.style.width=`${D}%`),f.current&&(f.current.style.left=`${D}%`),l?.current&&(l.current.innerText=`${s(j)} / ${s(t)}`);const ee=v.current?.getBoundingClientRect();$({time:j,position:ee?U*ee.width:null})},w=R=>{S.current!==null&&R.pointerId!==S.current||(S.current=null,u.current=!0,R.pointerType!=="mouse"&&$({time:0,position:null}),d.current.onScrubEnd())};return document.addEventListener("pointermove",m),document.addEventListener("pointerup",w),document.addEventListener("pointercancel",w),()=>{document.removeEventListener("pointermove",m),document.removeEventListener("pointerup",w),document.removeEventListener("pointercancel",w)}},[o,t,s,l]);const B=m=>{if(m.pointerType==="mouse"&&m.button!==0||!n.current||!t)return;m.preventDefault(),S.current=m.pointerId;try{v.current?.setPointerCapture(m.pointerId)}catch{}y.current||_();const w=W(m.clientX);a(w),G(w)},q=m=>{if(!t||y.current||m.pointerType!=="mouse")return;const w=W(m.clientX);$({time:w*t,position:m.clientX-(v.current?.getBoundingClientRect().left??0)})},z=m=>{if(!(S.current!==null&&m.pointerId!==S.current)&&y.current){S.current=null,u.current=!0,m.pointerType!=="mouse"&&$({time:0,position:null});try{v.current?.hasPointerCapture(m.pointerId)&&v.current.releasePointerCapture(m.pointerId)}catch{}h()}};return r("div",{className:`${e.container} ${o&&e.scrubbing?e.scrubbing:""}`,ref:v,role:"slider","aria-label":"Seek","aria-valuemin":0,"aria-valuemax":Math.round(t||0),"aria-valuenow":Math.round((Number(L.current?.style.width?.replace("%",""))||0)*(t||0)/100),tabIndex:0,onClick:m=>{if(u.current){u.current=!1;return}!n.current||isNaN(t)||t===0||p(W(m.clientX))},onPointerDown:B,onPointerMove:q,onPointerUp:z,onPointerCancel:z,onMouseMove:m=>{if(o||!t)return;const w=W(m.clientX);$({time:w*t,position:m.clientX-(v.current?.getBoundingClientRect().left??0)})},onMouseLeave:()=>{o||$({time:0,position:null})},onKeyDown:m=>{if(!(!n.current||!t)&&(m.key==="ArrowRight"||m.key==="ArrowLeft")){m.preventDefault();const w=(m.key==="ArrowRight"?5:-5)/t,R=n.current.currentTime/t||0;p(Math.min(1,Math.max(0,R+w)))}},children:[N.position!==null&&r("div",{className:e.timeBubble,style:{left:N.position},children:s(N.time)}),r("div",{className:e.bar,children:[r("div",{className:e.buffered,ref:g,style:i==="full"?{width:"100%"}:void 0}),r("div",{className:e.watched,ref:L}),r("div",{className:e.thumb,ref:f,onMouseDown:m=>{m.preventDefault(),n.current&&(y.current||_())}}),E]})]})};function Ee(){try{if(typeof window>"u")return!1;const e=window.matchMedia?.("(pointer: coarse)").matches??!1,t=(navigator.maxTouchPoints??0)>0||"ontouchstart"in window;return e||t}catch{return!1}}function nt(){const[e,n]=C(Ee);return A(()=>{n(Ee());let t=null;const s=()=>n(Ee());try{t=window.matchMedia("(pointer: coarse)"),t.addEventListener?t.addEventListener("change",s):t.addListener(s)}catch{}return window.addEventListener("touchstart",s,{passive:!0,once:!0}),()=>{try{t&&(t.removeEventListener?t.removeEventListener("change",s):t.removeListener(s))}catch{}window.removeEventListener("touchstart",s)}},[]),e}const ho=450,Xs=({muted:e,volume:n,volumeIcon:t,buttonClassName:s,sliderClassName:o,onToggleMute:i,onVolumeChange:p,onExpandedChange:_})=>{const a=nt(),[h,l]=C(!1),E=b(null),v=b(!1),L=b(null),f=x(d=>{l(d),_?.(d)},[_]);A(()=>()=>{E.current&&window.clearTimeout(E.current)},[]),A(()=>{if(!h)return;const d=N=>{L.current&&!L.current.contains(N.target)&&f(!1)};return document.addEventListener("pointerdown",d),()=>document.removeEventListener("pointerdown",d)},[h,f]);const g=e?0:n,S=()=>{v.current=!1,E.current&&window.clearTimeout(E.current),E.current=window.setTimeout(()=>{v.current=!0,f(!0)},ho)},u=()=>{E.current&&(window.clearTimeout(E.current),E.current=null)},y=d=>{if(d.stopPropagation(),v.current){v.current=!1;return}if(a){h?i():f(!0);return}i()};return r("div",{ref:L,className:ce.volumeWrap,"data-expanded":h?"true":"false",onContextMenu:d=>d.preventDefault(),children:[r("button",{type:"button",className:s,onClick:y,onPointerDown:S,onPointerUp:u,onPointerLeave:u,onContextMenu:d=>d.preventDefault(),"aria-label":e?"Unmute":"Mute","aria-expanded":h,children:t}),r("input",{type:"range",min:"0",max:"1",step:"0.05",value:g,onChange:d=>p(parseFloat(d.target.value)),onClick:d=>d.stopPropagation(),onPointerDown:d=>d.stopPropagation(),onContextMenu:d=>d.preventDefault(),className:`${ce.volumeSlider} ${o??""}`,style:{"--volume-percent":`${g*100}%`},"aria-label":"Volume"})]})},Qe=280;function vo(e){return e?!!e.closest('button, input, select, textarea, a, [role="button"], [data-player-ui="true"]'):!1}const Js=({player:e,topBar:n,centerControls:t,bottomBar:s,settingsPanel:o,overlays:i,isInteracting:p=!1,className:_,chromeDisabled:a=!1,children:h})=>{const{state:l,refs:E,actions:v}=e,L=E.playerContainerRef,g=nt()?5e3:3e3,S=b(0),u=b(null),y=b(p);y.current=p;const d=x(()=>{const B=v.inactivityTimer.current;B&&(window.clearTimeout(B),v.inactivityTimer.current=null)},[v]),N=x(()=>{d(),l.isPlaying&&(y.current||l.useNativeControls||(v.inactivityTimer.current=window.setTimeout(()=>{if(y.current)return;v.setShowControls(!1);const B=L.current;B&&l.isFullscreen&&(B.style.cursor="none")},g)))},[v,d,L,g,l.isFullscreen,l.isPlaying,l.useNativeControls]),$=x(()=>{const B=L.current;B&&(B.style.cursor="default"),!l.showControls&&!l.useNativeControls&&v.setShowControls(!0),N()},[v,L,N,l.showControls,l.useNativeControls]);A(()=>{if(l.showControls){if(!l.isPlaying){d();return}if(p||l.isScrubbing||l.showSettings||l.showVolumeSlider){v.setShowControls(!0),d();return}N()}},[v,d,p,N,l.isPlaying,l.isScrubbing,l.showControls,l.showSettings,l.showVolumeSlider]),A(()=>()=>d(),[d]);const W=x(B=>{const q=B.target;if(vo(q))return;const z=Date.now(),m=z-S.current<Qe;if(S.current=z,m){u.current&&(window.clearTimeout(u.current),u.current=null),v.toggleFullscreen();return}u.current&&window.clearTimeout(u.current),u.current=window.setTimeout(()=>{u.current=null,v.setShowControls(!l.showControls),l.showControls?N():$()},Qe)},[v,N,l.showControls,$]);A(()=>()=>{u.current&&window.clearTimeout(u.current)},[]);const G=l.showControls||l.isScrubbing||l.showSettings||l.showVolumeSlider;return r("div",{ref:L,className:`${ce.shell} ${l.isFullscreen?ce.shellFullscreen:""} ${_??""}`,onContextMenu:B=>B.preventDefault(),onPointerMove:B=>{B.pointerType==="mouse"&&$()},onMouseLeave:()=>{window.matchMedia?.("(hover: hover) and (pointer: fine)").matches&&l.isPlaying&&!y.current&&v.setShowControls(!1)},children:[r("div",{className:ce.stage,onClick:W,onContextMenu:B=>B.preventDefault(),children:h}),i,!a&&!l.useNativeControls&&r("div",{className:ce.uiLayer,onContextMenu:B=>B.preventDefault(),children:[r("div",{"data-player-ui":"true",children:n}),G&&t&&r("div",{"data-player-ui":"true",children:t}),r("div",{"data-player-ui":"true",children:s}),o&&r("div",{"data-player-ui":"true",children:o})]})]})},_o="_statusArea_1xccu_1",go="_toggleBtn_1xccu_20",yo="_shortcuts_1xccu_46",bo="_shortcutGroup_1xccu_56",wo="_shortcut_1xccu_46",So="_key_1xccu_70",Co="_label_1xccu_91",P={statusArea:_o,toggleBtn:go,shortcuts:yo,shortcutGroup:bo,shortcut:wo,key:So,label:Co},Qs=({showTheater:e=!0})=>{const[n,t]=C(!1);return r("div",{className:P.statusArea,children:[r("button",{type:"button",className:P.toggleBtn,onClick:()=>t(s=>!s),"aria-expanded":n,"aria-controls":"player-shortcuts",children:[r(Q,{name:"keyboard",size:14}),r("span",{children:"Keyboard Shortcuts"}),n?r(Q,{name:"chevron-up",size:12}):r(Q,{name:"chevron-down",size:12})]}),n&&r("div",{id:"player-shortcuts",className:P.shortcuts,children:[r("div",{className:P.shortcutGroup,children:[r("div",{className:P.shortcut,children:[r("span",{className:P.key,children:"↑"}),r("span",{className:P.key,children:"↓"}),r("span",{className:P.label,children:"Volume"})]}),r("div",{className:P.shortcut,children:[r("span",{className:P.key,children:"←"}),r("span",{className:P.key,children:"→"}),r("span",{className:P.label,children:"Seek"})]})]}),r("div",{className:P.shortcutGroup,children:[r("div",{className:P.shortcut,children:[r("span",{className:P.key,children:"Space"}),r("span",{className:P.label,children:"Play/Pause"})]}),r("div",{className:P.shortcut,children:[r("span",{className:P.key,children:"F"}),r("span",{className:P.label,children:"Fullscreen"})]}),r("div",{className:P.shortcut,children:[r("span",{className:P.key,children:"M"}),r("span",{className:P.label,children:"Mute"})]}),e&&r("div",{className:P.shortcut,children:[r("span",{className:P.key,children:"T"}),r("span",{className:P.label,children:"Theater"})]}),r("div",{className:P.shortcut,children:[r("span",{className:P.key,children:"N"}),r("span",{className:P.label,children:"Next"})]})]})]})]})},ko="_episodeListContainer_9tyin_1",Eo="_drawerContainer_9tyin_9",Lo="_episodeListHeader_9tyin_14",To="_drawerHeader_9tyin_20",Bo="_episodeListTitle_9tyin_29",xo="_rangeSelector_9tyin_41",No="_rangeButton_9tyin_47",Io="_active_9tyin_70",Po="_episodeList_9tyin_1",Mo="_drawerList_9tyin_89",Ao="_episodeItem_9tyin_118",$o="_watched_9tyin_145",Fo="_episodeThumb_9tyin_167",Ro="_episodeText_9tyin_176",Do="_episodeLabel_9tyin_184",Oo="_episodeSub_9tyin_189",M={episodeListContainer:ko,drawerContainer:Eo,episodeListHeader:Lo,drawerHeader:To,episodeListTitle:Bo,rangeSelector:xo,rangeButton:No,active:Io,episodeList:Po,drawerList:Mo,episodeItem:Ao,watched:$o,episodeThumb:Fo,episodeText:Ro,episodeLabel:Do,episodeSub:Oo},qo=({episodes:e,currentEpisode:n,watchedEpisodes:t=[],onEpisodeClick:s,variant:o="sidebar",title:i="Episodes",header:p})=>{const[_,a]=C(0),h=b(null),l=pe(()=>e.map(f=>typeof f=="string"?{id:f,label:`Episode ${f}`}:f),[e]),E=pe(()=>new Set(t),[t]);A(()=>{const f=h.current;if(!f)return;let g=f.parentElement;for(;g;){const y=window.getComputedStyle(g);if((y.overflowY==="auto"||y.overflowY==="scroll")&&g.scrollHeight>g.clientHeight)break;g=g.parentElement}if(!g)return;const S=g.getBoundingClientRect(),u=f.getBoundingClientRect();g.scrollTop+=u.top+u.height/2-(S.top+g.clientHeight/2)},[n,_]);const v=pe(()=>{if(l.length<=100)return[];const f=[];for(let g=0;g<l.length;g+=100){const S=g+1,u=Math.min(g+100,l.length);f.push(`${S}-${u}`)}return f},[l]),L=pe(()=>{if(v.length===0)return l;const f=v[_];if(!f)return l;const[g,S]=f.split("-"),u=parseInt(g,10),y=parseInt(S,10);return l.slice(u-1,y)},[l,v,_]);return r("div",{className:`${M.episodeListContainer} ${o==="drawer"?M.drawerContainer:""}`,children:[r("div",{className:`${M.episodeListHeader} ${o==="drawer"?M.drawerHeader:""}`,children:[p,r("h3",{className:M.episodeListTitle,children:i}),v.length>0&&r("div",{className:M.rangeSelector,children:v.map((f,g)=>r("button",{className:`${M.rangeButton} ${_===g?M.active:""}`,onClick:()=>a(g),children:f},f))})]}),r("div",{className:`${M.episodeList} ${o==="drawer"?M.drawerList:""}`,children:L.map(f=>{const g=f.id===n,S=E.has(f.id)||f.watched===!0;return r("div",{ref:g?h:void 0,className:`${M.episodeItem} ${S?M.watched:""} ${g?M.active:""}`,onClick:()=>s(f.id),children:[f.thumbnail&&r("img",{src:f.thumbnail,alt:"",loading:"lazy",decoding:"async",className:M.episodeThumb}),r("span",{className:M.episodeText,children:[r("span",{className:M.episodeLabel,children:f.label??`Episode ${f.id}`}),f.sublabel&&r("span",{className:M.episodeSub,children:f.sublabel})]})]},f.id)})})]})},js=({variant:e="sidebar",count:n=12})=>r("div",{className:`${M.episodeListContainer} ${e==="drawer"?M.drawerContainer:""}`,children:[r("div",{className:`${M.episodeListHeader} ${e==="drawer"?M.drawerHeader:""}`,children:[r("h3",{className:M.episodeListTitle,children:"Episodes"}),r("div",{className:M.rangeSelector,children:[r(ye,{width:"60px",height:"28px",variant:"rectangular"}),r(ye,{width:"60px",height:"28px",variant:"rectangular"}),r(ye,{width:"60px",height:"28px",variant:"rectangular"})]})]}),r("div",{className:`${M.episodeList} ${e==="drawer"?M.drawerList:""}`,children:Array.from({length:n}).map((t,s)=>r("div",{className:M.episodeItem,style:{border:"none",background:"transparent"},children:r(ye,{width:"120px",height:"1.2rem",variant:"text"})},s))})]}),Ho="_shell_cys6s_1",Vo="_overlay_cys6s_10",Wo="_drawer_cys6s_21",Uo="_handle_cys6s_56",zo="_header_cys6s_64",Ko="_headerCopy_cys6s_73",Go="_kicker_cys6s_79",Xo="_title_cys6s_87",Jo="_closeBtn_cys6s_94",Qo="_body_cys6s_116",J={shell:Ho,overlay:Vo,drawer:Wo,handle:Uo,header:zo,headerCopy:Ko,kicker:Go,title:Xo,closeBtn:Jo,body:Qo};function Ys({isOpen:e,onClose:n,episodes:t,currentEpisode:s,watchedEpisodes:o=[],onEpisodeClick:i,title:p,header:_}){return A(()=>{if(!e)return;const a=l=>{l.key==="Escape"&&n()},h=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",a),()=>{document.body.style.overflow=h,document.removeEventListener("keydown",a)}},[e,n]),e?At(r("div",{className:J.shell,role:"dialog","aria-modal":"true","aria-label":"Episode picker",children:[r("button",{className:J.overlay,type:"button",onClick:n,"aria-label":"Close episodes"}),r("aside",{className:J.drawer,children:[r("div",{className:J.handle}),r("div",{className:J.header,children:[r("div",{className:J.headerCopy,children:[r("span",{className:J.kicker,children:"Episode picker"}),r("h3",{className:J.title,children:"Choose an episode"})]}),r("button",{className:J.closeBtn,type:"button",onClick:n,"aria-label":"Close",children:r(Q,{name:"times"})})]}),r("div",{className:J.body,children:r(qo,{episodes:t,currentEpisode:s,watchedEpisodes:o,onEpisodeClick:i,variant:"drawer",title:p,header:_})})]})]}),document.body):null}const jo="_sourceSelectionContainer_c5tub_76",Yo="_providerSelectContainer_c5tub_89",Zo="_providerSelect_c5tub_89",es="_sourceSelect_c5tub_76",ts="_sourceButtons_c5tub_145",ns="_sourceButton_c5tub_145",rs="_active_c5tub_170",Zs={sourceSelectionContainer:jo,providerSelectContainer:Yo,providerSelect:Zo,sourceSelect:es,sourceButtons:ts,sourceButton:ns,active:rs};function Pe(){return document}function rt(e){const n=Pe();if(document.fullscreenElement)return document.fullscreenElement;if(n.webkitFullscreenElement)return n.webkitFullscreenElement;const t=e;return t?.webkitDisplayingFullscreen?t:null}function ae(e){return rt(e)!==null}async function os(e,n){if(rt(n))return;const t=e;try{if(typeof e.requestFullscreen=="function"){await e.requestFullscreen();return}if(typeof t.webkitRequestFullscreen=="function"){await t.webkitRequestFullscreen();return}if(typeof t.webkitRequestFullScreen=="function"){await t.webkitRequestFullScreen();return}}catch{}const s=n;if(s&&typeof s.webkitEnterFullscreen=="function"){if(s.webkitSupportsFullscreen===!1)return;try{await s.webkitEnterFullscreen()}catch{}}}async function ss(e){const n=Pe();try{if(document.fullscreenElement&&typeof document.exitFullscreen=="function"){await document.exitFullscreen();return}if(n.webkitFullscreenElement&&typeof n.webkitExitFullscreen=="function"){await n.webkitExitFullscreen();return}}catch{}const t=e;if(t?.webkitDisplayingFullscreen&&typeof t.webkitExitFullscreen=="function"){try{t.webkitExitFullscreen()}catch{}return}try{typeof n.webkitCancelFullScreen=="function"?n.webkitCancelFullScreen():!document.fullscreenElement&&typeof document.exitFullscreen=="function"&&(document.fullscreenElement??n.webkitFullscreenElement)&&await document.exitFullscreen()}catch{}}async function cs(e,n){!e&&!n||(ae(n)?await ss(n):e&&await os(e,n))}function as(e,n){const t=()=>{try{n(ae(e()))}catch{}},s=Pe(),o=t;s.addEventListener("fullscreenchange",t),s.addEventListener("webkitfullscreenchange",o),s.addEventListener("webkitbeginfullscreen",o,!0),s.addEventListener("webkitendfullscreen",o,!0);const i=e();return i?.addEventListener("webkitbeginfullscreen",o),i?.addEventListener("webkitendfullscreen",o),()=>{s.removeEventListener("fullscreenchange",t),s.removeEventListener("webkitfullscreenchange",o),s.removeEventListener("webkitbeginfullscreen",o,!0),s.removeEventListener("webkitendfullscreen",o,!0),i?.removeEventListener("webkitbeginfullscreen",o),i?.removeEventListener("webkitendfullscreen",o)}}const ec=({skipIntervals:e,showId:n,episodeNumber:t,episodeCount:s,sourceType:o,showMeta:i})=>{const p=qt(),_=Ft(),a=b(null),h=b(null),l=b(null),E=b(null),v=b(!1),L=b(null),f=b(0),g=b(1),S=b({mouse:!1,keyboard:!1}),u=b(null),y=b(null),d=b(!1),N=b(Math.random().toString(36).substring(2)),[$,W]=C(!1),[G,B]=C(()=>{try{return localStorage.getItem("playerMuted")==="true"}catch{return!1}}),[q,z]=C(()=>{try{const c=parseFloat(localStorage.getItem("playerVolume")||"");return isNaN(c)?1:Math.max(0,Math.min(1,c))}catch{return 1}}),[m,w]=C(!1),[R,U]=C(0),[j,D]=C(!0),[ee,Me]=C(!1),[ot,Ae]=C({time:0,position:null}),[we,st]=C(localStorage.getItem("autoSkipEnabled")==="true"),[ct,Se]=C(null),[at,it]=C(!1),[te]=C(io),[lt,ut]=C(te.fontSize),[dt,pt]=C(te.position),[ft,mt]=C(te.bgOpacity),[ht,vt]=C(te.bgColor),[_t,gt]=C(te.textColor),[yt,bt]=C(te.edge),[wt,St]=C(te.bold),[Ct,kt]=C([]),[Et,Lt]=C(null),[Tt,Bt]=C(!1),[xt,Nt]=C(!1),[fe,X]=C(!1),[It,me]=C(!1),[Pt,$e]=C(()=>{try{return localStorage.getItem("playerUseNativeControls")==="true"}catch{return!1}}),ie=b(!1),Ce=b(-1),he=x(()=>{const c=a.current;return!n||!t||!i?.name?null:{showId:n,episodeNumber:t,episodeCount:s,currentTime:c?c.currentTime:0,duration:c?c.duration:0,showName:i.name,showThumbnail:i.thumbnail,nativeName:i.names?.native,englishName:i.names?.english,genres:Array.isArray(i.genres)?i.genres.map(T=>typeof T=="string"?T:T?.name).filter(Boolean):void 0,popularityScore:i.score,type:i.type,isPlaying:c?!c.paused:!0,sessionId:N.current,isAdult:i.isAdult}},[n,t,s,i]),O=x((c=!1,T=!1)=>{if(ie.current)return!1;const I=he();if(!I)return!1;const k=a.current;if(!k&&o!=="iframe")return!1;const F=k?k.currentTime>=k.duration*.8:!1;let H=k?k.currentTime:0;if(c&&F&&(H=k?k.duration:0),!T){if(H===0&&!F)return!1;const K=k?Math.abs(H-Ce.current):0;if(!c&&k&&H!==k.duration&&K<5)return!1}return I.currentTime=H,Ce.current=H,c?(async()=>{try{await Je.progress.updateProgress.mutate(I),p.invalidateQueries({queryKey:["video-sources",n,t]}),p.invalidateQueries({queryKey:["allContinueWatching"]}),p.invalidateQueries({queryKey:["thisWeekSchedule"]}),p.invalidateQueries(_.continueWatching.pathFilter())}catch(K){console.error("Failed to update progress:",K)}})():Rt("progress.updateProgress",I).catch(K=>console.error("Failed to update progress:",K)),!0},[he,o,p,n,t,_.continueWatching]);A(()=>{const c=a.current;c&&(c.volume=q,c.muted=G)},[a,q,G]),A(()=>{const c=()=>{ie.current||O(!0)};window.addEventListener("beforeunload",c);const T=L,I=E;return()=>{window.removeEventListener("beforeunload",c),ie.current||O(!0),T.current&&clearTimeout(T.current),I.current&&clearTimeout(I.current)}},[O]);const ve=x(()=>{const c=h.current;c&&cs(c,a.current).catch(T=>{console.error(`Error attempting to toggle full-screen mode: ${T?.message} (${T?.name})`)})},[]),_e=x(()=>{a.current&&(a.current.paused?a.current.play().catch(()=>console.warn("Autoplay was prevented.")):(a.current.pause(),D(!0)))},[D]),oe=x(()=>{const c=a.current;if(!c)return;const T=S.current.mouse||S.current.keyboard;c.playbackRate=T?2:g.current},[]),le=x(c=>{S.current.mouse!==c&&(S.current.mouse=c,me(c||S.current.keyboard),oe())},[oe]),se=x(c=>{S.current.keyboard!==c&&(S.current.keyboard=c,me(S.current.mouse||c),oe())},[oe]),ue=x(c=>{a.current&&(a.current.currentTime+=c,L.current&&clearTimeout(L.current),L.current=setTimeout(()=>{O(!1,!0)},1500),D(!0))},[O,D]),ge=x(()=>{if(!a.current)return;const c=!a.current.muted;a.current.muted=c,B(c),localStorage.setItem("playerMuted",String(c)),!c&&a.current.volume===0&&(a.current.volume=.5,z(.5),localStorage.setItem("playerVolume",String(.5))),D(!0)},[D]);A(()=>{const c=()=>a.current,T=as(c,I=>{w(I),I&&D(!0)});return w(ae(c())),T},[D]),A(()=>{const c=I=>{if(!I.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')){if(I.code==="Space"){if(I.preventDefault(),d.current)return;d.current=!0,y.current&&clearTimeout(y.current),y.current=window.setTimeout(()=>{y.current=null,d.current&&se(!0)},180);return}switch(I.key.toLowerCase()){case"f":ve();break;case"m":ge();break;case"arrowright":ue(10);break;case"arrowleft":ue(-10);break;case"arrowup":if(I.preventDefault(),a.current){const F=Math.min(1,a.current.volume+.1);a.current.volume=F,z(F)}break;case"arrowdown":if(I.preventDefault(),a.current){const F=Math.max(0,a.current.volume-.1);a.current.volume=F,z(F)}break}}},T=I=>{if(I.code==="Space"){if(I.preventDefault(),d.current=!1,S.current.keyboard){se(!1);return}y.current&&(clearTimeout(y.current),y.current=null,_e())}};return document.addEventListener("keydown",c),document.addEventListener("keyup",T),()=>{document.removeEventListener("keydown",c),document.removeEventListener("keyup",T),y.current&&(clearTimeout(y.current),y.current=null),d.current=!1,se(!1),me(!1)}},[se,_e,ve,ge,ue]),A(()=>{const c=H=>H?!!H.closest('[data-speed-boost-ignore="true"], [data-player-ui="true"], button, input, select, textarea, a, [role="button"], [role="slider"], [contenteditable="true"]'):!0,T=H=>{if(H.button!==0)return;const Y=H.target;if(!Y||c(Y))return;const K=h.current;!K||!K.contains(Y)||(u.current&&clearTimeout(u.current),u.current=window.setTimeout(()=>{u.current=null,le(!0)},180))},I=H=>{const Y=H.target;if(!Y||c(Y))return;const K=h.current;!K||!K.contains(Y)||(u.current&&clearTimeout(u.current),u.current=window.setTimeout(()=>{u.current=null,le(!0)},180))},k=()=>{u.current&&(clearTimeout(u.current),u.current=null),le(!1)},F=()=>{u.current&&(clearTimeout(u.current),u.current=null),d.current=!1,y.current&&(clearTimeout(y.current),y.current=null),se(!1),le(!1),me(!1)};return document.addEventListener("mousedown",T),document.addEventListener("mouseup",k),document.addEventListener("touchstart",I,{passive:!0}),document.addEventListener("touchend",k),document.addEventListener("touchcancel",k),document.addEventListener("pointerup",k),document.addEventListener("pointercancel",k),window.addEventListener("blur",F),()=>{document.removeEventListener("mousedown",T),document.removeEventListener("mouseup",k),document.removeEventListener("touchstart",I),document.removeEventListener("touchend",k),document.removeEventListener("touchcancel",k),document.removeEventListener("pointerup",k),document.removeEventListener("pointercancel",k),window.removeEventListener("blur",F),u.current&&(clearTimeout(u.current),u.current=null)}},[se,le]);const Fe=x(()=>{W(!0),X(!1),setTimeout(()=>O(!1,!0),50)},[O]),Re=x(()=>{W(!0),X(!1)},[]),De=x(()=>{const c=a.current;c&&!c.paused&&c.readyState>=3&&!c.seeking||X(!0)},[]),Oe=x(()=>{X(!1)},[]),qe=x(()=>{W(!1),X(!1),D(!0),setTimeout(()=>O(!1,!0),50)},[O]),He=b(!1);He.current=fe,A(()=>{if(!fe)return;let c=a.current?.currentTime??0,T=0;const I=window.setInterval(()=>{const k=a.current;if(!k)return;T+=1;const F=k.currentTime,H=F!==c;if(c=F,!(k.paused||k.seeking)){if(H||k.readyState>=3){X(!1);return}T>=24&&k.readyState>=2&&!k.ended&&X(!1)}},500);return()=>window.clearInterval(I)},[fe]),A(()=>{ie.current=!1,Ce.current=-1,f.current=0,N.current=Math.random().toString(36).substring(2),U(0),X(!1)},[n,t]);const Ve=x(()=>{U(0),X(!1)},[]);A(()=>{const c=N.current;return()=>{Dt(c)}},[n,t]),A(()=>{if(o!=="iframe")return;O(!1,!0);const c=setInterval(()=>{O(!1,!0)},6e4);return()=>clearInterval(c)},[o,O]);const We=x(()=>{U(a.current?.duration||0),oe()},[oe]),Ue=x(()=>{if(a.current){const c=a.current.muted,T=a.current.volume;B(c),z(T),localStorage.setItem("playerMuted",String(c)),localStorage.setItem("playerVolume",String(T))}},[]),ze=x(()=>{},[]),Ke=x(()=>{const c=a.current;if(!c)return;He.current&&!c.paused&&!c.seeking&&X(!1);const T=c.currentTime||0,I=Date.now();I-f.current>6e4&&O()&&(f.current=I);const k=e.find(F=>T>=F.start_time&&T<F.end_time)||null;Se(F=>F?.skip_id!==k?.skip_id?k:F),we&&k&&!c.paused&&(c.currentTime=k.end_time,Se(null))},[e,we,O]),Ge=x(()=>{const c=he();c&&(c.currentTime=c.duration,Je.progress.updateProgress.mutate(c).then(()=>{p.invalidateQueries({queryKey:["video-sources",n,t]}),p.invalidateQueries({queryKey:["allContinueWatching"]})}).catch(T=>console.error("Failed to send final progress:",T)))},[he,p,n,t]),Xe=x(()=>{ie.current=!0,Ge()},[Ge]);A(()=>{const c=()=>{ee&&(Me(!1),Ae({time:0,position:null}),v.current&&a.current?.play(),O(!1,!0))};return ee&&(document.addEventListener("mouseup",c),document.addEventListener("pointerup",c),document.addEventListener("touchend",c),document.addEventListener("pointercancel",c),document.addEventListener("touchcancel",c)),()=>{document.removeEventListener("mouseup",c),document.removeEventListener("pointerup",c),document.removeEventListener("touchend",c),document.removeEventListener("pointercancel",c),document.removeEventListener("touchcancel",c)}},[ee,O]);const Mt=pe(()=>({togglePlay:_e,seek:ue,toggleMute:ge,toggleFullscreen:ve,onPlay:Fe,onPause:qe,onLoadedMetadata:We,formatTime:Ot,onVolumeChange:Ue,onProgress:ze,onTimeUpdate:Ke,onEnded:Xe,setShowControls:D,setIsScrubbing:Me,setHoverTime:Ae,setIsAutoSkipEnabled:st,setCurrentSkipInterval:Se,setShowCCMenu:it,setSubtitleFontSize:ut,setSubtitlePosition:pt,setSubtitleBgOpacity:mt,setSubtitleBgColor:vt,setSubtitleTextColor:gt,setSubtitleEdge:bt,setSubtitleBold:St,setAvailableSubtitles:kt,setActiveSubtitleTrack:Lt,setShowSettings:Bt,setShowVolumeSlider:Nt,wasPlayingBeforeScrub:v,inactivityTimer:E,setIsFullscreen:w,onWaiting:De,onPlaying:Re,onCanPlay:Oe,sendProgressUpdate:O,setUseNativeControls:$e,resetMediaState:Ve}),[_e,ue,ge,ve,Fe,qe,We,Ue,ze,Ke,Xe,w,De,Re,Oe,O,$e,Ve]);return{refs:{videoRef:a,playerContainerRef:h,progressBarRef:l},state:{isPlaying:$,isMuted:G,volume:q,isFullscreen:m,duration:R,showControls:j,isScrubbing:ee,hoverTime:ot,isAutoSkipEnabled:we,currentSkipInterval:ct,showCCMenu:at,subtitleFontSize:lt,subtitlePosition:dt,subtitleBgOpacity:ft,subtitleBgColor:ht,subtitleTextColor:_t,subtitleEdge:yt,subtitleBold:wt,availableSubtitles:Ct,activeSubtitleTrack:Et,showSettings:Tt,showVolumeSlider:xt,isBuffering:fe,isSpeedBoostActive:It,useNativeControls:Pt},actions:Mt}};function is(){try{return typeof navigator<"u"&&/android/i.test(navigator.userAgent)}catch{return!1}}function tc(e,n){const{refs:t,actions:s}=e,o=b(n);o.current=n;const i=b(!1),p=b(!1),_=a=>{try{if(a)return a.matches}catch{}try{return window.innerWidth>window.innerHeight}catch{return!1}};A(()=>{if(!is())return;let a=null;const h=()=>{const l=t.playerContainerRef.current;if(_(a)){if(!o.current||!l||ae(t.videoRef.current)||p.current)return;i.current=!0,s.toggleFullscreen()}else p.current=!1,i.current&&(i.current=!1,ae(t.videoRef.current)&&s.toggleFullscreen())};try{a=window.matchMedia("(orientation: landscape)"),a.addEventListener?a.addEventListener("change",h):a.addListener(h)}catch{}return h(),()=>{try{a&&(a.removeEventListener?a.removeEventListener("change",h):a.removeListener(h))}catch{}}},[s,t.playerContainerRef,t.videoRef,n]),A(()=>{const a=()=>{if(!ae(t.videoRef.current)){i.current=!1;try{window.matchMedia("(orientation: landscape)").matches&&(p.current=!0)}catch{p.current=!0}}};return document.addEventListener("fullscreenchange",a),document.addEventListener("webkitfullscreenchange",a),()=>{document.removeEventListener("fullscreenchange",a),document.removeEventListener("webkitfullscreenchange",a)}},[t.videoRef])}const ls=e=>Math.max(8,Math.min(40,Math.ceil(e/16.7)+4));function nc({videoRef:e,canvasRef:n,delayMs:t,enabled:s}){const o=b(t);o.current=t;const i=b([]),p=b(-1),_=b(-1),a=b(!1),h=b(0),l=b(null);A(()=>{const E=u=>{if(u)try{u.close()}catch{}},v=()=>{for(const u of i.current)E(u.bitmap);i.current=[]};if(!s){v(),p.current=-1,_.current=-1,a.current=!1,h.current=0;return}let L=!1;const f=()=>{l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)},g=()=>{L||(f(),l.current=requestAnimationFrame(()=>{S()}))};async function S(){if(L)return;const u=e.current,y=n.current;if(!u||!y||u.videoWidth===0){g();return}if(u.paused||u.ended||document.hidden||u.readyState<HTMLMediaElement.HAVE_CURRENT_DATA){g();return}const d=u.getVideoPlaybackQuality().totalVideoFrames;if(d===p.current){g();return}(u.seeking||_.current>=0&&Math.abs(u.currentTime-_.current)>.5)&&(v(),a.current=!1,h.current=0,p.current=-1),_.current=u.currentTime,(y.width!==u.videoWidth||y.height!==u.videoHeight)&&(y.width=u.videoWidth,y.height=u.videoHeight);const N=Math.max(0,o.current||0);N>h.current&&(a.current=!1);try{const $=await createImageBitmap(u);if(L){E($);return}p.current=d;const W=performance.now(),G=y.getContext("2d"),B=w=>{G&&G.drawImage(w,0,0,y.width,y.height)};if(N<=0){v(),a.current=!1,h.current=0,B($),E($),g();return}const q=i.current;q.push({bitmap:$,capture:W});const z=ls(N);for(;q.length>z;)E(q.shift()?.bitmap);let m=-1;for(let w=q.length-1;w>=0;w--)if(W-q[w].capture>=N){m=w;break}if(m!==-1){for(let R=0;R<m;R++)E(q.shift()?.bitmap);const w=q.shift();w?(B(w.bitmap),E(w.bitmap),a.current=!0,h.current=N):B($)}else if(!a.current)B($);else{const w=q.shift();w?(B(w.bitmap),E(w.bitmap)):B($)}}catch{}g()}return g(),()=>{L=!0,f();for(const u of i.current)try{u.bitmap.close()}catch{}i.current=[]}},[s,e,n])}const je=(e,n)=>{try{localStorage.setItem("playerVideoDelayMs",String(e)),localStorage.setItem("playerVideoDelayEnabled",String(n))}catch{}},Ye=e=>{try{localStorage.setItem("playerVideoDelayEnabled",String(e))}catch{}};function rc(e,n){const[t,s]=C(()=>{try{const d=Number(localStorage.getItem("playerVideoDelayMs"));if(Number.isFinite(d)&&d>=0&&d<=500)return Math.round(d)}catch{}return 180}),[o,i]=C(()=>{try{return localStorage.getItem("playerVideoDelayEnabled")==="true"}catch{return!1}}),[p,_]=C(!1),[a,h]=C(!1),l=b(null),E=b(null),v=d=>{const N=Math.max(0,Math.min(500,Math.round(d)));s(N);try{localStorage.setItem("playerVideoDelayMs",String(N))}catch{}},L=d=>{i(d),Ye(d)},f=x(()=>{h(!1),_(!1)},[]);return{videoDelayMs:t,videoDelayEnabled:o,setDelayEnabled:L,handleVideoDelayChange:v,isCalibrating:p,testClipActive:a,stopCalibration:f,openAvSyncCalibrator:()=>{l.current={enabled:o,ms:t},i(!0),Ye(!0),n?.(),_(!0)},cancelAvSyncCalibrator:()=>{const d=l.current;l.current=null,d&&(s(d.ms),i(d.enabled),je(d.ms,d.enabled)),h(!1),_(!1)},applyAvSyncCalibrator:()=>{l.current=null,i(!0),je(t,!0),h(!1),_(!1)},toggleTestClip:()=>{if(a){h(!1);return}const d=e.current;d&&!isNaN(d.currentTime)&&(E.current=d.currentTime),h(!0)},calibReturnRef:E,effectiveVideoDelayMs:o?t:0}}function oc(){const[e,n]=C(()=>{try{return localStorage.getItem("playerTheaterMode")==="true"}catch{return!1}});A(()=>{try{e?document.body.classList.add("theater-mode"):document.body.classList.remove("theater-mode")}catch(o){console.error(o)}return()=>{try{document.body.classList.remove("theater-mode")}catch(o){console.error(o)}}},[e]);const t=x(()=>{n(o=>{const i=!o;try{localStorage.setItem("playerTheaterMode",i.toString())}catch{}return i})},[]),s=x(o=>{if(e&&o.target===o.currentTarget){n(!1);try{localStorage.setItem("playerTheaterMode","false")}catch{}}},[e]);return{isTheaterMode:e,toggleTheaterMode:t,handleLayoutClick:s}}const ne={enabled:!0,blur:60,saturation:150,brightness:70,opacity:60};function us(){try{const e=localStorage.getItem("playerAmbientLight");if(!e)return ne;const n=JSON.parse(e),t=(s,o,i,p)=>{const _=Number(s);return Number.isFinite(_)?Math.max(i,Math.min(p,_)):o};return{enabled:n.enabled??ne.enabled,blur:t(n.blur,ne.blur,0,120),saturation:t(n.saturation,ne.saturation,0,200),brightness:t(n.brightness,ne.brightness,20,120),opacity:t(n.opacity,ne.opacity,10,100)}}catch{return ne}}function sc(){const[e,n]=C(us),t=x(s=>{n(o=>{const i={...o,...s};try{localStorage.setItem("playerAmbientLight",JSON.stringify(i))}catch{}return i})},[]);return{settings:e,update:t}}const Le=160,Te=90,ds=120,cc=({videoRef:e,active:n,settings:t,className:s})=>{const o=b(null);return A(()=>{if(!n)return;const i=o.current,p=e.current;if(!i||!p)return;const _=i.getContext("2d",{alpha:!1});if(!_)return;let a=0,h=0,l=!1;const E=()=>{if(!(p.readyState<2||!p.videoWidth))try{const f=p.videoWidth,g=p.videoHeight,S=Le/Te,u=f/g;let y=f,d=g,N=0,$=0;u>S?(y=g*S,N=(f-y)/2):(d=f/S,$=(g-d)/2),_.drawImage(p,N,$,y,d,0,0,Le,Te)}catch{}},v=f=>{l||p.paused||(a=requestAnimationFrame(v),!(f-h<ds)&&(h=f,E()))},L=()=>{l||(cancelAnimationFrame(a),h=0,a=requestAnimationFrame(v))};return p.addEventListener("play",L),p.addEventListener("seeked",E),p.addEventListener("loadeddata",E),a=requestAnimationFrame(v),()=>{l=!0,cancelAnimationFrame(a),p.removeEventListener("play",L),p.removeEventListener("seeked",E),p.removeEventListener("loadeddata",E)}},[n,e]),n?r("canvas",{ref:o,width:Le,height:Te,"aria-hidden":"true",className:s??Kr.theaterAmbient,style:{filter:`blur(${t.blur}px) saturate(${t.saturation}%) brightness(${t.brightness}%)`,opacity:t.opacity/100}}):null},ps="_row_1fq55_1",fs="_rowHeader_1fq55_9",ms="_rowLabel_1fq55_17",hs="_rowValue_1fq55_28",vs="_slider_1fq55_36",_s="_swatches_1fq55_99",gs="_swatch_1fq55_99",ys="_swatchPicked_1fq55_114",bs="_colorInput_1fq55_120",ws="_segmented_1fq55_131",V={row:ps,rowHeader:fs,rowLabel:ms,rowValue:hs,slider:vs,swatches:_s,swatch:gs,swatchPicked:ys,colorInput:bs,segmented:ws},Ss=({label:e,display:n,min:t,max:s,step:o,value:i,percent:p,onChange:_,onCommit:a})=>r("div",{className:V.row,children:[r("div",{className:V.rowHeader,children:[r("span",{className:V.rowLabel,children:e}),r("span",{className:V.rowValue,children:n})]}),r("input",{type:"range",className:V.slider,min:t,max:s,step:o,value:i,"aria-label":e,"data-speed-boost-ignore":"true",onInput:h=>_(Number(h.target.value)),onMouseDown:h=>h.stopPropagation(),onPointerDown:h=>h.stopPropagation(),onTouchStart:h=>h.stopPropagation(),onPointerUp:a,onPointerCancel:a,onTouchEnd:a,onKeyUp:a,onBlur:a,style:{"--slider-percent":`${p}%`}})]}),ac=({label:e,colors:n,value:t,onChange:s})=>r("div",{className:V.row,children:[r("div",{className:V.rowHeader,children:r("span",{className:V.rowLabel,children:e})}),r("div",{className:V.swatches,children:[n.map(o=>r("button",{type:"button","aria-label":`${e} ${o}`,"aria-pressed":t.toLowerCase()===o.toLowerCase(),onClick:()=>s(o),className:`${V.swatch} ${t.toLowerCase()===o.toLowerCase()?V.swatchPicked:""}`,style:{backgroundColor:o}},o)),r("input",{type:"color","aria-label":`Custom ${e.toLowerCase()}`,className:V.colorInput,value:t,"data-speed-boost-ignore":"true",onInput:o=>s(o.target.value),onMouseDown:o=>o.stopPropagation(),onPointerDown:o=>o.stopPropagation(),onTouchStart:o=>o.stopPropagation()})]})]});function ic({label:e,options:n,value:t,onChange:s}){return r("div",{className:V.row,children:[r("div",{className:V.rowHeader,children:r("span",{className:V.rowLabel,children:e})}),r("div",{className:V.segmented,role:"group","aria-label":e,children:n.map(o=>r("button",{type:"button","aria-pressed":t===o,onClick:()=>s(o),children:[r("span",{children:o}),t===o&&r(Q,{name:"check",size:10})]},o))})]})}const be=10,Ie=500,Be=e=>Math.max(0,Math.min(Ie,Math.round(e))),lc=({isOpen:e,ms:n,onChange:t,onApply:s,onClose:o,testClipActive:i,onTestClip:p})=>e?r("div",{role:"dialog","aria-label":"Calibrate audio video sync","data-speed-boost-ignore":"true",onClick:_=>_.stopPropagation(),style:{position:"absolute",right:8,bottom:112,width:"min(260px, calc(100% - 16px))",maxHeight:"calc(100% - 124px)",overflowY:"auto",overflowX:"hidden",zIndex:60,display:"flex",flexDirection:"column",alignItems:"center",gap:8,padding:12,borderRadius:"var(--radius-lg)",border:"1px solid var(--glass-border)",background:"rgba(18, 18, 22, 0.95)",boxShadow:"var(--glass-shadow)",backdropFilter:"blur(14px)",WebkitBackdropFilter:"blur(14px)",boxSizing:"border-box"},children:[r("div",{style:{fontSize:"0.8rem",fontWeight:800,color:"var(--text-primary)"},children:"A/V sync"}),r("div",{children:r(re,{size:"sm",variant:"secondary",onClick:p,children:i?"Back to video":"Preview test clip"})}),r("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,flexWrap:"wrap"},children:[r(re,{size:"sm",onClick:()=>t(Be(n-be)),"aria-label":"Decrease delay by 10 milliseconds",children:["− ",be,"ms"]}),r("div",{style:{fontSize:"1.1rem",fontWeight:800,minWidth:64,textAlign:"center"},children:[n,"ms"]}),r(re,{size:"sm",onClick:()=>t(Be(n+be)),"aria-label":"Increase delay by 10 milliseconds",children:["+ ",be,"ms"]})]}),r(Ss,{label:"Video delay",display:`${n}ms`,min:0,max:Ie,step:5,value:n,percent:n/Ie*100,onChange:_=>t(Be(_))}),r("div",{style:{display:"flex",gap:8,justifyContent:"center",flexWrap:"wrap"},children:[r(re,{size:"sm",variant:"secondary",onClick:o,children:"Cancel"}),r(re,{size:"sm",onClick:s,children:["Apply ",n,"ms"]})]})]}):null;export{cc as A,Is as B,zs as C,Vs as D,js as E,Ms as F,Bs as G,xs as H,ac as I,qs as J,ic as K,Z as L,Ss as M,ne as N,Qs as P,Us as R,Gs as S,Os as T,Xs as U,Js as a,Ks as b,Zs as c,rc as d,nc as e,oc as f,Ps as g,tc as h,no as i,sc as j,$s as k,Ns as l,Hs as m,Fs as n,Ws as o,As as p,Ds as q,Rs as r,co as s,Kr as t,ec as u,qo as v,Ts as w,ce as x,lc as y,Ys as z};
@@ -1 +0,0 @@
1
- ._controls_ov6ol_1{display:flex;align-items:stretch;gap:1.25rem;flex-wrap:wrap;width:100%}._titleContainer_ov6ol_9{display:flex;flex-direction:column;gap:1rem}._scheduleInfo_ov6ol_15{display:flex;gap:1rem;font-size:.95rem;color:var(--text-tertiary);align-items:center}._status_ov6ol_23{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-light);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);padding:.35rem .85rem;border-radius:var(--radius-full);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}._nextEpisode_ov6ol_35{background:#ffffff0d;color:var(--text-secondary);padding:.35rem .85rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;border:1px solid var(--glass-border)}._watchlistBtn_ov6ol_45{background:#ffffff0d;color:var(--text-primary);border:1px solid rgba(255,255,255,.1);padding:.65rem 1.25rem;border-radius:var(--radius-full);font-weight:600;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;gap:.6rem;font-size:.85rem;flex:0 1 auto;min-width:120px;justify-content:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}._watchlistBtn_ov6ol_45:hover{background:#ffffff1f;border-color:#ffffff40;transform:translateY(-2px);box-shadow:0 4px 12px #00000040}._watchlistBtn_ov6ol_45._inList_ov6ol_72{background:color-mix(in srgb,var(--color-success) 12%,transparent);border-color:color-mix(in srgb,var(--color-success) 35%,transparent);color:var(--color-success)}._watchlistBtn_ov6ol_45._inList_ov6ol_72:hover{background:color-mix(in srgb,var(--color-success) 18%,transparent);border-color:var(--color-success)}._queueBtn_ov6ol_83{background:color-mix(in srgb,var(--accent) 8%,transparent);border-color:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent-light)}._queueBtn_ov6ol_83:hover{background:color-mix(in srgb,var(--accent) 14%,transparent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);color:var(--accent-lighter)}._queueActive_ov6ol_95{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:color-mix(in srgb,var(--accent) 60%,transparent);color:var(--accent-lighter)}._modeToggleBtn_ov6ol_101{background:#ffffff0d;color:var(--text-primary);border-color:#ffffff1a;flex:0 1 auto}._modeToggleActive_ov6ol_108{background:color-mix(in srgb,var(--color-info) 12%,transparent);border-color:color-mix(in srgb,var(--color-info) 45%,transparent);color:#dbeafe}._modeToggleActive_ov6ol_108:hover{background:color-mix(in srgb,var(--color-info) 18%,transparent);border-color:color-mix(in srgb,var(--color-info) 65%,transparent)}._nativeToggleBtn_ov6ol_119{background:#ffffff0d;color:var(--text-primary);border-color:#ffffff1a;flex:0 1 auto}._nativeToggleBtn_ov6ol_119:hover{background:#ffffff1f;border-color:#ffffff40;transform:translateY(-2px)}._nativeToggleActive_ov6ol_132{background:color-mix(in srgb,var(--color-warning) 10%,transparent);border-color:color-mix(in srgb,var(--color-warning) 40%,transparent);color:var(--color-warning)}._nativeToggleActive_ov6ol_132:hover{background:color-mix(in srgb,var(--color-warning) 16%,transparent);border-color:color-mix(in srgb,var(--color-warning) 60%,transparent)}._watchlistBtn_ov6ol_45:disabled{opacity:.7;cursor:wait;transform:none}._watchlistBtn_ov6ol_45:disabled:hover{transform:none}._markWatchedBtn_ov6ol_153{background:color-mix(in srgb,var(--color-info) 8%,transparent);border-color:color-mix(in srgb,var(--color-info) 25%,transparent);color:#93c5fd;flex:0 1 auto;justify-content:center}._markWatchedBtn_ov6ol_153:hover{background:color-mix(in srgb,var(--color-info) 14%,transparent);border-color:color-mix(in srgb,var(--color-info) 45%,transparent);color:#dbeafe}._markWatchedDone_ov6ol_167{background:color-mix(in srgb,var(--color-success) 12%,transparent);border-color:color-mix(in srgb,var(--color-success) 35%,transparent);color:var(--color-success)}._markWatchedDone_ov6ol_167:hover{background:color-mix(in srgb,var(--color-success) 18%,transparent);border-color:var(--color-success)}._completeSeriesBtn_ov6ol_178{background:color-mix(in srgb,var(--color-success) 10%,transparent);border-color:color-mix(in srgb,var(--color-success) 30%,transparent);color:#d1fae5;flex:0 1 auto;justify-content:center}._completeSeriesBtn_ov6ol_178:hover{background:color-mix(in srgb,var(--color-success) 16%,transparent);border-color:color-mix(in srgb,var(--color-success) 45%,transparent);color:#ecfdf5}._providerAndEpisodeRow_ov6ol_192{display:flex;align-items:flex-start;gap:1rem;flex-wrap:wrap}._episodeActions_ov6ol_199{display:flex;flex-wrap:wrap;gap:.75rem;margin:.5rem 0 .25rem}._desktopEpisodeActions_ov6ol_206{flex:1 1 320px;justify-content:flex-end;align-self:flex-end;margin:0}._mobileEpisodeActions_ov6ol_213{margin:.5rem 0 .25rem}._episodeNavBtn_ov6ol_217{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:.7rem 1rem;background:#ffffff0d;color:var(--text-primary);cursor:pointer;font-size:.9rem;font-weight:700;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}._episodeNavBtn_ov6ol_217:hover:not(:disabled){border-color:var(--text-secondary);background:#ffffff14}._episodeNavBtn_ov6ol_217:disabled{opacity:.45;cursor:not-allowed;transform:none}._episodeNavBtn_ov6ol_217._primary_ov6ol_247{background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);border-color:transparent;color:#fff}._episodeNavBtn_ov6ol_217._primary_ov6ol_247:hover:not(:disabled){background:linear-gradient(135deg,var(--accent-light) 0%,var(--accent) 100%)}._episodeNavBtn_ov6ol_217._secondary_ov6ol_257{background:#ffffff0a}._episodePickerBtn_ov6ol_261{display:none}._queueCountdown_ov6ol_265{position:absolute;left:50%;bottom:1.5rem;transform:translate(-50%);z-index:75;padding:.7rem 1rem;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:#121216eb;color:#fff;font-weight:700;box-shadow:var(--glass-shadow)}._speedBoostBadge_ov6ol_280{position:absolute;top:1.5rem;left:50%;transform:translate(-50%);z-index:75;display:flex;align-items:center;gap:.7rem;padding:.65rem 1rem;border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:var(--radius-md);background:#121216eb;color:#f5f3ff;font-weight:800;letter-spacing:.06em;text-transform:none;box-shadow:var(--glass-shadow);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}._speedBoostBadge_ov6ol_280 span{line-height:1}._speedBoostBadge_ov6ol_280 svg{display:block;flex-shrink:0}._videoContainer_ov6ol_311{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000;display:flex;justify-content:center;align-items:center;container-type:inline-size}._loadingOverlay_ov6ol_324{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;justify-content:center;align-items:center;z-index:10;background:#00000080;border-radius:inherit}._loadingDots_ov6ol_338{display:flex;gap:10px}._dot_ov6ol_343{width:12px;height:12px;border-radius:50%;background-color:var(--accent);animation:_bounce_ov6ol_1 1.4s infinite ease-in-out both;box-shadow:0 0 10px var(--accent-glow)}._dot_ov6ol_343:nth-child(1){animation-delay:-.32s}._dot_ov6ol_343:nth-child(2){animation-delay:-.16s}@keyframes _bounce_ov6ol_1{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}._bufferingOverlay_ov6ol_372{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:20}._bufferingSpinner_ov6ol_381{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:var(--accent);animation:_spin_ov6ol_921 1s ease-in-out infinite}@keyframes _spin_ov6ol_921{to{transform:rotate(360deg)}}._videoIframe_ov6ol_396{width:100%;height:100%;border:none;position:absolute;top:0;left:0;object-fit:cover;border-radius:inherit}._videoContainer_ov6ol_311 video{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;object-fit:contain;background-color:#000;border-radius:inherit}._videoContainer_ov6ol_311 video._videoElementHidden_ov6ol_419{opacity:0;pointer-events:none}._upscalerCanvas_ov6ol_424{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;object-fit:contain;opacity:0;pointer-events:none;border-radius:inherit}._upscalerCanvas_ov6ol_424._upscalerActive_ov6ol_437{opacity:1}._upscalerStatusBadge_ov6ol_441{position:absolute;top:12px;right:12px;z-index:4;background:#000000a6;color:var(--text-primary);font-size:.75rem;font-weight:600;padding:.35em .8em;border-radius:999px;border:1px solid var(--glass-border);pointer-events:none}._subtitleOverlay_ov6ol_456{position:absolute;top:0;left:0;width:100%;height:100%;z-index:3;pointer-events:none;overflow:hidden;border-radius:inherit}._controlsOverlay_ov6ol_468{position:absolute;inset:0;opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1);z-index:50;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;border-radius:inherit;background:linear-gradient(to bottom,rgba(0,0,0,.35) 0%,rgba(0,0,0,.2) 15%,transparent 40%,transparent 60%,rgba(0,0,0,.2) 85%,rgba(0,0,0,.35) 100%);will-change:opacity}._controlsOverlay_ov6ol_468>*{pointer-events:auto}._controlsOverlay_ov6ol_468._hidden_ov6ol_498{opacity:0;pointer-events:none;cursor:none}._centerPlayPause_ov6ol_504{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;background:#0f0f11d9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:50%;color:#fff;width:90px;height:90px;font-size:2.8rem;cursor:pointer;padding-left:6px;transition:all .3s cubic-bezier(.34,1.56,.64,1);box-shadow:none;will-change:transform}._centerPlayPause_ov6ol_504:hover{background:var(--accent);color:var(--accent-text);transform:translate(-50%,-50%) scale(1.1);border-color:var(--accent);box-shadow:0 0 40px var(--accent-glow)}._bottomControls_ov6ol_536{position:absolute;bottom:24px;left:24px;right:24px;display:flex;flex-direction:column;gap:0;background:#0f0f11f2;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:16px 24px;box-shadow:none}._progressBarContainer_ov6ol_553{width:100%;padding:10px 0;cursor:pointer;position:relative;touch-action:none;display:flex;align-items:center}._progressBar_ov6ol_553{width:100%;height:4px;background-color:#ffffff26;border-radius:4px;position:relative;transition:height .2s,background-color .2s;overflow:visible}._progressBarContainer_ov6ol_553:hover ._progressBar_ov6ol_553,._progressBarContainer_ov6ol_553._scrubbing_ov6ol_576 ._progressBar_ov6ol_553{height:6px;background-color:#ffffff40}._watchedBar_ov6ol_581,._bufferedBar_ov6ol_582{position:absolute;top:0;left:0;height:100%;border-radius:4px}._watchedBar_ov6ol_581{background:var(--accent);background:linear-gradient(90deg,var(--accent) 0%,var(--accent-light) 100%);z-index:2;box-shadow:0 0 15px var(--accent-glow);transition:width .3s linear;will-change:width}._bufferedBar_ov6ol_582{background-color:#ffffff4d;z-index:1}._thumb_ov6ol_604{position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);width:16px;height:16px;background-color:#fff;border-radius:50%;z-index:3;transition:transform .2s cubic-bezier(.175,.885,.32,1.275),left .3s linear;box-shadow:0 0 0 4px #fff3;will-change:left}._progressBarContainer_ov6ol_553:hover ._thumb_ov6ol_604,._progressBarContainer_ov6ol_553._scrubbing_ov6ol_576 ._thumb_ov6ol_604{transform:translate(-50%,-50%) scale(1)}._timeBubble_ov6ol_625{position:absolute;bottom:35px;transform:translate(-50%);background:#000000e6;border:1px solid rgba(255,255,255,.1);color:#fff;padding:6px 10px;border-radius:8px;font-size:.85rem;font-weight:600;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap;box-shadow:0 4px 12px #0000004d}._progressBarContainer_ov6ol_553:hover ._timeBubble_ov6ol_625,._progressBarContainer_ov6ol_553._scrubbing_ov6ol_576 ._timeBubble_ov6ol_625{opacity:1}._skipSegment_ov6ol_648{position:absolute;top:0;height:100%;z-index:10;opacity:.5;transition:opacity .2s;border-radius:4px}._skipSegment_ov6ol_648:hover{opacity:.8}._skipSegment_ov6ol_648._op_ov6ol_662{background-color:var(--success)}._skipSegment_ov6ol_648._ed_ov6ol_666{background-color:var(--accent-blue)}._skipSegment_ov6ol_648._recap_ov6ol_670{background-color:var(--warning)}._bottomControlsRow_ov6ol_674{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:4px}._controlBtn_ov6ol_682{background:transparent;border:none;color:#ffffffe6;font-size:1.2rem;cursor:pointer;transition:all .2s;padding:10px;border-radius:12px;display:flex;align-items:center;justify-content:center}._controlBtn_ov6ol_682:hover{background:#ffffff1a;color:#fff;transform:translateY(-2px)}._controlBtn_ov6ol_682:active{transform:translateY(0)}._timeDisplay_ov6ol_706{font-size:.9rem;font-weight:500;color:#ffffffe6;font-variant-numeric:tabular-nums;margin-left:.5rem;opacity:.9}._leftControls_ov6ol_715,._rightControls_ov6ol_716,._middleControls_ov6ol_717{display:flex;align-items:center;gap:1.5rem}._skipControls_ov6ol_723{display:flex;align-items:center;gap:.25rem}._skipBtn_ov6ol_729{background:transparent;border:none;color:#fff;cursor:pointer;font-size:1.4rem;display:flex;align-items:center;justify-content:center;opacity:.7;transition:all .2s;padding:6px}._skipBtn_ov6ol_729:hover{opacity:1;transform:scale(1.1);color:var(--accent)}._skipBtn_ov6ol_729:active{transform:scale(.9)}._volumeContainer_ov6ol_753{display:flex;align-items:center;position:relative;padding-right:10px}._volumeSlider_ov6ol_760{width:0;opacity:0;transform:scaleX(0);transform-origin:left;transition:all .3s var(--ease-smooth);cursor:pointer;margin-left:6px;-webkit-appearance:none;appearance:none;background:transparent;height:30px}._volumeContainer_ov6ol_753:hover ._volumeSlider_ov6ol_760,._volumeSlider_ov6ol_760:focus{width:80px;opacity:1;transform:scaleX(1)}._volumeSlider_ov6ol_760::-webkit-slider-runnable-track{width:100%;height:4px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--volume-percent, 100%),rgba(255,255,255,.25) var(--volume-percent, 100%),rgba(255,255,255,.25) 100%);border-radius:4px;border:none}._volumeSlider_ov6ol_760::-moz-range-track{width:100%;height:4px;background:#ffffff40;border-radius:4px;border:none}._volumeSlider_ov6ol_760::-moz-range-progress{height:4px;background:var(--accent);border-radius:4px}._volumeSlider_ov6ol_760::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;background-color:#fff;border:2px solid var(--accent);border-radius:50%;cursor:pointer;margin-top:-5px;box-shadow:0 0 10px #00000080;transition:transform .1s ease}._volumeSlider_ov6ol_760::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 15px var(--accent-glow)}._volumeSlider_ov6ol_760::-moz-range-thumb{width:14px;height:14px;background-color:#fff;border:2px solid var(--accent);border-radius:50%;cursor:pointer;box-shadow:0 0 10px #00000080}._settingsMenu_ov6ol_838{position:absolute;bottom:50px;right:0;background:#0f0f0ffa;border:1px solid rgba(255,255,255,.1);color:#fff;padding:1rem;border-radius:12px;width:280px;z-index:var(--z-dropdown);box-shadow:0 10px 40px #00000080;animation:_slideUp_ov6ol_1 .2s cubic-bezier(.16,1,.3,1);transform-origin:bottom right}@keyframes _slideUp_ov6ol_1{0%{opacity:0;transform:translateY(10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}._settingsMenu_ov6ol_838 h4{margin:0 0 1rem;font-size:.95rem;text-transform:uppercase;letter-spacing:.05em;color:#ffffff80;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.5rem;font-weight:600}._qualityListInMenu_ov6ol_877,._ccOptionsContainer_ov6ol_878{display:flex;flex-direction:column;gap:.25rem;max-height:300px;overflow-y:auto}._qualityItemInMenu_ov6ol_886,._ccItem_ov6ol_887{background:transparent;color:#fffc;border:none;padding:.75rem 1rem;border-radius:8px;cursor:pointer;text-align:left;font-size:.95rem;transition:all .2s;display:flex;justify-content:space-between;align-items:center}._qualityItemInMenu_ov6ol_886:hover,._ccItem_ov6ol_887:hover{background:#ffffff1a;color:#fff}._qualityItemInMenu_ov6ol_886._active_ov6ol_908,._ccItem_ov6ol_887._active_ov6ol_908{background:var(--accent);color:var(--accent-text);font-weight:600}._sourceLoader_ov6ol_915{padding:2rem;display:flex;justify-content:center}._spinner_ov6ol_921{width:40px;height:40px;border:4px solid rgba(255,255,255,.1);border-left-color:var(--accent);border-radius:50%;animation:_spin_ov6ol_921 1s linear infinite}@media(max-width:768px){._bottomControls_ov6ol_536{padding:.75rem;bottom:8px;left:8px;right:8px;border-radius:12px}._leftControls_ov6ol_715,._rightControls_ov6ol_716{gap:.5rem}._controlBtn_ov6ol_682{padding:8px;font-size:1.1rem}._timeDisplay_ov6ol_706{font-size:.75rem;margin-left:.25rem}._centerPlayPause_ov6ol_504{width:64px;height:64px;font-size:2rem}._titleContainer_ov6ol_9 h1{font-size:1.25rem}._volumeSlider_ov6ol_760{width:0}._volumeContainer_ov6ol_753{display:flex}._episodeActions_ov6ol_199{margin-top:.25rem}._controls_ov6ol_1{gap:.5rem}._watchBtn_ov6ol_980,._watchlistBtn_ov6ol_45,._queueBtn_ov6ol_83,._markWatchedBtn_ov6ol_153,._completeSeriesBtn_ov6ol_178,._nativeToggleBtn_ov6ol_119,._modeToggleBtn_ov6ol_101{flex:1 1 calc(50% - .25rem);min-width:0;padding:.5rem .75rem;font-size:.78rem;gap:.4rem}._watchBtn_ov6ol_980{flex-basis:100%}._episodeNavBtn_ov6ol_217{flex:1 1 calc(50% - .25rem);min-width:0;padding:.45rem .75rem;font-size:.8rem;min-height:44px}._episodePickerBtn_ov6ol_261{display:inline-flex;flex-basis:100%;padding:.4rem .75rem;font-size:.78rem;min-height:44px}._desktopEpisodeActions_ov6ol_206{display:none}._mobileEpisodeActions_ov6ol_213{display:flex}._providerAndEpisodeRow_ov6ol_192{flex-direction:column}._errorOverlay_ov6ol_1026{padding:1rem;gap:.5rem;overflow-y:auto}._errorOverlay_ov6ol_1026 p{font-size:1rem}._retryButton_ov6ol_1036{padding:.5rem 1.25rem;font-size:.9rem;margin-top:0}}@media(min-width:769px){._mobileEpisodeActions_ov6ol_213{display:none}}@media(max-width:900px)and (orientation:landscape){._bottomControls_ov6ol_536{bottom:8px;left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));padding:.5rem 1rem}._centerPlayPause_ov6ol_504{width:54px;height:54px;font-size:1.5rem}}._sourceSelectionContainer_ov6ol_1064{display:flex;flex-direction:column;gap:1.5rem;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:2rem;border-radius:var(--radius-xl);width:100%;box-shadow:var(--glass-shadow);animation:_slideUpIn_ov6ol_1 .6s var(--ease-smooth)}._providerSelectContainer_ov6ol_1079{display:flex;flex-direction:column;gap:.75rem;width:100%}._providerSelect_ov6ol_1079,._sourceSelect_ov6ol_1064{height:48px;padding:0 1.25rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);color:var(--text-primary);font-size:.95rem;font-family:inherit;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2371717a' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.25rem center;transition:all var(--transition-fast);width:100%;max-width:400px}._providerSelect_ov6ol_1079:hover,._sourceSelect_ov6ol_1064:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._providerSelect_ov6ol_1079:focus,._sourceSelect_ov6ol_1064:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}._providerSelect_ov6ol_1079 option,._sourceSelect_ov6ol_1064 option{background:var(--bg-tertiary);color:var(--text-primary)}._sourceSelectionContainer_ov6ol_1064 h4,._providerSelectContainer_ov6ol_1079 h4{margin:0;color:var(--text-tertiary);font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.1em}._sourceButtons_ov6ol_1135{display:flex;flex-wrap:wrap;gap:.75rem}._sourceButton_ov6ol_1135{background:#ffffff0d;color:var(--text-secondary);border:1px solid var(--glass-border);padding:.75rem 1.5rem;border-radius:var(--radius-lg);cursor:pointer;font-size:.95rem;font-weight:600;transition:all var(--transition-normal)}._sourceButton_ov6ol_1135:hover{background:#ffffff1a;border-color:var(--text-primary);color:var(--text-primary);transform:translateY(-2px)}._sourceButton_ov6ol_1135._active_ov6ol_908{background:var(--accent);border-color:var(--accent);color:var(--accent-text);box-shadow:0 8px 20px var(--accent-glow)}._detailsBox_ov6ol_1167{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:2.5rem;border-radius:var(--radius-xl);display:flex;flex-direction:column;gap:1.5rem;box-shadow:var(--glass-shadow)}._detailsToggleBtn_ov6ol_1180{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-secondary);padding:.75rem 1.5rem;border-radius:var(--radius-lg);cursor:pointer;font-size:.95rem;font-weight:600;transition:all var(--transition-normal);display:flex;align-items:center;gap:.75rem;margin-top:2rem;width:fit-content}._detailsToggleBtn_ov6ol_1180:hover{background:#ffffff1a;color:var(--text-primary);border-color:var(--text-primary);transform:translateY(-2px)}._detailsGridContainer_ov6ol_1204{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2rem;margin-top:2.5rem;background:#ffffff05;padding:2.5rem;border-radius:var(--radius-xl);border:1px solid var(--glass-border);animation:_fadeIn_ov6ol_1 .6s var(--ease-smooth)}._detailItem_ov6ol_1216{display:flex;flex-direction:column;gap:.5rem}._detailItem_ov6ol_1216 strong{color:var(--text-tertiary);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}._detailItem_ov6ol_1216 span{color:var(--text-primary);font-size:1rem;font-weight:500}._animeStatus_ov6ol_1236{display:inline-block;background:color-mix(in srgb,var(--color-success) 10%,transparent);color:var(--color-success);padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:1px solid color-mix(in srgb,var(--color-success) 20%,transparent)}._genresList_ov6ol_1249{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.25rem}._genreTag_ov6ol_1256{background:#ffffff0d;color:var(--text-secondary);padding:.4rem 1rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;border:1px solid var(--glass-border);transition:all var(--transition-fast)}._genreTag_ov6ol_1256:hover{background:#ffffff1a;color:var(--text-primary);border-color:var(--text-secondary);transform:translateY(-1px)}._loadingDetails_ov6ol_1274{color:var(--text-muted);font-style:italic;text-align:center;padding:2rem}._descriptionSection_ov6ol_1281{margin-top:2.5rem;padding:2.5rem;background:#ffffff05;border-radius:var(--radius-xl);border:1px solid var(--glass-border)}._descriptionSection_ov6ol_1281 h3{font-size:1.25rem;font-weight:800;margin-bottom:1.5rem;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:.75rem}._descriptionSection_ov6ol_1281 h3:before{content:"";width:4px;height:20px;background:var(--accent);border-radius:var(--radius-full);box-shadow:0 0 10px var(--accent-glow)}._description_ov6ol_1281{line-height:1.8;color:var(--text-secondary);font-size:1.05rem;margin:0}._epJumpControls_ov6ol_1317{margin-bottom:1rem;padding:1rem;background:#ffffff08;border-radius:var(--radius-md);display:flex;flex-direction:column;gap:.8rem;border:1px solid var(--border-primary)}._epRangeButtons_ov6ol_1328{display:flex;flex-wrap:wrap;gap:.5rem}._metaTags_ov6ol_1334{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}._epRangeBtn_ov6ol_1341{background:transparent;border:1px solid var(--border-primary);color:var(--text-secondary);padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.8rem}._epRangeBtn_ov6ol_1341:hover{border-color:var(--accent);color:var(--accent)}._epJumpInputGroup_ov6ol_1356{display:flex;gap:.5rem}._epJumpInputGroup_ov6ol_1356 input{background:#0000004d;border:1px solid var(--border-primary);color:#fff;padding:.4rem .8rem;border-radius:4px;flex:1}._epJumpInputGroup_ov6ol_1356 input:focus{outline:none;border-color:var(--accent)}._epJumpInputGroup_ov6ol_1356 button{background:var(--accent);color:var(--accent-text);border:none;padding:.4rem 1rem;border-radius:4px;cursor:pointer}._epJumpInputGroup_ov6ol_1356 button:hover{background:var(--accent-dark)}._videoContainer_ov6ol_311._fullscreenActive_ov6ol_1388{cursor:none;border-radius:0}._videoContainer_ov6ol_311:fullscreen,._videoContainer_ov6ol_311:-webkit-full-screen{width:100vw;height:100vh;border-radius:0}._videoContainer_ov6ol_311:fullscreen video,._videoContainer_ov6ol_311:fullscreen canvas,._videoContainer_ov6ol_311:-webkit-full-screen video,._videoContainer_ov6ol_311:-webkit-full-screen canvas{border-radius:0}._errorOverlay_ov6ol_1026{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#000c;color:#fff;z-index:30;padding:2rem;text-align:center;gap:1rem;border-radius:inherit}._errorOverlay_ov6ol_1026 p{margin:0;font-size:1.2rem;font-weight:500}._errorSubtext_ov6ol_1432{color:var(--text-tertiary)!important;font-size:.9rem!important}._retryButton_ov6ol_1036{background:var(--accent);color:var(--accent-text);border:none;padding:.6rem 2rem;border-radius:var(--radius-md);font-weight:600;cursor:pointer;transition:all .2s;margin-top:.5rem;box-shadow:0 4px 12px var(--accent-glow)}._retryButton_ov6ol_1036:hover{background:var(--accent-light);transform:translateY(-2px)}._playerPageLayout_6lomc_1{display:grid;grid-template-columns:320px 1fr;gap:2.5rem;padding:2rem;width:100%;max-width:1800px;margin:0 auto;align-items:start;min-height:calc(100vh - var(--header-height));background-color:transparent;animation:_fadeIn_6lomc_1 .8s var(--ease-smooth)}._episodeSidebar_6lomc_15{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:visible;display:flex;flex-direction:column;box-shadow:var(--glass-shadow);animation:_slideUpIn_6lomc_1 .8s var(--ease-smooth)}._playerMain_6lomc_28{min-width:0;display:flex;flex-direction:column;gap:1.25rem;animation:_slideUpIn_6lomc_1 .8s .1s var(--ease-smooth) both}._videoPlayerWrapper_6lomc_36{width:100%;padding-top:56.25%;background-color:#000;border-radius:0;overflow:clip;isolation:isolate;position:relative;box-shadow:0 20px 50px #00000080;border:1px solid var(--glass-border)}._playerInfoHeader_6lomc_52{display:flex;gap:2.5rem;align-items:flex-start}._playerAnimeCard_6lomc_58{width:140px;flex-shrink:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-xl);border:1px solid var(--glass-border);transform:translateZ(0);aspect-ratio:2/3;height:auto}._playerInfoContainer_6lomc_70{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:3rem;border-radius:var(--radius-2xl);box-shadow:var(--glass-shadow);display:flex;flex-direction:column}._playerAnimeCard_6lomc_58 img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s cubic-bezier(.2,.8,.2,1)}._playerAnimeCard_6lomc_58:hover img{transform:scale(1.1)}._videoTitleSection_6lomc_94{flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:1.5rem}._videoTitleSection_6lomc_94 h1{margin:0;font-size:2.5rem;line-height:1.1;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}._videoDescription_6lomc_111{color:var(--text-secondary);line-height:1.7;font-size:1.05rem}@keyframes _fadeIn_6lomc_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUpIn_6lomc_1{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1280px){._playerPageLayout_6lomc_1{grid-template-columns:280px 1fr;padding:1.5rem;gap:1.5rem}}@media(max-width:1024px){._playerPageLayout_6lomc_1{display:flex;flex-direction:column;gap:2rem}._episodeSidebar_6lomc_15{width:100%;height:auto;max-height:500px;position:static;order:2;overflow-y:auto;-webkit-overflow-scrolling:touch}._playerMain_6lomc_28{order:1;width:100%}._playerInfoHeader_6lomc_52{padding:0}}@media(max-width:768px){._playerPageLayout_6lomc_1{padding:1rem;gap:1.5rem}._episodeSidebar_6lomc_15{display:none}._playerMain_6lomc_28{gap:1.5rem}._videoPlayerWrapper_6lomc_36{border-radius:0}._playerInfoContainer_6lomc_70{border-radius:var(--radius-xl);padding:1.5rem}._playerInfoHeader_6lomc_52{flex-direction:row;align-items:flex-start;text-align:left;gap:1.5rem}._videoTitleSection_6lomc_94 h1{font-size:1.75rem}._playerAnimeCard_6lomc_58{width:100px}._episodeSidebar_6lomc_15{border-radius:var(--radius-lg)}}@media(max-width:480px){._playerInfoHeader_6lomc_52{flex-direction:column;align-items:center;text-align:center}._playerAnimeCard_6lomc_58{width:120px}}@media(max-width:480px)and (orientation:portrait){._videoPlayerWrapper_6lomc_36{padding-top:100%;position:relative}}@media(min-width:481px)and (max-width:768px)and (orientation:portrait){._videoPlayerWrapper_6lomc_36{padding-top:75%;position:relative}}@media(max-width:900px)and (orientation:landscape){._playerPageLayout_6lomc_1{padding:0;gap:0}._videoPlayerWrapper_6lomc_36{border-radius:0;height:100vh;padding-top:0}._playerInfoContainer_6lomc_70{padding:1.5rem}}body.low-end ._playerPageLayout_6lomc_1,body.low-end ._episodeSidebar_6lomc_15,body.low-end ._playerInfoContainer_6lomc_70{animation:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;box-shadow:none!important;background:var(--bg-secondary)!important}body.low-end ._videoPlayerWrapper_6lomc_36{box-shadow:none!important;border-color:var(--border-primary)!important}body.low-end ._episodeSidebar_6lomc_15{background:var(--bg-secondary)!important}._theaterMode_6lomc_276{display:flex!important;justify-content:center!important;align-items:center!important;position:fixed!important;top:0!important;left:0!important;width:100vw!important;height:100vh!important;min-height:100vh!important;max-width:none!important;padding:2.5rem!important;margin:0!important;background-color:var(--bg-main)!important;backdrop-filter:blur(24px)!important;-webkit-backdrop-filter:blur(24px)!important;animation:_fadeIn_6lomc_1 .4s var(--ease-smooth)!important;overflow:hidden!important;z-index:var(--z-overlay)!important}._theaterMode_6lomc_276 ._playerMain_6lomc_28{width:90%!important;max-width:1200px!important;height:auto!important;aspect-ratio:16/9!important;gap:0!important;margin:auto!important;padding:0!important;animation:_scaleUpIn_6lomc_1 .4s cubic-bezier(.25,1,.5,1)!important;position:relative!important;z-index:1!important}._theaterAmbient_6lomc_310{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;transform:scale(1.15)!important;pointer-events:none!important;z-index:0!important}._theaterMode_6lomc_276 ._videoPlayerWrapper_6lomc_36{width:100%!important;height:100%!important;padding-top:0!important;border-radius:0!important;border-color:#ffffff26!important;box-shadow:0 20px 60px color-mix(in srgb,var(--accent) 15%,transparent),0 0 100px #000000e6!important;overflow:hidden!important;position:relative!important}@keyframes _scaleUpIn_6lomc_1{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}body.theater-mode header,body.theater-mode footer{display:none!important}body.theater-mode main{padding:0!important;max-width:none!important;margin:0!important;width:100vw!important;height:100vh!important}body.theater-mode{overflow:hidden!important;background:#000!important}body.low-end ._theaterAmbient_6lomc_310{display:none!important}@media(max-width:768px){._theaterMode_6lomc_276{padding:1rem!important}._theaterMode_6lomc_276 ._playerMain_6lomc_28{width:100%!important;max-width:none!important}}._shell_41rxp_1{position:relative;width:100%;aspect-ratio:16 / 9;background:#000;overflow:clip;isolation:isolate;border-radius:0;container-type:inline-size;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}@media(max-width:480px)and (orientation:portrait){._shell_41rxp_1{aspect-ratio:1 / 1}}@media(min-width:481px)and (max-width:768px)and (orientation:portrait){._shell_41rxp_1{aspect-ratio:4 / 3}}._shell_41rxp_1:fullscreen,._shell_41rxp_1:-webkit-full-screen{width:100vw;height:100vh;aspect-ratio:auto;border-radius:0}._shell_41rxp_1:fullscreen,._shell_41rxp_1:fullscreen ._stage_41rxp_37,._shell_41rxp_1:fullscreen ._stage_41rxp_37>video,._shell_41rxp_1:fullscreen ._stage_41rxp_37>canvas,._shell_41rxp_1:fullscreen ._stage_41rxp_37>iframe,._shell_41rxp_1:-webkit-full-screen,._shell_41rxp_1:-webkit-full-screen ._stage_41rxp_37,._shell_41rxp_1:-webkit-full-screen ._stage_41rxp_37>video,._shell_41rxp_1:-webkit-full-screen ._stage_41rxp_37>canvas,._shell_41rxp_1:-webkit-full-screen ._stage_41rxp_37>iframe{border-radius:0!important}@media(max-width:900px)and (orientation:landscape){._shell_41rxp_1{aspect-ratio:auto;height:100vh;border-radius:0}}._stage_41rxp_37{position:absolute;inset:0;z-index:1;touch-action:manipulation;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}._stage_41rxp_37>video,._stage_41rxp_37>canvas,._stage_41rxp_37>iframe{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:contain;display:block;background:#000;border:none;border-radius:inherit;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}._shellFill_41rxp_85{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}._shellFullscreen_41rxp_93,._shellFullscreen_41rxp_93 ._stage_41rxp_37,._shellFullscreen_41rxp_93 ._stage_41rxp_37>video,._shellFullscreen_41rxp_93 ._stage_41rxp_37>canvas,._shellFullscreen_41rxp_93 ._stage_41rxp_37>iframe{border-radius:0!important}._shellFullscreen_41rxp_93{width:100vw;height:100vh;aspect-ratio:auto}._uiLayer_41rxp_107{position:absolute;inset:0;z-index:50;pointer-events:none}._uiLayer_41rxp_107>*{pointer-events:auto}._volumeWrap_41rxp_118{display:flex;align-items:center;position:relative}._volumeSlider_41rxp_124{width:0;opacity:0;transform:scaleX(0);transform-origin:left center;transition:width .25s ease,opacity .25s ease,transform .25s ease;cursor:pointer;margin-left:8px;-webkit-appearance:none;appearance:none;background:transparent;height:24px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}._volumeWrap_41rxp_118[data-expanded=true] ._volumeSlider_41rxp_124{width:84px;opacity:1;transform:scaleX(1)}@media(hover:hover)and (pointer:fine){._volumeWrap_41rxp_118:hover ._volumeSlider_41rxp_124,._volumeSlider_41rxp_124:focus-visible{width:84px;opacity:1;transform:scaleX(1)}}._volumeSlider_41rxp_124::-webkit-slider-runnable-track{width:100%;height:4px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--volume-percent, 0%),rgba(255,255,255,.2) var(--volume-percent, 0%),rgba(255,255,255,.2) 100%);border-radius:4px}._volumeSlider_41rxp_124::-moz-range-track{width:100%;height:4px;background:#fff3;border-radius:4px}._volumeSlider_41rxp_124::-moz-range-progress{height:4px;background:var(--accent);border-radius:4px}._volumeSlider_41rxp_124::-webkit-slider-thumb{-webkit-appearance:none;height:12px;width:12px;border-radius:50%;background:#fff;margin-top:-4px;box-shadow:0 0 5px #00000080}@media(pointer:coarse){._volumeWrap_41rxp_118[data-expanded=true] ._volumeSlider_41rxp_124{width:96px;height:32px}}._centerControls_61n7k_1{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) scale(1);display:flex;align-items:center;gap:3rem;gap:clamp(1rem,5cqw,3rem);z-index:10;pointer-events:auto;transition:transform .4s cubic-bezier(.2,.8,.2,1)}._centerSkipBtn_61n7k_15{background:transparent;border:none;border-radius:50%;color:#ffffffe6;width:56px;height:56px;width:clamp(2.5rem,6.5cqw,3.5rem);height:clamp(2.5rem,6.5cqw,3.5rem);font-size:1.8rem;font-size:clamp(1.1rem,2.8cqw,1.8rem);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .35s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 2px 8px rgba(0,0,0,.85))}._centerSkipBtn_61n7k_15:hover{color:#fff;transform:scale(1.15);filter:drop-shadow(0 2px 8px rgba(0,0,0,.85)) drop-shadow(0 0 14px var(--accent-glow))}._centerPlayPause_61n7k_40{display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:50%;color:#fff;width:76px;height:76px;width:clamp(3rem,8cqw,5rem);height:clamp(3rem,8cqw,5rem);font-size:2.2rem;font-size:clamp(1.4rem,3.4cqw,2.3rem);cursor:pointer;transition:all .35s cubic-bezier(.34,1.56,.64,1);filter:drop-shadow(0 2px 8px rgba(0,0,0,.85))}@media(pointer:coarse){._centerSkipBtn_61n7k_15{width:clamp(2.75rem,7cqw,3.75rem);height:clamp(2.75rem,7cqw,3.75rem)}}._centerPlayPause_61n7k_40:hover{transform:scale(1.08);filter:drop-shadow(0 2px 8px rgba(0,0,0,.85)) drop-shadow(0 0 16px var(--accent-glow))}._playIconOffset_61n7k_71{transform:translate(3px)}._statusArea_1xccu_1{display:flex;flex-direction:column;align-items:flex-start;gap:.6rem;background:var(--bg-secondary);border:1px solid var(--border-primary);padding:.75rem 1.25rem;border-radius:var(--radius-lg);margin-top:.5rem;margin-bottom:0;color:var(--text-secondary);box-shadow:var(--shadow-lg);width:fit-content;max-width:100%;-webkit-user-select:none;user-select:none;flex-wrap:wrap}._toggleBtn_1xccu_20{display:inline-flex;align-items:center;gap:.5rem;background:transparent;border:none;color:var(--text-secondary);font-size:.8rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;padding:.15rem .25rem;border-radius:var(--radius-sm);transition:color var(--transition-fast);pointer-events:auto}._toggleBtn_1xccu_20:hover{color:var(--text-primary)}._toggleBtn_1xccu_20 svg{color:var(--accent)}._shortcuts_1xccu_46{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;padding-top:.6rem;border-top:1px solid var(--border-primary);width:100%}._shortcutGroup_1xccu_56{display:flex;gap:1rem;align-items:center;flex-wrap:nowrap}._shortcut_1xccu_46{display:flex;align-items:center;gap:.3rem;white-space:nowrap}._key_1xccu_70{background:#ffffff14;padding:.15rem .4rem;border-radius:5px;border:1px solid rgba(255,255,255,.1);font-weight:800;color:var(--text-primary);font-size:.75rem;min-width:1.4rem;height:1.4rem;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);box-shadow:0 1.5px #0000004d}._key_1xccu_70+._key_1xccu_70{margin-left:-.15rem}._label_1xccu_91{color:var(--text-tertiary);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}@media(max-width:768px){._statusArea_1xccu_1{display:none}}._episodeListContainer_9tyin_1{display:flex;flex-direction:column;height:100%;min-height:0;background:transparent}._drawerContainer_9tyin_9{height:auto;min-height:100%}._episodeListHeader_9tyin_14{background:transparent;padding:var(--space-6);border-bottom:1px solid var(--glass-border)}._drawerHeader_9tyin_20{position:sticky;top:0;z-index:5;background:#0c0c0ffa;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}._episodeListTitle_9tyin_29{margin:0 0 var(--space-5) 0;font-size:.85rem;font-weight:800;color:var(--text-tertiary);display:flex;align-items:center;gap:var(--space-3);letter-spacing:.1em;text-transform:uppercase}._rangeSelector_9tyin_41{display:flex;flex-wrap:wrap;gap:var(--space-2)}._rangeButton_9tyin_47{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-secondary);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:.8rem;font-weight:600;transition:all var(--transition-fast);cursor:pointer}._rangeButton_9tyin_47:hover{border-color:var(--text-secondary);color:var(--text-primary);background:#ffffff1a}._rangeButton_9tyin_47:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._rangeButton_9tyin_47._active_9tyin_70{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}._episodeList_9tyin_1{flex:1;display:flex;flex-direction:column;padding:var(--space-4);overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.14) transparent}._drawerList_9tyin_89{overflow:visible;-webkit-overflow-scrolling:auto;touch-action:pan-y}._episodeList_9tyin_1::-webkit-scrollbar{width:6px}._episodeList_9tyin_1::-webkit-scrollbar-track{background:transparent}._episodeList_9tyin_1::-webkit-scrollbar-thumb{background:#ffffff24;background-clip:padding-box;border-radius:var(--radius-full);border:2px solid transparent}._episodeList_9tyin_1:hover::-webkit-scrollbar-thumb{background-color:#ffffff47}._episodeList_9tyin_1::-webkit-scrollbar-thumb:hover{background-color:var(--accent)}._episodeItem_9tyin_118{padding:var(--space-4) var(--space-5);margin-bottom:var(--space-2);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-normal);color:var(--text-secondary);font-weight:600;display:flex;justify-content:space-between;align-items:center;font-size:.9rem;border:1px solid transparent}._episodeItem_9tyin_118:hover{background:#ffffff0d;color:var(--text-primary);transform:translate(6px);border-color:var(--glass-border)}._episodeItem_9tyin_118:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._episodeItem_9tyin_118._watched_9tyin_145{color:var(--text-muted);opacity:.6}._episodeItem_9tyin_118._active_9tyin_70{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-light);border:1px solid color-mix(in srgb,var(--accent) 30%,transparent)}._episodeItem_9tyin_118._active_9tyin_70:hover{transform:none;background:color-mix(in srgb,var(--accent) 15%,transparent)}._episodeItem_9tyin_118 span{display:flex;align-items:center;gap:var(--space-3)}._episodeThumb_9tyin_167{width:72px;aspect-ratio:16 / 9;object-fit:cover;border-radius:var(--radius-md);flex-shrink:0;background:#ffffff0f}._episodeText_9tyin_176{flex-direction:column!important;align-items:flex-start!important;gap:2px!important;min-width:0;flex:1}._episodeLabel_9tyin_184{font-weight:700;color:inherit}._episodeSub_9tyin_189{font-size:.78rem;font-weight:500;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}._shell_cys6s_1{position:fixed;inset:0;z-index:var(--z-drawer);display:flex;align-items:flex-end;justify-content:center}._overlay_cys6s_10{position:absolute;inset:0;border:0;padding:0;background:#0000008f;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:_fadeIn_cys6s_1 .2s ease-out}._drawer_cys6s_21{position:relative;z-index:1;width:min(100vw,100%);max-height:86vh;background:#0c0c0ffa;border-radius:var(--radius-lg) var(--radius-lg) 0 0;border:1px solid var(--glass-border);border-bottom:none;display:flex;flex-direction:column;overflow:hidden;animation:_slideUpIn_cys6s_1 .25s ease-out}@keyframes _fadeIn_cys6s_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUpIn_cys6s_1{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}._handle_cys6s_56{width:52px;height:5px;border-radius:999px;background:#ffffff2e;margin:.7rem auto 0}._header_cys6s_64{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;padding:1rem 1rem .9rem;border-bottom:1px solid var(--glass-border)}._headerCopy_cys6s_73{display:flex;flex-direction:column;gap:.25rem}._kicker_cys6s_79{color:var(--text-tertiary);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em}._title_cys6s_87{margin:0;font-size:1.1rem;font-weight:800;color:var(--text-primary)}._closeBtn_cys6s_94{width:38px;height:38px;border-radius:999px;border:1px solid var(--glass-border);background:#ffffff0d;color:var(--text-primary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}._closeBtn_cys6s_94:hover{background:#ffffff1a}._closeBtn_cys6s_94:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._body_cys6s_116{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}._container_c5tub_1{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}._titleContainer_c5tub_8{display:flex;flex-direction:column;gap:1rem}._scheduleInfo_c5tub_14{display:flex;gap:1rem;font-size:.95rem;color:var(--text-tertiary);align-items:center}._status_c5tub_22{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent-light);border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);padding:.35rem .85rem;border-radius:var(--radius-full);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em}._nextEpisode_c5tub_34{background:#ffffff0d;color:var(--text-secondary);padding:.35rem .85rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;border:1px solid var(--glass-border)}._watchlistBtn_c5tub_44{background:#ffffff0d;color:var(--text-primary);border:1px solid var(--glass-border);padding:.75rem 1.5rem;border-radius:var(--radius-lg);font-weight:600;cursor:pointer;transition:all var(--transition-normal);display:flex;align-items:center;gap:.6rem;font-size:.9rem}._watchlistBtn_c5tub_44:hover{background:#ffffff1a;border-color:var(--text-secondary);transform:translateY(-2px)}._watchlistBtn_c5tub_44._inList_c5tub_65{background:color-mix(in srgb,var(--color-success) 10%,transparent);border-color:color-mix(in srgb,var(--color-success) 40%,transparent);color:var(--color-success)}._watchlistBtn_c5tub_44._inList_c5tub_65:hover{background:color-mix(in srgb,var(--color-success) 15%,transparent);border-color:var(--color-success)}._sourceSelectionContainer_c5tub_76{display:flex;flex-direction:column;gap:1.5rem;background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:2rem;border-radius:var(--radius-xl);width:100%}._providerSelectContainer_c5tub_89{display:flex;flex-direction:column;gap:1rem;width:100%}._providerSelect_c5tub_89,._sourceSelect_c5tub_76{height:44px;padding:0 1.25rem;background:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);color:var(--text-primary);font-size:.95rem;font-family:inherit;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%2371717a' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1.25rem center;transition:all var(--transition-fast);width:100%;max-width:400px}._providerSelect_c5tub_89:hover,._sourceSelect_c5tub_76:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._providerSelect_c5tub_89:focus,._sourceSelect_c5tub_76:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}._providerSelect_c5tub_89 option,._sourceSelect_c5tub_76 option{background:var(--bg-tertiary);color:var(--text-primary)}._sourceSelectionContainer_c5tub_76 h4,._providerSelectContainer_c5tub_89 h4{margin:0;color:var(--text-tertiary);font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.1em}._sourceButtons_c5tub_145{display:flex;flex-wrap:wrap;gap:.75rem}._sourceButton_c5tub_145{background:#ffffff0d;color:var(--text-secondary);border:1px solid var(--glass-border);padding:.75rem 1.5rem;border-radius:var(--radius-lg);cursor:pointer;font-size:.95rem;font-weight:600;transition:all var(--transition-normal)}._sourceButton_c5tub_145:hover{background:#ffffff1a;border-color:var(--text-primary);color:var(--text-primary);transform:translateY(-2px)}._sourceButton_c5tub_145._active_c5tub_170{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}._detailsBox_c5tub_176{background:var(--glass-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--glass-border);padding:2.5rem;border-radius:var(--radius-xl);display:flex;flex-direction:column;gap:1.5rem}._detailsToggle_c5tub_188{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-secondary);padding:.75rem 1.5rem;border-radius:var(--radius-lg);cursor:pointer;font-size:.95rem;font-weight:600;transition:all var(--transition-normal);display:flex;align-items:center;gap:.75rem;margin-top:2rem;width:fit-content}._detailsToggle_c5tub_188:hover{background:#ffffff1a;color:var(--text-primary);border-color:var(--text-primary);transform:translateY(-2px)}._detailsToggle_c5tub_188 h3{margin:0;font-size:1.25rem;font-weight:600}._detailsGridContainer_c5tub_218{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2rem;margin-top:2.5rem;background:#ffffff05;padding:2.5rem;border-radius:var(--radius-xl);border:1px solid var(--glass-border);animation:_fadeIn_c5tub_1 .6s var(--ease-smooth)}@keyframes _fadeIn_c5tub_1{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}._detailItem_c5tub_242{display:flex;flex-direction:column;gap:.5rem}._detailItem_c5tub_242 strong{color:var(--text-tertiary);font-weight:700;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}._detailItem_c5tub_242 span{color:var(--text-primary);font-size:1rem;font-weight:500}._animeStatus_c5tub_262{display:inline-block;background:color-mix(in srgb,var(--color-success) 10%,transparent);color:var(--color-success);padding:.25rem .75rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border:1px solid color-mix(in srgb,var(--color-success) 20%,transparent)}._genresList_c5tub_275{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.25rem}._genreTag_c5tub_282{background:#ffffff0d;color:var(--text-secondary);padding:.4rem 1rem;border-radius:var(--radius-full);font-size:.85rem;font-weight:600;border:1px solid var(--glass-border);transition:all var(--transition-fast)}._genreTag_c5tub_282:hover{background:#ffffff1a;color:var(--text-primary);border-color:var(--text-secondary);transform:translateY(-1px)}._loadingDetails_c5tub_300{color:var(--text-muted);font-style:italic;text-align:center;padding:2rem}._row_1fq55_1{display:flex;flex-direction:column;gap:.3rem;padding:.5rem .75rem .6rem;min-width:0}._rowHeader_1fq55_9{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;min-width:0}._rowLabel_1fq55_17{font-size:.68rem;font-weight:700;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._rowValue_1fq55_28{font-size:.72rem;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap}._slider_1fq55_36{width:100%;min-width:8rem;cursor:pointer;-webkit-appearance:none;appearance:none;background:transparent;height:1.375rem;margin:0;touch-action:pan-y}._slider_1fq55_36::-webkit-slider-runnable-track{width:100%;height:4px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--slider-percent, 0%),rgba(255,255,255,.25) var(--slider-percent, 0%),rgba(255,255,255,.25) 100%);border-radius:4px;border:none}._slider_1fq55_36::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;background-color:#fff;border:2px solid var(--accent);border-radius:50%;cursor:pointer;margin-top:-4px;box-shadow:0 0 8px #00000080}._slider_1fq55_36::-moz-range-track{width:100%;height:4px;background:#ffffff40;border-radius:4px;border:none}._slider_1fq55_36::-moz-range-progress{height:4px;background:var(--accent);border-radius:4px}._slider_1fq55_36::-moz-range-thumb{width:10px;height:10px;background-color:#fff;border:2px solid var(--accent);border-radius:50%;cursor:pointer;box-shadow:0 0 8px #00000080}._swatches_1fq55_99{display:flex;gap:.375rem;align-items:center}._swatch_1fq55_99{width:1.25rem;height:1.25rem;padding:0;border-radius:50%;cursor:pointer;flex:0 0 auto}._swatchPicked_1fq55_114{box-shadow:0 0 0 2px var(--panel-bg, #141416),0 0 0 3.5px var(--accent)}._colorInput_1fq55_120{width:1.75rem;height:1.25rem;padding:0;border:none;border-radius:.3rem;background:transparent;cursor:pointer;flex:0 0 auto}._segmented_1fq55_131{display:flex;gap:.25rem;background:#ffffff0d;border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:.2rem}._segmented_1fq55_131 button{flex:1 1 0;min-width:0;background:transparent;border:none;border-radius:calc(var(--radius-sm) - 2px);color:var(--text-secondary);font-size:.72rem;font-weight:700;text-transform:capitalize;padding:.3rem .25rem;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.3rem;white-space:nowrap}._segmented_1fq55_131 button:hover{color:var(--text-primary)}._segmented_1fq55_131 button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent-light)}@media(pointer:coarse){._row_1fq55_1{gap:.4rem;padding:.6rem .85rem .7rem}._slider_1fq55_36{height:1.875rem}._slider_1fq55_36::-webkit-slider-thumb{width:16px;height:16px;margin-top:-6px}._slider_1fq55_36::-moz-range-thumb{width:14px;height:14px}._swatch_1fq55_99{width:1.5rem;height:1.5rem}._segmented_1fq55_131 button{padding:.5rem .25rem;min-height:2.5rem}}
@@ -1 +0,0 @@
1
- ._section-header_2p2l1_1{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8);gap:var(--space-4)}._sectionWrapper_2p2l1_9{margin-bottom:2.5rem}._sectionTitleNoMargin_2p2l1_13{margin-bottom:0}._title-wrapper_2p2l1_17{display:flex;align-items:center;gap:var(--space-6);flex:1}._header-controls_2p2l1_24{display:flex;align-items:center;gap:var(--space-2)}._header-select_2p2l1_30{width:auto;min-width:120px;height:34px;padding:0 var(--space-3);padding-right:2rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23a1a1aa' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:all var(--transition-base)}._header-select_2p2l1_30:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._header-select_2p2l1_30:focus{outline:none;border-color:var(--accent)}._view-all-link_2p2l1_61{font-size:.85rem;font-weight:700;color:var(--text-secondary);text-decoration:none;white-space:nowrap;padding:8px 12px;border-radius:var(--radius-md);border:1px solid transparent;transition:all var(--transition-base)}._view-all-link_2p2l1_61:hover{color:var(--accent-light);background:var(--accent-subtle);border-color:var(--border-primary)}._collapse-button_2p2l1_79{width:40px;height:40px;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._collapse-button_2p2l1_79:hover{background:var(--bg-elevated);color:var(--text-primary)}._title-link_2p2l1_98{color:inherit;text-decoration:none;display:inline-flex;align-items:center;transition:all var(--transition-base)}._title-link_2p2l1_98 .section-title{position:relative;font-size:1.5rem;font-weight:800;letter-spacing:-.01em}._title-link_2p2l1_98:hover,._continue-watching_2p2l1_117 ._title-link_2p2l1_98:hover .section-title{color:var(--accent)}@media(max-width:600px){._section-header_2p2l1_1{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}._title-wrapper_2p2l1_17{width:100%;justify-content:space-between}._title-link_2p2l1_98 .section-title{font-size:1.25rem}}._nav-arrows_2p2l1_139{display:flex;gap:8px;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._nav-button_2p2l1_148{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._nav-button_2p2l1_148:hover{background:var(--bg-elevated);color:var(--accent)}._nav-button_2p2l1_148:active{transform:scale(.9)}@media(hover:none),(pointer:coarse){._nav-button_2p2l1_148{width:44px;height:44px}}._carousel-container_2p2l1_178{position:relative;width:100%}._carousel_2p2l1_178{overflow:hidden}._carousel-inner_2p2l1_187{display:flex;gap:20px}._carousel-card_2p2l1_192{flex:0 0 calc((100% - (6 * 20px)) / 7);min-width:150px}@media(max-width:1400px){._carousel-card_2p2l1_192{flex:0 0 calc((100% - (5 * 20px)) / 6)}}@media(max-width:1200px){._carousel-card_2p2l1_192{flex:0 0 calc((100% - 80px)/5)}}@media(max-width:900px){._carousel-card_2p2l1_192{flex:0 0 calc((100% - 60px)/4);max-width:160px}}@media(max-width:768px){._carousel-inner_2p2l1_187{gap:12px}._carousel-card_2p2l1_192{flex:0 0 calc((100% - (2 * 12px)) / 3);min-width:0;max-width:140px}}@media(max-width:480px){._carousel-card_2p2l1_192{flex:0 0 calc((100% - (1 * 12px)) / 2.2);max-width:140px}}._sectionWrapper_c8uv6_2{margin-bottom:2.5rem}._sectionTitleNoMargin_c8uv6_6{margin-bottom:0}._section-header_c8uv6_10{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:var(--space-8);gap:var(--space-4)}._title-wrapper_c8uv6_18{display:flex;align-items:center;gap:var(--space-6);flex:1}@media(max-width:600px){._section-header_c8uv6_10{flex-direction:column;align-items:flex-start;gap:var(--space-4);margin-bottom:var(--space-6)}._title-wrapper_c8uv6_18{width:100%;justify-content:space-between}}._nav-arrows_c8uv6_40{display:flex;gap:8px;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._nav-button_c8uv6_49{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._nav-button_c8uv6_49:hover{background:var(--bg-elevated);color:var(--accent)}._nav-button_c8uv6_49:active{transform:scale(.9)}@media(hover:none),(pointer:coarse){._nav-button_c8uv6_49{width:44px;height:44px}}._timeSelect_c8uv6_80{width:120px;height:34px;padding:0 var(--space-3);padding-right:2rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23a1a1aa' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:all var(--transition-base)}._timeSelect_c8uv6_80:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._timeSelect_c8uv6_80:focus{outline:none;border-color:var(--accent)}._carouselContainer_c8uv6_111{position:relative;width:100%}._carousel_c8uv6_111{overflow:hidden;padding:10px 0;margin:-10px 0}._carouselInner_c8uv6_122{display:flex;gap:15px}._carouselItem_c8uv6_127{flex:0 0 calc((100% - (6 * 15px)) / 7);min-width:120px;position:relative}@media(max-width:1200px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - (5 * 15px)) / 6)}}@media(max-width:1024px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - 60px)/5)}}@media(max-width:768px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - (2 * 15px)) / 3)}}@media(max-width:480px){._carouselItem_c8uv6_127{flex:0 0 calc((100% - (2 * 10px)) / 3);min-width:100px}._carouselInner_c8uv6_122{gap:10px;align-items:flex-start}}._rankCard_c8uv6_164{width:100%}._rankPill_c8uv6_168{text-align:center;margin-top:4px;font-size:1.6rem;font-weight:900;line-height:1;letter-spacing:-.04em;color:var(--text-tertiary);font-variant-numeric:tabular-nums}._rankPill_c8uv6_168._rankGold_c8uv6_179{color:#d8b56b}._rankPill_c8uv6_168._rankSilver_c8uv6_183{color:#c3c9d1}._rankPill_c8uv6_168._rankBronze_c8uv6_187{color:#c08d5f}@media(max-width:768px){._rankPill_c8uv6_168{font-size:1.3rem}}._skeletonPoster_c8uv6_198,._skeletonText_c8uv6_199{position:relative;overflow:hidden;background-color:var(--bg-tertiary);border-radius:var(--radius-sm)}._skeletonPoster_c8uv6_198:after,._skeletonText_c8uv6_199:after{content:"";position:absolute;inset:0;transform:translate(-100%);background-image:linear-gradient(90deg,#fff0 0,#ffffff0d 20%,#ffffff1f 60%,#fff0);animation:_skeleton-wave_c8uv6_1 1.8s infinite ease-in-out}._skeletonPoster_c8uv6_198{width:100%;aspect-ratio:3 / 4}._skeletonText_c8uv6_199{width:80%;height:12px;margin-top:var(--space-2)}._scheduleSection_10dfe_1{margin-bottom:2.5rem}._sectionTitleRow_10dfe_5{display:flex;align-items:center;gap:1rem}._sectionTitleNoMargin_10dfe_11{margin-bottom:0}._sectionHeader_10dfe_15{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);gap:var(--space-4);flex-wrap:wrap;row-gap:var(--space-3)}._headerActions_10dfe_25{display:flex;align-items:center;gap:var(--space-3)}._timeSelect_10dfe_31{width:120px;height:34px;padding:0 var(--space-3);padding-right:2rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23a1a1aa' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center;transition:all var(--transition-base)}._timeSelect_10dfe_31:hover{border-color:var(--border-secondary);background-color:var(--bg-elevated)}._timeSelect_10dfe_31:focus{outline:none;border-color:var(--accent)}._daySelectorContainer_10dfe_62{margin-bottom:var(--space-8);width:100%;position:relative}._daySelector_10dfe_62{display:flex;overflow-x:auto;padding:var(--space-2) var(--space-8);scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;scroll-behavior:smooth;overscroll-behavior-x:contain}._daySelectorInner_10dfe_79{display:flex;gap:var(--space-2);justify-content:flex-start;margin:0 auto}._daySelector_10dfe_62::-webkit-scrollbar{display:none}._dayBtn_10dfe_90{background:#ffffff08;border:1px solid var(--border-primary);color:var(--text-secondary);padding:var(--space-2) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);min-width:70px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex-shrink:0}._dayBtn_10dfe_90:hover{background:#ffffff14;border-color:var(--border-secondary);transform:translateY(-2px)}._dayBtn_10dfe_90._active_10dfe_113{background:var(--accent);border-color:var(--accent);color:var(--accent-text);box-shadow:0 8px 20px var(--accent-glow);transform:translateY(-4px)}._dayMonth_10dfe_121{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;opacity:.8}._dayNum_10dfe_129{font-size:1.25rem;font-weight:800;line-height:1}._dayName_10dfe_135{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em}._dayBtn_10dfe_90._active_10dfe_113 ._dayMonth_10dfe_121,._dayBtn_10dfe_90._active_10dfe_113 ._dayName_10dfe_135{opacity:1}._navArrows_10dfe_148{display:flex;gap:8px;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._navButton_10dfe_157{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._navButton_10dfe_157:hover{background:var(--bg-elevated);color:var(--accent)}._navButton_10dfe_157:active{transform:scale(.9)}._carouselContainer_10dfe_181{position:relative;width:100%;min-height:280px}._carousel_10dfe_181{overflow:hidden;padding-bottom:10px;min-height:260px}._carouselInner_10dfe_193{display:flex;gap:15px}._carouselCard_10dfe_198{flex:0 0 calc((100% - (6 * 15px)) / 7);min-width:150px}@media(max-width:1200px){._carouselCard_10dfe_198{flex:0 0 calc((100% - (5 * 15px)) / 6)}}@media(max-width:1024px){._carouselCard_10dfe_198{flex:0 0 calc((100% - 60px)/5)}}@media(max-width:768px){._carouselCard_10dfe_198{flex:0 0 calc((100% - (2 * 15px)) / 3);min-width:0}._daySelector_10dfe_62{justify-content:flex-start;padding-left:var(--space-4);padding-right:var(--space-4)}._dayBtn_10dfe_90{min-width:60px;padding:var(--space-2) var(--space-3)}}@media(max-width:480px){._carouselCard_10dfe_198{flex:0 0 calc((100% - (2 * 10px)) / 3);min-width:0}._carouselInner_10dfe_193{gap:10px;align-items:flex-start}}@media(max-width:600px){._daySelector_10dfe_62{display:flex;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;gap:0;padding:var(--space-1) var(--space-4);scroll-behavior:smooth;overscroll-behavior-x:contain}._daySelectorInner_10dfe_79{gap:0;margin:0;justify-content:flex-start}._dayBtn_10dfe_90{flex:0 0 14.2857%;min-width:0!important;padding:var(--space-1) 0!important;border-radius:var(--radius-md)!important}._dayMonth_10dfe_121{font-size:10px!important}._dayNum_10dfe_129{font-size:1rem!important}._dayName_10dfe_135{font-size:10px!important}._dayBtn_10dfe_90._active_10dfe_113{transform:translateY(-2px)!important}}._bannerContainer_v3n06_1{width:100vw;max-width:100vw;position:relative;left:50%;right:50%;margin-left:-50vw;margin-right:-50vw;margin-top:calc(-1 * var(--header-height));margin-bottom:2.5rem;overflow:hidden;background-color:var(--bg-main);z-index:2}@media(max-width:1024px){._bannerContainer_v3n06_1{margin-top:calc(-1 * (var(--header-height) + 52px))}}@media(max-width:848px){._bannerContainer_v3n06_1{margin-top:-116px}}._hero_v3n06_28{position:relative;width:100%;height:clamp(480px,72svh,660px);overflow:hidden;background-color:var(--bg-main)}._ambient_v3n06_37{position:absolute;inset:-60px;width:calc(100% + 120px);height:calc(100% + 120px);object-fit:cover;object-position:center 22%;filter:blur(55px) brightness(.3) saturate(1.15);opacity:0;transition:opacity .6s ease}._ambientShow_v3n06_49{opacity:1}._scrim_v3n06_53{position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#050508c7,#0505086b 42%,#0505080f 70%),linear-gradient(0deg,var(--bg-main) 0%,rgba(12,13,18,.82) 16%,transparent 46%),linear-gradient(180deg,transparent 0%,transparent 72px,rgba(5,5,8,.22) 100%)}._progressLine_v3n06_69{position:absolute;left:0;right:0;bottom:0;height:2px;z-index:6;background:#ffffff1a;overflow:hidden}._progressLine_v3n06_69:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--accent),var(--accent-light));transform-origin:left;animation:_progressFill_v3n06_1 8s linear forwards}._paused_v3n06_89 ._progressLine_v3n06_69:after{animation-play-state:paused}@keyframes _progressFill_v3n06_1{0%{transform:scaleX(0)}to{transform:scaleX(1)}}._dots_v3n06_103{position:absolute;left:50%;transform:translate(-50%);bottom:.6rem;z-index:5;display:flex;align-items:center;gap:.5rem;padding:10px 16px}._dot_v3n06_103{width:10px;height:10px;padding:0;border-radius:var(--radius-full);border:none;background:#ffffff4d;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1)}._dot_v3n06_103:not(._dotActive_v3n06_126):hover{background:#ffffffa6}._dotActive_v3n06_126{width:32px;background:var(--accent);box-shadow:0 0 10px var(--accent-glow)}._viewport_v3n06_137{position:absolute;inset:0;z-index:2;overflow:hidden}._track_v3n06_144{display:flex;height:100%;transition:transform .45s cubic-bezier(.22,1,.36,1)}._slide_v3n06_150{flex:0 0 100%;height:100%;display:flex;align-items:center;justify-content:center}._slideInner_v3n06_158{width:100%;max-width:var(--max-width);margin:0 auto;padding:4rem var(--space-8) 3.5rem;display:flex;align-items:center;gap:3rem}._poster_v3n06_168{width:230px;height:330px;object-fit:cover;border-radius:var(--radius-lg);flex-shrink:0;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px #0009}._info_v3n06_178{max-width:620px}._kicker_v3n06_182{display:flex;align-items:center;gap:.75rem;margin-bottom:.9rem}._featureLabel_v3n06_189{padding:.3rem .75rem;background:var(--accent-subtle);border:1px solid var(--border-accent);color:var(--accent-light);font-size:.75rem;font-weight:700;text-transform:uppercase;border-radius:var(--radius-full);letter-spacing:.08em}._scoreChip_v3n06_201{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;background:#00000073;border:1px solid var(--border-strong);border-radius:var(--radius-full);color:var(--accent-lighter);font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}._slide_v3n06_150 ._rise_v3n06_219{opacity:1}._slide_v3n06_150._active_v3n06_223 ._rise_v3n06_219{animation:_riseIn_v3n06_1 .45s cubic-bezier(.22,1,.36,1) both}._slide_v3n06_150._active_v3n06_223 ._rise_v3n06_219:nth-child(1){animation-delay:.03s}._slide_v3n06_150._active_v3n06_223 ._rise_v3n06_219:nth-child(2){animation-delay:.07s}._slide_v3n06_150._active_v3n06_223 ._rise_v3n06_219:nth-child(3){animation-delay:.11s}._slide_v3n06_150._active_v3n06_223 ._rise_v3n06_219:nth-child(4){animation-delay:.15s}._slide_v3n06_150._active_v3n06_223 ._rise_v3n06_219:nth-child(5){animation-delay:.19s}._slide_v3n06_150._active_v3n06_223 ._rise_v3n06_219:nth-child(6){animation-delay:.23s}@keyframes _riseIn_v3n06_1{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}._slide_v3n06_150._active_v3n06_223 ._poster_v3n06_168{animation:_posterIn_v3n06_1 .5s cubic-bezier(.22,1,.36,1)}@keyframes _posterIn_v3n06_1{0%{opacity:0;transform:translate(-30px) scale(.97)}to{opacity:1;transform:none}}._metaRow_v3n06_279{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;color:#ffffffb3;font-size:.9rem;font-weight:600;margin-bottom:.8rem}._metaItem_v3n06_290{display:flex;align-items:center;gap:4px}._metaDivider_v3n06_296{width:4px;height:4px;background:#ffffff4d;border-radius:50%}._title_v3n06_303{display:block;font-size:3rem;line-height:1.04;cursor:pointer;max-width:800px;margin-bottom:.9rem;text-shadow:0 2px 26px rgba(0,0,0,.75),0 1px 3px rgba(0,0,0,.9)}._title_v3n06_303:hover{color:var(--accent-light)}._genres_v3n06_319{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.9rem}._genreTag_v3n06_327{color:#fffc;border:1px solid rgba(255,255,255,.28);padding:.32rem .75rem;border-radius:var(--radius-full);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}._summary_v3n06_338{font-size:.96rem;line-height:1.65;margin:0 0 1.6rem;color:#fffc;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:750px}._actions_v3n06_350{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}._watchBtn_v3n06_357{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 2.1rem;background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);color:var(--accent-text);font-size:.94rem;font-weight:700;border:none;border-radius:var(--radius-md);cursor:pointer;box-shadow:0 6px 24px var(--accent-glow);transition:transform .2s cubic-bezier(.22,1,.36,1);letter-spacing:.02em}._watchBtn_v3n06_357:hover{transform:translateY(-2px)}._detailsBtn_v3n06_379{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:.85rem 1.8rem;background:#ffffff14;color:var(--text-primary);font-size:.94rem;font-weight:600;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);cursor:pointer;transition:background .2s ease}._detailsBtn_v3n06_379:hover{background:#ffffff29;color:#fff}._navArrow_v3n06_400{position:absolute;top:50%;transform:translateY(-50%);z-index:6;width:46px;height:46px;border-radius:50%;background:#0006;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;transition:opacity .3s ease,border-color .2s ease,color .2s ease}._hero_v3n06_28:hover ._navArrow_v3n06_400{opacity:.9}._navArrow_v3n06_400:hover{border-color:var(--accent);color:var(--accent-light)}._prevArrow_v3n06_433{left:1.2rem}._nextArrow_v3n06_437{right:1.2rem}@media(max-width:768px){._hero_v3n06_28{height:auto;min-height:92svh}._scrim_v3n06_53{background:linear-gradient(0deg,#050508e6,#05050859 55%,#05050873)}._slideInner_v3n06_158{flex-direction:column;justify-content:center;text-align:center;gap:1.3rem;padding:4.2rem var(--space-4) 2.4rem}._poster_v3n06_168{width:172px;height:248px}._slide_v3n06_150._active_v3n06_223 ._poster_v3n06_168{animation-name:_posterUp_v3n06_1}@keyframes _posterUp_v3n06_1{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}._kicker_v3n06_182{justify-content:center}._title_v3n06_303{font-size:1.6rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}._metaRow_v3n06_279{justify-content:center;font-size:.8rem}._genres_v3n06_319{justify-content:center}._genreTag_v3n06_327{font-size:.66rem}._summary_v3n06_338{display:none}._actions_v3n06_350{width:100%}._watchBtn_v3n06_357,._detailsBtn_v3n06_379{flex:1;justify-content:center;padding:.85rem .5rem;font-size:.87rem}._navArrow_v3n06_400{display:none}}@media(max-width:1024px){._slideInner_v3n06_158{gap:2rem}._title_v3n06_303{font-size:2.2rem}._poster_v3n06_168{width:200px;height:288px}}@media(max-height:500px)and (orientation:landscape){._hero_v3n06_28{height:92svh;min-height:360px}._slideInner_v3n06_158{gap:1.5rem;padding:3.5rem var(--space-8) 3rem}._poster_v3n06_168{width:140px;height:200px}._title_v3n06_303{font-size:1.5rem}._summary_v3n06_338{display:none}}._emptyState_19tmt_1{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);background:linear-gradient(to bottom,var(--bg-tertiary),var(--bg-main));border-radius:var(--radius-lg);border:1px solid var(--border-primary);text-align:center;gap:var(--space-4);width:100%;min-height:320px}._emptyStateIcon_19tmt_16{color:var(--accent);opacity:.4;margin-bottom:var(--space-2);filter:drop-shadow(0 0 20px var(--accent-glow))}._emptyStateTitle_19tmt_23{font-size:1.5rem;font-weight:800;margin:0;color:var(--text-primary)}._emptyStateText_19tmt_30{font-size:1rem;color:var(--text-secondary);max-width:340px;line-height:1.6}._select_1dw63_1{height:34px;padding:0 8px;padding-right:1.5rem;background-color:var(--bg-tertiary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:700;cursor:pointer;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23a1a1aa' stroke-width='2' viewBox='0 0 12 12'%3E%3Cpolyline points='3 5 6 8 9 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .5rem center}._tabBar_irwbm_1{display:flex;align-items:center;gap:6px;margin-bottom:2.5rem;padding:6px;background:#ffffff0a;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-primary);border-radius:var(--radius-full);width:fit-content;max-width:100%;overflow-x:auto;scrollbar-width:none;box-shadow:0 4px 20px #0003;position:relative}._tabBar_irwbm_1::-webkit-scrollbar{display:none}._tabIndicator_irwbm_24{position:absolute;top:6px;bottom:6px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-dark) 100%);box-shadow:0 4px 15px var(--accent-glow);transition:left .22s cubic-bezier(.2,1.2,.3,1),width .22s cubic-bezier(.2,1.2,.3,1);z-index:0;pointer-events:none}._tabButton_irwbm_38{border-radius:var(--radius-full)!important;font-weight:700!important;font-size:.85rem!important;padding:.65rem 1.4rem!important;letter-spacing:.02em;transition:color .25s ease!important;border:none!important;background:transparent!important;color:var(--text-muted)!important;position:relative;z-index:1;flex-shrink:0}._tabButton_irwbm_38:hover:not(:disabled){background:transparent!important;color:var(--text-muted)!important;box-shadow:none!important;transform:none!important}._tabButton_irwbm_38:active{transform:scale(.96)}._tabActive_irwbm_64{color:var(--accent-text)!important}._tabActive_irwbm_64:hover:not(:disabled){color:var(--accent-text)!important;transform:none!important}@media(max-width:600px){._tabBar_irwbm_1{width:100%;justify-content:flex-start}._tabButton_irwbm_38{flex:1;justify-content:center!important;padding:.65rem .5rem!important;text-align:center;font-size:.78rem!important}}._section-header_bt5c7_1{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-8)}._title-wrapper_bt5c7_8{display:flex;align-items:center;gap:var(--space-6)}._pagination-controls_bt5c7_14{display:flex;gap:8px;align-items:center;background:var(--bg-tertiary);padding:4px;border-radius:var(--radius-md);border:1px solid var(--border-primary)}._nav-button_bt5c7_24{background:transparent;border:none;color:var(--text-secondary);width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--transition-base)}._nav-button_bt5c7_24:hover:not(:disabled){background:var(--bg-elevated);color:var(--accent)}._nav-button_bt5c7_24:disabled{opacity:.2;cursor:not-allowed}@media(hover:none),(pointer:coarse){._nav-button_bt5c7_24{width:44px;height:44px}}._page-info_bt5c7_55{font-size:.9rem;font-weight:800;min-width:32px;text-align:center;color:var(--text-primary)}@media(max-width:600px){._section-header_bt5c7_1{flex-direction:column;align-items:flex-start;gap:var(--space-4)}._title-wrapper_bt5c7_8{width:100%;justify-content:space-between}}._seasonGrid_bt5c7_76{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-4)}@media(max-width:1200px){._seasonGrid_bt5c7_76{grid-template-columns:repeat(6,1fr)}}@media(max-width:1024px){._seasonGrid_bt5c7_76{grid-template-columns:repeat(5,1fr)}}@media(max-width:768px){._seasonGrid_bt5c7_76{grid-template-columns:repeat(3,1fr);gap:var(--space-2)}}@media(max-width:480px){._seasonGrid_bt5c7_76{grid-template-columns:repeat(3,1fr);gap:8px}}._emptyState_bt5c7_108{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);background:linear-gradient(to bottom,var(--bg-tertiary),var(--bg-main));border-radius:var(--radius-lg);border:1px solid var(--border-primary);text-align:center;gap:var(--space-4);width:100%;min-height:320px}._quickQueue_bt5c7_123{margin:0 0 2.5rem;border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-secondary);overflow:hidden}._quickQueueHeader_bt5c7_131{width:100%;border:none;background:transparent;color:var(--text-primary);padding:var(--space-4) var(--space-5);display:flex;align-items:center;justify-content:space-between;cursor:pointer}._quickQueueTitle_bt5c7_143{display:flex;align-items:center;gap:var(--space-3);font-weight:800}._queueBadge_bt5c7_150{min-width:24px;height:24px;padding:0 8px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-text);font-size:.78rem;font-weight:800}._quickQueueList_bt5c7_164{display:flex;gap:var(--space-3);overflow-x:auto;padding:0 var(--space-5) var(--space-5);-webkit-user-select:none;user-select:none}._quickQueueItem_bt5c7_172._dragging_bt5c7_172{opacity:.5;background:var(--bg-secondary);border-style:dashed}._quickQueueItem_bt5c7_172{width:240px;flex:0 0 240px;display:grid;grid-template-columns:24px 54px minmax(0,1fr) 32px;align-items:center;gap:var(--space-2);padding:var(--space-2);border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:var(--bg-primary)}._quickQueueDrag_bt5c7_191{display:inline-flex;align-items:center;justify-content:center;color:var(--text-muted);cursor:grab;border:none;background:transparent}._quickQueueThumb_bt5c7_201{width:54px;height:72px;object-fit:cover;border-radius:var(--radius-sm);background:var(--bg-tertiary)}._quickQueueMeta_bt5c7_209{min-width:0}._quickQueueName_bt5c7_213{display:block;width:100%;border:none;background:transparent;padding:0;text-align:left;color:var(--text-primary);font-weight:700;font-size:.85rem;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}._quickQueueEpisode_bt5c7_230{margin-top:.25rem;color:var(--text-secondary);font-size:.75rem}._quickQueueRemove_bt5c7_236{width:30px;height:30px;border:1px solid var(--border-secondary);background:var(--bg-tertiary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;align-items:center;justify-content:center}._quickQueueRemove_bt5c7_236:hover{color:var(--color-danger);border-color:var(--color-danger)}._posterLandscape_1smau_1{width:min(400px,38vw);aspect-ratio:16 / 9;height:auto;object-fit:cover;border-radius:var(--radius-lg);flex-shrink:0;border:1px solid rgba(255,255,255,.14);box-shadow:0 30px 80px #0009}@media(max-width:1024px){._posterLandscape_1smau_1{width:min(320px,36vw)}}@media(max-width:768px){._posterLandscape_1smau_1{width:100%;max-width:420px}}
@@ -1 +0,0 @@
1
- ._controlsOverlay_1b7ea_1{position:absolute;inset:0;opacity:1;transition:opacity .4s cubic-bezier(.4,0,.2,1);z-index:50;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(circle,transparent 20%,rgba(0,0,0,.4) 100%)}._controlsOverlay_1b7ea_1>*{pointer-events:auto}._controlsOverlay_1b7ea_1._hidden_1b7ea_21{opacity:0;pointer-events:none;cursor:none}._topControls_1b7ea_27{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;gap:var(--space-6);background:linear-gradient(to bottom,rgba(0,0,0,.85) 0%,rgba(0,0,0,.45) 60%,transparent 100%);padding:var(--space-8) var(--space-10);transition:transform .4s cubic-bezier(.2,.8,.2,1);z-index:10;pointer-events:auto}._backBtn_1b7ea_47{background:transparent;border:none;color:#ffffffd9;font-size:1.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);padding:8px;border-radius:50%}._backBtn_1b7ea_47:hover{background:#0f0f1199;color:#fff;transform:scale(1.1)}._videoTitleInfo_1b7ea_67{display:flex;flex-direction:column;gap:.25rem}._animeTitle_1b7ea_73{font-size:1.4rem;font-weight:800;color:#fff;letter-spacing:-.01em;text-shadow:0 2px 4px rgba(0,0,0,.5)}._episodeNumber_1b7ea_81{font-size:.95rem;font-weight:600;color:var(--accent-light);letter-spacing:.02em;text-shadow:0 1px 2px rgba(0,0,0,.5)}._bottomControls_1b7ea_89{position:absolute;bottom:0;left:0;right:0;display:flex;flex-direction:column;gap:0;background:linear-gradient(to top,rgba(0,0,0,.95) 0%,rgba(0,0,0,.6) 50%,rgba(0,0,0,.25) 80%,transparent 100%);padding:0 clamp(1rem,4cqw,2rem) clamp(.75rem,2.5cqw,1.5rem);transition:transform .4s cubic-bezier(.2,.8,.2,1)}._progressBarContainer_1b7ea_108{width:100%;padding:10px 0 6px;cursor:pointer;position:relative;touch-action:none;display:flex;align-items:center}@media(pointer:coarse){._progressBarContainer_1b7ea_108{padding:14px 0 10px}._progressBarContainer_1b7ea_108 ._progressBar_1b7ea_108{height:6px}._progressBarContainer_1b7ea_108 ._thumb_1b7ea_127{transform:translate(-50%,-50%) scale(1)}}._progressBar_1b7ea_108{width:100%;height:4px;background-color:#ffffff1a;border-radius:4px;position:relative;transition:height .2s}._progressBarContainer_1b7ea_108:hover ._progressBar_1b7ea_108,._progressBarContainer_1b7ea_108._scrubbing_1b7ea_142 ._progressBar_1b7ea_108{height:6px}._watchedBar_1b7ea_146,._bufferedBar_1b7ea_147{position:absolute;top:0;left:0;height:100%;border-radius:4px}._watchedBar_1b7ea_146{background:var(--accent);background:linear-gradient(90deg,var(--accent) 0%,var(--accent-light) 100%);z-index:12;box-shadow:0 0 15px var(--accent-glow)}._bufferedBar_1b7ea_147{background-color:#fff3;z-index:11}._thumb_1b7ea_127{position:absolute;top:50%;transform:translate(-50%,-50%) scale(0);width:14px;height:14px;background-color:#fff;border-radius:50%;z-index:15;transition:transform .2s cubic-bezier(.175,.885,.32,1.275);box-shadow:0 0 10px #00000080}._progressBarContainer_1b7ea_108:hover ._thumb_1b7ea_127,._progressBarContainer_1b7ea_108._scrubbing_1b7ea_142 ._thumb_1b7ea_127{transform:translate(-50%,-50%) scale(1)}._timeBubble_1b7ea_185{position:absolute;bottom:24px;transform:translate(-50%);background:#0f0f11f2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--glass-border);color:#fff;padding:6px 10px;border-radius:8px;font-size:.8rem;font-weight:700;opacity:0;transition:opacity .2s;pointer-events:none;white-space:nowrap;box-shadow:var(--shadow-lg)}._timeBubble_1b7ea_185:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#0f0f11f2}._progressBarContainer_1b7ea_108:hover ._timeBubble_1b7ea_185,._progressBarContainer_1b7ea_108._scrubbing_1b7ea_142 ._timeBubble_1b7ea_185{opacity:1}._skipSegment_1b7ea_219{position:absolute;top:0;height:100%;z-index:10;opacity:.4;transition:opacity .2s;border-radius:4px}._skipSegment_1b7ea_219._op_1b7ea_229{background-color:var(--color-success)}._skipSegment_1b7ea_219._ed_1b7ea_232{background-color:var(--accent-blue)}._skipSegment_1b7ea_219._recap_1b7ea_235{background-color:var(--color-warning)}._bottomControlsRow_1b7ea_239{display:flex;justify-content:space-between;align-items:center;width:100%;margin-top:0}._leftControls_1b7ea_247,._rightControls_1b7ea_248{display:flex;align-items:center;gap:1.25rem;gap:clamp(.5rem,2.5cqw,1.25rem)}._controlBtn_1b7ea_255{background:transparent;border:none;color:#fffc;font-size:1.1rem;cursor:pointer;transition:all var(--transition-fast);padding:8px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;min-width:2.125rem;min-height:2.125rem}@media(pointer:coarse){._controlBtn_1b7ea_255{padding:10px;min-width:2.75rem;min-height:2.75rem}}@container (max-width: 30rem){._bottomControls_1b7ea_89{padding:0 .75rem .75rem}._leftControls_1b7ea_247,._rightControls_1b7ea_248{gap:.2rem}._controlBtn_1b7ea_255{padding:5px;min-width:2.125rem;min-height:2.125rem;font-size:1rem}._theaterBtn_1b7ea_296{display:none}._nextEpisodeBtn_1b7ea_300{padding:.3rem .5rem;font-size:.7rem}}._controlBtn_1b7ea_255:hover{background:#ffffff1a;color:#fff;transform:translateY(-2px)}._controlBtn_1b7ea_255:focus-visible{outline:none;box-shadow:var(--shadow-focus)}._controlBtn_1b7ea_255._active_1b7ea_317{color:var(--accent)}._timeDisplay_1b7ea_321{font-size:.9rem;font-weight:600;color:#fffc;font-variant-numeric:tabular-nums;letter-spacing:.02em}._skipControls_1b7ea_329{display:flex;align-items:center;gap:var(--space-2)}._skipBtn_1b7ea_335{background:transparent;border:none;color:#ffffffb3;cursor:pointer;font-size:1.3rem;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);padding:6px}._skipBtn_1b7ea_335:hover{color:#fff;transform:scale(1.1)}._nextEpisodeBtn_1b7ea_300{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);padding:.45rem .8rem;color:#fffc;font-weight:600;font-size:.9rem;display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}._nextEpisodeBtn_1b7ea_300:hover{background:#ffffff1a;color:#fff;transform:translateY(-1px);border-color:#fff3}._volumeContainer_1b7ea_376{display:flex;align-items:center;position:relative}._volumeSlider_1b7ea_382{width:0;opacity:0;transform:scaleX(0);transform-origin:left;transition:all .3s var(--ease-smooth);cursor:pointer;margin-left:8px;-webkit-appearance:none;appearance:none;background:transparent;height:20px}._volumeContainer_1b7ea_376:hover ._volumeSlider_1b7ea_382,._volumeSlider_1b7ea_382:focus{width:80px;opacity:1;transform:scaleX(1)}._volumeSlider_1b7ea_382::-webkit-slider-runnable-track{width:100%;height:4px;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--volume-percent, 0%),rgba(255,255,255,.2) var(--volume-percent, 0%),rgba(255,255,255,.2) 100%);border-radius:4px}._volumeSlider_1b7ea_382::-moz-range-track{width:100%;height:4px;background:#fff3;border-radius:4px}._volumeSlider_1b7ea_382::-moz-range-progress{height:4px;background:var(--accent);border-radius:4px}._volumeSlider_1b7ea_382::-webkit-slider-thumb{-webkit-appearance:none;height:12px;width:12px;border-radius:50%;background:#fff;margin-top:-4px;box-shadow:0 0 5px #00000080}@media(max-width:900px)and (orientation:landscape){._playerPageLayout_1b7ea_440{padding:0;gap:0}._videoPlayerWrapper_1b7ea_444{border-radius:0;height:100vh;padding-top:0}._playerInfoContainer_1b7ea_449{padding:1.5rem}}body.low-end ._controlsOverlay_1b7ea_1,body.low-end div._controlsOverlay_1b7ea_1{background:none;transition:none}body.low-end ._bottomControls_1b7ea_89,body.low-end div._bottomControls_1b7ea_89{backdrop-filter:none;-webkit-backdrop-filter:none;background:#1a1a1c;box-shadow:none;transition:none}body.low-end ._controlBtn_1b7ea_255._active_1b7ea_317,body.low-end button._controlBtn_1b7ea_255._active_1b7ea_317{color:var(--accent)}body.low-end ._progressBar_1b7ea_108,body.low-end div._progressBar_1b7ea_108{height:4px;transition:none}body.low-end ._watchedBar_1b7ea_146,body.low-end div._watchedBar_1b7ea_146{background:var(--accent);box-shadow:none}body.low-end ._thumb_1b7ea_127,body.low-end div._thumb_1b7ea_127{transition:none;box-shadow:none}body.low-end ._controlBtn_1b7ea_255:hover,body.low-end ._nextEpisodeBtn_1b7ea_300:hover,body.low-end button._controlBtn_1b7ea_255:hover,body.low-end button._nextEpisodeBtn_1b7ea_300:hover{transform:none}body.low-end ._timeBubble_1b7ea_185,body.low-end div._timeBubble_1b7ea_185{-webkit-backdrop-filter:none;backdrop-filter:none;background:#111;transition:none}@media(max-width:768px){._topControls_1b7ea_27{padding:12px 16px;gap:.75rem}._backBtn_1b7ea_47{font-size:1.2rem;padding:4px}._animeTitle_1b7ea_73{font-size:1rem;max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._episodeNumber_1b7ea_81{font-size:.75rem}._bottomControls_1b7ea_89{padding:0 16px 16px}._timeDisplay_1b7ea_321{font-size:.75rem;margin-right:2px}._volumeContainer_1b7ea_376{display:flex;flex-direction:column-reverse;align-items:center;position:relative}._volumeSlider_1b7ea_382{display:block!important;position:absolute;bottom:100%;left:50%;width:0;height:32px;opacity:0;transform:translate(-50%) rotate(-90deg) scaleX(0);transform-origin:center;transition:all .3s var(--ease-smooth);margin:0 0 20px;background:#0f0f11f2;border:1px solid var(--glass-border);padding:4px 12px;border-radius:16px;z-index:var(--z-dropdown);pointer-events:none}._volumeContainer_1b7ea_376._visible_1b7ea_566 ._volumeSlider_1b7ea_382,._volumeContainer_1b7ea_376:hover ._volumeSlider_1b7ea_382,._volumeContainer_1b7ea_376:active ._volumeSlider_1b7ea_382,._volumeSlider_1b7ea_382:focus{width:100px;opacity:1;transform:translate(-50%) rotate(-90deg) scaleX(1);pointer-events:auto}._nextEpisodeBtn_1b7ea_300{padding:.35rem .6rem;font-size:.75rem}}@media(max-width:480px){._shortcuts_1b7ea_584{gap:.25rem}._timeDisplay_1b7ea_321{display:none}._topControls_1b7ea_27{padding:8px 12px}}
@@ -1 +0,0 @@
1
- ._settingsPanel_y6z3b_1{position:absolute;bottom:clamp(5.5rem,13vh,7.25rem);right:clamp(1rem,3vw,2rem);width:max-content;min-width:12rem;max-width:min(19rem,calc(100vw - 1.5rem));font-size:.85rem;background:var(--glass-bg);backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--glass-shadow);z-index:60;animation:_slideUp_y6z3b_1 .3s var(--ease-smooth)}@keyframes _slideUp_y6z3b_1{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}._header_y6z3b_33{display:flex;align-items:center;padding:.55rem .75rem;border-bottom:1px solid var(--glass-border);position:relative;min-height:2.5rem}._header_y6z3b_33 h3{margin:0;font-size:.72rem;font-weight:800;flex-grow:1;text-align:center;text-transform:uppercase;letter-spacing:.1em;color:var(--text-tertiary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._backBtn_y6z3b_56{background:transparent;border:none;color:#fff;cursor:pointer;position:absolute;left:.5rem;padding:.375rem;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}._backBtn_y6z3b_56:hover{background:#ffffff1a;transform:translate(-2px)}._contentWrapper_y6z3b_76{max-height:min(56vh,22rem);overflow-y:auto;-webkit-overflow-scrolling:touch}._menuContent_y6z3b_82{display:flex;flex-direction:column;padding:.375rem;gap:.125rem}._menuItem_y6z3b_89{background:transparent;border:none;color:var(--text-secondary);padding:.5rem .75rem;min-height:2rem;text-align:left;display:flex;justify-content:space-between;align-items:center;gap:.75rem;cursor:pointer;font-size:.85rem;font-weight:600;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap}._menuItem_y6z3b_89:hover{background:#ffffff0d;color:var(--text-primary);transform:translate(4px)}._menuItem_y6z3b_89._selected_y6z3b_114{color:var(--accent-light);background:color-mix(in srgb,var(--accent) 10%,transparent)}._presetSelect_y6z3b_119{background:#ffffff0d;border:1px solid var(--glass-border);color:var(--text-primary);padding:.25rem .5rem;border-radius:var(--radius-md);font-size:.8rem;cursor:pointer;outline:none}._presetSelect_y6z3b_119:focus{border-color:var(--accent)}._currentValue_y6z3b_134{color:var(--text-tertiary);font-size:.75rem;font-weight:500;font-variant-numeric:tabular-nums}._menuNote_y6z3b_141{color:var(--text-tertiary);font-size:.72rem;font-weight:500;line-height:1.5;padding:.375rem .75rem;overflow-wrap:break-word}._menuError_y6z3b_150{color:#f87171;font-size:.75rem;font-weight:600;padding:.375rem .75rem;word-break:break-word}._contentWrapper_y6z3b_76::-webkit-scrollbar{width:4px}._contentWrapper_y6z3b_76::-webkit-scrollbar-thumb{background:var(--glass-border);border-radius:2px}@media(pointer:coarse){._settingsPanel_y6z3b_1{font-size:.9rem;bottom:calc(env(safe-area-inset-bottom,0px) + 6.5rem);right:max(.75rem,env(safe-area-inset-right,0px))}._menuItem_y6z3b_89{min-height:2.75rem;padding:.625rem .875rem}}@media(max-width:480px){._settingsPanel_y6z3b_1{min-width:9rem;max-width:calc(100vw - 2rem);font-size:.75rem;border-radius:var(--radius-md);bottom:calc(env(safe-area-inset-bottom,0px) + 5.5rem)}._header_y6z3b_33{min-height:2rem;padding:.4rem .625rem}._header_y6z3b_33 h3{font-size:.64rem}._menuItem_y6z3b_89{min-height:2.25rem;padding:.45rem .625rem;font-size:.75rem;gap:.5rem}._contentWrapper_y6z3b_76{max-height:min(40vh,15rem)}}@media(max-height:500px)and (orientation:landscape){._settingsPanel_y6z3b_1{bottom:6.5rem;right:1.5rem;min-width:10rem;max-width:min(15rem,calc(100vw - 1.5rem));font-size:.8rem}._header_y6z3b_33{min-height:2.25rem}._menuItem_y6z3b_89{min-height:2.5rem;padding:.45rem .625rem;font-size:.8rem}._contentWrapper_y6z3b_76{max-height:44vh}}
@@ -1,21 +0,0 @@
1
- import{d as s,A as H,h as A,u as e,q as ie,S as ke,T as Ce,p as _e,g as ce,_ as Se}from"./vendor-core-DfaOB3Rn.js";import{d as Ne,t as _,B as T,M as E,j as he,h as Te,z as de,F as te,G as Ie,T as Re,u as xe,e as Le,H as De,y as ae,A as Pe,V as Ae,I as Oe}from"./index-DNxWyfmM.js";import{u as oe}from"./vendor-query-BBT5_sHx.js";import{T as q}from"./ToggleSwitch-CN_ppEc9.js";import{I as Y}from"./vendor-icons-DrybRNxP.js";const ne={"title-preference-container":"_title-preference-container_sdqgs_1","toggle-button":"_toggle-button_sdqgs_21","toggle-label":"_toggle-label_sdqgs_51"},se=["name","nativeName","englishName"],re={name:"Default (Romaji)",nativeName:"Native",englishName:"English"},Ge=()=>{const{titlePreference:t,setTitlePreference:r,loading:i}=Ne(),[l,o]=s(re[t]),[v,b]=s(!1),h=H(null);A(()=>{i||o(re[t])},[t,i]);const n=async()=>{if(v)return;b(!0);const g=(se.indexOf(t)+1)%se.length,p=se[g],d=re[p];h.current&&(h.current.style.transform="translateX(-100%)",h.current.style.opacity="0"),setTimeout(async()=>{o(d),r(p),h.current&&(h.current.style.transition="none",h.current.style.transform="translateX(100%)",h.current.style.opacity="0",h.current.offsetWidth,h.current.style.transition="transform 0.3s ease-out, opacity 0.3s ease-out",h.current.style.transform="translateX(0)",h.current.style.opacity="1");try{await _.settings.set.mutate({key:"titlePreference",value:p})}catch(S){console.error("Error saving title preference:",S)}finally{b(!1)}},300)};return i?e("p",{children:"Loading title preference..."}):e("div",{className:ne["title-preference-container"],children:[e("h4",{children:"Anime Title Display Preference"}),e("button",{onClick:n,className:ne["toggle-button"],disabled:v,children:e("span",{ref:h,className:ne["toggle-label"],children:l})})]})},Me="_settingsHeader_14a5d_1",Ue="_pageTitle_14a5d_6",ze="_pageSubtitle_14a5d_14",Ee="_settingsLayout_14a5d_20",$e="_sidebar_14a5d_27",qe="_sidebarIndicator_14a5d_35",Fe="_sidebarItem_14a5d_50",Ke="_active_14a5d_72",je="_mainContent_14a5d_80",He="_tabContent_14a5d_85",We="_sectionCard_14a5d_103",Be="_settingItem_14a5d_127",Ve="_settingRow_14a5d_132",Qe="_controls_14a5d_145",Ye="_status_14a5d_151",m={settingsHeader:Me,pageTitle:Ue,pageSubtitle:ze,settingsLayout:Ee,sidebar:$e,sidebarIndicator:qe,sidebarItem:Fe,active:Ke,mainContent:je,tabContent:He,sectionCard:We,settingItem:Be,settingRow:Ve,controls:Qe,status:Ye},Je="_sectionCard_wt900_12",Xe="_title_wt900_22",Ze="_signIn_wt900_29",et="_userInfo_wt900_36",tt="_warning_wt900_58",at="_formGroup_wt900_65",nt="_label_wt900_69",st="_inputWrapper_wt900_79",rt="_input_wt900_79",it="_select_wt900_103",ot="_actions_wt900_140",lt="_hr_wt900_148",u={sectionCard:Je,title:Xe,signIn:Ze,userInfo:et,warning:tt,formGroup:at,label:nt,inputWrapper:st,input:rt,select:it,actions:ot,hr:lt},ct=()=>{const[t,r]=s(!0),[i,l]=s(!1),[o,v]=s(!1),[b,h]=s(null),[n,c]=s({status:"idle"}),[g,p]=s(!1),[d,S]=s(""),[y,k]=s(!1),R=H(null),[x,L]=s({show:!1,message:"",type:"info"}),D=()=>{R.current&&(window.clearInterval(R.current),R.current=null)},w=ie(f=>{v(f.authenticated),h(f.user||f.device.user||null),c(f.device),p(!!f.hasCustomClientId)},[]),C=ie(async()=>{const f=await _.auth.githubStatus.query();w(f)},[w]),P=async()=>{try{const f=await _.auth.githubPoll.query();c(f),f.status==="success"?(D(),await C(),L({show:!0,message:"GitHub authentication complete. Sync has been initialized.",type:"success"})):f.status==="error"&&(D(),L({show:!0,message:f.error||"GitHub authentication failed.",type:"error"}))}catch{D(),L({show:!0,message:"Failed to poll GitHub authentication status.",type:"error"})}},M=(f=5)=>{D(),R.current=window.setInterval(P,Math.max(f,5)*1e3)};A(()=>(C().catch(()=>{L({show:!0,message:"Failed to load GitHub sync status.",type:"error"})}).finally(()=>r(!1)),D),[C]);const N=async()=>{l(!0);try{const f=await _.auth.githubStart.mutate();c(f),M(f.verification?.interval)}catch(f){L({show:!0,message:f instanceof Error?f.message:"Failed to start GitHub authentication.",type:"error"})}finally{l(!1)}},O=async()=>{try{await _.auth.githubLogout.mutate(),v(!1),h(null),c({status:"idle"}),L({show:!0,message:"Signed out of GitHub sync.",type:"success"})}catch{L({show:!0,message:"Failed to sign out of GitHub.",type:"error"})}},U=async()=>{k(!0);try{await _.auth.saveGithubAuth.mutate({clientId:d}),S(""),await C(),L({show:!0,message:"Custom GitHub auth saved.",type:"success"})}catch{L({show:!0,message:"Failed to save override.",type:"error"})}finally{k(!1)}},K=async()=>{k(!0);try{await _.auth.saveGithubAuth.mutate({clientId:""}),S(""),await C(),L({show:!0,message:"Custom auth cleared. Using dango defaults.",type:"success"})}catch{L({show:!0,message:"Failed to clear override.",type:"error"})}finally{k(!1)}};return t?e("div",{style:{color:"var(--text-secondary)",padding:"1.5rem"},children:"Loading..."}):e("div",{className:u.sectionCard,children:[e("h3",{className:u.title,children:"GitHub Cloud Sync"}),e("p",{className:u.signIn,children:"Sync local data through a private GitHub repository named dango-sync-data."}),o&&b?e("div",{className:u.userInfo,children:[e("p",{children:["Signed in as: ",e("strong",{children:b.name||b.login})]}),e(T,{variant:"danger",onClick:O,children:"Sign Out"})]}):e("div",{className:u.signIn,children:e(T,{onClick:N,disabled:i||n.status==="pending",children:i||n.status==="pending"?"Waiting for GitHub...":"Sign in with GitHub"})}),n.status==="pending"&&n.verification&&e(ke,{children:[e("hr",{className:u.hr}),e("div",{className:u.formGroup,children:[e("label",{className:u.label,children:"Verification URL"}),e("div",{className:u.inputWrapper,children:[e("input",{className:u.input,value:n.verification.verification_uri,readOnly:!0}),e(T,{onClick:()=>{const f=n.verification?.verification_uri;f&&/^https?:\/\//i.test(f)&&window.open(f,"_blank","noopener,noreferrer")},children:"Open"})]})]}),e("div",{className:u.formGroup,children:[e("label",{className:u.label,children:"Device Code"}),e("input",{className:u.input,value:n.verification.user_code,readOnly:!0})]})]}),n.status==="error"&&e("p",{className:u.warning,children:n.error}),e("details",{style:{marginTop:"1rem",fontSize:"var(--font-size-sm)"},children:[e("summary",{style:{cursor:"pointer",color:"var(--text-secondary)"},children:["Advanced: use your own auth ",g?"(override active)":""]}),e("div",{className:u.formGroup,style:{marginTop:"0.75rem"},children:[e("label",{className:u.label,children:"Client ID (optional)"}),e("input",{className:u.input,value:d,onChange:f=>S(f.currentTarget.value),placeholder:"Your GitHub OAuth app ID"})]}),e("div",{className:u.actions,children:[e(T,{onClick:U,disabled:y,children:"Save override"}),e(T,{variant:"secondary",onClick:K,disabled:y,children:"Use dango defaults"})]})]}),e(E,{isOpen:x.show,onClose:()=>L(f=>({...f,show:!1})),width:"sm",children:[e(E.Body,{children:e("p",{children:x.message})}),e(E.Actions,{children:e(T,{onClick:()=>L(f=>({...f,show:!1})),children:"OK"})})]})]})},dt=()=>{const[t,r]=s(!0),[i,l]=s(null),[o,v]=s(!1),[b,h]=s(!1),[n,c]=s(""),[g,p]=s(""),[d,S]=s(""),[y,k]=s(!1),[R,x]=s({show:!1,message:"",type:"info"}),L=async()=>{try{const N=await _.auth.user.query();l(N?.email?N:null)}catch{l(null)}},D=async()=>{try{const[N,O]=await Promise.all([_.auth.configStatus.query(),_.auth.googleAuth.query()]);v(!!N.hasConfig),h(!!(O.hasCustomWorkerUrl||O.hasCustomClientId||O.hasClientSecret))}catch(N){console.error("Failed to fetch config status",N)}};A(()=>{(async()=>{r(!0),await Promise.all([L(),D()]);try{new URLSearchParams(window.location.search).get("google_auth")==="success"&&(await L(),window.history.replaceState(null,"",window.location.pathname))}catch{}r(!1)})();const O=U=>{U.origin===window.location.origin&&typeof U.data=="object"&&U.data!==null&&U.data.type==="GOOGLE_AUTH_SUCCESS"&&(l(U.data.user),window.location.reload())};return window.addEventListener("message",O),()=>window.removeEventListener("message",O)},[]);const w=async()=>{try{const N=await _.auth.googleLogin.mutate();if(N.authenticated){window.location.reload();return}if(N.url){if(typeof window.DangoBridge<"u"){window.location.href=N.url;return}const U=600,K=700,f=window.innerWidth/2-U/2,J=window.innerHeight/2-K/2;window.open(N.url,"GoogleAuth",`width=${U},height=${K},top=${J},left=${f}`)}else throw new Error("Auth URL not available")}catch{x({show:!0,message:"Authentication failed. Ensure server is configured correctly.",type:"error"})}},C=async()=>{try{await _.auth.logout.mutate(),l(null),x({show:!0,message:"Successfully signed out.",type:"success"}),window.location.reload()}catch(N){console.error("Sign out failed",N),x({show:!0,message:"Failed to sign out.",type:"error"})}},P=async()=>{k(!0);try{await _.auth.saveGoogleAuth.mutate({workerUrl:n,clientId:g,clientSecret:d}),c(""),p(""),S(""),await D(),x({show:!0,message:"Custom auth saved. Restart may be required.",type:"success"})}catch{x({show:!0,message:"Failed to save override.",type:"error"})}finally{k(!1)}},M=async()=>{k(!0);try{await _.auth.saveGoogleAuth.mutate({workerUrl:"",clientId:"",clientSecret:""}),c(""),p(""),S(""),await D(),x({show:!0,message:"Custom auth cleared. Using dango defaults.",type:"success"})}catch{x({show:!0,message:"Failed to clear override.",type:"error"})}finally{k(!1)}};return t?e("div",{style:{color:"var(--text-secondary)",padding:"1.5rem"},children:"Loading..."}):e("div",{className:u.sectionCard,children:[e("h3",{className:u.title,children:"Google Drive Sync"}),i?e("div",{className:u.userInfo,children:[e("p",{children:["Signed in as: ",e("strong",{children:i.name})," (",i.email,")"]}),e(T,{variant:"danger",onClick:C,children:"Sign Out"})]}):e("div",{className:u.signIn,children:[e("p",{children:"Sign in with your Google account to enable synchronization features."}),e(T,{onClick:w,disabled:!o,children:"Sign in with Google"}),!o&&e("p",{className:u.warning,children:"Google sync is not configured on the server."})]}),e("details",{style:{marginTop:"1rem",fontSize:"var(--font-size-sm)"},children:[e("summary",{style:{cursor:"pointer",color:"var(--text-secondary)"},children:["Advanced: use your own auth ",b?"(override active)":""]}),e("div",{className:u.formGroup,style:{marginTop:"0.75rem"},children:[e("label",{className:u.label,children:"Worker URL (optional)"}),e("input",{className:u.input,value:n,onChange:N=>c(N.currentTarget.value),placeholder:"https://your-worker.workers.dev"})]}),e("div",{className:u.formGroup,children:[e("label",{className:u.label,children:"Client ID (optional)"}),e("input",{className:u.input,value:g,onChange:N=>p(N.currentTarget.value),placeholder:"Your Google OAuth client ID"})]}),e("div",{className:u.formGroup,children:[e("label",{className:u.label,children:"Client Secret (optional)"}),e("input",{type:"password",className:u.input,value:d,onChange:N=>S(N.currentTarget.value),placeholder:"Your Google OAuth secret"})]}),e("div",{className:u.actions,children:[e(T,{onClick:P,disabled:y,children:"Save override"}),e(T,{variant:"secondary",onClick:M,disabled:y,children:"Use dango defaults"})]})]}),e(E,{isOpen:R.show,onClose:()=>x(N=>({...N,show:!1})),width:"sm",children:[e(E.Body,{children:e("p",{children:R.message})}),e(E.Actions,{children:e(T,{onClick:()=>x(N=>({...N,show:!1})),children:"OK"})})]})]})},ut="_sectionCard_1pqo4_1",ht="_settingItem_1pqo4_26",gt="_settingRow_1pqo4_31",mt="_modalOverlay_1pqo4_38",pt="_modal_1pqo4_38",yt="_modalActions_1pqo4_73",ft="_modalSecondary_1pqo4_79",vt="_modalPrimary_1pqo4_89",z={sectionCard:ut,settingItem:ht,settingRow:gt,modalOverlay:mt,modal:pt,modalActions:yt,modalSecondary:ft,modalPrimary:vt},wt={anime:{heading:"Watchlist Preferences",blurb:"Customize your experience when managing your watchlist and series entries.",skipKey:"skipRemoveConfirmation",ignoreKey:"ignoreAdultContent",listOnlyKey:"cwWatchlistOnly",skipLabel:"Skip confirmation when removing from watchlist",ignoreLabel:"Hide adult content from continue watching",listOnlyLabel:"Only show continue watching for shows in watchlist",listNoun:"watchlist",continueNoun:"continue watching",adultCountUrl:"/api/continue-watching/adult-count",purgeUrl:"/api/continue-watching/purge-adult",purgeDoneText:t=>`Removed ${t??0} entries from continue watching`,invalidateKeys:[["allContinueWatching"]]},manga:{heading:"Reading List Preferences",blurb:"Customize your experience when managing your reading list and manga entries.",skipKey:"mangaSkipRemoveConfirmation",ignoreKey:"mangaIgnoreAdultContent",listOnlyKey:"mangaCwWatchlistOnly",skipLabel:"Skip confirmation when removing from reading list",ignoreLabel:"Hide adult content from continue reading",listOnlyLabel:"Only show continue reading for manga in reading list",listNoun:"reading list",continueNoun:"continue reading",adultCountUrl:"/api/manga/continue-reading/adult-count",purgeUrl:"/api/manga/continue-reading/purge-adult",purgeDoneText:t=>`Removed ${t??0} entries from continue reading`,invalidateKeys:[["manga-continue-reading"]]},tv:{heading:"TV Watchlist Preferences",blurb:"Customize your experience when managing your TV watchlist and series entries.",skipKey:"tvSkipRemoveConfirmation",ignoreKey:"tvIgnoreAdultContent",listOnlyKey:"tvCwWatchlistOnly",skipLabel:"Skip confirmation when removing from TV watchlist",ignoreLabel:"Hide adult content from continue watching",listOnlyLabel:"Only show continue watching for shows in TV watchlist",listNoun:"TV watchlist",continueNoun:"continue watching",adultCountUrl:"/api/tv/continue-watching/adult-count",purgeUrl:"/api/tv/continue-watching/purge-adult",purgeDoneText:t=>`Removed ${t??0} entries from continue watching`,invalidateKeys:[["tv-continue-watching"]]},asmr:{heading:"Listening List Preferences",blurb:"Customize your experience when managing your listening list and work entries.",skipKey:"asmrSkipRemoveConfirmation",ignoreKey:"asmrIgnoreAdultContent",listOnlyKey:"asmrCwWatchlistOnly",skipLabel:"Skip confirmation when removing from listening list",ignoreLabel:"Hide adult content from continue listening",listOnlyLabel:"Only show continue listening for works in listening list",listNoun:"listening list",continueNoun:"continue listening",adultCountUrl:"/api/asmr/continue-listening/adult-count",purgeUrl:"/api/asmr/continue-listening/purge-adult",purgeDoneText:t=>`Removed ${t??0} entries from continue listening`,invalidateKeys:[["asmr-continue-listening"]]}},bt=(t,r)=>{if(t==null)return r;const i=String(t);return i==="true"||i==="1"?!0:i==="false"||i==="0"?!1:r},ue=(t,r,i)=>{const[l,o]=s(r),[v,b]=s(!1),h=oe();return A(()=>{(async()=>{try{const g=await _.settings.getByKey.query({key:t});o(bt(g.value,r))}catch(g){console.error("Failed to fetch setting",g)}})()},[t,r]),{value:l,setValue:o,isUpdating:v,toggle:async()=>{if(v)return;b(!0);const c=!l;o(c);try{await _.settings.set.mutate({key:t,value:c});for(const g of i)h.invalidateQueries({queryKey:g})}catch(g){console.error("Error saving setting:",g),o(!c)}finally{b(!1)}}}},kt=()=>{const{contentType:t}=he(),r=wt[t],[i,l]=s(!1),[o,v]=s(!0),[b,h]=s(!1),n=ue(r.ignoreKey,!0,r.invalidateKeys),c=ue(r.listOnlyKey,!1,r.invalidateKeys),[g,p]=s(null),[d,S]=s(!1),y=oe(),k=Te();A(()=>{v(!0),(async()=>{try{const C=await _.settings.getByKey.query({key:r.skipKey});String(C.value)==="true"||String(C.value)==="1"?l(!0):l(!1)}catch(C){console.error("Failed to fetch setting",C)}finally{v(!1)}})()},[r.skipKey]);const R=async()=>{if(b)return;h(!0);const w=!i;l(w);try{await _.settings.set.mutate({key:r.skipKey,value:w})}catch(C){console.error("Error saving setting:",C),l(!w)}finally{h(!1)}},x=async()=>{if(!n.isUpdating){if(n.value)try{let w;if(t==="anime"?w=(await _.continueWatching.adultCount.query()).count:t==="manga"?w=(await _.mangaProgress.adultCount.query()).count:t==="asmr"?w=(await _.asmrProgress.adultCount.query()).count:w=(await _.tvProgress.adultCount.query()).count,typeof w=="number"&&w>0){p(w);return}}catch(w){console.error("Failed to fetch adult count",w)}n.toggle()}},L=()=>{p(null),n.toggle()},D=async()=>{if(!d){S(!0);try{let w;t==="anime"?w=(await _.continueWatching.purgeAdult.mutate()).removed:t==="manga"?w=(await _.mangaProgress.purgeAdult.mutate()).removed:t==="asmr"?w=(await _.asmrProgress.purgeAdult.mutate()).removed:w=(await _.tvProgress.purgeAdult.mutate()).removed,de.success(r.purgeDoneText(w??0));for(const C of r.invalidateKeys)y.invalidateQueries({queryKey:C});t==="anime"&&y.invalidateQueries(k.continueWatching.pathFilter()),t==="manga"&&y.invalidateQueries(k.mangaProgress.pathFilter()),t==="asmr"&&y.invalidateQueries(k.asmrProgress.pathFilter()),t==="tv"&&y.invalidateQueries(k.tvProgress.pathFilter())}catch(w){console.error("Failed to purge adult entries",w),de.error("Failed to remove adult entries")}finally{S(!1),p(null)}n.toggle()}};return o?e("div",{children:"Loading settings..."}):e("div",{className:z.sectionCard,children:[e("h3",{children:r.heading}),e("p",{children:r.blurb}),e("div",{className:z.settingItem,children:e("div",{className:z.settingRow,children:[e("label",{htmlFor:"skip-confirmation-toggle",children:r.skipLabel}),e(q,{isChecked:i,onChange:R,id:"skip-confirmation-toggle",disabled:b})]})}),e("div",{className:z.settingItem,children:e("div",{className:z.settingRow,children:[e("label",{htmlFor:"ignore-adult-toggle",children:r.ignoreLabel}),e(q,{isChecked:n.value,onChange:x,id:"ignore-adult-toggle",disabled:n.isUpdating})]})}),e("div",{className:z.settingItem,children:e("div",{className:z.settingRow,children:[e("label",{htmlFor:"cw-watchlist-only-toggle",children:r.listOnlyLabel}),e(q,{isChecked:c.value,onChange:c.toggle,id:"cw-watchlist-only-toggle",disabled:c.isUpdating})]})}),g!==null&&e("div",{className:z.modalOverlay,onClick:()=>p(null),children:e("div",{className:z.modal,onClick:w=>w.stopPropagation(),children:[e("h4",{children:"Show adult entries?"}),e("p",{children:[g," adult ",g===1?"entry":"entries"," not in your"," ",r.listNoun," ",g===1?"is":"are"," currently hidden from"," ",r.continueNoun,". You can purge ",g===1?"it":"them"," from the database instead of showing ",g===1?"it":"them","."]}),e("div",{className:z.modalActions,children:[e("button",{type:"button",className:z.modalSecondary,onClick:L,disabled:d,children:"Show them"}),e("button",{type:"button",className:z.modalPrimary,onClick:D,disabled:d,children:d?"Purging...":`Purge ${g}`})]})]})})]})},Ct="_sectionCard_jkggs_1",_t="_statsGrid_jkggs_26",St="_statCard_jkggs_33",Nt="_statLabel_jkggs_43",Tt="_statValue_jkggs_51",It="_statMeta_jkggs_57",Rt="_statusBanner_jkggs_63",xt="_statusSuccess_jkggs_74",Lt="_statusUpdating_jkggs_80",Dt="_statusError_jkggs_86",Pt="_sha_jkggs_92",At="_settingItem_jkggs_99",Ot="_settingRow_jkggs_104",Gt="_settingTitle_jkggs_111",Mt="_settingSubtitle_jkggs_117",Ut="_actionsRow_jkggs_124",I={sectionCard:Ct,statsGrid:_t,statCard:St,statLabel:Nt,statValue:Tt,statMeta:It,statusBanner:Rt,statusSuccess:xt,statusUpdating:Lt,statusError:Dt,sha:Pt,settingItem:At,settingRow:Ot,settingTitle:Gt,settingSubtitle:Mt,actionsRow:Ut},zt=()=>{const[t,r]=s(null),[i,l]=s(!0),[o,v]=s(!1),[b,h]=s(!1),n=H(null),c=async()=>{try{const y=await _.settings.offlineDbInfo.query();return r(y),y}catch(y){console.error("Failed to fetch offline DB info:",y)}finally{l(!1)}return null};A(()=>(c(),()=>{n.current&&window.clearInterval(n.current)}),[]),A(()=>{t?.isRefreshing?n.current||(n.current=window.setInterval(async()=>{const y=await c();y&&!y.isRefreshing&&n.current&&(window.clearInterval(n.current),n.current=null)},2e3)):n.current&&(window.clearInterval(n.current),n.current=null)},[t?.isRefreshing]);const g=async()=>{if(!t||o)return;const y=!t.autoUpdateEnabled;v(!0),r({...t,autoUpdateEnabled:y});try{await _.settings.setOfflineDbAutoUpdate.mutate({enabled:y})}catch(k){console.error("Failed to update auto update setting:",k),r({...t,autoUpdateEnabled:!y})}finally{v(!1)}},p=async()=>{if(!(t?.isRefreshing||b)){h(!0);try{await _.settings.triggerOfflineDbUpdate.mutate(),r(y=>y?{...y,isRefreshing:!0,lastStatus:"updating",lastMessage:"Downloading database..."}:null)}catch(y){console.error("Failed to trigger offline DB update:",y)}finally{h(!1)}}},d=y=>{if(!y)return"Never";try{return new Date(y).toLocaleString(void 0,{dateStyle:"medium",timeStyle:"short"})}catch{return y}},S=t?.isRefreshing||b;return e("div",{className:I.sectionCard,children:[e("h3",{children:"Offline Metadata Database"}),e("p",{children:"Local MAL to AniList ID map used for instant imports and metadata enrichment without hitting rate-limited APIs. Updates automatically every Saturday in the background."}),e("div",{className:I.statsGrid,children:[e("div",{className:I.statCard,children:[e("span",{className:I.statLabel,children:"MAL Mapped"}),e("span",{className:I.statValue,children:i?"—":(t?.totalMalMapped??0).toLocaleString()})]}),e("div",{className:I.statCard,children:[e("span",{className:I.statLabel,children:"Release"}),e("span",{className:I.statMeta,children:i?"—":t?.releaseTag??"Never"})]}),e("div",{className:I.statCard,children:[e("span",{className:I.statLabel,children:"Last Checked"}),e("span",{className:I.statMeta,children:i?"—":d(t?.lastCheckedAt??null)})]}),e("div",{className:I.statCard,children:[e("span",{className:I.statLabel,children:"Last Updated"}),e("span",{className:I.statMeta,children:i?"—":d(t?.lastUpdatedAt??null)})]})]}),t?.lastMessage&&e("div",{className:`${I.statusBanner} ${t.lastStatus==="failed"?I.statusError:t.lastStatus==="updating"?I.statusUpdating:I.statusSuccess}`,children:[e("span",{children:t.lastMessage}),t.contentSha256&&e("span",{className:I.sha,children:["sha:",t.contentSha256.slice(0,12)]})]}),e("div",{className:I.settingItem,children:e("div",{className:I.settingRow,children:[e("div",{children:[e("span",{className:I.settingTitle,children:"Weekly Automatic Updates (Saturdays)"}),e("div",{className:I.settingSubtitle,children:"Download and index new database releases in the background. Catches up on startup if the server was offline."})]}),e(q,{id:"offline-db-auto-update-toggle",isChecked:t?t.autoUpdateEnabled:!0,onChange:g,disabled:i||o})]})}),e("div",{className:I.actionsRow,children:e(T,{onClick:p,disabled:i||S,children:S?"Updating Database...":"Update Offline Database Now"})})]})},Et="_sectionCard_1g4qx_1",$t="_dangerCard_1g4qx_26",qt="_status_1g4qx_34",Ft="_warningText_1g4qx_40",Kt="_ackLabel_1g4qx_44",Q={sectionCard:Et,dangerCard:$t,status:qt,warningText:Ft,ackLabel:Kt},jt=()=>{const t=oe(),[r,i]=s(!1),[l,o]=s(!1),[v,b]=s(!1),[h,n]=s(""),c=()=>{o(!1),n(""),i(!0)},g=()=>{v||(i(!1),o(!1))},p=async()=>{if(!(!l||v)){b(!0),n("");try{const d=await fetch("/api/database/clear",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({confirm:!0})}),S=await d.json();if(!d.ok)throw new Error(S.error||"Failed to clear database");const y=S.deleted,k=S.deletedManga,R=S.deletedTv,x=S.deletedAsmr,L=Object.values(y).reduce((P,M)=>P+(M||0),0)+Object.values(k??{}).reduce((P,M)=>P+(M||0),0)+Object.values(R??{}).reduce((P,M)=>P+(M||0),0)+Object.values(x??{}).reduce((P,M)=>P+(M||0),0),D=(k?.manga_library??0)+(k?.manga_progress??0),w=(R?.tv_library??0)+(R?.tv_progress??0),C=(x?.asmr_library??0)+(x?.asmr_progress??0);n(`Library cleared — ${y.watchlist??0} watchlist entries, ${D} manga rows, ${w} TV rows, ${C} ASMR rows and ${L} total rows removed.`),t.invalidateQueries({queryKey:["watchlist"]}),t.invalidateQueries({queryKey:["allContinueWatching"]}),t.invalidateQueries({queryKey:["manga-library"]}),t.invalidateQueries({queryKey:["manga-continue-reading"]}),t.invalidateQueries({queryKey:["tv-library"]}),t.invalidateQueries({queryKey:["tv-continue-watching"]}),t.invalidateQueries({queryKey:["asmr-library"]}),t.invalidateQueries({queryKey:["asmr-continue-listening"]}),i(!1)}catch(d){n(d.message)}finally{b(!1),o(!1)}}};return e("div",{className:`${Q.sectionCard} ${Q.dangerCard}`,children:[e("h3",{children:"Danger Zone"}),e("p",{children:"Permanently delete your library (watchlist, watched episodes, queue, cached show metadata, manga reading list and reading progress, TV watchlist and watch progress, ASMR listening list and listening progress) to start fresh. Your settings, sync state and the offline metadata cache are preserved."}),e(T,{variant:"danger",onClick:c,children:"Clear Library Data"}),h&&e("p",{className:Q.status,children:h}),e(E,{isOpen:r,onClose:g,title:"Clear library data?",width:"sm",children:[e(E.Body,{children:[e("p",{className:Q.warningText,children:"This permanently deletes everything in your library. It acts on the active database (dev or prod, per server config) and cannot be undone. Settings, sync state and the offline metadata cache are kept."}),e("label",{className:Q.ackLabel,children:[e("input",{type:"checkbox",checked:l,onChange:d=>o(d.target.checked),disabled:v}),e("span",{children:"I understand this permanently deletes my library"})]})]}),e(E.Actions,{children:[e(T,{variant:"secondary",onClick:g,disabled:v,children:"Cancel"}),e(T,{variant:"danger",onClick:p,disabled:!l||v,children:v?"Clearing...":"Yes, delete everything"})]})]})]})},Ht=()=>{const[t,r]=s(""),[i,l]=s([]),[o,v]=s(null),[b,h]=s(!0),[n,c]=s({show:!1,message:"",type:"info"}),g=async()=>{try{h(!0);const S=await(await fetch("/api/auth/settings/rclone")).json();r(S.remote||""),l(S.availableRemotes||[]),v(S.activeRemote||null)}catch(d){console.error("Failed to fetch Rclone settings",d)}finally{h(!1)}};A(()=>{g()},[]);const p=async()=>{try{if((await fetch("/api/auth/settings/rclone",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({remote:t})})).ok)c({show:!0,message:"Rclone configuration saved successfully. You must restart the server for these changes to take effect.",type:"success"}),g();else throw new Error("Failed to save")}catch{c({show:!0,message:"Failed to save Rclone configuration.",type:"error"})}};return b?e("div",{style:{color:"var(--text-secondary)",padding:"1.5rem"},children:"Loading..."}):e("div",{className:u.sectionCard,children:[e("h3",{className:u.title,children:"Rclone Cloud Sync"}),e("p",{className:u.signIn,children:"Configure which Rclone remote to use for database synchronization."}),o?e("div",{className:u.userInfo,children:e("p",{children:["Current Active Remote: ",e("strong",{children:o})]})}):e("p",{className:u.warning,style:{marginBottom:"1.5rem"},children:"Rclone sync is not currently active. Ensure rclone is installed and a remote is configured."}),e("div",{className:u.formGroup,children:[e("label",{className:u.label,children:"Remote Name"}),e("div",{className:u.inputWrapper,children:e("select",{className:u.select,value:t,onChange:d=>r(d.target.value),children:[e("option",{value:"",children:"(Disabled / None)"}),i.map(d=>e("option",{value:d,children:d},d)),t&&!i.includes(t)&&e("option",{value:t,children:[t," (Manual)"]})]})}),e("p",{className:u.warning,style:{marginTop:"12px"},children:[e("strong",{children:"Note:"})," You can choose which provider is active using the selector at the top of the page."]})]}),e("div",{className:u.actions,children:e(T,{onClick:p,children:"Save Rclone Settings"})}),e(E,{isOpen:n.show,onClose:()=>c(d=>({...d,show:!1})),width:"sm",children:[e(E.Body,{children:e("p",{children:n.message})}),e(E.Actions,{children:e(T,{onClick:()=>c(d=>({...d,show:!1})),children:"OK"})})]})]})},Wt=()=>{const[t,r]=s(null),[i,l]=s(!0),o=async()=>{try{const c=await(await fetch("/api/auth/settings/sync")).json();r(c)}catch(n){console.error("Failed to fetch sync settings",n)}finally{l(!1)}};A(()=>{o()},[]);const v=async n=>{const c=n.target.value;try{const g=await fetch("/api/auth/settings/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:c})});if(g.ok){const p=await g.json();r(d=>d?{...d,activeProvider:p.activeProvider}:null),await o(),te.success(`Sync provider updated to ${c==="default"?"Default Order":c}`)}else te.error("Failed to update sync provider")}catch{te.error("Error updating sync provider")}};if(i||!t)return null;const b=[{value:"default",label:"Default (Priority Based)"}];t.authenticatedProviders.github&&b.push({value:"github",label:"GitHub"}),t.authenticatedProviders.google&&b.push({value:"google",label:"Google Drive"}),t.authenticatedProviders.rclone&&b.push({value:"rclone",label:"Rclone"}),b.push({value:"none",label:"None (Local Only)"});const h=n=>n==="none"?"Local Only (No Sync)":n==="google"?"Google Drive":n==="github"?"GitHub":n==="rclone"?"Rclone":n;return e("div",{className:m.sectionCard,children:[e("h3",{children:"Active Sync Provider"}),e("p",{children:'Choose which provider to use for synchronization. "Default" uses the first available provider you are logged into.'}),e("div",{style:{marginBottom:"1.5rem",padding:"0.75rem",background:"rgba(255, 255, 255, 0.03)",borderRadius:"var(--radius-md)",borderLeft:"4px solid var(--accent)",fontSize:"var(--font-size-sm)"},children:["Current Status:"," ",e("strong",{style:{color:"var(--accent-light)",textTransform:"capitalize"},children:h(t.actualActiveProvider)})]}),e("div",{className:m.settingRow,children:[e("label",{htmlFor:"sync-provider-select",children:"Selected Preference"}),e("select",{id:"sync-provider-select",value:t.activeProvider,onChange:v,style:{padding:"0.5rem",borderRadius:"var(--radius-md)",background:"rgba(255, 255, 255, 0.05)",color:"var(--text-primary)",border:"1px solid var(--glass-border)",fontSize:"var(--font-size-sm)",minWidth:"220px",outline:"none",cursor:"pointer"},children:b.map(n=>e("option",{value:n.value,children:n.label},n.value))})]})]})};function Bt(){return"javascript:"+encodeURIComponent(`(function(){
2
- if(!/(^|\\.)discord\\.com$/.test(location.hostname)){alert('Dango: use this bookmarklet while on discord.com');return}
3
- var t=null;
4
- try{
5
- window.webpackChunkdiscord_app.push([[Symbol()],{},function(req){
6
- if(!req.c)return;
7
- var ms=Object.values(req.c);
8
- for(var i=0;i<ms.length;i++){var m=ms[i];
9
- try{
10
- if(!m.exports||m.exports===window)continue;
11
- if(typeof m.exports.getToken==='function'){var x=m.exports.getToken();if(x){t=x;return}}
12
- for(var k in m.exports){try{var ex=m.exports[k];if(ex&&typeof ex.getToken==='function'&&ex[Symbol.toStringTag]!=='IntlMessagesProxy'){var y=ex.getToken();if(y){t=y;return}}}catch(e1){}}
13
- }catch(e2){}}
14
- }]);
15
- window.webpackChunkdiscord_app.pop();
16
- }catch(e3){}
17
- if(!t){alert('Dango: could not grab your token. Make sure you are logged in to Discord in this tab, then run the bookmarklet again.');return}
18
- function copyFallback(){var a=document.createElement('textarea');a.value=t;a.style.position='fixed';a.style.opacity='0';document.body.appendChild(a);a.select();try{document.execCommand('copy')}catch(e4){}document.body.removeChild(a)}
19
- var done=function(){window.close();setTimeout(function(){if(!window.closed){alert('Dango: token copied to clipboard! Could not close this tab, so just close it, go back to Dango Settings, paste the token and press Save.')}},250)};
20
- if(navigator.clipboard&&navigator.clipboard.writeText){navigator.clipboard.writeText(t).then(done,function(){copyFallback();done()})}else{copyFallback();done()}
21
- })()`)}const Vt=()=>{const t=Ce(Bt,[]);return e("div",{style:{marginTop:"0.9rem",paddingTop:"0.9rem",borderTop:"1px dashed var(--border-color)"},children:[e("h4",{style:{margin:"0 0 0.35rem",fontSize:"0.95rem"},children:"Grab the token automatically (bookmarklet)"}),e("p",{style:{margin:"0 0 0.6rem",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Set this up once and you never have to dig through DevTools: the bookmarklet copies your Discord token to the clipboard and closes the Discord tab — then you just paste it above and press Save."}),e("ol",{style:{margin:"0 0 0.75rem",paddingLeft:"1.25rem",fontSize:"0.85rem",color:"var(--text-secondary)",display:"grid",gap:"0.3rem"},children:[e("li",{children:["Drag the ",e("strong",{style:{color:"var(--text-primary)"},children:"Dango Token Grabber"})," ","button below onto your bookmarks bar (press ",e("kbd",{children:"Ctrl"}),"+",e("kbd",{children:"Shift"}),"+",e("kbd",{children:"B"})," ","first if the bar is hidden)."]}),e("li",{children:["Click ",e("strong",{style:{color:"var(--text-primary)"},children:"Open Discord"})," and log in (skip this if you are already logged in)."]}),e("li",{children:["On the Discord tab, click the"," ",e("strong",{style:{color:"var(--text-primary)"},children:"Dango Token Grabber"})," bookmark. The token lands in your clipboard and the tab closes on its own — come back here, paste it above and press ",e("strong",{children:"Save"}),"."]})]}),e("div",{style:{display:"flex",gap:"0.5rem",alignItems:"center",flexWrap:"wrap"},children:[e("a",{href:t,onClick:l=>{l.preventDefault(),alert("Drag this button onto your bookmarks bar instead of clicking it, then click it while you are on discord.com.")},title:"Drag me to your bookmarks bar",draggable:!0,style:{display:"inline-flex",alignItems:"center",padding:"0.4rem 0.8rem",borderRadius:"999px",border:"1px dashed var(--accent)",background:"var(--bg-secondary)",color:"var(--text-primary)",fontSize:"0.85rem",textDecoration:"none",cursor:"grab",userSelect:"none"},children:[e(Y,{name:"bookmark",style:{marginRight:"0.45rem",color:"var(--accent)"}}),"Dango Token Grabber"]}),e("a",{className:"btn btn-secondary btn-sm",href:"https://discord.com/channels/@me",target:"_blank",rel:"noopener noreferrer",children:"Open Discord"}),e(T,{variant:"ghost",size:"sm",onClick:async()=>{try{await navigator.clipboard.writeText(t),alert('Bookmarklet code copied. Create a new bookmark on your bookmarks bar, name it "Dango Token" and paste the code as its URL.')}catch{alert(`Could not copy automatically. Right-click the "Dango Token Grabber" button and choose "Copy link address" instead, then paste that into a new bookmark's URL.`)}},children:"Copy code"})]}),e("p",{style:{margin:"0.5rem 0 0",fontSize:"0.75rem",color:"var(--text-tertiary)"},children:`"Copy code" is a fallback for browsers that won't drag bookmarklets: create any bookmark, then paste the copied code as its URL.`})]})},Qt="_sectionCard_1ag4p_1",Yt="_settingItem_1ag4p_25",Jt="_field_1ag4p_30",Xt="_input_1ag4p_43",Zt="_actions_1ag4p_63",ea="_status_1ag4p_69",F={sectionCard:Qt,settingItem:Yt,field:Jt,input:Xt,actions:Zt,status:ea},ta=()=>{const[t,r]=s(!1),[i,l]=s(""),[o,v]=s(""),[b,h]=s(!0),[n,c]=s(!1),[g,p]=s("");A(()=>{(async()=>{try{const x=await(await fetch("/api/auth/app-status")).json();r(x.hasPassword)}catch{console.error("Failed to fetch LAN auth status")}finally{h(!1)}})()},[]);const d=async()=>{if(p(""),i!==o){p("Passwords do not match");return}if(i.length<4){p("Password must be at least 4 characters");return}c(!0);try{const k=await fetch("/api/auth/app-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:i})}),R=await k.json();if(!k.ok){p(R.error||"Failed to update password");return}r(R.hasPassword),l(""),v(""),p(R.hasPassword?"Password set successfully":"Password removed")}catch{p("Network error")}finally{c(!1)}},S=async()=>{c(!0);try{const k=await fetch("/api/auth/app-setup",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:""})}),R=await k.json();if(!k.ok){p(R.error||"Failed to remove password");return}r(!1),l(""),v(""),p("Password removed")}catch{p("Network error")}finally{c(!1)}},y=async()=>{c(!0);try{await fetch("/api/auth/app-logout",{method:"POST"}),p("Logged out"),window.location.reload()}catch{p("Logout failed")}finally{c(!1)}};return b?e("div",{className:F.sectionCard,children:e("p",{children:"Loading..."})}):e("div",{className:F.sectionCard,children:[e("h3",{children:"LAN Lock"}),e("p",{children:"Require a password to access this instance from any device, including this one. Sessions persist across server restarts until logout or password change."}),e("div",{className:F.settingItem,children:[e("div",{className:F.field,children:[e("label",{htmlFor:"lan-password",children:"New Password"}),e("input",{id:"lan-password",type:"password",value:i,onChange:k=>l(k.target.value),placeholder:t?"Leave empty to keep current password":"Enter a password...",className:F.input})]}),e("div",{className:F.field,children:[e("label",{htmlFor:"lan-confirm-password",children:"Confirm Password"}),e("input",{id:"lan-confirm-password",type:"password",value:o,onChange:k=>v(k.target.value),placeholder:"Confirm password...",className:F.input})]}),e("div",{className:F.actions,children:[e(T,{variant:"primary",onClick:d,loading:n,disabled:n,children:t?"Update Password":"Set Password"}),t&&e(T,{variant:"danger",onClick:y,loading:n,disabled:n,children:"Logout"}),t&&e(T,{variant:"secondary",onClick:S,loading:n,disabled:n,children:"Remove Password"})]}),g&&e("p",{className:F.status,children:g})]})]})},aa=()=>{const{theme:t,setTheme:r,loading:i}=Ie();return e("div",{children:[e("h4",{style:{margin:"0 0 0.25rem",fontSize:"1rem"},children:"Palette"}),e("p",{style:{margin:"0 0 0.75rem",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Taro is the default. Pick a palette that suits you."}),e("div",{role:"radiogroup","aria-label":"Palette",style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(150px, 1fr))",gap:"0.6rem"},children:Re.map(l=>{const o=t===l.id;return e("button",{role:"radio","aria-checked":o,disabled:i,onClick:()=>r(l.id),style:{display:"flex",gap:"0.6rem",alignItems:"center",textAlign:"left",padding:"0.65rem 0.75rem",borderRadius:"10px",cursor:"pointer",background:o?"var(--accent-subtle)":"var(--bg-tertiary)",border:o?"1px solid var(--accent)":"1px solid var(--border-primary)",color:"var(--text-primary)"},children:[e("span",{"aria-hidden":!0,style:{width:26,height:26,borderRadius:"50%",flex:"none",background:l.swatch,border:"1px solid rgba(0,0,0,0.35)"}}),e("span",{style:{minWidth:0},children:[e("span",{style:{display:"block",fontSize:"0.85rem",fontWeight:700},children:l.label}),e("span",{style:{display:"block",fontSize:"0.75rem",color:"var(--text-secondary)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:l.blurb})]})]},l.id)})})]})};function na({variant:t="info",children:r,className:i=""}){return e("div",{className:`alert alert-${t} ${i}`,children:r})}const sa={anime:"Watchlist",manga:"Reading List",tv:"TV Watchlist",asmr:"Listening List"},da=()=>{const[t,r]=_e(),{contentType:i}=he(),l=t.get("tab"),[o,v]=s(l&&["general","sync","watchlist","database"].includes(l)?l:"general"),[b,h]=s(""),n=H(null),c=H(null),g=H(new Map),[p,d]=s({top:0,height:0,left:0,width:0}),{lowEndMode:S,setLowEndMode:y}=xe(),{hasConsent:k,revoke:R}=Le(),[x,L]=s(De),[D,w]=s(!0),{data:C}=ae("discordRPCEnabled"),P=Pe(),[M,N]=s(!0),{data:O}=ae("dangoGaze"),[U,K]=s(!0),{data:f}=ae("discordRPCHideMature"),[J,X]=s(""),[W,ee]=s(null);A(()=>{_.discord.gatewayStatus.query().then(a=>{ee(a),a.masked&&a.masked!=="none"&&X(a.masked)}).catch(()=>{})},[]),A(()=>{C!==void 0&&w(C==="true"||C===!0||C===null)},[C]),A(()=>{f!==void 0&&K(f==="true"||f===!0||f===null)},[f]);const ge=a=>{w(a),P.mutate({key:"discordRPCEnabled",value:String(a)})};A(()=>{O!==void 0&&N(O!=="false"&&O!==!1)},[O]);const me=a=>{N(a),P.mutate({key:"dangoGaze",value:String(a)})},pe=a=>{K(a),P.mutate({key:"discordRPCHideMature",value:String(a)})},ye=a=>{L(a),localStorage.setItem(Ae,String(a)),window.dispatchEvent(new CustomEvent(Oe))};ce.useEffect(()=>{document.title="Settings - dango"},[]),ce.useEffect(()=>{const a=t.get("tab");a&&["general","sync","watchlist","database"].includes(a)&&v(a)},[t]);const Z=a=>{v(a),r(a==="general"?{}:{tab:a})},B=ie(()=>{const a=g.current.get(o),G=c.current;if(a&&G){const j=G.getBoundingClientRect(),$=a.getBoundingClientRect(),V=window.matchMedia("(max-width: 900px)").matches;d(V?{top:$.top-j.top,height:$.height,left:$.left-j.left,width:$.width}:{top:$.top-j.top,height:$.height,left:0,width:0})}},[o]);Se(()=>{B()},[o,B]),A(()=>{const a=()=>B();window.addEventListener("resize",a);let G=!1;return document.fonts?.ready&&document.fonts.ready.then(()=>{G||B()}),()=>{G=!0,window.removeEventListener("resize",a)}},[o,B]);const fe=()=>{h("Exporting databases...");const a=window.DangoBridge;if(a?.downloadFile){a.downloadFile("/api/backup-db","dango-backup.json"),setTimeout(()=>{h("Databases exported successfully!")},1500);return}const G=document.createElement("a");G.href="/api/backup-db",G.download="dango-backup.json",document.body.appendChild(G),G.click(),G.remove(),setTimeout(()=>{h("Databases exported successfully!")},1500)},ve=async a=>{const G=a.target.files?.[0];if(!G)return;h("Importing databases...");const j=new FormData;j.append("dbfile",G);try{const $=await fetch("/api/restore-db",{method:"POST",body:j}),V=await $.json();if($.ok){const le=Array.isArray(V.restored)?V.restored.join(", "):null;h(le?`Databases imported successfully (${le})!`:"Database imported successfully!"),setTimeout(()=>window.location.reload(),2e3)}else h(`Import failed: ${V.error}`)}catch{h("Import failed: An unexpected error occurred.")}finally{a.target.value=""}},we=()=>{n.current?.click()},be=()=>{switch(o){case"general":return e("div",{className:m.tabContent,children:e("div",{className:m.sectionCard,children:[e("h3",{children:"Appearance & Preferences"}),e("p",{children:"Configure how titles are displayed and other general preferences."}),e("div",{className:m.settingItem,children:e(Ge,{})}),e("div",{className:m.settingItem,style:{marginTop:"1.5rem"},children:e(aa,{})}),e("div",{className:m.settingItem,style:{marginTop:"1.5rem"},children:e("div",{className:m.settingRow,children:[e("div",{style:{minWidth:0},children:[e("h4",{style:{margin:0,fontSize:"1rem"},children:"Low End Mode"}),e("p",{style:{margin:"0.25rem 0 0",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Disables animations and heavy visual effects for better performance on older hardware."})]}),e(q,{isChecked:S,onChange:a=>y(a.target.checked),id:"low-end-mode"})]})}),e("div",{className:m.settingItem,style:{marginTop:"1.5rem"},children:e("div",{className:m.settingRow,children:[e("div",{style:{minWidth:0},children:[e("h4",{style:{margin:0,fontSize:"1rem"},children:"Dango Animations"}),e("p",{style:{margin:"0.25rem 0 0",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Lets the dango logo look around, blink and react when you pet it. Always off in Low End Mode."})]}),e(q,{isChecked:M,onChange:a=>me(a.target.checked),id:"dango-gaze"})]})}),e("div",{className:m.settingItem,style:{marginTop:"1.5rem"},children:e("div",{className:m.settingRow,children:[e("div",{style:{minWidth:0},children:[e("h4",{style:{margin:0,fontSize:"1rem"},children:"Virtual Keyboard"}),e("p",{style:{margin:"0.25rem 0 0",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Shows an on-screen keyboard when text search fields are focused."})]}),e(q,{isChecked:x,onChange:a=>ye(a.target.checked),id:"virtual-keyboard-enabled"})]})}),e("div",{className:m.settingItem,style:{marginTop:"1.5rem"},children:e("div",{className:m.settingRow,children:[e("div",{style:{minWidth:0},children:[e("h4",{style:{margin:0,fontSize:"1rem"},children:"Discord Rich Presence"}),e("p",{style:{margin:"0.25rem 0 0",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Show your current anime and watch progress on your Discord profile status."})]}),e(q,{isChecked:D,onChange:a=>ge(a.target.checked),id:"discord-rpc-enabled"})]})}),e("div",{style:{marginTop:"2rem"},children:e(ta,{})}),D&&e("div",{className:m.settingItem,style:{marginTop:"1rem"},children:e("div",{className:m.settingRow,children:[e("div",{style:{minWidth:0},children:[e("h4",{style:{margin:0,fontSize:"1rem"},children:"Hide Mature Content"}),e("p",{style:{margin:"0.25rem 0 0",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Hide mature content (18+) from Discord Rich Presence."})]}),e(q,{isChecked:U,onChange:a=>pe(a.target.checked),id:"discord-hide-mature"})]})}),e("div",{className:m.settingItem,style:{marginTop:"1.5rem",background:"var(--bg-tertiary)",padding:"1rem",borderRadius:"8px",border:"1px solid var(--border-color)"},children:[e("div",{className:m.settingRow,children:e("div",{style:{minWidth:0},children:[e("h4",{style:{margin:0,fontSize:"1rem"},children:"Discord Mobile Presence (Gateway)"}),e("p",{style:{margin:"0.25rem 0 0.75rem",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"Paste your Discord authentication token to enable presence on mobile devices. If no token is saved, the default desktop Rich Presence is used. The token is stored locally in your configuration and never shared."})]})}),e(na,{variant:"warning",style:{marginTop:"1.25rem",paddingTop:"1.25rem"},children:[e("strong",{children:"Use at your own risk."})," This feature uses the Discord Gateway API with your user token, which violates Discord's Terms of Service. Discord may detect this usage and take action against your account, including phone number locks, temporary suspensions, or permanent bans. While the risk is generally low, it is not zero. Only use this if you understand and accept the risks."]}),e("div",{style:{marginTop:"0.75rem",display:"flex",gap:"0.5rem",alignItems:"center",flexWrap:"wrap"},children:[e("input",{type:"password",value:J,onChange:a=>X(a.target.value),placeholder:"Paste Discord token here...",style:{flex:"1 1 200px",padding:"0.5rem",borderRadius:"4px",border:"1px solid var(--border-color)",background:"var(--bg-primary)",color:"var(--text-primary)",fontFamily:"monospace",minWidth:0}}),e(T,{variant:"primary",size:"sm",onClick:async()=>{try{const a=await _.discord.gatewaySave.mutate({token:J});ee({hasToken:!0,masked:a.masked,enabled:!0}),X(a.masked)}catch(a){alert(a instanceof Error?a.message:"Failed to save token")}},children:"Save"}),e(T,{variant:"secondary",size:"sm",onClick:async()=>{await _.discord.gatewayRemove.mutate().catch(()=>{}),X(""),ee({hasToken:!1,masked:null,enabled:!1})},children:"Remove"})]}),W&&e("p",{style:{marginTop:"0.5rem",fontSize:"0.8rem",color:W.hasToken?"green":"var(--text-secondary)"},children:["Status:"," ",W.hasToken?`Token saved (${W.masked})`:"No token saved",W.enabled?" - Gateway active":""]}),e(Vt,{})]}),k&&e("div",{className:m.settingItem,style:{marginTop:"1.5rem"},children:e("div",{className:m.settingRow,children:[e("div",{style:{minWidth:0},children:[e("h4",{style:{margin:0,fontSize:"1rem"},children:"Mature Content"}),e("p",{style:{margin:"0.25rem 0 0",fontSize:"0.85rem",color:"var(--text-secondary)"},children:"You have previously agreed to view 18+ content. Toggle this off to re-enable the blur gate and filtering."})]}),e(q,{isChecked:!0,onChange:a=>{a.target.checked||(R(),window.location.reload())},id:"mature-content-enabled"})]})})]})});case"sync":return e("div",{className:m.tabContent,children:[e(Wt,{}),e(ct,{}),e(dt,{}),e(Ht,{})]});case"watchlist":return e("div",{className:m.tabContent,children:e(kt,{})});case"database":return e("div",{className:m.tabContent,children:[e("div",{className:m.sectionCard,children:[e("h3",{children:"Database Management"}),e("p",{children:"Download a backup of all databases (anime, manga, TV and ASMR) or restore from a backup file. Legacy single-file anime (.db) backups can still be restored."}),e("div",{className:m.controls,children:[e(T,{onClick:fe,children:"Backup Database"}),e(T,{variant:"secondary",onClick:we,children:"Restore Database"})]}),e("input",{type:"file",ref:n,onChange:ve,style:{position:"absolute",width:1,height:1,opacity:0,overflow:"hidden"},accept:".json,.db,application/octet-stream"}),b&&e("p",{className:m.status,children:b})]}),e(zt,{}),e(jt,{})]});default:return null}};return e("div",{className:"page-container",children:[e("div",{className:m.settingsHeader,children:[e("h1",{className:m.pageTitle,children:"Settings"}),e("p",{className:m.pageSubtitle,children:"Manage your preferences and data synchronization"})]}),e("div",{className:m.settingsLayout,children:[e("aside",{className:m.sidebar,ref:c,children:[e("div",{className:m.sidebarIndicator,style:{top:p.top,height:p.height,left:p.left,...p.width?{width:p.width}:{}}}),e("button",{ref:a=>{a&&g.current.set("general",a)},className:`${m.sidebarItem} ${o==="general"?m.active:""}`,onClick:()=>Z("general"),children:[e(Y,{name:"cog"})," ",e("span",{children:"General"})]}),e("button",{ref:a=>{a&&g.current.set("sync",a)},className:`${m.sidebarItem} ${o==="sync"?m.active:""}`,onClick:()=>Z("sync"),children:[e(Y,{name:"cloud"})," ",e("span",{children:"Synchronization"})]}),e("button",{ref:a=>{a&&g.current.set("watchlist",a)},className:`${m.sidebarItem} ${o==="watchlist"?m.active:""}`,onClick:()=>Z("watchlist"),children:[e(Y,{name:"list"})," ",e("span",{children:sa[i]})]}),e("button",{ref:a=>{a&&g.current.set("database",a)},className:`${m.sidebarItem} ${o==="database"?m.active:""}`,onClick:()=>Z("database"),children:[e(Y,{name:"database"})," ",e("span",{children:"Database"})]})]}),e("main",{className:m.mainContent,children:e("div",{className:m.tabContent,children:be()},o)})]})]})};export{da as default};