:root{color-scheme:dark;--bg:#02070b;--surface:#0a151de6;--surface-strong:#0a1218f2;--text:#f1f5f7;--secondary:#b3c1c9;--muted:#718590;--cyan:#21d9ff;--focus:#78e8ff;--border:#7f949e66;font-family:Roboto,"Segoe UI","Microsoft YaHei",Arial,sans-serif;font-size:14px;color:var(--text);background:var(--bg)}
*{box-sizing:border-box}body{margin:0;min-width:260px}button,input,select{font:inherit}button{color:var(--text);cursor:pointer;border:1px solid var(--border);border-radius:10px;background:#080e13c7;min-height:40px;padding:8px 15px;transition:border-color .16s,background .16s,transform .16s}button:hover{background:#18303ecf;border-color:#78e8ff99}button:active{transform:scale(.98)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--focus);outline-offset:3px;box-shadow:0 0 14px #21d9ff30}button:disabled{opacity:.45;cursor:default}button[aria-pressed="true"],button.selected{background:#0c3144c2;border-color:var(--focus)}input,select{color:var(--text);border:1px solid var(--border);border-radius:8px;background:#09131c;min-height:40px;padding:8px 12px}input[type="range"]{padding:0;min-height:26px;accent-color:var(--cyan);border:0;background:transparent}input[type="checkbox"]{accent-color:var(--cyan);width:18px;min-height:18px}h1,h2,h3,p{margin:0}h1{font-size:30px;font-weight:600;line-height:1.25}h2{font-size:20px;font-weight:600}p{line-height:1.7;color:var(--secondary)}img{display:block;max-width:100%}.preview-note{padding:9px 24px;background:#0a1218;color:#b3c1c9;font-size:11px;border-bottom:1px solid #7f949e33;line-height:1.55}.app{min-height:650px;background:linear-gradient(90deg,#010508e8,#020a0f6b,#02070bc8),linear-gradient(0deg,#02070b 4%,transparent 100%),url("player-assets/bg_home.webp") center top/cover no-repeat}.app.library-view,.app.history-view,.app.settings-view,.app.detail-view{background:linear-gradient(90deg,#020609ec,#061017a6),linear-gradient(0deg,#02070b,transparent),url("player-assets/bg_local.webp") center top/cover no-repeat}.app.cloud-view{background:linear-gradient(90deg,#020609dc,#061017a6),url("player-assets/bg_cloud.webp") center top/cover no-repeat}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:76px;padding:14px 26px}.brand{width:155px;min-height:42px;flex-shrink:0;background:transparent;border-color:transparent;padding:3px}.brand img{width:100%;height:auto}.top-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.top-actions button{display:flex;align-items:center;gap:7px;padding:8px 13px}.icon{width:18px;height:18px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.icon-play{fill:currentColor;stroke:none}.content-wrap{padding:14px 27px 34px}.home-hero{padding:26px 27px 24px;min-height:220px;max-width:700px}.home-hero h1{font-size:36px;letter-spacing:1px}.home-meta{margin-top:7px;font-size:14px}.home-progress{margin:18px 0;color:var(--secondary);font-size:13px}.progress-track{height:4px;border-radius:4px;background:#5c6d7566;max-width:260px;margin-top:7px;overflow:hidden}.progress-track span{display:block;height:100%;background:var(--cyan)}.primary{border:2px solid var(--focus);box-shadow:0 0 11px #21d9ff36;padding:10px 24px;display:inline-flex;gap:10px;align-items:center;min-height:46px}.library-section{margin-top:8px;margin-bottom:26px}.section-heading,.page-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading .link{color:var(--cyan);background:transparent;border:0;padding:8px 0;min-height:36px}.poster-row{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 75px)/6);gap:15px;overflow-x:auto;padding:5px 4px 10px;margin:-5px -4px 0;scrollbar-width:thin;scrollbar-color:var(--cyan) transparent}.poster{position:relative;display:block;aspect-ratio:286/396;padding:0;border-radius:7px;overflow:hidden;text-align:left;min-width:0;background:#09141c;border-color:var(--border)}.poster:hover,.poster:focus-visible{outline:2px solid var(--focus);outline-offset:2px;box-shadow:0 0 15px #21d9ff77}.poster img{width:100%;height:100%;object-fit:cover}.poster::after{position:absolute;inset:55% 0 0;content:"";background:linear-gradient(transparent,#000f)}.poster-name{position:absolute;z-index:1;bottom:14px;left:9px;right:9px;text-align:center;font-size:15px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.poster-tag{position:absolute;z-index:1;right:6px;top:7px;font-size:10px;color:#e8faff;background:#0a1720d9;padding:4px 5px;border:1px solid #78e8ff80;border-radius:4px}.library-title{height:42px;width:auto;max-width:80%;object-fit:contain;object-position:left}.library-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.library-stats{display:flex;gap:10px;align-items:center;background:var(--surface);border-radius:7px;padding:13px 16px;color:var(--secondary);font-size:13px;margin-bottom:15px}.filter-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.filter-bar .count{margin-left:auto;color:var(--secondary);font-size:13px}.poster-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}.search-box{display:flex;gap:10px;align-items:center;margin:12px 0 22px}.search-box input{flex:1;min-width:0}.empty{grid-column:1/-1;padding:40px 18px;text-align:center;background:var(--surface-strong);border:1px solid var(--border);border-radius:12px}.empty p{margin:8px 0 16px}.detail-layout{display:grid;grid-template-columns:minmax(140px,200px) 1fr;gap:34px;padding:20px 36px 40px}.detail-poster{width:100%;aspect-ratio:380/560;object-fit:cover;border-radius:5px}.detail-info{padding-top:16px}.detail-meta{color:var(--focus);font-size:13px;margin-top:12px}.detail-description{margin:20px 0;font-size:14px;max-width:650px}.detail-actions{display:flex;gap:12px;flex-wrap:wrap;margin:22px 0}.detail-footnote{color:var(--muted);font-size:12px;overflow-wrap:anywhere}.episode-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.history-row{display:grid;grid-template-columns:56px 1fr auto;align-items:center;gap:15px;padding:13px;margin-top:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-strong)}.history-row img{width:56px;aspect-ratio:2/3;object-fit:cover;border-radius:4px}.history-row h3{font-size:16px;margin-bottom:4px}.history-row p{font-size:12px}.history-actions{display:flex;gap:8px}.settings-card{border:1px solid var(--border);border-radius:11px;background:var(--surface-strong);padding:20px;margin-bottom:16px}.settings-card h2{margin-bottom:10px}.settings-card p{font-size:13px;margin-bottom:15px}.settings-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;border-bottom:1px solid #7f949e22}.settings-row:last-child{border:0}.settings-row label{display:flex;align-items:center;gap:9px}.settings-row select{max-width:50%}.source-row{display:flex;gap:12px;align-items:center;justify-content:space-between;border:1px solid var(--border);background:var(--surface);border-radius:9px;padding:16px;margin:12px 0}.source-row strong{display:block;margin-bottom:5px}.source-row small{color:var(--secondary)}.source-row button{flex-shrink:0}.fineprint{font-size:12px;color:var(--muted);line-height:1.6}.player-view{background:#02070b;min-height:650px}.player-view .topbar{display:none}.player-wrap{min-height:650px;position:relative;background:#000;display:flex;flex-direction:column}.player-header{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:16px 24px;background:linear-gradient(#000c,transparent)}.player-header h1{font-size:19px}.video-stage{position:relative;min-height:260px;flex:1;display:grid;place-items:center;overflow:hidden;background:#020508}.video-stage video{display:block;width:100%;max-height:440px;min-height:260px;object-fit:contain;background:#000}.video-empty{padding:40px 24px;text-align:center;max-width:560px}.video-empty .large-play{display:grid;place-items:center;margin:0 auto 20px;width:64px;height:64px;border:1px solid var(--border);border-radius:50%;color:var(--focus)}.video-empty h2{margin-bottom:10px}.video-empty p{font-size:13px;margin-bottom:19px}.player-controls{padding:18px 28px 24px;background:linear-gradient(transparent,#000e)}.player-seek{width:100%}.time-label{font-size:13px;font-variant-numeric:tabular-nums;color:var(--secondary)}.time-label output{color:var(--cyan)}.control-row{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:18px}.transport{display:flex;gap:14px;align-items:center;justify-content:center;flex:1}.transport button{width:48px;height:44px;background:transparent;border-color:transparent;padding:8px}.transport .play-toggle{border:2px solid var(--focus);width:54px;height:46px}.player-options{display:flex;gap:10px}.player-options button{font-size:12px}.selected-file{margin:12px 0 0;font-size:11px;color:var(--muted)}dialog{color:var(--text);background:#0a1218f7;border:1px solid var(--border);border-radius:14px;max-width:min(460px,calc(100% - 28px));width:440px;padding:22px;box-shadow:0 20px 70px #0009}dialog::backdrop{background:#000a}.option-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px}.option-heading button{font-size:22px;padding:0;width:36px;min-height:36px;border-color:transparent}.option-list{display:grid;gap:9px}.option-list button{text-align:left}.option-list p{font-size:13px;margin-bottom:12px}.option-list .selected::after{content:" ✓";color:var(--focus)}.status{position:fixed;bottom:16px;left:50%;transform:translateX(-50%);padding:11px 17px;border:1px solid var(--border);background:#122635f7;color:var(--text);border-radius:8px;font-size:12px;max-width:calc(100% - 32px);width:max-content;z-index:10;pointer-events:none;opacity:0;transition:opacity .2s}.status.visible{opacity:1}[hidden]{display:none!important}
@media(max-width:760px){.topbar{align-items:flex-start;padding:12px 18px;gap:12px}.brand{width:132px}.top-actions{gap:6px}.top-actions button{font-size:12px;padding:6px 9px;min-height:35px}.top-actions .icon{width:15px;height:15px}.home-hero{padding:25px 20px 22px}.home-hero h1{font-size:31px}.content-wrap{padding:10px 20px 30px}.poster-row{grid-auto-columns:calc((100% - 45px)/4)}.poster-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.poster-name{font-size:13px;bottom:11px}.detail-layout{gap:22px;padding:18px 24px 30px;grid-template-columns:150px 1fr}.detail-info{padding-top:4px}.detail-info h1{font-size:26px}.history-row{grid-template-columns:50px 1fr}.history-actions{grid-column:2}.player-options{gap:5px}.player-options button{padding:8px}.player-controls{padding:15px 18px 24px}.transport{gap:5px}}
@media(max-width:480px){.preview-note{padding:8px 15px;font-size:10px}.topbar{display:block;padding:12px 15px}.brand{width:128px;margin-left:-4px}.top-actions{justify-content:flex-start;margin-top:10px}.top-actions button{font-size:11px;min-height:36px;padding:6px 10px}.home-hero{padding:20px 16px;min-height:215px}.home-hero h1{font-size:30px}.content-wrap{padding:8px 16px 28px}.section-heading h2{font-size:18px}.section-heading .link{font-size:12px}.poster-row{grid-auto-columns:calc((100% - 24px)/3);gap:12px}.poster-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.poster-name{font-size:12px;bottom:10px}.poster-tag{font-size:9px;padding:2px 3px;right:4px;top:5px}.page-heading{gap:8px;align-items:flex-start}.page-heading h1{font-size:26px}.page-heading button{font-size:12px;padding:6px 12px}.library-title{height:32px;max-width:70%}.library-stats{font-size:11px;padding:12px}.filter-bar{gap:7px}.filter-bar button{min-height:36px;padding:7px 12px;font-size:12px}.filter-bar .count{font-size:12px}.detail-layout{padding:12px 17px 30px;gap:18px;grid-template-columns:100px 1fr}.detail-poster{aspect-ratio:2/3}.detail-info h1{font-size:24px}.detail-meta{font-size:11px}.detail-description{font-size:13px;margin:15px 0}.detail-info .detail-actions{margin-top:16px}.detail-actions button{font-size:12px;padding:8px 12px;min-height:40px}.detail-description,.detail-actions,.detail-footnote,.detail-info>.fineprint{grid-column:1/-1}.detail-info{display:contents}.detail-info h1,.detail-meta{grid-column:2}.detail-info h1{align-self:end}.detail-meta{margin:0;align-self:start}.detail-poster{grid-row:1/3}.detail-description{margin:0}.detail-actions{margin:0}.detail-info>.progress-track,.detail-info>.home-progress{grid-column:1/-1}.history-actions{flex-wrap:wrap}.history-actions button{font-size:11px;min-height:35px;padding:7px 9px}.history-row h3{font-size:14px}.search-box{flex-wrap:wrap}.search-box input{min-width:150px}.search-box button{font-size:11px}.settings-card{padding:15px}.settings-row{gap:9px;font-size:12px}.settings-row select{font-size:12px;max-width:55%}.player-wrap,.player-view{min-height:590px}.player-header{padding:15px;align-items:flex-start}.player-header h1{font-size:16px;line-height:1.5}.player-header button{min-height:35px;font-size:12px}.video-stage,.video-stage video{min-height:220px}.video-empty{padding:25px 18px}.video-empty h2{font-size:18px}.control-row{display:block;margin-top:12px}.player-options{justify-content:space-evenly;margin-top:14px}.player-options button{min-width:70px}.transport{gap:22px}.source-row{gap:9px;font-size:12px}.source-row button{font-size:12px;padding:8px}.fineprint{font-size:11px}}
@media(max-width:330px){.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.poster-row{grid-auto-columns:calc((100% - 12px)/2)}.top-actions{gap:5px}.top-actions button{padding:6px 8px}.top-actions .icon{display:none}.section-heading{gap:5px}.section-heading h2{font-size:17px}.section-heading .link{font-size:11px}.detail-layout{grid-template-columns:85px 1fr}.detail-info h1{font-size:21px}.filter-bar .count{width:100%;margin:0}.history-actions{grid-column:1/-1}}
@media(max-width:330px){body{min-width:0}.home-hero h1{font-size:25px;overflow-wrap:anywhere}.home-hero .primary{padding-inline:12px;font-size:12px;max-width:100%}.section-heading{flex-wrap:wrap}.detail-layout{grid-template-columns:minmax(60px,85px) minmax(0,1fr)}.detail-info h1,.player-header h1{overflow-wrap:anywhere}.player-options{flex-wrap:wrap}.player-options button{min-width:60px}.transport{gap:10px}.settings-row{flex-wrap:wrap}.source-row{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
