:root{color-scheme:dark;--bg:#10121a;--panel:#191c28;--line:#2a2e40;--text:#eef0fa;--muted:#9b9fb6;--accent:#baacf8}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 45% 0,#24203c 0,transparent 55%),var(--bg);font:15px/1.6 system-ui,sans-serif;color:var(--text);min-height:100vh}header,footer{display:flex;justify-content:space-between;align-items:center;padding:24px 5vw;border-bottom:1px solid var(--line)}a{color:inherit;text-decoration:none}.brand{font-size:20px;font-weight:700;display:flex;gap:10px;align-items:center}.mark{background:var(--accent);color:#251f3c;border-radius:10px;padding:3px 10px}.muted,.intro,.fine,footer,.player-info{color:var(--muted)}.brand .muted{font-weight:400}.badge{font-size:12px;border:1px solid var(--line);padding:5px 12px;border-radius:20px}main{max-width:1440px;margin:auto;padding:40px 5vw}.home{max-width:760px;margin:20px auto 40px;text-align:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--accent)}h1{font-size:clamp(36px,5vw,64px);line-height:1.12;letter-spacing:-2px;margin:20px 0}h1 span{color:var(--accent)}.intro{font-size:17px;margin-bottom:30px}.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:25px}#create{text-align:left}label{display:block;margin-bottom:8px;font-size:13px}input,textarea{width:100%;background:#11141e;color:var(--text);border:1px solid #35394b;border-radius:8px;padding:12px;font:inherit;outline:none}input:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;min-height:90px}.inputs{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0}button{background:var(--accent);border:0;color:#211934;font:600 14px system-ui;border-radius:8px;padding:13px 18px;cursor:pointer}button:disabled{opacity:.5;cursor:wait}#create-button{width:100%;display:flex;justify-content:space-between;margin-top:22px}.secondary{background:transparent;border:1px solid #45405e;color:var(--text)}.features{display:flex;justify-content:space-between;gap:16px;font-size:13px;margin:26px 0}.fine{font-size:12px}.error{color:#ffa6aa;font-size:13px;white-space:pre-wrap}.error:empty{display:none}.room-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}h2{font-size:22px;max-width:800px;overflow-wrap:anywhere;margin:8px 0}.watch-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px}.screen{position:relative;aspect-ratio:16/9;background:#000;border:1px solid var(--line);border-radius:14px;overflow:hidden}video{width:100%;height:100%;display:block}.overlay{position:absolute;inset:0 0 50px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#10121ae6;pointer-events:none}.overlay[hidden]{display:none}.spinner{width:34px;height:34px;border:3px solid #3a3451;border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}#resume{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.player-info{display:flex;justify-content:space-between;font-size:12px;margin:14px 0}.chat{display:flex;flex-direction:column;height:440px;padding:18px}.chat-heading{display:flex;align-items:center;justify-content:space-between}h3{font-size:15px;margin:0 0 18px}.live-dot{width:7px;height:7px;border-radius:50%;background:#a2ddb3}#rename{display:flex;gap:5px}#rename input{min-width:0;padding:8px}#rename button{padding:6px;font-size:11px;white-space:nowrap}#messages{flex:1;overflow-y:auto;margin:16px 0;overflow-wrap:anywhere}.message{margin:0 0 14px}.message strong{font-size:12px;color:var(--accent)}.message p{margin:2px 0;font-size:14px;white-space:pre-wrap}.system{font-size:12px;color:var(--muted)}#chat-form{display:flex;gap:8px}#chat-input{min-width:0}#chat-form button{padding:10px 15px}footer{border:0;border-top:1px solid var(--line);font-size:12px;gap:20px}[hidden]{display:none!important}@media(max-width:960px){.watch-layout{grid-template-columns:1fr}.chat{height:400px}}@media(max-width:600px){header,footer{padding:18px 5vw}.brand{font-size:15px}.brand .muted{display:none}.badge{font-size:10px}.inputs{grid-template-columns:1fr}.features{flex-direction:column;gap:8px}.room-heading{align-items:flex-start;flex-direction:column}.card{padding:18px}footer span{display:none}}
.filter-defs{position:absolute;width:0;height:0;overflow:hidden}video{filter:url(#gamma-filter)}select{width:100%;background:#11141e;color:var(--text);border:1px solid #35394b;border-radius:8px;padding:10px;font:inherit}.actions,.row{display:flex;gap:8px}.row input,.row select{min-width:0}.source-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}#host-panel{margin-bottom:24px}#results{max-height:320px;overflow:auto;margin:12px 0}.result{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:12px 0}.result strong{display:block;overflow-wrap:anywhere;font-size:13px}.result small{color:var(--muted)}.result button{flex-shrink:0}.player-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:16px}.player-tools label{font-size:12px}.player-tools input[type=range]{padding:10px 0}#subtitle-upload{grid-column:1/-1}#subtitle-file{font-size:12px}.player-tools output{float:right;color:var(--accent)}#file-form{padding-top:12px}#close-room{border-color:#785056}.source-grid button{white-space:nowrap}@media(max-width:700px){.source-grid{grid-template-columns:1fr}.player-tools{grid-template-columns:1fr 1fr}.actions{flex-wrap:wrap}}
.search-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px 0;border-top:1px solid var(--line)}.search-filters .check-filter,.search-filters #result-count{grid-column:1/-1}.check-filter{display:flex;align-items:center;gap:9px}.check-filter input{width:auto;accent-color:var(--accent)}#operation-status{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:12px 5vw;background:#211e35f5;border-bottom:1px solid #504469;overflow:hidden;font-size:13px}#operation-status .spinner{width:18px;height:18px;border-width:2px;flex-shrink:0}.operation-progress{position:absolute;bottom:0;left:0;width:30%;height:2px;background:var(--accent);animation:progress-slide 1.6s ease-in-out infinite}@keyframes progress-slide{from{transform:translateX(-100%)}to{transform:translateX(450%)}}.side-column{display:flex;flex-direction:column;gap:24px;min-width:0}.cat-row{display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:12px}.cat-row .check-filter{margin:0}.volume-row{grid-column:1/-1;display:flex;align-items:center;gap:12px}.volume-row label{margin:0;white-space:nowrap;font-size:12px}.volume-row input{flex:1;min-width:0;padding:0;accent-color:var(--accent)}.volume-row button{flex-shrink:0}@media(max-width:650px){.search-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
#login-button{width:100%;margin-top:20px}#watch-history{margin-top:26px;text-align:left}.history-entry{display:flex;flex-direction:column;padding:12px 0;border-top:1px solid var(--line);overflow-wrap:anywhere}.history-entry small{color:var(--muted)}#privacy-control{margin:0 0 20px;flex-wrap:wrap}#create .check-filter{margin-top:18px}#create .row button{flex:1;justify-content:center}#create-button{margin:0}
dialog{background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:16px;width:min(680px,92vw);max-height:80vh;padding:24px}dialog::backdrop{background:#000b}dialog .row{align-items:center;justify-content:space-between}#history-list,#room-history-list{max-height:55vh;overflow:auto}.room-heading .actions{flex-wrap:wrap}
@media(max-width:480px){main{padding:24px 4vw}header,footer{padding:16px 4vw;flex-wrap:wrap;gap:12px}.player-tools{grid-template-columns:1fr}.search-filters{grid-template-columns:1fr}.screen{border-radius:10px}.card{padding:18px}button{padding:12px 14px}#loading-text{padding:0 16px;text-align:center}#operation-status{padding:10px 4vw;font-size:12px}}

.pipeline{display:flex;align-items:flex-start;margin:12px 0 2px}
.pstep{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;min-width:0}
.pstep::before{content:"";position:absolute;top:8px;left:calc(-50% + 11px);right:calc(50% + 11px);height:2px;background:#3a3451}
.pstep:first-child::before{display:none}
.pstep.done::before{background:#3ddc84}
.pdot{width:18px;height:18px;border-radius:50%;border:2px solid #555a73;background:#191c28;z-index:1;flex-shrink:0}
.pstep.done .pdot{background:#3ddc84;border-color:#3ddc84}
.pstep.current .pdot{border-color:#baacf8;background:#211e35;box-shadow:0 0 0 4px #baacf83d;animation:spin 1.2s linear infinite}
@keyframes pulse-ring{0%{box-shadow:0 0 0 0 #baacf866}100%{box-shadow:0 0 0 8px #baacf800}}
.pstep.current .pdot{animation:pulse-ring 1.2s ease-out infinite}
.plabel{font-size:11px;margin-top:5px;color:var(--text)}
.pstep.upcoming .plabel{color:var(--muted)}
.pstep.failed .pdot{background:#ff6b6b;border-color:#ff6b6b}
.pstep.failed .plabel{color:#ffa6aa}
.pdetail{font-size:10px;color:var(--muted);max-width:120px;overflow-wrap:anywhere;margin-top:1px}
@media(max-width:600px){.plabel{font-size:9px}.pdetail{font-size:8px;max-width:80px}.pdot{width:14px;height:14px}.pstep::before{top:6px;left:calc(-50% + 8px);right:calc(50% + 8px)}}

.thumbs{display:flex;gap:4px;overflow-x:auto;margin:8px 0 2px;padding:2px}
.thumbs[hidden]{display:none}
.thumbs img{width:96px;height:54px;object-fit:cover;border-radius:6px;border:1px solid var(--line);cursor:pointer;flex-shrink:0}
@media(max-width:600px){.thumbs img{width:72px;height:41px}}
