/* ShortDramaSeries: source button list, topbar current rate and bottom safe area. */
.remaining-rate-picker>summary{display:flex;align-items:center;gap:calc(var(--source-rem,39px)*.08);list-style:none}
.remaining-rate-picker>summary>svg{width:calc(var(--source-rem,39px)*.42667);height:calc(var(--source-rem,39px)*.42667)}
.remaining-rate-sheet #playback-rate{position:absolute!important;width:1px!important;height:1px!important;max-height:none;overflow:hidden;clip-path:inset(50%);padding:0;border:0}
.remaining-rate-sheet:before{margin-bottom:calc(var(--source-rem,39px)*.21333)}
.remaining-rate-choices{display:flex;flex-direction:column}
.remaining-rate-choice{display:flex;align-items:center;justify-content:space-between;flex:none;width:100%;border:0;border-radius:0;background:transparent;color:#fff;font:inherit;font-size:calc(var(--source-rem,39px)*.42667);line-height:1.5;padding:calc(var(--source-rem,39px)*.42667) calc(var(--source-rem,39px)*.53333);text-align:left;cursor:pointer}
.remaining-rate-choice[aria-pressed=true]{color:var(--accent,#ffe033)}
.remaining-rate-choice>svg{width:18px;height:18px;visibility:hidden}
.remaining-rate-choice[aria-pressed=true]>svg{visibility:visible}
.remaining-play .remaining-player-stage{padding-bottom:calc(var(--source-rem,39px)*1.6 + env(safe-area-inset-bottom,0px))}
.remaining-play .remaining-episode-picker{top:calc(100dvh - var(--source-rem,39px)*1.33334 - env(safe-area-inset-bottom,0px))}
.remaining-play .remaining-episode-picker[open]>.remaining-episode-grid{padding-bottom:calc(24px + env(safe-area-inset-bottom,0px));overscroll-behavior:contain}
.remaining-play .remaining-player-caption{top:calc(100dvh - 196px - env(safe-area-inset-bottom,0px))}
.remaining-play .remaining-player-toolbar>div{top:calc(100dvh - 218px - env(safe-area-inset-bottom,0px))}
:root[data-layout=source] .main:has(.remaining-rate-picker[open],.remaining-episode-picker[open]){overflow:hidden!important}
/* ShortEpisodeSheet vertical chrome, useDetailPlayGamePrefetch JS/CSS. */
.remaining-episode-picker[open]>.remaining-episode-sheet{position:fixed;z-index:81;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,calc(var(--source-rem,39px)*10));height:68vh;max-height:100dvh;background:#1c1c1e;border-radius:calc(var(--source-rem,39px)*.37333) calc(var(--source-rem,39px)*.37333) 0 0;overflow:hidden;display:flex;flex-direction:column}
.remaining-episode-sheet:before{content:'';pointer-events:none;position:absolute;top:calc(var(--source-rem,39px)*.21333);left:50%;transform:translateX(-50%);width:calc(var(--source-rem,39px)*.96);height:calc(var(--source-rem,39px)*.10667);border-radius:99px;background:#ffffff38}
.remaining-episode-sheet-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:calc(var(--source-rem,39px)*.53333) calc(var(--source-rem,39px)*.37333) calc(var(--source-rem,39px)*1.92)}
.remaining-episode-sheet-header{display:flex;gap:calc(var(--source-rem,39px)*.26667);align-items:center}
.remaining-episode-cover,.remaining-episode-cover>img{display:block;width:calc(var(--source-rem,39px)*1.28);height:calc(var(--source-rem,39px)*1.70667);flex-shrink:0;border-radius:calc(var(--source-rem,39px)*.16);object-fit:cover}
.remaining-episode-sheet-header>div{min-width:0;flex:1}.remaining-episode-title{font-size:calc(var(--source-rem,39px)*.42667);font-weight:600;color:#fff;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.remaining-episode-sheet-header p{font-size:calc(var(--source-rem,39px)*.34667);color:#ffffff8c;margin:calc(var(--source-rem,39px)*.10667) 0 0}
.remaining-episode-tabs{display:flex;gap:calc(var(--source-rem,39px)*.53333);align-items:center;margin-top:calc(var(--source-rem,39px)*.42667)}
.remaining-episode-tabs>button{background:none;border:0;padding:0;color:#ffffff73;font:inherit;font-size:calc(var(--source-rem,39px)*.4)}.remaining-episode-tabs>button[aria-selected=true]{color:#fff;font-weight:600}
.remaining-episode-intro{color:#ffffffb8;white-space:pre-wrap;margin-top:calc(var(--source-rem,39px)*.37333);font-size:calc(var(--source-rem,39px)*.34667);line-height:1.625}
.remaining-episode-ranges{display:flex;gap:calc(var(--source-rem,39px)*.21333);overflow:auto;margin-top:calc(var(--source-rem,39px)*.32);padding-bottom:calc(var(--source-rem,39px)*.05333);scrollbar-width:none}
.remaining-episode-ranges>button{flex:none;border:0;background:transparent;padding:calc(var(--source-rem,39px)*.16);font:inherit;font-size:calc(var(--source-rem,39px)*.37333);line-height:1;color:#ffffff73}.remaining-episode-ranges>button[aria-selected=true]{color:#fff;font-weight:600}
.remaining-episode-sheet .remaining-episode-grid{position:static;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:calc(var(--source-rem,39px)*.26667);padding:0;margin-top:calc(var(--source-rem,39px)*.32);background:none;overflow:visible;max-height:none;width:auto;transform:none;box-shadow:none}
.remaining-episode-sheet .remaining-episode-grid>a{height:auto;aspect-ratio:1;border:0;border-radius:calc(var(--source-rem,39px)*.21333);background:#2c2c2e;color:#ffffffd9;font-size:calc(var(--source-rem,39px)*.48);font-weight:500;position:relative}
.remaining-episode-sheet .remaining-episode-grid>a.active{background:#ff8a0029;box-shadow:inset 0 0 0 calc(var(--source-rem,39px)*.02667) #ff8a0073;color:var(--accent,#ffe033)}
.remaining-episode-sheet .remaining-episode-grid>a[hidden],.remaining-episode-intro[hidden],.remaining-episode-content[hidden]{display:none}
.remaining-episode-eq{position:absolute;right:calc(var(--source-rem,39px)*.10667);top:calc(var(--source-rem,39px)*.10667);display:flex;align-items:end;gap:calc(var(--source-rem,39px)*.04);height:calc(var(--source-rem,39px)*.26667)}.remaining-episode-eq>i{display:block;width:calc(var(--source-rem,39px)*.05333);height:40%;border-radius:1px;background:var(--accent,#ffe033)}.remaining-episode-eq>i:nth-child(2){height:80%}.remaining-episode-eq>i:nth-child(3){height:50%}
.remaining-episode-fav{position:absolute;inset:auto 0 0;display:flex;justify-content:center;padding:calc(var(--source-rem,39px)*.21333) calc(var(--source-rem,39px)*.37333) max(calc(var(--source-rem,39px)*.32),env(safe-area-inset-bottom,0px));background:linear-gradient(180deg,transparent,#1c1c1e 28%,#1c1c1e)}
.remaining-episode-fav>button{display:inline-flex;gap:calc(var(--source-rem,39px)*.13333);align-items:center;justify-content:center;min-width:calc(var(--source-rem,39px)*4.48);max-width:72%;height:calc(var(--source-rem,39px)*1.06667);padding:0 calc(var(--source-rem,39px)*.96);border:0;border-radius:calc(var(--source-rem,39px)*.53333);background:var(--accent,#ffe033);color:#1a1a1a;font:inherit;font-size:calc(var(--source-rem,39px)*.37333);font-weight:600}
/* ShortDramaSeries topbar utilities use source rem, including on desktop. */
:root[data-layout=source] .remaining-play>.page-title{height:auto;min-height:0;display:flex;align-items:center;justify-content:flex-start;gap:calc(var(--source-rem)*.10667);padding:calc(var(--source-rem)*.26667) calc(var(--source-rem)*.32) calc(var(--source-rem)*.21333)}
:root[data-layout=source] .remaining-play>.page-title>.source-back{flex:none;width:20px;height:calc(var(--source-rem)*.6);min-height:0;padding:0;margin:0;display:grid;place-items:center;font-size:26px;line-height:1}
:root[data-layout=source] .remaining-play>.page-title>div{min-width:0;flex:1;max-width:calc(100% - var(--source-rem)*2.13333)}
:root[data-layout=source] .remaining-play>.page-title h1{font-size:calc(var(--source-rem)*.4)!important;font-weight:500;line-height:1.5;max-width:none;margin:0}
:root[data-layout=source] .remaining-player-toolbar{top:calc(var(--source-rem)*.353335);right:calc(var(--source-rem)*.32)}
:root[data-layout=source] .remaining-rate-picker>summary{height:calc(var(--source-rem)*.42667);padding:0;font-size:calc(var(--source-rem)*.37333);font-weight:500;line-height:1}
/* Unlike the episode custom-overlay, Vant's regular rate overlay is shell-wide. */
:root[data-layout=source] .remaining-rate-picker[open]>summary:before{left:50%;right:auto;width:min(100%,var(--source-shell));transform:translateX(-50%)}
/* The source episode row reserves a square clean-screen action beside the pill. */
.remaining-play .remaining-episode-picker{right:calc(var(--source-rem,39px)*1.65334)}
.remaining-episode-picker>summary>svg{width:14px;height:14px;flex:none}
.remaining-player-clean{position:absolute;z-index:23;top:calc(100dvh - var(--source-rem,39px)*1.33334 - env(safe-area-inset-bottom,0px));right:calc(var(--source-rem,39px)*.32);width:calc(var(--source-rem,39px)*1.06667);height:calc(var(--source-rem,39px)*1.06667);display:grid;place-items:center;flex:none;padding:0;border:0;border-radius:calc(var(--source-rem,39px)*.26667);background:#ffffff24;color:#fff;cursor:pointer}
.remaining-player-clean>svg{width:18px;height:18px}.remaining-player-clean[aria-pressed=true]{background:#ffffff47}
.remaining-play[data-player-clean=true] .remaining-player-caption,.remaining-play[data-player-clean=true] .remaining-play-actions{visibility:hidden}
