.playlist{padding:8px}.playlist ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.playlist li{display:grid;grid-template-columns:120px 1fr;gap:12px;align-items:center;padding:8px;background:#121621;border-radius:8px}.playlist li.focused{outline:2px solid #6ae3ff}.playlist li img{width:120px;height:68px;object-fit:cover;border-radius:4px;background:#1b2133}.playlist .meta .title{font-weight:600}.playlist .meta .type{color:#a0a6b3;font-size:12px;margin-top:2px}.video-player{position:relative;background:#000;overflow:hidden;border-radius:0;height:100%}.video-player video{width:100%;height:60vh;background:#000;display:block}.video-player.fill video{width:100%;height:100%}.video-player .hud{position:absolute;left:12px;top:12px;background:rgba(0,0,0,.35);padding:6px 10px;border-radius:6px;font-size:14px}.video-player .controls{position:absolute;left:12px;bottom:12px;display:flex;gap:8px}.video-player .controls button{background:#121621;color:#e6e9ef;border:1px solid #2a3146;border-radius:6px;padding:8px 10px}.video-player .controls button:focus{outline:2px solid #6ae3ff}.video-player .error{position:absolute;right:12px;bottom:12px;background:#3b0d0d;color:#ffb3b3;padding:8px 10px;border-radius:6px}.nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:#0e1320;border-bottom:1px solid #242c3f;position:sticky;top:0;z-index:10}.nav .left{display:flex;align-items:center;gap:10px}.nav .back{background:#121621;color:#e6e9ef;border:1px solid #2a3146;border-radius:6px;padding:6px 10px}.nav .back:focus{outline:2px solid #6ae3ff}.nav h2{margin:0;font-size:18px}.logviewer{background:#0e1320;border:1px solid #242c3f;border-radius:8px;padding:8px}.logviewer .toolbar{display:flex;gap:8px;margin-bottom:8px}.logviewer ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:30vh;overflow:auto}.logviewer li{display:grid;grid-template-columns:160px 80px 1fr;gap:8px;align-items:start;background:#121621;border-radius:6px;padding:6px}.logviewer .time{color:#a0a6b3;font-size:12px}.logviewer .type{font-weight:600}.logviewer .detail{color:#d6dbeb;overflow-wrap:anywhere}.appContainer{position:absolute;top:0;right:0;bottom:0;left:0;background:#000}.appFrame{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;background:transparent}.appBadge{position:absolute;top:12px;left:12px;background:rgba(0,0,0,.5);color:#fff;padding:6px 10px;border-radius:6px;font-size:14px;z-index:5}.appFallback{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#c4c9d4;background:#000;font-size:28px;padding:24px;text-align:center}.slideshow{position:relative;height:100vh;background:#000;overflow:hidden}.slideshow:focus{outline:2px solid #6ae3ff}.slideshow .stage{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;background:#000 center/cover no-repeat}.slideshow .slide{width:100%;height:100%;display:block}.slideshow .text-stage{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:0}.slideshow .text-box{max-width:80vw;max-height:80%;overflow:hidden;white-space:pre-wrap;text-align:center;background:rgba(0,0,0,.5);color:#fff;padding:16px 24px;border-radius:8px;font-size:28px;line-height:1.35}.slideshow .text-box.muted{color:#c4c9d4}.slideshow .overlay{position:absolute;left:12px;right:12px;bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:rgba(0,0,0,.35);padding:8px 12px;border-radius:6px;z-index:1}.slideshow .overlay-bottom{position:absolute;left:0;right:0;bottom:0;padding:10px 16px;z-index:2}.slideshow .overlay-bottom .info{display:inline-flex;gap:8px;align-items:center;background:rgba(0,0,0,.4);padding:6px 10px;border-radius:6px;font-size:14px;color:#e6e9ef}.slideshow .overlay-bottom .sep{opacity:.6}.slideshow .overlay .title{font-weight:600}.slideshow .overlay .meta{color:#c4c9d4;font-size:12px}.slideshow .overlay .controls{display:flex;gap:8px}.slideshow .overlay .controls button{background:#121621;color:#e6e9ef;border:1px solid #2a3146;border-radius:6px;padding:6px 10px}.slideshow .empty{display:grid;place-items:center;height:100%;color:#a0a6b3}.slideshow .slide-fade{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0}.slideshow .slide-fade.is-visible{opacity:1;transition:opacity .35s ease-out}.slideshow .slide-fade:not(.is-visible){opacity:0;transition:none}.slideshow .scap-message{display:grid;place-items:center;text-align:center;padding:24px;color:#e6e9ef}.slideshow .scap-message p{margin:0 0 8px;font-size:18px}.slideshow .scap-message .hint{font-size:14px;color:#8b92a0}.slideshow .scap-message.scap-loading{color:#a0a6b3}.slideshow .scap-message.scap-error{color:#f87171}.slideshow .scap-message.scap-error .hint{color:#94a3b8}:root{color-scheme:dark;--ctl-rotation: 0deg;--ctl-brightness: 1;--ctl-screen-off: 0;--ctl-dim: 0}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:#0b0d12;color:#e6e9ef}.app{padding:0;min-height:100%;display:grid;gap:0;transform:rotate(var(--ctl-rotation));transform-origin:center center;filter:brightness(var(--ctl-brightness));overflow:hidden;position:relative}.app:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:var(--ctl-dim);pointer-events:none;z-index:9997}.app:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:var(--ctl-screen-off);pointer-events:none;z-index:9998}:focus{outline:2px solid #6ae3ff;outline-offset:2px}.page{position:relative;min-height:100vh}.pairingPage{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px}.pairingCard{width:100%;max-width:820px;padding:32px;border-radius:18px;background:rgba(0,0,0,.22);border:1px solid rgba(255,255,255,.1);box-shadow:0 10px 30px rgba(0,0,0,.35)}.pairingTitle{margin:0 0 14px;font-size:40px;font-weight:800;letter-spacing:.4px}.pairingSubtitle{opacity:.85;margin-bottom:22px;line-height:1.4;font-size:20px}.pairingForm{display:flex;flex-direction:column;gap:14px}.pairingInput{width:100%;height:72px;padding:0 18px;border-radius:14px;border:1px solid rgba(255,255,255,.18);background:rgba(0,0,0,.25);color:#fff;outline:none;box-sizing:border-box;font-size:26px;font-weight:700;letter-spacing:2px}.pairingButton{height:72px;border-radius:14px;width:100%;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.18);color:#fff;font-weight:800;font-size:22px;letter-spacing:.8px;cursor:pointer}.pairingError{margin-top:18px;color:#ff9aa2;font-size:18px;line-height:1.4}
