:root{--rv-bg-primary:#000000;--rv-bg-secondary:#0a0a0a;--rv-bg-tertiary:#141414;--rv-bg-card:#1a1a1a;--rv-accent:#3b82f6;--rv-accent-hover:#2563eb;--rv-text-primary:#ffffff;--rv-text-secondary:#a1a1aa;--rv-text-muted:#71717a;--rv-border:#27272a;--rv-border-light:#3f3f46;--rv-danger:#ef4444;--rv-success:#22c55e}.replay-viewer-page{position:fixed;top:0;left:0;width:100vw;height:100vh;background:var(--rv-bg-primary);color:var(--rv-text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;display:flex;flex-direction:column;overflow:hidden}.rv-main-content-area{flex:1;display:flex;align-items:center;justify-content:center;padding:20px 20px 180px;box-sizing:border-box}.rv-video-stage{position:relative;width:100%;max-width:800px;height:100%;max-height:700px;background-color:var(--rv-bg-secondary);border-radius:24px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,255,255,.05),0 25px 50px -12px rgba(0,0,0,.8);display:flex;flex-direction:column}.rv-stage-header{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;gap:12px;padding:16px 20px;background:linear-gradient(180deg,rgba(0,0,0,.7) 0,transparent);pointer-events:none}.rv-stage-header .rv-back-btn{pointer-events:auto}.rv-back-btn{background:rgba(255,255,255,.1);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);color:var(--rv-text-primary);font-size:18px;cursor:pointer;padding:8px 12px;border-radius:10px;transition:all .2s}.rv-back-btn:hover{background:rgba(255,255,255,.2)}.rv-stage-title-group{display:flex;flex-direction:column;gap:2px}.rv-stage-title{font-size:16px;font-weight:600;color:white;text-shadow:0 2px 8px rgba(0,0,0,.5)}.rv-stage-subtitle{font-size:12px;color:rgba(255,255,255,.7);text-shadow:0 1px 4px rgba(0,0,0,.5)}.rv-header{justify-content:space-between;padding:12px 16px;background:var(--rv-bg-secondary);border-bottom:1px solid var(--rv-border);flex-shrink:0;z-index:10}.rv-header,.rv-header-left{display:flex;align-items:center}.rv-header-left{gap:12px}.rv-header-title{font-size:16px;font-weight:600}.rv-header-subtitle{font-size:12px;color:var(--rv-text-secondary)}.rv-header-right{display:flex;align-items:center;gap:8px}.rv-event-selector{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;padding:40px 20px;gap:20px}.rv-event-selector h2{font-size:24px;font-weight:600}.rv-event-selector p{color:var(--rv-text-secondary);font-size:14px}.rv-event-input-group{display:flex;gap:8px;max-width:500px;width:100%}.rv-event-input{flex:1;padding:10px 14px;background:var(--rv-bg-tertiary);border:1px solid var(--rv-border);border-radius:8px;color:var(--rv-text-primary);font-size:14px;outline:none;transition:border-color .2s}.rv-event-input:focus{border-color:var(--rv-accent)}.rv-event-input::placeholder{color:var(--rv-text-muted)}.rv-load-btn{padding:10px 20px;background:var(--rv-accent);color:white;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.rv-load-btn:hover{background:var(--rv-accent-hover)}.rv-load-btn:disabled{opacity:.5;cursor:not-allowed}.rv-interaction-wrapper{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%;pointer-events:auto}.ramp-notice{position:absolute;top:52px;left:50%;z-index:60;display:flex;align-items:center;gap:11px;max-width:calc(100% - 28px);padding:8px 10px;border-radius:13px;background:rgba(17,19,24,.86);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);box-shadow:0 8px 26px rgba(0,0,0,.44);color:#f2f4f7;pointer-events:none;transform:translateX(-50%);animation:ramp-notice-cycle 2.6s cubic-bezier(.22,1,.36,1) both;--rn-accent:#3be0c0}.ramp-notice--shrink{--rn-accent:#f0b45a}.ramp-notice__glyph{flex:none;display:flex;width:30px;height:30px;align-items:center;justify-content:center;border-radius:9px;background:rgba(59,224,192,.16)}.ramp-notice--shrink .ramp-notice__glyph{background:rgba(240,180,90,.16)}.ramp-notice__glyph .rn-cell{fill:none;stroke:rgba(255,255,255,.5);stroke-width:1.6}.ramp-notice__glyph .rn-cell--delta{fill:var(--rn-accent);stroke:var(--rn-accent)}.ramp-notice--shrink .rn-cell--delta{fill:none;stroke:var(--rn-accent);stroke-dasharray:2.4 2.4}.ramp-notice__body{display:flex;flex-direction:column;line-height:1.22;min-width:0}.ramp-notice__eyebrow{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rn-accent)}.ramp-notice__title{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ramp-notice__count{flex:none;margin-left:2px;min-width:24px;height:24px;display:flex;align-items:center;justify-content:center;padding:0 6px;border-radius:7px;background:rgba(255,255,255,.08);font-size:13px;font-weight:700;font-variant-numeric:tabular-nums;color:#fff}@keyframes ramp-notice-cycle{0%{opacity:0;transform:translate(-50%,-10px)}9%{opacity:1;transform:translate(-50%)}86%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-6px)}}@media (prefers-reduced-motion:reduce){.ramp-notice{animation:ramp-notice-fade 2.6s linear both}@keyframes ramp-notice-fade{0%{opacity:0}9%{opacity:1}86%{opacity:1}to{opacity:0}}}.rv-integrated-slider-wrapper{position:absolute;bottom:0;left:0;right:0;width:100%;padding:12px;background:linear-gradient(0deg,rgba(0,0,0,.9) 0,rgba(0,0,0,.5) 70%,transparent);z-index:55;transition:all .4s cubic-bezier(.4,0,.2,1);pointer-events:auto}.rv-integrated-slider-wrapper.hidden{opacity:0;transform:translateY(15px);pointer-events:none;transition:all .15s ease-in}.rv-integrated-slider-wrapper.visible{opacity:1;transform:translateY(0);transition:all .35s cubic-bezier(.4,0,.2,1)}.rv-integrated-slider{background:rgba(0,0,0,.4);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;padding:10px 14px;border:1px solid rgba(255,255,255,.1)}.rv-integrated-slider .timeline-chart-area{height:50px}.rv-seek-duration-selector{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);display:flex;gap:4px;background:rgba(0,0,0,.6);backdrop-filter:blur(12px);padding:4px;border-radius:20px;border:1px solid rgba(255,255,255,.1);z-index:70;transition:all .3s ease}.rv-seek-duration-selector.hidden{opacity:0;transform:translateX(-50%) translateY(5px);pointer-events:none;transition:all .15s ease-in}.rv-seek-duration-selector.visible{opacity:1;transform:translateX(-50%) translateY(0);transition:all .3s ease-out}.duration-opt{padding:4px 12px;border-radius:16px;border:none;background:transparent;color:#a1a1aa;font-size:11px;font-weight:600;cursor:pointer;transition:all .2s ease}.duration-opt.active{background:#3b82f6;color:#fff}.duration-opt:hover:not(.active){background:rgba(255,255,255,.1)}.rv-side-seek-btn{position:fixed;top:50%;transform:translateY(-50%);height:38px;padding:0 14px;border-radius:19px;background:rgba(0,0,0,.52);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.9);display:flex;flex-direction:row;align-items:center;gap:6px;justify-content:center;cursor:pointer;opacity:.82;transition:opacity .18s ease,background .18s ease,transform .18s ease;z-index:60}.rv-side-seek-btn:hover:not(:disabled){opacity:1;background:rgba(0,0,0,.72);transform:translateY(-50%) scale(1.05)}.rv-standalone-slider-wrapper{display:none}.rv-side-seek-btn:active:not(:disabled){transform:translateY(-50%) scale(.94);background:rgba(0,0,0,.78)}.rv-side-seek-btn:disabled{opacity:.28;cursor:not-allowed}.rv-side-seek-btn.left{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width) - 470px) / 2 - 72px)}.rv-side-seek-btn.right{left:auto;right:calc((100vw - var(--sidebar-width) - 470px) / 2 - 72px)}.rv-side-seek-btn.grid-seek{top:50%}.rv-side-seek-btn.grid-seek-2.left{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width) - 940px) / 2 - 72px)}.rv-side-seek-btn.grid-seek-2.right{right:calc((100vw - var(--sidebar-width) - 940px) / 2 - 72px)}.rv-side-seek-btn.grid-seek-3.left{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width) - 1410px) / 2 - 72px)}.rv-side-seek-btn.grid-seek-3.right{right:calc((100vw - var(--sidebar-width) - 1410px) / 2 - 72px)}.rv-side-seek-btn.grid-seek-1.left,.rv-side-seek-btn.grid-seek-4.left,.rv-side-seek-btn.grid-seek-5.left,.rv-side-seek-btn.grid-seek-6.left,.rv-side-seek-btn.grid-seek-7.left,.rv-side-seek-btn.grid-seek-8.left,.rv-side-seek-btn.grid-seek-9.left{left:calc(var(--sidebar-width) + (100vw - var(--sidebar-width) - 470px) / 2 - 72px)}.rv-side-seek-btn.grid-seek-1.right,.rv-side-seek-btn.grid-seek-4.right,.rv-side-seek-btn.grid-seek-5.right,.rv-side-seek-btn.grid-seek-6.right,.rv-side-seek-btn.grid-seek-7.right,.rv-side-seek-btn.grid-seek-8.right,.rv-side-seek-btn.grid-seek-9.right{right:calc((100vw - var(--sidebar-width) - 470px) / 2 - 72px)}.rv-side-seek-btn .seek-val{font-size:13px;font-weight:600;color:rgba(255,255,255,.9);letter-spacing:.02em}@media (max-width:900px) and (min-width:769px){.rv-side-seek-btn{display:none}}@media (min-width:769px){.rv-interaction-wrapper:hover .rv-integrated-slider-wrapper:not(.slider-hidden){opacity:1!important;transform:translateY(0)!important;pointer-events:auto!important;transition:all .25s cubic-bezier(.4,0,.2,1)!important}.rv-integrated-slider-wrapper.is-playing{opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .15s ease-in,transform .15s ease-in}.event-item:hover .rv-integrated-slider-wrapper.is-playing,.video-stage:hover .rv-integrated-slider-wrapper.is-playing{opacity:1;transform:translateY(0);pointer-events:auto;transition:opacity .3s cubic-bezier(.4,0,.2,1),transform .3s cubic-bezier(.4,0,.2,1)}}.rv-integrated-slider-wrapper.rv-slider-playing{opacity:0;transform:translateY(15px);pointer-events:none;transition:all .15s ease-in}.rv-integrated-slider-wrapper.rv-slider-playing.controls-revealed{opacity:1;transform:translateY(0);pointer-events:auto;transition:all .25s cubic-bezier(.4,0,.2,1)}@media (min-width:769px){.event-item:hover .rv-integrated-slider-wrapper.rv-slider-playing,.rv-interaction-wrapper:hover .rv-integrated-slider-wrapper.rv-slider-playing,.video-stage:hover .rv-integrated-slider-wrapper.rv-slider-playing,.video-wrapper:hover .rv-integrated-slider-wrapper.rv-slider-playing{opacity:1;transform:translateY(0);pointer-events:auto;transition:all .3s cubic-bezier(.4,0,.2,1)}.event-item:hover .rv-integrated-slider-wrapper.slider-hidden,.rv-interaction-wrapper:hover .rv-integrated-slider-wrapper.slider-hidden,.video-stage:hover .rv-integrated-slider-wrapper.slider-hidden,.video-wrapper:hover .rv-integrated-slider-wrapper.slider-hidden{opacity:0!important;transform:translateY(110%)!important;pointer-events:none!important}}@media (max-width:768px){.rv-side-seek-btn{display:none}.rv-integrated-slider-wrapper.rv-slider-playing{opacity:0!important;transform:translateY(15px)!important;pointer-events:none!important}.rv-integrated-slider-wrapper.rv-slider-playing.controls-revealed{opacity:1!important;transform:translateY(0)!important;pointer-events:auto!important;transition:all .25s cubic-bezier(.4,0,.2,1)!important}.rv-seek-duration-selector--inline{position:static!important;transform:none!important;bottom:auto!important;left:auto!important;right:auto!important;background:transparent;border:none;padding:0;gap:4px;transition:opacity .3s ease}.rv-seek-duration-selector--inline.hidden{opacity:0;pointer-events:none}.rv-seek-duration-selector--inline.visible{opacity:1}.rv-side-seek-btn{display:flex}.rv-side-seek-btn.left{left:10px;right:auto}.rv-side-seek-btn.right{right:10px;left:auto}.rv-side-seek-btn.hidden,.rv-side-seek-btn.playing{opacity:0;pointer-events:none}.rv-side-seek-btn.playing{transition:opacity .3s ease}.rv-side-seek-btn.playing.controls-revealed{opacity:.85;pointer-events:auto;transition:opacity .25s ease}.rv-side-seek-btn:active:not(:disabled){transform:scale(.93)}}.main-content-area:has(.rv-standalone-slider-wrapper){flex-direction:column}.rv-overlay-container{display:none}.rv-overlay-container .replay-viewer-controls{position:relative;display:flex;flex-direction:column;width:100%;gap:8px}.rv-overlay-container .rv-controls-panel{border-radius:12px;padding:10px}.rv-overlay-container .replay-controls,.rv-overlay-container .rv-controls-panel{position:relative;background:rgba(0,0,0,.6);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.1)}.rv-overlay-container .replay-controls{border-radius:12px;padding:10px 12px}.rv-overlay-container .timeline-slider{background:transparent;border:none;border-radius:0;padding:8px 0}.rv-overlay-container .timeline-chart-area{height:70px}.rv-overlay-container .timeline-slider-track{height:10px;border-radius:5px}.rv-overlay-container .timeline-slider-thumb{width:22px;height:22px}.rv-overlay-container .timemap-loading{background:rgba(0,0,0,.7);border-radius:8px;padding:8px 16px;text-align:center;color:rgba(255,255,255,.7);font-size:.8rem}.replay-viewer-controls{display:flex;flex-direction:column;width:100%}.rv-video-grid{flex:1;display:grid;gap:4px;padding:60px 8px 8px;min-height:0;background:transparent}.rv-video-grid.cameras-0{place-items:center}.rv-video-grid.cameras-1{grid-template-columns:1fr;grid-template-rows:1fr}.rv-video-grid.cameras-2{grid-template-columns:1fr 1fr;grid-template-rows:1fr}.rv-video-grid.cameras-3,.rv-video-grid.cameras-4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.rv-video-grid.cameras-5,.rv-video-grid.cameras-6{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr}.rv-video-grid.cameras-7,.rv-video-grid.cameras-8,.rv-video-grid.cameras-9{grid-template-columns:1fr 1fr 1fr;grid-template-rows:1fr 1fr 1fr}.rv-video-cell{position:relative;background:var(--rv-bg-tertiary);border-radius:12px;overflow:hidden;min-height:0;border:1px solid var(--rv-border);transition:border-color .2s}.rv-video-cell:hover{border-color:var(--rv-border-light)}.rv-video-cell .video-player-container,.rv-video-cell .video-wrapper,.rv-video-cell video{width:100%!important;height:100%!important;object-fit:cover;background:#000;position:absolute;top:0;left:0}.rv-video-cell video{object-fit:contain}.rv-video-cell-label{position:absolute;top:10px;left:10px;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);color:var(--rv-text-primary);font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;z-index:2;pointer-events:none;letter-spacing:.02em}.rv-video-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:var(--rv-text-muted);font-size:15px;min-height:200px;text-align:center;padding:20px}.rv-video-empty svg{opacity:.3}.rv-video-empty .rv-load-btn{margin-top:8px}.rv-controls-panel{position:fixed;bottom:0;left:0;right:0;z-index:50;background:linear-gradient(to top,var(--rv-bg-primary) 0,rgba(0,0,0,.95) 100%);border-top:1px solid var(--rv-border);padding:0}.rv-controls-inner{max-width:800px;margin:0 auto;padding:16px 24px 24px}.rv-controls-panel .timeline-slider{margin-bottom:20px}.rv-controls-panel .timeline-slider-track{height:8px;background:var(--rv-bg-card);border-radius:4px;cursor:pointer;position:relative;border:1px solid var(--rv-border)}.rv-controls-panel .timeline-slider-progress{height:100%;background:linear-gradient(90deg,var(--rv-accent) 0,#60a5fa 100%);border-radius:4px;transition:width .1s ease-out}.rv-controls-panel .timeline-slider-thumb{position:absolute;top:50%;width:18px;height:18px;background:white;border:3px solid var(--rv-accent);border-radius:50%;transform:translate(-50%,-50%);cursor:grab;transition:transform .15s,box-shadow .15s;box-shadow:0 2px 8px rgba(0,0,0,.3)}.rv-controls-panel .timeline-slider-thumb:hover{transform:translate(-50%,-50%) scale(1.15);box-shadow:0 4px 12px rgba(59,130,246,.4)}.rv-controls-panel .timeline-slider.dragging .timeline-slider-thumb{cursor:grabbing;transform:translate(-50%,-50%) scale(1.2);box-shadow:0 4px 16px rgba(59,130,246,.5)}.rv-controls-panel .timeline-slider-labels{display:flex;justify-content:space-between;margin-top:8px;font-size:12px;font-weight:500;color:var(--rv-text-muted);font-variant-numeric:tabular-nums}.rv-controls-panel .timeline-chart{display:flex;align-items:flex-end;height:32px;margin-bottom:6px;gap:2px;padding:0 2px}.rv-controls-panel .timeline-chart-bar{background:rgba(59,130,246,.2);border-radius:2px 2px 0 0;min-height:3px;transition:background .2s,transform .15s}.rv-controls-panel .timeline-chart-bar:hover{transform:scaleY(1.1)}.rv-controls-panel .timeline-chart-bar.active{background:rgba(59,130,246,.7)}.replay-viewer-controls>.replay-controls,.rv-controls-panel .replay-controls{padding:0;flex-shrink:0;background:transparent;border:none}.replay-viewer-controls .replay-time-display{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding:0 4px}.replay-viewer-controls .replay-time{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--rv-text-primary);letter-spacing:-.02em}.replay-viewer-controls .replay-camera-count{font-size:13px;color:var(--rv-text-secondary);background:var(--rv-bg-card);padding:6px 12px;border-radius:20px;border:1px solid var(--rv-border)}.replay-viewer-controls .replay-control-row{display:flex;align-items:center;justify-content:center;gap:8px}.replay-viewer-controls .replay-control-row.main-controls{margin-bottom:16px;gap:12px}.replay-viewer-controls .replay-control-row.secondary-controls{margin-top:16px;justify-content:space-between;background:var(--rv-bg-card);padding:12px 16px;border-radius:12px;border:1px solid var(--rv-border)}.replay-viewer-controls .replay-btn{background:var(--rv-bg-card);border:1px solid var(--rv-border);color:var(--rv-text-primary);padding:10px 14px;border-radius:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:500;transition:all .2s ease}.replay-viewer-controls .replay-btn:hover:not(:disabled){background:var(--rv-border);border-color:var(--rv-border-light);transform:translateY(-1px)}.replay-viewer-controls .replay-btn:active:not(:disabled){transform:translateY(0)}.replay-viewer-controls .replay-btn:disabled{opacity:.4;cursor:not-allowed}.replay-viewer-controls .replay-btn.seek-btn{min-width:56px;height:48px;border-radius:12px}.replay-viewer-controls .replay-btn.seek-btn.small{min-width:44px;height:44px}.replay-viewer-controls .replay-btn.play-pause-btn{min-width:60px;height:60px;border-radius:50%;padding:0;background:var(--rv-accent);border-color:var(--rv-accent);color:white;box-shadow:0 4px 16px rgba(59,130,246,.4)}.replay-viewer-controls .replay-btn.play-pause-btn:hover:not(:disabled){background:var(--rv-accent-hover);border-color:var(--rv-accent-hover);transform:translateY(-2px);box-shadow:0 6px 24px rgba(59,130,246,.5)}.replay-viewer-controls .replay-btn.play-pause-btn:active:not(:disabled){transform:translateY(0)}.replay-viewer-controls .replay-btn.play-pause-btn.playing{background:var(--rv-bg-card);border-color:var(--rv-border-light);color:var(--rv-text-primary);box-shadow:0 2px 8px rgba(0,0,0,.2)}.replay-viewer-controls .replay-btn.angle-btn,.replay-viewer-controls .replay-btn.bookmark-btn{min-width:52px;height:52px;border-radius:26px;padding:0}.replay-viewer-controls .replay-btn.has-bookmarks,.replay-viewer-controls .replay-btn.has-selection{border-color:var(--rv-accent);background:rgba(59,130,246,.15)}.replay-viewer-controls .seek-label{font-size:11px;color:var(--rv-text-secondary);font-weight:600}.replay-viewer-controls .angle-count,.replay-viewer-controls .bookmark-count{position:absolute;top:-4px;right:-4px;background:var(--rv-accent);color:white;font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;min-width:18px;text-align:center;box-shadow:0 2px 4px rgba(0,0,0,.3)}.replay-viewer-controls .replay-btn.angle-btn,.replay-viewer-controls .replay-btn.bookmark-btn{position:relative}.replay-viewer-controls .quality-btn{min-width:auto;padding:8px 14px;border-radius:8px}.replay-viewer-controls .compile-label,.replay-viewer-controls .quality-label{font-size:13px;font-weight:600}.replay-viewer-controls .quality-btn.low{color:var(--rv-text-secondary)}.replay-viewer-controls .quality-btn.high{color:var(--rv-success);border-color:var(--rv-success);background:rgba(34,197,94,.1)}.replay-viewer-controls .bookmark-nav{font-size:13px;color:var(--rv-text-secondary);background:var(--rv-bg-card);padding:8px 12px;border-radius:8px;border:1px solid var(--rv-border);margin-top:12px}.replay-viewer-controls .bookmark-indicator{font-variant-numeric:tabular-nums;padding:0 12px}.replay-viewer-controls .bookmark-nav .replay-btn{padding:6px 10px;min-width:auto;height:auto}.replay-viewer-controls .duration-selector{display:flex;align-items:center;gap:8px}.replay-viewer-controls .replay-control-label{font-size:12px;color:var(--rv-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.replay-viewer-controls .duration-buttons{display:flex;gap:4px;background:var(--rv-bg-tertiary);padding:4px;border-radius:10px}.rv-controls-panel .duration-btn{background:transparent;border:none;color:var(--rv-text-secondary);padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.rv-controls-panel .duration-btn.active{background:var(--rv-accent);color:white;box-shadow:0 2px 8px rgba(59,130,246,.4)}.rv-controls-panel .duration-btn:hover:not(:disabled):not(.active){background:var(--rv-bg-card);color:var(--rv-text-primary)}.replay-viewer-controls .compile-btn{background:var(--rv-accent);border-color:var(--rv-accent);color:white;padding:10px 18px;border-radius:10px}.replay-viewer-controls .compile-btn:hover:not(:disabled){background:var(--rv-accent-hover);border-color:var(--rv-accent-hover)}.rv-controls-panel .compile-btn.compiling{pointer-events:none;opacity:.8}.rv-controls-panel .spinner{animation:rv-spin 1s linear infinite}@keyframes rv-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.rv-angle-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.8);z-index:50;display:flex;align-items:center;justify-content:center;padding:20px}.rv-angle-modal{background:var(--rv-bg-secondary);border:1px solid var(--rv-border);border-radius:12px;width:100%;max-width:600px;max-height:80vh;overflow-y:auto;padding:20px}.rv-angle-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.rv-angle-modal-header h3{font-size:18px;font-weight:600}.rv-angle-close-btn{background:none;border:none;color:var(--rv-text-secondary);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .2s}.rv-angle-close-btn:hover{background:var(--rv-bg-tertiary);color:var(--rv-text-primary)}.angle-selector-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.angle-selector-info{display:flex;align-items:center;gap:6px}.angle-selector-count{font-size:13px;color:var(--rv-text-secondary)}.angle-selector-max{font-size:11px;color:var(--rv-text-muted)}.angle-selector-actions{display:flex;gap:8px}.angle-selector-btn{background:var(--rv-bg-tertiary);border:1px solid var(--rv-border);color:var(--rv-text-secondary);padding:4px 12px;border-radius:6px;font-size:12px;cursor:pointer;transition:all .15s}.angle-selector-btn:hover:not(:disabled){background:var(--rv-border);color:var(--rv-text-primary)}.angle-selector-btn:disabled{opacity:.4;cursor:not-allowed}.angle-selector-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.angle-card{background:var(--rv-bg-tertiary);border:2px solid var(--rv-border);border-radius:8px;cursor:pointer;transition:all .15s;overflow:hidden}.angle-card:hover:not(.disabled):not(.unavailable){border-color:var(--rv-border-light)}.angle-card.selected{border-color:var(--rv-accent)}.angle-card.unavailable{opacity:.4;cursor:not-allowed}.angle-card.disabled{opacity:.3;cursor:not-allowed}.angle-card-thumbnail{position:relative;aspect-ratio:16/9;background:var(--rv-bg-primary);overflow:hidden}.angle-card-image{width:100%;height:100%;object-fit:cover}.angle-card-placeholder{width:100%;height:100%;color:var(--rv-text-muted)}.angle-card-check,.angle-card-placeholder{display:flex;align-items:center;justify-content:center}.angle-card-check{position:absolute;top:4px;right:4px;width:22px;height:22px;background:var(--rv-accent);border-radius:50%}.angle-card-unavailable{position:absolute;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--rv-text-muted)}.angle-card-label{padding:6px 8px;font-size:11px;color:var(--rv-text-secondary);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.angle-selector-empty{grid-column:1/-1;text-align:center;padding:20px;color:var(--rv-text-muted);font-size:13px}.rv-multi-camera-scroll{position:absolute;top:0;left:0;width:100%;height:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-ms-overflow-style:none;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.rv-multi-camera-scroll::-webkit-scrollbar{display:none}@media (pointer:coarse){.rv-multi-camera-scroll{scroll-behavior:auto}}.rv-camera-cell,.rv-multi-camera-container{display:flex;height:100%;min-width:100%}.rv-camera-cell{position:relative;flex-shrink:0;scroll-snap-align:start;scroll-snap-stop:always;background:#000;overflow:hidden;align-items:center;justify-content:center}.rv-camera-cell:active{opacity:.95}.rv-camera-cell .event-video,.rv-camera-cell .video-player-container,.rv-camera-cell .video-wrapper,.rv-camera-cell video{width:100%!important;height:100%!important;object-fit:contain;background:#000;position:absolute;top:0;left:0}.rv-camera-label{position:absolute;top:10px;left:10px;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);color:#fff;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;z-index:10;pointer-events:none;letter-spacing:.02em}.rv-camera-cell.active .rv-camera-label{background:rgba(59,130,246,.85)}.rv-camera-empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--rv-text-muted,#71717a);font-size:14px}.rv-camera-count-indicator{position:absolute;top:10px;right:10px;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);color:#fff;font-size:12px;font-weight:600;padding:4px 10px;border-radius:6px;z-index:10;pointer-events:none}.rv-camera-dots{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:8px;background:rgba(0,0,0,.6);backdrop-filter:blur(8px);padding:8px 12px;border-radius:20px;z-index:15;pointer-events:none}.rv-camera-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.4);transition:all .3s ease}.rv-camera-dot.active{width:20px;border-radius:3px;background:rgba(59,130,246,.9)}.rv-camera-dots.many-cameras{display:none}.rv-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:16px;color:var(--rv-text-secondary)}.rv-loading-spinner{width:32px;height:32px;border:3px solid var(--rv-border);border-top-color:var(--rv-accent);border-radius:50%;animation:rv-spin .8s linear infinite}.rv-error{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:12px;color:var(--rv-danger);padding:20px;text-align:center}.rv-error-message{font-size:14px;color:var(--rv-text-secondary);max-width:400px}.rv-retry-btn{padding:8px 20px;background:var(--rv-bg-tertiary);border:1px solid var(--rv-border);color:var(--rv-text-primary);border-radius:8px;cursor:pointer;font-size:14px;transition:background .2s}.rv-retry-btn:hover{background:var(--rv-border)}.rv-play-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.4);z-index:5;cursor:pointer;opacity:0;transition:opacity .25s ease}.rv-video-cell:hover .rv-play-overlay{opacity:1}.rv-play-icon{width:64px;height:64px;background:rgba(255,255,255,.95);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--rv-bg-primary);transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 4px 20px rgba(0,0,0,.3)}.rv-play-overlay:hover .rv-play-icon{transform:scale(1.1);box-shadow:0 6px 28px rgba(0,0,0,.4)}.rv-play-overlay:active .rv-play-icon{transform:scale(.95)}@media (max-width:768px){.rv-main-content-area{padding:10px 10px 200px}.rv-video-stage{max-width:100%;max-height:none;border-radius:16px;height:auto;min-height:300px}.rv-stage-header{padding:12px 16px}.rv-stage-title{font-size:14px}.rv-video-grid{padding:56px 6px 6px;gap:4px}.rv-video-grid.cameras-2,.rv-video-grid.cameras-3,.rv-video-grid.cameras-4{grid-template-columns:1fr;grid-template-rows:repeat(auto-fill,1fr)}.rv-video-cell{border-radius:10px;min-height:150px}.rv-controls-inner{padding:12px 16px 20px}.replay-viewer-controls .replay-time{font-size:18px}.replay-viewer-controls .replay-control-row.main-controls{gap:8px;margin-bottom:12px}.replay-viewer-controls .replay-btn.seek-btn{min-width:48px;height:44px}.replay-viewer-controls .replay-btn.angle-btn,.replay-viewer-controls .replay-btn.bookmark-btn{min-width:48px;height:48px}.replay-viewer-controls .replay-btn.play-pause-btn{min-width:54px;height:54px}.replay-viewer-controls .replay-control-row.secondary-controls{flex-direction:column;gap:12px;padding:12px}.rv-angle-modal{max-width:100%;border-radius:16px 16px 0 0;position:fixed;bottom:0;max-height:75vh}.angle-selector-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}}@media (max-width:480px){.rv-main-content-area{padding-bottom:220px}.replay-viewer-controls .replay-time-display{flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:12px}.replay-viewer-controls .replay-camera-count{align-self:flex-start}.replay-viewer-controls .duration-buttons{justify-content:center}.rv-controls-panel .duration-btn{flex:1;text-align:center}.replay-viewer-controls .duration-selector{width:100%;flex-direction:column;align-items:stretch;gap:8px}.replay-viewer-controls .replay-control-label{text-align:center}.replay-viewer-controls .duration-buttons{width:100%}}@media (max-width:768px){.rv-overlay-container{position:absolute;bottom:0;right:0;left:0;width:100%;max-width:100%;padding:8px;gap:4px}.rv-overlay-container .replay-controls,.rv-overlay-container .rv-controls-panel{border-radius:12px;padding:10px 12px}.rv-overlay-container .timeline-chart{height:40px}}.speed-chevrons{position:fixed;top:24px;width:100%;box-sizing:border-box;z-index:200;border-bottom:1px solid rgba(255,255,255,.08);border-radius:0 0 16px 16px;padding:10px 30px 12px;touch-action:none;cursor:pointer;animation:lp-speed-pop .15s ease-out both;transition:padding .2s ease,border-radius .2s ease,background .2s ease}.speed-chevrons,.speed-chevrons--minimized{left:0;right:0;background:rgba(8,13,20,.32);-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3)}.speed-chevrons--minimized{top:32px;width:fit-content;margin:0 auto;transform:none;padding:7px 16px;border-radius:999px;display:flex;align-items:center;justify-content:center}.speed-chevrons__mini{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:800;color:#fde047;white-space:nowrap;line-height:1}.speed-chevrons__rev{display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:900;letter-spacing:.5px;color:#ff3b30;padding-right:7px;border-right:1px solid rgba(255,255,255,.18);animation:speed-chevrons-rev-pulse 1.1s ease-in-out infinite}@keyframes speed-chevrons-rev-pulse{0%,to{opacity:1}50%{opacity:.35}}.speed-chevrons--static{pointer-events:none;animation:none}.speed-chevrons--static .speed-chevrons__rev{padding-right:0;border-right:none}@media (prefers-reduced-motion:reduce){.speed-chevrons__rev{animation:none}}.volume-indicator{position:fixed;top:50%;right:22px;transform:translateY(-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 10px;border-radius:16px;background:rgba(8,13,20,.32);-webkit-backdrop-filter:blur(12px) saturate(1.3);backdrop-filter:blur(12px) saturate(1.3);border:1px solid rgba(255,255,255,.08);pointer-events:none;animation:lp-speed-pop .15s ease-out both}.volume-indicator__icon{font-size:16px;line-height:1}.volume-indicator__track{position:relative;width:6px;height:120px;border-radius:999px;background:rgba(255,255,255,.18);overflow:hidden}.volume-indicator__fill{position:absolute;left:0;bottom:0;width:100%;border-radius:999px;background:#3be0c0;transition:height .06s linear}.volume-indicator__label{font-size:12px;font-weight:800;color:#fff;line-height:1;white-space:nowrap}.speed-chevrons__track{position:relative;height:34px}.speed-chevrons__track:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(255,255,255,.12)}.speed-chevrons__item{position:absolute;bottom:0;left:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;opacity:.4;transition:opacity .15s ease,transform .15s ease;user-select:none;-webkit-user-select:none;pointer-events:none}.speed-chevrons__tick{display:block;width:2px;height:10px;border-radius:1px;background:currentColor;transition:transform .15s ease,height .15s ease}.speed-chevrons__item--slow{color:#93c5fd}.speed-chevrons__item--normal{color:#f87171}.speed-chevrons__item--fast{color:#e5e7eb}.speed-chevrons__item--active{opacity:1}.speed-chevrons__item--active .speed-chevrons__tick{height:14px;transform:scaleX(1.5)}.speed-chevrons__item--normal.speed-chevrons__item--active{color:#ef4444}.speed-chevrons__label{font-size:9px;font-weight:700;font-family:inherit;line-height:1;white-space:nowrap;letter-spacing:.01em}.speed-chevrons__indicator{position:absolute;bottom:-1px;left:0;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none}.speed-chevrons__indicator-dot{width:7px;height:7px;border-radius:50%;background:#fde047;box-shadow:0 0 0 4px rgba(253,224,71,.18),0 0 8px rgba(253,224,71,.75)}.speed-chevrons__indicator-label{font-size:12px;font-weight:800;font-family:inherit;color:#111;background:#fde047;padding:2px 8px;border-radius:999px;white-space:nowrap;line-height:1.4;box-shadow:0 2px 8px rgba(0,0,0,.4)}@keyframes lp-speed-pop{0%{transform:scaleY(.6);opacity:0;transform-origin:top}to{transform:scaleY(1);opacity:1;transform-origin:top}}.event-item:hover .rv-integrated-slider-wrapper.slider-hidden,.events-scroll-container:hover .rv-integrated-slider-wrapper.slider-hidden,.rv-integrated-slider-wrapper.slider-hidden,.rv-integrated-slider-wrapper.slider-hidden.controls-hidden,.rv-integrated-slider-wrapper.slider-hidden.controls-revealed,.rv-integrated-slider-wrapper.slider-hidden.rv-slider-playing,.rv-integrated-slider-wrapper.slider-hidden.rv-slider-playing.controls-revealed,.rv-interaction-wrapper:hover .rv-integrated-slider-wrapper.slider-hidden,.video-stage:hover .rv-integrated-slider-wrapper.slider-hidden,.video-wrapper:hover .rv-integrated-slider-wrapper.slider-hidden{opacity:0!important;transform:translateY(110%)!important;pointer-events:none!important;transition:transform .3s cubic-bezier(.4,0,.2,1),opacity .3s ease!important}.grid-view-selector{position:relative;flex-shrink:0}.grid-view-selector__button{position:static;background:var(--viewer-surface-control);backdrop-filter:var(--viewer-blur-control);border:1px solid var(--viewer-border-control);border-radius:var(--viewer-radius-circle);width:var(--cp-size,56px);height:var(--cp-size,56px);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--viewer-transition-control);color:var(--viewer-text-primary);flex-shrink:0}.grid-view-selector__button:hover:not(:disabled){background:var(--viewer-surface-control-hover);transform:scale(1.05);border-color:var(--viewer-border-control-hover)}.grid-view-selector__button:active:not(:disabled){transform:scale(.95)}.grid-view-selector__button:disabled{opacity:.3;cursor:not-allowed}.grid-view-selector__thumbnail{width:32px;height:32px;object-fit:contain}.grid-view-selector__menu{position:absolute;left:calc(100% + 52px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;animation:gridMenuSlideIn .25s ease-out;z-index:60;background:var(--viewer-surface-panel-strong);backdrop-filter:var(--viewer-blur-panel);border-radius:var(--viewer-radius-md);padding:8px;border:1px solid var(--viewer-border-panel);box-shadow:var(--viewer-shadow-panel-sm)}@keyframes gridMenuSlideIn{0%{opacity:0;transform:translateY(-50%) translateX(-10px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}.grid-view-selector__option{position:relative;background:var(--viewer-surface-control);border:2px solid transparent;border-radius:var(--viewer-radius-md);width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--viewer-transition-control);padding:4px;box-shadow:var(--viewer-shadow-panel-sm)}.grid-view-selector__option:hover{background:var(--viewer-surface-control-hover);border-color:var(--viewer-border-control-hover);transform:scale(1.05)}.grid-view-selector__option:active{transform:scale(.95)}.grid-view-selector__option--active{border-color:var(--viewer-border-control-active);background:var(--viewer-surface-control-active)}.grid-view-selector__option--disabled{opacity:.3;cursor:not-allowed}.grid-view-selector__option--disabled:hover{background:var(--viewer-surface-control);border-color:transparent;transform:none}.grid-view-selector__option-image{width:100%;height:100%;object-fit:contain}@media (max-width:768px){.grid-view-selector{display:block}.grid-view-selector__button{width:44px;height:44px}.grid-view-selector__thumbnail{width:28px;height:28px}.grid-view-selector__option{width:44px;height:44px}.grid-view-selector__menu{position:fixed;right:calc(136px + env(safe-area-inset-right, 0px));top:75%;transform:translateY(-30%);left:auto;bottom:auto;animation:gridMenuSlideInMobile .25s ease-out;background:var(--viewer-surface-panel-strong);overflow-y:auto;max-height:calc(100dvh - 100px);z-index:61}}@keyframes gridMenuSlideInMobile{0%{opacity:0;transform:translateY(-20%) translateX(-10px)}to{opacity:1;transform:translateY(-20%) translateX(0)}}@media (max-width:480px){.grid-view-selector__button{width:40px;height:40px}.grid-view-selector__thumbnail{width:24px;height:24px}.grid-view-selector__option{width:40px;height:40px}}.cell-radial-menu__portal.radial-menu-overlay{position:fixed;inset:0;z-index:99998;background:rgba(0,0,0,.08);pointer-events:auto}.radial-pie-menu{position:fixed;width:236px;height:236px;transform:translate(-50%,-50%) scale(.6);opacity:0;pointer-events:none;z-index:99999;filter:drop-shadow(0 18px 40px rgba(0,0,0,.5));transition:transform .2s cubic-bezier(.34,1.56,.64,1),opacity .2s ease-out}.radial-pie-menu.is-open{transform:translate(-50%,-50%) scale(1);opacity:1;pointer-events:auto}.radial-pie-menu.is-closing{transform:translate(-50%,-50%) scale(.6);opacity:0;pointer-events:none;transition:transform .16s ease-in,opacity .16s ease-in}.radial-menu-backdrop{position:absolute;inset:0;border-radius:50%;background:rgba(14,18,28,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);mask:radial-gradient(circle,transparent 52px,black 52.5px);-webkit-mask:radial-gradient(circle,transparent 52px,black 52.5px)}.radial-menu-center{position:absolute;top:50%;left:50%;width:104px;height:104px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;z-index:10;pointer-events:none;user-select:none}.video-id{color:#FDE100;font-family:system-ui,-apple-system,sans-serif;font-weight:800;font-size:24px}.pie-slice,.pie-slices-container{position:absolute;inset:0;pointer-events:none}.slice-content{position:absolute;top:50%;left:50%;width:64px;height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:rgba(255,255,255,.9);border-radius:50%;cursor:pointer;pointer-events:auto;z-index:5;transform:translate(-50%,-50%) rotate(var(--slice-angle)) translate(78px) rotate(calc(-1 * var(--slice-angle)));opacity:0;transition:transform .3s cubic-bezier(.34,1.56,.64,1),opacity .2s ease;transition-delay:calc(var(--slice-index) * 20ms)}.is-open .slice-content{opacity:1}.is-closing .slice-content{opacity:0;transition-delay:0s}.slice-content:before{content:"";position:absolute;inset:0;border-radius:50%;background:transparent;transition:background .18s ease;z-index:-1}.pie-slice:not(.is-disabled) .slice-content:hover:before{background:rgba(80,192,157,.18)}.pie-slice.is-active .slice-content:before{background:rgba(80,192,157,.32)}.pie-slice.is-disabled .slice-content{opacity:.32!important;cursor:not-allowed;pointer-events:none}.slice-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.slice-icon,.slice-icon svg{width:18px;height:18px}.slice-label{font-size:9px;font-weight:700;letter-spacing:.04em;line-height:1;white-space:nowrap}.pie-slice:not(.is-disabled) .slice-content:hover{color:#50C09D;text-shadow:0 0 12px rgba(80,192,157,.35)}.pie-slice.is-active .slice-content{color:#ffffff}.pie-dividers{width:100%;height:100%}.pie-dividers,.plink-root{position:absolute;inset:0;pointer-events:none}.plink-root{z-index:2;overflow:hidden;transform-origin:center center}.plink-box{position:absolute;box-sizing:border-box;border:2px solid rgb(var(--plink-rgb));border-radius:4px;box-shadow:0 0 0 1px rgba(0,0,0,.55),0 0 10px rgba(var(--plink-rgb),.5);transition:left 90ms linear,top 90ms linear,width 90ms linear,height 90ms linear}.plink-ring{position:absolute;left:50%;bottom:0;width:116%;height:26%;max-height:18px;transform:translate(-50%,50%);border:2px solid rgb(var(--plink-rgb));border-radius:50%;background:rgba(var(--plink-rgb),.18);box-shadow:0 0 0 1px rgba(0,0,0,.45);animation:plink-pulse 1.6s ease-in-out infinite}@keyframes plink-pulse{0%,to{opacity:.95}50%{opacity:.45}}@media (prefers-reduced-motion:reduce){.plink-box{transition:none}.plink-ring{animation:none}}