/* Immersive vertical player: shared by file preview and deployment. */
body.watch-open{overflow:hidden!important;overscroll-behavior:none}
dialog.watch-player{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:#000;color:#fff;overflow:hidden;outline:none}dialog.watch-player::backdrop{background:#000;backdrop-filter:none}.watch-stage{position:relative;isolation:isolate;width:100%;height:100%;margin:0 auto;background:#000;overflow:hidden;touch-action:manipulation}.watch-video{display:block;width:100%;height:100%;max-height:none;object-fit:contain;background:#000}.watch-top{position:absolute;z-index:3;inset:0 0 auto;display:flex;align-items:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 16px 32px;background:linear-gradient(#000a,transparent);pointer-events:none}.watch-top button{pointer-events:auto}.watch-icon{width:38px;height:38px;border:0;border-radius:50%;background:#0005;color:#fff;font:34px/1 sans-serif;cursor:pointer}.watch-heading{display:flex;flex-direction:column;gap:4px;min-width:0;text-shadow:0 1px 6px #000}.watch-heading strong{font-size:15px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.watch-heading span{font-size:12px;color:#ddd}.watch-bottom{position:absolute;z-index:3;inset:auto 0 0;padding:36px 16px calc(12px + env(safe-area-inset-bottom));background:linear-gradient(transparent,#000c 45%,#000e)}.watch-tools{display:flex;align-items:center;gap:12px}.watch-time{flex:1;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}.watch-control{border:0;background:transparent;color:#fff;font:inherit;font-size:13px;line-height:1.4;padding:10px 4px;cursor:pointer}.watch-control:disabled{opacity:.3;cursor:default}.watch-control:focus-visible,.watch-icon:focus-visible,.watch-episode:focus-visible{outline:2px solid #ff2f63;outline-offset:3px}.watch-seek{display:block;width:100%;height:18px;margin:4px 0;accent-color:#ff2f63;cursor:pointer}.watch-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.watch-choose{background:#ffffff20;border:1px solid #ffffff24;border-radius:20px;padding:8px 16px}.watch-top,.watch-bottom{transition:opacity .25s}.watch-stage:not(.watch-show-controls)>.watch-top,.watch-stage:not(.watch-show-controls)>.watch-bottom{opacity:0;pointer-events:none}.watch-stage:not(.watch-show-controls)>.watch-top button{pointer-events:none}.watch-center{position:absolute;z-index:2;inset:0;margin:auto;width:68px;height:68px;border:1px solid #ffffff50;border-radius:50%;background:#0006;color:#fff;font-size:30px;cursor:pointer}.watch-center[hidden]{display:none}.watch-status{position:absolute;inset:45% 15% auto;text-align:center;pointer-events:none;text-shadow:0 1px 6px #000;font-size:14px}.watch-status:empty{display:none}.watch-panel{position:absolute;z-index:5;inset:auto 0 0;max-height:72%;padding:16px 20px calc(24px + env(safe-area-inset-bottom));background:#161616fa;border-radius:20px 20px 0 0;overflow:auto;box-shadow:0 -20px 80px #0008}.watch-panel[hidden]{display:none}.watch-panel-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.watch-panel-top h2{font-size:18px;font-weight:600}.watch-episodes{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.watch-episode{border:1px solid #333;border-radius:8px;background:#282828;color:#fff;min-height:48px;font-size:16px;cursor:pointer}.watch-episode[aria-current=true]{background:#ff2f63;border-color:#ff2f63}.watch-note,.watch-description{color:#bbb;font-size:14px;line-height:1.7;margin:20px 0}.watch-source{display:inline-block;color:#ff4976;padding:8px 0}.watch-panel-body h3{font-size:17px}.watch-stage:fullscreen{max-width:none}.watch-stage:fullscreen .watch-video{object-fit:contain}@media(min-width:769px){.watch-stage{max-width:calc(100dvh * 9 / 16)}}@media(prefers-reduced-motion:reduce){.watch-top,.watch-bottom{transition:none}}
/* Reference layout: compact header, right rail, progress over bottom controls. */
.watch-top{gap:8px;padding:calc(8px + env(safe-area-inset-top)) 14px 18px;align-items:center}.watch-icon{width:28px;height:32px;background:transparent;flex-shrink:0}.watch-heading{flex:1}.watch-heading strong{font-size:15px;line-height:1.4}.watch-badge{flex-shrink:0;border-radius:6px;background:#ffffff2b;padding:4px 10px;font-size:14px;line-height:1.2}.watch-bottom{padding:0 0 env(safe-area-inset-bottom);background:#121212cc}.watch-tools{height:58px;padding:0 14px;gap:14px}.watch-control{display:inline-flex;align-items:center;justify-content:center;min-width:30px;min-height:40px;padding:6px 0}.watch-control svg,.watch-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.watch-control[aria-label=播放] svg,.watch-control[aria-label=下一集] svg{fill:currentColor;stroke-width:1.5}.watch-control[aria-label=暂停] svg{stroke-width:5}.watch-time{font-size:12px}.watch-seek{appearance:none;-webkit-appearance:none;position:relative;width:100%;height:14px;margin:-6px 0 -3px;background:transparent;display:block;z-index:1}.watch-seek::-webkit-slider-runnable-track{height:3px;background:linear-gradient(to right,#fff var(--progress,0%),#ffffff50 var(--progress,0%));border:0}.watch-seek::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:10px;height:10px;margin-top:-3.5px;border-radius:50%;background:#fff;opacity:0}.watch-seek:focus-visible::-webkit-slider-thumb,.watch-seek:hover::-webkit-slider-thumb{opacity:1}.watch-seek::-moz-range-track{height:3px;background:#ffffff50}.watch-seek::-moz-range-progress{height:3px;background:#fff}.watch-seek::-moz-range-thumb{width:8px;height:8px;border:0;background:#fff}.watch-rail{position:absolute;z-index:3;bottom:calc(104px + env(safe-area-inset-bottom));right:14px;display:flex;flex-direction:column;gap:22px;transition:opacity .25s}.watch-rail-button{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:44px;border:0;background:transparent;color:#fff;text-shadow:0 1px 5px #000;cursor:pointer;padding:0}.watch-rail-button svg{width:24px;height:24px;fill:#fff;stroke:#fff;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 4px #0005)}.watch-rail-button span{font-size:10px;font-weight:600}.watch-rail-button[aria-pressed=true]{color:#ff2f63}.watch-rail-button[aria-pressed=true] svg{fill:#ff2f63;stroke:#ff2f63}.watch-stage:not(.watch-show-controls)>.watch-rail{opacity:0;pointer-events:none}.watch-speeds{display:flex;gap:8px;margin-bottom:20px}.watch-speeds button{flex:1;font-size:14px}.watch-panel-body>.watch-control{display:flex;width:100%;justify-content:flex-start;border-top:1px solid #333;padding:10px 0}.watch-episodes .watch-episode:disabled{opacity:.3;cursor:default}.watch-center{width:60px;height:60px}.watch-panel{padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.watch-locked{position:relative}.watch-locked::after{content:"🔒";position:absolute;right:3px;bottom:2px;font-size:9px}

/* Only the video surface captures vertical gestures; panels retain native scrolling. */
.watch-video{touch-action:none;user-select:none;-webkit-user-select:none}.watch-panel{touch-action:pan-y;overscroll-behavior:contain}.watch-seek{touch-action:pan-x}.watch-swipe-notice{position:absolute;z-index:4;bottom:calc(92px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);max-width:85%;padding:8px 14px;border-radius:20px;background:#0009;color:#fff;font-size:13px;line-height:1.5;white-space:nowrap;text-align:center;pointer-events:none}.watch-swipe-notice:empty{display:none}
.watch-captions{position:absolute;z-index:2;left:7%;right:7%;bottom:calc(30px + env(safe-area-inset-bottom));max-width:86%;margin:auto;color:#fff;font-family:Arial,sans-serif;font-size:clamp(15px,3.8vw,20px);font-weight:600;line-height:1.35;text-align:center;white-space:pre-line;text-shadow:0 1px 2px #000,1px 0 2px #000,-1px 0 2px #000,0 -1px 2px #000,0 2px 6px #000;pointer-events:none;transition:bottom .2s}.watch-show-controls>.watch-captions{bottom:calc(105px + env(safe-area-inset-bottom))}.watch-captions[hidden]{display:none}.watch-cc{font:bold 12px/1 Arial,sans-serif;letter-spacing:-.5px;min-width:26px}.watch-cc[aria-pressed=true]{color:#ff729d;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.watch-cc:disabled{opacity:.3}@media(max-width:360px){.watch-tools{gap:10px;padding:0 12px}.watch-time{font-size:11px}}@media(prefers-reduced-motion:reduce){.watch-captions{transition:none}}

.watch-auth-gate{position:fixed;inset:0;margin:auto;width:min(88vw,360px);max-width:calc(100vw - 32px);max-height:80dvh;overflow:auto;padding:34px 24px 24px;border:1px solid #3b2a33;border-radius:18px;background:#161116;color:#fff;box-shadow:0 20px 80px #0009;text-align:center}.watch-auth-gate::backdrop{background:#000a;backdrop-filter:blur(5px)}.watch-auth-gate h2{margin:12px 0;font-size:22px;font-weight:700;line-height:1.45}.watch-auth-gate p{margin:0 0 22px;color:#bfb4bd;font-size:14px;line-height:1.7}.watch-auth-close{position:absolute;right:10px;top:8px;width:32px;height:32px;border:0;background:transparent;color:#ccc;font:26px/1 Arial,sans-serif;cursor:pointer}.watch-auth-actions{display:grid;gap:10px}.watch-auth-actions button{min-height:46px;padding:10px 16px;border-radius:9px;color:#fff;font-size:15px;font-weight:600;cursor:pointer}.watch-auth-register{border:1px solid #ff2f63;background:#ff2f63}.watch-auth-login{border:1px solid #66515e;background:#2a2028}.watch-auth-actions button:focus-visible,.watch-auth-close:focus-visible{outline:2px solid #ff8daf;outline-offset:3px}

.watch-embedded-caption-mask{position:absolute;z-index:1;left:var(--mask-left,0);top:var(--mask-top,0);width:var(--mask-width,0);height:var(--mask-height,0);background:#080808a8;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);pointer-events:none}.watch-embedded-caption-mask[hidden]{display:none}.watch-inline-fullscreen{position:fixed;inset:0;max-width:none;width:100vw;height:100dvh}
