.card-actions{display:flex;align-items:center;justify-content:space-between;gap:5px}
.watch-button{font-size:12px;padding:4px 7px;white-space:nowrap}
.player-dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;width:min(1120px,calc(100vw - 24px));max-height:94vh;max-height:94dvh;overflow:auto}
.player-dialog::backdrop{background:#090f1cbb}
.player-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.player-heading h2{font-size:18px;overflow-wrap:anywhere;min-width:0}
.player-heading button{flex:none}
.player-layout{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:14px;align-items:start}
.player-screen{min-width:0}
#onlineVideo{display:block;width:100%;height:57vh;height:57dvh;min-height:180px;max-height:640px;object-fit:contain;background:#000;border-radius:8px}
.player-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:9px 0}
.player-toolbar button,.player-toolbar select{font-size:12px;padding:5px 7px}
.player-toolbar label{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:12px;color:var(--muted)}
.player-toolbar [hidden]{display:none}
#playbackError{font-size:12px;max-height:110px;overflow:auto;margin-top:6px}
#playbackError:empty{display:none}
.player-hint{margin:6px 0 0}
.player-episodes{display:flex;flex-direction:column;gap:8px;min-height:0;max-height:calc(57vh + 75px);max-height:calc(57dvh + 75px)}
#playbackEpisodeCount{flex:none}
.player-episode-list{display:grid;flex:1 1 auto;min-height:0;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(36px,max-content);gap:6px;overflow:auto;overscroll-behavior:contain;align-content:start;padding:2px;scrollbar-gutter:stable}
.player-episode-list button{min-height:36px;font-size:12px;line-height:20px;padding:7px 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-episode-list button[aria-current=true]{background:var(--brand);border-color:var(--brand);color:#fff}
.player-episode-list .empty{font-size:12px}
@media(max-width:700px){
  .player-dialog{padding:10px;width:calc(100vw - 12px);max-height:96dvh}
  .player-heading{margin-bottom:8px}
  .player-heading h2{font-size:16px}
  .player-layout{grid-template-columns:minmax(0,1fr);gap:10px}
  #onlineVideo{height:43vh;height:43dvh;min-height:140px}
  .player-episodes{max-height:22vh;max-height:22dvh}
  .player-episode-list{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}
  .player-toolbar{gap:5px}
}

.playback-stage{position:relative;min-width:0;background:#000;border-radius:8px;overflow:hidden}
.playback-danmaku{position:absolute;inset:10px 0 60px;overflow:hidden;pointer-events:none;contain:layout style paint;z-index:1}
.danmaku-item{position:absolute;top:0;left:0;white-space:nowrap;font-family:sans-serif;font-weight:600;line-height:1.5;color:#fff;text-shadow:1px 1px 2px #000,-1px -1px 2px #000,1px -1px 2px #000,-1px 1px 2px #000;opacity:.85;will-change:transform}
#danmakuStatus{font-size:11px;color:var(--muted)}
.stage-fullscreen-exit{display:none;position:absolute;right:12px;top:12px;z-index:2;background:#202735cc;color:white;border-color:#ffffff55}
.playback-stage:is(:fullscreen,:-webkit-full-screen){width:100%;height:100%;border-radius:0}
.playback-stage:is(:fullscreen,:-webkit-full-screen) #onlineVideo{width:100%;height:100%;max-height:none;border-radius:0}
.playback-stage:is(:fullscreen,:-webkit-full-screen) .stage-fullscreen-exit{display:block}
