*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:#0f1115;color:#e7e9ee}input,button{font:inherit}input{padding:8px 10px;border-radius:8px;border:1px solid #2a2f3a;background:#161922;color:#e7e9ee}button{padding:8px 12px;border-radius:8px;border:0;background:#3b82f6;color:#fff;cursor:pointer}button:disabled{opacity:.5;cursor:default}a.link{color:#6ea8fe;cursor:pointer;font-size:14px}.muted{color:#8b93a7;font-size:14px}.error{color:#ff6b6b;font-size:14px}.center{min-height:100vh;display:flex;align-items:center;justify-content:center}.dvr-page{--chassis:#141414;--chassis-2:#1b1b1b;--line:#2a2a2a;--line-2:#3a3a3a;--ink:#cccccc;--ink-dim:#7a7a7a;--tc:#FFB323;--live:#FF3340;--past:#c2c2c2;--mark:#FFC94D;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;min-height:100vh;padding:18px;display:flex;justify-content:center;align-items:flex-start;background:radial-gradient(120% 80% at 50% -10%,#232323,#141414 60%)}.dvr-page .unit{width:100%;max-width:980px;background:linear-gradient(180deg,var(--chassis-2),var(--chassis));border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 1px #ffffff08 inset,0 24px 60px -30px #000}.dvr-page .top{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#1e1e1e,#141414)}.dvr-page .brand{font-family:var(--mono);font-size:12px;letter-spacing:.22em;color:var(--ink);text-transform:uppercase}.dvr-page .brand b{color:var(--tc);font-weight:600}.dvr-page .chan{margin-left:auto;display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:10.5px;letter-spacing:.14em;color:var(--ink-dim);text-transform:uppercase;flex-wrap:wrap}.dvr-page .chip{border:1px solid var(--line-2);border-radius:3px;padding:3px 7px}.dvr-page .mini{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:#1f1f1f;border:1px solid var(--line-2);border-radius:5px;padding:6px 10px}.dvr-page .mini:hover{border-color:#46535f}.dvr-page .screen{position:relative;aspect-ratio:16/9;background:#060606;overflow:hidden}.dvr-page .screen>div,.dvr-page .screen video{width:100%!important;height:100%!important}.dvr-page .screen video{object-fit:contain;background:#000}.dvr-page .tally{position:absolute;top:12px;left:14px;z-index:5;display:flex;align-items:center;gap:7px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;pointer-events:none;padding:4px 8px;border-radius:4px;background:#00000073}.dvr-page .tally .dot{width:9px;height:9px;border-radius:50%}.dvr-page .tally.live{color:var(--live)}.dvr-page .tally.live .dot{background:var(--live);box-shadow:0 0 10px var(--live)}.dvr-page .tally.review{color:var(--past)}.dvr-page .tally.review .dot{background:var(--past)}.dvr-page .bay{padding:14px 16px 18px}.dvr-page .readout{display:flex;align-items:flex-end;gap:16px;margin-bottom:12px}.dvr-page .tcbox{display:flex;flex-direction:column;gap:4px}.dvr-page .tcbox label{font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;color:var(--ink-dim);text-transform:uppercase}.dvr-page .tcbig{font-family:var(--mono);font-size:26px;font-weight:600;color:var(--tc);line-height:1}.dvr-page .state{margin-left:auto;font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:6px 10px;border-radius:4px;border:1px solid var(--line-2);color:var(--past)}.dvr-page .state.live{color:var(--live);border-color:#ff334066}.dvr-page .track-wrap{margin:4px 0 6px}.dvr-page .track{position:relative;height:40px;border-radius:5px;cursor:pointer;background:#1e1e1e;border:1px solid var(--line);overflow:visible;touch-action:none}.dvr-page .tl-fill{position:absolute;left:0;top:0;bottom:0;background:#2c3340;border-radius:5px 0 0 5px}.dvr-page .edge{position:absolute;top:-3px;bottom:-3px;right:0;width:2px;background:var(--live);box-shadow:0 0 10px var(--live)}.dvr-page .head{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--past);box-shadow:0 0 10px var(--past);transform:translate(-1px)}.dvr-page .head:before{content:"";position:absolute;top:-5px;left:-5px;width:12px;height:12px;background:var(--past);border-radius:2px;transform:rotate(45deg)}.dvr-page .pin{position:absolute;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:var(--mark);border:2px solid #0e0e0e;cursor:pointer;z-index:3}.dvr-page .pin:hover{transform:translate(-50%,-50%) scale(1.25)}.dvr-page .pin.sel{background:#fff;box-shadow:0 0 0 2px var(--mark)}.dvr-page .controls{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}.dvr-page .behind{font-family:var(--mono);font-size:11px;color:var(--past);letter-spacing:.08em}.dvr-page .golive{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:#fff;background:linear-gradient(180deg,#ff4452,#e5242f);border:1px solid #FF5b66;border-radius:5px;padding:9px 14px}.dvr-page .golive:disabled{opacity:.4;filter:saturate(.4)}.dvr-page .notes{margin-top:16px;border-top:1px solid var(--line);padding-top:12px}.dvr-page .notes-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dvr-page .notes h4{margin:0;font-family:var(--mono);font-size:9.5px;letter-spacing:.22em;color:var(--ink-dim);text-transform:uppercase;font-weight:500}.dvr-page .note-form{display:flex;gap:8px;margin-bottom:10px}.dvr-page .note-form input{flex:1;background:#161616;border:1px solid var(--line-2);color:var(--ink)}.dvr-page .note-form button{background:#1f1f1f;border:1px solid var(--line-2);color:var(--ink)}.dvr-page .note{display:flex;gap:10px;align-items:baseline;padding:7px 6px;cursor:pointer;border-bottom:1px solid #202020;border-radius:4px}.dvr-page .note:hover{background:#181818}.dvr-page .note.sel{background:#20242e}.dvr-page .note .ntc{font-family:var(--mono);font-size:12px;color:var(--mark);min-width:92px}.dvr-page .note .nau{font-size:11px;color:var(--ink-dim);min-width:60px}.dvr-page .note .ntx{font-size:13px;color:var(--ink);flex:1}.dvr-page .note .ndel{background:transparent;border:0;color:#7a7a7a;padding:0 6px}.dvr-page .note .ndel:hover{color:var(--live)}.badge{font-size:11px;background:#3b82f6;color:#fff;padding:2px 7px;border-radius:6px}button.danger{background:#c0392b}button.danger:hover{background:#e04434}.admin-create{display:flex;flex-direction:column;gap:10px}.proj-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:6px}.proj-pick .pick{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid #2a2f3a;border-radius:8px;background:#161922;cursor:pointer;font-size:14px}.proj-pick .pick.on{border-color:#3b82f6;background:#1a2433}.proj-chips{display:flex;flex-wrap:wrap;gap:6px}.proj-chips .chip{font-size:12px;background:#232838;color:#cfd4de;padding:3px 9px;border-radius:12px}.card{background:#161922;border:1px solid #232838;border-radius:12px;padding:14px;display:flex;gap:10px;flex-direction:column}.row{display:flex;gap:10px;align-items:center}.list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.card.row{flex-direction:row}.card.active{border-color:#3b82f6}.topbar{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid #232838}.page{min-height:100vh}.content{max-width:760px;margin:0 auto;padding:16px}.project-grid{display:grid;grid-template-columns:1fr 360px;gap:16px;padding:16px;max-width:1200px;margin:0 auto}@media (max-width: 900px){.project-grid{grid-template-columns:1fr}}.comments{display:flex;flex-direction:column;gap:10px}.comment-list{display:flex;flex-direction:column;gap:6px;max-height:60vh;overflow:auto}.comment{background:#161922;border:1px solid #232838;border-radius:8px;padding:8px;font-size:14px;display:flex;align-items:center;gap:6px}.cm-del{margin-left:auto;background:transparent;color:#8b93a7;padding:2px 6px;border-radius:6px}.cm-del:hover{background:#3a2030;color:#ff6b6b}.comment .tc{color:#6ea8fe;font-variant-numeric:tabular-nums}.comment .cm-author{color:#b9c2d6}.timeinfo{font-variant-numeric:tabular-nums}.timeline{position:relative;height:16px;margin:8px 0 4px;background:#232838;border-radius:8px;cursor:pointer;-webkit-user-select:none;user-select:none}.tl-fill{position:absolute;left:0;top:0;bottom:0;background:#3b82f6;opacity:.35;border-radius:8px 0 0 8px}.tl-playhead{position:absolute;top:-2px;bottom:-2px;width:2px;background:#fff;transform:translate(-1px)}.tl-marker{position:absolute;top:50%;width:12px;height:12px;margin-left:-6px;transform:translateY(-50%);background:#f5a623;border:2px solid #0f1115;border-radius:50%;cursor:pointer;box-sizing:border-box}.tl-marker:hover{background:#ffd166}.tl-marker.sel{background:#ffd166;width:16px;height:16px;margin-left:-8px;box-shadow:0 0 0 2px #f5a623}.player-bar{margin-top:6px;gap:8px}.player-bar .time{font-variant-numeric:tabular-nums}.player-bar button{background:#232838}.player-bar button:hover{background:#2d3344}.comment.sel{border-color:#f5a623;background:#20242e}.cm-markers{position:absolute;left:0;right:0;top:0;bottom:0;pointer-events:none}.cm-mark{position:absolute;top:50%;transform:translate(-50%,-50%);width:11px;height:11px;background:#f5a623;border:2px solid #0b0d12;border-radius:50%;pointer-events:auto;cursor:pointer;z-index:20}.cm-mark:hover{background:#ffd166;transform:translate(-50%,-50%) scale(1.25)}button.live-on{background:#c0392b}button.live-on:hover{background:#e04434}button.live-off{background:#2a2f3a;color:#8b93a7}button.live-off:hover{background:#3a4150;color:#cfd4de}.seg{display:inline-flex;border:1px solid #2a2f3a;border-radius:8px;overflow:hidden}.seg-btn{background:#161922;color:#8b93a7;border:0;border-radius:0;padding:8px 16px;font-weight:600}.seg-btn:hover{background:#20242e}.seg-btn.seg-on{background:#c0392b;color:#fff}.player-bar .vol{width:90px;padding:0;accent-color:#3b82f6}.player-bar button.live-on{background:#c0392b}.player-bar button.live-on:hover{background:#e04434}.player-wrap:fullscreen{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:#000}.player-wrap:fullscreen>div{aspect-ratio:auto;width:100%;height:100%}.player-wrap:fullscreen video{width:100%!important;height:100%!important;object-fit:contain}
