@charset "UTF-8";.light{--background: #F3F3F6;--text: #1A1C1E;--border: #C6C6C9;--highlight: #fff;--track: #86878A;--link: #2872E3;--card-bg: #fff;--accent: #FFD700;--log-bg: #e0e0e0}.dark{--background: #1A1C1E;--text: #fff;--border: #37393C;--highlight: #000;--track: #37393C;--link: #87A9FF;--card-bg: #2A2C30;--accent: #FFD700;--log-bg: #111}*{margin:0;padding:0;box-sizing:border-box;font-variant-ligatures:none}:root{--track-fill: #fff;--mid: #757575;font-family:Space Mono,monospace}#root{width:100vw;height:100vh}h1,h2,h3,h4,h5,h6{font-weight:400}li{list-style:none}input,textarea{font-family:Space Mono,monospace;background:none;color:var(--text);border:none;outline:none;font-size:14px;resize:none;-webkit-user-select:text;user-select:text}input::placeholder,textarea::placeholder{-webkit-user-select:none;user-select:none}textarea{width:100%;background:var(--highlight);border:1px solid var(--border);border-radius:8px;font-size:14px;padding:10px 15px;margin-bottom:10px}textarea.active{border-color:var(--text)}[role=button]{cursor:pointer}button{font-family:Space Mono,monospace;background:none;color:var(--text);border:none;font-size:14px;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:5px}button:focus{outline:none}button[disabled]{opacity:.5;cursor:not-allowed}button .icon{display:block}.button{padding:8px 10px;border-radius:6px;display:flex;align-items:center;justify-content:center;gap:5px}.button.inactive{opacity:.3;pointer-events:none}.iconButton{padding:8px;border-radius:50%;transition:background .2s}.iconButton:hover{background:var(--border)}.icon{font-family:Material Symbols Outlined;font-weight:300;line-height:1}main{max-width:100%;height:100vh;display:flex;flex-direction:column;margin:0 auto;overflow:hidden;background:var(--background);color:var(--text)}.appHeader{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-bottom:1px solid var(--border);background:var(--card-bg)}.appHeader h1{font-size:18px;font-weight:700}.modeSwitch{display:flex;gap:10px}.tab{padding:8px 16px;border-radius:20px;border:1px solid transparent;transition:all .2s}.tab:hover{background:var(--border)}.tab.active{background:var(--accent);color:#000;font-weight:700}.monitorLayout{display:flex;flex:1;overflow:hidden}.feedSection{flex:1;border-right:1px solid var(--border);display:flex;flex-direction:column;background:#000}.dashboardSection{flex:1;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:20px}.cameraMonitor{display:flex;flex-direction:column;height:100%;align-items:center;justify-content:center;position:relative}.cameraFrame{width:100%;height:100%;position:relative;display:flex;align-items:center;justify-content:center;background:#000}.cameraFrame video{width:100%;height:100%;object-fit:contain}.cameraOverlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#00000080}.liveIndicator{position:absolute;top:20px;left:20px;background:#f00c;color:#fff;padding:5px 10px;border-radius:4px;font-size:12px;display:flex;align-items:center;gap:5px;z-index:10}.liveIndicator .dot{width:8px;height:8px;background:#fff;border-radius:50%;animation:blink 1s infinite}@keyframes blink{50%{opacity:0}}.statusLine{position:absolute;bottom:0;left:0;right:0;background:#000000b3;color:var(--text);padding:5px 10px;font-size:12px;text-align:center;z-index:10}.startButton{background:var(--link);color:#fff;font-size:16px;padding:15px 30px}.stopButton{position:absolute;bottom:40px;right:40px;background:#f00c;color:#fff;z-index:10}.statsGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:15px;margin-bottom:2rem}.statCard{background:var(--card-bg);border:1px solid var(--border);padding:15px;border-radius:8px;text-align:center}.statCard h3{font-size:12px;text-transform:uppercase;color:var(--mid);margin-bottom:10px}.statValue{font-size:24px;font-weight:700}.statValue.text{font-size:16px;line-height:1.2;overflow-wrap:break-word}.statLabel{font-size:11px;color:var(--mid)}.progressBarContainer{height:6px;background:var(--border);border-radius:3px;margin:8px 0;overflow:hidden}.progressBarFill{height:100%;background:var(--link);transition:width .3s ease}.chartsGrid{display:grid;grid-template-columns:1fr 1fr;gap:20px;height:250px}.chartContainer{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:15px;display:flex;flex-direction:column}.chartContainer h4{font-size:14px;margin-bottom:10px}.chartWrapper{flex:1;position:relative;min-height:150px}.noData{height:100%;display:flex;align-items:center;justify-content:center;color:var(--mid);font-size:12px}.bottomRow{display:flex;gap:20px;flex:1;min-height:0}.observationsSection{background:var(--card-bg);border:1px solid var(--border);padding:15px;border-radius:8px;flex:1;overflow:auto}.observationsSection h4{margin-bottom:10px;font-size:14px}.observationsList{display:flex;flex-direction:column;gap:8px}.observationsList li{font-size:13px;padding:8px;background:var(--background);border-radius:4px}.observationsList li.empty{background:none;color:var(--mid);font-style:italic}.logsSection{background:var(--log-bg);border:1px solid var(--border);padding:15px;border-radius:8px;flex:1;display:flex;flex-direction:column;font-family:Courier New,Courier,monospace}.logsSection h4{margin-bottom:10px;font-size:14px}.logsList{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;font-size:11px}.logItem{padding:2px 0;border-bottom:1px solid rgba(128,128,128,.1)}.logItem.dimmed{color:var(--mid)}.modalOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modalContent{background:var(--card-bg);padding:20px;border-radius:12px;width:600px;max-width:90vw;border:1px solid var(--border);box-shadow:0 10px 25px #00000080;display:flex;flex-direction:column;max-height:90vh}.settingsScroll{overflow-y:auto;flex:1;padding-right:10px}.modalHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.modalHeader h2{font-size:18px;font-weight:700}.settingsSection{margin-bottom:25px;border-bottom:1px solid var(--border);padding-bottom:15px}.settingsSection:last-child{border-bottom:none}.settingsSection h3{font-size:14px;font-weight:700;color:var(--accent);margin-bottom:15px;text-transform:uppercase}.formGroup{margin-bottom:20px}.formGroup label{display:block;margin-bottom:8px;font-weight:700;font-size:14px}.textInput{width:100%;background:var(--highlight);border:1px solid var(--border);border-radius:8px;padding:10px 15px;color:var(--text)}.inputWithBtn{display:flex;gap:10px}.hint{font-size:12px;color:var(--mid);margin-top:5px}.modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:10px;border-top:1px solid var(--border)}.saveButton{background:var(--accent);color:#000;font-weight:700}.top{display:flex;min-height:50vh;border-bottom:1px solid var(--border)}.tools{display:flex;gap:20px;flex:1;overflow:hidden;transition:opacity .2s}.tools.inactive{opacity:.2;pointer-events:none}.collapseButton{border-left:1px solid var(--border);width:20px;display:flex;align-items:center;justify-content:center}.collapseButton .icon{font-size:24px;color:var(--text)}.modeSelector{display:flex;flex-direction:column;gap:30px;overflow:hidden;width:250px}.modeSelector.hide{width:0}.modeSelector>div{padding:20px 15px}.modeSelector>div:first-child{flex:1;overflow:auto}.modeSelector>div:last-child{border-top:1px solid var(--border)}.modeSelector h2{font-size:14px;color:var(--text);white-space:nowrap;margin-bottom:15px}.modeSelector.inactive{opacity:.2;pointer-events:none}.modeList{flex-direction:column;display:flex;gap:10px}.modeList .button{justify-content:flex-start;gap:12px;transition:background .2s;background:none;outline:1px solid var(--border);white-space:nowrap;border-radius:8px;min-width:fit-content;width:100%}.modeList .button:hover{background:var(--border)}.modeList .button.active{outline:2px solid var(--text)}.modeList+textarea{margin-top:10px}.generateButton{padding:12px 20px;background:var(--highlight);width:100%;border:1px solid var(--border)}.backButton{border-top:none!important}.backButton button{font-size:14px}.output{flex:1;padding:20px 15px;overflow:auto;position:relative}.output:hover .sentence{opacity:.5}.output time{color:var(--link);padding:2px 5px;border-radius:4px;font-size:inherit;text-decoration:underline}.output .sentence{font-size:18px;line-height:1.8;display:inline;cursor:pointer;transition:opacity .2s}.output .sentence:hover{opacity:1}.output .sentence time{margin-right:8px}.output ul{display:flex;flex-direction:column;gap:5px}.output ul button{font-size:15px;display:flex;gap:15px;text-align:left;padding:10px 15px;border-radius:6px;width:100%}.output ul button:hover{background:var(--border)}.output ul button p{font-size:14px}.modeTable table{width:100%;border-collapse:collapse}.modeTable th{text-align:left}.modeTable th,.modeTable td{padding:10px}.modeTable tr{border-bottom:1px solid var(--border);display:table-row}.modeTable thead tr:hover{background:transparent}.loading span{display:inline-block;animation:loading steps(4,jump-none) 777ms infinite;width:0;overflow:hidden;vertical-align:bottom}@keyframes loading{to{width:30px}}.lineChart{width:100%;height:100%}.lineChart path{fill:none;stroke:var(--link);stroke-width:2}.lineChart circle{fill:var(--background);stroke:var(--text);stroke-width:2}.axisLabels text{text-anchor:middle;font-size:12px;fill:var(--text)}.axisTitle{font-size:12px;fill:var(--text)}.dataPoint text{fill:var(--text);font-size:12px;text-anchor:middle}.timeLabels text{cursor:pointer;fill:var(--link);text-decoration:underline}video{max-height:50vh;width:100%;height:100%;margin:0 auto}.videoPlayer{flex:1;background:#000;display:flex;align-items:stretch;flex-direction:column;justify-content:center;font-size:0;position:relative;-webkit-user-select:none;user-select:none;border-left:1px solid var(--border)}.videoPlayer:has(.timecodeMarker:hover) .videoCaption{opacity:0}.videoPlayer>div:first-child{display:flex;flex:1}.emptyVideo{height:50vh;color:#fff;display:flex;align-items:center;justify-content:center;font-size:16px}.emptyVideo p{max-width:500px;text-align:center}.emptyVideo p span{display:inline-block;rotate:-45deg}.videoCaption{background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 10px #00000080;position:absolute;bottom:80px;text-align:center;padding:10px;color:#fff;max-width:720px;font-size:15px;margin-inline:30px;left:50%;translate:-50% 0;width:-webkit-fill-available;border-radius:5px;transition:opacity .2s}.videoControls{font-size:12px;position:relative;background:var(--background)}.videoControls:hover .videoScrubber,.videoControls:hover .timecodeMarkerTick{scale:1 2.3}.videoScrubber{height:5px;transform-origin:bottom;transition:all .2s;overflow:hidden}.videoScrubber input{position:relative;top:-8px;height:5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;background-image:linear-gradient(to right,var(--track-fill) 0%,var(--track-fill) var(--pct),var(--track) var(--pct),var(--track) 100%)}.videoScrubber input::-webkit-slider-thumb{opacity:0}.videoTime{display:flex;justify-content:space-between;align-items:center;padding:15px;font-size:15px;border-top:1px solid var(--border)}.videoTime button{font-size:20px}.timecodeList{overflow:auto;padding:10px 20px}.timecodeList td{padding:10px 5px}.timecodeList button,.timecodeList button:hover{color:var(--link)}.timecodeMarkers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.timecodeMarker{position:absolute;top:0;width:10px;background:#00000003;translate:-4px 0}.timecodeMarker:hover .timecodeMarkerLabel{opacity:1}.timecodeMarkerTick{height:5px;pointer-events:auto;cursor:pointer;transform-origin:bottom;transition:all .2s;background:#00000003;overflow:hidden}.timecodeMarkerTick>div{width:3px;height:100%;background:var(--link);translate:3px 0}.timecodeMarkerLabel{background:#000c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 10px #00000080;opacity:0;display:flex;flex-direction:column;gap:5px;font-size:11px;transition:opacity .1s;pointer-events:none;position:absolute;top:0;translate:0 calc(-100% - 15px);z-index:99;padding:8px;border-radius:5px;width:max-content;max-width:200px;color:var(--mid)}.timecodeMarkerLabel.right{right:0}.timecodeMarkerLabel p{color:var(--text);font-size:13px}
