*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1e232d;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{width:100%;height:100%;margin:0;padding:0;overflow:hidden;background:#1e232d}#root{width:100%;height:100%;margin:0;padding:0}button{border-radius:6px;border:1px solid rgba(255,255,255,.25);padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#2b74ff;color:#fff;cursor:pointer;transition:all .2s ease}button:hover{background-color:#3d82ff;transform:translateY(-1px)}button:active{transform:translateY(0)}button:focus,button:focus-visible{outline:2px solid #4cafef;outline-offset:2px}.app-layout{width:100vw;height:100vh;display:flex;overflow:hidden;background:#000}.main-content{flex:1;display:flex;flex-direction:column;position:relative;overflow:hidden;width:100%}.scene-panel{flex:1;position:relative;background:#000;transition:margin .3s ease;width:100%;height:100%}.timeline-panel{position:absolute;bottom:0;left:0;right:0;background:#1a1a1a;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;transition:height .3s ease,margin .3s ease;width:100%;overflow:hidden}.timeline-resize-handle{position:absolute;top:-3px;left:0;right:0;height:6px;cursor:ns-resize;display:flex;align-items:center;justify-content:center;z-index:10}.timeline-resize-handle:hover .resize-line{background:#4cafef}.resize-line{width:60px;height:2px;background:#ffffff4d;border-radius:1px;transition:background .2s ease}.timeline-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1);min-height:40px}.timeline-header h3{margin:0;color:#4cafef;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.timeline-content{flex:1;overflow:hidden;position:relative}.timeline-collapsed{position:absolute;bottom:0;left:0;right:0;height:30px;background:#2a3441;border-top:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;transition:margin .3s ease;width:100%}.expand-timeline-btn{background:none;border:none;color:#4cafef;cursor:pointer;font-size:12px;padding:4px 12px;border-radius:4px;transition:background .2s ease}.expand-timeline-btn:hover{background:#4cafef1a}.control-panel{background:#2a3441;border-left:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;position:relative;transition:width .3s ease}.control-panel-resize-handle{position:absolute;top:0;left:-3px;bottom:0;width:6px;cursor:ew-resize;display:flex;align-items:center;justify-content:center;z-index:10}.control-panel-resize-handle .resize-line{width:2px;height:60px;background:#ffffff4d;border-radius:1px;transition:background .2s ease}.control-panel-resize-handle:hover .resize-line{background:#4cafef}.control-panel-header{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#0000004d;border-bottom:1px solid rgba(255,255,255,.1);min-height:40px}.control-panel-header h3{margin:0;color:#4cafef;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.control-panel-content{flex:1;overflow-y:auto;overflow-x:hidden}.control-panel-collapsed{position:absolute;top:0;right:0;bottom:0;width:30px;background:#2a3441;border-left:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;writing-mode:vertical-lr}.expand-control-btn{background:none;border:none;color:#4cafef;cursor:pointer;font-size:12px;padding:12px 4px;border-radius:4px;transition:background .2s ease;writing-mode:vertical-lr}.expand-control-btn:hover{background:#4cafef1a}@media (max-width: 768px){.control-panel{width:100vw!important;position:absolute;top:0;right:0;z-index:1000}.timeline-panel,.scene-panel{margin-right:0!important}}.timeline-panel-container{height:100%;display:flex;flex-direction:column;background:#1a1a1a;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.timeline-controls{display:flex;align-items:center;justify-content:space-between;padding:8px 16px;background:#0003;border-bottom:1px solid rgba(255,255,255,.1);gap:16px;flex-wrap:wrap}.playback-controls{display:flex;align-items:center;gap:8px}.control-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;padding:6px 10px;cursor:pointer;transition:all .2s ease;font-size:14px}.control-btn:hover{background:#fff3;transform:translateY(-1px)}.control-btn.active{background:#4cafef;border-color:#4cafef}.speed-control{display:flex;align-items:center;gap:6px;margin-left:8px}.speed-control label{font-size:12px;color:#aaa}.speed-control select{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;padding:4px 8px;font-size:12px}.timeline-info{display:flex;align-items:center;gap:8px;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-size:14px}.current-time{color:#4cafef;font-weight:600}.separator{color:#666}.total-time{color:#aaa}.zoom-controls{display:flex;align-items:center;gap:8px}.zoom-controls label{font-size:12px;color:#aaa}.zoom-display{display:flex;align-items:center;gap:8px;font-size:12px;color:#aaa}.timeline-container{flex:1;overflow:hidden;position:relative;width:100%}.timeline-tracks-container{position:relative;height:100%;width:100%;overflow:hidden}.time-ruler{position:relative;height:40px;background:#1a1a1a;border-bottom:1px solid #333;overflow:hidden;width:100%;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.time-tick,.time-tick.major,.time-tick.minor{position:absolute;top:0;height:100%;pointer-events:none}.tick-line{width:1px;height:8px;background:#ffffff4d}.tick-line.major{background:#fff;width:1px;height:22px;margin-top:0}.tick-line.minor{background:#ffffff4d;width:1px;height:12px;margin-top:10px}.tick-label{position:absolute;top:24px;font-size:11px;color:#fff;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;font-weight:500;white-space:nowrap;text-align:center;width:60px;transform:translate(-50%);pointer-events:none;text-shadow:0 0 2px rgba(0,0,0,.8);line-height:1.2;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.timeline-canvas{position:relative;height:calc(100% - 40px);cursor:crosshair;min-height:200px;width:100%;overflow:hidden;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.grid-lines{position:absolute;inset:0;pointer-events:none}.grid-line{position:absolute;top:0;bottom:0;width:1px;opacity:.25}.grid-line.major{background:#ffffff40}.grid-line.minor{background:#ffffff14}.current-time-indicator{position:absolute;top:0;bottom:0;z-index:100;pointer-events:none}.time-line{width:2px;height:100%;background:#fff;box-shadow:0 0 4px #fff9}.time-handle{position:absolute;top:-4px;left:-6px;width:14px;height:12px;background:#fff;border-radius:2px;border:1px solid #000}.timeline-marker{position:absolute;top:0;bottom:0;cursor:pointer;z-index:50}.marker-line{width:2px;height:100%;opacity:.8}.marker-label{position:absolute;top:2px;left:4px;background:#000c;color:#fff;padding:2px 6px;border-radius:3px;font-size:10px;white-space:nowrap;pointer-events:none}.timeline-marker.bookmark .marker-line{background:#4cafef}.timeline-marker.event .marker-line{background:#ff5050}.timeline-marker.sync .marker-line{background:#50ff50}.drone-tracks{position:relative;height:100%;overflow-y:auto;overflow-x:hidden;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.drone-track{position:absolute;cursor:pointer;border-radius:4px;margin:1px 0;transition:all .2s ease;display:flex;align-items:center;overflow:hidden}.drone-track:hover{background-color:#ffffff1a!important}.drone-track.selected{box-shadow:inset 0 0 0 2px #4cafef}.drone-track.dragging{opacity:.9;outline:1px dashed #4cafef;cursor:grabbing}.track-header{position:absolute;left:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:8px;z-index:10;background:#000000b3;padding:4px 8px;border-radius:4px}.track-color{width:12px;height:12px;border-radius:50%}.track-name{font-size:12px;font-weight:500;color:#fff}.track-duration{font-size:10px;color:#aaa;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace}.track-content{position:absolute;inset:8px 0}.flight-bar{height:100%;border-radius:2px;position:relative;overflow:hidden}.no-drones-message{display:flex;align-items:center;justify-content:center;height:100%;color:#aaa;font-style:italic}.marker-dialog-overlay{position:absolute;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.marker-dialog{background:#1a1a1a;border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:20px;min-width:300px}.marker-dialog h3{margin:0 0 12px;color:#4cafef}.marker-dialog p{margin:0 0 12px;color:#aaa;font-size:14px}.marker-dialog input{width:100%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;padding:8px 12px;margin-bottom:16px}.dialog-buttons{display:flex;gap:8px;justify-content:flex-end}.dialog-buttons button{padding:6px 16px;border-radius:4px;border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:all .2s ease}.dialog-buttons button:first-child{background:#4cafef;color:#fff}.dialog-buttons button:first-child:disabled{background:#666;cursor:not-allowed}.dialog-buttons button:last-child{background:transparent;color:#aaa}.dialog-buttons button:hover:not(:disabled){transform:translateY(-1px)}@media (max-width: 768px){.timeline-controls{flex-direction:column;gap:8px}.playback-controls{flex-wrap:wrap}}.stats-display{position:fixed;top:20px;left:20px;color:#fff;font-family:SF Mono,Monaco,Cascadia Code,Roboto Mono,Consolas,Courier New,monospace;background:#000000b3;padding:16px 20px;border-radius:8px;z-index:9;backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);min-width:180px}.stats-section{margin-bottom:16px}.stats-section:last-child{margin-bottom:0}.stats-section h3{margin:0 0 8px;font-size:12px;font-weight:600;color:#4cafef;text-transform:uppercase;letter-spacing:.5px}.stats-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px;font-size:13px}.stats-row:last-child{margin-bottom:0}.label{color:#ccc;font-weight:500}.value{color:#fff;font-weight:400;font-variant-numeric:tabular-nums}.control-panel-container{height:100%;display:flex;flex-direction:column;background:#1a1a1a;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.panel-section{border-bottom:1px solid rgba(255,255,255,.1)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;cursor:pointer;transition:background-color .2s ease;user-select:none}.section-header:hover{background:#ffffff0d}.section-header.active{background:#ffffff1a}.section-title{display:flex;align-items:center;gap:8px;flex:1}.section-icon{font-size:16px}.section-name{font-weight:600;font-size:14px}.section-count{color:#aaa;font-size:12px;margin-left:4px}.collapse-btn{background:none;border:none;color:#aaa;cursor:pointer;font-size:12px;padding:4px;border-radius:3px;transition:all .2s ease}.collapse-btn:hover{color:#4cafef;background:#4cafef1a}.section-content{padding:0;overflow:hidden}.no-data-message{padding:20px 16px;text-align:center;color:#aaa}.no-data-message p{margin:0 0 4px;font-size:14px}.no-data-message small{font-size:12px;opacity:.7}.quick-actions{margin-top:auto}.quick-action-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:16px}.quick-action-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:6px;padding:8px 12px;cursor:pointer;transition:all .2s ease;font-size:12px;text-align:center}.quick-action-btn:hover{background:#fff3;transform:translateY(-1px)}.timeline-summary{background:#0003;padding:16px;margin-top:auto}.timeline-summary h4{margin:0 0 12px;color:#4cafef;font-size:14px;font-weight:600}.summary-stats{display:flex;flex-direction:column;gap:6px}.stat-item{display:flex;justify-content:space-between;font-size:12px}.stat-label{color:#aaa}.stat-value{color:#fff;font-weight:500}.scene-controls{padding:16px}.control-group{margin-bottom:20px}.control-group h4{margin:0 0 8px;color:#4cafef;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.control-item{display:flex;align-items:center;gap:8px;margin-bottom:6px;cursor:pointer;font-size:13px}.control-item input[type=checkbox],.control-item input[type=radio]{margin:0}.control-label{color:#fff;user-select:none}.radio-group{display:flex;flex-direction:column;gap:4px}.scale-control{display:flex;align-items:center;gap:8px;margin-bottom:8px}.scale-slider{flex:1}.scale-value{font-size:12px;color:#aaa;min-width:30px}.scale-presets{display:flex;gap:4px}.preset-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;padding:4px 8px;cursor:pointer;transition:all .2s ease;font-size:11px}.preset-btn:hover{background:#fff3}.preset-btn.active{background:#4cafef;border-color:#4cafef}.sync-controls{padding:16px}.selection-buttons{display:flex;gap:8px;margin-bottom:8px}.select-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;padding:4px 8px;cursor:pointer;transition:all .2s ease;font-size:11px}.select-btn:hover{background:#fff3}.drone-list{max-height:150px;overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:8px}.drone-item{display:flex;align-items:center;gap:8px;margin-bottom:6px;cursor:pointer;padding:4px;border-radius:3px;transition:background-color .2s ease}.drone-color{width:10px;height:10px;border-radius:50%}.drone-name{flex:1;font-size:12px}.drone-duration{font-size:10px;color:#aaa}.marker-selection{margin-top:8px}.marker-select{width:100%;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:4px;padding:6px 8px;font-size:12px}.sync-btn{width:100%;border-radius:4px;padding:8px 12px;cursor:pointer;transition:all .2s ease;font-size:12px;margin-bottom:6px}.sync-btn.primary{background:#4cafef;border:1px solid #4cafef;color:#fff}.sync-btn.primary:hover:not(:disabled){background:#3d82ff;transform:translateY(-1px)}.sync-btn.primary:disabled{background:#666;border-color:#666;cursor:not-allowed}.sync-btn.secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fff}.sync-btn.secondary:hover{background:#fff3}.sync-options{margin-top:8px}.integrated-drone-manager{padding:16px}.error-message{display:flex;align-items:center;gap:8px;padding:12px;background:#ff50501a;border:1px solid rgba(255,80,80,.3);border-radius:6px;color:#ff5050;margin-bottom:16px;font-size:14px}.clear-error{background:none;border:none;color:#ff5050;cursor:pointer;font-size:18px;padding:0;margin-left:auto}.upload-section{margin-bottom:20px}.upload-area{border:2px dashed rgba(76,175,239,.5);border-radius:8px;padding:20px;text-align:center;background:#4cafef0d;transition:all .3s ease;cursor:pointer;position:relative}.upload-area:hover{border-color:#4cafef;background:#4cafef1a}.upload-icon{font-size:32px;margin-bottom:8px;opacity:.8}.upload-area p{margin:0 0 12px;color:#fff;font-size:14px}.file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-button{display:inline-block;padding:8px 16px;background:#4cafef;color:#fff;border-radius:4px;font-weight:500;transition:all .2s ease;cursor:pointer;font-size:12px}.upload-button:hover{background:#3d82ff;transform:translateY(-1px)}.drone-list-section{margin-top:16px}.drone-list-section h4{margin:0 0 8px;color:#4cafef;font-size:14px;font-weight:600}.drone-list{max-height:200px;overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#0003}.drone-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.05);transition:background-color .2s ease}.drone-item:last-child{border-bottom:none}.drone-item:hover{background:#ffffff0d}.drone-item.active{background:#4cafef33;border-left:3px solid #4cafef}.drone-info{display:flex;align-items:center;gap:8px;flex:1}.drone-color-indicator{width:10px;height:10px;border-radius:50%;border:1px solid rgba(255,255,255,.3)}.drone-name{color:#fff;font-weight:500;font-size:12px;flex:1}.drone-frames{color:#aaa;font-size:10px;margin-right:8px}.drone-controls{display:flex;gap:4px}.drone-controls button{background:none;border:none;padding:2px;cursor:pointer;border-radius:3px;transition:background-color .2s ease;font-size:12px}.drone-controls button:hover{background:#ffffff1a}.visibility-btn.hidden{opacity:.5}.select-btn.selected{color:#4cafef}.remove-btn:hover{background:#ff505033}.loading-indicator{display:flex;align-items:center;gap:8px;padding:12px;color:#aaa;justify-content:center;font-size:12px}.spinner{width:16px;height:16px;border:2px solid rgba(76,175,239,.3);border-top:2px solid #4cafef;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 768px){.quick-action-grid{grid-template-columns:1fr}.selection-buttons{flex-direction:column}}.analytics-section{padding:16px;text-align:center}.analytics-btn{width:100%;background:linear-gradient(135deg,#4cafef,#3d82ff);border:none;color:#fff;border-radius:8px;padding:12px 16px;cursor:pointer;font-weight:600;font-size:14px;transition:all .3s ease;margin-bottom:8px;box-shadow:0 2px 8px #4cafef4d}.analytics-btn:hover{background:linear-gradient(135deg,#3d82ff,#4cafef);transform:translateY(-2px);box-shadow:0 4px 12px #4cafef66}.analytics-btn:active{transform:translateY(0)}.analytics-btn:disabled{background:#333;color:#666;cursor:not-allowed;transform:none;box-shadow:none}.analytics-btn:disabled:hover{background:#333;transform:none;box-shadow:none}.analytics-description{color:#aaa;font-size:11px;margin:0;line-height:1.3}html,body{margin:0;padding:0;overflow:hidden;width:100%;height:100%}.app{width:100vw;height:100vh;margin:0;padding:0;overflow:hidden;position:relative}.loading-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.loading-spinner{width:40px;height:40px;border:4px solid rgba(76,175,239,.3);border-top:4px solid #4cafef;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:16px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error-screen{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;text-align:center;padding:20px}.error-screen h2{color:#ff5050;margin-bottom:16px}.error-screen p{margin-bottom:8px;opacity:.8}.loading-overlay{position:fixed;inset:0;background:#000000b3;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:1000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.error-overlay{position:fixed;inset:0;background:#000c;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.error-content{background:#ff50501a;border:1px solid rgba(255,80,80,.3);border-radius:8px;padding:24px;color:#fff;text-align:center;max-width:400px}.error-content h3{color:#ff5050;margin-bottom:12px}@media (max-width: 768px){.app{flex-direction:column}}
