.cesium-svgPath-svg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}.cesium-button{display:inline-block;position:relative;background:#303336;border:1px solid #444;color:#edffff;fill:#edffff;border-radius:4px;padding:5px 12px;margin:2px 3px;cursor:pointer;overflow:hidden;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.cesium-button:focus{color:#fff;fill:#fff;border-color:#ea4;outline:none}.cesium-button:hover{color:#fff;fill:#fff;background:#48b;border-color:#aef;box-shadow:0 0 8px #fff}.cesium-button:active{color:#000;fill:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff}.cesium-button:disabled,.cesium-button-disabled,.cesium-button-disabled:focus,.cesium-button-disabled:hover,.cesium-button-disabled:active{background:#303336;border-color:#444;color:#646464;fill:#646464;box-shadow:none;cursor:default}.cesium-button option{background-color:#000;color:#eee}.cesium-button option:disabled{color:#777}.cesium-button input,.cesium-button label{cursor:pointer}.cesium-button input{vertical-align:sub}.cesium-toolbar-button{box-sizing:border-box;width:32px;height:32px;border-radius:14%;padding:0;vertical-align:middle;z-index:0}.cesium-performanceDisplay-defaultContainer{position:absolute;top:50px;right:10px;text-align:right}.cesium-performanceDisplay{background-color:#282828b3;padding:7px;border-radius:5px;border:1px solid #444;font:700 12px sans-serif}.cesium-performanceDisplay-fps{color:#e52}.cesium-performanceDisplay-throttled{color:#a42}.cesium-performanceDisplay-ms{color:#de3}.cesium-animation-theme{visibility:hidden;display:block;position:absolute;z-index:-100}.cesium-animation-themeNormal{color:#222}.cesium-animation-themeHover{color:#4488b0}.cesium-animation-themeSelect{color:#242}.cesium-animation-themeDisabled{color:#333}.cesium-animation-themeKnob{color:#222}.cesium-animation-themePointer{color:#2e2}.cesium-animation-themeSwoosh{color:#8ac}.cesium-animation-themeSwooshHover{color:#aef}.cesium-animation-svgText{fill:#edffff;font-family:Sans-Serif;font-size:15px;text-anchor:middle}.cesium-animation-blank{fill:#000;fill-opacity:.01;stroke:none}.cesium-animation-rectButton{cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.cesium-animation-rectButton .cesium-animation-buttonGlow{fill:#fff;stroke:none;display:none}.cesium-animation-rectButton:hover .cesium-animation-buttonGlow{display:block}.cesium-animation-rectButton .cesium-animation-buttonPath{fill:#edffff}.cesium-animation-rectButton .cesium-animation-buttonMain{stroke:#444;stroke-width:1.2}.cesium-animation-rectButton:hover .cesium-animation-buttonMain{stroke:#aef}.cesium-animation-rectButton:active .cesium-animation-buttonMain{fill:#abd6ff}.cesium-animation-buttonDisabled{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.cesium-animation-buttonDisabled .cesium-animation-buttonMain{stroke:#555}.cesium-animation-buttonDisabled .cesium-animation-buttonPath{fill:#818181}.cesium-animation-buttonDisabled .cesium-animation-buttonGlow{display:none}.cesium-animation-buttonToggled .cesium-animation-buttonGlow{display:block;fill:#2e2}.cesium-animation-buttonToggled .cesium-animation-buttonMain{stroke:#2e2}.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow{fill:#fff}.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain{stroke:#2e2}.cesium-animation-shuttleRingG,.cesium-animation-shuttleRingPointer,.cesium-animation-shuttleRingPausePointer{cursor:pointer}.cesium-animation-shuttleRingBack{fill:#181818;fill-opacity:.8;stroke:#333;stroke-width:1.2}.cesium-animation-shuttleRingSwoosh line{stroke:#8ac;stroke-width:3;stroke-opacity:.2;stroke-linecap:round}.cesium-animation-knobOuter{cursor:pointer;stroke:#444;stroke-width:1.2}.cesium-animation-knobInner{cursor:pointer}.cesium-baseLayerPicker-selected{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.cesium-baseLayerPicker-dropDown{display:block;position:absolute;box-sizing:content-box;top:auto;right:0;width:320px;max-height:500px;margin-top:5px;background-color:#262626bf;border:1px solid #444;padding:6px;overflow:auto;border-radius:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;transform:translateY(-20%);visibility:hidden;opacity:0;transition:visibility 0s .2s,opacity .2s ease-in,transform .2s ease-in}.cesium-baseLayerPicker-dropDown-visible{transform:translate(0);visibility:visible;opacity:1;transition:opacity .2s ease-out,transform .2s ease-out}.cesium-baseLayerPicker-sectionTitle{display:block;font-family:sans-serif;font-size:16pt;text-align:left;color:#edffff;margin-bottom:4px}.cesium-baseLayerPicker-choices{margin-bottom:5px}.cesium-baseLayerPicker-categoryTitle{color:#edffff;font-size:11pt}.cesium-baseLayerPicker-choices{display:block;border:1px solid #888;border-radius:5px;padding:5px 0}.cesium-baseLayerPicker-item{display:inline-block;vertical-align:top;margin:2px 5px;width:64px;text-align:center;cursor:pointer}.cesium-baseLayerPicker-itemLabel{display:block;font-family:sans-serif;font-size:8pt;text-align:center;vertical-align:middle;color:#edffff;cursor:pointer;word-wrap:break-word}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel,.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel{text-decoration:underline}.cesium-baseLayerPicker-itemIcon{display:inline-block;position:relative;width:inherit;height:auto;background-size:100% 100%;border:solid 1px #444;border-radius:9px;color:#edffff;margin:0;padding:0;cursor:pointer;box-sizing:border-box}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon{border-color:#fff;box-shadow:0 0 8px #fff,0 0 8px #fff}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel{color:#bdecf8}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon{border:double 4px rgb(189,236,248)}.cesium-widget{font-family:sans-serif;font-size:16px;overflow:hidden;display:block;position:relative;top:0;left:0;width:100%;height:100%}.cesium-widget,.cesium-widget canvas{width:100%;height:100%;touch-action:none}.cesium-widget-credits{display:block;position:absolute;bottom:0;left:0;color:#fff;font-size:10px;text-shadow:0px 0px 2px #000000;padding-right:5px}.cesium-widget-errorPanel{position:absolute;inset:0;text-align:center;background:#000000b3;z-index:99999}.cesium-widget-errorPanel:before{display:inline-block;vertical-align:middle;height:100%;content:""}.cesium-widget-errorPanel-content{width:75%;max-width:500px;display:inline-block;text-align:left;vertical-align:middle;border:1px solid #510c00;border-radius:7px;background-color:#f0d9d5;font-size:14px;color:#510c00}.cesium-widget-errorPanel-content.expanded{max-width:75%}.cesium-widget-errorPanel-header{font-size:18px;font-family:Open Sans,Verdana,Geneva,sans-serif;background:#d69d93;border-bottom:2px solid #510c00;border-radius:3px 3px 0 0;padding:15px}.cesium-widget-errorPanel-scroll{overflow:auto;font-family:Open Sans,Verdana,Geneva,sans-serif;white-space:pre-wrap;padding:0 15px;margin:10px 0 20px}.cesium-widget-errorPanel-buttonPanel{padding:0 15px;margin:10px 0 20px;text-align:right}.cesium-widget-errorPanel-buttonPanel button{border-color:#510c00;background:#d69d93;color:#202020;margin:0}.cesium-widget-errorPanel-buttonPanel button:focus{border-color:#510c00;background:#f0d9d5;color:#510c00}.cesium-widget-errorPanel-buttonPanel button:hover{border-color:#510c00;background:#f0d9d5;color:#510c00}.cesium-widget-errorPanel-buttonPanel button:active{border-color:#510c00;background:#b17b72;color:#510c00}.cesium-widget-errorPanel-more-details{text-decoration:underline;cursor:pointer}.cesium-widget-errorPanel-more-details:hover{color:#2b0700}.cesium-cesiumInspector{border-radius:5px;transition:width ease-in-out .25s;background:#303336cc;border:1px solid #444;color:#edffff;display:inline-block;position:relative;padding:4px 12px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden}.cesium-cesiumInspector-button{text-align:center;font-size:11pt}.cesium-cesiumInspector-visible .cesium-cesiumInspector-button{border-bottom:1px solid #aaa;padding-bottom:3px}.cesium-cesiumInspector input:enabled,.cesium-cesiumInspector-button{cursor:pointer}.cesium-cesiumInspector-visible{width:185px;height:auto}.cesium-cesiumInspector-hidden{width:122px;height:17px}.cesium-cesiumInspector-sectionContent{max-height:600px}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent{max-height:0;padding:0!important;overflow:hidden}.cesium-cesiumInspector-dropDown{margin:5px 0;font-family:sans-serif;font-size:10pt;width:185px}.cesium-cesiumInspector-frustumStatistics{padding:5px;background-color:#505050bf}.cesium-cesiumInspector-pickButton{background-color:#0000004d;border:1px solid #444;color:#edffff;border-radius:5px;padding:3px 7px;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;margin:0 auto}.cesium-cesiumInspector-pickButton:focus{outline:none}.cesium-cesiumInspector-pickButton:active,.cesium-cesiumInspector-pickButtonHighlight{color:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff}.cesium-cesiumInspector-center{text-align:center}.cesium-cesiumInspector-sectionHeader{font-weight:700;font-size:10pt;margin:0;cursor:pointer}.cesium-cesiumInspector-pickSection{border:1px solid #aaa;border-radius:5px;padding:3px;margin-bottom:5px}.cesium-cesiumInspector-sectionContent{margin-bottom:10px;transition:max-height .25s}.cesium-cesiumInspector-tileText{padding-bottom:10px;border-bottom:1px solid #aaa}.cesium-cesiumInspector-relativeText{padding-top:10px}.cesium-cesiumInspector-sectionHeader:before{margin-right:5px;content:"-";width:1ch;display:inline-block}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader:before{content:"+"}ul.cesium-cesiumInspector-statistics{margin:0;padding-top:3px;padding-bottom:3px}ul.cesium-cesiumInspector-statistics+ul.cesium-cesiumInspector-statistics{border-top:1px solid #aaa}.cesium-cesiumInspector-slider{margin-top:5px}.cesium-cesiumInspector-slider input[type=number]{text-align:left;background-color:#222;outline:none;border:1px solid #444;color:#edffff;width:100px;border-radius:3px;padding:1px;margin-left:10px;cursor:auto}.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button,.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cesium-cesiumInspector-slider input[type=range]{margin-left:5px;vertical-align:middle}.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor{display:none}.cesium-cesiumInspector-styleEditor{padding:10px;border-radius:5px;background:#303336cc;border:1px solid #444}.cesium-cesiumInspector-styleEditor textarea{width:100%;height:300px;background:transparent;color:#edffff;border:none;padding:0;white-space:pre;overflow-wrap:normal;overflow-x:auto}.cesium-3DTilesInspector{width:300px;pointer-events:all}.cesium-3DTilesInspector-statistics{font-size:11px}.cesium-3DTilesInspector-disabledElementsInfo{margin:5px 0 0;padding:0 0 0 20px;color:#eed202}.cesium-3DTilesInspector div,.cesium-3DTilesInspector input[type=range]{width:100%;box-sizing:border-box}.cesium-cesiumInspector-error{color:#ff9e9e;overflow:auto}.cesium-3DTilesInspector .cesium-cesiumInspector-section{margin-top:3px}.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader+.cesium-cesiumInspector-show{border-top:1px solid white}input.cesium-cesiumInspector-url{overflow:hidden;white-space:nowrap;overflow-x:scroll;background-color:transparent;color:#fff;outline:none;border:none;height:1em;width:100%}.cesium-cesiumInspector .field-group{display:table}.cesium-cesiumInspector .field-group>label{display:table-cell;font-weight:700}.cesium-cesiumInspector .field-group>.field{display:table-cell;width:100%}.cesium-VoxelInspector{width:300px;pointer-events:all}.cesium-VoxelInspector div,.cesium-VoxelInspector input[type=range]{width:100%;box-sizing:border-box}.cesium-VoxelInspector .cesium-cesiumInspector-section{margin-top:3px}.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader+.cesium-cesiumInspector-show{border-top:1px solid white}.cesium-button.cesium-fullscreenButton,.cesium-button.cesium-vrButton{display:block;width:100%;height:100%;margin:0;border-radius:0}.cesium-viewer-geocoderContainer .cesium-geocoder-input{border:solid 1px #444;background-color:#282828b3;color:#fff;display:inline-block;vertical-align:middle;width:0;height:32px;margin:0;padding:0 32px 0 0;border-radius:0;box-sizing:border-box;transition:width ease-in-out .25s,background-color .2s ease-in-out;-webkit-appearance:none}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input{border-color:#aef;box-shadow:0 0 8px #fff}.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus{border-color:#ea4;background-color:#0f0f0fe6;box-shadow:none;outline:none}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input,.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus,.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide{padding-left:4px;width:250px}.cesium-viewer-geocoderContainer .search-results{position:absolute;background-color:#000;color:#eee;overflow-y:auto;opacity:.8;width:100%}.cesium-viewer-geocoderContainer .search-results ul{list-style-type:none;margin:0;padding:0}.cesium-viewer-geocoderContainer .search-results ul li{font-size:14px;padding:3px 10px}.cesium-viewer-geocoderContainer .search-results ul li:hover{cursor:pointer}.cesium-viewer-geocoderContainer .search-results ul li.active{background:#48b}.cesium-geocoder-searchButton{background-color:#303336;display:inline-block;position:absolute;cursor:pointer;width:32px;top:1px;right:1px;height:30px;vertical-align:middle;fill:#edffff}.cesium-geocoder-searchButton:hover{background-color:#48b}.cesium-infoBox{display:block;position:absolute;top:50px;right:0;width:40%;max-width:480px;background:#262626f2;color:#edffff;border:1px solid #444;border-right:none;border-top-left-radius:7px;border-bottom-left-radius:7px;box-shadow:0 0 10px 1px #000;transform:translate(100%);visibility:hidden;opacity:0;transition:visibility 0s .2s,opacity .2s ease-in,transform .2s ease-in}.cesium-infoBox-visible{transform:translate(0);visibility:visible;opacity:1;transition:opacity .2s ease-out,transform .2s ease-out}.cesium-infoBox-title{display:block;height:20px;padding:5px 30px 5px 25px;background:#545454;border-top-left-radius:7px;text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;box-sizing:content-box}.cesium-infoBox-bodyless .cesium-infoBox-title{border-bottom-left-radius:7px}button.cesium-infoBox-camera{display:block;position:absolute;top:4px;left:4px;width:22px;height:22px;background:transparent;border-color:transparent;border-radius:3px;padding:0 5px;margin:0}button.cesium-infoBox-close{display:block;position:absolute;top:5px;right:5px;height:20px;background:transparent;border:none;border-radius:2px;font-weight:700;font-size:16px;padding:0 5px;margin:0;color:#edffff}button.cesium-infoBox-close:focus{background:#ee880070;outline:none}button.cesium-infoBox-close:hover{background:#888;color:#000}button.cesium-infoBox-close:active{background:#a00;color:#000}.cesium-infoBox-bodyless .cesium-infoBox-iframe{display:none}.cesium-infoBox-iframe{border:none;width:100%;width:calc(100% - 2px)}span.cesium-sceneModePicker-wrapper{display:inline-block;position:relative;margin:0 3px}.cesium-sceneModePicker-visible{visibility:visible;opacity:1;transition:opacity .25s linear}.cesium-sceneModePicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s .25s,opacity .25s linear}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none{display:none}.cesium-sceneModePicker-slide-svg{transition:left 2s;top:0;left:0}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D{margin:0 0 3px}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D{left:100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView{left:200%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D{left:-200%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D{left:-100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView{left:100%}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff}span.cesium-projectionPicker-wrapper{display:inline-block;position:relative;margin:0 3px}.cesium-projectionPicker-visible{visibility:visible;opacity:1;transition:opacity .25s linear}.cesium-projectionPicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s .25s,opacity .25s linear}.cesium-projectionPicker-wrapper .cesium-projectionPicker-none{display:none}.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective,.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic{margin:0 0 3px}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic{left:100%}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective{left:-100%}.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff}.cesium-performance-watchdog-message-area{position:relative;background-color:#ff0;color:#000;padding:10px}.cesium-performance-watchdog-message{margin-right:30px}.cesium-performance-watchdog-message-dismiss{position:absolute;right:0;margin:0 10px 0 0}.cesium-navigationHelpButton-wrapper{position:relative;display:inline-block}.cesium-navigation-help{visibility:hidden;position:absolute;top:38px;right:2px;width:250px;border-radius:10px;transform:scale(.01);transform-origin:234px -10px;transition:visibility 0s .25s,transform .25s ease-in}.cesium-navigation-help-visible{visibility:visible;transform:scale(1);transition:transform .25s ease-out}.cesium-navigation-help-instructions{border:1px solid #444;background-color:#262626bf;padding-bottom:5px;border-radius:0 0 10px 10px}.cesium-click-navigation-help{display:none}.cesium-touch-navigation-help{display:none;padding-top:5px}.cesium-click-navigation-help-visible,.cesium-touch-navigation-help-visible{display:block}.cesium-navigation-help-pan{color:#6cf;font-weight:700}.cesium-navigation-help-zoom{color:#65fd00;font-weight:700}.cesium-navigation-help-rotate{color:#ffd800;font-weight:700}.cesium-navigation-help-tilt{color:#d800d8;font-weight:700}.cesium-navigation-help-details{color:#fff}.cesium-navigation-button{color:#fff;background-color:transparent;border-bottom:none;border-top:1px solid #444;border-right:1px solid #444;margin:0;width:50%;cursor:pointer}.cesium-navigation-button-icon{vertical-align:middle;padding:5px 1px}.cesium-navigation-button:focus{outline:none}.cesium-navigation-button-left{border-radius:10px 0 0;border-left:1px solid #444}.cesium-navigation-button-right{border-radius:0 10px 0 0;border-left:none}.cesium-navigation-button-selected{background-color:#262626bf}.cesium-navigation-button-unselected{background-color:#000000bf}.cesium-navigation-button-unselected:hover{background-color:#4c4c4cbf}.cesium-selection-wrapper{position:absolute;width:160px;height:160px;pointer-events:none;visibility:hidden;opacity:0;transition:visibility 0s .2s,opacity .2s ease-in}.cesium-selection-wrapper-visible{visibility:visible;opacity:1;transition:opacity .2s ease-out}.cesium-selection-wrapper svg{fill:#2e2;stroke:#000;stroke-width:1.1px}.cesium-timeline-main{position:relative;left:0;bottom:0;overflow:hidden;border:solid 1px #888;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.cesium-timeline-trackContainer{width:100%;overflow:auto;border-top:solid 1px #888;position:relative;top:0;left:0}.cesium-timeline-tracks{position:absolute;top:0;left:0;width:100%}.cesium-timeline-needle{position:absolute;left:0;top:1.7em;bottom:0;width:1px;background:red}.cesium-timeline-bar{position:relative;left:0;top:0;overflow:hidden;cursor:pointer;width:100%;height:1.7em;background:linear-gradient(to bottom,#747577cc,#3a4452cc 11%,#2e3238cc 46%,#353535cc 81% 100%)}.cesium-timeline-ruler{visibility:hidden;white-space:nowrap;font-size:80%;z-index:-200}.cesium-timeline-highlight{position:absolute;bottom:0;left:0;background:#08f}.cesium-timeline-ticLabel{position:absolute;top:0;left:0;white-space:nowrap;font-size:80%;color:#eee}.cesium-timeline-ticMain{position:absolute;bottom:0;left:0;width:1px;height:50%;background:#eee}.cesium-timeline-ticSub{position:absolute;bottom:0;left:0;width:1px;height:33%;background:#aaa}.cesium-timeline-ticTiny{position:absolute;bottom:0;left:0;width:1px;height:25%;background:#888}.cesium-timeline-icon16{display:block;position:absolute;width:16px;height:16px;background-image:url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==);background-repeat:no-repeat}.cesium-viewer{font-family:sans-serif;font-size:16px;overflow:hidden;display:block;position:relative;top:0;left:0;width:100%;height:100%}.cesium-viewer-cesiumWidgetContainer{width:100%;height:100%}.cesium-viewer-bottom{display:block;position:absolute;bottom:0;left:0;padding-right:5px}.cesium-viewer .cesium-widget-credits{display:inline;position:static;bottom:auto;left:auto;padding-right:0;color:#fff;font-size:10px;text-shadow:0 0 2px #000000}.cesium-viewer-timelineContainer{position:absolute;bottom:0;left:169px;right:29px;height:27px;padding:0;margin:0;overflow:hidden;font-size:14px}.cesium-viewer-animationContainer{position:absolute;bottom:0;left:0;padding:0;width:169px;height:112px}.cesium-viewer-fullscreenContainer,.cesium-viewer-vrContainer{position:absolute;bottom:0;right:0;padding:0;width:29px;height:29px;overflow:hidden}.cesium-viewer-toolbar{display:block;position:absolute;top:5px;right:5px}.cesium-viewer-cesiumInspectorContainer{display:block;position:absolute;top:50px;right:10px}.cesium-viewer-geocoderContainer{position:relative;display:inline-block;margin:0 3px}.cesium-viewer-cesium3DTilesInspectorContainer,.cesium-viewer-voxelInspectorContainer{display:block;position:absolute;top:50px;right:10px;max-height:calc(100% - 120px);box-sizing:border-box;overflow-y:auto;overflow-x:hidden}.cesium-viewer-i3s-explorer ul{list-style-type:none}.cesium-viewer-i3s-explorer .layersList{padding:0}.cesium-viewer-i3s-explorer input{margin:0 3px 0 0}.cesium-viewer-i3s-explorer .expandItem{cursor:pointer;-webkit-user-select:none;user-select:none;width:20px}.cesium-viewer-i3s-explorer .nested,.cesium-viewer-i3s-explorer #bsl-wrapper{display:none}.cesium-viewer-i3s-explorer .active{display:block}.cesium-viewer-i3s-explorer .li-wrapper{display:flex;flex-direction:row;align-content:center}.ai-chat-panel{display:flex;flex-direction:column;height:100%;min-height:300px;background:var(--panel-bg, rgba(15, 15, 18, .98));border-radius:8px;overflow:hidden}.ai-chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .08));flex-shrink:0}.ai-chat-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-chat-provider{font-size:10px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .5));padding:2px 6px;background:var(--transport-bg, rgba(255, 255, 255, .06));border-radius:4px}.ai-chat-service-select{font-size:10px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95));padding:2px 6px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:4px;cursor:pointer;transition:all .15s ease}.ai-chat-service-select:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));border-color:var(--accent-primary, #60a5fa)}.ai-chat-service-select:focus{outline:none;border-color:var(--accent-primary, #60a5fa)}.ai-chat-service-select option{background:var(--dashboard-surface, rgba(30, 30, 38, .95));color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-chat-actions{display:flex;gap:4px}.ai-chat-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s ease}.ai-chat-action-btn:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-chat-action-btn.active{background:#3b82f633;color:#93c5fd}.ai-chat-history{max-height:200px;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));display:flex;flex-direction:column}.history-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;font-size:11px;font-weight:600;color:var(--text-secondary, rgba(255, 255, 255, .7));text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--transport-border, rgba(255, 255, 255, .1))}.history-count{font-size:10px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .5));padding:2px 6px;background:var(--transport-bg, rgba(255, 255, 255, .06));border-radius:10px}.history-list{flex:1;overflow-y:auto;padding:4px 0}.history-empty{padding:16px 12px;text-align:center;color:var(--text-muted, rgba(255, 255, 255, .5));font-size:12px}.history-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 12px;background:transparent;border:none;text-align:left;cursor:pointer;transition:background .15s ease}.history-item:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .08))}.history-item.active{background:#3b82f626}.history-item-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.history-title{font-size:12px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-meta{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5))}.history-delete{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;margin-left:8px;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;opacity:0;transition:all .15s ease}.history-item:hover .history-delete{opacity:1}.history-delete:hover{background:#ef444433;color:#fca5a5}.history-list::-webkit-scrollbar{width:4px}.history-list::-webkit-scrollbar-track{background:transparent}.history-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:2px}.history-list::-webkit-scrollbar-thumb:hover{background:#fff3}.ai-chat-context{padding:8px 16px;background:#3b82f61a;border-bottom:1px solid rgba(59,130,246,.2)}.context-summary{display:flex;flex-wrap:wrap;gap:12px;font-size:11px;color:var(--text-secondary, rgba(255, 255, 255, .7))}.context-summary strong{color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:16px}.ai-chat-message{position:relative;width:98%;padding:12px 16px;border-radius:12px;min-width:0}.ai-chat-message.assistant{align-self:flex-start;background:#373741e6;border:1px solid rgba(255,255,255,.1);border-bottom-left-radius:4px}.ai-chat-message.user{align-self:flex-end;background:#1e3a5fe6;border:1px solid rgba(59,130,246,.3);border-bottom-right-radius:4px}.message-header{display:flex;align-items:center;gap:8px;margin-bottom:6px}.message-role{font-size:11px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95));text-transform:uppercase;letter-spacing:.03em}.message-time{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5))}.message-content{font-size:13px;line-height:1.5;color:var(--text-primary, rgba(255, 255, 255, .95));word-break:break-word}.message-content.markdown-content{white-space:normal}.message-content.markdown-content p{margin:0 0 .75em}.message-content.markdown-content p:last-child{margin-bottom:0}.message-content.markdown-content h1,.message-content.markdown-content h2,.message-content.markdown-content h3{margin:1em 0 .5em;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.message-content.markdown-content h1{font-size:1.3em}.message-content.markdown-content h2{font-size:1.15em}.message-content.markdown-content h3{font-size:1.05em}.message-content.markdown-content ul,.message-content.markdown-content ol{margin:.5em 0;padding-left:1.5em}.message-content.markdown-content li{margin:.25em 0}.message-content.markdown-content code{background:var(--code-bg, rgba(0, 0, 0, .3));padding:.15em .4em;border-radius:4px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:.9em;color:var(--code-color, #f59e0b)}.message-content.markdown-content pre{background:var(--code-block-bg, rgba(0, 0, 0, .4));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:6px;padding:12px;margin:.75em 0;overflow-x:auto}.message-content.markdown-content pre code{background:none;padding:0;color:var(--text-secondary, #e5e7eb);font-size:.85em}.message-content.markdown-content blockquote{border-left:3px solid rgba(59,130,246,.5);margin:.75em 0;padding-left:1em;color:var(--text-secondary, rgba(255, 255, 255, .7))}.message-content.markdown-content a{color:#60a5fa;text-decoration:none}.message-content.markdown-content a:hover{text-decoration:underline}.message-content.markdown-content table{border-collapse:collapse;margin:.75em 0;width:100%}.message-content.markdown-content th,.message-content.markdown-content td{border:1px solid rgba(255,255,255,.15);padding:.5em .75em;text-align:left}.message-content.markdown-content th{background:#ffffff0d;font-weight:600}.message-content.markdown-content hr{border:none;border-top:1px solid rgba(255,255,255,.1);margin:1em 0}.message-metrics{display:flex;gap:12px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.08);font-size:10px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .5));text-transform:uppercase;letter-spacing:.03em}.metric-item{display:flex;align-items:center;gap:4px}.metric-value{color:#34d399;font-family:SF Mono,Monaco,Consolas,monospace}.message-actions{display:flex;gap:6px;margin-top:8px;opacity:0;transition:opacity .15s ease}.ai-chat-message:hover .message-actions{opacity:1}.action-btn{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;cursor:pointer;transition:all .15s ease}.action-btn:hover{background:#ffffff1a;border-color:#fff3;color:var(--text-primary, rgba(255, 255, 255, .95))}.action-btn.copied{background:#22c55e26;border-color:#22c55e4d;color:#34d399}.action-btn svg{flex-shrink:0}.action-label{line-height:1}.message-context-indicator{position:absolute;top:12px;right:12px;color:var(--accent-primary, #60a5fa);opacity:.5}.ai-chat-message.user .message-context-indicator{right:auto;left:12px}.ai-chat-message.streaming{background:#f59e0b1a;border-color:#f59e0b33}.typing-cursor{display:inline-block;width:8px;height:16px;margin-left:2px;background:var(--accent-secondary, #f59e0b);animation:blink 1s infinite}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.ai-chat-loading{align-self:flex-start;padding:12px 16px}.loading-dots{display:flex;gap:4px}.loading-dots span{width:8px;height:8px;background:var(--text-muted, rgba(255, 255, 255, .5));border-radius:50%;animation:loading-bounce 1.4s ease-in-out infinite}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes loading-bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.ai-chat-input-area{display:flex;align-items:flex-end;gap:10px;padding:12px 16px;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.ai-chat-input{flex:1;min-height:52px;max-height:120px;padding:10px 12px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-primary, rgba(255, 255, 255, .95));font-size:13px;font-family:inherit;line-height:1.5;resize:none;transition:all .15s ease}.ai-chat-input:focus{outline:none;border-color:var(--accent-primary, #60a5fa);background:#ffffff14}.ai-chat-input::placeholder{color:var(--text-muted, rgba(255, 255, 255, .5))}.ai-chat-input:disabled{opacity:.5;cursor:not-allowed}.ai-chat-send-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;background:#3b82f64d;border:1px solid rgba(59,130,246,.5);border-radius:8px;color:#93c5fd;cursor:pointer;transition:all .15s ease;flex-shrink:0;margin-bottom:6px}.ai-chat-send-btn:hover:not(:disabled){background:#3b82f666;border-color:#3b82f699;color:#bfdbfe}.ai-chat-send-btn:disabled{opacity:.3;cursor:not-allowed}.ai-chat-send-btn.cancel{background:#ef44444d;border-color:#ef444480;color:#fca5a5}.ai-chat-send-btn.cancel:hover{background:#ef444466;border-color:#ef444499}.ai-chat-messages::-webkit-scrollbar{width:8px}.ai-chat-messages::-webkit-scrollbar-track{background:var(--scrollbar-track, rgba(0, 0, 0, .3));border-radius:4px}.ai-chat-messages::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, rgba(60, 60, 70, .8));border-radius:4px;border:1px solid var(--scrollbar-border, rgba(255, 255, 255, .05))}.ai-chat-messages::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, rgba(80, 80, 90, .9))}.ai-chat-panel *::-webkit-scrollbar{width:8px;height:8px}.ai-chat-panel *::-webkit-scrollbar-track{background:var(--scrollbar-track, rgba(0, 0, 0, .3));border-radius:4px}.ai-chat-panel *::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, rgba(60, 60, 70, .8));border-radius:4px;border:1px solid var(--scrollbar-border, rgba(255, 255, 255, .05))}.ai-chat-panel *::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, rgba(80, 80, 90, .9))}.mermaid-container{margin:12px 0;padding:16px;background:#1e293bcc;border:1px solid rgba(71,85,105,.5);border-radius:8px;overflow-x:auto}.mermaid-container svg{max-width:100%;height:auto;display:block;margin:0 auto}.mermaid-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:24px;margin:12px 0;background:#1e293b99;border:1px solid rgba(71,85,105,.3);border-radius:8px;color:#e2e8f0b3;font-size:12px}.mermaid-loading-spinner{width:16px;height:16px;border:2px solid rgba(59,130,246,.3);border-top-color:#3b82f6;border-radius:50%;animation:mermaid-spin .8s linear infinite}@keyframes mermaid-spin{to{transform:rotate(360deg)}}.mermaid-error{margin:12px 0;padding:12px;background:#7f1d1d33;border:1px solid rgba(239,68,68,.4);border-radius:8px}.mermaid-error-header{display:flex;align-items:center;gap:8px;color:#f87171;font-size:12px;font-weight:600;margin-bottom:8px}.mermaid-error-message{padding:8px;margin:0;background:#0000004d;border-radius:4px;color:#fca5a5;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;white-space:pre-wrap;word-break:break-word}.mermaid-error-source{margin-top:8px}.mermaid-error-source summary{cursor:pointer;color:#e2e8f080;font-size:11px;padding:4px 0}.mermaid-error-source summary:hover{color:#e2e8f0cc}.mermaid-error-source pre{margin:8px 0 0;padding:8px;background:#0000004d;border-radius:4px;color:#e2e8f0b3;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;white-space:pre-wrap;word-break:break-word;max-height:150px;overflow-y:auto}.markdown-content-part:empty{display:none}.mermaid-placeholder{display:none}.ai-modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.ai-modal{background:var(--dashboard-surface, rgba(30, 30, 38, .98));border:1px solid var(--dashboard-border, rgba(255, 255, 255, .12));border-radius:12px;box-shadow:0 20px 60px #00000080;max-width:560px;width:100%;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.ai-modal.ai-help-modal{max-width:640px}.ai-modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--header-gradient, linear-gradient(to bottom, rgba(50, 50, 55, .8), rgba(35, 35, 40, .8)));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.ai-modal-title{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-modal-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s ease}.ai-modal-close:hover{background:#ffffff1a;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-modal-body{flex:1;overflow-y:auto;padding:20px}.ai-modal-footer{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.ai-modal-footer-right{display:flex;gap:10px}.ai-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;border-radius:6px;cursor:pointer;transition:all .15s ease}.ai-btn-primary{background:#3b82f64d;border:1px solid rgba(59,130,246,.5);color:#93c5fd}.ai-btn-primary:hover{background:#3b82f666;border-color:#3b82f699}.ai-btn-secondary{background:#ffffff0d;border:1px solid rgba(255,255,255,.15);color:var(--text-secondary, rgba(255, 255, 255, .7))}.ai-btn-secondary:hover{background:#ffffff1a;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-btn-ghost{background:transparent;border:none;color:var(--text-muted, rgba(255, 255, 255, .5));padding:8px 12px}.ai-btn-ghost:hover{background:#ffffff0d;color:var(--text-secondary, rgba(255, 255, 255, .7))}.ai-config-intro{font-size:13px;color:var(--text-secondary, rgba(255, 255, 255, .7));line-height:1.6;margin:0 0 20px}.ai-capability-section{padding:16px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;margin-bottom:12px}.ai-capability-section:last-child{margin-bottom:0}.ai-capability-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ai-capability-toggle-row{display:flex;align-items:center;gap:10px}.ai-capability-title{font-size:14px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-capability-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:3px 8px;background:#3b82f626;color:#93c5fd;border-radius:4px}.ai-capability-badge.warning{background:#f59e0b26;color:#fcd34d}.ai-capability-desc{font-size:12px;color:var(--text-secondary, rgba(255, 255, 255, .6));line-height:1.5;margin:0 0 10px}.ai-capability-list{margin:0;padding-left:18px;font-size:12px;color:var(--text-secondary, rgba(255, 255, 255, .6));line-height:1.6}.ai-capability-list li{margin-bottom:4px}.ai-capability-list strong{color:var(--text-primary, rgba(255, 255, 255, .85))}.ai-toggle{position:relative;display:inline-block;width:36px;height:20px}.ai-toggle input{opacity:0;width:0;height:0}.ai-toggle-slider{position:absolute;cursor:pointer;inset:0;background:#ffffff26;border-radius:20px;transition:all .2s ease}.ai-toggle-slider:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:all .2s ease}.ai-toggle input:checked+.ai-toggle-slider{background:#3b82f699}.ai-toggle input:checked+.ai-toggle-slider:before{transform:translate(16px)}.ai-toggle.ai-toggle-small{width:28px;height:16px}.ai-toggle.ai-toggle-small .ai-toggle-slider:before{height:10px;width:10px;left:3px;bottom:3px}.ai-toggle.ai-toggle-small input:checked+.ai-toggle-slider:before{transform:translate(12px)}.ai-model-section{background:#3b82f60d;border:1px solid rgba(59,130,246,.2)}.ai-model-selectors{display:flex;flex-direction:column;gap:12px;margin-top:8px}.ai-model-selector{display:flex;flex-direction:column;gap:4px}.ai-model-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted, rgba(255, 255, 255, .5))}.ai-model-select{padding:8px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:6px;font-size:13px;color:var(--text-primary, rgba(255, 255, 255, .9));cursor:pointer;transition:all .15s ease}.ai-model-select:hover:not(:disabled){border-color:#ffffff40;background:#0006}.ai-model-select:focus{outline:none;border-color:#3b82f680}.ai-model-select:disabled{opacity:.5;cursor:not-allowed}.ai-model-select option{background:#1e1e26;color:var(--text-primary, rgba(255, 255, 255, .9))}.ai-model-hint{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .4));font-style:italic}.ai-endpoint-config{display:flex;flex-direction:column;gap:4px;margin-top:16px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.ai-endpoint-inputs{display:flex;align-items:center;gap:4px}.ai-endpoint-input{padding:8px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:6px;font-size:13px;color:var(--text-primary, rgba(255, 255, 255, .9));transition:all .15s ease}.ai-endpoint-input:hover{border-color:#ffffff40;background:#0006}.ai-endpoint-input:focus{outline:none;border-color:#3b82f680}.ai-endpoint-input::placeholder{color:var(--text-muted, rgba(255, 255, 255, .3))}.ai-endpoint-host{flex:1;min-width:120px}.ai-endpoint-port{width:80px}.ai-endpoint-separator{color:var(--text-muted, rgba(255, 255, 255, .5));font-size:14px;font-weight:500}.ai-capability-nested{margin-top:12px;padding:12px;background:#8b5cf614;border:1px solid rgba(139,92,246,.2);border-radius:6px}.ai-capability-subtitle{font-size:13px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .9))}.ai-capability-badge-small{font-size:9px;padding:2px 6px;margin-left:auto}.ai-capability-desc-small{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5));margin:6px 0 0;line-height:1.4}.ai-help-content{font-size:13px;line-height:1.6}.ai-help-section{margin-bottom:24px}.ai-help-section:last-child{margin-bottom:0}.ai-help-section h3{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95));margin:0 0 10px}.ai-help-section p{color:var(--text-secondary, rgba(255, 255, 255, .7));margin:0 0 12px}.ai-help-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px}.ai-help-icon.query{background:#3b82f633;color:#60a5fa}.ai-help-icon.control{background:#f59e0b33;color:#fbbf24}.ai-help-icon.analysis{background:#10b98133;color:#34d399}.ai-help-icon.tips{background:#a855f733;color:#a78bfa}.ai-help-examples{display:flex;flex-direction:column;gap:10px}.ai-help-example{display:flex;flex-direction:column;gap:6px}.ai-help-example .example-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, rgba(255, 255, 255, .5))}.ai-help-example code{display:block;padding:8px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.08);border-radius:6px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;color:#93c5fd;flex:1;min-width:0}.ai-help-example-row{display:flex;align-items:center;gap:4px}.ai-help-example-row code{cursor:default}.ai-help-copy-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:1px solid rgba(255,255,255,.08);border-radius:4px;color:#ffffff59;cursor:pointer;transition:all .15s ease}.ai-help-copy-btn:hover{background:#ffffff0f;border-color:#ffffff26;color:#ffffffb3}.ai-help-copy-btn.copied{color:#4ade80;border-color:#4ade804d}.ai-help-tips{margin:0;padding-left:20px;color:var(--text-secondary, rgba(255, 255, 255, .7))}.ai-help-tips li{margin-bottom:8px}.ai-help-tips strong{color:var(--text-primary, rgba(255, 255, 255, .9))}.ai-help-shortcuts{display:flex;flex-direction:column;gap:8px}.ai-shortcut{display:flex;align-items:center;gap:12px}.ai-shortcut kbd{display:inline-flex;align-items:center;justify-content:center;min-width:28px;padding:4px 8px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .9))}.ai-shortcut span{color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:12px}.ai-suggestions{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .06))}.ai-suggestion-chip{display:inline-flex;align-items:center;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:14px;font-size:11px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .7));transition:all .15s ease;white-space:nowrap;overflow:hidden}.ai-suggestion-chip:hover{border-color:#fff3}.ai-suggestion-main{display:inline-flex;align-items:center;gap:5px;padding:5px 8px 5px 10px;background:transparent;border:none;font-size:inherit;font-weight:inherit;color:inherit;cursor:pointer;transition:all .15s ease}.ai-suggestion-main:hover:not(:disabled){background:#ffffff14;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-suggestion-main:disabled{opacity:.5;cursor:not-allowed}.ai-suggestion-edit{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:2px 2px 2px 0;padding:0;background:transparent;border:none;border-radius:50%;color:var(--text-muted, rgba(255, 255, 255, .4));cursor:pointer;transition:all .15s ease;opacity:.6}.ai-suggestion-chip:hover .ai-suggestion-edit{opacity:1}.ai-suggestion-edit:hover:not(:disabled){background:#ffffff26;color:var(--text-primary, rgba(255, 255, 255, .9))}.ai-suggestion-edit:disabled{opacity:.3;cursor:not-allowed}.ai-suggestion-chip.query{border-color:#3b82f64d}.ai-suggestion-chip.query .ai-suggestion-main:hover:not(:disabled){background:#3b82f626;color:#93c5fd}.ai-suggestion-chip.control{border-color:#f59e0b4d}.ai-suggestion-chip.control .ai-suggestion-main:hover:not(:disabled){background:#f59e0b26;color:#fcd34d}.ai-suggestion-chip.analysis{border-color:#10b9814d}.ai-suggestion-chip.analysis .ai-suggestion-main:hover:not(:disabled){background:#10b98126;color:#34d399}.ai-suggestion-main svg{opacity:.7}.ai-suggestion-toggle{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:14px;font-size:11px;font-weight:600;color:#8b5cf6cc;cursor:pointer;transition:all .15s ease}.ai-suggestion-toggle:hover:not(:disabled){background:#8b5cf633;border-color:#8b5cf680;color:#a78bfa}.ai-suggestion-toggle.active{background:#8b5cf640;border-color:#8b5cf699;color:#c4b5fd}.ai-suggestion-toggle:disabled{opacity:.5;cursor:not-allowed}.ai-suggestion-toggle.loading{pointer-events:none}.ai-toggle-spinner{width:12px;height:12px;border:2px solid rgba(139,92,246,.3);border-top-color:#a78bfa;border-radius:50%;animation:spin .8s linear infinite}.ai-suggestions-empty{display:inline-flex;align-items:center;justify-content:center;padding:4px;color:#f59e0bb3;cursor:help}.ai-suggestion-chip.ai-generated{border-color:#8b5cf64d;background:#8b5cf614}.ai-suggestion-chip.ai-generated .ai-suggestion-main:hover:not(:disabled){background:#8b5cf626;color:#c4b5fd}.ai-suggestion-more{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:14px;font-size:11px;font-weight:500;color:#fff9;cursor:pointer;transition:all .15s ease;margin-left:auto}.ai-suggestion-more:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff40;color:#ffffffe6}.ai-suggestion-more:disabled{opacity:.5;cursor:not-allowed}.ai-suggestion-more svg{opacity:.7}.tool-results-section{margin:8px 0;border-radius:8px;overflow:hidden}.tool-results-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 12px;background:#3b82f614;border:1px solid rgba(59,130,246,.15);border-radius:8px;font-size:12px;color:#93c5fd;cursor:pointer;transition:all .15s ease;text-align:left}.tool-results-toggle:hover{background:#3b82f61f;border-color:#3b82f640}.tool-results-toggle.expanded{border-bottom-left-radius:0;border-bottom-right-radius:0}.tool-results-toggle .tool-icon{flex-shrink:0;color:#93c5fd}.tool-results-summary{flex:1;font-weight:500}.tool-names-hint{font-weight:400;opacity:.7;font-size:11px}.tool-results-chevron{font-size:10px;opacity:.6}.tool-results-details{background:#00000026;border:1px solid rgba(59,130,246,.15);border-top:none;border-radius:0 0 8px 8px;padding:8px;display:flex;flex-direction:column;gap:4px}.tool-item{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:4px;font-size:11px}.tool-item.execution{color:#93c5fd}.tool-item.result{color:#34d399}.tool-item.error{color:#fca5a5}.tool-item-icon{flex-shrink:0;font-size:10px;width:14px;text-align:center}.tool-item-name{font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px}.tool-item-text{flex:1}.tool-item-details-btn{padding:2px 6px;background:#ffffff0d;border:none;border-radius:4px;font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .4));cursor:pointer;transition:all .15s ease}.tool-item-details-btn:hover{background:#ffffff1a;color:var(--text-secondary, rgba(255, 255, 255, .6))}.tool-item-details{width:100%;margin-top:4px;padding:6px 8px;background:#0003;border-radius:4px;font-size:9px;font-family:SF Mono,Monaco,Consolas,monospace;color:var(--text-secondary, rgba(255, 255, 255, .6));overflow-x:auto;white-space:pre-wrap;max-height:120px;overflow-y:auto}.acoustic-action-buttons{display:flex;gap:8px;margin-top:10px;padding:8px 0 4px;border-top:1px solid rgba(255,255,255,.08);flex-wrap:wrap}.acoustic-action-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;background:linear-gradient(135deg,#3b82f626,#6366f126);border:1px solid rgba(99,102,241,.3);border-radius:8px;color:#a5b4fcf2;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.acoustic-action-btn:hover:not(:disabled){background:linear-gradient(135deg,#3b82f640,#6366f140);border-color:#6366f180;color:#c7d2fe;transform:translateY(-1px);box-shadow:0 2px 8px #6366f133}.acoustic-action-btn:active:not(:disabled){transform:translateY(0)}.acoustic-action-btn:disabled{opacity:.5;cursor:default}.acoustic-action-btn.clicked{background:linear-gradient(135deg,#22c55e26,#10b98126);border-color:#22c55e4d;color:#86efacf2;opacity:1}.tool-error{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;margin:4px 0;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:12px;font-size:11px}.tool-error-icon{flex-shrink:0;font-size:12px;color:#f87171}.tool-error-message{color:#fca5a5;font-size:11px}.ai-providers-list{display:flex;flex-direction:column;gap:16px;margin-top:12px}.ai-provider-row{display:flex;flex-direction:column;gap:6px}.ai-provider-controls{display:flex;align-items:center;gap:6px}.ai-provider-select{flex:1}.ai-provider-config-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s ease}.ai-provider-config-btn:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff40;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-provider-config-btn.active{background:#3b82f633;border-color:#3b82f666;color:#93c5fd}.ai-provider-config-btn:disabled{opacity:.3;cursor:not-allowed}.ai-endpoint-panel{display:flex;flex-direction:column;gap:10px;margin-top:8px;padding:12px;background:#0003;border:1px solid rgba(255,255,255,.1);border-radius:6px}.ai-endpoint-row{display:flex;flex-direction:column;gap:4px}.ai-endpoint-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted, rgba(255, 255, 255, .5))}.ai-model-select-row{display:flex;align-items:center;gap:6px}.ai-model-dropdown{flex:1}.ai-refresh-models-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s ease}.ai-refresh-models-btn:hover:not(:disabled){background:#ffffff1a;border-color:#ffffff40;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-refresh-models-btn:disabled{opacity:.5;cursor:not-allowed}.ai-refresh-models-btn svg.spinning{animation:spin 1s linear infinite}.ai-config-modal{max-width:900px;height:85vh;max-height:750px}.ai-config-modal .ai-modal-body{flex:1;overflow-y:auto;min-height:0}.ai-capabilities-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.ai-capabilities-grid .ai-capability-section{margin-bottom:0}.ai-capabilities-grid .ai-model-section{grid-column:1 / -1}.weather-panel-breezy{background:linear-gradient(180deg,#1e2332f2,#141923fa);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px;margin:8px 0;font-size:12px;overflow:hidden}.weather-breezy-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:8px}.weather-breezy-current{display:flex;align-items:center;gap:8px}.weather-breezy-temp{font-size:20px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95))}.weather-breezy-conditions{font-size:12px;color:var(--text-secondary, rgba(255, 255, 255, .6))}.weather-breezy-precip{font-size:11px;color:#64b5f6}.weather-breezy-forecast{position:relative}.weather-breezy-days{display:flex;justify-content:space-between}.weather-breezy-day{flex:1;display:flex;flex-direction:column;align-items:center;min-width:50px}.breezy-day-name{font-size:11px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .9))}.breezy-day-date{font-size:9px;color:var(--text-secondary, rgba(255, 255, 255, .5));margin-bottom:6px}.breezy-day-icon{margin-bottom:4px}.breezy-temp-high{font-size:13px;font-weight:500;color:#ffc896f2}.breezy-temp-low{font-size:12px;color:#96c8ffcc;margin-bottom:2px}.breezy-precip{font-size:10px;color:#64b5f6;font-weight:500}.weather-breezy-trend{display:block;width:100%;height:40px;margin:4px 0}.weather-breezy-radar{margin-top:8px;padding:4px 8px;background:#22c55e1a;border-radius:4px;font-size:10px;color:#22c55ee6}.ai-config-tabs{display:flex;gap:0;padding:0 20px;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.ai-config-tab-btn{padding:12px 20px;background:transparent;border:none;border-bottom:2px solid transparent;font-size:13px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s ease}.ai-config-tab-btn:hover{color:var(--text-secondary, rgba(255, 255, 255, .7));background:#ffffff08}.ai-config-tab-btn.active{color:#93c5fd;border-bottom-color:#3b82f6}.ai-prompts-tab{display:flex;flex-direction:column;gap:16px}.ai-prompts-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.ai-prompts-header-actions{display:flex;gap:8px}.ai-prompts-list{display:flex;flex-direction:column;gap:8px}.ai-prompts-item{display:flex;align-items:flex-start;gap:12px;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all .15s ease}.ai-prompts-item:hover{background:#ffffff0d;border-color:#ffffff1f}.ai-prompts-item.active{background:#3b82f614;border-color:#3b82f640}.ai-prompts-item-radio{display:flex;align-items:center;justify-content:center;width:20px;height:20px;margin-top:2px;cursor:pointer}.ai-prompts-item-radio input{display:none}.ai-prompts-radio-indicator{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;transition:all .15s ease;position:relative}.ai-prompts-item-radio input:checked+.ai-prompts-radio-indicator{border-color:#3b82f6}.ai-prompts-item-radio input:checked+.ai-prompts-radio-indicator:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#3b82f6;border-radius:50%}.ai-prompts-item-info{flex:1;min-width:0}.ai-prompts-item-name{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95));margin-bottom:4px}.ai-prompts-badge{display:inline-flex;padding:2px 6px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;border-radius:4px}.ai-prompts-badge.default{background:#8b5cf626;color:#a78bfa}.ai-prompts-badge.active{background:#22c55e26;color:#34d399}.ai-prompts-item-preview{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5));line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-prompts-item-actions{display:flex;gap:4px;flex-shrink:0}.ai-prompts-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s ease}.ai-prompts-action-btn:hover:not(:disabled){background:#ffffff1a;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-prompts-action-btn.danger:hover:not(:disabled){background:#ef444426;color:#f87171}.ai-prompts-action-btn:disabled{opacity:.3;cursor:not-allowed}.ai-prompts-editor{display:flex;flex-direction:column;gap:16px}.ai-prompts-editor-header{display:flex;align-items:center;gap:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.08)}.ai-prompts-editor-title{font-size:14px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-prompts-form{display:flex;flex-direction:column;gap:16px}.ai-prompts-field{display:flex;flex-direction:column;gap:6px}.ai-prompts-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted, rgba(255, 255, 255, .5))}.ai-prompts-input{padding:10px 12px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:6px;font-size:13px;color:var(--text-primary, rgba(255, 255, 255, .95));transition:all .15s ease}.ai-prompts-input:focus{outline:none;border-color:#3b82f680;background:#0006}.ai-prompts-input::placeholder{color:var(--text-muted, rgba(255, 255, 255, .3))}.ai-prompts-textarea{padding:12px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:6px;font-size:12px;font-family:SF Mono,Monaco,Consolas,monospace;color:var(--text-primary, rgba(255, 255, 255, .95));line-height:1.5;resize:vertical;min-height:200px;transition:all .15s ease}.ai-prompts-textarea:focus{outline:none;border-color:#3b82f680;background:#0006}.ai-prompts-textarea::placeholder{color:var(--text-muted, rgba(255, 255, 255, .3))}.ai-prompts-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:8px}.ai-tools-tab{display:flex;flex-direction:column;gap:16px}.ai-tools-category{background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden}.ai-tools-category-header{display:flex;align-items:center;gap:12px;padding:12px;background:#ffffff05;border-bottom:1px solid rgba(255,255,255,.06)}.ai-tools-category-toggle{display:flex;align-items:center;cursor:pointer}.ai-tools-category-toggle input{display:none}.ai-tools-checkbox{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:4px;transition:all .15s ease;position:relative}.ai-tools-category-toggle input:checked+.ai-tools-checkbox{background:#3b82f6;border-color:#3b82f6}.ai-tools-category-toggle input:checked+.ai-tools-checkbox:after{content:"";position:absolute;top:2px;left:5px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.ai-tools-category-toggle input:indeterminate+.ai-tools-checkbox{background:#3b82f6;border-color:#3b82f6}.ai-tools-category-toggle input:indeterminate+.ai-tools-checkbox:after{content:"";position:absolute;top:6px;left:3px;width:8px;height:2px;background:#fff;border:none;transform:none}.ai-tools-category-info{flex:1}.ai-tools-category-name{display:block;font-size:13px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-tools-category-desc{display:block;font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5))}.ai-tools-category-count{font-size:11px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .5));padding:2px 8px;background:#ffffff0f;border-radius:10px}.ai-tools-list{display:flex;flex-direction:column}.ai-tools-item{border-bottom:1px solid rgba(255,255,255,.04)}.ai-tools-item:last-child{border-bottom:none}.ai-tools-item.disabled{opacity:.5}.ai-tools-item-row{display:flex;align-items:flex-start;gap:12px;padding:10px 12px}.ai-tools-item-toggle{display:flex;align-items:center;margin-top:2px;cursor:pointer}.ai-tools-item-toggle input{display:none}.ai-tools-item-toggle .ai-tools-checkbox{width:14px;height:14px}.ai-tools-item-toggle input:checked+.ai-tools-checkbox:after{top:1px;left:4px;width:3px;height:7px}.ai-tools-item-info{flex:1;min-width:0}.ai-tools-item-name{display:block;font-size:12px;font-weight:500;font-family:SF Mono,Monaco,Consolas,monospace;color:#93c5fd;margin-bottom:2px}.ai-tools-item-desc{display:block;font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5));line-height:1.4}.ai-tools-expand-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .4));cursor:pointer;transition:all .15s ease;flex-shrink:0}.ai-tools-expand-btn:hover{background:#ffffff1a;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-tools-expand-btn.expanded{background:#3b82f626;color:#93c5fd}.ai-tools-params{padding:12px;margin:0 12px 12px;background:#0003;border-radius:6px}.ai-tools-params-title{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted, rgba(255, 255, 255, .5));margin-bottom:10px}.ai-tools-param{padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}.ai-tools-param:last-child{border-bottom:none;padding-bottom:0}.ai-tools-param-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.ai-tools-param-name{font-size:11px;font-weight:500;font-family:SF Mono,Monaco,Consolas,monospace;color:#fcd34d}.ai-tools-param-type{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .4));padding:1px 5px;background:#ffffff0d;border-radius:3px}.ai-tools-param-required{font-size:9px;font-weight:600;text-transform:uppercase;color:#f87171}.ai-tools-param-desc{font-size:11px;color:var(--text-secondary, rgba(255, 255, 255, .6));line-height:1.4}.ai-tools-param-enum{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5));margin-top:4px;font-family:SF Mono,Monaco,Consolas,monospace}.ai-verbosity-section{padding:16px;background:#3b82f60d;border:1px solid rgba(59,130,246,.15);border-radius:8px;margin-bottom:16px}.ai-verbosity-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.ai-verbosity-title{font-size:13px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.ai-verbosity-level{font-size:12px;font-weight:500;color:#93c5fd;padding:2px 10px;background:#3b82f626;border-radius:10px}.ai-verbosity-slider-container{position:relative;padding:0 4px}.ai-verbosity-slider{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:#ffffff26;border-radius:3px;outline:none;cursor:pointer}.ai-verbosity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;background:#3b82f6;border-radius:50%;cursor:pointer;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 6px #0000004d;transition:transform .15s ease,box-shadow .15s ease}.ai-verbosity-slider::-webkit-slider-thumb:hover{transform:scale(1.1);box-shadow:0 2px 8px #3b82f680}.ai-verbosity-slider::-moz-range-thumb{width:18px;height:18px;background:#3b82f6;border-radius:50%;cursor:pointer;border:2px solid rgba(255,255,255,.9);box-shadow:0 2px 6px #0000004d}.ai-verbosity-marks{display:flex;justify-content:space-between;margin-top:8px;padding:0 2px}.ai-verbosity-mark{width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .4));cursor:pointer;border-radius:50%;transition:all .15s ease}.ai-verbosity-mark:hover{color:var(--text-secondary, rgba(255, 255, 255, .7));background:#ffffff0d}.ai-verbosity-mark.active{color:#93c5fd;background:#3b82f626}.ai-verbosity-desc{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5));margin:12px 0 0;line-height:1.4;text-align:center}.ai-guidelines-section{margin-bottom:16px;border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:8px;overflow:hidden}.ai-guidelines-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;background:var(--transport-bg, rgba(255, 255, 255, .04));border:none;cursor:pointer;transition:background .15s ease}.ai-guidelines-toggle:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .08))}.ai-guidelines-chevron{transition:transform .2s ease;color:var(--text-muted, rgba(255, 255, 255, .5));flex-shrink:0}.ai-guidelines-toggle.expanded .ai-guidelines-chevron{transform:rotate(90deg)}.ai-guidelines-title{font-size:13px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95));flex:1;text-align:left}.ai-guidelines-badge{font-size:10px;font-weight:500;padding:2px 8px;border-radius:4px;background:var(--transport-bg, rgba(255, 255, 255, .06));color:var(--text-muted, rgba(255, 255, 255, .5))}.ai-guidelines-content{padding:14px;border-top:1px solid var(--transport-border, rgba(255, 255, 255, .1));background:var(--dashboard-bg, rgba(15, 15, 20, .5))}.ai-guidelines-desc{font-size:12px;color:var(--text-secondary, rgba(255, 255, 255, .7));margin-bottom:12px;line-height:1.4}.ai-guidelines-textarea{width:100%;padding:12px;background:var(--transport-bg, rgba(255, 255, 255, .04));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:6px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;line-height:1.5;color:var(--text-primary, rgba(255, 255, 255, .95));resize:vertical;min-height:150px}.ai-guidelines-textarea:focus{outline:none;border-color:var(--accent-primary, #60a5fa)}.ai-guidelines-textarea::placeholder{color:var(--text-muted, rgba(255, 255, 255, .4))}.ai-guidelines-actions{display:flex;justify-content:flex-end;margin-top:10px}.ai-btn-small{padding:4px 10px;font-size:11px}.ai-chat-message.demo{background:#8b5cf626;border:1px solid rgba(139,92,246,.35);border-bottom-left-radius:4px}.ai-chat-message.demo .message-role{color:#c4b5fd}.ai-chat-message.demo .message-content{color:#fffffff2}.ai-chat-message.demo.new-message{animation:demoMessageHighlight 2s ease-out}@keyframes demoMessageHighlight{0%{background:#8b5cf666;border-color:#8b5cf6b3;box-shadow:0 0 20px #8b5cf680}50%{background:#8b5cf640;border-color:#8b5cf680;box-shadow:0 0 10px #8b5cf64d}to{background:#8b5cf626;border-color:#8b5cf659;box-shadow:none}}[data-theme=lunar-light] .ai-chat-panel{background:var(--dashboard-surface, #e8e8e8)}[data-theme=lunar-light] .ai-chat-header{border-bottom-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-chat-title{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-chat-provider{color:var(--text-muted, #9a9a9a);background:var(--transport-bg, rgba(0, 0, 0, .06))}[data-theme=lunar-light] .ai-chat-service-select{color:var(--text-primary, #4a4a4a);background:var(--transport-bg, rgba(0, 0, 0, .06));border-color:var(--transport-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-chat-service-select option{background:var(--dashboard-surface, #e8e8e8);color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-chat-action-btn{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-chat-action-btn:hover{background:var(--transport-bg-hover, rgba(0, 0, 0, .1));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-chat-action-btn.active{background:#2563eb26;color:#1e40af}[data-theme=lunar-light] .ai-chat-messages{background:transparent}[data-theme=lunar-light] .ai-chat-message.assistant{background:#ffffffd9;border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-chat-message.user{background:#2563eb1a;border-color:#2563eb40}[data-theme=lunar-light] .ai-chat-message.demo{background:#6d28d914;border-color:#6d28d940}[data-theme=lunar-light] .ai-chat-message.demo .message-role{color:#7c3aed}[data-theme=lunar-light] .ai-chat-message.demo .message-content{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-chat-message.demo.new-message{animation:demoMessageHighlightLight 2s ease-out}@keyframes demoMessageHighlightLight{0%{background:#6d28d933;border-color:#6d28d980;box-shadow:0 0 15px #6d28d940}50%{background:#6d28d91f;border-color:#6d28d959;box-shadow:0 0 6px #6d28d926}to{background:#6d28d914;border-color:#6d28d940;box-shadow:none}}[data-theme=lunar-light] .ai-chat-message.streaming{background:#d9770614;border-color:#d9770633}[data-theme=lunar-light] .message-role{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .message-time{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .message-content,[data-theme=lunar-light] .message-content.markdown-content h1,[data-theme=lunar-light] .message-content.markdown-content h2,[data-theme=lunar-light] .message-content.markdown-content h3,[data-theme=lunar-light] .message-content.markdown-content strong{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .message-content.markdown-content table{border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .message-content.markdown-content th,[data-theme=lunar-light] .message-content.markdown-content td{border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .message-content.markdown-content th{background:#0000000a;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .message-content.markdown-content code{background:var(--code-bg, rgba(0, 0, 0, .08));color:var(--code-color, #1e40af)}[data-theme=lunar-light] .message-content.markdown-content pre{background:var(--code-block-bg, rgba(0, 0, 0, .06));border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .message-content.markdown-content pre code{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .message-content.markdown-content blockquote{border-left-color:#2563eb66;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .message-content.markdown-content a{color:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .message-content.markdown-content hr{border-top-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .message-content.markdown-content ul,[data-theme=lunar-light] .message-content.markdown-content ol{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .message-metrics{border-top-color:var(--dashboard-border, rgba(0, 0, 0, .08));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .metric-value{color:#16a34a}[data-theme=lunar-light] .action-btn{background:#0000000a;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .action-btn:hover{background:#00000014;border-color:#0003;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .action-btn.copied{background:#16a34a1a;border-color:#16a34a4d;color:#16a34a}[data-theme=lunar-light] .ai-chat-context{background:#2563eb14;border-bottom-color:#2563eb26}[data-theme=lunar-light] .context-summary{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .context-summary strong{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .message-context-indicator{color:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .loading-dots span{background:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .typing-cursor{background:var(--accent-secondary, #d97706)}[data-theme=lunar-light] .ai-chat-input-area{background:var(--dashboard-bg, #c8c8c8);border-top-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-chat-input{background:#ffffffb3;border-color:var(--transport-border, rgba(0, 0, 0, .12));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-chat-input:focus{border-color:var(--accent-primary, #2563eb);background:#ffffffe6}[data-theme=lunar-light] .ai-chat-input::placeholder{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-chat-send-btn{background:#2563eb26;border-color:#2563eb59;color:#1e40af}[data-theme=lunar-light] .ai-chat-send-btn:hover:not(:disabled){background:#2563eb40;border-color:#2563eb80;color:#1e3a8a}[data-theme=lunar-light] .ai-chat-send-btn.cancel{background:#b91c1c1a;border-color:#b91c1c4d;color:#b91c1c}[data-theme=lunar-light] .ai-chat-send-btn.cancel:hover{background:#b91c1c33;border-color:#b91c1c66}[data-theme=lunar-light] .ai-chat-messages::-webkit-scrollbar-track{background:var(--scrollbar-track, #d0d0d0)}[data-theme=lunar-light] .ai-chat-messages::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, #a0a0a0);border-color:#0000000d}[data-theme=lunar-light] .ai-chat-messages::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, #888888)}[data-theme=lunar-light] .ai-chat-panel *::-webkit-scrollbar-track{background:var(--scrollbar-track, #d0d0d0)}[data-theme=lunar-light] .ai-chat-panel *::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, #a0a0a0);border-color:#0000000d}[data-theme=lunar-light] .ai-chat-panel *::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, #888888)}[data-theme=lunar-light] .ai-chat-history{background:var(--dashboard-bg, #c8c8c8);border-bottom-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .history-header{color:var(--text-secondary, #6a6a6a);border-bottom-color:var(--transport-border, rgba(0, 0, 0, .1))}[data-theme=lunar-light] .history-count{color:var(--text-muted, #9a9a9a);background:var(--transport-bg, rgba(0, 0, 0, .06))}[data-theme=lunar-light] .history-empty{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .history-item:hover{background:var(--transport-bg-hover, rgba(0, 0, 0, .08))}[data-theme=lunar-light] .history-item.active{background:#2563eb1a}[data-theme=lunar-light] .history-title{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .history-meta{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .history-delete:hover{background:#b91c1c1a;color:#b91c1c}[data-theme=lunar-light] .ai-suggestions{background:var(--dashboard-bg, #c8c8c8);border-top-color:var(--dashboard-border, rgba(0, 0, 0, .08))}[data-theme=lunar-light] .ai-suggestion-chip{background:#fff9;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-suggestion-chip:hover{border-color:#0003}[data-theme=lunar-light] .ai-suggestion-main:hover:not(:disabled){background:#0000000f;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-suggestion-edit{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-suggestion-edit:hover:not(:disabled){background:#00000014;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-suggestion-chip.query{border-color:#2563eb40}[data-theme=lunar-light] .ai-suggestion-chip.query .ai-suggestion-main:hover:not(:disabled){background:#2563eb14;color:#1e40af}[data-theme=lunar-light] .ai-suggestion-chip.control{border-color:#d9770640}[data-theme=lunar-light] .ai-suggestion-chip.control .ai-suggestion-main:hover:not(:disabled){background:#d9770614;color:#b45309}[data-theme=lunar-light] .ai-suggestion-chip.analysis{border-color:#16a34a40}[data-theme=lunar-light] .ai-suggestion-chip.analysis .ai-suggestion-main:hover:not(:disabled){background:#16a34a14;color:#16a34a}[data-theme=lunar-light] .ai-suggestion-chip.ai-generated{border-color:#6d28d940;background:#6d28d90f}[data-theme=lunar-light] .ai-suggestion-chip.ai-generated .ai-suggestion-main:hover:not(:disabled){background:#6d28d91a;color:#7c3aed}[data-theme=lunar-light] .ai-suggestion-toggle{background:#6d28d914;border-color:#6d28d940;color:#7c3aed}[data-theme=lunar-light] .ai-suggestion-toggle:hover:not(:disabled){background:#6d28d926;border-color:#6d28d966}[data-theme=lunar-light] .ai-suggestion-toggle.active{background:#6d28d926;border-color:#6d28d966;color:#6d28d9}[data-theme=lunar-light] .ai-suggestion-more{background:#0000000a;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-suggestion-more:hover:not(:disabled){background:#00000014;border-color:#0003;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .tool-results-toggle{background:#2563eb0f;border-color:#2563eb26;color:#1e40af}[data-theme=lunar-light] .tool-results-toggle:hover{background:#2563eb1a;border-color:#2563eb40}[data-theme=lunar-light] .tool-results-toggle .tool-icon{color:#1e40af}[data-theme=lunar-light] .tool-results-details{background:#00000008;border-color:#2563eb26}[data-theme=lunar-light] .tool-item.execution{color:#1e40af}[data-theme=lunar-light] .tool-item.result{color:#16a34a}[data-theme=lunar-light] .tool-item.error{color:#b91c1c}[data-theme=lunar-light] .tool-item-name{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .tool-item-details{background:#0000000a;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .acoustic-action-buttons{border-top-color:#00000014}[data-theme=lunar-light] .acoustic-action-btn{background:linear-gradient(135deg,#3b82f614,#6366f114);border-color:#6366f140;color:#4338cae6}[data-theme=lunar-light] .acoustic-action-btn:hover:not(:disabled){background:linear-gradient(135deg,#3b82f626,#6366f126);border-color:#6366f166;color:#4338ca;box-shadow:0 2px 8px #6366f126}[data-theme=lunar-light] .acoustic-action-btn.clicked{background:linear-gradient(135deg,#22c55e14,#10b98114);border-color:#22c55e40;color:#16a34ae6}[data-theme=lunar-light] .tool-error{background:#b91c1c0f;border-color:#b91c1c26}[data-theme=lunar-light] .tool-error-icon,[data-theme=lunar-light] .tool-error-message{color:#b91c1c}[data-theme=lunar-light] .ai-modal-overlay{background:#0000004d}[data-theme=lunar-light] .ai-modal{background:var(--dashboard-surface, #e8e8e8);border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-modal-header{background:var(--header-gradient, linear-gradient(to bottom, #e8e8e8, #d8d8d8));border-bottom-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-modal-title{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-modal-close{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-modal-close:hover{background:#00000014;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-modal-footer{background:var(--dashboard-bg, #c8c8c8);border-top-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-btn-primary{background:#2563eb26;border-color:#2563eb59;color:#1e40af}[data-theme=lunar-light] .ai-btn-primary:hover{background:#2563eb40;border-color:#2563eb80}[data-theme=lunar-light] .ai-btn-secondary{background:#0000000a;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-btn-secondary:hover{background:#00000014;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-btn-ghost{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-btn-ghost:hover{background:#0000000a;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-config-intro{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-capability-section{background:#00000005;border-color:var(--dashboard-border, rgba(0, 0, 0, .1))}[data-theme=lunar-light] .ai-capability-title{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-capability-badge{background:#2563eb1a;color:#1e40af}[data-theme=lunar-light] .ai-capability-badge.warning{background:#d977061a;color:#b45309}[data-theme=lunar-light] .ai-capability-desc,[data-theme=lunar-light] .ai-capability-list{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-capability-list strong{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-toggle-slider{background:#00000026}[data-theme=lunar-light] .ai-toggle input:checked+.ai-toggle-slider{background:#2563eb80}[data-theme=lunar-light] .ai-model-section{background:#2563eb0a;border-color:#2563eb26}[data-theme=lunar-light] .ai-model-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-model-select{background:#fff9;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-model-select option{background:#f0f0f0;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-model-hint{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-endpoint-input{background:#fff9;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-endpoint-input::placeholder{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-endpoint-separator{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-config-tabs{background:var(--dashboard-bg, #c8c8c8);border-bottom-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .ai-config-tab-btn{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-config-tab-btn:hover{color:var(--text-secondary, #6a6a6a);background:#00000008}[data-theme=lunar-light] .ai-config-tab-btn.active{color:#1e40af;border-bottom-color:#2563eb}[data-theme=lunar-light] .ai-prompts-item{background:#00000005;border-color:var(--dashboard-border, rgba(0, 0, 0, .1))}[data-theme=lunar-light] .ai-prompts-item:hover{background:#0000000a;border-color:#00000026}[data-theme=lunar-light] .ai-prompts-item.active{background:#2563eb0f;border-color:#2563eb33}[data-theme=lunar-light] .ai-prompts-item-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-prompts-item-preview{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-prompts-badge.default{background:#6d28d91a;color:#7c3aed}[data-theme=lunar-light] .ai-prompts-badge.active{background:#16a34a1a;color:#16a34a}[data-theme=lunar-light] .ai-prompts-radio-indicator{border-color:#00000040}[data-theme=lunar-light] .ai-prompts-action-btn{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-prompts-action-btn:hover:not(:disabled){background:#0000000f;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-prompts-action-btn.danger:hover:not(:disabled){background:#b91c1c14;color:#b91c1c}[data-theme=lunar-light] .ai-prompts-editor-title{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-prompts-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-prompts-input,[data-theme=lunar-light] .ai-prompts-textarea{background:#fff9;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-tools-category{background:#00000005;border-color:var(--dashboard-border, rgba(0, 0, 0, .1))}[data-theme=lunar-light] .ai-tools-category-header{background:#00000005;border-bottom-color:var(--dashboard-border, rgba(0, 0, 0, .08))}[data-theme=lunar-light] .ai-tools-category-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-tools-category-desc{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-tools-category-count{color:var(--text-muted, #9a9a9a);background:#0000000d}[data-theme=lunar-light] .ai-tools-checkbox{border-color:#00000040}[data-theme=lunar-light] .ai-tools-item{border-bottom-color:#0000000d}[data-theme=lunar-light] .ai-tools-item-name{color:#1e40af}[data-theme=lunar-light] .ai-tools-item-desc,[data-theme=lunar-light] .ai-tools-expand-btn{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-tools-expand-btn:hover{background:#0000000f;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-tools-expand-btn.expanded{background:#2563eb1a;color:#1e40af}[data-theme=lunar-light] .ai-tools-params{background:#00000008}[data-theme=lunar-light] .ai-tools-params-title{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-tools-param{border-bottom-color:#0000000f}[data-theme=lunar-light] .ai-tools-param-name{color:#b45309}[data-theme=lunar-light] .ai-tools-param-type{color:var(--text-muted, #9a9a9a);background:#0000000a}[data-theme=lunar-light] .ai-tools-param-desc{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-tools-param-enum{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-verbosity-section{background:#2563eb0a;border-color:#2563eb1f}[data-theme=lunar-light] .ai-verbosity-title{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-verbosity-level{color:#1e40af;background:#2563eb1a}[data-theme=lunar-light] .ai-verbosity-slider{background:#0000001f}[data-theme=lunar-light] .ai-verbosity-slider::-webkit-slider-thumb{background:#2563eb}[data-theme=lunar-light] .ai-verbosity-slider::-moz-range-thumb{background:#2563eb}[data-theme=lunar-light] .ai-verbosity-mark{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-verbosity-mark:hover{color:var(--text-secondary, #6a6a6a);background:#0000000a}[data-theme=lunar-light] .ai-verbosity-mark.active{color:#1e40af;background:#2563eb1a}[data-theme=lunar-light] .ai-verbosity-desc{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-guidelines-section{border-color:var(--transport-border, rgba(0, 0, 0, .1))}[data-theme=lunar-light] .ai-guidelines-toggle{background:var(--transport-bg, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .ai-guidelines-toggle:hover{background:var(--transport-bg-hover, rgba(0, 0, 0, .08))}[data-theme=lunar-light] .ai-guidelines-chevron{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-guidelines-title{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-guidelines-badge{background:var(--transport-bg, rgba(0, 0, 0, .06));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-guidelines-content{border-top-color:var(--transport-border, rgba(0, 0, 0, .1));background:#fff6}[data-theme=lunar-light] .ai-guidelines-desc{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-guidelines-textarea{background:#fff9;border-color:var(--transport-border, rgba(0, 0, 0, .1));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-guidelines-textarea::placeholder{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .weather-panel-breezy{background:linear-gradient(180deg,#ffffffd9,#f0f0f0e6);border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .weather-breezy-header{border-bottom-color:var(--dashboard-border, rgba(0, 0, 0, .08))}[data-theme=lunar-light] .weather-breezy-temp{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .weather-breezy-conditions{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .breezy-day-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .breezy-day-date{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .breezy-temp-high{color:#1e40af}[data-theme=lunar-light] .breezy-temp-low{color:#1d4ed8}[data-theme=lunar-light] .mermaid-container{background:#fff9;border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .mermaid-loading{background:#fff6;border-color:var(--dashboard-border, rgba(0, 0, 0, .1));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .mermaid-error{background:#b91c1c0f;border-color:#b91c1c33}[data-theme=lunar-light] .mermaid-error-header{color:#b91c1c}[data-theme=lunar-light] .mermaid-error-message{background:#0000000a;color:#b91c1c}[data-theme=lunar-light] .ai-help-section h3{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-help-section p{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-help-icon.query{background:#2563eb1a;color:#2563eb}[data-theme=lunar-light] .ai-help-icon.control{background:#d977061a;color:#d97706}[data-theme=lunar-light] .ai-help-icon.analysis{background:#16a34a1a;color:#16a34a}[data-theme=lunar-light] .ai-help-icon.tips{background:#6d28d91a;color:#7c3aed}[data-theme=lunar-light] .ai-help-example .example-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-help-example code{background:#0000000a;border-color:var(--dashboard-border, rgba(0, 0, 0, .1));color:#1e40af}[data-theme=lunar-light] .ai-help-tips{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-help-tips strong{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-shortcut kbd{background:#0000000f;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-shortcut span{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-help-copy-btn{border-color:var(--dashboard-border, rgba(0, 0, 0, .1));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-help-copy-btn:hover{background:#0000000f;border-color:#00000026;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .ai-help-copy-btn.copied{color:#16a34a;border-color:#16a34a4d}[data-theme=lunar-light] .ai-provider-config-btn{background:#0000000a;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-provider-config-btn:hover:not(:disabled){background:#00000014;border-color:#0003;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-provider-config-btn.active{background:#2563eb1a;border-color:#2563eb4d;color:#1e40af}[data-theme=lunar-light] .ai-endpoint-panel{background:#00000008;border-color:var(--dashboard-border, rgba(0, 0, 0, .1))}[data-theme=lunar-light] .ai-endpoint-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-refresh-models-btn{background:#0000000a;border-color:var(--dashboard-border, rgba(0, 0, 0, .12));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .ai-refresh-models-btn:hover:not(:disabled){background:#00000014;border-color:#0003;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-capability-nested{background:#6d28d90a;border-color:#6d28d926}[data-theme=lunar-light] .ai-capability-subtitle{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .ai-capability-desc-small{color:var(--text-muted, #9a9a9a)}.cursor-position-overlay{position:absolute;top:10px;left:50%;transform:translate(-50%);background:#141419e6;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:8px 16px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;color:#ffffffe6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100;pointer-events:none;-webkit-user-select:none;user-select:none;display:flex;gap:16px}.cursor-position-overlay.map-text-sm{font-size:10px}.cursor-position-overlay.map-text-lg{font-size:14px}.cursor-position-overlay.no-position{opacity:.6}.position-row{display:flex;align-items:center;gap:6px}.position-row:not(:last-child){padding-right:16px;border-right:1px solid rgba(255,255,255,.15)}.position-label{color:#ffffff80;font-weight:500}.position-value{color:#fffffff2;font-weight:400}.position-value.depth{color:#3b82f6}.position-value.altitude{color:#22c55e}.position-value.loading{color:#ffffff80}[data-theme=lunar-light] .position-value.loading{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .cursor-position-overlay{background:#f0f0f0eb;border-color:#0000001f;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .position-row:not(:last-child){border-right-color:#0000001f}[data-theme=lunar-light] .position-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .position-value{color:var(--text-primary, #4a4a4a)}.map-context-menu{position:fixed;background:var(--menu-bg, rgba(25, 25, 30, .98));border:1px solid var(--border-secondary, rgba(255, 255, 255, .15));border-radius:8px;min-width:200px;max-width:280px;box-shadow:var(--shadow-lg, 0 8px 32px rgba(0, 0, 0, .5));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:2000;overflow:hidden;animation:contextMenuFadeIn .1s ease-out}@keyframes contextMenuFadeIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.context-menu-header{display:flex;align-items:center;gap:8px;padding:10px 12px;background:var(--transport-bg, rgba(255, 255, 255, .03));color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:11px;font-family:SF Mono,Monaco,Consolas,monospace}.context-menu-header svg{opacity:.5}.context-menu-divider{height:1px;background:var(--border-primary, rgba(255, 255, 255, .1));margin:0}.context-menu-label{padding:8px 12px 4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, rgba(255, 255, 255, .4))}.context-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--text-primary, rgba(255, 255, 255, .9));font-size:12px;text-align:left;cursor:pointer;transition:all .15s}.context-menu-item:hover{background:var(--bg-active, rgba(59, 130, 246, .2))}.context-menu-item svg{flex-shrink:0;opacity:.6}.context-menu-item.has-submenu{justify-content:space-between}.context-menu-item.has-submenu svg{transition:transform .15s}.context-menu-item.has-submenu.expanded svg{transform:rotate(90deg)}.context-menu-item .asset-name{font-weight:500}.context-submenu{position:relative}.context-submenu-content{background:var(--transport-bg, rgba(0, 0, 0, .2));border-top:1px solid var(--dashboard-border-subtle, rgba(255, 255, 255, .05))}.context-menu-item.command-item{padding-left:24px;font-size:11px;color:var(--text-secondary, rgba(255, 255, 255, .8))}.context-menu-item.command-item:hover{background:var(--bg-active, rgba(59, 130, 246, .25));color:var(--text-primary, white)}.context-menu-item.command-item.nested{padding-left:36px}.context-category{border-top:1px solid var(--dashboard-border-subtle, rgba(255, 255, 255, .05))}.context-menu-item.category-item{padding-left:24px;font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5));font-weight:500}.context-menu-item.category-item svg{transition:transform .15s}.context-menu-item.category-item.expanded svg{transform:rotate(180deg)}.category-commands{background:var(--transport-bg, rgba(0, 0, 0, .15))}.context-menu-empty{padding:12px 24px;font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .4));font-style:italic}.overlay-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;border:1px solid var(--border-secondary, rgba(255, 255, 255, .3))}.overlay-name{flex:1;display:flex;align-items:center;gap:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overlay-lock-icon,.overlay-hidden-icon{font-size:10px;opacity:.7}.overlay-actions{background:var(--transport-bg, rgba(0, 0, 0, .25))}.context-menu-item.command-item.nested svg{flex-shrink:0;opacity:.6}.context-menu-item.command-item.nested:hover svg{opacity:1}.context-menu-item.command-item.danger{color:var(--semantic-error, rgba(239, 68, 68, .9))}.context-menu-item.command-item.danger:hover{background:var(--semantic-error-bg, rgba(239, 68, 68, .2));color:var(--semantic-error, #ef4444)}.context-menu-item.command-item.danger svg{stroke:currentColor}.context-menu-item:disabled{opacity:.4;cursor:not-allowed}.context-menu-item:disabled:hover{background:transparent}.scale-bar{position:absolute;bottom:16px;left:16px;display:flex;flex-direction:column;align-items:flex-start;pointer-events:none;z-index:10}.scale-bar-line{height:2px;background:#ffffffe6;position:relative;box-shadow:0 1px 2px #00000080}.scale-bar-end{position:absolute;top:-4px;width:2px;height:10px;background:#ffffffe6;box-shadow:0 1px 2px #00000080}.scale-bar-end.left{left:0}.scale-bar-end.right{right:0}.scale-bar-label{margin-top:4px;font-size:11px;font-weight:500;color:#ffffffe6;text-shadow:0 1px 2px rgba(0,0,0,.7);font-family:system-ui,-apple-system,sans-serif}.vessel-panel{position:absolute;top:0;left:0;width:320px;height:100%;background:var(--panel-bg);border-right:1px solid var(--border-primary);display:flex;flex-direction:column;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.vessel-panel-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-primary);flex-shrink:0}.vessel-panel-title{display:flex;align-items:center;gap:.75rem;min-width:0;flex:1}.vessel-type-indicator{width:12px;height:12px;border-radius:50%;flex-shrink:0}.vessel-panel-title h2{font-size:1rem;font-weight:600;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vessel-panel-actions{display:flex;gap:.5rem;flex-shrink:0}.vessel-panel-btn{width:32px;height:32px;border:1px solid var(--border-secondary);border-radius:4px;background:transparent;color:var(--text-secondary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.vessel-panel-btn:hover{background:var(--button-hover);color:var(--text-primary);border-color:var(--border-secondary)}.vessel-panel-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--text-primary)}.vessel-panel-btn.active:hover{background:var(--accent-primary);border-color:var(--accent-primary)}.vessel-panel-btn.favorite{color:#fbbf24}.vessel-panel-btn.favorite:hover{color:#f59e0b}.vessel-panel-close{width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s}.vessel-panel-close:hover{background:var(--button-hover);color:var(--text-primary)}.vessel-panel-content{flex:1;overflow-y:auto;padding:.5rem 0}.vessel-section{padding:.75rem 1rem}.vessel-section h3{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin:0 0 .75rem}.vessel-field{display:flex;justify-content:space-between;align-items:center;padding:.4rem 0}.vessel-label{font-size:.85rem;color:var(--text-secondary)}.vessel-value{font-size:.85rem;color:var(--text-primary);text-align:right}.vessel-value.mono{font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:.8rem}.vessel-type{font-weight:500}.vessel-following-indicator{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1rem;margin:.5rem 1rem;background:var(--bg-active);border:1px solid var(--border-accent);border-radius:6px;color:var(--accent-primary);font-size:.85rem;font-weight:500}.following-dot{width:8px;height:8px;background:var(--accent-primary);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.vessel-thumbnail-container{position:relative;width:100%;height:160px;background:var(--bg-primary);display:flex;align-items:center;justify-content:center;overflow:hidden}.vessel-thumbnail{width:100%;height:100%;object-fit:cover;transition:opacity .3s ease}.vessel-thumbnail.loading{opacity:0}.vessel-thumbnail.error{display:none}.vessel-thumbnail-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-primary)}.thumbnail-spinner{width:32px;height:32px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.vessel-thumbnail-fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:600;color:#fffc;text-transform:uppercase}.vessel-panel-content::-webkit-scrollbar{width:8px}.vessel-panel-content::-webkit-scrollbar-track{background:var(--scrollbar-track)}.vessel-panel-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:4px}.vessel-panel-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.vessel-panel.embedded{position:relative;width:100%;height:100%;border-right:none;z-index:auto}.vessel-panel-back-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-secondary);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s;flex-shrink:0;margin-right:8px}.vessel-panel-back-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-accent)}.vessel-list{position:absolute;top:0;right:0;width:280px;height:100%;background:var(--panel-bg);border-left:1px solid var(--border-primary);display:flex;flex-direction:column;z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.vessel-list-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border-primary);flex-shrink:0}.vessel-list-header h2{font-size:1rem;font-weight:600;margin:0}.vessel-list-count{font-size:.75rem;font-weight:500;color:var(--text-secondary);background:var(--bg-surface);padding:.25rem .5rem;border-radius:10px}.vessel-list-search{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border-primary);flex-shrink:0}.search-icon{color:var(--text-muted);flex-shrink:0}.search-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:.85rem;font-family:inherit;min-width:0}.search-input::placeholder{color:var(--text-muted)}.search-clear{width:20px;height:20px;border:none;border-radius:50%;background:var(--bg-surface);color:var(--text-secondary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s;padding:0;line-height:1}.search-clear:hover{background:var(--bg-hover);color:var(--text-primary)}.search-highlight{background:var(--button-active);color:var(--text-primary);border-radius:2px;padding:0 2px}.vessel-list-filter-bar{display:flex;gap:6px;padding:8px 1rem;flex-shrink:0;align-items:center}.vessel-list-filter-select{flex:1;padding:5px 8px;background:var(--bg-surface);border:1px solid var(--border-secondary);border-radius:6px;color:var(--text-primary);font-size:11px;cursor:pointer;min-width:0}.vessel-list-filter-select:focus{outline:none;border-color:var(--accent-primary)}.vessel-list-filter-select option{background:var(--bg-surface)}.vessel-list-filter-watched{display:flex;align-items:center;gap:4px;padding:5px 10px;background:var(--bg-surface);border:1px solid var(--border-secondary);border-radius:6px;color:var(--text-secondary);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.vessel-list-filter-watched:hover{border-color:var(--text-secondary);color:var(--text-primary)}.vessel-list-filter-watched.active{background:#60dcfa26;border-color:#22d3ee;color:#22d3ee}.vessel-list-filter-pills{display:flex;flex-wrap:wrap;gap:4px;padding:4px 1rem 8px;align-items:center;border-bottom:1px solid var(--border-primary);flex-shrink:0}.vessel-list-filter-pill{display:flex;align-items:center;gap:4px;padding:3px 8px;background:var(--bg-surface);border:1px solid var(--border-secondary);border-radius:12px;font-size:11px;font-weight:500;color:var(--text-primary)}.vessel-list-filter-pill--watched{background:#fbbf241a;border-color:#fbbf244d;color:#fbbf24}.vessel-list-filter-pill--type .vessel-list-filter-pill-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.vessel-list-filter-pill-remove{background:none;border:none;color:inherit;cursor:pointer;padding:0 2px;font-size:11px;opacity:.6;transition:opacity .15s}.vessel-list-filter-pill-remove:hover{opacity:1}.vessel-list-filter-clear{background:none;border:none;color:var(--text-muted);font-size:11px;cursor:pointer;padding:2px 4px}.vessel-list-filter-clear:hover{color:var(--text-primary)}.vessel-list-content{flex:1;overflow-y:auto;padding:.5rem 0}.vessel-list-empty{padding:2rem 1rem;text-align:center;color:var(--text-muted);font-size:.85rem}.vessel-list-group{margin-bottom:.5rem}.vessel-list-group-header{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem}.vessel-list-group-indicator{width:8px;height:8px;border-radius:50%}.vessel-list-group-name{font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);flex:1}.vessel-list-group-count{font-size:.7rem;color:var(--text-muted)}.vessel-list-group-items{display:flex;flex-direction:column}.vessel-list-item{display:flex;flex-direction:column;gap:.25rem;padding:.625rem 1rem;background:transparent;border:none;text-align:left;cursor:pointer;transition:background .15s;width:100%}.vessel-list-item:hover{background:var(--bg-hover)}.vessel-list-item.selected{background:var(--bg-active)}.vessel-list-item-header{display:flex;align-items:center;gap:.5rem}.vessel-list-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.vessel-list-name{font-size:.85rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vessel-list-item-details{display:flex;align-items:center;justify-content:space-between;padding-left:1rem}.vessel-list-type{font-size:.75rem;color:var(--text-muted);text-transform:capitalize}.vessel-list-speed{font-size:.75rem;font-family:ui-monospace,SF Mono,Monaco,monospace;color:var(--text-secondary)}.vessel-list.embedded{position:relative;top:auto;right:auto;width:100%;height:100%;border-left:none;z-index:auto}.alert-panel{position:absolute;top:1rem;left:50%;transform:translate(-50%);background:var(--panel-bg);border:1px solid var(--accent-secondary);border-radius:8px;min-width:320px;max-width:400px;box-shadow:0 4px 20px #0006,0 0 0 1px #f59e0b33;z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.alert-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#f59e0b26;border-bottom:1px solid rgba(245,158,11,.3)}.alert-panel-title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--accent-secondary)}.alert-icon{font-size:1rem}.alert-count{background:var(--accent-secondary);color:var(--bg-primary);font-size:.7rem;font-weight:700;padding:.15rem .4rem;border-radius:10px;min-width:20px;text-align:center}.alert-panel-controls{display:flex;align-items:center;gap:.5rem}.alert-toggle{padding:.25rem .5rem;border-radius:4px;font-size:.65rem;font-weight:600;cursor:pointer;transition:all .15s}.alert-toggle.enabled{background:#22c55e33;border:1px solid rgba(34,197,94,.5);color:var(--status-success)}.alert-toggle.enabled:hover{background:#22c55e4d}.alert-toggle.disabled{background:#ef444433;border:1px solid rgba(239,68,68,.5);color:var(--status-error)}.alert-toggle.disabled:hover{background:#ef44444d}.alert-dismiss{width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.alert-dismiss:hover{background:var(--button-hover);color:var(--text-primary)}.alert-disabled-message{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem 1rem;color:var(--text-muted);font-size:.8rem;text-align:center}.alert-disabled-icon{font-size:1.25rem}.alert-panel-content{max-height:300px;overflow-y:auto}.alert-item{display:flex;align-items:center;gap:.75rem;width:100%;padding:.75rem 1rem;background:transparent;border:none;border-bottom:1px solid var(--border-primary);text-align:left;cursor:pointer;transition:background .15s}.alert-item:last-child{border-bottom:none}.alert-item:hover{background:var(--bg-hover)}.alert-vessel-indicator{width:10px;height:10px;border-radius:50%;flex-shrink:0}.alert-item-content{flex:1;display:flex;flex-direction:column;gap:.125rem;min-width:0}.alert-vessel-name{font-size:.85rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-message{font-size:.75rem;color:var(--text-secondary)}.alert-message strong{color:var(--accent-secondary);font-weight:600}.alert-badge{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-secondary);background:#f59e0b26;padding:.25rem .5rem;border-radius:4px;flex-shrink:0}.alert-indicator{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:#f59e0b26;border:1px solid rgba(245,158,11,.4);border-radius:16px;color:var(--accent-secondary);font-size:.75rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.alert-indicator:hover{background:#f59e0b40;border-color:#f59e0b99}.alert-indicator .alert-icon{font-size:.85rem}.unified-alert-panel{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--panel-bg, rgba(15, 15, 18, .98))}.alert-source-toggle{display:flex;gap:2px;padding:6px 10px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .06));flex-shrink:0}.alert-source-btn{padding:3px 10px;background:transparent;border:1px solid var(--border-secondary, rgba(255, 255, 255, .1));border-radius:4px;color:var(--text-secondary);font-size:10px;font-weight:500;cursor:pointer;transition:all .15s}.alert-source-btn:hover{background:#ffffff0d}.alert-source-btn.active{background:#60a5fa26;border-color:var(--accent-primary, #60a5fa);color:var(--accent-primary, #60a5fa)}.alert-feed-filter{padding:3px 6px;background:var(--bg-surface, rgba(255, 255, 255, .06));border:1px solid var(--border-secondary, rgba(255, 255, 255, .1));border-radius:4px;color:var(--text-primary);font-size:10px;cursor:pointer;margin-left:auto}.unified-alert-panel .alert-panel-header{display:flex;align-items:center;gap:8px;padding:.75rem 1rem;background:transparent;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .08));flex-shrink:0}.alert-filter-tabs{display:flex;flex:1;gap:4px;background:var(--transport-bg, rgba(255, 255, 255, .04));border-radius:6px;padding:3px}.alert-settings-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;flex-shrink:0;transition:all .1s ease}.alert-settings-btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .08));color:var(--text-primary, rgba(255, 255, 255, .95))}.filter-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 10px;background:transparent;border:none;border-radius:4px;font-size:11px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .7));cursor:pointer;transition:all .15s ease}.filter-tab:hover{color:var(--text-primary, rgba(255, 255, 255, .95));background:var(--transport-bg-hover, rgba(255, 255, 255, .08))}.filter-tab.active{background:var(--accent-primary, #60a5fa);color:#fff}.tab-count{min-width:16px;height:16px;padding:0 4px;background:#fff3;border-radius:8px;font-size:10px;font-weight:600}.filter-tab.active .tab-count{background:#ffffff40}.unified-alert-panel .alert-panel-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;max-height:none}.alert-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:var(--text-muted, rgba(255, 255, 255, .5));text-align:center}.alert-empty-state svg{margin-bottom:12px;opacity:.5}.empty-title{font-size:14px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .7));margin-bottom:4px}.empty-subtitle{font-size:12px}.alert-actions{display:flex;gap:8px;padding:8px 12px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .06));flex-shrink:0}.action-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:transparent;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .15));border-radius:6px;font-size:11px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .7));cursor:pointer;transition:all .15s ease}.action-btn:hover:not(:disabled){background:var(--transport-bg-hover, rgba(255, 255, 255, .08));border-color:#ffffff40;color:var(--text-primary, rgba(255, 255, 255, .95))}.action-btn:disabled{opacity:.5;cursor:not-allowed}.acknowledge-all-btn:hover:not(:disabled){border-color:var(--semantic-success, #22c55e);color:var(--semantic-success, #22c55e)}.delete-all-btn:hover:not(:disabled){border-color:var(--semantic-error, #ef4444);color:var(--semantic-error, #ef4444)}.alert-list{flex:1;display:flex;flex-direction:column;overflow-y:auto;min-height:0}.unified-alert-panel .alert-item{display:flex;align-items:flex-start;gap:6px;padding:6px 8px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .06));cursor:pointer;transition:background .15s ease}.unified-alert-panel .alert-item:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .06))}.unified-alert-panel .alert-item.selected{background:#60a5fa1f;outline:1px solid rgba(96,165,250,.4);outline-offset:-1px}.unified-alert-panel .alert-item.critical{background:#ef44441a;border-left:3px solid var(--semantic-error, #ef4444)}.unified-alert-panel .alert-item.critical:hover{background:#ef44442e}.unified-alert-panel .alert-item.warning{background:#f59e0b14;border-left:3px solid var(--semantic-warning, #f59e0b)}.unified-alert-panel .alert-item.warning:hover{background:#f59e0b26}.unified-alert-panel .alert-item.info{background:#3b82f614;border-left:3px solid var(--accent-primary, #60a5fa)}.unified-alert-panel .alert-item.info:hover{background:#3b82f626}.unified-alert-panel .alert-item-main{display:flex;gap:6px;flex:1;min-width:0}.unified-alert-panel .alert-level-icon{font-size:13px;flex-shrink:0;width:16px;text-align:center;line-height:18px}.unified-alert-panel .alert-item.critical .alert-level-icon{color:var(--semantic-error, #fca5a5)}.unified-alert-panel .alert-item.warning .alert-level-icon{color:var(--semantic-warning, #fbbf24)}.unified-alert-panel .alert-item.info .alert-level-icon{color:var(--accent-primary, #93c5fd)}.unified-alert-panel .alert-item-content{flex:1;min-width:0}.unified-alert-panel .alert-item-header{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-bottom:1px}.unified-alert-panel .alert-entity-name{font-size:11px;font-weight:500;color:var(--text-primary, #e5e7eb)}.unified-alert-panel .alert-trigger-badge{padding:1px 5px;border-radius:3px;font-size:9px;font-weight:600;text-transform:uppercase}.unified-alert-panel .alert-trigger-badge.critical{background:#ef444466;color:var(--semantic-error, #fca5a5)}.unified-alert-panel .alert-trigger-badge.warning{background:#f59e0b66;color:var(--semantic-warning, #fbbf24)}.unified-alert-panel .alert-trigger-badge.info{background:#3b82f666;color:var(--accent-primary, #93c5fd)}.alert-type-badge{padding:1px 5px;border-radius:3px;font-size:8px;font-weight:600;text-transform:uppercase;background:#6b728066;color:var(--text-muted, #9ca3af)}.unified-alert-panel .alert-item-message{font-size:10px;color:var(--text-secondary, #9ca3af);line-height:1.3;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unified-alert-panel .alert-item-footer{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:9px}.alert-zone-btn{padding:2px 6px;background:#47556966;border:1px solid rgba(71,85,105,.5);border-radius:3px;color:var(--text-secondary, #9ca3af);font-size:10px;cursor:pointer;transition:all .15s ease}.alert-zone-btn:hover{background:#47556999;color:var(--text-primary, #e5e7eb)}.alert-speed-info{padding:2px 6px;background:#f59e0b33;border-radius:3px;color:var(--semantic-warning, #fbbf24);font-weight:500}.unified-alert-panel .alert-timestamp{color:var(--text-muted, #6b7280);margin-left:auto}.unified-alert-panel .alert-item.acknowledged{opacity:.6;background:#6b72800f;border-left-color:var(--text-muted, #6b7280)}.unified-alert-panel .alert-item.acknowledged:hover{opacity:.8;background:#6b72801f}.unified-alert-panel .alert-item.acknowledged .alert-level-icon{color:var(--semantic-success, #22c55e)}.alert-acknowledged-badge{padding:1px 5px;border-radius:3px;font-size:8px;font-weight:600;text-transform:uppercase;background:#22c55e4d;color:var(--semantic-success, #22c55e)}.alert-item-actions{display:flex;flex-direction:row;gap:2px;flex-shrink:0;align-items:center}.unified-alert-panel .alert-clear-btn,.unified-alert-panel .alert-delete-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;color:var(--text-muted, #6b7280);cursor:pointer;border-radius:3px;transition:all .15s ease}.unified-alert-panel .alert-clear-btn:hover{background:#22c55e33;color:var(--semantic-success, #22c55e)}.unified-alert-panel .alert-delete-btn:hover{background:#ef444433;color:var(--semantic-error, #fca5a5)}.alert-rule-badge,.alert-severity-badge{padding:1px 6px;border-radius:3px;font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.alert-flagged-badge{color:#fbbf24;font-size:12px}.alert-source-badge{padding:1px 4px;border-radius:2px;font-size:8px;font-weight:600;background:#60a5fa26;color:#60a5fa}.alert-mmsi{font-family:monospace;font-size:10px;color:var(--text-muted)}.alert-feed-badge{padding:1px 4px;border-radius:2px;font-size:8px;font-weight:500;background:#22d3ee1f;color:#22d3ee}.alert-action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;color:var(--text-muted, #6b7280);cursor:pointer;border-radius:3px;font-size:11px;transition:all .15s}.alert-action-btn:hover{background:#ffffff1a;color:var(--text-primary)}.alert-comment-input{padding:6px 8px 6px 32px;border-top:1px solid rgba(255,255,255,.05)}.alert-comment-input input{width:100%;padding:4px 8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:var(--text-primary);font-size:11px;outline:none}.alert-comment-input input:focus{border-color:var(--accent-primary)}.alert-comment{font-size:10px;color:var(--text-secondary);padding:2px 0;border-bottom:1px solid rgba(255,255,255,.03)}.acknowledged-summary{padding:8px 12px;text-align:center;font-size:11px;color:var(--text-muted, #6b7280);background:var(--transport-bg, rgba(255, 255, 255, .02));border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .06));flex-shrink:0}.alert-comment-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.alert-comment-modal{background:var(--panel-bg, #111118);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;width:440px;max-width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #00000080}.alert-comment-modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.alert-comment-modal-header h3{margin:0;font-size:14px}.alert-comment-modal-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:4px}.alert-comment-modal-alert{padding:12px 16px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .06));background:#ffffff05}.alert-comment-modal-history{padding:8px 16px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .06))}.alert-comment-modal-entry{padding:6px 0;font-size:12px;color:var(--text-secondary, #c0c0c0);border-bottom:1px solid rgba(255,255,255,.04)}.alert-comment-modal-entry:last-child{border-bottom:none}.alert-comment-modal-input{display:block;width:calc(100% - 32px);margin:12px 16px;padding:8px 10px;background:var(--input-bg, #1e293b);border:1px solid var(--border-color, #334155);border-radius:6px;color:inherit;font-size:13px;font-family:inherit;resize:vertical;min-height:60px}.alert-comment-modal-input:focus{outline:none;border-color:var(--accent-primary, #60a5fa)}.alert-comment-modal-actions{padding:8px 16px 12px;display:flex;justify-content:flex-end}.alert-comment-modal-submit{padding:6px 16px;background:var(--accent-primary, #60a5fa);border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer}.alert-comment-modal-submit:disabled{opacity:.4;cursor:default}.floating-alert-popup{position:fixed;top:60px;right:20px;width:340px;max-height:calc(100vh - 100px);background:#0f172afa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(71,85,105,.5);border-radius:10px;box-shadow:0 8px 32px #00000080;z-index:var(--z-toast, 300);overflow:hidden;display:flex;flex-direction:column;animation:popup-slide-in .2s ease-out}@keyframes popup-slide-in{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.floating-popup-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(71,85,105,.5);background:#1e1e2680}.popup-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--text-primary, #e5e7eb)}.popup-icon{color:var(--semantic-warning, #fbbf24)}.popup-badge{min-width:20px;height:20px;padding:0 6px;background:var(--semantic-warning, #f59e0b);border-radius:10px;font-size:11px;font-weight:600;color:#000;display:flex;align-items:center;justify-content:center;animation:badge-pulse 2s ease-in-out infinite}.popup-badge.critical{background:var(--semantic-error, #ef4444);color:#fff}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.popup-view-all{padding:4px 10px;background:transparent;border:1px solid rgba(96,165,250,.4);border-radius:4px;font-size:11px;font-weight:500;color:var(--accent-primary, #60a5fa);cursor:pointer;transition:all .15s ease}.popup-view-all:hover{background:#60a5fa26;border-color:var(--accent-primary, #60a5fa)}.floating-popup-content{flex:1;overflow-y:auto;max-height:400px}.floating-alert-item{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-bottom:1px solid rgba(71,85,105,.3);cursor:pointer;transition:background .15s ease}.floating-alert-item:hover{background:#47556940}.floating-alert-item:last-child{border-bottom:none}.floating-alert-item.critical{background:#ef444426;border-left:3px solid var(--semantic-error, #ef4444)}.floating-alert-item.critical:hover{background:#ef444440}.floating-alert-item.warning{background:#f59e0b1a;border-left:3px solid var(--semantic-warning, #f59e0b)}.floating-alert-item.warning:hover{background:#f59e0b33}.floating-alert-item.info{background:#3b82f61a;border-left:3px solid var(--accent-primary, #60a5fa)}.floating-alert-item.info:hover{background:#3b82f633}.alert-item-main{display:flex;gap:10px;flex:1;min-width:0}.alert-level-icon{font-size:16px;flex-shrink:0;width:20px;text-align:center}.floating-alert-item.critical .alert-level-icon{color:var(--semantic-error, #fca5a5)}.floating-alert-item.warning .alert-level-icon{color:var(--semantic-warning, #fbbf24)}.floating-alert-item.info .alert-level-icon{color:var(--accent-primary, #93c5fd)}.alert-item-content{flex:1;min-width:0}.alert-item-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.alert-entity-name{font-size:12px;font-weight:500;color:var(--text-primary, #e5e7eb)}.alert-trigger-badge{padding:1px 5px;border-radius:3px;font-size:9px;font-weight:600;text-transform:uppercase}.alert-trigger-badge.critical{background:#ef444466;color:var(--semantic-error, #fca5a5)}.alert-trigger-badge.warning{background:#f59e0b66;color:var(--semantic-warning, #fbbf24)}.alert-trigger-badge.info{background:#3b82f666;color:var(--accent-primary, #93c5fd)}.alert-item-message{font-size:11px;color:var(--text-secondary, #9ca3af);line-height:1.4;margin-bottom:6px}.alert-item-footer{display:flex;align-items:center;gap:10px;font-size:10px}.alert-zone-name{padding:2px 6px;background:#47556966;border-radius:3px;color:var(--text-muted, #6b7280)}.alert-timestamp{color:var(--text-muted, #6b7280)}.floating-alert-popup .alert-rule-badge,.floating-alert-popup .alert-severity-badge{font-size:9px;font-weight:600;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}.floating-alert-popup .alert-mmsi{font-size:10px;font-family:SF Mono,Consolas,monospace;color:var(--text-muted, #6b7280)}.floating-alert-popup .alert-source-badge{font-size:9px;font-weight:600;padding:1px 4px;border-radius:3px;background:#60a5fa26;color:#60a5fa;text-transform:uppercase}.floating-alert-popup .alert-feed-badge{font-size:9px;font-weight:500;padding:1px 4px;border-radius:3px;background:#22d3ee1f;color:#22d3ee}.alert-dismiss-btn{flex-shrink:0;padding:4px 8px;background:transparent;border:none;color:var(--text-muted, #6b7280);font-size:14px;cursor:pointer;border-radius:4px;transition:all .15s ease}.alert-dismiss-btn:hover{background:#ef444433;color:var(--semantic-error, #fca5a5)}.floating-popup-footer{padding:10px 14px;border-top:1px solid rgba(71,85,105,.3);background:#1e1e2680}.show-more-btn{width:100%;padding:8px;background:transparent;border:1px solid rgba(71,85,105,.5);border-radius:6px;font-size:11px;color:var(--text-secondary, #9ca3af);cursor:pointer;transition:all .15s ease}.show-more-btn:hover{background:#4755694d;border-color:#475569b3;color:var(--text-primary, #e5e7eb)}[data-theme=lunar-light] .floating-alert-popup{background:#f5f5f5fa;border-color:#00000026;box-shadow:0 8px 32px #00000026}[data-theme=lunar-light] .floating-popup-header{border-bottom-color:#0000001a;background:#e8e8e880}[data-theme=lunar-light] .floating-alert-item{border-bottom-color:#00000014}[data-theme=lunar-light] .floating-alert-item:hover{background:#0000000d}[data-theme=lunar-light] .floating-alert-item.critical{background:#b91c1c14;border-left-color:#b91c1c}[data-theme=lunar-light] .floating-alert-item.critical:hover{background:#b91c1c26}[data-theme=lunar-light] .floating-alert-item.warning{background:#d9770614;border-left-color:#d97706}[data-theme=lunar-light] .floating-alert-item.warning:hover{background:#d9770626}[data-theme=lunar-light] .floating-alert-item.info{background:#2563eb14;border-left-color:#2563eb}[data-theme=lunar-light] .floating-alert-item.info:hover{background:#2563eb26}[data-theme=lunar-light] .alert-zone-name{background:#00000014}[data-theme=lunar-light] .alert-trigger-badge.critical{background:#b91c1c26;color:#b91c1c}[data-theme=lunar-light] .alert-trigger-badge.warning{background:#d9770626;color:#d97706}[data-theme=lunar-light] .alert-trigger-badge.info{background:#2563eb26;color:#2563eb}[data-theme=lunar-light] .popup-view-all{border-color:#2563eb66}[data-theme=lunar-light] .popup-view-all:hover{background:#2563eb1a}[data-theme=lunar-light] .floating-popup-footer{border-top-color:#0000001a;background:#e8e8e880}[data-theme=lunar-light] .show-more-btn{border-color:#00000026}[data-theme=lunar-light] .show-more-btn:hover{background:#0000000f;border-color:#00000040}[data-theme=lunar-light] .alert-dismiss-btn:hover{background:#b91c1c1a;color:#b91c1c}.alert-notifier{position:relative;display:flex;align-items:center}.alert-bell{display:flex;align-items:center;justify-content:center;position:relative;width:32px;height:32px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary, rgba(255, 255, 255, .7));cursor:pointer;transition:all .15s ease}.alert-bell:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .1));color:var(--text-primary, rgba(255, 255, 255, .95))}.alert-bell.has-alerts{color:var(--semantic-warning, #f59e0b)}.alert-bell.dnd{color:var(--text-muted, rgba(255, 255, 255, .5))}.alert-bell .dnd-slash{stroke:var(--semantic-error, #ef4444);stroke-width:2.5}.alert-badge{position:absolute;top:2px;right:2px;min-width:16px;height:16px;padding:0 4px;background:var(--semantic-warning, #f59e0b);border-radius:8px;font-size:10px;font-weight:600;color:#000;display:flex;align-items:center;justify-content:center;animation:badge-pulse 2s ease-in-out infinite}.alert-badge.critical{background:var(--semantic-error, #ef4444);color:#fff}.alert-badge.warning{background:var(--semantic-warning, #f59e0b);color:#000}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.alert-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:280px;background:var(--dashboard-surface-elevated, rgba(40, 40, 50, .98));border:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:0 8px 32px #0006;z-index:var(--z-dropdown, 100);overflow:hidden}.alert-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.dropdown-title{font-size:13px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.alert-count-label{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5))}.alert-dropdown-content{padding:8px}.display-mode-selector{display:flex;gap:2px;padding:4px;background:var(--transport-bg, rgba(255, 255, 255, .04));border-radius:6px}.display-mode-btn{flex:1;padding:5px 0;border:none;border-radius:4px;background:transparent;color:var(--text-muted, rgba(255, 255, 255, .5));font-size:11px;font-weight:500;cursor:pointer;transition:all .15s ease}.display-mode-btn:hover{color:var(--text-secondary, rgba(255, 255, 255, .7));background:#ffffff0f}.display-mode-btn.active{background:var(--accent-primary, #60a5fa);color:#000;font-weight:600}.dnd-description{padding:6px 10px;font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5));font-style:italic}.dropdown-divider{height:1px;background:var(--dashboard-border, rgba(255, 255, 255, .08));margin:8px 0}.recent-alerts{display:flex;flex-direction:column;gap:4px}.recent-alert-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;background:transparent;border:none;border-radius:6px;text-align:left;cursor:pointer;transition:background .15s ease;width:100%}.recent-alert-item:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .06))}.recent-alert-item.critical{border-left:3px solid var(--semantic-error, #ef4444)}.recent-alert-item.warning{border-left:3px solid var(--semantic-warning, #f59e0b)}.recent-alert-item.info{border-left:3px solid var(--accent-primary, #60a5fa)}.alert-level-icon{font-size:12px;flex-shrink:0}.recent-alert-item.critical .alert-level-icon{color:var(--semantic-error, #ef4444)}.recent-alert-item.warning .alert-level-icon{color:var(--semantic-warning, #f59e0b)}.recent-alert-item.info .alert-level-icon{color:var(--accent-primary, #60a5fa)}.alert-summary{display:flex;flex-direction:column;gap:2px;overflow:hidden}.alert-entity{font-size:12px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.alert-message{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.view-all-button{display:block;width:100%;padding:10px;margin-top:8px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:6px;font-size:12px;font-weight:500;color:var(--accent-primary, #60a5fa);cursor:pointer;transition:all .15s ease}.view-all-button:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .1));border-color:var(--accent-primary, #60a5fa)}.no-alerts{display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px;color:var(--text-muted, rgba(255, 255, 255, .5))}.no-alerts svg{opacity:.5}.no-alerts span{font-size:12px}.alert-metrics{display:flex;flex-direction:column;gap:6px;padding:8px 0}.metric-row{display:flex;align-items:center;gap:8px;font-size:11px}.metric-label{width:60px;text-transform:capitalize;color:var(--text-secondary, rgba(255, 255, 255, .7));font-weight:500;text-align:right;flex-shrink:0}.metric-bar-bg{flex:1;height:6px;background:var(--transport-bg, rgba(255, 255, 255, .06));border-radius:3px;overflow:hidden}.metric-bar{height:100%;background:var(--accent-primary, #60a5fa);border-radius:3px;min-width:3px;transition:width .3s ease}.metric-count{width:28px;text-align:right;font-weight:600;font-size:11px;color:var(--text-primary, rgba(255, 255, 255, .9));font-variant-numeric:tabular-nums;flex-shrink:0}.alert-ticker-wrapper{display:flex;align-items:center;width:100%;gap:4px}.alert-ticker{flex:1;overflow:hidden;-webkit-mask-image:linear-gradient(to right,transparent,black 16px,black calc(100% - 16px),transparent);mask-image:linear-gradient(to right,transparent,black 16px,black calc(100% - 16px),transparent);min-width:0}.ticker-clear-btn{flex-shrink:0;opacity:0;transition:opacity .2s ease;background:none;border:1px solid transparent;border-radius:3px;color:var(--text-muted, rgba(255, 255, 255, .4));font-size:12px;padding:2px 4px;cursor:pointer;line-height:1}.alert-ticker-wrapper:hover .ticker-clear-btn{opacity:1}.ticker-clear-btn:hover{color:var(--semantic-error, #f87171);border-color:#ef44444d}.alert-ticker-track{display:inline-flex;gap:32px;animation:ticker-scroll 30s linear infinite;white-space:nowrap}.alert-ticker-track:hover{animation-play-state:paused}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-item{display:flex;align-items:center;gap:6px;padding:4px 8px;background:transparent;border:none;border-radius:4px;white-space:nowrap;cursor:pointer;font-size:11px;transition:background .15s ease;position:relative;z-index:1}.ticker-item:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .1))}.ticker-item.critical{color:var(--semantic-error, #fca5a5)}.ticker-item.warning{color:var(--semantic-warning, #fbbf24)}.ticker-item.info{color:var(--accent-primary, #93c5fd)}.ticker-icon{font-weight:600}.ticker-entity{font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95))}.ticker-separator{color:var(--text-muted, rgba(255, 255, 255, .3))}.ticker-message{color:var(--text-secondary, rgba(255, 255, 255, .7));max-width:200px;overflow:hidden;text-overflow:ellipsis}.alert-settings-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:alertSettingsFadeIn .15s ease-out}@keyframes alertSettingsFadeIn{0%{opacity:0}to{opacity:1}}.alert-settings-modal{background:var(--dashboard-surface, #1a1a1f);border-radius:12px;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));width:620px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080;animation:alertSettingsSlideUp .2s ease-out}@keyframes alertSettingsSlideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.alert-settings-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));cursor:move;-webkit-user-select:none;user-select:none}.alert-settings-header.dragging{cursor:grabbing}.alert-settings-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary, #fff);letter-spacing:.3px}.alert-settings-header .modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:#888;cursor:pointer!important;transition:all .15s}.alert-settings-header .modal-close:hover{background:#ffffff1a;color:#fff}.alert-settings-tabs{display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));overflow:visible;flex-wrap:wrap}.alert-settings-tab{padding:8px 14px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.alert-settings-tab:hover{color:var(--text-primary, rgba(255, 255, 255, .95));background:#ffffff0a}.alert-settings-tab.active{color:var(--accent-primary, #60a5fa);border-bottom-color:var(--accent-primary, #60a5fa)}.alert-settings-tab-add{padding:8px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-muted, rgba(255, 255, 255, .4));font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.alert-settings-tab-add:hover{color:var(--accent-primary, #60a5fa);background:#60a5fa14}.alert-settings-content{flex:1;overflow-y:auto;padding:20px;min-height:200px}.settings-field{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}.settings-field:last-child{border-bottom:none}.settings-field-label{font-size:13px;color:var(--text-primary, rgba(255, 255, 255, .9))}.settings-field-hint{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .4));margin-top:2px}.settings-toggle{position:relative;width:36px;height:20px;background:#ffffff26;border:none;border-radius:10px;cursor:pointer;transition:background .2s ease;padding:0;flex-shrink:0}.settings-toggle.on{background:var(--accent-primary, #60a5fa)}.settings-toggle:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .2s ease}.settings-toggle.on:after{transform:translate(16px)}.settings-number-input{width:80px;padding:6px 10px;background:#ffffff0f;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .15));border-radius:6px;color:var(--text-primary, #fff);font-size:13px;text-align:right;transition:border-color .15s ease}.settings-number-input:focus{outline:none;border-color:var(--accent-primary, #60a5fa)}.settings-select{padding:6px 10px;background:#ffffff0f;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .15));border-radius:6px;color:var(--text-primary, #fff);font-size:13px;cursor:pointer;transition:border-color .15s ease}.settings-select:focus{outline:none;border-color:var(--accent-primary, #60a5fa)}.settings-select option{background:#1a1a1f;color:#fff}.settings-info{padding:12px 14px;background:#60a5fa14;border:1px solid rgba(96,165,250,.15);border-radius:8px;font-size:12px;color:var(--text-secondary, rgba(255, 255, 255, .7));line-height:1.5}.settings-remove-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:6px;color:#ef4444;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;margin-top:16px}.settings-remove-btn:hover{background:#ef444433;border-color:#ef444466}.alert-settings-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));background:#00000026;border-radius:0 0 12px 12px}.settings-btn{padding:8px 20px;border-radius:6px;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .15))}.settings-btn-cancel{background:transparent;color:var(--text-secondary, rgba(255, 255, 255, .7))}.settings-btn-cancel:hover{background:#ffffff0f;color:var(--text-primary, #fff)}.settings-btn-save{background:var(--accent-primary, #60a5fa);color:#fff;border-color:var(--accent-primary, #60a5fa)}.settings-btn-save:hover{background:#3b82f6;border-color:#3b82f6}.add-alert-picker{position:absolute;top:100%;right:0;margin-top:4px;background:var(--dashboard-surface, #1a1a1f);border:1px solid var(--dashboard-border, rgba(255, 255, 255, .15));border-radius:8px;box-shadow:0 4px 16px #0006;z-index:10;min-width:180px;overflow:hidden}.add-alert-picker-item{display:block;width:100%;padding:10px 14px;background:transparent;border:none;color:var(--text-primary, rgba(255, 255, 255, .9));font-size:12px;text-align:left;cursor:pointer;transition:background .1s ease}.add-alert-picker-item:hover{background:#ffffff0f}.add-alert-picker-item:disabled{opacity:.4;cursor:not-allowed}.add-alert-picker-empty{padding:10px 14px;font-size:12px;color:var(--text-muted, rgba(255, 255, 255, .4))}.alert-settings-content::-webkit-scrollbar{width:8px}.alert-settings-content::-webkit-scrollbar-track{background:transparent}.alert-settings-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.alert-settings-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.alert-table-overlay{position:fixed;inset:0;background:#000000b3;z-index:10000;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.alert-table-modal{background:var(--panel-bg, #111118);border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:12px;width:90vw;max-width:1200px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080}.alert-table-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .08))}.alert-table-title{display:flex;align-items:center;gap:8px}.alert-table-title h2{margin:0;font-size:14px;font-weight:600}.alert-table-count{font-size:11px;color:var(--text-muted);background:#ffffff0f;padding:2px 8px;border-radius:10px}.alert-table-close{background:none;border:none;color:var(--text-muted);font-size:16px;cursor:pointer;padding:4px 8px;border-radius:4px}.alert-table-close:hover{background:#ffffff1a;color:var(--text-primary)}.alert-table-toolbar{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .06));flex-wrap:wrap}.alert-table-tabs{display:flex;gap:2px}.alert-table-tab{padding:5px 12px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer}.alert-table-tab.active{color:var(--accent-primary, #60a5fa);border-bottom-color:var(--accent-primary, #60a5fa)}.alert-table-search{display:flex;gap:6px;flex:1}.alert-table-search input{flex:1;padding:5px 10px;background:var(--bg-surface, rgba(255, 255, 255, .06));border:1px solid var(--border-secondary, rgba(255, 255, 255, .15));border-radius:6px;color:var(--text-primary);font-size:12px}.alert-table-datetime{padding:4px 8px;background:var(--bg-surface, rgba(255, 255, 255, .06));border:1px solid var(--border-secondary, rgba(255, 255, 255, .15));border-radius:6px;color:var(--text-primary);font-size:11px;width:170px;color-scheme:dark;outline:none}.alert-table-datetime:focus{border-color:var(--accent-primary, #60a5fa)}[data-theme=light] .alert-table-datetime,:root:not([data-theme=dark]) .alert-table-datetime{color-scheme:light}.alert-table-search button,.alert-table-filters .alert-search-btn{padding:5px 14px;background:var(--accent-primary, #60a5fa);border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer}.alert-table-filters{display:flex;gap:6px}.alert-table-filters select{padding:5px 8px;background:var(--bg-surface, rgba(255, 255, 255, .06));border:1px solid var(--border-secondary, rgba(255, 255, 255, .15));border-radius:6px;color:var(--text-primary);font-size:11px;cursor:pointer;color-scheme:dark;outline:none}.alert-table-filters select:focus{border-color:var(--accent-primary, #60a5fa)}[data-theme=light] .alert-table-filters select{color-scheme:light}.alert-table-wrapper{flex:1;overflow:auto;min-height:0}.alert-table{width:100%;border-collapse:collapse;font-size:12px}.alert-table thead th{position:sticky;top:0;background:var(--bg-surface, #1a1a1f);padding:8px 10px;text-align:left;font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .08));white-space:nowrap}.alert-table thead th.sortable{cursor:pointer}.alert-table thead th.sortable:hover{color:var(--text-primary)}.alert-table-row{cursor:pointer;transition:background .1s}.alert-table-row:hover{background:#ffffff0a}.alert-table-row td{padding:6px 10px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:middle}.col-time{font-family:monospace;font-size:11px;white-space:nowrap;color:var(--text-secondary)}.col-mmsi{font-family:monospace;color:var(--accent-primary, #60a5fa)}.col-name{color:var(--text-primary);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.col-feed{font-size:11px;color:#22d3ee;white-space:nowrap}.col-detail{color:var(--text-secondary);font-size:11px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rule-badge,.severity-badge{padding:2px 6px;border-radius:3px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}.alert-table-empty,.alert-table-loading{text-align:center;padding:40px 20px;color:var(--text-muted)}.alert-table-footer{padding:8px 16px;font-size:11px;color:var(--text-muted);border-top:1px solid var(--border-primary, rgba(255, 255, 255, .06));text-align:right}.contact-settings-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:contactSettingsFadeIn .15s ease-out}@keyframes contactSettingsFadeIn{0%{opacity:0}to{opacity:1}}.contact-settings-modal{background:var(--dashboard-surface, #1a1a1f);border-radius:12px;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));width:520px;max-height:75vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080;animation:contactSettingsSlideUp .2s ease-out}@keyframes contactSettingsSlideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.contact-settings-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));cursor:move;-webkit-user-select:none;user-select:none}.contact-settings-header.dragging{cursor:grabbing}.contact-settings-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary, #fff);letter-spacing:.3px}.contact-settings-header .modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:#888;cursor:pointer!important;transition:all .15s}.contact-settings-header .modal-close:hover{background:#ffffff1a;color:#fff}.contact-settings-tabs{display:flex;gap:2px;padding:8px 12px 0;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.contact-settings-tab{padding:8px 14px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;white-space:nowrap}.contact-settings-tab:hover{color:var(--text-primary, rgba(255, 255, 255, .95));background:#ffffff0a}.contact-settings-tab.active{color:var(--accent-primary, #60a5fa);border-bottom-color:var(--accent-primary, #60a5fa)}.contact-settings-content{flex:1;overflow-y:auto;padding:20px;min-height:200px}.contact-settings-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));background:#00000026;border-radius:0 0 12px 12px}.settings-section-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--accent-primary, #60a5fa);margin-bottom:8px}.settings-icon-grid{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.settings-icon-btn{display:flex;align-items:center;gap:4px;padding:6px 10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:11px;cursor:pointer;transition:all .15s}.settings-icon-btn:hover{background:#ffffff14;color:var(--text-primary, #fff)}.settings-icon-btn.active{background:#60a5fa26;border-color:var(--accent-primary, #60a5fa);color:var(--accent-primary, #60a5fa)}.settings-slider-group{display:flex;align-items:center;gap:8px}.settings-slider-group input[type=range]{width:120px}.settings-slider-value{font-size:11px;color:var(--text-secondary);min-width:50px;text-align:right}.settings-color-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.settings-color-chip{display:flex;align-items:center;gap:4px;padding:3px 8px;background:#ffffff0a;border-radius:4px;font-size:11px;color:var(--text-secondary)}.settings-color-swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.settings-color-name{white-space:nowrap}.settings-color-input{width:32px;height:24px;border:1px solid rgba(255,255,255,.15);border-radius:4px;background:transparent;cursor:pointer;padding:0}.settings-color-input::-webkit-color-swatch-wrapper{padding:2px}.settings-color-input::-webkit-color-swatch{border:none;border-radius:2px}.settings-colormap-preview{display:inline-block;width:120px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.1)}.settings-range-inputs{display:flex;align-items:center;gap:6px}.settings-range-inputs .settings-number-input{width:60px}.settings-stats-row{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04)}.settings-stat{display:flex;flex-direction:column;gap:2px}.settings-stat-label{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .4));text-transform:uppercase;letter-spacing:.5px}.settings-stat-value{font-size:16px;font-weight:600;color:var(--text-primary, #fff)}.settings-radio-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text-primary);cursor:pointer}.settings-radio-label input[type=radio]{accent-color:var(--accent-primary, #60a5fa)}.settings-progress{margin-top:8px}.settings-progress-bar{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden;margin-bottom:4px}.settings-progress-fill{height:100%;background:var(--accent-primary, #60a5fa);border-radius:3px;transition:width .3s ease}.settings-btn-primary{background:var(--accent-primary, #60a5fa);color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.settings-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.settings-btn-primary:disabled{opacity:.5;cursor:not-allowed}.settings-error{margin-top:8px;padding:8px 12px;background:#ef44441a;border:1px solid rgba(239,68,68,.25);border-radius:6px;color:#ef4444;font-size:12px}.settings-favorites-list{display:flex;flex-direction:column;gap:2px}.settings-favorite-item{display:flex;align-items:center;gap:8px;padding:6px 10px;background:#ffffff08;border-radius:4px;transition:background .15s}.settings-favorite-item.clickable{cursor:pointer}.settings-favorite-item.clickable:hover{background:#ffffff14}.settings-favorite-status{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:#ffffff26}.settings-favorite-status.online{background:#10b981;box-shadow:0 0 4px #10b98166}.settings-favorite-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.settings-favorite-name{font-size:13px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.settings-favorite-meta{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .4));font-family:monospace}.settings-favorite-remove{background:transparent;border:none;color:var(--text-muted, rgba(255, 255, 255, .4));cursor:pointer;font-size:14px;padding:2px 6px;border-radius:3px;transition:all .15s}.settings-favorite-remove:hover{background:#ef444426;color:#ef4444}.vessel-table-container{position:absolute;inset:1rem;background:var(--panel-bg, rgba(20, 20, 20, .98));border:1px solid var(--border-primary, #333);border-radius:8px;display:flex;flex-direction:column;z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:var(--shadow-lg, 0 8px 32px rgba(0, 0, 0, .5))}.vessel-table-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-primary, #333);flex-shrink:0}.vessel-table-title{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--text-primary, #fff)}.vessel-table-icon{color:var(--accent-primary, #3b82f6);display:flex;align-items:center}.vessel-table-count{font-size:.75rem;font-weight:500;color:var(--text-secondary, #888);background:var(--bg-surface, #252525);padding:.2rem .5rem;border-radius:4px}.vessel-table-time-range{margin-left:.25rem;color:var(--text-muted, #666)}.vessel-table-time-switch{display:flex;align-items:center;margin-left:.5rem;background:var(--bg-surface, #1a1a1a);border:1px solid var(--border-primary, #333);border-radius:4px;overflow:hidden}.time-switch-option{padding:.3rem .6rem;background:transparent;border:none;color:var(--text-muted, #666);font-size:.7rem;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.time-switch-option:first-child{border-right:1px solid var(--border-primary, #333)}.time-switch-option:hover:not(.active){background:var(--bg-hover, #252525);color:var(--text-secondary, #aaa)}.time-switch-option.active{background:#3b82f633;color:#60a5fa}.vessel-table-actions{display:flex;align-items:center;gap:.75rem}.vessel-table-search{width:220px;padding:.5rem .75rem;background:var(--bg-surface, #1a1a1a);border:1px solid var(--border-primary, #333);border-radius:6px;color:var(--text-primary, #fff);font-size:.85rem}.vessel-table-search:focus{outline:none;border-color:var(--accent-primary, #3b82f6)}.vessel-table-search::placeholder{color:var(--text-muted, #666)}.export-dropdown{position:relative}.vessel-table-export{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--bg-surface, #1a1a1a);border:1px solid var(--border-primary, #333);border-radius:6px;color:var(--text-secondary, #888);font-size:.8rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.vessel-table-export:hover{background:var(--bg-hover, #252525);border-color:var(--accent-primary, #3b82f6);color:var(--text-primary, #fff)}.vessel-table-export svg{flex-shrink:0}.vessel-table-export .dropdown-arrow{margin-left:.125rem;opacity:.6}.export-menu{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--menu-bg, #1a1a1a);border:1px solid var(--border-secondary, #444);border-radius:6px;min-width:160px;box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .4));z-index:100;overflow:hidden}.export-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.625rem .875rem;background:transparent;border:none;color:var(--text-secondary, #ccc);font-size:.85rem;text-align:left;cursor:pointer;transition:background .1s}.export-menu-item:hover{background:var(--bg-active, rgba(59, 130, 246, .15));color:var(--text-primary, #fff)}.export-menu-item:not(:last-child){border-bottom:1px solid var(--border-primary, #333)}.export-format-name{font-weight:500}.export-format-ext{font-size:.75rem;color:var(--text-muted, #666);font-family:ui-monospace,SF Mono,Monaco,monospace}.import-dropdown{position:relative}.vessel-table-import{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--bg-surface, #1a1a1a);border:1px solid var(--border-primary, #333);border-radius:6px;color:var(--text-secondary, #888);font-size:.8rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.vessel-table-import:hover{background:var(--bg-hover, #252525);border-color:#10b981;color:var(--text-primary, #fff)}.vessel-table-import svg{flex-shrink:0}.vessel-table-import .dropdown-arrow{margin-left:.125rem;opacity:.6}.import-menu{position:absolute;top:100%;right:0;margin-top:.25rem;background:var(--menu-bg, #1a1a1a);border:1px solid var(--border-secondary, #444);border-radius:6px;min-width:160px;box-shadow:var(--shadow-md, 0 4px 12px rgba(0, 0, 0, .4));z-index:100;overflow:hidden}.import-menu-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.625rem .875rem;background:transparent;border:none;color:var(--text-secondary, #ccc);font-size:.85rem;text-align:left;cursor:pointer;transition:background .1s}.import-menu-item:hover{background:#10b98126;color:var(--text-primary, #fff)}.import-menu-item:not(:last-child){border-bottom:1px solid var(--border-primary, #333)}.import-format-name{font-weight:500}.import-format-ext{font-size:.75rem;color:var(--text-muted, #666);font-family:ui-monospace,SF Mono,Monaco,monospace}.import-error{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444;font-size:.75rem}.import-error svg{flex-shrink:0}.import-error-dismiss{margin-left:.25rem;padding:0;background:none;border:none;color:#ef4444;font-size:1rem;cursor:pointer;opacity:.7;transition:opacity .15s}.import-error-dismiss:hover{opacity:1}.vessel-table-close{width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary, #888);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.vessel-table-close:hover{background:var(--bg-hover, rgba(255, 255, 255, .1));color:var(--text-primary, #fff)}.vessel-table-wrapper{flex:1;overflow:auto;min-height:0}.vessel-table{width:100%;border-collapse:collapse;font-size:.85rem}.vessel-table thead{position:sticky;top:0;z-index:1}.vessel-table th{background:var(--bg-surface, #1a1a1a);color:var(--text-secondary, #888);font-weight:600;text-align:left;padding:.75rem 1rem;border-bottom:1px solid var(--border-primary, #333);white-space:nowrap;text-transform:uppercase;font-size:.7rem;letter-spacing:.05em}.vessel-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s}.vessel-table th.sortable:hover{color:var(--text-primary, #fff)}.vessel-table th.custom-field{background:var(--bg-surface-alt, #1f1f1f);color:var(--text-muted, #6b7280)}.vessel-table td{padding:.625rem 1rem;border-bottom:1px solid var(--border-subtle, #252525);color:var(--text-secondary, #ccc);vertical-align:middle}.vessel-table tbody tr{transition:background .1s;cursor:pointer}.vessel-table tbody tr:hover{background:var(--bg-hover, rgba(255, 255, 255, .03))}.vessel-table tbody tr.selected{background:#3b82f626}.vessel-table tbody tr.selected td{color:var(--text-primary, #fff)}.vessel-name-cell{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-primary, #fff)}.vessel-color-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.monospace{font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:.8rem}.country-cell{display:flex;align-items:center;gap:.375rem}.country-cell .flag{font-size:1rem}.type-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.type-badge.type-cargo{background:#3b82f633;color:#3b82f6}.type-badge.type-tanker{background:#f59e0b33;color:#f59e0b}.type-badge.type-fishing{background:#10b98133;color:#10b981}.type-badge.type-passenger{background:#8b5cf633;color:#8b5cf6}.type-badge.type-unknown{background:#6b728033;color:#6b7280}.status-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;font-weight:500;background:var(--transport-bg, rgba(255, 255, 255, .08));color:var(--text-secondary, #aaa);white-space:nowrap}.status-badge.status-underway_engine,.status-badge.status-underway_sailing{background:#10b98126;color:#10b981}.status-badge.status-at_anchor,.status-badge.status-moored{background:#3b82f626;color:#3b82f6}.status-badge.status-fishing{background:#8b5cf626;color:#8b5cf6}.status-badge.status-aground,.status-badge.status-not_under_command{background:#ef444426;color:#ef4444}.status-badge.status-restricted_maneuverability{background:#f59e0b26;color:#f59e0b}.custom-field-cell{color:var(--text-secondary, #888);font-size:.8rem}.vessel-table-footer{display:flex;align-items:center;justify-content:space-between;padding:.625rem 1rem;border-top:1px solid var(--border-primary, #333);flex-shrink:0}.history-info{font-size:.75rem;color:var(--text-muted, #666)}.color-picker-section{margin-top:10px}.color-picker-label{font-size:11px;color:var(--text-muted, #6b7280);margin-bottom:6px}.color-picker-row{display:flex;align-items:center;gap:12px}.color-swatches{display:flex;gap:6px;flex-wrap:wrap}.color-swatch{width:24px;height:24px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:all .2s;padding:0;background:none}.color-swatch:hover{transform:scale(1.15)}.color-swatch.selected{border-color:#fff;box-shadow:0 0 0 2px #00000080}.color-swatch.outline-mode{border-width:2px;border-style:solid}.color-swatch.outline-mode.selected{border-width:3px;box-shadow:0 0 0 2px #fff}.color-input{width:32px;height:32px;padding:0;border:none;border-radius:4px;cursor:pointer;background:transparent;flex-shrink:0}.color-input::-webkit-color-swatch-wrapper{padding:0}.color-input::-webkit-color-swatch{border-radius:4px;border:1px solid rgba(255,255,255,.2)}.asset-control-panel{position:absolute;top:10px;left:10px;width:320px;max-height:calc(100vh - 120px);background:var(--bg-elevated, rgba(20, 20, 25, .95));border-radius:8px;border:1px solid var(--border-primary, rgba(255, 255, 255, .1));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;z-index:100;box-shadow:var(--shadow-panel, 0 4px 20px rgba(0, 0, 0, .4))}.asset-control-panel.collapsed{width:40px;height:40px;padding:0;display:flex;align-items:center;justify-content:center}.asset-control-panel.embedded{position:static;width:100%;max-height:none;height:100%;background:transparent;border:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.panel-expand-btn,.panel-collapse-btn{background:transparent;border:none;color:var(--text-secondary, rgba(255, 255, 255, .7));cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center}.panel-expand-btn:hover,.panel-collapse-btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .1));color:var(--text-primary, white)}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.panel-header h2{margin:0;font-size:14px;font-weight:600;color:var(--text-primary, white)}.panel-header-title{display:flex;align-items:center;gap:8px}.add-asset-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#22c55e33;border:1px solid rgba(34,197,94,.4);border-radius:4px;color:#22c55e;cursor:pointer;transition:all .2s}.add-asset-btn:hover{background:#22c55e4d;border-color:#22c55e;transform:scale(1.05)}.panel-tabs{display:flex;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.panel-tab{flex:1;padding:10px 8px;background:transparent;border:none;color:var(--text-secondary, rgba(255, 255, 255, .6));font-size:12px;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}.panel-tab:hover:not(:disabled){color:var(--text-primary, rgba(255, 255, 255, .9));background:var(--bg-hover, rgba(255, 255, 255, .05))}.panel-tab.active{color:var(--accent-primary, #3b82f6);border-bottom-color:var(--accent-primary, #3b82f6)}.panel-tab:disabled{opacity:.4;cursor:not-allowed}.panel-content{flex:1;overflow-y:auto;padding:12px}.empty-state{text-align:center;padding:32px 16px;color:var(--text-muted, rgba(255, 255, 255, .5))}.empty-state p{margin:0 0 8px;font-size:14px}.empty-state .hint{font-size:12px;color:var(--text-disabled, rgba(255, 255, 255, .3))}.asset-list{display:flex;flex-direction:column;gap:8px}.asset-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--transport-bg, rgba(255, 255, 255, .05));border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s;text-align:left;width:100%}.asset-item:hover{background:var(--bg-hover, rgba(255, 255, 255, .1));border-color:var(--border-primary, rgba(255, 255, 255, .1))}.asset-item.selected{background:var(--bg-active, rgba(59, 130, 246, .2));border-color:var(--border-accent, rgba(59, 130, 246, .4))}.asset-icon{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600;color:var(--text-primary, white)}.asset-info{flex:1;display:flex;flex-direction:column;gap:2px}.asset-name{font-size:13px;font-weight:500;color:var(--text-primary, white)}.asset-type{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5))}.asset-status{display:flex;align-items:center}.status-dot{width:8px;height:8px;border-radius:50%;background:#6b7280}.status-dot.active{background:#22c55e;box-shadow:0 0 8px #22c55e80}.asset-actions{display:flex;align-items:center;opacity:0;transition:opacity .15s}.asset-item:hover .asset-actions{opacity:1}.asset-item:hover .asset-status{display:none}.asset-edit-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:#ffffff1a;color:var(--text-secondary, #aaa);cursor:pointer;transition:all .15s}.asset-edit-btn:hover{background:#fff3;color:#fff}.asset-card{border:1px solid transparent;border-radius:8px;transition:border-color .15s}.asset-card.selected{border-color:var(--accent-primary, #60a5fa)}.asset-mission-list{padding:0 0 .5rem;border-top:1px solid rgba(255,255,255,.06)}.mission-group{padding:.25rem 0}.mission-header{display:flex;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, #888)}.mission-name{flex:1}.mission-count{font-size:.65rem;background:#ffffff14;padding:.1em .4em;border-radius:9999px}.mission-command-row{display:flex;align-items:center;gap:.35rem;padding:.2rem .75rem .2rem 1.25rem;font-size:.75rem;color:var(--text-secondary, #bbb)}.mission-cmd-order{color:var(--text-muted, #666);width:1.2em;font-variant-numeric:tabular-nums}.mission-cmd-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mission-cmd-time{font-size:.7rem;color:var(--text-muted, #888);font-variant-numeric:tabular-nums}.mission-cmd-status{font-size:.6rem;font-weight:600;text-transform:uppercase;padding:.1em .3em;border-radius:3px}.mission-cmd-status.scheduled{background:#60a5fa26;color:#60a5fa}.mission-cmd-status.pending{background:#f59e0b26;color:#f59e0b}.mission-cmd-status.executing{background:#10b98126;color:#10b981}.mission-cmd-status.completed{background:#64748b26;color:#94a3b8}.mission-cmd-status.failed{background:#ef444426;color:#ef4444}.mission-cmd-status.edit{background:#60a5fa33;color:#60a5fa}.mission-cmd-edit-actions{display:flex;align-items:center;gap:4px}.mission-cmd-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:4px;background:#ffffff14;color:var(--text-muted);cursor:pointer;transition:all .15s}.mission-cmd-btn:hover{background:#ffffff26;color:#fff}.command-palette{display:flex;flex-direction:column;gap:12px}.palette-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:8px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.plugin-name{font-size:13px;font-weight:500;color:var(--text-primary, white)}.command-count{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5))}.command-categories{display:flex;flex-direction:column;gap:4px}.command-category{background:var(--transport-bg, rgba(255, 255, 255, .03));border-radius:6px;overflow:hidden}.category-header{display:flex;align-items:center;width:100%;padding:10px 12px;background:transparent;border:none;cursor:pointer;color:var(--text-secondary, rgba(255, 255, 255, .8));transition:background .2s}.category-header:hover{background:var(--bg-hover, rgba(255, 255, 255, .05))}.category-name{flex:1;text-align:left;font-size:12px;font-weight:500}.category-count{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .4));margin-right:8px}.expand-icon{transition:transform .2s}.expand-icon.expanded{transform:rotate(180deg)}.category-commands{display:flex;flex-direction:column;padding:4px 8px 8px;gap:4px}.command-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;background:var(--transport-bg, rgba(255, 255, 255, .05));border:1px solid transparent;border-radius:4px;cursor:pointer;transition:all .2s;text-align:left;width:100%}.command-item:hover{background:var(--bg-active, rgba(59, 130, 246, .2));border-color:var(--border-accent, rgba(59, 130, 246, .3))}.command-item.emergency{background:#ef44441a}.command-item.emergency:hover{background:#ef444433;border-color:#ef44444d}.command-name{font-size:12px;color:var(--text-primary, white)}.param-count{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .4));background:var(--transport-bg, rgba(255, 255, 255, .1));padding:2px 6px;border-radius:3px}.command-queue{display:flex;flex-direction:column;gap:6px}.queue-item{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--transport-bg, rgba(255, 255, 255, .05));border:1px solid transparent;border-radius:6px;cursor:pointer;transition:all .2s}.queue-item:hover{background:var(--bg-hover, rgba(255, 255, 255, .08))}.queue-item.selected{border-color:var(--border-accent, rgba(59, 130, 246, .5));background:var(--bg-active, rgba(59, 130, 246, .1))}.queue-order{width:24px;height:24px;background:var(--transport-bg, rgba(255, 255, 255, .1));border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;color:var(--text-secondary, rgba(255, 255, 255, .7))}.queue-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.queue-name{font-size:12px;color:var(--text-primary, white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.queue-time{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5));font-family:monospace}.queue-status{padding:3px 8px;border-radius:3px;font-size:10px;font-weight:500;color:var(--text-primary, white);white-space:nowrap}.queue-actions{display:flex;gap:2px}.queue-btn{width:22px;height:22px;background:var(--transport-bg, rgba(255, 255, 255, .1));border:none;border-radius:3px;color:var(--text-secondary, rgba(255, 255, 255, .6));cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s}.queue-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255, 255, 255, .2));color:var(--text-primary, white)}.queue-btn:disabled{opacity:.3;cursor:not-allowed}.queue-btn.remove:hover{background:#ef44444d;color:#ef4444}.dialog-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.add-command-dialog{background:var(--panel-bg, #1a1a1f);border-radius:12px;border:1px solid var(--border-primary, rgba(255, 255, 255, .1));width:400px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-lg, 0 8px 32px rgba(0, 0, 0, .5))}.dialog-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1));cursor:move;-webkit-user-select:none;user-select:none}.dialog-header.dragging{cursor:grabbing}.dialog-header h3{margin:0;font-size:16px;font-weight:600;color:var(--text-primary, white)}.dialog-close{background:transparent;border:none;color:var(--text-muted, rgba(255, 255, 255, .5));font-size:20px;cursor:pointer!important;padding:4px 8px;line-height:1}.dialog-close:hover{color:var(--text-primary, white)}.dialog-content{padding:20px;overflow-y:auto;flex:1}.command-description{margin:0 0 16px;font-size:13px;color:var(--text-secondary, rgba(255, 255, 255, .6));line-height:1.5}.parameters-section{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.parameters-section h4{margin:0 0 12px;font-size:13px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .7))}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-size:12px;color:var(--text-secondary, rgba(255, 255, 255, .7))}.form-group .required{color:#ef4444;margin-left:2px}.form-group .units{color:var(--text-muted, rgba(255, 255, 255, .4));margin-left:4px}.form-group input[type=text],.form-group input[type=number],.form-group input[type=datetime-local],.form-group select{width:100%;padding:10px 12px;background:var(--transport-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:6px;color:var(--text-primary, white);font-size:13px}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--accent-primary, #3b82f6);box-shadow:0 0 0 2px var(--accent-primary-glow, rgba(59, 130, 246, .2))}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input{width:16px;height:16px}.param-hint{display:block;margin-top:4px;font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .4))}.param-hint.picking{color:var(--accent-primary, #3b82f6);animation:pulse-blue 1.5s infinite}.pick-from-map-btn.active{background:#3b82f64d;border-color:#3b82f6;animation:picker-btn-pulse 1.5s infinite}.validation-errors{background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;padding:10px 12px;margin-top:12px}.validation-error{color:#f87171;font-size:12px;padding:2px 0}.validation-error:before{content:"• "}.auto-calc-indicator{margin-left:8px;font-size:10px;color:#22c55e;font-weight:400;background:#22c55e26;padding:2px 6px;border-radius:3px}.estimate-info{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:6px;margin-bottom:16px}.estimate-label{font-size:12px;color:#ffffffb3}.estimate-value{font-size:14px;font-weight:600;color:#3b82f6;font-family:monospace}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border-primary, rgba(255, 255, 255, .1))}.btn-cancel,.btn-add{padding:10px 20px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.btn-cancel{background:var(--transport-bg, rgba(255, 255, 255, .1));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));color:var(--text-secondary, rgba(255, 255, 255, .7))}.btn-cancel:hover{background:var(--bg-hover, rgba(255, 255, 255, .15));color:var(--text-primary, white)}.btn-add{background:var(--accent-primary, #3b82f6);border:none;color:#fff}.btn-add:hover{background:var(--accent-primary-hover, #2563eb)}.panel-header-actions{display:flex;align-items:center;gap:8px}.undo-redo-buttons{display:flex;gap:2px;background:var(--transport-bg, rgba(255, 255, 255, .05));border-radius:4px;padding:2px}.undo-btn,.redo-btn{width:28px;height:28px;background:transparent;border:none;border-radius:3px;color:var(--text-secondary, rgba(255, 255, 255, .6));cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.undo-btn:hover:not(:disabled),.redo-btn:hover:not(:disabled){background:var(--bg-hover, rgba(255, 255, 255, .1));color:var(--text-primary, white)}.undo-btn:disabled,.redo-btn:disabled{opacity:.3;cursor:not-allowed}.emergency-stop-btn{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:4px;color:#ef4444;font-size:10px;font-weight:600;cursor:pointer;transition:all .2s;animation:pulse-red 2s infinite}.emergency-stop-btn:hover{background:#ef444466;border-color:#ef4444}@keyframes pulse-red{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 4px #ef444400}}.queue-item{position:relative;overflow:hidden}.queue-item.executing{border-color:#f59e0b66;background:#f59e0b1a}.queue-item.sent,.queue-item.acknowledged{border-color:#8b5cf666;background:#8b5cf61a}.queue-item.completed{opacity:.7}.queue-item.failed,.queue-item.timeout{border-color:#ef444466;background:#ef44441a}.queue-item.cancelled{opacity:.5}.queue-progress{position:absolute;left:0;top:0;bottom:0;background:#f59e0b33;transition:width .3s ease;pointer-events:none}.queue-error{display:block;font-size:9px;color:#ef4444;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px}.queue-btn.cancel{background:#ef444433;color:#ef4444}.queue-btn.cancel:hover{background:#ef444466}.queue-item.executing .queue-status{animation:status-pulse 1.5s infinite}.queue-item.sent .queue-status,.queue-item.acknowledged .queue-status{animation:status-pulse 1s infinite}@keyframes status-pulse{0%,to{opacity:1}50%{opacity:.6}}.position-input{display:flex;flex-direction:column;gap:8px}.position-fields{display:flex;gap:8px}.position-field{flex:1;display:flex;flex-direction:column;gap:2px}.position-field label{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5))}.position-field input{width:100%;padding:6px 8px;background:var(--transport-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:4px;color:var(--text-primary, white);font-size:12px}.position-field input:focus{outline:none;border-color:var(--accent-primary, #3b82f6)}@keyframes picker-btn-pulse{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 4px #3b82f600}}.pick-from-map-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;margin-left:6px;background:#3b82f626;border:1px solid rgba(59,130,246,.4);border-radius:4px;color:#3b82f6;cursor:pointer;transition:all .2s;vertical-align:middle}.pick-from-map-btn:hover{background:#3b82f640;border-color:#3b82f6;transform:scale(1.1)}.pick-from-map-btn:active{transform:scale(.95)}.pick-position-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:#3b82f626;border:1px solid rgba(59,130,246,.4);border-radius:4px;color:#3b82f6;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s}.pick-position-btn:hover{background:#3b82f640;border-color:#3b82f6}.pick-position-btn.active{background:#3b82f64d;border-color:#3b82f6;animation:picker-btn-pulse 1.5s infinite}.datetime-group .datetime-inputs{display:flex;gap:8px}.datetime-group .date-input{flex:1.2}.datetime-group .time-input{flex:.8}.datetime-group .date-input,.datetime-group .time-input{padding:10px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff;font-size:13px;font-family:monospace}.datetime-group .date-input:focus,.datetime-group .time-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.datetime-group .date-input::placeholder,.datetime-group .time-input::placeholder{color:#ffffff4d}.input-error{display:block;margin-top:4px;font-size:11px;color:#ef4444}.position-input-group{display:flex;flex-direction:column;gap:6px}.position-input-row{display:flex;align-items:flex-end;gap:8px}.position-fields-inline{display:flex;flex:1;gap:6px}.position-field-inline{flex:1;display:flex;flex-direction:column;gap:2px}.position-field-inline label{font-size:10px;color:#ffffff80;margin-bottom:0}.position-field-inline input{width:100%;padding:8px 10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:4px;color:#fff;font-size:12px}.position-field-inline input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.position-field-inline input::placeholder{color:#ffffff4d}.pick-position-icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;flex-shrink:0;background:#3b82f626;border:1px solid rgba(59,130,246,.4);border-radius:6px;color:#3b82f6;cursor:pointer;transition:all .2s}.pick-position-icon-btn:hover{background:#3b82f640;border-color:#3b82f6;transform:scale(1.05)}.pick-position-icon-btn:active{transform:scale(.95)}.pick-position-icon-btn.active{background:#3b82f64d;border-color:#3b82f6;animation:picker-btn-pulse 1.5s infinite}.picking-indicator{font-size:11px;color:var(--accent-primary, #3b82f6);padding:4px 8px;background:var(--accent-primary-glow, rgba(59, 130, 246, .1));border-radius:4px;animation:pulse-blue 1.5s infinite}@keyframes pulse-blue{0%,to{opacity:1}50%{opacity:.6}}.waypoint-list-input{display:flex;flex-direction:column;gap:8px}.waypoint-list{display:flex;flex-direction:column;gap:6px}.waypoint-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background:var(--transport-bg, rgba(255, 255, 255, .03));border-radius:4px}.waypoint-index{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#3b82f633;border-radius:50%;font-size:11px;font-weight:600;color:#3b82f6;flex-shrink:0}.waypoint-fields{display:flex;flex:1;gap:6px}.waypoint-fields input{flex:1;min-width:0;padding:6px 8px;background:var(--transport-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:4px;color:var(--text-primary, white);font-size:11px}.waypoint-fields input:focus{outline:none;border-color:var(--accent-primary, #3b82f6)}.waypoint-remove-btn{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#ef44441a;border:none;border-radius:4px;color:#ef4444b3;font-size:14px;cursor:pointer;flex-shrink:0}.waypoint-remove-btn:hover{background:#ef444433;color:#ef4444}.waypoint-add-row{display:flex;align-items:center;gap:8px;padding:8px;background:#3b82f60d;border:1px dashed rgba(59,130,246,.3);border-radius:4px}.waypoint-index.new{background:#3b82f633;color:#3b82f6}.waypoint-add-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#22c55e26;border:1px solid rgba(34,197,94,.4);border-radius:4px;color:#22c55e;font-size:16px;font-weight:600;cursor:pointer;flex-shrink:0;transition:all .2s}.waypoint-add-btn:hover:not(:disabled){background:#22c55e40;border-color:#22c55e}.waypoint-add-btn:disabled{opacity:.4;cursor:not-allowed}.waypoint-pick-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#3b82f626;border:1px solid rgba(59,130,246,.4);border-radius:4px;color:#3b82f6;cursor:pointer;flex-shrink:0;transition:all .2s}.waypoint-pick-btn:hover{background:#3b82f640;border-color:#3b82f6}.waypoint-pick-btn.active{background:#3b82f64d;border-color:#3b82f6;animation:picker-btn-pulse 1.5s infinite}.waypoint-count{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5))}.waypoint-footer{display:flex;align-items:center;justify-content:space-between;padding-top:8px;border-top:1px solid var(--dashboard-border-subtle, rgba(255, 255, 255, .05));margin-top:4px}.waypoint-clear-btn{background:transparent;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444b3;font-size:10px;padding:4px 8px;cursor:pointer;transition:all .2s}.waypoint-clear-btn:hover{background:#ef444426;border-color:#ef444480;color:#ef4444}.waypoint-draw-area-row{display:flex;flex-direction:column;gap:8px;padding:10px;background:#8b5cf60d;border:1px solid rgba(139,92,246,.2);border-radius:6px;margin-bottom:8px}.draw-area-label{font-size:11px;font-weight:500;color:#ffffffb3;text-transform:uppercase;letter-spacing:.5px}.draw-area-buttons{display:flex;gap:6px;flex-wrap:wrap}.draw-area-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);border-radius:4px;color:#a78bfa;font-size:11px;font-weight:500;cursor:pointer;transition:all .2s}.draw-area-btn svg{flex-shrink:0}.draw-area-btn:hover:not(:disabled){background:#8b5cf633;border-color:#8b5cf680;color:#c4b5fd}.draw-area-btn.active{background:#8b5cf640;border-color:#8b5cf6;color:#c4b5fd;animation:draw-btn-pulse 1.5s infinite}.draw-area-btn:disabled{opacity:.4;cursor:not-allowed}.draw-area-btn.cancel{background:#ef44441a;border-color:#ef44444d;color:#f87171}.draw-area-btn.cancel:hover{background:#ef444433;border-color:#ef444480;color:#fca5a5}@keyframes draw-btn-pulse{0%,to{box-shadow:0 0 #8b5cf666}50%{box-shadow:0 0 0 4px #8b5cf600}}.drawing-mode-indicator{padding:8px 10px;background:#8b5cf61a;border-left:3px solid #8b5cf6;border-radius:0 4px 4px 0;font-size:11px;color:#c4b5fd;margin-bottom:8px}.waypoint-pick-btn:disabled{opacity:.4;cursor:not-allowed}.coordinate-group{margin-bottom:16px}.coordinate-input-row{display:flex;align-items:flex-end;gap:8px}.coordinate-fields{display:flex;flex:1;gap:6px}.coordinate-field{flex:1;display:flex;flex-direction:column;gap:2px}.coordinate-field .coord-label{font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .5))}.coordinate-field input{width:100%;padding:8px 10px;background:var(--transport-bg, rgba(255, 255, 255, .05));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:4px;color:var(--text-primary, white);font-size:12px}.coordinate-field input:focus{outline:none;border-color:var(--accent-primary, #3b82f6);box-shadow:0 0 0 2px var(--accent-primary-glow, rgba(59, 130, 246, .2))}.coordinate-field input::placeholder{color:var(--text-disabled, rgba(255, 255, 255, .3))}.add-asset-overlay{position:absolute;inset:0;z-index:500;display:flex;align-items:center;justify-content:center;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.add-asset-modal{width:1250px;max-width:95vw;max-height:90vh;margin:0;position:relative}.add-asset-modal .data-manager-header{cursor:move;-webkit-user-select:none;user-select:none}.add-asset-modal .data-manager-header.dragging{cursor:grabbing}.add-asset-modal .data-manager-close{cursor:pointer}.add-asset-content{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px 28px;padding:1.5rem}.add-asset-content .form-group{margin-bottom:0}.add-asset-content .form-group:first-child{grid-column:span 2}.add-asset-content .form-divider{grid-column:1 / -1;margin:4px 0}.add-asset-content .form-group:has(.sensor-config-list){grid-column:1 / -1}.add-asset-actions{display:flex;justify-content:flex-end;gap:12px;padding:1rem 1.25rem;border-top:1px solid var(--border-primary, #333);background:var(--panel-bg, #1a1a1a)}.btn-secondary{padding:.5rem 1rem;background:transparent;border:1px solid var(--border-secondary, #444);border-radius:6px;color:var(--text-secondary, #ccc);font-size:.85rem;cursor:pointer;transition:all .15s}.btn-secondary:hover{background:var(--bg-hover, rgba(255, 255, 255, .05));border-color:var(--border-primary, #666);color:var(--text-primary, #fff)}.btn-primary{display:flex;align-items:center;gap:6px;padding:.5rem 1.25rem;background:var(--accent-primary, #3b82f6);border:none;border-radius:6px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-primary:hover{background:var(--accent-primary-hover, #2563eb)}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-primary svg{opacity:.9}.input-with-button{display:flex;gap:6px}.input-with-button input{flex:1}.generate-id-btn{display:flex;align-items:center;justify-content:center;width:40px;background:#ffffff1a;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#fff9;cursor:pointer;transition:all .2s}.generate-id-btn:hover{background:#ffffff26;color:#fff}.form-divider{display:flex;align-items:center;margin:20px 0 16px;gap:12px}.form-divider:before,.form-divider:after{content:"";flex:1;height:1px;background:#ffffff26}.form-divider span{font-size:11px;font-weight:500;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px}.sensor-config-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}.sensor-config-item{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:background .15s;min-height:60px}.sensor-config-item:hover{background:#ffffff0f}.sensor-toggle{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.sensor-toggle input[type=checkbox]{width:16px;height:16px;margin-top:2px;cursor:pointer;flex-shrink:0;accent-color:#3b82f6}.sensor-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sensor-name{font-size:13px;font-weight:500;color:#fff;line-height:1.3}.sensor-manufacturer{font-size:11px;color:#ffffff73}.sensor-mode-row{display:flex;flex-direction:column;gap:4px;padding-left:24px}.sensor-mode-label{font-size:10px;color:#ffffff80;text-transform:uppercase;letter-spacing:.3px}.sensor-mode-select{padding:5px 8px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fff;font-size:11px;width:100%;max-width:180px}.sensor-mode-select:focus{outline:none;border-color:#3b82f6}.config-section{display:flex;flex-direction:column;gap:12px;padding:12px 14px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px}.config-row{display:flex;align-items:center;gap:12px}.config-label{font-size:12px;color:#fff9;min-width:90px;flex-shrink:0}.config-select{flex:1;padding:8px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:5px;color:#fff;font-size:13px}.config-select:focus{outline:none;border-color:#3b82f6}.config-input{width:100px;padding:8px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:5px;color:#fff;font-size:13px;text-align:right}.config-input:focus{outline:none;border-color:#3b82f6}.config-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#ffffffd9;padding:4px 0}.config-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:#3b82f6}.config-tabs-container{grid-column:1 / -1;display:flex;flex-direction:column;background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:8px;overflow:hidden}.config-tabs{display:flex;gap:0;background:#0003;border-bottom:1px solid rgba(255,255,255,.08);padding:0}.config-tab{display:flex;align-items:center;gap:6px;padding:10px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:#ffffff80;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s;white-space:nowrap}.config-tab:hover{color:#fffc;background:#ffffff08}.config-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:#3b82f614}.config-tab svg{opacity:.7}.config-tab.active svg{opacity:1}.config-tab-content{padding:16px;min-height:200px}.tab-panel{animation:fadeIn .15s ease-out}.tab-empty{display:flex;align-items:center;justify-content:center;height:150px;color:#fff6;font-size:13px}.config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.config-card{display:flex;flex-direction:column;gap:10px;padding:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px}.config-card h4{margin:0;font-size:11px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.5px}.config-select-full{width:100%;padding:10px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:5px;color:#fff;font-size:13px}.config-select-full:focus{outline:none;border-color:#3b82f6}.config-input-full{width:100%;padding:10px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:5px;color:#fff;font-size:13px;box-sizing:border-box}.config-input-full:focus{outline:none;border-color:#3b82f6}.config-input-group{display:flex;align-items:center;gap:8px}.config-input-group .config-input-full{flex:1}.config-unit{font-size:12px;color:#ffffff80;min-width:30px}.config-value{font-size:18px;font-weight:600;color:#fff;display:flex;flex-direction:column;gap:4px}.config-hint{font-size:10px;font-weight:400;color:#fff6}.config-checkbox-large{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px;color:#ffffffd9;padding:8px 0}.config-checkbox-large input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}.btn-add:disabled{opacity:.5;cursor:not-allowed}[data-theme=lunar-light] .asset-control-panel{background:var(--bg-elevated, #f0f0f0);border-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .panel-header{border-bottom-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .panel-header h2{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .panel-expand-btn,[data-theme=lunar-light] .panel-collapse-btn{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .panel-expand-btn:hover,[data-theme=lunar-light] .panel-collapse-btn:hover{background:var(--bg-hover, rgba(0, 0, 0, .06));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .panel-tabs{border-bottom-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .panel-tab{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .panel-tab:hover:not(:disabled){color:var(--text-primary, #4a4a4a);background:var(--bg-hover, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .panel-tab.active{color:var(--accent-primary, #2563eb);border-bottom-color:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .empty-state{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .empty-state .hint{color:var(--text-disabled, #b8b8b8)}[data-theme=lunar-light] .asset-item{background:var(--transport-bg, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .asset-item:hover{background:var(--bg-hover, rgba(0, 0, 0, .06));border-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .asset-item.selected{background:var(--bg-active, rgba(37, 99, 235, .1));border-color:var(--border-accent, rgba(37, 99, 235, .3))}[data-theme=lunar-light] .asset-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .asset-type{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .palette-header{border-bottom-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .plugin-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .command-count{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .command-category{background:var(--transport-bg, rgba(0, 0, 0, .03))}[data-theme=lunar-light] .category-header{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .category-header:hover{background:var(--bg-hover, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .category-count{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .command-item{background:var(--transport-bg, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .command-item:hover{background:var(--bg-active, rgba(37, 99, 235, .1));border-color:var(--border-accent, rgba(37, 99, 235, .2))}[data-theme=lunar-light] .command-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .param-count{color:var(--text-muted, #9a9a9a);background:var(--transport-bg, rgba(0, 0, 0, .06))}[data-theme=lunar-light] .queue-item{background:var(--transport-bg, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .queue-item:hover{background:var(--bg-hover, rgba(0, 0, 0, .06))}[data-theme=lunar-light] .queue-order{background:var(--transport-bg, rgba(0, 0, 0, .08));color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .queue-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .queue-time{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .queue-btn{background:var(--transport-bg, rgba(0, 0, 0, .06));color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .queue-btn:hover:not(:disabled){background:var(--bg-hover, rgba(0, 0, 0, .1));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .add-command-dialog{background:var(--panel-bg, #e8e8e8);border-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .dialog-header{border-bottom-color:var(--border-primary, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .dialog-header h3{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .dialog-close{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .dialog-close:hover{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .form-group label{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .form-group input,[data-theme=lunar-light] .form-group select{background:var(--transport-bg, rgba(0, 0, 0, .04));border-color:var(--border-primary, rgba(0, 0, 0, .12));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .dialog-actions{border-top-color:var(--border-primary, rgba(0, 0, 0, .12));background:var(--panel-bg, #e8e8e8)}[data-theme=lunar-light] .btn-cancel{background:var(--transport-bg, rgba(0, 0, 0, .04));border-color:var(--border-primary, rgba(0, 0, 0, .12));color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .btn-cancel:hover{background:var(--bg-hover, rgba(0, 0, 0, .08));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .btn-add{background:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .btn-add:hover{background:var(--accent-primary-hover, #1d4ed8)}[data-theme=lunar-light] .undo-redo-buttons{background:var(--transport-bg, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .undo-btn,[data-theme=lunar-light] .redo-btn{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .undo-btn:hover:not(:disabled),[data-theme=lunar-light] .redo-btn:hover:not(:disabled){background:var(--bg-hover, rgba(0, 0, 0, .08));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .asset-edit-btn{background:#0000000f;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .asset-edit-btn:hover{background:#0000001a;color:var(--text-primary, #4a4a4a)}.data-manager-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:400;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.data-manager-modal{width:90%;max-width:800px;max-height:85vh;background:var(--panel-bg);border:1px solid var(--border-primary);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 16px 48px #00000080}.data-manager-header{display:flex;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid var(--border-primary);gap:1rem;cursor:move;-webkit-user-select:none;user-select:none}.data-manager-header.dragging{cursor:grabbing}.data-manager-title{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:var(--text-primary)}.data-manager-title svg{color:var(--accent-primary)}.data-manager-summary{display:flex;align-items:center;gap:1rem;margin-left:auto;margin-right:1rem}.summary-item{font-size:.75rem;color:var(--text-secondary)}.summary-item strong{color:var(--text-primary);font-weight:600}.data-manager-close{padding:.375rem;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer!important;transition:all .15s}.data-manager-close:hover{background:var(--button-hover);color:var(--text-primary)}.data-manager-tabs{display:flex;padding:0 1rem;border-bottom:1px solid var(--border-primary)}.tab-btn{padding:.75rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s;margin-bottom:-1px}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.data-manager-content{flex:1;overflow-y:auto;padding:1.25rem;min-height:300px}.datasets-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted);text-align:center}.datasets-empty svg{margin-bottom:1rem;opacity:.5}.datasets-empty p{margin-bottom:1rem}.datasets-list{display:flex;flex-direction:column;gap:.75rem}.dataset-card{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;transition:border-color .15s}.dataset-card:hover{border-color:var(--border-secondary)}.dataset-info{flex:1}.dataset-name{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-primary);margin-bottom:.375rem}.dataset-source-badge{font-size:.6rem;font-weight:600;padding:.125rem .375rem;border-radius:3px;text-transform:uppercase;letter-spacing:.05em}.source-ais-log{background:#3b82f633;color:#60a5fa}.source-csv{background:#10b98133;color:#34d399}.source-json{background:#f59e0b33;color:#fbbf24}.source-stream{background:#8b5cf633;color:#a78bfa}.source-sample{background:#6b728033;color:#9ca3af}.dataset-test-badge{font-size:.6rem;font-weight:600;padding:.125rem .375rem;border-radius:3px;text-transform:uppercase;letter-spacing:.05em;background:#f59e0b33;color:#fbbf24;animation:test-pulse 2s infinite}@keyframes test-pulse{0%,to{opacity:1}50%{opacity:.6}}.dataset-card.loading{opacity:.7;pointer-events:none}.load-full-btn{display:flex!important;align-items:center;gap:.375rem;padding:.375rem .625rem!important;background:#3b82f626!important;border:1px solid rgba(59,130,246,.3)!important;color:#60a5fa!important;font-size:.7rem;font-weight:500}.load-full-btn:hover:not(:disabled){background:#3b82f640!important;border-color:#3b82f680!important}.load-full-btn span{white-space:nowrap}.spinner-small{width:12px;height:12px;border:2px solid #333;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.dataset-meta{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.75rem;color:var(--text-secondary);margin-bottom:.25rem}.dataset-time-range{color:var(--text-muted)}.dataset-imported{font-size:.7rem;color:var(--text-muted)}.dataset-actions{display:flex;align-items:center;gap:.25rem}.dataset-action-btn{padding:.375rem;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-muted);cursor:pointer;transition:all .15s}.dataset-action-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-primary);color:var(--text-primary)}.dataset-action-btn:disabled{opacity:.3;cursor:not-allowed}.dataset-action-btn.danger:hover:not(:disabled){background:#ef444426;border-color:#ef44444d;color:#ef4444}.dataset-action-divider{width:1px;height:20px;background:var(--border-primary);margin:0 .25rem}.import-tab h3{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.import-mode-section{margin-bottom:1.5rem}.import-mode-options{display:flex;gap:.75rem}.import-mode-option{flex:1;display:flex;align-items:center;padding:.875rem 1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .15s}.import-mode-option:hover{border-color:var(--border-secondary)}.import-mode-option.selected{background:#3b82f61a;border-color:#3b82f666}.import-mode-option input{margin-right:.75rem}.import-mode-content{display:flex;flex-direction:column}.import-mode-title{font-weight:500;color:var(--text-primary)}.import-mode-desc{font-size:.75rem;color:var(--text-secondary)}.test-lines-input{display:flex;align-items:center;gap:.75rem;margin-top:.75rem;padding-left:.25rem}.test-lines-input label{font-size:.8rem;color:var(--text-secondary)}.test-lines-input input{width:100px;padding:.375rem .5rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);font-size:.85rem}.test-lines-input input:focus{outline:none;border-color:#3b82f6}.import-sources-section{margin-bottom:1.5rem}.import-sources{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.import-source-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;padding:1.5rem 1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .15s;text-align:center}.import-source-btn:hover{background:var(--bg-hover);border-color:#3b82f6}.import-source-btn svg{color:var(--text-secondary);margin-bottom:.5rem}.import-source-btn:hover svg{color:#3b82f6}.source-title{font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.source-formats{font-size:.7rem;color:var(--text-muted)}.import-source.disabled .import-source-btn{cursor:not-allowed;opacity:.5}.import-source.disabled .import-source-btn:hover{background:var(--bg-surface);border-color:var(--border-primary)}.import-source.disabled .import-source-btn:hover svg{color:var(--text-secondary)}.import-error{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;font-size:.85rem}.import-error button{margin-left:auto;padding:.25rem .5rem;background:transparent;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#ef4444;font-size:.75rem;cursor:pointer}.import-error button:hover{background:#ef444426}.import-loading{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:var(--text-secondary)}.spinner{width:20px;height:20px;border:2px solid var(--border-primary);border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.import-preview{background:var(--bg-surface);border:1px solid var(--border-secondary);border-radius:8px;overflow:hidden}.preview-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#3b82f61a;border-bottom:1px solid var(--border-secondary);color:#60a5fa;font-weight:500}.preview-content{padding:1rem}.preview-content p{margin-bottom:.75rem;color:var(--text-primary)}.preview-vessels{display:flex;flex-direction:column;gap:.375rem}.preview-vessel{display:flex;align-items:center;gap:.75rem;padding:.375rem .5rem;background:var(--panel-bg);border-radius:4px;font-size:.8rem}.preview-vessel-name{font-weight:500;color:var(--text-primary)}.preview-vessel-mmsi{font-family:ui-monospace,monospace;color:var(--text-secondary)}.preview-vessel-points{margin-left:auto;color:var(--text-muted)}.preview-more{font-size:.75rem;color:var(--text-muted);padding:.375rem .5rem}.preview-actions{display:flex;justify-content:flex-end;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border-primary);background:var(--panel-bg)}.export-tab h3{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.export-desc{font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem}.export-formats{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.export-format-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .15s;text-align:center}.export-format-btn:hover{background:var(--bg-hover);border-color:#10b981}.export-format-btn svg{color:var(--text-secondary);margin-bottom:.5rem}.export-format-btn:hover svg{color:#10b981}.format-name{font-weight:500;color:var(--text-primary);margin-bottom:.125rem}.format-ext{font-size:.7rem;color:var(--text-muted);font-family:ui-monospace,monospace}.btn-primary{padding:.5rem 1rem;background:#3b82f6;border:none;border-radius:6px;color:#fff;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary:hover{background:#2563eb}.btn-secondary{padding:.5rem 1rem;background:transparent;border:1px solid var(--border-secondary);border-radius:6px;color:var(--text-primary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--text-muted)}.btn-danger{padding:.5rem 1rem;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#ef4444;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center}.btn-danger:hover{background:#ef444440;border-color:#ef444480}.btn-sm{padding:.375rem .75rem;font-size:.75rem}.data-sources-section{margin-bottom:1.5rem}.data-sources-section h3,.section-title{font-size:.85rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.data-source-card{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;margin-bottom:.5rem;transition:all .15s}.data-source-card:hover{border-color:var(--border-secondary)}.data-source-card.active{background:#3b82f614;border-color:#3b82f64d}.data-source-card.streaming{background:#10b98114;border-color:#10b9814d}.data-source-icon{position:relative;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-hover);border-radius:8px;color:var(--text-secondary)}.data-source-card.active .data-source-icon{background:#3b82f626;color:#60a5fa}.data-source-card.streaming .data-source-icon{background:#10b98126;color:#34d399}.pulse-indicator{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#10b981;border-radius:50%;animation:pulse 2s infinite}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.data-source-info{flex:1;min-width:0}.data-source-title{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--text-primary);margin-bottom:.125rem}.data-source-desc{font-size:.75rem;color:var(--text-secondary)}.data-source-cache-info{display:flex;gap:.75rem;font-size:.7rem;margin-top:.25rem}.data-source-cache-info .cache-age{color:#6b7280}.data-source-cache-info .cache-range{color:#4b5563}.import-prompt-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.import-prompt-dialog{background:var(--panel-bg);border:1px solid var(--border-primary);border-radius:12px;padding:1.25rem;min-width:320px;max-width:400px;box-shadow:0 8px 32px #00000080}.import-prompt-header{display:flex;align-items:center;gap:.5rem;color:#22c55e;font-weight:600;font-size:.95rem;margin-bottom:.75rem}.import-prompt-content{color:var(--text-primary);font-size:.875rem;margin-bottom:1rem}.import-prompt-content p{margin:0 0 .5rem}.import-prompt-question{color:var(--text-secondary);font-size:.8rem}.import-prompt-options{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:.75rem}.import-prompt-options button{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;font-size:.8rem}.import-prompt-dismiss{text-align:center}.btn-text{background:none;border:none;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:.375rem .75rem;transition:color .15s}.btn-text:hover{color:var(--text-secondary)}.data-source-controls{display:flex;align-items:center;gap:.5rem}.region-select{padding:.375rem .5rem;background:var(--panel-bg);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);font-size:.75rem;cursor:pointer;max-width:140px}.region-select:hover{border-color:var(--border-secondary)}.region-select:focus{outline:none;border-color:#3b82f6}.hours-select{padding:.375rem .5rem;background:var(--panel-bg);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);font-size:.75rem;cursor:pointer}.hours-select:hover{border-color:var(--border-secondary)}.hours-select:focus{outline:none;border-color:#3b82f6}.status-badge{font-size:.6rem;font-weight:600;padding:.125rem .375rem;border-radius:3px;text-transform:uppercase;letter-spacing:.05em}.status-connected{background:#10b98133;color:#34d399}.status-connecting,.status-reconnecting{background:#f59e0b33;color:#fbbf24}.status-disconnected{background:#6b728033;color:#9ca3af}.status-error{background:#ef444433;color:#f87171}.data-source-card.has-errors{border-color:#ef44444d}.data-source-card.has-errors .data-source-desc{color:#fca5a5}.error-indicator{position:absolute;top:-2px;right:-2px;width:8px;height:8px;background:#ef4444;border-radius:50%}.error-count{font-size:.6rem;font-weight:600;padding:.125rem .375rem;border-radius:3px;background:#ef444433;color:#f87171;margin-left:.25rem}.kml-import-options{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.kml-import-option{display:flex;align-items:flex-start;gap:1rem;padding:1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .15s}.kml-import-option:hover{background:var(--bg-hover);border-color:#3b82f6}.kml-option-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:#3b82f61a;border-radius:8px;flex-shrink:0}.kml-option-icon svg{color:#3b82f6}.kml-option-content{display:flex;flex-direction:column;gap:.25rem}.kml-option-title{font-weight:600;color:var(--text-primary)}.kml-option-desc{font-size:.85rem;color:var(--text-secondary);line-height:1.4}.kml-option-warning{color:#fbbf24;font-style:italic}.dataset-source-badge.source-kml{background:#a855f733;color:#a855f7}.kml-layer-opacity{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-primary)}.kml-layer-opacity label{font-size:.75rem;color:var(--text-secondary);min-width:45px}.kml-layer-opacity input[type=range]{flex:1;height:4px;background:var(--border-primary);border-radius:2px;appearance:none;cursor:pointer}.kml-layer-opacity input[type=range]:disabled{opacity:.4;cursor:not-allowed}.kml-layer-opacity input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;background:#a855f7;border-radius:50%;cursor:pointer;transition:transform .1s}.kml-layer-opacity input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}.kml-layer-opacity input[type=range]:disabled::-webkit-slider-thumb{background:#666}.kml-layer-opacity .opacity-value{font-size:.75rem;color:#a855f7;min-width:35px;text-align:right;font-family:SF Mono,Monaco,Consolas,monospace}.kml-bg-toggle{display:flex;align-items:center;gap:.4rem;background:none;border:none;color:var(--text-secondary);font-size:.75rem;cursor:pointer;padding:.2rem 0}.kml-bg-auto-btn:disabled{opacity:.4;cursor:not-allowed}.kml-bg-color-picker:disabled{opacity:.4;cursor:not-allowed}.kml-bg-tolerance .opacity-value{font-size:.7rem;color:#22c55e;min-width:25px;text-align:right;font-family:SF Mono,Monaco,Consolas,monospace}.kml-placemark-feedback{font-size:.7rem;color:#22c55e;margin-top:.3rem;animation:kml-feedback-fade 3s ease-out forwards}@keyframes kml-feedback-fade{0%{opacity:1}70%{opacity:1}to{opacity:0}}.tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background:#3b82f633;border-radius:9px;font-size:.65rem;font-weight:600;color:#60a5fa;margin-left:6px}.tab-btn.active .tab-badge{background:#3b82f64d;color:#3b82f6}.cache-tab{display:flex;flex-direction:column;gap:1rem}.cache-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.cache-header h3{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.cache-desc{margin:0;font-size:.8rem;color:var(--text-muted)}.cache-loading,.cache-error{display:flex;align-items:center;gap:.75rem;padding:1rem;border-radius:8px;font-size:.85rem}.cache-loading{background:var(--bg-surface);color:var(--text-secondary)}.cache-loading .spinner{animation:spin 1s linear infinite}.cache-error{background:#ef44441a;color:#f87171}.cache-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;color:var(--text-muted);text-align:center}.cache-empty svg{margin-bottom:1rem;opacity:.5}.cache-empty p{margin:0 0 .5rem;font-size:.95rem;color:var(--text-secondary)}.cache-empty-hint{font-size:.8rem;color:var(--text-muted)}.cache-summary{display:flex;gap:1rem;padding:1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px}.cache-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:.25rem}.cache-stat-value{font-size:1.25rem;font-weight:600;color:var(--text-primary)}.cache-stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.cache-list{display:flex;flex-direction:column;gap:.5rem}.cache-item{display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;transition:border-color .15s}.cache-item:hover{border-color:var(--border-secondary)}.cache-item-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:#3b82f61a;border-radius:8px;color:#60a5fa}.cache-item-info{flex:1;min-width:0}.cache-item-name{font-size:.9rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.cache-item-meta{display:flex;gap:1rem;font-size:.75rem;color:var(--text-muted)}.cache-item-actions{display:flex;gap:.5rem}.cache-action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:1px solid var(--border-primary);border-radius:6px;color:var(--text-muted);cursor:pointer;transition:all .15s}.cache-action-btn:hover{border-color:var(--border-secondary);color:var(--text-primary)}.cache-action-btn.danger:hover{background:#ef44441a;border-color:#ef44444d;color:#f87171}.cache-note{display:flex;align-items:flex-start;gap:.5rem;padding:.75rem;background:#3b82f60d;border:1px solid rgba(59,130,246,.2);border-radius:6px;font-size:.75rem;color:var(--text-muted);line-height:1.5}.cache-note svg{flex-shrink:0;margin-top:2px;color:#60a5fa}.screensaver-card{display:flex;align-items:center;gap:1rem;padding:1rem;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;transition:all .2s}.screensaver-card.active{border-color:#10b98166;background:#10b9810d}.screensaver-icon{position:relative;display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:#8b5cf61a;border-radius:10px;color:#a78bfa;flex-shrink:0}.screensaver-card.active .screensaver-icon{background:#10b9811a;color:#34d399}.orbit-indicator{position:absolute;top:-2px;right:-2px;width:10px;height:10px;background:#34d399;border-radius:50%;animation:pulse-orbit 1.5s ease-in-out infinite}@keyframes pulse-orbit{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.2);opacity:.7}}.screensaver-info{flex:1;min-width:0}.screensaver-title{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:500;color:var(--text-primary);margin-bottom:.25rem}.screensaver-progress{font-size:.75rem;font-weight:600;color:#34d399;background:#10b98126;padding:.125rem .5rem;border-radius:4px}.screensaver-desc{font-size:.8rem;color:var(--text-muted);line-height:1.4}.screensaver-controls{display:flex;gap:.5rem;flex-shrink:0}.screensaver-controls .btn-primary,.screensaver-controls .btn-secondary{display:flex;align-items:center;gap:.375rem}.screensaver-controls .btn-primary:disabled{opacity:.5;cursor:not-allowed}.screensaver-overlay{position:fixed;top:80px;right:20px;z-index:9999;pointer-events:none}.screensaver-overlay-content{pointer-events:auto;background:#0f172af2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(16,185,129,.3);border-radius:12px;padding:1.25rem;min-width:280px;box-shadow:0 8px 32px #0006,0 0 0 1px #10b9811a}.screensaver-overlay-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.screensaver-overlay-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:#10b98126;border-radius:10px;color:#34d399;animation:pulse-glow 2s ease-in-out infinite}@keyframes pulse-glow{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 20px 4px #10b98133}}.screensaver-overlay-title{font-size:1rem;font-weight:600;color:#e2e8f0}.screensaver-overlay-progress{margin-bottom:1rem}.screensaver-progress-bar{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden;margin-bottom:.5rem}.screensaver-progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#34d399);border-radius:3px;transition:width .3s ease}.screensaver-progress-text{font-size:.75rem;color:#94a3b8;text-align:center}.screensaver-overlay-stats{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem;padding:.75rem;background:#0003;border-radius:8px}.screensaver-stat{display:flex;flex-direction:column;gap:.125rem}.screensaver-stat-label{font-size:.65rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.screensaver-stat-value{font-size:.85rem;font-weight:500;color:#e2e8f0;font-variant-numeric:tabular-nums}.screensaver-overlay-stop{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.625rem 1rem;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:#f87171;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.screensaver-overlay-stop:hover{background:#ef444433;border-color:#ef444480}.screensaver-overlay-region{text-align:center;padding:.75rem;background:#10b9811a;border:1px solid rgba(16,185,129,.2);border-radius:8px;margin-bottom:1rem}.screensaver-region-name{font-size:1rem;font-weight:600;color:#34d399;margin-bottom:.25rem}.screensaver-region-counter{font-size:.75rem;color:#94a3b8}.screensaver-tile-status{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;font-size:.75rem;color:#fbbf24}.screensaver-tile-loading{width:8px;height:8px;background:#fbbf24;border-radius:50%;animation:tile-pulse 1s ease-in-out infinite}@keyframes tile-pulse{0%,to{opacity:.4;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}}.screensaver-progress-bar.secondary{background:#8b5cf633}.screensaver-progress-fill.secondary{background:linear-gradient(90deg,#8b5cf6,#a78bfa)}.screensaver-stat-highlight{color:#34d399!important}.mw-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.mw-wizard{width:900px;min-width:600px;min-height:400px;max-width:95vw;max-height:90vh;background-color:var(--panel-bg);border:1px solid var(--accent-primary);border-radius:12px;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;overflow:hidden;resize:both}.mw-header{padding:14px 20px;border-bottom:1px solid var(--border-primary);background:var(--bg-surface);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.mw-title{display:flex;align-items:center;gap:12px}.mw-title h2{margin:0;color:var(--text-primary);font-size:16px;font-weight:600}.mw-subtitle{font-size:11px;color:var(--text-secondary);display:block;margin-top:2px}.mw-close{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.mw-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.mw-steps{display:flex;padding:12px 20px;gap:4px;border-bottom:1px solid var(--border-primary);background:var(--bg-surface);flex-shrink:0}.mw-step{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:4px;font-size:12px;color:var(--text-secondary);white-space:nowrap}.mw-step.active{background:#3b82f626;color:#60a5fa;font-weight:600}.mw-step.completed{color:#10b981}.mw-step-num{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;border:1.5px solid var(--border-primary)}.mw-step.active .mw-step-num{border-color:#60a5fa;background:#3b82f633}.mw-step.completed .mw-step-num{border-color:#10b981;background:#10b98133}.mw-step-arrow{color:var(--text-muted, #4b5563);font-size:10px}.mw-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:16px}.mw-section{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;padding:14px 16px}.mw-section-title{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.mw-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mw-field-grid>.mw-field:only-child{grid-column:1 / -1}.mw-field{display:flex;flex-direction:column;gap:4px}.mw-label{font-size:11px;color:var(--text-secondary);font-weight:500}.mw-input,.mw-select{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;padding:7px 10px;color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}.mw-input:focus,.mw-select:focus{border-color:var(--accent-primary)}.mw-computed{padding:7px 0;color:var(--text-primary);font-size:13px;font-family:SF Mono,Consolas,monospace}.mw-btn-secondary{background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:6px;padding:7px 14px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .2s}.mw-btn-secondary:hover{background:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.mw-bulk-speed{display:flex;align-items:center;gap:8px;margin-bottom:10px}.mw-bulk-speed .mw-label{margin:0}.mw-speed-input{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:4px;padding:4px 6px;color:var(--text-primary);font-size:13px;font-family:SF Mono,Consolas,monospace;width:70px;text-align:right;outline:none}.mw-speed-input:focus{border-color:var(--accent-primary)}.mw-unit{font-size:12px;color:var(--text-secondary)}.mw-btn-apply{background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:4px;padding:4px 12px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .2s}.mw-btn-apply:hover{background:var(--accent-primary);border-color:var(--accent-primary)}.mw-segment-table-wrap{max-height:320px;overflow-y:auto;border:1px solid var(--border-primary);border-radius:6px}.mw-segment-table{width:100%;border-collapse:collapse;font-size:12px}.mw-segment-table thead{position:sticky;top:0;z-index:1}.mw-segment-table th{background:var(--bg-primary);color:var(--text-secondary);font-weight:500;text-align:left;padding:6px 8px;border-bottom:1px solid var(--border-primary);font-size:11px;text-transform:uppercase;letter-spacing:.3px}.mw-segment-table td{padding:5px 8px;border-bottom:1px solid var(--border-primary);color:var(--text-primary)}.mw-segment-table tbody tr:hover{background:var(--bg-hover)}.mw-segment-table .seg-num{color:var(--text-secondary);width:30px;text-align:center}.mw-segment-table .seg-leg{font-size:12px}.mw-segment-table .seg-coords{display:block;font-size:10px;color:var(--text-secondary);font-family:SF Mono,Consolas,monospace}.mw-segment-table .seg-dist,.mw-segment-table .seg-time{font-family:SF Mono,Consolas,monospace;text-align:right;white-space:nowrap}.mw-segment-table .seg-cmd{width:120px}.mw-cmd-select{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:4px;padding:3px 5px;color:var(--text-primary);font-size:12px;font-family:inherit;outline:none;cursor:pointer}.mw-cmd-select:focus{border-color:var(--accent-primary)}.mw-segment-table .seg-row-surv{background:#f973160f}.mw-segment-table .seg-row-surv:hover{background:#f973161f!important}.mw-segment-table .seg-speed{width:90px}.mw-segment-table .seg-speed .mw-speed-input{width:60px;padding:3px 5px;font-size:12px}.mw-segment-table .seg-total-label{font-weight:600;color:var(--text-secondary)}.mw-segment-table tfoot td{border-bottom:none;border-top:2px solid var(--border-primary);font-weight:600;padding:8px;background:var(--bg-primary)}.mw-footer{padding:14px 20px;border-top:1px solid var(--border-primary);background:var(--bg-surface);display:flex;justify-content:space-between;gap:10px;flex-shrink:0}.mw-footer-left,.mw-footer-right{display:flex;gap:8px}.mw-btn-cancel{background:none;border:1px solid var(--border-primary);border-radius:6px;padding:8px 16px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.mw-btn-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.mw-btn-back{background:none;border:1px solid var(--border-primary);border-radius:6px;padding:8px 16px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.mw-btn-back:hover{background:var(--bg-hover);color:var(--text-primary)}.mw-btn-back:disabled{opacity:.3;cursor:not-allowed}.mw-btn-next{background:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:6px;padding:8px 20px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.mw-btn-next:hover{filter:brightness(1.1)}.mw-btn-next:disabled{opacity:.5;cursor:not-allowed;filter:none}.mw-btn-create{background:#10b981;border:1px solid #10b981;border-radius:6px;padding:8px 20px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.mw-btn-create:hover{filter:brightness(1.1)}.mw-btn-create:disabled{opacity:.5;cursor:not-allowed;filter:none}.mw-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.mw-summary-item{display:flex;flex-direction:column;gap:2px}.mw-summary-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.3px}.mw-summary-value{font-size:14px;color:var(--text-primary);font-family:SF Mono,Consolas,monospace}.mw-hint{padding:12px;background:#3b82f614;border:1px solid rgba(59,130,246,.2);border-radius:6px;font-size:12px;color:#93c5fd;line-height:1.5}.mw-drawing-banner{position:fixed;top:52px;z-index:10000;display:flex;align-items:center;gap:10px;background:#000000d9;padding:10px 16px;border-radius:6px;border:1px solid rgba(255,255,255,.15);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:13px;color:#fff;max-width:460px;box-shadow:0 4px 12px #00000080}.mw-drawing-banner .mw-banner-dot{width:8px;height:8px;border-radius:50%;background-color:#f59e0b;animation:mw-pulse 1s infinite;flex-shrink:0}@keyframes mw-pulse{0%,to{opacity:1}50%{opacity:.3}}.mw-drawing-banner .mw-banner-text{flex:1}.mw-drawing-banner .mw-banner-count{font-family:SF Mono,Consolas,monospace;color:#fbbf24;font-size:12px;white-space:nowrap}.mw-drawing-banner .mw-banner-cancel{background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:4px;padding:3px 10px;color:#ffffffb3;font-size:11px;cursor:pointer;transition:all .15s}.mw-drawing-banner .mw-banner-cancel:hover{background:#ef44444d;border-color:#ef444480;color:#fff}.mw-empty-state{text-align:center;padding:20px;color:var(--text-secondary);font-size:13px}.mw-instruction{font-size:13px;color:var(--text-secondary);margin-bottom:12px;line-height:1.5}.mw-export-options{display:flex;flex-direction:column;gap:8px}.mw-export-btn{display:flex;align-items:center;gap:14px;padding:14px 16px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .15s;text-align:left}.mw-export-btn:hover{border-color:var(--accent-primary);background:var(--bg-hover)}.mw-export-btn-text{display:flex;flex-direction:column;gap:2px}.mw-export-btn-title{font-size:14px;font-weight:600;color:var(--text-primary)}.mw-export-btn-desc{font-size:11px;color:var(--text-secondary)}.shared-time-axis{position:relative;width:100%;box-sizing:border-box;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.1);cursor:pointer;-webkit-user-select:none;user-select:none}.shared-time-axis:hover{background:#ffffff0d}.time-axis-tick{position:absolute;top:0;bottom:0;transform:translate(-50%);pointer-events:none}.time-axis-tick-mark{position:absolute;top:0;left:50%;width:1px;height:6px;background:#ffffff4d;transform:translate(-50%)}.time-axis-tick-label{position:absolute;top:8px;left:50%;transform:translate(-50%);font-size:10px;color:#fff9;white-space:nowrap;font-family:SF Mono,Monaco,Consolas,monospace}.time-axis-prefix-label{position:absolute;top:8px;left:50%;transform:translate(-50%);font-size:10px;color:#60a5fae6;white-space:nowrap;font-family:SF Mono,Monaco,Consolas,monospace;font-weight:500}.time-axis-tick.has-prefix .time-axis-tick-label{display:none}.time-axis-tick.has-prefix .time-axis-tick-mark{height:10px;background:#60a5fa99}.time-axis-current-time{position:absolute;top:0;bottom:0;pointer-events:none;z-index:5}.time-axis-current-time.draggable{pointer-events:all;cursor:grab;padding:0 8px;margin-left:-8px}.time-axis-current-time.draggable:hover .time-axis-current-marker{border-top-color:#fbbf24;transform:translate(-50%) scale(1.2)}.time-axis-current-time.dragging{cursor:grabbing}.time-axis-current-time.dragging .time-axis-current-marker{border-top-color:#fcd34d;transform:translate(-50%) scale(1.3)}.time-axis-current-marker{position:absolute;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:8px solid #f59e0b;transition:transform .1s,border-top-color .1s}.time-axis-zoom-hint{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:9px;color:#ffffff4d;pointer-events:none;opacity:0;transition:opacity .2s}.shared-time-axis:hover .time-axis-zoom-hint{opacity:1}[data-theme=lunar-light] .shared-time-axis{background:#0000000a;border-bottom-color:#0000001f}[data-theme=lunar-light] .shared-time-axis:hover{background:#0000000f}[data-theme=lunar-light] .time-axis-tick-mark{background:#00000040}[data-theme=lunar-light] .time-axis-tick-label{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .time-axis-prefix-label{color:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .time-axis-tick.has-prefix .time-axis-tick-mark{background:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .time-axis-zoom-hint{color:var(--text-muted, #9a9a9a)}.time-range-selector{position:absolute;top:0;left:0;right:0;pointer-events:none;z-index:40;overflow:hidden}.time-range-dim{position:absolute;top:0;bottom:0;background:#0006;pointer-events:all}.time-range-dim.full-width{background:transparent}.time-range-selection{position:absolute;top:0;bottom:0;background:#3b82f61a;pointer-events:all;transition:background .15s;cursor:grab}.time-range-selection:hover{background:#3b82f626}.time-range-selection.dragging{background:#3b82f633;cursor:grabbing}.time-range-border{position:absolute;left:0;right:0;height:2px;background:#3b82f699;pointer-events:none}.time-range-border.top{top:0}.time-range-border.bottom{bottom:0}.time-range-handle{position:absolute;top:0;bottom:0;width:8px;background:transparent;transition:background .15s;cursor:ew-resize;pointer-events:all;z-index:70}.time-range-handle.left{left:0;border-left:2px solid rgba(59,130,246,.8)}.time-range-handle.right{right:0;border-right:2px solid rgba(59,130,246,.8)}.time-range-handle:hover,.time-range-handle.active{background:#3b82f64d}.time-range-handle.left:hover,.time-range-handle.left.active{border-left-color:#3b82f6}.time-range-handle.right:hover,.time-range-handle.right.active{border-right-color:#3b82f6}.time-range-handle:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:2px;height:24px;background:#3b82f680;border-radius:1px;opacity:0;transition:opacity .15s}.time-range-handle:hover:after,.time-range-handle.active:after{opacity:1}.time-range-labels{position:absolute;top:4px;left:0;right:0;pointer-events:none}.time-range-label{position:absolute;top:0;font-size:10px;font-family:SF Mono,Monaco,Consolas,monospace;color:#60a5fa;background:#000000d9;padding:2px 6px;border-radius:3px;white-space:nowrap;border:1px solid rgba(59,130,246,.5);z-index:60}.time-range-label.start{left:0;transform:translate(-50%)}.time-range-label.end{right:0;transform:translate(50%)}[data-theme=lunar-light] .time-range-dim{background:#00000014}[data-theme=lunar-light] .time-range-selection{background:#2563eb14}[data-theme=lunar-light] .time-range-selection:hover{background:#2563eb1f}[data-theme=lunar-light] .time-range-selection.dragging{background:#2563eb2e}[data-theme=lunar-light] .time-range-border{background:#2563eb80}[data-theme=lunar-light] .time-range-handle.left{border-left-color:#2563ebb3}[data-theme=lunar-light] .time-range-handle.right{border-right-color:#2563ebb3}[data-theme=lunar-light] .time-range-handle:hover,[data-theme=lunar-light] .time-range-handle.active{background:#2563eb33}[data-theme=lunar-light] .time-range-handle.left:hover,[data-theme=lunar-light] .time-range-handle.left.active{border-left-color:#2563eb}[data-theme=lunar-light] .time-range-handle.right:hover,[data-theme=lunar-light] .time-range-handle.right.active{border-right-color:#2563eb}[data-theme=lunar-light] .time-range-handle:after{background:#2563eb80}[data-theme=lunar-light] .time-range-label{color:#2563eb;background:#fffffff2;border-color:#2563eb66}.loop-range-selector{position:absolute;inset:0;pointer-events:none;z-index:100}.loop-range-selector.dragging{cursor:grabbing}.loop-range-bar{position:absolute;top:0;height:24px;background:#c8c8be0f;border-top:2px solid rgba(200,200,190,.4);cursor:grab;pointer-events:auto;transition:background .15s}.loop-range-bar:hover{background:#c8c8be1a}.loop-range-selector.dragging .loop-range-bar{cursor:grabbing;background:#c8c8be1f}.loop-handle{position:absolute;top:0;width:24px;height:100%;cursor:ew-resize;pointer-events:auto;z-index:101}.loop-handle.in-point{left:-12px}.loop-handle.out-point{right:-12px}.loop-handle:before{content:"";position:absolute;top:-2px;width:0;height:0;border-style:solid;transition:all .15s;filter:drop-shadow(0 1px 2px rgba(0,0,0,.3))}.loop-handle.in-point:before{left:8px;border-width:12px 12px 0 0;border-color:rgba(200,200,190,.5) transparent transparent transparent}.loop-handle.out-point:before{right:8px;border-width:0 12px 12px 0;border-color:transparent rgba(200,200,190,.5) transparent transparent}.loop-handle:hover:before,.loop-handle.active:before{filter:drop-shadow(0 0 4px rgba(200,200,190,.3))}.loop-handle.in-point:hover:before,.loop-handle.in-point.active:before{border-color:rgba(220,220,210,.7) transparent transparent transparent}.loop-handle.out-point:hover:before,.loop-handle.out-point.active:before{border-color:transparent rgba(220,220,210,.7) transparent transparent}.data-range-modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .15s ease-out}.data-range-modal{background:#1a1a1f;border-radius:12px;border:1px solid rgba(255,255,255,.1);width:420px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080;animation:slideUp .2s ease-out}.data-range-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid rgba(255,255,255,.08);cursor:move;-webkit-user-select:none;user-select:none}.data-range-header.dragging{cursor:grabbing}.data-range-header h3{margin:0;font-size:14px;font-weight:600;color:#fff;letter-spacing:.3px}.modal-close{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:#888;cursor:pointer!important;transition:all .15s}.modal-close:hover{background:#ffffff1a;color:#fff}.data-range-content{flex:1;overflow-y:auto;min-height:100px}.no-ranges{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;color:#666}.no-ranges p{margin:0;font-size:13px}.no-ranges .hint{margin-top:8px;font-size:11px;color:#555}.data-range-item{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.05);transition:background .1s}.data-range-item:hover{background:#ffffff08}.data-range-item:last-child{border-bottom:none}.range-info{display:flex;flex-direction:column;gap:4px}.range-date{font-size:14px;font-weight:600;color:#fff}.range-types{font-size:12px;color:#3b82f6}.range-count{font-size:11px;color:#666}.range-jump-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:6px;color:#60a5fa;font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.range-jump-btn:hover{background:#3b82f640;border-color:#3b82f680;color:#93c5fd}.range-jump-btn:active{transform:scale(.97)}.range-jump-btn svg{flex-shrink:0}.data-range-footer{padding:12px 20px;border-top:1px solid rgba(255,255,255,.08);background:#0003}.range-summary{font-size:11px;color:#666}.data-range-content::-webkit-scrollbar{width:8px}.data-range-content::-webkit-scrollbar-track{background:transparent}.data-range-content::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:4px}.data-range-content::-webkit-scrollbar-thumb:hover{background:#ffffff40}.timeline-labels-panel{min-width:180px;max-width:220px;background:var(--dashboard-surface, linear-gradient(135deg, rgba(15, 15, 25, .98), rgba(20, 25, 35, .98)));border-right:1px solid var(--timeline-border-color, rgba(100, 200, 255, .15));display:flex;flex-direction:column;overflow:hidden;position:relative;flex-shrink:0}.timeline-labels-panel:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 2px,var(--timeline-glow-color, rgba(0, 255, 255, .01)) 2px,var(--timeline-glow-color, rgba(0, 255, 255, .01)) 4px);pointer-events:none;z-index:1;opacity:.5}[data-theme=lunar-light] .timeline-labels-panel:before{display:none}.timeline-labels-panel:after{content:"";position:absolute;right:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--accent-primary, rgba(0, 200, 255, .6)) 0%,var(--accent-primary-glow, rgba(100, 100, 255, .3)) 50%,var(--accent-primary, rgba(0, 200, 255, .6)) 100%);box-shadow:0 0 10px var(--accent-primary-glow, rgba(0, 200, 255, .4));pointer-events:none}[data-theme=lunar-light] .timeline-labels-panel:after{background:var(--border-primary);box-shadow:none;width:1px}.axis-header{display:flex;align-items:center;justify-content:flex-end;padding:0 12px;background:var(--transport-bg, linear-gradient(to bottom, rgba(50, 50, 55, .6), rgba(35, 35, 40, .6)));border-bottom:1px solid var(--dashboard-border, rgba(100, 200, 255, .1))}.axis-header-text{font-size:9px;font-weight:700;letter-spacing:2px;color:var(--text-muted, rgba(255, 255, 255, .4));text-transform:uppercase}.labels-section{border-bottom:1px solid var(--dashboard-border, rgba(100, 200, 255, .1));position:relative;z-index:2;box-sizing:border-box;flex-shrink:0}.labels-section:last-child{border-bottom:none;flex-shrink:1}.section-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}.section-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--accent-primary-glow, rgba(0, 200, 255, .15));border:1px solid var(--accent-primary, rgba(0, 200, 255, .3));border-radius:4px;color:var(--accent-primary, #00d4ff)}.section-title{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--accent-primary, rgba(0, 200, 255, .8));text-transform:uppercase}.strip-labels{padding:0 12px;display:flex;flex-direction:column;justify-content:space-evenly;box-sizing:border-box}.strip-label-row{display:flex;align-items:center;gap:8px}.strip-dot{width:8px;height:8px;border-radius:50%;box-shadow:0 0 6px currentColor}.strip-dot.observed{background:#06b6d4;color:#06b6d4}.strip-dot.controllable{background:#22c55e;color:#22c55e}.strip-dot.system{background:#f59e0b;color:#f59e0b}.strip-label-text{font-size:9px;font-weight:600;letter-spacing:1px;color:var(--text-secondary, rgba(255, 255, 255, .6));text-transform:uppercase;transition:color .15s}.strip-label-row.interactive{cursor:help;padding:2px 4px;margin:-2px -4px;border-radius:4px;transition:background .15s}.strip-label-row.interactive:hover{background:var(--bg-hover, rgba(255, 255, 255, .08))}.strip-label-row.interactive:hover .strip-label-text{color:var(--text-primary, rgba(255, 255, 255, .9))}.strip-label-row.interactive:hover .strip-dot{transform:scale(1.2);box-shadow:0 0 10px currentColor}.strip-dot{transition:transform .15s,box-shadow .15s}.gantt-labels{display:flex;flex-direction:column;padding:8px 12px;overflow:hidden}.gantt-types{display:flex;flex-direction:column;gap:4px;flex:1;overflow-y:auto}.command-type-label{display:flex;align-items:center;gap:8px;padding:4px 8px;background:var(--transport-bg, rgba(255, 255, 255, .03));border-radius:4px;border-left:2px solid transparent}.command-dot{width:6px;height:6px;border-radius:2px}.command-name{font-size:9px;font-weight:500;letter-spacing:.5px;color:var(--text-secondary, rgba(255, 255, 255, .7))}.more-indicator{font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .4));padding-left:8px}.entity-labels{display:flex;flex-direction:column;padding:8px 12px;overflow:hidden}.no-entities{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;gap:4px;padding:20px}.empty-text{font-size:10px;font-weight:600;letter-spacing:1px;color:var(--text-muted, rgba(255, 255, 255, .3))}.empty-hint{font-size:9px;color:var(--accent-primary, rgba(0, 200, 255, .4));opacity:.6}.entity-list{display:flex;flex-direction:column;gap:8px}.entity-card{position:relative;background:var(--transport-bg, rgba(0, 0, 0, .3));border:1px solid var(--dashboard-border, rgba(100, 200, 255, .15));border-radius:6px;padding:10px;overflow:hidden;transition:all .2s}.entity-card:hover{border-color:var(--entity-color, var(--accent-primary, rgba(100, 200, 255, .4)));box-shadow:0 0 15px var(--accent-primary-glow, rgba(0, 200, 255, .15))}.entity-card-glow{position:absolute;top:0;left:0;right:0;height:2px;opacity:.6}.entity-card-header{display:flex;align-items:center;gap:10px}.entity-icon{flex-shrink:0;width:32px;height:32px;filter:drop-shadow(0 0 4px var(--entity-color, rgba(100, 200, 255, .5)))}.entity-icon svg{width:100%;height:100%}.entity-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.entity-card-actions-overlay{position:absolute;right:8px;top:8px;display:flex;align-items:center;gap:4px;padding:3px 5px;background:var(--dashboard-surface-elevated, rgba(15, 23, 42, .92));border:1px solid var(--dashboard-border, rgba(100, 200, 255, .25));border-radius:5px;opacity:0;pointer-events:none;transition:opacity .15s;z-index:10}.entity-card:hover .entity-card-actions-overlay{opacity:1;pointer-events:auto}.entity-action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s}.entity-action-btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .1));color:var(--text-primary, rgba(255, 255, 255, .9))}.entity-action-btn.follow:hover{background:var(--accent-primary-glow, rgba(0, 200, 255, .15));color:var(--accent-primary, #00d4ff)}.entity-action-btn.remove:hover{background:var(--semantic-error-bg, rgba(239, 68, 68, .15));color:var(--semantic-error, #ef4444)}.entity-action-btn svg{width:12px;height:12px}.entity-name{font-size:12px;font-weight:600;color:var(--text-primary, white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 0 10px var(--entity-color, var(--accent-primary-glow, rgba(100, 200, 255, .5)))}[data-theme=lunar-light] .entity-name{text-shadow:none}.entity-type{font-size:9px;font-weight:500;letter-spacing:1px;color:var(--entity-color, #60a5fa);opacity:.8}.entity-card-body{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .1))}.entity-stat{display:flex;flex-direction:column;gap:2px}.stat-label{font-size:8px;font-weight:600;letter-spacing:1px;color:var(--text-muted, rgba(255, 255, 255, .4));text-transform:uppercase}.stat-value{font-size:10px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .9))}.entity-card.compact{padding:8px}.entity-card.compact .entity-icon{width:24px;height:24px}.entity-card.compact .entity-name{font-size:11px}.entity-group-compact{display:flex;flex-direction:column;gap:10px}.entity-icons-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.entity-icon-mini{width:28px;height:28px;border-radius:50%;overflow:hidden;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .2));transition:transform .15s,box-shadow .15s}.entity-icon-mini:hover{transform:scale(1.15);box-shadow:0 0 10px var(--accent-primary-glow, rgba(0, 200, 255, .5));z-index:10}.entity-icon-mini svg{width:100%;height:100%}.entity-count-badge{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--accent-primary-glow, rgba(100, 200, 255, .2));border:1px solid var(--accent-primary, rgba(100, 200, 255, .4));border-radius:50%;font-size:10px;font-weight:600;color:var(--accent-primary, #00d4ff)}.entity-names-list{display:flex;flex-direction:column;gap:3px}.entity-name-mini{font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.more-names{font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .4));font-style:italic}.legend-section{margin-top:auto;padding:10px 16px;background:var(--transport-bg, rgba(0, 0, 0, .2))}.legend-title{font-size:9px;font-weight:700;letter-spacing:2px;color:var(--text-muted, rgba(255, 255, 255, .4));margin-bottom:8px}.legend-items{display:flex;flex-direction:column;gap:6px}.legend-item{display:flex;align-items:center;gap:8px}.legend-marker{width:16px;height:3px;border-radius:2px}.legend-marker.playhead{background:#f59e0b;box-shadow:0 0 8px #f59e0b99}.legend-marker.selection{background:var(--accent-primary-glow, rgba(100, 200, 255, .4));border:1px solid var(--accent-primary, rgba(100, 200, 255, .6))}.legend-label{font-size:8px;font-weight:600;letter-spacing:1px;color:var(--text-muted, rgba(255, 255, 255, .5))}.multi-entity-toggle{display:flex;gap:2px;background:var(--transport-bg, rgba(255, 255, 255, .05));border-radius:4px;padding:2px}.entity-bound-list{display:flex;flex-direction:column;gap:0}.entity-telemetry-group{display:flex;flex-direction:column;border-bottom:1px solid var(--dashboard-border-subtle, rgba(100, 200, 255, .08))}.entity-telemetry-group:last-child{border-bottom:none}.entity-bound-header{position:relative;display:flex;align-items:center;gap:8px;padding:0 12px;background:linear-gradient(to right,var(--transport-bg, rgba(0, 0, 0, .3)),transparent);border-left:2px solid var(--entity-color, var(--accent-primary, #60a5fa));box-sizing:border-box}.entity-bound-icon{width:24px;height:24px;flex-shrink:0}.entity-bound-icon svg{width:100%;height:100%}.entity-bound-name{font-size:12px;font-weight:600;color:var(--text-primary, white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.entity-bound-type{font-size:9px;font-weight:500;letter-spacing:.5px;color:var(--entity-color, #60a5fa);opacity:.8;flex-shrink:0}.entity-bound-actions-overlay{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:4px;padding:2px 4px;background:var(--dashboard-surface-elevated, rgba(15, 23, 42, .9));border:1px solid var(--dashboard-border, rgba(100, 200, 255, .2));border-radius:4px;opacity:0;pointer-events:none;transition:opacity .15s}.entity-bound-header:hover .entity-bound-actions-overlay{opacity:1;pointer-events:auto}.entity-bound-action{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;border-radius:3px;transition:all .15s}.entity-bound-action:hover{background:var(--bg-hover, rgba(255, 255, 255, .1));color:var(--text-primary, rgba(255, 255, 255, .9))}.entity-bound-action.follow:hover{color:var(--accent-primary, #00d4ff);background:var(--accent-primary-glow, rgba(0, 212, 255, .15))}.entity-bound-action.remove:hover{color:var(--semantic-error, #ef4444);background:var(--semantic-error-bg, rgba(239, 68, 68, .15))}.telemetry-tree-container{position:relative;margin-left:20px}.telemetry-tree-container:before{content:"";position:absolute;left:8px;top:0;bottom:20px;width:1px;background:var(--dashboard-border, rgba(100, 200, 255, .25))}.telemetry-label-row{display:flex;align-items:center;gap:8px;padding:0 12px 0 0;box-sizing:border-box;background:var(--transport-bg, rgba(0, 0, 0, .1));position:relative}.telemetry-tree-branch{position:relative;width:28px;height:100%;flex-shrink:0}.tree-horizontal{position:absolute;left:8px;top:50%;width:16px;height:1px;background:var(--dashboard-border, rgba(100, 200, 255, .25))}.telemetry-label-row.last .tree-vertical{display:none}.telemetry-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}.telemetry-name{font-size:11px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .85));flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.telemetry-units{font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .4));margin-left:auto;flex-shrink:0}.section-header.clickable{cursor:pointer;padding:6px 8px;margin:0 -8px;border-radius:4px;transition:background .15s;-webkit-user-select:none;user-select:none}.section-header.clickable:hover{background:var(--bg-hover, rgba(255, 255, 255, .05))}.section-header.telemetry-header{margin-bottom:8px}.section-collapse-icon{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--text-muted, rgba(255, 255, 255, .5));transition:transform .2s ease}.section-collapse-icon.collapsed{transform:rotate(-90deg)}.section-count{margin-left:auto;font-size:9px;font-weight:600;color:var(--text-muted, rgba(255, 255, 255, .4));background:var(--transport-bg, rgba(255, 255, 255, .08));padding:2px 6px;border-radius:10px}.labels-section.collapsed{overflow:hidden}.labels-section.collapsed .gantt-types,.labels-section.collapsed .entity-list,.labels-section.collapsed .entity-bound-list,.labels-section.collapsed .entity-group-compact{display:none}.entity-collapse-icon{display:flex;align-items:center;justify-content:center;width:14px;height:14px;color:var(--text-muted, rgba(255, 255, 255, .4));transition:transform .2s ease;flex-shrink:0}.entity-collapse-icon.collapsed{transform:rotate(-90deg)}.entity-bound-header.clickable{cursor:pointer;transition:background .15s}.entity-bound-header.clickable:hover{background:linear-gradient(to right,var(--bg-hover, rgba(255, 255, 255, .05)),transparent)}.entity-telemetry-group.collapsed .telemetry-tree-container{display:none}.entity-telemetry-group.collapsed .entity-bound-header{border-bottom:1px solid var(--dashboard-border-subtle, rgba(100, 200, 255, .08))}.entity-pinned-indicator{display:flex;align-items:center;justify-content:center;width:14px;height:14px;color:#f59e0b;flex-shrink:0;margin-left:4px}.entity-bound-action.pin{color:var(--text-muted, rgba(255, 255, 255, .5))}.entity-bound-action.pin:hover{color:#f59e0b;background:#f59e0b26}.entity-bound-action.pin.active{color:#f59e0b}.entity-bound-action.pin.active:hover{color:var(--text-secondary, rgba(255, 255, 255, .7));background:var(--bg-hover, rgba(255, 255, 255, .1))}.entity-telemetry-group.pinned{background:linear-gradient(to right,rgba(245,158,11,.08),transparent);border-left:2px solid #f59e0b}.entity-telemetry-group.pinned .entity-bound-header{border-left:none}[data-theme=lunar-light] .timeline-labels-panel{background:var(--dashboard-surface, #e8e8e8)}[data-theme=lunar-light] .axis-header{background:var(--transport-bg, rgba(0, 0, 0, .06))}[data-theme=lunar-light] .strip-label-text{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .strip-label-row.interactive:hover .strip-label-text{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .command-type-label{background:var(--transport-bg, rgba(0, 0, 0, .06))}[data-theme=lunar-light] .command-name{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .entity-card{background:var(--transport-bg, rgba(0, 0, 0, .06));border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .entity-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .entity-bound-header{background:linear-gradient(to right,var(--transport-bg, rgba(0, 0, 0, .06)),transparent)}[data-theme=lunar-light] .entity-bound-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .telemetry-label-row{background:var(--transport-bg, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .telemetry-name{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .telemetry-units{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .legend-section{background:var(--transport-bg, rgba(0, 0, 0, .04))}[data-theme=lunar-light] .section-count{background:var(--transport-bg, rgba(0, 0, 0, .08));color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .stat-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .stat-value{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .more-indicator,[data-theme=lunar-light] .more-names,[data-theme=lunar-light] .empty-text{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .tree-horizontal,[data-theme=lunar-light] .telemetry-tree-container:before{background:var(--dashboard-border, rgba(0, 0, 0, .15))}.asset-timeline{background:var(--panel-bg, rgba(20, 20, 25, .95));border-radius:8px;border:1px solid var(--border-primary, rgba(255, 255, 255, .1));overflow:hidden;width:100%;box-sizing:border-box;--status-live-active: #10b981;--status-live-glow: rgba(16, 185, 129, .4);--status-loop-active: #a855f7;--status-loop-glow: rgba(168, 85, 247, .4);--status-selection-active: #3b82f6;--status-selection-glow: rgba(59, 130, 246, .4);--status-playing-active: #f59e0b;--status-playing-glow: rgba(245, 158, 11, .4);--status-off: rgba(255, 255, 255, .15);--status-off-text: rgba(255, 255, 255, .3)}.asset-timeline.empty{display:flex;align-items:center;justify-content:center;min-height:100px}.asset-timeline.minimized{transition:all .2s ease-out}.asset-timeline.minimized .timeline-header{border-bottom:none}.timeline-empty-message{color:var(--text-muted, rgba(255, 255, 255, .4));font-size:13px}.timeline-header{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:var(--header-gradient, linear-gradient(to bottom, rgba(50, 50, 55, .95), rgba(35, 35, 40, .95)));border-bottom:1px solid var(--header-border, rgba(0, 0, 0, .5));gap:12px;min-height:44px}.header-left{display:flex;align-items:center;gap:8px;flex-shrink:0}.header-center{display:flex;align-items:center;justify-content:center;flex-shrink:0}.header-right{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end}.transport-controls{display:flex;align-items:center;gap:4px}.transport-btn{display:flex;align-items:center;justify-content:center;min-width:28px;height:28px;padding:0 8px;background:var(--transport-bg, rgba(255, 255, 255, .08));border:1px solid var(--transport-border, rgba(255, 255, 255, .12));border-radius:4px;color:var(--text-secondary, rgba(255, 255, 255, .8));cursor:pointer;transition:all .15s;font-family:inherit;font-size:11px;font-weight:500}.transport-btn:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .15));color:var(--text-primary, white)}.transport-btn:active{background:var(--transport-bg-active, rgba(255, 255, 255, .2));transform:scale(.97)}.transport-btn.playing{background:#3b82f666;border-color:#3b82f699;color:#60a5fa}.transport-btn.speed-btn{min-width:52px;font-weight:600;font-size:12px}.transport-btn.speed-btn .speed-unit{font-size:9px;font-weight:500;opacity:.7;margin-left:1px}.transport-btn.speed-btn .speed-unit sub{font-size:7px;vertical-align:baseline;position:relative;top:2px}.transport-btn.now-btn{background:#f59e0b33;border-color:#f59e0b66;color:#fbbf24}.transport-btn.now-btn:hover{background:#f59e0b4d;border-color:#f59e0b80;color:#fcd34d}.transport-btn.data-range-btn{padding:0 6px}.transport-btn.data-range-btn:hover{background:#3b82f633;border-color:#3b82f666;color:#60a5fa}.transport-btn.minimize-btn{padding:0 6px}.transport-btn.minimize-btn:hover{background:#6366f133;border-color:#6366f166;color:#818cf8}.transport-btn.minimize-btn.active{background:#6366f14d;border-color:#6366f180;color:#a5b4fc}.transport-btn.skip-btn{padding:0 6px}.transport-btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.transport-divider{width:1px;height:18px;background:var(--border-secondary, rgba(255, 255, 255, .15));margin:0 4px}.transport-btn.loop-btn{padding:0 6px}.transport-btn.loop-btn.active{background:#8b5cf64d;border-color:#8b5cf680;color:#a78bfa}.transport-btn.loop-btn.active:hover{background:#8b5cf666;border-color:#8b5cf699}.transport-btn.now-btn.active.live{background:#10b9814d;border-color:#10b98180;color:#34d399;animation:live-pulse 2s infinite}.transport-btn.now-btn.active.live:hover{background:#10b98166;border-color:#10b98199}@keyframes live-pulse{0%,to{box-shadow:0 0 #10b98166}50%{box-shadow:0 0 0 4px #10b98100}}@keyframes live-dot{0%,to{opacity:1}50%{opacity:.5}}.timecode-display{display:flex;flex-direction:column;align-items:center;background:var(--timecode-bg, rgba(0, 0, 0, .4));border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:4px;padding:4px 16px;min-width:100px}.timecode-date{font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .5));text-transform:uppercase;letter-spacing:.5px}.timecode-time{display:flex;align-items:baseline;gap:4px;font-size:16px;font-weight:600;color:var(--timecode-color, #f59e0b);font-family:SF Mono,Monaco,Consolas,monospace;letter-spacing:1px}.timecode-timezone{font-size:10px;font-weight:500;color:#60a5fa;letter-spacing:.5px}.timecode-display.clickable{cursor:pointer;transition:all .15s;-webkit-user-select:none;user-select:none}.timecode-display.clickable:hover{background:var(--bg-hover, rgba(255, 255, 255, .08));border-color:var(--border-secondary, rgba(255, 255, 255, .2))}.timecode-display.clickable:hover .timecode-timezone{color:#93c5fd}.timecode-display.clickable:active{transform:scale(.98)}.timeline-header-modern{display:flex;align-items:center;gap:12px;padding:6px 12px;background:var(--header-bg, rgba(25, 25, 32, .85));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--header-border, rgba(0, 0, 0, .4));min-height:44px}.timeline-drag-handle{flex-shrink:0;opacity:0;transition:opacity .15s ease}.asset-timeline:hover .timeline-drag-handle,.asset-timeline-container:hover .timeline-drag-handle{opacity:1}.timeline-size-controls{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s ease}.asset-timeline:hover .timeline-size-controls,.asset-timeline-container:hover .timeline-size-controls{opacity:1}.header-separator{width:1px;height:24px;background:var(--separator-gradient, linear-gradient( 180deg, transparent 0%, rgba(255, 255, 255, .15) 20%, rgba(255, 255, 255, .15) 80%, transparent 100% ));margin:0 4px}.transport-cluster{display:flex;align-items:center;gap:4px}.transport-btn-modern{display:flex;align-items:center;justify-content:center;width:26px;height:26px;background:var(--transport-btn-bg, rgba(60, 60, 70, .6));border:1px solid var(--transport-border, rgba(255, 255, 255, .12));border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .6));cursor:pointer;transition:all .1s}.transport-btn-modern:hover{background:var(--transport-btn-hover, rgba(80, 80, 90, .8));color:var(--text-primary, white);border-color:var(--border-secondary, rgba(255, 255, 255, .2))}.transport-btn-modern:active{background:var(--transport-btn-active, rgba(50, 50, 60, .8))}.transport-btn-modern svg{width:12px;height:12px}.transport-btn-modern.play{width:28px;height:28px;border-radius:4px;background:#3b82f633;border-color:#3b82f64d}.transport-btn-modern.play svg{width:14px;height:14px}.transport-btn-modern.play.playing{background:#f59e0b40;border-color:#f59e0b80;color:#f59e0b}.transport-btn-modern.loop{margin-left:4px}.transport-btn-modern.loop.active{background:#3b82f640;border-color:#3b82f680;color:#60a5fa}.transport-btn-modern.speed{width:auto;min-width:36px;padding:0 6px;margin-left:4px}.transport-btn-modern.speed .speed-label{font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px;font-weight:600;letter-spacing:-.3px}.speed-value-modern{font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;font-weight:700;color:var(--text-primary, white);line-height:1}.speed-unit-modern{font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .5));text-transform:uppercase;letter-spacing:.5px}.speed-indicator-bar{width:100%;height:3px;background:var(--track-bg, rgba(255, 255, 255, .1));border-radius:2px;overflow:hidden}.speed-indicator-fill{height:100%;background:var(--status-playing-active);border-radius:2px;transition:width .2s ease-out}.timecode-panel{display:flex;align-items:center;gap:0;background:var(--timecode-panel-bg, linear-gradient(180deg, rgba(8, 12, 18, .95), rgba(4, 8, 14, .98)));border:1px solid var(--timecode-panel-border, rgba(60, 180, 255, .15));border-radius:4px;padding:4px 8px;height:52px;box-sizing:border-box;box-shadow:var(--timecode-panel-shadow, inset 0 1px 0 rgba(255, 255, 255, .03), 0 2px 8px rgba(0, 0, 0, .4))}.live-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 10px;margin-right:10px;cursor:pointer;opacity:.5;transition:all .15s;background:#10b9810d;border:1px solid rgba(16,185,129,.2);border-radius:6px;min-width:44px}.live-indicator:hover{opacity:.7;background:#10b9811a}.live-indicator.active{opacity:1;background:#10b98126;border-color:#34d39980;box-shadow:0 0 12px #34d3994d}.live-dot{width:12px;height:12px;border-radius:50%;background:#10b98166;transition:all .2s}.live-indicator.active .live-dot{background:#34d399;box-shadow:0 0 10px #34d399b3;animation:live-dot-pulse 1.2s ease-in-out infinite}@keyframes live-dot-pulse{0%,to{box-shadow:0 0 10px #34d399b3}50%{box-shadow:0 0 16px #34d399,0 0 20px #34d39980}}.live-label{font-size:9px;font-weight:700;letter-spacing:.1em;color:#10b98199}.live-indicator.active .live-label{color:#34d399}.status-column{display:flex;flex-direction:column;justify-content:center;gap:1px;padding-right:10px;border-right:1px solid rgba(60,180,255,.1);margin-right:10px}.status-badge{display:flex;align-items:center;justify-content:flex-start;gap:4px;cursor:pointer;padding:3px 8px;border-radius:4px;transition:all .15s;font-size:10px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;min-width:115px}.status-badge .badge-icon{font-size:9px;line-height:1;opacity:.8}.status-badge .badge-icon-svg{flex-shrink:0;opacity:.7}.status-badge:hover .badge-icon-svg,.status-badge.active .badge-icon-svg{opacity:1}.status-badge .badge-label{line-height:1}.status-badge .badge-value{font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px;font-weight:500;margin-left:2px;opacity:.9}.status-badge.loop{background:#3b82f614;color:#3b82f680;border:none}.status-badge.loop:hover{background:#3b82f61f;color:#3b82f6b3}.status-badge.loop.active{background:#3b82f626;color:#60a5fa}.status-badge.selection{background:#3b82f614;color:#3b82f680;border:none}.status-badge.selection:hover{background:#3b82f61f;color:#3b82f6b3}.status-badge.selection.active{background:#3b82f626;color:#60a5fa}.status-row{display:flex;align-items:center;gap:6px;cursor:pointer;padding:2px 4px;border-radius:2px;transition:all .15s;opacity:.5}.status-row:hover{background:var(--bg-hover, rgba(255, 255, 255, .05));opacity:.7}.status-row.active{opacity:1}.status-dot-oblivion{width:5px;height:5px;border-radius:50%;background:#64647866;box-shadow:0 0 3px #64647833;transition:all .2s;flex-shrink:0}.status-row.loop .status-dot-oblivion{background:#a855f766}.status-row.loop.active .status-dot-oblivion{background:#c084fc;box-shadow:0 0 8px #c084fc99}.status-row.selection .status-dot-oblivion{background:#3b82f680}.status-row.selection.active .status-dot-oblivion{background:#60a5fa;box-shadow:0 0 8px #60a5fa99}.status-row.live .status-dot-oblivion{background:#10b98166}.status-row.live.active .status-dot-oblivion{background:#34d399;box-shadow:0 0 8px #34d39999;animation:dot-pulse-oblivion 1.2s ease-in-out infinite}@keyframes dot-pulse-oblivion{0%,to{box-shadow:0 0 8px #34d39999}50%{box-shadow:0 0 12px #34d399e6,0 0 16px #34d39966}}.status-name{font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--text-muted, rgba(255, 255, 255, .5));min-width:32px}.status-row.active .status-name{color:var(--text-secondary, rgba(255, 255, 255, .7))}.status-row.loop.active .status-name{color:#c084fce6}.status-row.selection.active .status-name{color:#60a5fae6}.status-row.cmd.active .status-name{color:#fbbf24e6}.status-data{font-family:SF Mono,Monaco,Consolas,monospace;font-size:12px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .35));min-width:48px;text-align:right}.status-row.active .status-data{color:var(--text-secondary, rgba(255, 255, 255, .7))}.status-row.cmd .status-dot-oblivion{background:#fbbf2466}.status-row.cmd.active .status-dot-oblivion{background:#fbbf24;box-shadow:0 0 6px #fbbf2499}.timecode-main{display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:0 6px}.timecode-date-row{font-size:8px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .4));letter-spacing:.5px;text-transform:uppercase;margin-bottom:1px}.timecode-digits{display:flex;align-items:flex-start;gap:1px}.digit-group{display:flex;flex-direction:column;align-items:center}.digit{font-family:SF Mono,Monaco,Consolas,monospace;font-size:22px;font-weight:500;color:#4ade80;letter-spacing:1px;line-height:1;text-shadow:0 0 12px rgba(74,222,128,.4)}.digit-label{font-size:6px;font-weight:600;color:var(--text-muted, rgba(255, 255, 255, .25));letter-spacing:.3px;margin-top:1px}.digit-separator{font-family:SF Mono,Monaco,Consolas,monospace;font-size:22px;font-weight:400;color:#4ade8066;line-height:1;padding:0 1px}.timecode-tz-right{font-size:9px;font-weight:600;color:#4ade8080;letter-spacing:.5px;padding-left:8px;border-left:1px solid rgba(60,180,255,.1);margin-left:8px;display:flex;align-items:center}.timecode-tz{font-size:10px;font-weight:600;color:#4ade8099;letter-spacing:.5px;margin-top:3px}.timecode-tz-section{font-size:10px;font-weight:600;color:#4ade8099;letter-spacing:.5px;padding:0 8px;border-left:1px solid rgba(60,180,255,.1);margin-left:8px;display:flex;align-items:center;align-self:center}.timecode-tz-selector{display:flex;flex-direction:column;gap:2px;padding:4px 10px;border-left:1px solid rgba(60,180,255,.1);margin-left:8px;cursor:pointer}.tz-option{display:flex;align-items:center;gap:6px;padding:2px 6px;border-radius:3px;transition:all .15s;opacity:.4}.tz-option:hover{opacity:.6}.tz-option.active{opacity:1;background:#4ade801a}.tz-label{font-size:8px;font-weight:600;letter-spacing:.5px;color:var(--text-muted, rgba(255, 255, 255, .5));min-width:32px}.tz-option.active .tz-label{color:#4ade80cc}.tz-time{font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .6))}.tz-option.active .tz-time{color:#4ade80}.next-cmd-section{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 10px;margin-left:10px;cursor:pointer;transition:all .15s;background:#fbbf2408;border:1px solid rgba(251,191,36,.15);border-radius:6px;min-width:44px;opacity:.6}.next-cmd-section:hover{opacity:.8;background:#fbbf2414}.next-cmd-section.active{opacity:1;background:#fbbf241a;border-color:#fbbf2466;box-shadow:0 0 10px #fbbf2433}.next-cmd-icon{color:#fbbf2466;transition:all .2s}.next-cmd-section.active .next-cmd-icon{color:#fbbf24;filter:drop-shadow(0 0 6px rgba(251,191,36,.6))}.next-cmd-label{font-size:9px;font-weight:700;letter-spacing:.1em;color:#fbbf2499}.next-cmd-section.active .next-cmd-label{color:#fbbf24}.timecode-panel.minimized{padding:4px 4px 4px 8px}.timecode-toggle-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;border-radius:3px;background:transparent;color:#ffffff4d;cursor:pointer;flex-shrink:0;margin-left:2px;padding:0;transition:color .15s ease,background .15s ease}.timecode-toggle-btn:hover{color:#ffffffb3;background:#ffffff14}.timecode-toggle-btn:active{background:#ffffff1f}.metrics-panel{display:flex;align-items:center;gap:12px;background:var(--timecode-panel-bg, linear-gradient(180deg, rgba(8, 12, 18, .95), rgba(4, 8, 14, .98)));border:1px solid var(--timecode-panel-border, rgba(60, 180, 255, .15));border-radius:4px;padding:4px 12px;margin-left:8px;box-shadow:var(--timecode-panel-shadow, inset 0 1px 0 rgba(255, 255, 255, .03), 0 2px 8px rgba(0, 0, 0, .4));height:52px;box-sizing:border-box;min-width:320px;cursor:pointer;transition:all .2s ease}.metrics-panel:hover{border-color:#3cb4ff40}.metrics-panel.minimized{min-width:auto;width:auto;padding:4px 10px}.metrics-mini{display:flex;align-items:center;gap:8px}.metrics-mini-item{display:flex;flex-direction:column;align-items:center;gap:2px}.metrics-mini-top{display:flex;align-items:center;gap:4px}.metrics-mini-value{font-family:SF Mono,Monaco,Consolas,monospace;font-size:14px;font-weight:600;color:var(--text-secondary, rgba(255, 255, 255, .7))}.metrics-mini-value.good{color:#4ade80}.metrics-mini-value.warn{color:#fbbf24}.metrics-mini-value.bad{color:#f87171}.metrics-mini-bars{display:flex;align-items:flex-end;gap:2px;height:12px}.mini-bar{width:2px;min-height:2px;border-radius:1px;background-color:currentColor}.metrics-mini-bars.good{color:#4ade80}.metrics-mini-bars.warn{color:#fbbf24}.metrics-mini-bars.bad{color:#f87171}.metrics-mini-label{display:flex;align-items:center;gap:3px;font-size:8px;font-weight:600;letter-spacing:.05em;color:var(--text-muted, rgba(255, 255, 255, .4))}.metrics-mini-icon{color:#64b4ff80}.metrics-mini-separator{color:#3cb4ff33;font-size:14px;margin:0 2px;align-self:stretch;display:flex;align-items:center}.metrics-column-left{display:flex;flex-direction:column;justify-content:center;gap:4px;flex:1}.metrics-column-right{display:flex;flex-direction:column;justify-content:center;gap:4px;padding-left:12px;border-left:1px solid rgba(60,180,255,.12);min-width:90px}.metrics-row{display:flex;align-items:center;gap:6px}.metrics-icon{color:#64b4ff80;flex-shrink:0}.metrics-label{font-size:9px;font-weight:600;letter-spacing:.05em;color:#ffffff80;min-width:24px}.metrics-value{font-family:SF Mono,Monaco,Consolas,monospace;font-size:13px;font-weight:500;color:#ffffffb3;text-align:right;min-width:48px}.metrics-value.good{color:#4ade80}.metrics-value.warn{color:#fbbf24}.metrics-value.bad{color:#f87171}.metrics-spark{font-family:monospace;font-size:10px;letter-spacing:-1px;margin-left:4px;line-height:1}.metrics-spark.good{color:#4ade80b3}.metrics-spark.warn{color:#fbbf24b3}.metrics-spark.bad{color:#f87171b3}.dashboard-center{position:relative;display:flex;align-items:center;gap:16px;padding:0 8px}.status-indicators{display:flex;align-items:center;gap:6px}.status-indicator{display:flex;align-items:center;gap:4px;padding:3px 8px;background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:4px;cursor:pointer;transition:all .15s;position:relative}.status-indicator:hover{background:#ffffff0f}.status-indicator.loop{border-color:#a855f74d;opacity:.7}.status-indicator.loop .status-label,.status-indicator.loop .status-value{color:#a855f799}.status-indicator.loop.active{opacity:1;background:#a855f733;border-color:#a855f799;box-shadow:0 0 8px #a855f74d}.status-indicator.loop.active .status-label,.status-indicator.loop.active .status-value{color:#c084fc}.status-indicator.selection{border-color:#3b82f659}.status-indicator.selection .status-label{color:#3b82f680}.status-indicator.selection .status-value{color:#3b82f6b3}.status-indicator.selection.active{background:#3b82f626;border-color:#3b82f680}.status-indicator.selection.active .status-label,.status-indicator.selection.active .status-value{color:#60a5fa}.status-indicator.live{border-color:#10b9814d;opacity:.7}.status-indicator.live .status-label{color:#10b98199}.status-indicator.live.active{opacity:1;background:#10b98133;border-color:#10b98199;box-shadow:0 0 8px #10b9814d}.status-indicator.live.active .status-label{color:#34d399;animation:live-blink 1s infinite}@keyframes live-blink{0%,to{opacity:1}50%{opacity:.5}}.status-label{font-size:9px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#fff6;line-height:1}.status-value{font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px;font-weight:500;color:#ffffff80;line-height:1}.status-dot{display:none}.status-indicator.loop.active .status-dot{background:var(--status-loop-active);box-shadow:0 0 8px var(--status-loop-active)}.status-indicator.selection.active .status-dot{background:var(--status-selection-active);box-shadow:0 0 8px var(--status-selection-active)}.status-indicator.live.active .status-dot{background:var(--status-live-active);box-shadow:0 0 8px var(--status-live-active);animation:dot-pulse 1.5s ease-in-out infinite}@keyframes dot-pulse{0%,to{opacity:1}50%{opacity:.5}}.status-indicator.selection.active .status-value{color:#3b82f6e6}.status-duration{font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;font-weight:600;color:#fffc}.status-indicator .status-expanded{position:absolute;bottom:-28px;left:50%;transform:translate(-50%);background:#000000e6;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 10px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px;color:#ffffffe6;white-space:nowrap;opacity:0;visibility:hidden;transition:all .15s;z-index:100}.status-indicator:hover .status-expanded{opacity:1;visibility:visible}.timecode-display-modern{display:flex;align-items:center;gap:10px;cursor:pointer;padding:4px 12px;border-radius:4px;transition:background .15s;background:#00000040;border:1px solid rgba(74,222,128,.15)}.timecode-display-modern:hover{background:#00000059;border-color:#4ade8040}.timecode-display-modern .timecode-date{font-size:10px;font-weight:500;color:#ffffff73;text-transform:uppercase;letter-spacing:.5px}.timecode-display-modern .timecode-time-row{display:flex;align-items:baseline;gap:6px}.timecode-display-modern .timecode-time{font-family:SF Mono,Monaco,Consolas,monospace;font-size:28px;font-weight:500;color:#4ade80;letter-spacing:2px;text-shadow:0 0 20px rgba(74,222,128,.3)}.timecode-display-modern .timecode-timezone{font-size:11px;font-weight:600;color:#4ade8099;letter-spacing:.5px}.command-preview{display:flex;align-items:center;gap:6px;background:transparent;border:1px solid rgba(59,130,246,.2);border-radius:4px;padding:3px 8px;cursor:pointer;transition:all .15s;margin-top:4px;animation:command-glow 3s ease-in-out infinite}.command-preview:hover{background:#3b82f626;border-color:#3b82f659}@keyframes command-glow{0%,to{border-color:#3b82f633}50%{border-color:#3b82f659}}.command-asset{font-size:9px;font-weight:600;color:#64c8ffcc}.command-name{font-size:9px;color:#ffffff80;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.command-countdown{font-family:SF Mono,Monaco,Consolas,monospace;font-size:9px;font-weight:600;color:#3b82f6;margin-left:auto}.command-arrow{color:#fff6;width:12px;height:12px}.command-preview.empty{opacity:.5;animation:none;cursor:default}.command-preview.empty:hover{background:#3b82f614;border-color:#3b82f633}.command-queue-popup{min-width:480px;max-width:560px;max-height:50vh;background:var(--dashboard-bg, rgba(20, 24, 32, .98));border:1px solid rgba(255,255,255,.15);border-radius:8px;box-shadow:0 8px 32px #00000080;z-index:10000;overflow:hidden}.command-queue-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:#ffffff0d;border-bottom:1px solid rgba(255,255,255,.1);font-size:12px;font-weight:600;color:#ffffffe6;text-transform:uppercase;letter-spacing:.05em}.command-queue-close{background:none;border:none;color:#ffffff80;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;transition:color .15s}.command-queue-close:hover{color:#ffffffe6}.command-queue-list{max-height:300px;overflow-y:auto}.command-queue-item{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.05);transition:background .15s}.command-queue-item:last-child{border-bottom:none}.command-queue-item:hover{background:#3b82f61a}.command-queue-item.selected{background:#3b82f633;border-left:3px solid var(--status-selection-active, #3b82f6)}.command-queue-item .cq-order{font-size:13px;font-weight:700;color:#ffffff59;min-width:20px;text-align:center}.command-queue-item .cq-pill{font-size:10px;font-weight:600;letter-spacing:.3px;padding:2px 8px;border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px;background:color-mix(in srgb,currentColor 12%,transparent)}.command-queue-item .cq-time{margin-left:auto;font-size:12px;color:#ffffff80;font-family:SF Mono,Monaco,monospace}.command-queue-empty{padding:24px;text-align:center;color:#fff6;font-size:12px}.status-tooltip{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:6px;padding:6px 10px;background:#141820fa;border:1px solid rgba(255,255,255,.15);border-radius:4px;font-size:11px;font-family:SF Mono,Monaco,monospace;color:#ffffffe6;white-space:nowrap;z-index:100;box-shadow:0 4px 12px #0000004d}.controls-panel-modern{display:flex;align-items:center;gap:10px;margin-left:auto}.slider-group-modern{display:flex;align-items:center;gap:8px}.slider-control-modern{display:flex;align-items:center;gap:4px}.slider-control-modern .slider-label{font-size:10px;font-weight:600;color:#3b82f699;text-transform:uppercase;letter-spacing:.3px;min-width:36px}.slider-input-modern{width:60px;height:3px;-webkit-appearance:none;appearance:none;background:#ffffff26;border-radius:2px;outline:none;cursor:pointer}.slider-input-modern::-webkit-slider-thumb{-webkit-appearance:none;width:10px;height:10px;background:#3b82f6;border-radius:2px;cursor:pointer}.slider-input-modern::-webkit-slider-thumb:hover{background:#60a5fa}.slider-control-modern .slider-value{font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px;font-weight:500;color:#60a5fa;background:#000000d9;padding:2px 6px;border-radius:3px;border:1px solid rgba(59,130,246,.5);min-width:52px;text-align:center}.chart-controls-group{display:flex;align-items:center;gap:3px;margin-left:4px}.chart-mode-toggle-btn,.add-series-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#0006;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#ffffff80;cursor:pointer;transition:all .15s ease}.chart-mode-toggle-btn:hover,.add-series-btn:hover{background:#3b82f633;border-color:#3b82f680;color:#60a5fa}.chart-mode-toggle-btn:active,.add-series-btn:active{transform:scale(.95)}.add-series-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.chart-mode-toggle-btn svg,.add-series-btn svg{flex-shrink:0}.quick-actions{display:flex;gap:3px}.action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:1px solid rgba(255,255,255,.12);border-radius:3px;color:#fff6;cursor:pointer;font-size:11px;font-weight:600;transition:all .1s}.action-btn:hover{background:#ffffff14;color:#ffffffb3;border-color:#fff3}.action-btn.active{background:#3b82f626;border-color:#3b82f666;color:#3b82f6}.quick-action-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:#fff6;cursor:pointer;transition:all .15s}.quick-action-btn:hover{background:#ffffff1a;color:#fffc}.quick-action-btn.active{background:#6366f133;border-color:#6366f166;color:#818cf8}.slider-group{display:flex;gap:16px}.slider-control{display:flex;align-items:center;gap:8px}.slider-label{font-size:10px;color:#ffffff80;text-transform:uppercase;letter-spacing:.3px;min-width:36px}.slider-input{width:80px;height:4px;-webkit-appearance:none;appearance:none;background:#ffffff26;border-radius:2px;outline:none;cursor:pointer}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:#3b82f6;border-radius:50%;cursor:pointer;transition:transform .15s,box-shadow .15s;box-shadow:0 1px 3px #0000004d}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:0 0 8px #3b82f680}.slider-input::-moz-range-thumb{width:12px;height:12px;background:#3b82f6;border-radius:50%;border:none;cursor:pointer}.slider-value{font-size:10px;font-weight:600;color:#60a5fa;background:#3b82f626;padding:3px 8px;border-radius:3px;min-width:48px;text-align:center}.header-divider{width:1px;height:24px;background:#ffffff26}.asset-controls{display:flex;align-items:center;gap:8px}.asset-badge{display:flex;align-items:center;padding:4px 10px;background:#3b82f633;border:1px solid rgba(59,130,246,.3);border-radius:4px}.asset-name{font-size:11px;font-weight:500;color:#60a5fa}.view-btn{display:flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:#fff6;cursor:pointer;transition:all .1s}.view-btn svg{width:13px;height:13px}.view-btn:hover{background:#ffffff14;color:#ffffffb3}.view-btn.active{background:#3b82f633;border-color:#3b82f666;color:#3b82f6}.view-divider{width:1px;height:18px;background:#ffffff26;margin:0 2px}.view-btn.renderer-toggle{background:#8b5cf61a;border-color:#8b5cf64d;color:#8b5cf6b3}.view-btn.renderer-toggle:hover{background:#8b5cf633;color:#8b5cf6e6}.view-btn.renderer-toggle.active{background:#8b5cf64d;border-color:#8b5cf699;color:#a78bfa}.timeline-empty-state{display:flex;align-items:center;justify-content:center;min-height:80px;color:#fff6;font-size:12px}.timeline-history-control{display:flex;align-items:center;gap:12px;flex:1;max-width:300px}.history-control-header{display:flex;align-items:center;gap:6px;color:#ffffff80;flex-shrink:0}.history-control-header svg{opacity:.6}.history-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px}.history-slider-compact{display:flex;align-items:center;gap:8px;flex:1}.history-range-input{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;outline:none;cursor:pointer}.history-range-input::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:#3b82f6;border-radius:50%;cursor:pointer;transition:transform .15s}.history-range-input::-webkit-slider-thumb:hover{transform:scale(1.2)}.history-range-input::-moz-range-thumb{width:12px;height:12px;background:#3b82f6;border-radius:50%;border:none;cursor:pointer}.history-value{font-size:11px;font-weight:600;color:#3b82f6;background:#3b82f626;padding:2px 8px;border-radius:3px;min-width:48px;text-align:center}.timeline-zoom-control{display:flex;align-items:center;gap:12px;flex:1;max-width:300px}.zoom-control-header{display:flex;align-items:center;gap:6px;color:#ffffff80;flex-shrink:0}.zoom-control-header svg{opacity:.6}.zoom-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px}.zoom-slider-compact{display:flex;align-items:center;gap:8px;flex:1}.zoom-range-input{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:2px;outline:none;cursor:pointer}.zoom-range-input::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;background:#10b981;border-radius:50%;cursor:pointer;transition:transform .15s}.zoom-range-input::-webkit-slider-thumb:hover{transform:scale(1.2)}.zoom-range-input::-moz-range-thumb{width:12px;height:12px;background:#10b981;border-radius:50%;border:none;cursor:pointer}.zoom-value{font-size:11px;font-weight:600;color:#10b981;background:#10b98126;padding:2px 8px;border-radius:3px;min-width:48px;text-align:center}.timeline-controls{display:flex;align-items:center;gap:12px;flex-shrink:0}.view-mode-selector{display:flex;background:#ffffff0d;border-radius:4px;padding:2px}.timeseries-side-panel{width:100px;flex-shrink:0;display:flex;flex-direction:column;background:#121216f2;border-right:1px solid rgba(255,255,255,.1)}.timeseries-controls-row{display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 4px;border-bottom:1px solid rgba(255,255,255,.08);height:32px;flex-shrink:0}.side-panel-label-row{display:flex;flex-direction:column;justify-content:center;padding:4px 8px;border-bottom:1px solid rgba(255,255,255,.05)}.side-panel-label-row:last-child{border-bottom:none}.timeseries-chart-area{flex:1;position:relative;min-width:0;display:flex;flex-direction:column}.time-series-unique-chart-row{flex:1;position:relative;border-bottom:1px solid rgba(255,255,255,.05)}.time-series-unique-chart-row:last-child{border-bottom:none}.section-add-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fff9;cursor:pointer;transition:all .15s ease}.section-add-btn:hover{background:#3b82f64d;border-color:#3b82f680;color:#ffffffe6}.chart-view-toggle{display:flex;background:#ffffff0d;border-radius:6px;padding:2px;gap:2px}.chart-view-toggle .view-btn{width:28px;height:24px;padding:0;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;color:#fff6;cursor:pointer;transition:all .15s ease}.chart-view-toggle .view-btn:hover{color:#ffffffb3;background:#ffffff0d}.chart-view-toggle .view-btn.active{background:#3b82f64d;color:#ffffffe6}.mode-btn{padding:4px 6px;background:transparent;border:none;color:#ffffff80;cursor:pointer;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:all .2s}.mode-btn:hover{color:#fffc}.mode-btn.active{background:#3b82f64d;color:#3b82f6}.series-selector{display:flex;gap:4px}.series-btn{padding:3px 8px;background:#ffffff0d;border:1px solid transparent;border-radius:3px;font-size:10px;color:#ffffff80;cursor:pointer;transition:all .2s}.series-btn:hover{background:#ffffff1a;color:#fffc}.series-btn.active{background:color-mix(in srgb,var(--series-color) 20%,transparent);border-color:color-mix(in srgb,var(--series-color) 40%,transparent);color:var(--series-color)}.timeline-body{display:flex;flex-direction:row;width:100%;position:relative}.timeline-main{flex:1;min-width:0;display:flex;flex-direction:column;position:relative}.timeline-current-time-cursor{position:absolute;top:0;bottom:0;width:2px;background:#f59e0b;box-shadow:0 0 8px #f59e0b99;pointer-events:none;z-index:100;transform:translate(-50%)}.timeline-content{display:flex;flex-direction:column;width:100%}.timeline-charts-container{position:relative;display:flex;flex-direction:column;width:100%}.timeline-section{position:relative;width:100%}.gantt-section{border-bottom:1px solid rgba(255,255,255,.1);position:relative;z-index:35}.gantt-section.edit-mode{z-index:45}.timeseries-section{position:relative;z-index:35;display:flex;flex-direction:row}.time-series-unique-wrapper,.time-series-entity-bound-wrapper{flex:1;display:flex;flex-direction:column;overflow:visible}.entity-bound-chart-group{display:flex;flex-direction:column;border-bottom:1px solid rgba(100,200,255,.08)}.entity-bound-chart-group:last-child{border-bottom:none}.entity-bound-chart-header{background:linear-gradient(to right,rgba(0,0,0,.15),transparent);border-bottom:1px solid rgba(100,200,255,.05)}.entity-bound-chart-row{border-bottom:1px solid rgba(100,200,255,.03);box-sizing:border-box}.entity-bound-chart-row:last-child{border-bottom:none}.gantt-chart{position:relative;background:#0003;overflow:hidden}.gantt-chart.empty{display:flex;align-items:center;justify-content:center}.gantt-empty-message{color:#fff6;font-size:12px}.gantt-header{position:absolute;top:0;left:0;right:0;background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.1);pointer-events:none}.gantt-tick{position:absolute;top:0;bottom:0;transform:translate(-50%)}.gantt-tick-label{position:absolute;top:4px;left:50%;transform:translate(-50%);font-size:9px;color:#ffffff80;white-space:nowrap}.gantt-body{position:absolute;left:0;right:0;bottom:0}.gantt-grid{position:absolute;inset:0;pointer-events:none}.gantt-grid-line{position:absolute;top:0;bottom:0;width:1px;background:#ffffff0d;transform:translate(-50%)}.gantt-row{position:absolute;left:0;right:0;display:flex;align-items:center;padding:4px 0}.gantt-bar{position:absolute;height:24px;border-radius:4px;display:flex;align-items:center;padding:0 8px;cursor:pointer;transition:all .15s;overflow:hidden;box-shadow:0 1px 3px #0000004d;z-index:50}.gantt-bar:hover{transform:scaleY(1.1);box-shadow:0 2px 8px #0006}.gantt-bar.selected{outline:2px solid white;outline-offset:1px}.gantt-bar-label{font-size:10px;font-weight:500;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 2px rgba(0,0,0,.5)}.gantt-bar-progress{position:absolute;left:0;top:0;bottom:0;background:#fff3;pointer-events:none}.gantt-current-time{position:absolute;top:0;bottom:0;pointer-events:none;z-index:10}.gantt-current-time-marker{width:2px;height:100%;background:#f59e0b;box-shadow:0 0 8px #f59e0b}.time-series-chart{position:relative;background:#0003;width:100%;min-width:100%;box-sizing:border-box;overflow:visible}.time-series-chart.empty{display:flex;align-items:center;justify-content:center}.time-series-empty-message{color:#fff6;font-size:12px}.time-series-chart svg{display:block;width:100%;height:100%;cursor:crosshair}.time-series-legend{position:absolute;top:8px;right:12px;display:flex;gap:8px;background:#141419e6;padding:4px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.1)}.legend-item{display:flex;align-items:center;gap:4px;background:transparent;border:none;cursor:pointer;padding:2px 4px;border-radius:3px;transition:background .2s}.legend-item:hover,.legend-item.highlighted{background:#ffffff1a}.legend-color{width:8px;height:8px;border-radius:2px}.legend-name{font-size:10px;color:#fffc}.legend-units{font-size:9px;color:#fff6}.time-series-tooltip{position:absolute;background:#1e1e23f2;border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:8px 10px;pointer-events:none;z-index:100;min-width:120px;box-shadow:0 4px 12px #0006}.tooltip-time{font-size:10px;color:#fff9;margin-bottom:6px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.1)}.tooltip-value{display:flex;align-items:center;gap:6px;font-size:11px;margin-top:4px}.tooltip-color{width:6px;height:6px;border-radius:2px}.tooltip-name{color:#ffffffb3}.tooltip-number{color:#fff;font-weight:500;margin-left:auto}.time-series-side-panel{position:absolute;top:0;left:0;bottom:0;display:flex;flex-direction:column;width:90px;background:#121216f2;border-right:1px solid rgba(255,255,255,.1);pointer-events:auto;z-index:50;overflow:hidden}.side-panel-series-list{flex:1;display:flex;flex-direction:column;gap:2px;padding:6px;overflow-y:auto}.side-panel-series{background:#ffffff08;border-radius:4px;padding:5px 6px;cursor:pointer;transition:background .15s}.side-panel-series:hover,.side-panel-series.highlighted{background:#ffffff14}.side-panel-series-header{display:flex;align-items:center;gap:5px;margin-bottom:2px}.side-panel-color{width:8px;height:8px;border-radius:2px;flex-shrink:0}.side-panel-name{font-size:11px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-panel-remove{display:flex;align-items:center;justify-content:center;width:14px;height:14px;background:transparent;border:none;border-radius:2px;color:#ffffff4d;cursor:pointer;opacity:0;transition:opacity .15s,color .15s,background .15s;flex-shrink:0}.side-panel-series:hover .side-panel-remove{opacity:1}.side-panel-remove:hover{color:#f87171;background:#f8717126}.side-panel-values{display:flex;align-items:center;gap:3px;font-size:10px;font-family:ui-monospace,SF Mono,Monaco,monospace;padding-left:13px}.side-panel-max{color:#fffc}.side-panel-separator{color:#ffffff40;font-size:8px}.side-panel-min{color:#ffffff80}.side-panel-units{color:#ffffff59;font-size:9px;margin-left:1px}.side-panel-controls{display:flex;flex-direction:column;gap:4px;border-top:1px solid rgba(255,255,255,.08);padding:5px;pointer-events:auto}.side-panel-view-btns{display:flex;gap:2px}.side-panel-view-btn{flex:1;display:flex;align-items:center;justify-content:center;height:20px;background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:#fff6;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;cursor:pointer;transition:all .15s}.side-panel-view-btn:hover{background:#ffffff0f;color:#fff9}.side-panel-view-btn.active{background:#3b82f626;border-color:#3b82f666;color:#60a5fa}.side-panel-add-btn{display:flex;align-items:center;justify-content:center;width:100%;height:20px;background:transparent;border:1px dashed rgba(59,130,246,.25);border-radius:3px;color:#3b82f680;cursor:pointer;transition:all .15s}.side-panel-add-btn:hover{background:#3b82f61a;border-color:#3b82f666;color:#3b82f6}.side-panel-controls{position:relative}.side-panel-dropdown{position:absolute;bottom:100%;left:0;right:0;margin-bottom:4px;background:#191920fa;border:1px solid rgba(255,255,255,.15);border-radius:6px;box-shadow:0 -4px 16px #0006;overflow:hidden;z-index:100}.side-panel-dropdown-item{display:flex;align-items:center;gap:6px;width:100%;padding:8px 10px;background:transparent;border:none;color:#fffc;font-size:11px;text-align:left;cursor:pointer;transition:background .1s}.side-panel-dropdown-item:hover{background:#3b82f626}.side-panel-dropdown-item.selected{background:#3b82f61a}.side-panel-dropdown-item .dropdown-check{width:14px;color:#3b82f6;font-size:12px}.side-panel-dropdown-item .dropdown-name{flex:1}.time-series-unique-container{display:flex;flex-direction:column;height:100%}.time-series-unique-row{display:flex;flex:1;min-height:40px;border-bottom:1px solid rgba(255,255,255,.05)}.time-series-unique-row:last-child{border-bottom:none}.time-series-unique-label{width:90px;flex-shrink:0;display:flex;flex-direction:column;justify-content:center;padding:4px 8px;background:#121216f2;border-right:1px solid rgba(255,255,255,.1);pointer-events:auto;position:relative;z-index:55}.unique-label-header{display:flex;align-items:center;gap:4px}.unique-label-color{width:6px;height:6px;border-radius:2px;flex-shrink:0}.unique-label-name{font-size:11px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unique-label-values{display:flex;align-items:center;gap:3px;font-size:10px;font-family:ui-monospace,SF Mono,Monaco,monospace;margin-top:2px;padding-left:10px}.unique-label-max{color:#ffffffb3}.unique-label-sep{color:#fff3;font-size:8px}.unique-label-min{color:#ffffff73}.unique-label-units{color:#ffffff4d;font-size:9px;margin-left:2px}.unique-label-remove{display:flex;align-items:center;justify-content:center;width:12px;height:12px;margin-left:auto;background:transparent;border:none;border-radius:2px;color:#fff3;cursor:pointer;opacity:0;transition:opacity .15s,color .15s}.time-series-unique-label:hover .unique-label-remove{opacity:1}.unique-label-remove:hover{color:#f87171}.time-series-unique-chart{flex:1;position:relative;min-width:0}.time-series-unique-controls-row{display:flex;height:32px;flex-shrink:0;border-top:1px solid rgba(255,255,255,.08);pointer-events:auto;position:relative;z-index:60}.time-series-unique-controls{width:90px;flex-shrink:0;display:flex;align-items:center;justify-content:center;padding:4px 6px;background:#121216f2;border-right:1px solid rgba(255,255,255,.1);pointer-events:auto}.timeseries-section.timeseries-unique{display:flex;flex-direction:column}.timeseries-section.timeseries-unique .time-series-unique-container{flex:1;display:flex;flex-direction:column}.time-series-right-axis{position:absolute;top:10px;right:8px;display:flex;flex-direction:column;gap:4px;max-width:140px;pointer-events:auto;z-index:50}.right-axis-series{background:#141419d9;border:1px solid rgba(255,255,255,.1);border-radius:4px;padding:4px 8px;cursor:pointer;transition:background .2s,border-color .2s}.right-axis-series:hover,.right-axis-series.highlighted{background:#282832f2;border-color:#fff3}.right-axis-label{font-size:10px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right-axis-values{display:flex;align-items:center;gap:4px;font-size:10px;font-family:ui-monospace,SF Mono,Monaco,monospace}.right-axis-max{color:#ffffffe6}.right-axis-separator{color:#ffffff4d;font-size:8px}.right-axis-min{color:#fff9}.right-axis-units{color:#fff6;font-size:9px;margin-left:2px}.gantt-bar.editable:hover{transform:scaleY(1.15)}.gantt-bar.dragging{opacity:.9;z-index:10;box-shadow:0 4px 16px #00000080;transition:none}.gantt-resize-handle{position:absolute;top:0;bottom:0;width:8px;background:transparent;transition:background .15s}.gantt-resize-handle.left{left:0;border-radius:4px 0 0 4px}.gantt-resize-handle.right{right:0;border-radius:0 4px 4px 0}.gantt-resize-handle.active{background:#ffffff4d}.gantt-confirmation-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.gantt-confirmation-modal{background:#1a1a1f;border-radius:8px;border:1px solid rgba(255,255,255,.1);min-width:320px;box-shadow:0 8px 32px #00000080;animation:modalSlideIn .15s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirmation-header{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1)}.confirmation-header h4{margin:0;font-size:14px;font-weight:600;color:#fff}.confirmation-content{padding:16px}.confirmation-command{font-size:13px;font-weight:500;color:#fff;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.1)}.confirmation-change{display:flex;flex-direction:column;gap:8px}.time-change{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px}.time-change .label{color:#ffffff80;width:40px}.time-change .time{color:#fffc;font-family:monospace}.time-change .duration{color:#fff6;font-size:11px}.time-change.new .time{color:#22c55e}.time-change.new .duration{color:#22c55e99}.time-arrow{color:#fff6;text-align:center;padding:4px 0}.confirmation-actions{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid rgba(255,255,255,.1)}.btn-undo,.btn-confirm{padding:8px 16px;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.btn-undo{background:#ffffff1a;border:1px solid rgba(255,255,255,.1);color:#ffffffb3}.btn-undo:hover{background:#ffffff26;color:#fff}.btn-confirm{background:#22c55e;border:none;color:#fff}.btn-confirm:hover{background:#16a34a}.data-availability-container{width:100%;background:#00000026;border-bottom:1px solid rgba(255,255,255,.05)}.data-availability-strip{width:100%;overflow:hidden}.data-availability-strip svg{display:block}.data-availability-strip .strip-label{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:7px;text-transform:uppercase;letter-spacing:.5px}.data-availability-strip .data-dot{transition:r .1s,opacity .1s}.data-availability-strip .data-dot:hover{r:4;opacity:1!important}.timeline-debug-panel{position:absolute;bottom:4px;left:4px;right:4px;background:#000000d9;border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:8px 12px;font-family:SF Mono,Monaco,Consolas,monospace;font-size:10px;color:#fffc;z-index:100;pointer-events:none;display:flex;flex-wrap:wrap;gap:4px 16px}.timeline-debug-panel .debug-row{display:flex;gap:6px;white-space:nowrap}.timeline-debug-panel .debug-label{color:#93c5fde6;font-weight:500}.timeline-debug-panel .debug-value{color:#ffffffb3}.help-container{position:relative}.transport-btn.help-btn{color:#ffffff80}.transport-btn.help-btn:hover,.transport-btn.help-btn.active{color:#ffffffe6;background:#3b82f633}.help-popup{width:280px;background:#0f172afa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(100,116,139,.3);border-radius:8px;box-shadow:0 10px 25px #00000080;z-index:10000;overflow:hidden}.help-popup-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#1e293b80;border-bottom:1px solid rgba(100,116,139,.2);font-size:12px;font-weight:600;color:#ffffffe6}.help-close-btn{background:none;border:none;color:#ffffff80;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.help-close-btn:hover{color:#ffffffe6}.help-popup-content{padding:12px;max-height:300px;overflow-y:auto}.help-section{margin-bottom:12px}.help-section:last-child{margin-bottom:0}.help-section-title{font-size:10px;font-weight:600;color:#3b82f6e6;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}.help-item{display:flex;align-items:center;gap:8px;font-size:11px;color:#ffffffb3;padding:3px 0}.help-key{display:inline-block;min-width:50px;padding:2px 6px;background:#64748b4d;border:1px solid rgba(100,116,139,.4);border-radius:3px;font-family:SF Mono,Monaco,monospace;font-size:10px;color:#ffffffe6;text-align:center}.help-text{font-size:11px;color:#fff9;line-height:1.5}.bookmark-container{position:relative}.bookmark-popup{width:280px;background:#0f172afa;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(100,116,139,.3);border-radius:8px;box-shadow:0 10px 25px #00000080;z-index:1000;overflow:hidden}.bookmark-popup-header{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#1e293b80;border-bottom:1px solid rgba(100,116,139,.2);font-size:12px;font-weight:600;color:#ffffffe6}.bookmark-close-btn{background:none;border:none;color:#ffffff80;font-size:16px;cursor:pointer;padding:0 4px;line-height:1}.bookmark-close-btn:hover{color:#ffffffe6}.bookmark-add-row{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid rgba(100,116,139,.2)}.bookmark-name-input{flex:1;background:#0000004d;border:1px solid rgba(100,116,139,.3);border-radius:4px;padding:6px 10px;font-size:11px;color:#ffffffe6;outline:none}.bookmark-name-input:focus{border-color:#3b82f680}.bookmark-name-input::placeholder{color:#fff6}.bookmark-add-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:#3b82f633;border:1px solid rgba(59,130,246,.3);border-radius:4px;color:#60a5fa;cursor:pointer;transition:all .15s}.bookmark-add-btn:hover{background:#3b82f64d;border-color:#3b82f680}.bookmark-list{max-height:200px;overflow-y:auto}.bookmark-empty{padding:20px 12px;text-align:center;font-size:11px;color:#fff6}.bookmark-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid rgba(100,116,139,.1)}.bookmark-item:last-child{border-bottom:none}.bookmark-item:hover{background:#ffffff08}.bookmark-index{display:flex;align-items:center;justify-content:center;width:18px;height:18px;background:#64748b33;border-radius:3px;font-family:SF Mono,Monaco,monospace;font-size:10px;font-weight:600;color:#fff9}.bookmark-name{flex:1;background:none;border:none;padding:0;font-size:12px;color:#ffffffe6;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookmark-name:hover{color:#60a5fa}.bookmark-time{font-size:10px;color:#fff6;white-space:nowrap}.bookmark-edit-btn,.bookmark-delete-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:none;border:none;color:#ffffff4d;cursor:pointer;border-radius:3px;transition:all .15s}.bookmark-edit-btn:hover{background:#ffffff1a;color:#ffffffb3}.bookmark-delete-btn:hover{background:#ef444433;color:#ef4444}.bookmark-edit-input{flex:1;background:#0000004d;border:1px solid rgba(59,130,246,.5);border-radius:3px;padding:4px 8px;font-size:12px;color:#ffffffe6;outline:none}.bookmark-hint{padding:8px 12px;background:#1e293b4d;border-top:1px solid rgba(100,116,139,.2);font-size:10px;color:#fff6;text-align:center}.hover-flag-tooltip{position:absolute;display:flex;align-items:center;background:#1e1e26f2;border:1px solid rgba(255,255,255,.2);border-radius:4px;padding:4px 8px;font-size:11px;color:#ffffffe6;white-space:nowrap;z-index:1000;box-shadow:0 2px 8px #0006;pointer-events:none}.flag-pointer{position:absolute;width:0;height:0;border:6px solid transparent}.flag-pointer.left{left:-12px;top:50%;transform:translateY(-50%);border-right-color:#1e1e26f2}.flag-pointer.right{right:-12px;top:50%;transform:translateY(-50%);border-left-color:#1e1e26f2}.flag-content{display:flex;align-items:center;gap:6px}.flag-data-icon{font-size:12px;line-height:1}.flag-series-name{color:#ffffffb3;font-weight:500}.flag-value{font-family:SF Mono,Monaco,Consolas,monospace;font-weight:600;color:#fff}.flag-units{color:#ffffff80;font-size:10px}.hover-flag-tooltip.flip-left .flag-pointer.left{display:none}.hover-flag-tooltip.flip-left .flag-pointer.right{display:block}.hover-flag-tooltip:not(.flip-left) .flag-pointer.right{display:none}[data-theme=lunar-light] .asset-timeline{background:var(--panel-bg, #e8e8e8);border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .timeline-header{background:var(--header-gradient, linear-gradient(to bottom, #e8e8e8, #d8d8d8));border-bottom-color:var(--header-border, rgba(0, 0, 0, .15))}[data-theme=lunar-light] .transport-btn{background:var(--transport-bg, rgba(0, 0, 0, .06));border-color:var(--transport-border, rgba(0, 0, 0, .12));color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .transport-btn:hover{background:var(--transport-bg-hover, rgba(0, 0, 0, .1));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .transport-btn:active{background:var(--transport-bg-active, rgba(37, 99, 235, .15))}[data-theme=lunar-light] .transport-divider{background:var(--border-secondary, rgba(0, 0, 0, .15))}[data-theme=lunar-light] .timecode-display{background:var(--timecode-bg, rgba(255, 255, 255, .6));border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .timecode-date{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .timecode-time{color:var(--timecode-color, #2563eb)}[data-theme=lunar-light] .timecode-display.clickable:hover{background:var(--bg-hover, rgba(0, 0, 0, .06));border-color:var(--border-secondary, rgba(0, 0, 0, .2))}[data-theme=lunar-light] .timeline-empty-message,[data-theme=lunar-light] .live-indicator-text{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .speed-presets-panel{background:var(--menu-bg, rgba(248, 248, 248, .98));border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .speed-preset-btn{background:var(--transport-bg, rgba(0, 0, 0, .06));border-color:var(--transport-border, rgba(0, 0, 0, .1));color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .speed-preset-btn:hover{background:var(--transport-bg-hover, rgba(0, 0, 0, .1));color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .control-group-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .flag-series-name{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .flag-value{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .flag-units{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .hover-flag-tooltip{background:#f5f5f5f5;border-color:#00000026;color:var(--text-primary, #4a4a4a);box-shadow:0 2px 8px #0000001f}[data-theme=lunar-light] .flag-pointer.left{border-right-color:#f5f5f5f5}[data-theme=lunar-light] .flag-pointer.right{border-left-color:#f5f5f5f5}[data-theme=lunar-light] .timecode-panel{background:linear-gradient(180deg,#f0f0f0,#e4e4e4);border-color:#00000026;box-shadow:inset 0 1px #fff9,0 2px 8px #0000001a}[data-theme=lunar-light] .status-column{border-right-color:#0000001a}[data-theme=lunar-light] .live-indicator{background:#16a34a14;border-color:#16a34a40}[data-theme=lunar-light] .live-indicator:hover{background:#16a34a1f}[data-theme=lunar-light] .live-indicator.active{background:#16a34a26;border-color:#16a34a80}[data-theme=lunar-light] .live-label{color:#16a34ab3}[data-theme=lunar-light] .live-indicator.active .live-label{color:#16a34a}[data-theme=lunar-light] .status-badge.loop{background:#3b82f61a;color:#3b82f6b3}[data-theme=lunar-light] .status-badge.loop:hover{background:#3b82f626;color:#3b82f6d9}[data-theme=lunar-light] .status-badge.loop.active{background:#3b82f633;color:#2563eb}[data-theme=lunar-light] .status-badge.selection{background:#2563eb1a;color:#2563ebb3}[data-theme=lunar-light] .status-badge.selection:hover{background:#2563eb26;color:#2563ebd9}[data-theme=lunar-light] .status-badge.selection.active{background:#2563eb33;color:#2563eb}[data-theme=lunar-light] .oblivion-time{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .oblivion-unit{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .oblivion-date{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .timezone-section{border-left-color:#0000001a}[data-theme=lunar-light] .timezone-row{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .tz-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .tz-time{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .timezone-row.local .tz-time{color:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .cmd-button{background:#2563eb1a;border-color:#2563eb4d;color:#2563eb}[data-theme=lunar-light] .cmd-button:hover{background:#2563eb33;border-color:#2563eb80}[data-theme=lunar-light] .metrics-panel{background:linear-gradient(180deg,#f0f0f0,#e4e4e4);border-color:#00000026;box-shadow:inset 0 1px #fff9,0 2px 8px #0000001a}[data-theme=lunar-light] .metrics-panel:hover{border-color:#00000040}[data-theme=lunar-light] .metrics-mini-value{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .metrics-mini-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .metrics-mini-icon{color:#2563eb99}[data-theme=lunar-light] .metric-value{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .metric-label,[data-theme=lunar-light] .metric-unit{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .metric-progress-bg{background:#0000001a}[data-theme=lunar-light] .entity-count,[data-theme=lunar-light] .track-count{color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .entity-label,[data-theme=lunar-light] .track-label,[data-theme=lunar-light] .zoom-control-header{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .zoom-range-input{background:#0000001a}[data-theme=lunar-light] .zoom-range-input::-webkit-slider-thumb{background:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .zoom-range-input::-moz-range-thumb{background:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .zoom-value{color:var(--accent-primary, #2563eb);background:#2563eb26}[data-theme=lunar-light] .view-mode-selector{background:#0000000f}[data-theme=lunar-light] .transport-btn.playing{background:#3b82f633;border-color:#3b82f666;color:#2563eb}[data-theme=lunar-light] .transport-btn.now-btn{background:#2563eb1a;border-color:#2563eb4d;color:#2563eb}[data-theme=lunar-light] .transport-btn.now-btn:hover{background:#2563eb26;border-color:#2563eb66;color:#1d4ed8}[data-theme=lunar-light] .transport-btn.now-btn.active.live{background:#16a34a26;border-color:#16a34a66;color:#16a34a}[data-theme=lunar-light] .transport-btn.data-range-btn:hover{background:#2563eb26;border-color:#2563eb4d;color:#2563eb}[data-theme=lunar-light] .transport-btn.minimize-btn:hover{background:#6366f126;border-color:#6366f14d;color:#6366f1}[data-theme=lunar-light] .transport-btn.minimize-btn.active{background:#6366f133;border-color:#6366f166;color:#4f46e5}[data-theme=lunar-light] .transport-btn.loop-btn.active{background:#8b5cf626;border-color:#8b5cf64d;color:#7c3aed}[data-theme=lunar-light] .transport-btn.loop-btn.active:hover{background:#8b5cf633;border-color:#8b5cf666}[data-theme=lunar-light] .data-availability-container{background:#0000000f;border-bottom-color:#0000001a}[data-theme=lunar-light] .timeline-debug-panel{background:#fffffff2;border-color:#00000026;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .transport-btn-modern{background:#0000000f;border-color:#00000026;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .transport-btn-modern:hover{background:#0000001a;color:var(--text-primary, #4a4a4a);border-color:#0003}[data-theme=lunar-light] .transport-btn-modern:active{background:#00000026}[data-theme=lunar-light] .transport-btn-modern.play{background:#3b82f626;border-color:#3b82f64d;color:#2563eb}[data-theme=lunar-light] .transport-btn-modern.play.playing{background:#f59e0b33;border-color:#f59e0b66;color:#d97706}[data-theme=lunar-light] .transport-btn-modern.loop.active{background:#3b82f633;border-color:#3b82f666;color:#2563eb}[data-theme=lunar-light] .slider-value{color:#2563eb;background:#3b82f61f;border:1px solid rgba(59,130,246,.25)}[data-theme=lunar-light] .slider-control-modern .slider-value{color:#2563eb;background:#3b82f61a;border-color:#3b82f64d}[data-theme=lunar-light] .slider-input{background:#0000001a}[data-theme=lunar-light] .slider-input::-webkit-slider-thumb{background:#2563eb}[data-theme=lunar-light] .slider-input::-moz-range-thumb{background:#2563eb}[data-theme=lunar-light] .chart-mode-toggle-btn,[data-theme=lunar-light] .add-series-btn{background:#0000000f;border-color:#00000026;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .chart-mode-toggle-btn:hover,[data-theme=lunar-light] .add-series-btn:hover{background:#3b82f626;border-color:#3b82f666;color:#2563eb}[data-theme=lunar-light] .action-btn{border-color:#0000001f;color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .action-btn:hover{background:#0000000f;color:var(--text-primary, #4a4a4a);border-color:#0003}[data-theme=lunar-light] .action-btn.active{background:#2563eb1f;border-color:#2563eb59;color:#2563eb}[data-theme=lunar-light] .header-divider{background:#0000001f}[data-theme=lunar-light] .quick-action-btn{background:#0000000f;border-color:#0000001f;color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .quick-action-btn:hover{background:#0000001a;color:var(--text-primary, #4a4a4a)}[data-theme=lunar-light] .timecode-panel,[data-theme=lunar-light] .metrics-panel{background:linear-gradient(180deg,#1e3a5f,#162d4a);border-color:#60a5fa4d;box-shadow:0 2px 8px #00000026,inset 0 1px #ffffff0d}[data-theme=lunar-light] .metrics-panel:hover{border-color:#60a5fa80}[data-theme=lunar-light] .status-column{border-right-color:#60a5fa33}[data-theme=lunar-light] .live-indicator{background:#10b9811a;border-color:#10b9814d}[data-theme=lunar-light] .live-indicator:hover{background:#10b98126}[data-theme=lunar-light] .live-indicator.active{background:#10b98133;border-color:#34d39980}[data-theme=lunar-light] .live-label{color:#34d399cc}[data-theme=lunar-light] .live-indicator.active .live-label{color:#34d399}[data-theme=lunar-light] .status-badge.loop{background:#60a5fa26;color:#93c5fdcc}[data-theme=lunar-light] .status-badge.loop:hover{background:#60a5fa33;color:#93c5fd}[data-theme=lunar-light] .status-badge.loop.active{background:#60a5fa40;color:#60a5fa}[data-theme=lunar-light] .status-badge.selection{background:#60a5fa26;color:#93c5fdcc}[data-theme=lunar-light] .status-badge.selection:hover{background:#60a5fa33;color:#93c5fd}[data-theme=lunar-light] .status-badge.selection.active{background:#60a5fa40;color:#60a5fa}[data-theme=lunar-light] .oblivion-time{color:#f0f9ff}[data-theme=lunar-light] .oblivion-unit{color:#93c5fd99}[data-theme=lunar-light] .oblivion-date{color:#93c5fdcc}[data-theme=lunar-light] .timezone-section{border-left-color:#60a5fa33}[data-theme=lunar-light] .timezone-row{color:#93c5fdb3}[data-theme=lunar-light] .tz-label{color:#93c5fd80}[data-theme=lunar-light] .tz-time{color:#f0f9ffe6}[data-theme=lunar-light] .timezone-row.local .tz-time{color:#34d399}[data-theme=lunar-light] .cmd-button{background:#34d39926;border-color:#34d39966;color:#34d399}[data-theme=lunar-light] .cmd-button:hover{background:#34d39940;border-color:#34d39999}[data-theme=lunar-light] .metrics-mini-value{color:#f0f9ff}[data-theme=lunar-light] .metrics-mini-label{color:#93c5fd99}[data-theme=lunar-light] .metrics-mini-icon{color:#60a5fab3}[data-theme=lunar-light] .metric-value{color:#f0f9ff}[data-theme=lunar-light] .metric-label{color:#93c5fd99}[data-theme=lunar-light] .metric-unit{color:#93c5fd80}[data-theme=lunar-light] .metric-progress-bg{background:#ffffff1a}[data-theme=lunar-light] .entity-count,[data-theme=lunar-light] .track-count{color:#f0f9ff}[data-theme=lunar-light] .entity-label,[data-theme=lunar-light] .track-label{color:#93c5fd99}[data-theme=lunar-light] .slider-label{color:var(--text-muted, #9a9a9a)}[data-theme=lunar-light] .slider-control-modern .slider-label{color:#2563ebb3}.entity-pagination{position:absolute;bottom:8px;right:8px;display:flex;align-items:center;gap:6px;background:#1e293bf2;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:4px 8px;z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.entity-pagination-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:4px;background:#ffffff1a;color:#fffc;cursor:pointer;transition:all .15s ease}.entity-pagination-btn:hover:not(:disabled){background:#fff3;color:#fff}.entity-pagination-btn:disabled{opacity:.3;cursor:not-allowed}.entity-pagination-info{font-size:11px;color:#ffffffb3;font-family:SF Mono,Monaco,Consolas,monospace;min-width:60px;text-align:center}.timeline-overlay-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.timeline-overlay-container>*{pointer-events:auto}.timeline-overlay-content-area{position:absolute;border:1px dashed rgba(255,255,255,.2);pointer-events:none}.timeline-overlay-cursor-line{position:absolute;width:1px;background:var(--accent-secondary, #f59e0b);pointer-events:none;opacity:.7;z-index:5}.timeline-overlay-children{position:relative;width:100%;height:100%;pointer-events:none}.timeline-overlay-children>*{pointer-events:auto}.webglimpse-timeline{position:relative;width:100%;height:100%;min-height:200px;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-radius:8px;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.webglimpse-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.webglimpse-row-labels{position:absolute;top:0;left:0;height:100%;background:var(--dashboard-surface, rgba(30, 30, 38, .95));border-right:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));z-index:10;overflow:hidden}.webglimpse-labels-header{display:flex;align-items:center;padding:0 8px;background:linear-gradient(to bottom,#282830e6,#191920e6);border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));font-size:11px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .5))}.webglimpse-group-labels{display:flex;flex-direction:column}.webglimpse-row-label{display:flex;flex-direction:column;justify-content:center;padding:4px 8px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .06));box-sizing:border-box}.webglimpse-row-label .label-text{font-size:11px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .9));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.webglimpse-row-label .label-range{font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .5));margin-top:2px}.webglimpse-time-axis{position:absolute;top:0;right:0;background:linear-gradient(to bottom,#282830e6,#191920e6);border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));z-index:5;overflow:hidden}.webglimpse-time-axis .axis-tick{position:absolute;top:50%;transform:translate(-50%) translateY(-50%);font-size:10px;color:var(--text-secondary, rgba(255, 255, 255, .7));white-space:nowrap;pointer-events:none}.webglimpse-fallback{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--dashboard-surface, rgba(20, 20, 28, .95))}.webglimpse-fallback .fallback-message{padding:20px 40px;background:#282830e6;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-secondary, rgba(255, 255, 255, .7));font-size:14px;text-align:center}.webglimpse-placeholder{position:relative;width:100%;height:100%;display:flex;font-size:11px;color:var(--text-secondary, rgba(255, 255, 255, .7))}.placeholder-labels{flex-shrink:0;background:var(--dashboard-surface, rgba(30, 30, 38, .95));border-right:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));overflow:hidden}.placeholder-labels-header{display:flex;align-items:center;justify-content:center;padding:0 8px;font-weight:500;color:var(--text-muted, rgba(255, 255, 255, .5));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.placeholder-group-label{padding:8px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.placeholder-row-label{padding:4px 8px 4px 16px;font-weight:400;color:var(--text-secondary, rgba(255, 255, 255, .7));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.placeholder-content{flex:1;position:relative;display:flex;flex-direction:column;min-width:0}.placeholder-axis{display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:var(--dashboard-surface, rgba(30, 30, 38, .95));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));color:var(--text-secondary, rgba(255, 255, 255, .7));font-size:10px}.placeholder-rows{flex:1;position:relative;background:#020810cc;overflow:hidden}.placeholder-event{position:absolute;top:8px;height:28px;min-width:4px;padding:0 6px;border:1px solid;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:transform .1s,box-shadow .1s}.placeholder-event:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0006;z-index:10}.placeholder-event.selected{box-shadow:0 0 0 2px var(--accent-primary, #60a5fa);z-index:11}.placeholder-current-time{position:absolute;top:0;bottom:0;width:2px;background:var(--accent-secondary, #f59e0b);box-shadow:0 0 8px #f59e0b80;z-index:20}.placeholder-selection{position:absolute;top:0;bottom:0;background:#3b82f626;border-left:1px solid rgba(59,130,246,.5);border-right:1px solid rgba(59,130,246,.5);pointer-events:none;z-index:5}.placeholder-stats{position:absolute;bottom:4px;right:8px;display:flex;gap:12px;font-size:9px;color:var(--text-muted, rgba(255, 255, 255, .5))}.loading-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .15s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-modal{background:var(--panel-bg);border-radius:12px;border:1px solid var(--border-primary);width:360px;display:flex;flex-direction:column;box-shadow:0 8px 32px #00000080;animation:slideUp .2s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.loading-modal-header{padding:16px 20px;border-bottom:1px solid var(--border-primary)}.loading-modal-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary);letter-spacing:.3px}.loading-modal-content{padding:24px 20px;display:flex;flex-direction:column;align-items:center;gap:16px}.loading-progress-container{width:100%;display:flex;align-items:center;gap:12px}.loading-progress-bar{flex:1;height:6px;background:var(--toggle-off);border-radius:3px;overflow:hidden}.loading-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary),var(--accent-primary));border-radius:3px;transition:width .2s ease-out;position:relative}.loading-progress-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loading-progress-text{font-size:12px;font-weight:600;color:var(--accent-primary);min-width:36px;text-align:right}.loading-status{font-size:12px;color:var(--text-secondary);text-align:center;min-height:18px}.loading-spinner{width:32px;height:32px;color:var(--accent-primary)}.loading-spinner svg{width:100%;height:100%;animation:spin 1s linear infinite}.loading-modal-footer{padding:12px 20px;border-top:1px solid var(--border-primary);display:flex;justify-content:center}.loading-cancel-btn{padding:8px 20px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:var(--status-error);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s}.loading-cancel-btn:hover{background:#ef444440;border-color:#ef444480;color:var(--status-error)}.loading-cancel-btn:active{transform:scale(.97)}.data-import-prompt-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.data-import-prompt{background:#1a1a1a;border:1px solid #333;border-radius:12px;min-width:320px;max-width:420px;box-shadow:0 8px 32px #0009;overflow:hidden}.data-import-prompt-header{display:flex;align-items:center;gap:.5rem;padding:1rem 1.25rem;background:#252525;border-bottom:1px solid #333;font-weight:600;font-size:.9rem}.data-import-prompt-header svg{flex-shrink:0}.data-import-prompt-content{padding:1.25rem}.data-import-name{font-size:1rem;font-weight:600;color:#fff;margin-bottom:1rem;word-break:break-word}.data-import-info{display:flex;align-items:flex-start;gap:.625rem;padding:.625rem 0;color:#888}.data-import-info svg{flex-shrink:0;margin-top:2px;color:#666}.data-import-info-text{display:flex;flex-direction:column;gap:.125rem}.data-import-info-label{font-size:.75rem;color:#666;text-transform:uppercase;letter-spacing:.03em}.data-import-info-value{font-size:.85rem;color:#ccc}.data-import-info-duration{font-size:.75rem;color:#666}.data-import-question{margin-top:1rem;padding-top:1rem;border-top:1px solid #333;font-size:.9rem;color:#aaa;text-align:center}.data-import-prompt-actions{display:flex;flex-direction:column;gap:.5rem;padding:1rem 1.25rem;background:#1f1f1f;border-top:1px solid #333}.data-import-btn-group{display:flex;gap:.5rem}.data-import-btn-group .data-import-btn{flex:1}.data-import-btn{padding:.625rem 1rem;border:none;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .15s}.data-import-btn.primary{background:#10b981;color:#fff}.data-import-btn.primary:hover{background:#059669}.data-import-btn.secondary{background:#333;color:#ccc}.data-import-btn.secondary:hover{background:#444;color:#fff}.data-import-btn.dismiss{background:transparent;color:#666;border:1px solid #333}.data-import-btn.dismiss:hover{background:#252525;color:#888;border-color:#444}.performance-overlay{position:absolute;bottom:.5rem;left:50%;transform:translate(-50%);background:#000000d9;border:1px solid #333;border-radius:4px;padding:.375rem .625rem;font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,monospace;font-size:.7rem;line-height:1.4;color:#888;z-index:100;min-width:200px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-user-select:none;user-select:none;pointer-events:none}.perf-row{display:flex;align-items:center;gap:.5rem;white-space:nowrap}.perf-build{border-bottom:1px solid #333;padding-bottom:.25rem;margin-bottom:.25rem}.perf-label{color:#666;font-weight:500;min-width:2.5rem;text-transform:uppercase;font-size:.6rem;letter-spacing:.05em}.perf-label.perf-secondary{min-width:auto;margin-left:.5rem}.perf-value{color:#aaa;font-weight:500;min-width:3rem}.perf-spark{color:#555;font-size:.65rem;letter-spacing:-.05em;flex:1;text-align:right;overflow:hidden}.perf-green{color:#22c55e}.perf-yellow{color:#eab308}.perf-red{color:#ef4444}.perf-dim{color:#555}.perf-gl{min-width:auto;margin-left:.75rem;color:#22c55e;background:#22c55e26;padding:.1rem .35rem;border-radius:2px;font-weight:600;letter-spacing:.1em}.perf-hint{color:#555;font-size:.6rem;margin-left:.25rem}.csv-wizard-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.csv-wizard{max-width:92vw;max-height:85vh;min-width:500px;min-height:400px;background-color:var(--panel-bg);border:1px solid var(--accent-primary);border-radius:12px;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;overflow:hidden;position:relative}.csv-wizard-header{padding:16px 20px;border-bottom:1px solid var(--border-primary);background:var(--bg-surface);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.csv-wizard-title{display:flex;align-items:center;gap:12px}.csv-wizard-icon{font-size:28px}.csv-wizard-title h2{margin:0;color:var(--text-primary);font-size:18px;font-weight:600}.csv-wizard-subtitle{font-size:12px;color:var(--text-secondary)}.csv-wizard-close{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.csv-wizard-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.csv-wizard-steps{display:flex;padding:12px 20px;background-color:var(--bg-surface);border-bottom:1px solid var(--border-primary);gap:4px;flex-shrink:0}.csv-wizard-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:6px;transition:all .2s;opacity:.5}.csv-wizard-step.active{opacity:1;background-color:#3b82f61a}.csv-wizard-step.completed{opacity:.8}.csv-wizard-step-number{width:24px;height:24px;border-radius:50%;background-color:var(--border-primary);color:var(--text-secondary);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600}.csv-wizard-step.active .csv-wizard-step-number{background-color:var(--accent-primary);color:#fff}.csv-wizard-step.completed .csv-wizard-step-number{background-color:#10b981;color:#fff}.csv-wizard-step-label{font-size:11px;color:var(--text-secondary);text-align:center}.csv-wizard-step.active .csv-wizard-step-label{color:var(--text-primary);font-weight:500}.csv-wizard-content{flex:1;overflow-y:auto;padding:20px;min-height:300px}.csv-wizard-footer{padding:12px 20px;border-top:1px solid var(--border-primary);background:var(--bg-surface);display:flex;justify-content:space-between;align-items:center;gap:12px;flex-shrink:0}.csv-wizard-footer-left,.csv-wizard-footer-right{display:flex;gap:8px}.csv-wizard-btn{padding:8px 16px;border-radius:6px;border:1px solid var(--border-primary);background-color:var(--bg-surface);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.csv-wizard-btn:hover{background-color:var(--bg-hover)}.csv-wizard-btn-primary{background-color:var(--accent-primary);border-color:var(--accent-primary);color:#fff}.csv-wizard-btn-primary:hover{filter:brightness(1.1)}.csv-wizard-btn-primary:disabled{opacity:.5;cursor:not-allowed}.csv-mode-selector{display:flex;gap:12px;margin-bottom:20px}.csv-mode-card{flex:1;padding:16px;border:2px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .2s;background:var(--bg-surface)}.csv-mode-card:hover{border-color:var(--text-secondary)}.csv-mode-card.selected{border-color:var(--accent-primary);background:#3b82f60d}.csv-mode-card-icon{font-size:24px;margin-bottom:8px}.csv-mode-card-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.csv-mode-card-desc{font-size:12px;color:var(--text-secondary);line-height:1.4}.csv-preview-table-wrapper{overflow-x:auto;border:1px solid var(--border-primary);border-radius:6px;margin-bottom:16px}.csv-preview-table{width:100%;border-collapse:collapse;font-size:11px;white-space:nowrap}.csv-preview-table th{padding:8px 12px;text-align:left;background-color:var(--bg-surface);color:var(--text-secondary);font-weight:600;border-bottom:1px solid var(--border-primary);position:sticky;top:0}.csv-preview-table td{padding:6px 12px;color:var(--text-primary);border-bottom:1px solid var(--border-secondary, rgba(255,255,255,.05));max-width:200px;overflow:hidden;text-overflow:ellipsis}.csv-preview-table tr:hover td{background-color:var(--bg-hover)}.csv-mapping-section{margin-bottom:16px}.csv-mapping-section h3{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 10px}.csv-mapping-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.csv-mapping-field{display:flex;flex-direction:column;gap:4px}.csv-mapping-label{font-size:11px;font-weight:500;color:var(--text-secondary);display:flex;align-items:center;gap:6px}.csv-mapping-label .detected{color:#10b981;font-size:10px}.csv-mapping-select{padding:6px 10px;background-color:var(--bg-surface);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);font-size:12px;outline:none;width:100%;min-width:0;text-overflow:ellipsis}.csv-mapping-select:focus{border-color:var(--accent-primary)}.csv-field-controls{display:flex;gap:8px;margin-bottom:12px;align-items:center}.csv-field-controls button{padding:4px 10px;background-color:var(--bg-surface);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-secondary);font-size:11px;cursor:pointer}.csv-field-controls button:hover{color:var(--text-primary);border-color:var(--text-secondary)}.csv-field-count{font-size:11px;color:var(--text-secondary);margin-left:auto}.csv-field-list{border:1px solid var(--border-primary);border-radius:6px;overflow:hidden}.csv-field-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border-secondary, rgba(255,255,255,.05));transition:background-color .1s}.csv-field-item:last-child{border-bottom:none}.csv-field-item:hover{background-color:var(--bg-hover)}.csv-field-item input[type=checkbox]{accent-color:var(--accent-primary);cursor:pointer}.csv-field-name{font-size:12px;color:var(--text-primary);font-weight:500;min-width:120px}.csv-field-type-badge{font-size:10px;padding:2px 6px;border-radius:3px;font-weight:500;text-transform:uppercase}.csv-field-type-badge.string{background:#3b82f626;color:#60a5fa}.csv-field-type-badge.number{background:#10b98126;color:#34d399}.csv-field-type-badge.datetime{background:#f59e0b26;color:#fbbf24}.csv-field-type-badge.json{background:#8b5cf626;color:#a78bfa}.csv-field-type-badge.boolean{background:#ec489926;color:#f472b6}.csv-field-type-badge.mixed{background:#6b728026;color:#9ca3af}.csv-field-sample{font-size:11px;color:var(--text-muted, #6b7280);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.csv-field-symbology{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--text-secondary);cursor:pointer;padding:2px 8px;border-radius:3px;border:1px solid transparent}.csv-field-symbology:hover{border-color:var(--border-primary)}.csv-field-symbology.active{background:#f59e0b26;color:#fbbf24;border-color:#f59e0b4d}.csv-field-meta{font-size:10px;color:var(--text-muted, #6b7280);white-space:nowrap}.csv-review-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px}.csv-review-card{padding:12px;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px}.csv-review-card-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);margin-bottom:4px}.csv-review-card-value{font-size:18px;font-weight:600;color:var(--text-primary)}.csv-review-card-detail{font-size:11px;color:var(--text-secondary);margin-top:2px}.csv-review-section{margin-bottom:16px}.csv-review-section h3{font-size:13px;font-weight:600;color:var(--text-primary);margin:0 0 8px}.csv-review-tag{display:inline-block;padding:3px 8px;background:#3b82f61a;border:1px solid rgba(59,130,246,.2);border-radius:4px;font-size:11px;color:#60a5fa;margin:2px 4px 2px 0}.csv-review-tag.symbology{background:#f59e0b1a;border-color:#f59e0b33;color:#fbbf24}.csv-contacts-section{margin-bottom:16px;padding:12px;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px}.csv-contacts-section h4{margin:0 0 8px;font-size:12px;font-weight:600;color:var(--text-primary)}.csv-time-range-info{font-size:12px;color:var(--text-secondary);margin-bottom:10px}.csv-time-filter-toggle{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-primary);cursor:pointer;margin-bottom:10px}.csv-time-filter-toggle input[type=checkbox]{accent-color:var(--accent-primary);cursor:pointer}.csv-time-filter-inputs{display:grid;grid-template-columns:1fr 1fr;gap:10px}.csv-time-filter-inputs input[type=date]{color-scheme:dark}.csv-geo-bounds-grid{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding:10px;background:#ffffff08;border:1px solid var(--border-primary);border-radius:6px}.csv-geo-bounds-row{display:flex;flex-direction:column;align-items:center;gap:4px}.csv-geo-bounds-middle{display:grid;grid-template-columns:1fr 1fr;gap:10px}.csv-geo-input{width:100%;text-align:center}.csv-geo-bounds-summary{margin-top:8px;font-size:11px;color:var(--text-secondary);font-family:monospace}.csv-parse-settings-grid{grid-template-columns:1fr 1fr 1fr}.csv-parse-warning{margin-top:8px;padding:6px 10px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:4px;color:#fbbf24;font-size:12px}.csv-resize-handle{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:nwse-resize;z-index:10}.csv-resize-handle:before{content:"";position:absolute;bottom:3px;right:3px;width:8px;height:8px;border-right:2px solid var(--text-secondary);border-bottom:2px solid var(--text-secondary);opacity:.4}.csv-resize-handle:hover:before{opacity:.8}.csv-wizard-dataset-name{background:transparent;border:1px solid transparent;border-radius:3px;color:var(--text-secondary);font-size:12px;padding:2px 6px;width:100%;outline:none}.csv-wizard-dataset-name:hover{border-color:var(--border-primary)}.csv-wizard-dataset-name:focus{border-color:var(--accent-primary);color:var(--text-primary)}.kml-wizard-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10001;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.kml-wizard{width:900px;min-width:600px;min-height:400px;max-width:95vw;max-height:90vh;background-color:var(--panel-bg);border:1px solid var(--accent-primary);border-radius:12px;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;overflow:hidden;resize:both}.kml-wizard-header{padding:14px 20px;border-bottom:1px solid var(--border-primary);background:var(--bg-surface);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}.kml-wizard-title{display:flex;align-items:center;gap:12px}.kml-wizard-title h2{margin:0;color:var(--text-primary);font-size:16px;font-weight:600}.kml-wizard-subtitle{font-size:11px;color:var(--text-secondary);display:block;margin-top:2px}.kml-wizard-close{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.kml-wizard-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.kml-wizard-body{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:16px}.kml-wizard-section{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;padding:14px 16px}.kml-wizard-section-title{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.kml-wizard-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.kml-wizard-field-grid>.kml-wizard-field:only-child{grid-column:1 / -1}.kml-wizard-field{display:flex;flex-direction:column;gap:4px}.kml-wizard-label{font-size:11px;color:var(--text-secondary);font-weight:500}.kml-wizard-input,.kml-wizard-select{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:6px;padding:7px 10px;color:var(--text-primary);font-size:13px;font-family:inherit;outline:none;transition:border-color .2s}.kml-wizard-input:focus,.kml-wizard-select:focus{border-color:var(--accent-primary)}.kml-wizard-computed{padding:7px 0;color:var(--text-primary);font-size:13px;font-family:SF Mono,Consolas,monospace}.kml-wizard-colors{display:flex;gap:16px;margin-top:10px}.kml-wizard-color-swatches{display:flex;gap:4px;flex-wrap:wrap}.kml-wizard-swatch{width:22px;height:22px;border-radius:4px;border:2px solid transparent;cursor:pointer;transition:all .15s;padding:0}.kml-wizard-swatch:hover{transform:scale(1.15)}.kml-wizard-swatch.selected{border-color:#fff;box-shadow:0 0 0 1px var(--bg-primary),0 0 6px #ffffff4d}.kml-wizard-bulk-speed{display:flex;align-items:center;gap:8px;margin-bottom:10px}.kml-wizard-bulk-speed .kml-wizard-label{margin:0}.kml-wizard-speed-input{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:4px;padding:4px 6px;color:var(--text-primary);font-size:13px;font-family:SF Mono,Consolas,monospace;width:70px;text-align:right;outline:none}.kml-wizard-speed-input:focus{border-color:var(--accent-primary)}.kml-wizard-unit{font-size:12px;color:var(--text-secondary)}.kml-wizard-btn-apply{background:var(--bg-hover);border:1px solid var(--border-primary);border-radius:4px;padding:4px 12px;color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .2s}.kml-wizard-btn-apply:hover{background:var(--accent-primary);border-color:var(--accent-primary)}.kml-wizard-segment-table-wrap{max-height:320px;overflow-y:auto;border:1px solid var(--border-primary);border-radius:6px}.kml-wizard-segment-table{width:100%;border-collapse:collapse;font-size:12px}.kml-wizard-segment-table thead{position:sticky;top:0;z-index:1}.kml-wizard-segment-table th{background:var(--bg-primary);color:var(--text-secondary);font-weight:500;text-align:left;padding:6px 8px;border-bottom:1px solid var(--border-primary);font-size:11px;text-transform:uppercase;letter-spacing:.3px}.kml-wizard-segment-table td{padding:5px 8px;border-bottom:1px solid var(--border-primary);color:var(--text-primary)}.kml-wizard-segment-table tbody tr:hover{background:var(--bg-hover)}.seg-num{color:var(--text-secondary);width:30px;text-align:center}.seg-leg{font-size:12px}.seg-coords{display:block;font-size:10px;color:var(--text-secondary);font-family:SF Mono,Consolas,monospace}.seg-dist,.seg-time{font-family:SF Mono,Consolas,monospace;text-align:right;white-space:nowrap}.seg-cmd{width:120px}.kml-wizard-cmd-select{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:4px;padding:3px 5px;color:var(--text-primary);font-size:12px;font-family:inherit;outline:none;cursor:pointer}.kml-wizard-cmd-select:focus{border-color:var(--accent-primary)}.seg-row-surv{background:#f973160f}.seg-row-surv:hover{background:#f973161f!important}.seg-speed{width:90px}.seg-speed .kml-wizard-speed-input{width:60px;padding:3px 5px;font-size:12px}.seg-total-label{font-weight:600;color:var(--text-secondary)}.kml-wizard-segment-table tfoot td{border-bottom:none;border-top:2px solid var(--border-primary);font-weight:600;padding:8px;background:var(--bg-primary)}.kml-wizard-footer{padding:14px 20px;border-top:1px solid var(--border-primary);background:var(--bg-surface);display:flex;justify-content:flex-end;gap:10px;flex-shrink:0}.kml-wizard-btn-cancel{background:none;border:1px solid var(--border-primary);border-radius:6px;padding:8px 16px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s}.kml-wizard-btn-cancel:hover{background:var(--bg-hover);color:var(--text-primary)}.kml-wizard-btn-import{background:var(--accent-primary);border:1px solid var(--accent-primary);border-radius:6px;padding:8px 20px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.kml-wizard-btn-import:hover{filter:brightness(1.1)}.kml-wizard-btn-import:disabled{opacity:.5;cursor:not-allowed;filter:none}.kml-wizard-btn-import.confirm{background:#f59e0b;border-color:#f59e0b}.kml-wizard-warning{padding:8px 16px;margin:0 16px;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:6px;font-size:12px;color:#f59e0b}.kml-shape-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000}.kml-shape-modal{background:var(--dashboard-bg, rgba(20, 24, 32, .98));border:1px solid rgba(255,255,255,.15);border-radius:12px;box-shadow:0 16px 64px #00000080;width:680px;max-width:90vw;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.kml-shape-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.1)}.kml-shape-title{display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:700;color:#fffffff2;text-transform:uppercase;letter-spacing:.05em}.kml-shape-filename{font-size:11px;font-weight:400;color:#fff6;text-transform:none;letter-spacing:0}.kml-shape-close{background:none;border:none;color:#ffffff80;font-size:20px;cursor:pointer;padding:0 4px;line-height:1}.kml-shape-close:hover{color:#ffffffe6}.kml-shape-stats{display:flex;align-items:center;gap:8px;padding:8px 18px;border-bottom:1px solid rgba(255,255,255,.05)}.kml-shape-stat-pill{font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;background:color-mix(in srgb,currentColor 12%,transparent)}.kml-shape-stat-total{margin-left:auto;font-size:11px;color:#fff6}.kml-shape-warning{padding:8px 18px;background:#f59e0b1a;border-bottom:1px solid rgba(245,158,11,.2);font-size:12px;color:#f59e0b}.kml-shape-table-wrap{flex:1;overflow-y:auto;min-height:0}.kml-shape-table{width:100%;border-collapse:collapse;font-size:12px}.kml-shape-table thead{position:sticky;top:0;background:var(--dashboard-bg, rgba(20, 24, 32, .98));z-index:1}.kml-shape-table th{text-align:left;padding:8px 12px;font-size:10px;font-weight:600;color:#fff6;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.1)}.kml-shape-table td{padding:6px 12px;color:#fffc;border-bottom:1px solid rgba(255,255,255,.04)}.kml-shape-table tbody tr{cursor:pointer;transition:background .1s}.kml-shape-table tbody tr:hover{background:#3b82f614}.kml-shape-table tbody tr.selected{background:#3b82f60d}.col-select{width:36px;text-align:center}.col-name{min-width:140px;max-width:180px}.col-type{width:110px}.col-verts{width:70px;text-align:right}.col-preview{width:72px}.col-verts{font-family:SF Mono,monospace;font-size:11px;color:#ffffff80}.shape-name-input{background:transparent;border:1px solid transparent;border-radius:3px;color:#fffc;font-size:12px;padding:2px 4px;width:100%;max-width:170px;text-overflow:ellipsis;transition:border-color .15s}.shape-name-input:hover{border-color:#ffffff26}.shape-name-input:focus{outline:none;border-color:#3b82f680;background:#ffffff0d}.shape-type-pill{font-size:10px;font-weight:600;padding:2px 6px;border-radius:3px;background:color-mix(in srgb,currentColor 12%,transparent);white-space:nowrap}.shape-preview-svg{width:60px;height:40px;display:block}.shape-preview-img{width:60px;height:40px;object-fit:cover;border-radius:3px}.shape-preview-empty{width:60px;height:40px}.kml-shape-footer{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 18px;border-top:1px solid rgba(255,255,255,.1)}.kml-shape-btn-cancel{background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:8px 16px;color:#ffffffb3;font-size:13px;cursor:pointer;transition:all .2s}.kml-shape-btn-cancel:hover{border-color:#ffffff4d;color:#ffffffe6}.kml-shape-btn-import{background:var(--accent-primary, #3b82f6);border:1px solid var(--accent-primary, #3b82f6);border-radius:6px;padding:8px 20px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s}.kml-shape-btn-import:hover{filter:brightness(1.1)}.kml-shape-btn-import:disabled{opacity:.5;cursor:not-allowed;filter:none}.kml-shape-btn-import.confirm{background:#f59e0b;border-color:#f59e0b}.netcdf-wizard-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10001}.netcdf-wizard{position:relative;width:700px;max-width:90vw;max-height:85vh;background-color:var(--panel-bg);border:1px solid var(--accent-primary);border-radius:12px;box-shadow:0 8px 32px #00000080;display:flex;flex-direction:column;overflow:hidden}.netcdf-wizard-header{padding:16px 20px;border-bottom:1px solid var(--border-primary);background:var(--bg-surface);display:flex;align-items:center;justify-content:space-between}.netcdf-wizard-title{display:flex;align-items:center;gap:12px}.netcdf-wizard-icon{font-size:28px}.netcdf-wizard-title h2{margin:0;color:var(--text-primary);font-size:18px;font-weight:600}.netcdf-wizard-subtitle{font-size:12px;color:var(--text-secondary)}.netcdf-wizard-close{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:all .2s}.netcdf-wizard-close:hover{background-color:var(--bg-hover);color:var(--text-primary)}.netcdf-wizard-steps{display:flex;padding:12px 20px;background-color:var(--bg-surface);border-bottom:1px solid var(--border-primary);gap:4px}.netcdf-wizard-step{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;border-radius:6px;cursor:pointer;transition:all .2s;opacity:.5}.netcdf-wizard-step:hover{background-color:#3b82f61a}.netcdf-wizard-step.active{opacity:1;background-color:#3b82f633}.netcdf-wizard-step.completed{opacity:.8}.netcdf-wizard-step .step-icon{font-size:20px}.netcdf-wizard-step .step-label{font-size:11px;color:var(--text-secondary)}.netcdf-wizard-step.active .step-label{color:var(--accent-primary);font-weight:600}.netcdf-wizard-error-overlay{position:absolute;inset:0;background-color:#0000008c;display:flex;align-items:center;justify-content:center;z-index:10}.netcdf-wizard-error-dialog{width:420px;max-width:90%;background-color:var(--panel-bg);border:1px solid rgba(239,68,68,.5);border-radius:10px;box-shadow:0 10px 40px #0009;overflow:hidden}.netcdf-wizard-error-header{display:flex;align-items:center;gap:10px;padding:14px 18px;background-color:#ef44441f;border-bottom:1px solid rgba(239,68,68,.3)}.netcdf-wizard-error-header h3{margin:0;font-size:15px;font-weight:600;color:var(--text-primary)}.netcdf-wizard-error-icon{font-size:20px;color:#f87171}.netcdf-wizard-error-body{padding:16px 18px;font-size:13px;line-height:1.5;color:var(--text-primary);white-space:pre-wrap;word-break:break-word;max-height:50vh;overflow-y:auto}.netcdf-wizard-error-footer{padding:12px 18px;border-top:1px solid var(--border-primary);display:flex;justify-content:flex-end}.netcdf-wizard-error-ok{padding:6px 20px;font-size:13px;font-weight:600;background-color:var(--accent-primary);color:#fff;border:none;border-radius:6px;cursor:pointer}.netcdf-wizard-error-ok:hover{filter:brightness(1.1)}.netcdf-wizard-error-ok:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}.netcdf-wizard-content{flex:1;overflow-y:auto;padding:20px;position:relative}.import-progress-overlay{position:absolute;inset:0;background-color:#0f172af2;display:flex;align-items:center;justify-content:center;z-index:10;border-radius:8px}.import-progress-content{display:flex;flex-direction:column;align-items:center;gap:16px;padding:32px;max-width:300px;width:100%}.import-progress-spinner{width:48px;height:48px;border:3px solid var(--border-primary);border-top-color:var(--accent-primary);border-radius:50%;animation:spin 1s linear infinite}.import-progress-text{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}.import-progress-status{font-size:14px;color:var(--text-primary);font-weight:500}.import-progress-percent{font-size:24px;font-weight:700;color:var(--accent-primary)}.import-progress-bar{width:100%;height:6px;background-color:var(--bg-surface);border-radius:3px;overflow:hidden}.import-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent-primary) 0%,#60a5fa 100%);border-radius:3px;transition:width .3s ease-out}.netcdf-wizard-footer{padding:16px 20px;border-top:1px solid var(--border-primary);display:flex;align-items:center;justify-content:space-between}.netcdf-wizard-info{font-size:12px;color:var(--text-secondary)}.netcdf-wizard-actions{display:flex;gap:10px}.netcdf-wizard-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.netcdf-wizard-btn.primary{background-color:#3b82f6;color:#fff;font-weight:500}.netcdf-wizard-btn.primary:hover:not(:disabled){background-color:#2563eb}.netcdf-wizard-btn.secondary{background-color:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-primary)}.netcdf-wizard-btn.secondary:hover{background-color:var(--bg-hover)}.netcdf-wizard-btn:disabled{opacity:.5;cursor:not-allowed}.file-select-step{display:flex;flex-direction:column;gap:20px}.drop-zone{border:2px dashed var(--border-primary);border-radius:12px;padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;transition:all .2s;position:relative}.drop-zone:hover{border-color:#3b82f6;background-color:#3b82f60d}.drop-zone.drag-over{border-color:#3b82f6;background-color:#3b82f61a}.drop-zone.loading{pointer-events:none}.drop-zone .drop-icon{font-size:48px}.drop-zone .drop-text{font-size:16px;color:var(--text-primary)}.drop-zone .drop-subtext{font-size:13px;color:var(--text-muted)}.drop-zone .file-input{position:absolute;inset:0;opacity:0;cursor:pointer}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:300px}.progress-bar{width:100%;height:8px;background-color:var(--border-primary);border-radius:4px;overflow:hidden}.progress-fill{height:100%;background-color:#3b82f6;transition:width .3s}.url-section{display:flex;flex-direction:column;gap:12px}.section-divider{display:flex;align-items:center;gap:16px;color:var(--text-muted);font-size:12px}.section-divider:before,.section-divider:after{content:"";flex:1;height:1px;background-color:var(--border-primary)}.url-form{display:flex;gap:10px}.url-form input{flex:1;padding:10px 14px;background-color:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:13px}.url-form input:focus{outline:none;border-color:#3b82f6}.url-form button{padding:10px 20px;background-color:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);cursor:pointer;transition:all .2s}.url-form button:hover:not(:disabled){background-color:var(--bg-hover)}.url-form button:disabled{opacity:.5;cursor:not-allowed}.selected-file{padding:12px 16px;background-color:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:6px;display:flex;align-items:center;gap:10px;color:#86efac;font-size:13px}.metadata-step{display:flex;flex-direction:column;gap:20px}.metadata-section{background-color:var(--bg-surface);border-radius:8px;padding:16px}.metadata-section h3{margin:0 0 12px;font-size:14px;color:var(--accent-primary);font-weight:600}.metadata-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.metadata-item{display:flex;flex-direction:column;gap:4px}.metadata-item.full-width{grid-column:1 / -1}.metadata-item label{font-size:11px;color:var(--text-muted);text-transform:uppercase}.metadata-item span{font-size:13px;color:var(--text-primary)}.dimensions-list{display:flex;flex-wrap:wrap;gap:8px}.dimension-item{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:var(--panel-bg);border-radius:4px;font-size:13px}.dimension-item .dim-name{color:var(--text-primary);font-weight:500}.dimension-item .dim-size{color:var(--text-secondary)}.dimension-item .dim-unlimited{font-size:10px;color:#f59e0b;background-color:#f59e0b1a;padding:2px 6px;border-radius:3px}.variables-summary{display:flex;flex-wrap:wrap;gap:6px}.variable-chip{padding:4px 10px;background-color:var(--panel-bg);border-radius:4px;font-size:12px;color:var(--text-primary)}.variable-chip .var-units{color:var(--text-muted);margin-left:4px}.variable-chip.more{color:var(--text-secondary);font-style:italic}.time-selection-step{display:flex;flex-direction:column;gap:20px}.time-step.no-time{display:flex;align-items:center;gap:12px;padding:24px;background-color:var(--bg-surface);border-radius:8px;color:var(--text-secondary)}.time-step.no-time .info-icon{font-size:24px}.time-info{background-color:var(--bg-surface);border-radius:8px;padding:16px}.time-info h3{margin:0 0 8px;font-size:14px;color:var(--accent-primary)}.time-info p{margin:0;color:var(--text-primary);font-size:14px}.time-info .time-steps{color:var(--text-secondary);font-size:12px;margin-top:4px}.time-inputs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.input-group{display:flex;flex-direction:column;gap:6px}.input-group label{font-size:12px;color:var(--text-secondary)}.input-group input,.input-group select{padding:10px 12px;background-color:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-primary);font-size:13px}.input-group input:focus,.input-group select:focus{outline:none;border-color:#3b82f6}.time-filter-toggle{display:flex;flex-direction:column;gap:4px;padding:12px 16px;background-color:var(--bg-surface);border-radius:8px;border:1px solid var(--border-primary)}.time-filter-toggle .checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:14px;color:var(--text-primary)}.time-filter-toggle .checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:#3b82f6;cursor:pointer}.time-filter-toggle .filter-hint{margin:0;font-size:12px;color:var(--text-muted);padding-left:28px}.time-preview{display:flex;align-items:center;gap:8px;padding:12px 16px;background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:6px;color:#93c5fd;font-size:13px}.spatial-crop-step{display:flex;flex-direction:column;gap:20px}.file-extent{background-color:var(--bg-surface);border-radius:8px;padding:16px}.file-extent h3{margin:0 0 8px;font-size:14px;color:var(--accent-primary)}.file-extent p{margin:0;color:var(--text-primary);font-size:13px}.region-selector{display:flex;flex-direction:column;gap:8px}.region-selector h3{margin:0 0 8px;font-size:14px;color:var(--accent-primary)}.region-group-header{font-size:11px;color:var(--text-muted);text-transform:uppercase;padding:8px 0 4px 8px;margin-top:8px}.region-option{display:flex;align-items:center;gap:10px;padding:10px 12px;background-color:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;transition:all .2s}.region-option:hover{border-color:#3b82f6;background-color:#3b82f60d}.region-option.selected{border-color:#3b82f6;background-color:#3b82f626}.region-option .region-icon{font-size:18px}.region-option .region-name{color:var(--text-primary);font-size:13px}.custom-bounds{background-color:var(--bg-surface);border-radius:8px;padding:16px}.custom-bounds h4{margin:0 0 12px;font-size:13px;color:var(--text-secondary)}.bounds-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.bounds-input{display:flex;flex-direction:column;gap:4px}.bounds-input label{font-size:11px;color:var(--text-muted)}.bounds-input input{padding:8px 10px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);font-size:13px}.variable-select-step{display:flex;flex-direction:column;gap:20px}.variable-section h3{margin:0 0 12px;font-size:14px;color:var(--accent-primary)}.variable-list{display:flex;flex-direction:column;gap:6px}.variable-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background-color:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px;cursor:pointer;transition:all .2s}.variable-item:hover{border-color:#3b82f6}.variable-item.selected{border-color:#3b82f6;background-color:#3b82f626}.var-checkbox{width:20px;height:20px;border:2px solid var(--border-secondary);border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:14px;color:#3b82f6;flex-shrink:0}.variable-item.selected .var-checkbox{border-color:#3b82f6;background-color:#3b82f6;color:#fff}.var-info{flex:1;display:flex;flex-direction:column;gap:2px}.var-name{color:var(--text-primary);font-size:13px;font-weight:500}.var-components{color:var(--text-muted);font-size:11px}.var-units{color:var(--text-secondary);font-size:12px;margin-left:6px}.var-type-badge{font-size:10px;padding:3px 8px;border-radius:4px;text-transform:uppercase;font-weight:600}.var-type-badge.vector{background-color:#8b5cf633;color:#a78bfa}.var-type-badge.scalar{background-color:#22c55e33;color:#86efac}.selection-summary{padding:12px;background-color:var(--bg-surface);border-radius:6px;text-align:center;color:var(--text-secondary);font-size:13px}.visualization-step{display:flex;flex-direction:column;gap:16px}.visualization-step h3{margin:0 0 8px;font-size:14px;color:var(--accent-primary)}.viz-config-item{display:flex;align-items:center;gap:12px;padding:12px 14px;background-color:var(--bg-surface);border-radius:6px}.viz-var-name{flex:1;display:flex;align-items:center;gap:8px;color:var(--text-primary);font-size:13px}.viz-icon{font-size:16px}.viz-config-item select{padding:8px 12px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-primary);font-size:13px;min-width:180px}.viz-hint{padding:16px;text-align:center;color:#f59e0b;font-size:13px;background-color:#f59e0b1a;border-radius:6px}.netcdf-wizard--compact{width:560px}.netcdf-wizard--compact .netcdf-wizard-header{padding:14px 18px}.netcdf-wizard--compact .netcdf-wizard-header h2{font-size:16px;margin:0;color:#f0f4f8}.netcdf-wizard-progress{display:flex;justify-content:center;gap:8px;padding:12px;background-color:#0d1117;border-bottom:1px solid #374151}.progress-dot{width:10px;height:10px;border-radius:50%;background-color:#374151;transition:all .2s}.progress-dot.active{background-color:#3b82f6;box-shadow:0 0 8px #3b82f680}.progress-dot.done{background-color:#22c55e}.file-step{display:flex;flex-direction:column;gap:16px}.file-step .drop-zone{padding:30px 20px}.file-step .drop-zone.has-file{padding:16px 20px;border-style:solid;border-color:#22c55e;background-color:#22c55e0d}.file-loaded{display:flex;align-items:center;gap:12px}.file-loaded .file-icon{font-size:24px}.file-loaded .file-name{flex:1;color:#e5e7eb;font-size:14px;font-weight:500}.file-loaded .file-size{color:#6b7280;font-size:12px}.file-step .url-section{margin-top:0}.file-step .url-section summary{color:#6b7280;font-size:12px;cursor:pointer;padding:8px 0}.file-step .url-section summary:hover{color:#9ca3af}.file-step .url-section[open] summary{margin-bottom:10px}.dataset-info-panel{background:var(--bg-surface);border-radius:10px;border:1px solid var(--border-primary);overflow:hidden}.dataset-info-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background-color:#3b82f61a;border-bottom:1px solid rgba(59,130,246,.2)}.dataset-icon{font-size:20px}.dataset-title{font-size:13px;font-weight:600;color:var(--accent-primary);text-transform:uppercase;letter-spacing:.5px}.dataset-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background-color:var(--border-primary);padding:1px}.info-card{display:flex;gap:12px;padding:14px;background-color:var(--bg-surface)}.info-card-icon{font-size:22px;flex-shrink:0;opacity:.9}.info-card-content{flex:1;display:flex;flex-direction:column;gap:4px}.info-card-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.info-card-value{font-size:12px;color:var(--text-primary);line-height:1.4}.bounds-display{display:flex;flex-direction:column;align-items:center;gap:2px}.bounds-row{display:flex;align-items:center;gap:6px}.bound-item{font-family:SF Mono,Monaco,Consolas,monospace;font-size:11px;color:var(--accent-primary)}.bounds-sep{color:var(--text-muted);font-size:10px}.filter-options{padding:12px 16px;border-top:1px solid var(--border-primary);background-color:var(--bg-hover)}.filter-options-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:10px}.filter-option-buttons{display:flex;gap:10px}.filter-option-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .2s}.filter-option-btn:hover{border-color:var(--border-secondary);background-color:var(--bg-hover)}.filter-option-btn.active{border-color:var(--accent-primary);background-color:var(--bg-active);color:var(--accent-primary)}.filter-btn-icon{font-size:14px}.filter-btn-text{font-weight:500}.filter-btn-check{font-size:12px;color:#22c55e;margin-left:auto}.data-filters-section{display:flex;flex-direction:column;gap:10px;padding:12px;background-color:var(--bg-hover);border-radius:8px;border:1px solid var(--border-primary)}.filter-toggles{display:flex;gap:10px}.filter-toggle-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 14px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:6px;color:var(--text-secondary);font-size:12px;cursor:pointer;transition:all .2s}.filter-toggle-btn:hover{border-color:var(--border-secondary);background-color:var(--bg-hover)}.filter-toggle-btn.active{border-color:var(--accent-primary);background-color:var(--bg-active);color:var(--accent-primary)}.filter-toggle-icon{font-size:14px}.filter-toggle-text{font-weight:500}.filter-toggle-check{font-size:12px;color:#22c55e;margin-left:auto}.variables-step{display:flex;flex-direction:column;gap:14px}.variables-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:10px;border-bottom:1px solid var(--border-primary)}.variables-title{font-size:14px;font-weight:600;color:var(--text-primary)}.variables-count{font-size:11px;color:var(--accent-primary);padding:4px 10px;background-color:var(--bg-active);border-radius:12px}.inline-filters{display:flex;gap:12px}.variables-step>.inline-filters{padding:14px;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-primary)}.filter-panel{flex:1}.filter-panel-header{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:11px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.filter-panel-icon{font-size:12px}.filter-panel .filter-inputs{display:flex;gap:10px}.filter-panel .filter-inputs label{flex:1;display:flex;flex-direction:column;gap:4px}.filter-panel .filter-inputs label span{font-size:10px;color:var(--text-muted)}.filter-panel .filter-inputs input,.filter-panel select{padding:8px 10px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:5px;color:var(--text-primary);font-size:12px;width:100%;transition:border-color .2s}.filter-panel .filter-inputs input:focus,.filter-panel select:focus{outline:none;border-color:#3b82f6}.depth-filter-content{display:flex;flex-direction:column;gap:10px}.depth-mode-selector{display:flex;gap:16px}.depth-mode-option{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary);cursor:pointer}.depth-mode-option input[type=radio]{width:auto;margin:0;accent-color:var(--accent-primary)}.depth-select{padding:8px 10px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:5px;color:var(--text-primary);font-size:12px;width:100%}.depth-select:focus{outline:none;border-color:#3b82f6}.depth-range-inputs{display:flex;gap:10px}.depth-range-inputs label{flex:1;display:flex;flex-direction:column;gap:4px}.depth-range-inputs label span{font-size:10px;color:var(--text-muted)}.depth-range-inputs select{padding:8px 10px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:5px;color:var(--text-primary);font-size:12px;width:100%}.depth-range-inputs select:focus{outline:none;border-color:#3b82f6}.variable-tiles-container{max-height:280px;overflow-y:auto;padding-right:4px}.var-tiles-section{margin-bottom:16px}.var-tiles-section:last-child{margin-bottom:0}.var-tiles-label{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;padding:6px 0 10px}.tiles-label-icon{font-size:12px}.var-tiles-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.var-tile{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:8px;cursor:pointer;transition:all .2s;overflow:hidden}.var-tile:hover{border-color:var(--border-secondary);background:var(--bg-hover);transform:translateY(-1px)}.var-tile.selected{border-color:var(--accent-primary);background:var(--bg-active);box-shadow:0 0 12px var(--accent-primary-glow)}.var-tile-main{display:flex;align-items:center;gap:10px;padding:12px}.var-tile-icon{font-size:24px;flex-shrink:0;width:32px;text-align:center}.var-tile-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.var-tile-name{font-size:12px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.var-tile-meta{font-size:10px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.var-tile-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--border-secondary);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0;transition:all .2s}.var-tile-check.checked{border-color:#22c55e;background-color:#22c55e;color:#fff}.var-tile-viz{padding:8px 12px;background-color:var(--bg-active);border-top:1px solid var(--border-accent)}.var-tile-viz .viz-select{width:100%;padding:6px 10px;background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:5px;color:var(--text-primary);font-size:11px;cursor:pointer;transition:border-color .2s}.var-tile-viz .viz-select:hover{border-color:var(--border-secondary)}.var-tile-viz .viz-select:focus{outline:none;border-color:#3b82f6}.var-group,.var-group-label,.var-row,.selection-count{display:none}.review-step{display:flex;flex-direction:column;gap:16px}.review-header{display:flex;align-items:center;gap:10px;padding-bottom:12px;border-bottom:1px solid var(--border-primary)}.review-icon{font-size:24px}.review-title{font-size:16px;font-weight:600;color:#22c55e}.review-cards{display:flex;flex-direction:column;gap:10px}.review-card{display:flex;gap:12px;padding:12px 14px;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-primary)}.review-card-icon{font-size:20px;flex-shrink:0}.review-card-content{flex:1;display:flex;flex-direction:column;gap:4px}.review-card-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.review-card-value{font-size:13px;color:var(--text-primary)}.review-card-tags{display:flex;flex-wrap:wrap;gap:6px}.review-tag{padding:3px 8px;border-radius:4px;font-size:11px;font-weight:500}.review-tag.vector{background-color:#8b5cf633;color:#a78bfa}.review-tag.scalar{background-color:#22c55e33;color:#86efac}.review-viz-list{display:flex;flex-direction:column;gap:4px}.review-viz-item{display:flex;justify-content:space-between;align-items:center;font-size:12px}.viz-item-name{color:var(--text-primary)}.viz-item-method{color:var(--accent-primary);font-size:11px;padding:2px 8px;background-color:var(--bg-active);border-radius:4px}.review-footer-hint{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;background-color:var(--bg-active);border-radius:6px;font-size:12px;color:var(--text-secondary)}.hint-icon{font-size:14px}.netcdf-wizard-content::-webkit-scrollbar,.variable-tiles-container::-webkit-scrollbar{width:8px}.netcdf-wizard-content::-webkit-scrollbar-track,.variable-tiles-container::-webkit-scrollbar-track{background:var(--panel-bg);border-radius:4px}.netcdf-wizard-content::-webkit-scrollbar-thumb,.variable-tiles-container::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:4px;border:2px solid var(--panel-bg)}.netcdf-wizard-content::-webkit-scrollbar-thumb:hover,.variable-tiles-container::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#60a5fa,#3b82f6)}.netcdf-wizard-content,.variable-tiles-container{scrollbar-width:thin;scrollbar-color:var(--accent-primary) var(--panel-bg)}.netcdf-wizard-btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;gap:6px}.netcdf-wizard-btn.primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 8px #3b82f64d}.netcdf-wizard-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa,#3b82f6);box-shadow:0 4px 12px #3b82f666;transform:translateY(-1px)}.netcdf-wizard-btn.secondary{background-color:var(--bg-surface);color:var(--text-primary);border:1px solid var(--border-secondary)}.netcdf-wizard-btn.secondary:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--text-muted)}.netcdf-wizard-btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}input[type=datetime-local],input[type=text],input[type=url],select{background-color:var(--panel-bg);border:1px solid var(--border-primary);border-radius:5px;color:var(--text-primary);font-size:13px;transition:border-color .2s,box-shadow .2s}input[type=datetime-local]:focus,input[type=text]:focus,input[type=url]:focus,select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.netcdf-wizard-progress{display:flex;justify-content:center;align-items:center;gap:10px;padding:14px;background:var(--bg-surface);border-bottom:1px solid var(--border-primary)}.progress-dot{width:12px;height:12px;border-radius:50%;background-color:var(--border-primary);transition:all .3s ease;position:relative}.progress-dot:before{content:"";position:absolute;inset:-3px;border-radius:50%;border:2px solid transparent;transition:border-color .3s}.progress-dot.active{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 0 12px #3b82f699}.progress-dot.active:before{border-color:#3b82f64d}.progress-dot.done{background:linear-gradient(135deg,#22c55e,#16a34a)}.progress-dot:not(:last-child):after{content:"";position:absolute;top:50%;left:100%;width:16px;height:2px;background-color:var(--border-primary);transform:translateY(-50%);margin-left:3px}.progress-dot.done:not(:last-child):after{background:linear-gradient(90deg,#22c55e,#374151)}.netcdf-wizard-header{padding:16px 20px;border-bottom:1px solid #374151;background:linear-gradient(135deg,#1e3a5f,#1a1f2e);display:flex;align-items:center;justify-content:space-between}.netcdf-wizard-header h2{margin:0;color:var(--text-primary);font-size:17px;font-weight:600;display:flex;align-items:center;gap:10px}.netcdf-wizard-header h2:before{content:"📁";font-size:20px}.netcdf-wizard-footer{padding:14px 20px;border-top:1px solid var(--border-primary);background:var(--bg-surface);display:flex;align-items:center;gap:10px}.ocean-currents-wizard{width:600px}.wizard-header-title{display:flex;align-items:center;gap:10px}.wizard-header-icon{font-size:24px}.wizard-header-title h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.ocean-wizard-step{display:flex;flex-direction:column;gap:20px}.step-header{display:flex;align-items:center;gap:10px;margin-bottom:4px}.step-icon{font-size:24px}.step-title{font-size:16px;font-weight:600;color:var(--text-primary)}.bounds-source-options{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.source-option{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;border:1px solid var(--border-primary);border-radius:8px;background:var(--bg-surface);cursor:pointer;transition:all .2s}.source-option:hover:not(.disabled){border-color:var(--accent-primary);background:#3b82f60d}.source-option.active{border-color:var(--accent-primary);background:#3b82f61a}.source-option.disabled{opacity:.5;cursor:not-allowed}.source-icon{font-size:24px}.source-label{font-size:13px;font-weight:500;color:var(--text-primary)}.source-desc{font-size:11px;color:var(--text-secondary)}.preset-selection{margin-top:8px}.preset-select{width:100%;padding:10px 12px;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-size:14px}.preset-select:focus{outline:none;border-color:var(--accent-primary)}.custom-bounds-inputs{margin-top:8px}.bounds-grid{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto auto auto;gap:12px;grid-template-areas:". north ." "west . east" ". south ."}.bound-input{display:flex;flex-direction:column;gap:4px}.bound-input.north{grid-area:north}.bound-input.south{grid-area:south}.bound-input.east{grid-area:east}.bound-input.west{grid-area:west}.bound-input label{font-size:11px;color:var(--text-secondary);text-transform:uppercase}.bound-input input{padding:8px;border:1px solid var(--border-primary);border-radius:4px;background:var(--bg-surface);color:var(--text-primary);font-size:13px;text-align:center}.bound-input input:focus{outline:none;border-color:var(--accent-primary)}.bounds-preview{padding:12px 16px;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-primary)}.preview-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px}.preview-value{font-size:13px;color:var(--text-primary);font-family:monospace}.time-range-toggle{display:flex;gap:20px}.toggle-option{display:flex;align-items:center;gap:8px;cursor:pointer}.toggle-option input[type=radio]{accent-color:var(--accent-primary)}.toggle-option span{font-size:14px;color:var(--text-primary)}.time-presets{display:flex;gap:8px}.time-preset-btn{padding:8px 16px;border:1px solid var(--border-primary);border-radius:20px;background:var(--bg-surface);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .2s}.time-preset-btn:hover{border-color:var(--accent-primary);background:#3b82f61a}.time-inputs{display:flex;gap:16px}.time-input-group{flex:1;display:flex;flex-direction:column;gap:6px}.time-input-group label{font-size:12px;color:var(--text-secondary)}.time-input-group input{padding:10px 12px;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-size:14px}.time-input-group input:focus{outline:none;border-color:var(--accent-primary)}.resolution-section{margin-top:8px}.resolution-label{font-size:12px;color:var(--text-secondary);margin-bottom:8px}.resolution-options{display:flex;gap:8px}.resolution-btn{flex:1;padding:10px 12px;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-size:13px;cursor:pointer;transition:all .2s}.resolution-btn:hover{border-color:var(--accent-primary)}.resolution-btn.active{border-color:var(--accent-primary);background:#3b82f626;color:var(--accent-primary)}.estimate-info{display:flex;gap:24px;padding:12px 16px;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-primary)}.estimate-item{display:flex;gap:8px;align-items:center}.estimate-label{font-size:12px;color:var(--text-secondary)}.estimate-value{font-size:13px;font-weight:500;color:var(--text-primary)}.review-step .review-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.review-card{display:flex;gap:12px;padding:14px;background:var(--bg-surface);border-radius:8px;border:1px solid var(--border-primary)}.review-card-icon{font-size:24px;flex-shrink:0}.review-card-content{flex:1;min-width:0}.review-card-label{font-size:11px;color:var(--text-secondary);text-transform:uppercase;margin-bottom:2px}.review-card-value{font-size:14px;font-weight:500;color:var(--text-primary)}.review-card-detail{font-size:12px;color:var(--text-secondary);margin-top:2px}.loading-indicator{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:40px}.loading-spinner{width:48px;height:48px;color:var(--accent-primary);animation:spin 1s linear infinite}.loading-spinner svg{width:100%;height:100%}.loading-indicator span{font-size:14px;color:var(--text-secondary)}.review-footer-hint{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#3b82f61a;border-radius:8px;margin-top:8px}.hint-icon{font-size:16px}.review-footer-hint span:last-child{font-size:13px;color:var(--text-secondary)}.footer-spacer{flex:1}.ocean-data-wizard{width:700px;max-width:95vw}.quick-access-section{margin-bottom:20px}.quick-access-section h3{font-size:13px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px}.quick-access-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(max-width:480px){.quick-access-grid{grid-template-columns:1fr}}.quick-access-card{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--border-primary);border-radius:10px;background:var(--bg-surface);cursor:pointer;transition:all .2s;position:relative}.quick-access-card:hover{border-color:var(--accent-primary);background:#3b82f60f}.quick-access-card.selected{border-color:var(--accent-primary);background:#3b82f61f;box-shadow:0 0 0 1px var(--accent-primary)}.quick-access-card.requires-backend{opacity:.7}.quick-access-card.requires-backend:hover{opacity:1}.quick-access-card.out-of-range{opacity:.4;cursor:not-allowed}.quick-access-card.out-of-range:hover{border-color:var(--border-primary);background:var(--bg-surface);opacity:.5}.card-tag.out-of-range-tag{background:#ef444426;color:#ef4444;font-weight:500}.card-icon{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#3b82f61a;color:var(--accent-primary)}.card-content{flex:1;min-width:0}.card-name{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:2px}.card-description{font-size:12px;color:var(--text-secondary);line-height:1.4}.card-meta{display:flex;gap:8px;margin-top:6px}.card-tag{font-size:10px;padding:2px 6px;border-radius:4px;background:#94a3b826;color:var(--text-secondary)}.card-tag.recommended{background:#3b82f626;color:var(--accent-primary);font-weight:600}.card-tag.cached{background:#22c55e26;color:#22c55e;font-weight:600}.card-tag.download-btn{background:#3b82f626;color:var(--accent-primary);cursor:pointer;border:1px solid rgba(59,130,246,.3);font-weight:600}.card-tag.download-btn:hover:not(:disabled){background:#3b82f640}.card-tag.download-btn:disabled{opacity:.6;cursor:default}.erddap-browser-section{margin-top:8px}.erddap-browser-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:1px solid var(--border-primary);border-radius:8px;background:var(--bg-surface);color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:all .2s}.erddap-browser-toggle:hover{border-color:var(--accent-primary);background:#3b82f60d}.erddap-browser-toggle svg{transition:transform .2s}.erddap-browser-toggle.expanded svg{transform:rotate(180deg)}.erddap-browser-content{margin-top:12px;padding:16px;border:1px solid var(--border-primary);border-radius:8px;background:#0f172a4d}.server-selector{display:flex;gap:8px;margin-bottom:12px}.server-selector select{flex:1;padding:8px 12px;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-size:13px}.server-selector select:focus{outline:none;border-color:var(--accent-primary)}.custom-server-input{margin-bottom:12px}.custom-server-input input{width:100%;padding:8px 12px;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-size:13px}.custom-server-input input:focus{outline:none;border-color:var(--accent-primary)}.custom-server-input input::placeholder{color:var(--text-muted)}.erddap-search{display:flex;gap:8px;margin-bottom:12px}.erddap-search input{flex:1;padding:8px 12px;border:1px solid var(--border-primary);border-radius:6px;background:var(--bg-surface);color:var(--text-primary);font-size:13px}.erddap-search input:focus{outline:none;border-color:var(--accent-primary)}.erddap-search input::placeholder{color:var(--text-muted)}.erddap-search button{padding:8px 16px;border:1px solid var(--accent-primary);border-radius:6px;background:#3b82f61a;color:var(--accent-primary);font-size:13px;font-weight:500;cursor:pointer;transition:background .2s}.erddap-search button:hover{background:#3b82f633}.erddap-search button:disabled{opacity:.5;cursor:not-allowed}.search-results{max-height:300px;overflow-y:auto}.search-status{text-align:center;padding:16px;color:var(--text-secondary);font-size:13px}.dataset-card{padding:10px 12px;border:1px solid transparent;border-left:3px solid transparent;border-radius:6px;margin-bottom:6px;cursor:pointer;transition:all .15s}.dataset-card:hover{background:#3b82f60f;border-left-color:var(--accent-primary)}.dataset-card.selected{background:#3b82f61a;border-left-color:var(--accent-primary);border-color:#3b82f633}.dataset-card-title{font-size:13px;font-weight:500;color:var(--text-primary);margin-bottom:4px}.dataset-card-id{font-size:11px;color:var(--text-muted);font-family:monospace}.dataset-card-summary{font-size:12px;color:var(--text-secondary);margin-top:4px;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.dataset-card-type{display:inline-block;font-size:10px;padding:1px 5px;border-radius:3px;background:#94a3b826;color:var(--text-secondary);margin-top:4px}.dataset-detail{margin-top:12px;padding:14px;border:1px solid var(--border-primary);border-radius:8px;background:var(--bg-surface)}.dataset-detail h4{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 4px}.dataset-detail-summary{font-size:12px;color:var(--text-secondary);margin-bottom:12px;line-height:1.5}.dataset-detail-meta{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:12px}.detail-meta-item{font-size:12px}.detail-meta-item .meta-label{color:var(--text-secondary)}.detail-meta-item .meta-value{color:var(--text-primary);font-weight:500}.variable-checklist{display:flex;flex-direction:column;gap:6px;margin-top:8px}.variable-checklist-header{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin-bottom:4px}.variable-checkbox-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .15s}.variable-checkbox-item:hover{background:#3b82f60f}.variable-checkbox-item input[type=checkbox]{accent-color:var(--accent-primary);width:16px;height:16px;flex-shrink:0}.variable-name{font-size:13px;font-weight:500;color:var(--text-primary);font-family:monospace}.variable-long-name{font-size:12px;color:var(--text-secondary);margin-left:4px}.variable-units{font-size:11px;color:var(--text-muted);margin-left:auto}.viz-method-section{margin-top:8px}.viz-method-section h4{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;margin:0 0 8px}.viz-method-options{display:flex;gap:8px;flex-wrap:wrap}.viz-method-btn{padding:8px 14px;border:1px solid var(--border-primary);border-radius:20px;background:var(--bg-surface);color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .2s}.viz-method-btn:hover{border-color:var(--accent-primary)}.viz-method-btn.active{border-color:var(--accent-primary);background:#3b82f626;color:var(--accent-primary)}.wizard-error{display:flex;align-items:center;gap:8px;padding:10px 14px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;font-size:13px}.wizard-error button{margin-left:auto;padding:4px 8px;border:1px solid rgba(239,68,68,.3);border-radius:4px;background:transparent;color:#ef4444;font-size:12px;cursor:pointer}.ocean-data-panel{padding:16px;display:flex;flex-direction:column;gap:16px;height:100%;overflow-y:auto}.ocean-data-panel .quick-access-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.ocean-data-panel .quick-access-header h3{font-size:12px;margin:0;display:flex;align-items:center;gap:6px}.source-mode-badge{font-size:9px;font-weight:500;padding:1px 5px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, rgba(255, 255, 255, .4));background:#ffffff0f}.source-mode-badge.live{color:#10b981;background:#10b9811a}.ocean-data-panel .refresh-control{display:flex;align-items:center;gap:6px}.ocean-data-panel .refresh-status{font-size:10px;font-weight:500;padding:1px 6px;border-radius:8px;white-space:nowrap;animation:refreshStatusFadeIn .2s ease}.ocean-data-panel .refresh-status.stale{color:#f0a030;background:#f0a0301f}.ocean-data-panel .refresh-status.updated{color:#4caf50;background:#4caf501f}.ocean-data-panel .refresh-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:1px solid rgba(255,255,255,.1);border-radius:4px;background:#ffffff0a;color:#ffffff80;cursor:pointer;transition:all .15s ease}.ocean-data-panel .refresh-btn:hover{background:#ffffff1a;color:#fffc;border-color:#fff3}.ocean-data-panel .refresh-btn.highlight{color:#f0a030;border-color:#f0a0304d;background:#f0a03014}.ocean-data-panel .refresh-btn.highlight:hover{background:#f0a03026;border-color:#f0a03080}.ocean-data-panel .refresh-btn.spinning svg{animation:refreshSpin .6s linear infinite}.ocean-data-panel .refresh-btn:disabled{cursor:default;opacity:.7}@keyframes refreshSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes refreshStatusFadeIn{0%{opacity:0;transform:translate(4px)}to{opacity:1;transform:translate(0)}}.ocean-data-panel .quick-access-section h3{font-size:12px;margin-bottom:8px}.ocean-data-panel .quick-access-grid{gap:8px}.ocean-data-panel .quick-access-card{padding:10px 12px;min-height:88px;box-sizing:border-box}.ocean-data-panel .card-description{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ocean-data-panel .card-meta{flex-wrap:wrap}.ocean-data-panel .card-icon{width:28px;height:28px}.ocean-data-panel .card-name{font-size:13px}.ocean-data-panel .card-description{font-size:11px}.ocean-data-panel .erddap-browser-content{padding:12px}.ocean-data-panel .search-results{max-height:250px}.data-panel{display:flex;flex-direction:column;height:100%;background:var(--panel-bg);color:var(--text-primary);font-size:.875rem}.data-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border-primary);flex-shrink:0}.data-panel-header h2{font-size:.9rem;font-weight:600;margin:0;display:flex;align-items:center;gap:.5rem}.data-panel-header-actions{display:flex;align-items:center;gap:.25rem}.data-panel-header-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.data-panel-header-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.data-panel-header-btn.active{background:var(--button-active);color:var(--text-primary)}.data-panel-search{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-bottom:1px solid var(--border-primary);flex-shrink:0}.data-panel-search-icon{color:var(--text-muted);flex-shrink:0}.data-panel-search-input{flex:1;background:transparent;border:none;outline:none;color:var(--text-primary);font-size:.85rem;font-family:inherit;min-width:0}.data-panel-search-input::placeholder{color:var(--text-muted)}.data-panel-search-clear{width:20px;height:20px;border:none;border-radius:50%;background:var(--bg-surface);color:var(--text-secondary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,color .15s;padding:0;line-height:1}.data-panel-search-clear:hover{background:var(--bg-hover);color:var(--text-primary)}.data-panel-tree{flex:1;overflow-y:auto;overflow-x:hidden}.data-panel-group{border-bottom:1px solid var(--border-primary)}.data-panel-group:last-child{border-bottom:none}.data-panel-group-header{display:flex;align-items:center;gap:.5rem;padding:.625rem 1rem;background:var(--bg-surface);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s}.data-panel-group-header:hover{background:var(--bg-hover)}.data-panel-group-chevron{color:var(--text-muted);transition:transform .2s ease;flex-shrink:0}.data-panel-group.expanded .data-panel-group-chevron{transform:rotate(90deg)}.data-panel-group-icon{color:var(--text-secondary);flex-shrink:0}.data-panel-group-name{flex:1;font-weight:500;font-size:.8rem;color:var(--text-primary)}.data-panel-group-count{font-size:.7rem;font-weight:500;color:var(--text-muted);background:var(--bg-surface);padding:.125rem .375rem;border-radius:8px;min-width:18px;text-align:center}.data-panel-group-add{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;opacity:0;transition:all .15s}.data-panel-group-header:hover .data-panel-group-add{opacity:1}.data-panel-group-add:hover{background:var(--bg-hover);color:var(--text-primary)}.data-panel-group-items{display:none}.data-panel-group.expanded .data-panel-group-items{display:block}.data-panel-item{display:flex;flex-direction:column;border-bottom:1px solid var(--border-secondary)}.data-panel-item:last-child{border-bottom:none}.data-panel-item-row{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem .5rem 1.5rem;transition:background .15s}.data-panel-item-row:hover{background:var(--bg-hover)}.data-panel-item.selected .data-panel-item-row{background:var(--button-active)}.data-panel-item-visibility{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--text-secondary);cursor:pointer;flex-shrink:0;transition:all .15s}.data-panel-item-visibility:hover{background:var(--bg-hover);color:var(--text-primary)}.data-panel-item-visibility.hidden{color:var(--text-muted)}.data-panel-item-info{flex:1;min-width:0;cursor:pointer}.data-panel-item-name{font-size:.8rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.data-panel-item-meta{font-size:.7rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.data-panel-highlight{background:var(--button-active);color:var(--text-primary);border-radius:2px;padding:0 2px}.data-panel-item-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s}.data-panel-item-row:hover .data-panel-item-actions,.data-panel-item.selected .data-panel-item-actions{opacity:1}.data-panel-item-action{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.data-panel-item-action:hover{background:var(--bg-hover);color:var(--text-primary)}.data-panel-item-action.danger:hover{background:#ef444426;color:#ef4444}.data-panel-analytics-wrapper{position:relative}.data-panel-analytics-dropdown{position:absolute;top:100%;right:0;z-index:100;min-width:140px;background:var(--panel-bg, #1e1e2e);border:1px solid var(--border-primary, #333);border-radius:6px;padding:4px 0;box-shadow:0 4px 12px #0006}.data-panel-analytics-option{display:block;width:100%;padding:6px 12px;border:none;background:transparent;color:var(--text-primary, #e0e0e0);font-size:12px;text-align:left;cursor:pointer;transition:background .15s}.data-panel-analytics-option:hover:not(:disabled){background:var(--bg-hover, rgba(255, 255, 255, .08))}.data-panel-analytics-option:disabled{color:var(--text-muted, #666);cursor:default}.data-panel-item-reorder{display:flex;flex-direction:column;gap:0px}.data-panel-item-reorder-btn{display:flex;align-items:center;justify-content:center;width:18px;height:14px;border:none;border-radius:2px;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .15s}.data-panel-item-reorder-btn:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.data-panel-item-reorder-btn:disabled{opacity:.3;cursor:not-allowed}.data-panel-item-details{padding:.5rem 1rem .75rem 2.5rem;background:var(--bg-surface);border-top:1px solid var(--border-secondary)}.data-panel-opacity{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.data-panel-opacity-label{font-size:.7rem;color:var(--text-muted);width:50px}.data-panel-opacity-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--border-secondary);border-radius:2px;outline:none}.data-panel-opacity-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent-primary);cursor:pointer;transition:transform .1s}.data-panel-opacity-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.data-panel-opacity-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:none}.data-panel-opacity-value{font-size:.7rem;color:var(--text-secondary);width:32px;text-align:right}.data-panel-metrics{display:grid;grid-template-columns:1fr 1fr;gap:.375rem .75rem}.data-panel-metric{display:flex;align-items:center;gap:.375rem;font-size:.7rem}.data-panel-metric-icon{color:var(--text-muted);flex-shrink:0}.data-panel-metric-label{color:var(--text-muted)}.data-panel-metric-value{color:var(--text-secondary);font-weight:500}.data-panel-time-range{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-secondary)}.data-panel-time-range-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.data-panel-time-range-value{font-size:.7rem;color:var(--text-secondary)}.data-panel-always-visible-toggle{display:flex;align-items:center;gap:.35rem;margin-top:.35rem;font-size:.65rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.data-panel-always-visible-toggle input[type=checkbox]{width:12px;height:12px;margin:0;cursor:pointer;accent-color:var(--accent-primary, #4a9eff)}.data-panel-always-visible-toggle:hover{color:var(--text-secondary)}.data-panel-footer{display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;border-top:1px solid var(--border-primary);background:var(--bg-surface);flex-shrink:0}.data-panel-footer-stat{font-size:.7rem;color:var(--text-muted)}.data-panel-footer-stat strong{color:var(--text-secondary);font-weight:500}.data-panel-footer-actions{display:flex;gap:.25rem}.data-panel-footer-btn{display:flex;align-items:center;gap:.375rem;padding:.375rem .625rem;border:none;border-radius:4px;background:var(--button-active);color:var(--text-primary);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s}.data-panel-footer-btn:hover{background:var(--bg-hover)}.data-panel-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;text-align:center}.data-panel-empty-icon{color:var(--text-muted);margin-bottom:.75rem}.data-panel-empty-text{font-size:.8rem;color:var(--text-muted)}.data-panel-empty-action{margin-top:.75rem;padding:.5rem 1rem;border:1px solid var(--border-secondary);border-radius:4px;background:transparent;color:var(--text-secondary);font-size:.8rem;cursor:pointer;transition:all .15s}.data-panel-empty-action:hover{background:var(--bg-hover);border-color:var(--text-muted)}.data-panel-test-badge{font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:.125rem .375rem;border-radius:4px;background:#eab30833;color:#eab308;margin-left:.375rem}.data-panel-source-badge{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:.1rem .3rem;border-radius:3px;margin-left:.375rem}.data-panel-source-badge.api{background:#22c55e33;color:#22c55e}.data-panel-source-badge.sim{background:#a855f733;color:#a855f7}.data-panel-loading-spinner{display:inline-flex;align-items:center;justify-content:center;margin-left:.375rem;color:var(--accent-primary);animation:data-panel-spin 1s linear infinite}.data-panel-loading-spinner svg{width:12px;height:12px}@keyframes data-panel-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.data-panel-add-menu{position:absolute;top:100%;left:0;right:0;background:var(--panel-bg);border:1px solid var(--border-primary);border-radius:6px;box-shadow:0 4px 12px #0000004d;z-index:100;max-height:300px;overflow-y:auto}.data-panel-add-menu-title{padding:.5rem .75rem;font-size:.7rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-secondary)}.data-panel-add-menu-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;color:var(--text-primary);font-size:.8rem;text-align:left;cursor:pointer;transition:background .15s}.data-panel-add-menu-item:hover{background:var(--bg-hover)}.data-panel-add-menu-item:disabled{opacity:.5;cursor:not-allowed}.data-panel-add-menu-back{display:flex;align-items:center;gap:.375rem;width:100%;padding:.5rem .75rem;border:none;border-bottom:1px solid var(--border-secondary);background:transparent;color:var(--text-secondary);font-size:.75rem;text-align:left;cursor:pointer}.data-panel-add-menu-back:hover{background:var(--bg-hover)}.data-panel-netcdf-controls{display:flex;flex-direction:column;gap:.5rem}.data-panel-contour-mode-toggle{display:flex;gap:0;border-radius:4px;overflow:hidden;border:1px solid var(--border-secondary);flex-shrink:0}.data-panel-mode-btn{background:var(--surface-secondary, rgba(255, 255, 255, .05));color:var(--text-muted);border:none;padding:0 .5rem;font-size:.65rem;font-family:inherit;height:18px;cursor:pointer;line-height:1;transition:background .1s,color .1s}.data-panel-mode-btn:not(:last-child){border-right:1px solid var(--border-secondary)}.data-panel-mode-btn:hover:not(.active){background:var(--surface-tertiary, rgba(255, 255, 255, .08));color:var(--text-secondary)}.data-panel-mode-btn.active{background:var(--accent-primary);color:#fff;cursor:default}.data-panel-control-row-tall{align-items:flex-start}.data-panel-levels-input{flex:1;background:var(--surface-secondary, rgba(255, 255, 255, .05));border:1px solid var(--border-secondary);border-radius:3px;color:var(--text-primary);font-size:.7rem;font-family:inherit;padding:.3rem .4rem;resize:none;line-height:1.4;outline:none}.data-panel-levels-input:focus{border-color:var(--accent-primary)}.data-panel-levels-input::placeholder{color:var(--text-muted);opacity:.6}.data-panel-control-row{display:flex;align-items:center;gap:.5rem}.data-panel-control-label{font-size:.7rem;color:var(--text-muted);width:60px;flex-shrink:0}.data-panel-slider{flex:1;height:4px;-webkit-appearance:none;appearance:none;background:var(--border-secondary);border-radius:2px;outline:none}.data-panel-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--accent-primary);cursor:pointer;transition:transform .1s}.data-panel-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.data-panel-slider::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--accent-primary);cursor:pointer;border:none}.data-panel-control-value{font-size:.7rem;color:var(--text-secondary);width:36px;text-align:right;flex-shrink:0}.data-panel-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.data-panel-checkbox-label input[type=checkbox]{width:14px;height:14px;margin:0;cursor:pointer;accent-color:var(--accent-primary)}.data-panel-checkbox-label span{color:var(--text-secondary)}.data-panel-select{flex:1;height:24px;padding:0 .5rem;border:1px solid var(--border-secondary);border-radius:4px;background:var(--bg-surface);color:var(--text-primary);font-size:.75rem;font-family:inherit;cursor:pointer;outline:none;transition:border-color .15s}.data-panel-select:hover{border-color:var(--text-muted)}.data-panel-select:focus{border-color:var(--accent-primary)}.data-panel-depth-info{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-secondary)}.data-panel-depth-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.data-panel-depth-value{font-size:.8rem;color:var(--text-primary);font-weight:500}.data-panel-depth-hint{font-size:.65rem;color:var(--text-muted);font-weight:400}.data-panel-depth-range{font-size:.7rem;color:var(--text-secondary);margin-top:.125rem}.data-panel-dim-stepper-btn{background:var(--surface-secondary, rgba(255, 255, 255, .05));color:var(--text-primary);border:1px solid var(--border-secondary);border-radius:3px;padding:0 .35rem;font-size:.55rem;line-height:1;height:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}.data-panel-dim-stepper-btn:hover:not(:disabled){background:var(--surface-tertiary, rgba(255, 255, 255, .1))}.data-panel-dim-stepper-btn:disabled{opacity:.3;cursor:default}.data-panel-dim-modes{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:.25rem;margin-bottom:.125rem}.data-panel-dim-mode-group{display:inline-flex;align-items:center;gap:.2rem}.data-panel-dim-mode-label{display:inline-flex;align-items:center;gap:.15rem;font-size:.65rem;color:var(--text-secondary);text-transform:capitalize;cursor:pointer}.data-panel-dim-mode-label input[type=radio]{accent-color:var(--accent-color, #3b82f6);margin:0;width:10px;height:10px}.data-panel-time-step{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-secondary)}.data-panel-time-step-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.data-panel-time-step-value{font-size:.8rem;color:var(--text-primary);font-weight:500}.data-panel-time-step-range{font-size:.7rem;color:var(--text-secondary);margin-top:.125rem}.data-panel-select-group{display:flex;align-items:center;gap:.375rem;flex:1}.data-panel-select-group .data-panel-select{flex:1}.data-panel-apply-btn{display:flex;align-items:center;justify-content:center;width:26px;height:24px;padding:0;border:1px solid var(--status-success, #22c55e);border-radius:4px;background:var(--status-success, #22c55e);color:#fff;cursor:pointer;transition:all .15s ease;flex-shrink:0}.data-panel-apply-btn:hover{background:var(--status-success-hover, #16a34a);border-color:var(--status-success-hover, #16a34a)}.data-panel-apply-btn:active{transform:scale(.95)}.data-panel-apply-btn svg{width:14px;height:14px}.data-panel-select.has-changes{border-color:var(--status-success, #22c55e);box-shadow:0 0 0 1px var(--status-success, #22c55e) inset}[data-theme=lunar-light] .data-panel-apply-btn{background:var(--status-success, #16a34a);border-color:var(--status-success, #16a34a)}[data-theme=lunar-light] .data-panel-apply-btn:hover{background:var(--status-success-hover, #15803d);border-color:var(--status-success-hover, #15803d)}[data-theme=lunar-light] .data-panel-select.has-changes{border-color:var(--status-success, #16a34a);box-shadow:0 0 0 1px var(--status-success, #16a34a) inset}.data-panel-slice-planes{display:flex;flex-direction:column;gap:.375rem;margin-top:.25rem}.data-panel-slice-planes>.data-panel-control-label{margin-bottom:.125rem}.data-panel-slice-row{display:flex;align-items:center;gap:.5rem;padding-left:.25rem}.data-panel-slice-row .data-panel-checkbox-label{width:110px;flex-shrink:0}.data-panel-slice-row .data-panel-slider{flex:1;min-width:60px}.data-panel-checkbox-inline{display:flex;align-items:center;gap:.25rem;font-size:.7rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;flex-shrink:0;margin-left:.25rem}.data-panel-checkbox-inline input[type=checkbox]{width:12px;height:12px;margin:0;cursor:pointer;accent-color:var(--accent-primary)}.data-panel-checkbox-inline span{font-size:.65rem;color:var(--text-muted)}.data-panel-range-auto-btn{background:var(--surface-secondary, rgba(255, 255, 255, .05));color:var(--text-primary);border:1px solid var(--border-secondary);border-radius:3px;padding:0 .4rem;font-size:.65rem;font-family:inherit;line-height:1;height:16px;cursor:pointer;flex-shrink:0}.data-panel-range-auto-btn:hover:not(:disabled){background:var(--surface-tertiary, rgba(255, 255, 255, .1))}.data-panel-range-auto-btn:disabled{opacity:.3;cursor:default}.data-panel-range-actions{display:flex;align-items:center;gap:.5rem;margin-top:.25rem}.data-panel-control-group{display:flex;flex-direction:column;gap:.375rem}.data-panel-control-row-header{margin-bottom:.125rem}.data-panel-dual-range{display:flex;flex-direction:column;gap:.25rem;padding-left:4px}.data-panel-dual-range-values{display:flex;align-items:center;gap:.25rem;font-size:.75rem}.data-panel-dual-range-value{font-weight:500;color:var(--text-primary);font-variant-numeric:tabular-nums}.data-panel-dual-range-unit{color:var(--text-muted);font-size:.65rem}.data-panel-dual-range-separator{color:var(--text-muted);margin:0 .125rem}.data-panel-dual-range-track{position:relative;height:20px;width:100%}.data-panel-dual-range-track-bg{position:absolute;top:50%;left:0;right:0;height:4px;transform:translateY(-50%);background:var(--border-secondary);border-radius:2px}.data-panel-dual-range-track-fill{position:absolute;top:50%;height:4px;transform:translateY(-50%);background:var(--accent-primary);border-radius:2px;pointer-events:none}.data-panel-dual-range-input{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-appearance:none;appearance:none;background:transparent;pointer-events:none;margin:0;padding:0}.data-panel-dual-range-input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent-primary);border:2px solid var(--panel-bg);cursor:pointer;pointer-events:auto;transition:transform .1s,box-shadow .1s;box-shadow:0 1px 3px #0000004d}.data-panel-dual-range-input::-webkit-slider-thumb:hover{transform:scale(1.15);box-shadow:0 2px 6px #0006}.data-panel-dual-range-input::-webkit-slider-thumb:active{transform:scale(1.1)}.data-panel-dual-range-input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent-primary);border:2px solid var(--panel-bg);cursor:pointer;pointer-events:auto;box-shadow:0 1px 3px #0000004d}.data-panel-dual-range-input::-moz-range-thumb:hover{transform:scale(1.15)}.data-panel-dual-range-input-min{z-index:2}.data-panel-dual-range-input-max{z-index:1}.data-panel-dual-range-bounds{display:flex;justify-content:space-between;font-size:.6rem;color:var(--text-muted);font-variant-numeric:tabular-nums;padding:0 2px}.data-panel-range-input{width:48px;height:20px;padding:0 4px;border:1px solid var(--border-secondary);border-radius:3px;background:var(--bg-surface);color:var(--text-primary);font-size:.7rem;font-family:inherit;font-variant-numeric:tabular-nums;text-align:right;outline:none;transition:border-color .15s}.data-panel-range-input:hover{border-color:var(--text-muted)}.data-panel-range-input:focus{border-color:var(--accent-primary)}.data-panel-range-unit{font-size:.6rem;color:var(--text-muted);flex-shrink:0}.data-panel-heatmap-controls{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-secondary)}.data-panel-segmented-toggle{display:flex;flex:1;border-radius:4px;overflow:hidden;border:1px solid var(--border-secondary)}.data-panel-segmented-btn{flex:1;padding:2px 6px;font-size:.65rem;font-family:inherit;border:none;background:transparent;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.data-panel-segmented-btn:not(:last-child){border-right:1px solid var(--border-secondary)}.data-panel-segmented-btn.active{background:var(--accent-primary);color:var(--text-primary)}.data-panel-segmented-btn:hover:not(.active){background:var(--bg-hover)}.data-panel-viz-list{display:flex;flex-direction:column;gap:1px;margin-bottom:.5rem;border:1px solid var(--border-secondary);border-radius:4px;overflow:visible}.data-panel-viz-list-item{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--bg-surface);cursor:pointer;transition:background .1s;min-height:28px}.data-panel-viz-list-item:hover{background:var(--bg-hover)}.data-panel-viz-list-item.selected{background:var(--button-active)}.data-panel-viz-list-item-checkbox{display:flex;align-items:center;flex-shrink:0;cursor:pointer}.data-panel-viz-list-item-checkbox input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--accent-primary)}.data-panel-viz-list-item-icon{flex-shrink:0;font-size:.75rem;opacity:.7;width:14px;text-align:center}.data-panel-viz-list-item-name{flex:1;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.data-panel-viz-list-item-remove{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;background:transparent;color:var(--text-muted);cursor:pointer;border-radius:3px;opacity:0;transition:opacity .1s,background .1s,color .1s}.data-panel-viz-list-item:hover .data-panel-viz-list-item-remove,.data-panel-viz-list-item.selected .data-panel-viz-list-item-remove{opacity:1}.data-panel-viz-list-item-remove:hover{background:#ff505033;color:#ff5050}.data-panel-viz-list-item[draggable=true]{cursor:grab}.data-panel-viz-list-item[draggable=true]:active{cursor:grabbing}.data-panel-viz-list-item.dragging{opacity:.4}.data-panel-viz-list-item.drag-over{border-top:2px solid var(--accent-primary);padding-top:2px}.data-panel-viz-empty{padding:8px 12px;font-size:.75rem;color:var(--text-muted);text-align:center;font-style:italic}.data-panel-viz-add-container{position:relative}.data-panel-viz-add-btn{display:flex;align-items:center;gap:4px;width:100%;padding:4px 8px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.75rem;transition:background .1s,color .1s}.data-panel-viz-add-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.data-panel-viz-add-menu{position:absolute;left:0;right:0;top:100%;z-index:100;background:var(--panel-bg);border:1px solid var(--border-primary);border-radius:6px;box-shadow:0 4px 12px #0000004d;padding:4px 0;max-height:280px;overflow-y:auto}.data-panel-viz-add-menu-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 12px;border:none;background:transparent;color:var(--text-primary);cursor:pointer;font-size:.8rem;text-align:left;transition:background .1s}.data-panel-viz-add-menu-item:hover{background:var(--bg-hover)}.data-panel-viz-add-menu-item.active{color:var(--accent-primary)}.data-panel-viz-add-menu-icon{width:16px;text-align:center;flex-shrink:0}.data-panel-viz-add-menu-check{margin-left:auto;font-size:.7rem;color:var(--accent-primary)}.kml-bg-removal{margin-top:.4rem}.kml-bg-toggle{display:flex;align-items:center;gap:.4rem;background:none;border:none;color:var(--text-secondary);font-size:.72rem;cursor:pointer;padding:.2rem 0}.kml-bg-toggle:hover{color:var(--text-primary)}.kml-bg-active-dot{display:inline-block;width:6px;height:6px;background:#22c55e;border-radius:50%;margin-left:.25rem}.kml-bg-controls{margin-top:.35rem;padding:.5rem;background:#ffffff08;border-radius:4px;border:1px solid var(--border-primary)}.kml-bg-row{display:flex;align-items:center;gap:.5rem}.kml-bg-auto-btn,.kml-bg-clear-btn{font-size:.7rem;padding:.2rem .5rem;border:1px solid var(--border-primary);border-radius:3px;background:#ffffff0d;color:var(--text-secondary);cursor:pointer;white-space:nowrap}.kml-bg-auto-btn:hover,.kml-bg-clear-btn:hover{background:#ffffff1a;color:var(--text-primary)}.kml-bg-color-picker{width:28px;height:22px;border:1px solid var(--border-primary);border-radius:3px;background:none;cursor:pointer;padding:0}.kml-bg-tolerance{display:flex;align-items:center;gap:.5rem;margin-top:.4rem}.kml-bg-tolerance label{font-size:.7rem;color:var(--text-secondary);min-width:55px}.kml-bg-tolerance input[type=range]{flex:1;height:4px;background:var(--border-primary);border-radius:2px;appearance:none;cursor:pointer}.kml-bg-tolerance input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:#22c55e;border-radius:50%;cursor:pointer}.kml-extract-placemarks{margin-top:.4rem}.kml-placemark-feedback{font-size:.7rem;color:#22c55e;margin-top:.3rem}.data-point-symbology{margin-top:6px;padding:0 6px}.data-point-symbology-controls{display:flex;flex-direction:column;gap:6px;padding:8px;margin-top:4px;background:#ffffff08;border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:4px}.data-point-symbology-row{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-secondary, #aaa)}.data-point-symbology-row label{width:48px;flex-shrink:0}.data-point-symbology-row input[type=range]{flex:1;height:4px;accent-color:var(--accent-primary, #3b82f6);cursor:pointer}.data-point-symbology-value{width:36px;text-align:right;font-family:monospace;font-size:10px}.icon-dock{display:flex;flex-direction:column;align-items:center;width:var(--dock-width, 80px);min-width:var(--dock-width, 80px);max-width:var(--dock-width, 80px);background:var(--panel-bg);border-right:1px solid var(--border-primary);padding:8px 0;gap:2px;overflow-y:auto;overflow-x:hidden;z-index:20}.icon-dock::-webkit-scrollbar{width:0}.dock-spacer{flex:1}.dock-section-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.dock-icon-btn{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:100%;padding:8px 4px;background:transparent;border:none;border-radius:0;color:var(--text-muted);cursor:pointer;transition:all .1s ease;flex-shrink:0}.dock-icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.dock-icon-btn.active{background:transparent;color:var(--accent-primary)}.dock-icon-btn.active:before{content:"";position:absolute;left:0;top:25%;bottom:25%;width:3px;background:var(--accent-primary);border-radius:0 2px 2px 0}.dock-icon-btn.hidden-widget{opacity:.35}.dock-icon-btn.hidden-widget:hover{opacity:.7}.dock-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.dock-icon-label{font-size:10px;font-weight:500;line-height:1.2;color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.dock-icon-btn.flash{animation:dock-flash .6s ease}@keyframes dock-flash{0%{background:#3b82f666}to{background:transparent}}.dock-notification{position:absolute;top:-2px;right:-4px;min-width:14px;height:14px;padding:0 3px;border-radius:7px;font-size:9px;font-weight:700;line-height:14px;text-align:center;pointer-events:none}.dock-notification.low{background:var(--status-info);color:#fff}.dock-notification.medium{background:var(--status-warning);color:#1a1a1a}.dock-notification.high{background:var(--status-error);color:#fff;animation:notification-pulse 2s infinite}@keyframes notification-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}.dock-notification:empty{min-width:8px;width:8px;height:8px;padding:0}.dock-icons-sortable{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%}.dock-icon-ghost{opacity:.3}.dock-icon-chosen{opacity:.8}.dock-icon-drag{background:var(--dashboard-surface-elevated, rgba(40, 40, 50, .95));border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:9999}[data-theme=lunar-light] .icon-dock{background:var(--panel-bg);border-right-color:var(--border-primary)}[data-theme=lunar-light] .dock-icon-btn.active{background:transparent;color:var(--accent-primary)}[data-theme=lunar-light] .dock-icon-btn.active:before{background:var(--accent-primary)}[data-theme=lunar-light] .dock-notification.low{background:var(--status-info)}[data-theme=lunar-light] .dock-notification.medium{background:var(--status-warning)}[data-theme=lunar-light] .dock-notification.high{background:var(--status-error)}.sidebar-dock{position:relative;display:flex;flex-direction:column;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-radius:var(--module-radius);transition:width var(--transition-layout, .3s cubic-bezier(.4, 0, .2, 1));overflow:hidden;z-index:var(--z-sidebar, 20)}.sidebar-dock.expanded{width:var(--sidebar-width, 400px);position:relative}.sidebar-dock.resizing{transition:none}.sidebar-dock.collapsed{width:var(--sidebar-collapsed-width, 48px)}.sidebar-ctrl-header{display:flex;align-items:center;gap:6px;height:var(--ctrl-header-height-standard, 36px);min-height:var(--ctrl-header-height-standard, 36px);padding:0 8px 0 10px;background:transparent;border-bottom:1px solid rgba(255,255,255,.04);font-size:.75rem;font-weight:500;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0}.sidebar-ctrl-header-left{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.sidebar-ctrl-header-left svg{flex-shrink:0;color:var(--accent-primary)}.sidebar-ctrl-title{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-header-controls{display:flex;align-items:center;gap:2px;flex-shrink:0;opacity:0;transition:opacity .15s ease}.sidebar-header-controls.always-visible,.sidebar-dock:hover .sidebar-header-controls{opacity:1}.sidebar-ctrl-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .1s ease}.sidebar-ctrl-btn:hover{background:var(--bg-hover, rgba(255, 255, 255, .08));color:var(--text-primary, rgba(255, 255, 255, .95))}.sidebar-panel-content{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.sidebar-panel-content::-webkit-scrollbar{width:6px}.sidebar-panel-content::-webkit-scrollbar-track{background:transparent}.sidebar-panel-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, rgba(255, 255, 255, .15));border-radius:3px}.sidebar-panel-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, rgba(255, 255, 255, .25))}.sidebar-panel-draggable{display:flex;flex-direction:column;flex:1;min-height:0}.sidebar-panel-inner{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.sidebar-panel-draggable.sortable-ghost{opacity:.5;background:var(--drag-placeholder-bg, rgba(96, 165, 250, .1));border:2px dashed var(--drag-placeholder-border, rgba(96, 165, 250, .3));border-radius:4px}.sidebar-panel-draggable.sortable-chosen{box-shadow:var(--shadow-md, 0 4px 6px rgba(0, 0, 0, .4))}.sidebar-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;flex:1;color:var(--text-muted, rgba(255, 255, 255, .35));font-size:12px;padding:24px;border:2px dashed var(--dashboard-border, rgba(255, 255, 255, .08));border-radius:8px;margin:8px}.sidebar-resize-handle{position:absolute;top:0;right:0;width:8px;height:100%;cursor:col-resize;z-index:100;background:transparent;transition:background .15s ease}.sidebar-resize-handle:after{content:"";position:absolute;top:50%;right:3px;transform:translateY(-50%);width:3px;height:40px;background:var(--dashboard-border, rgba(255, 255, 255, .1));border-radius:2px;opacity:0;transition:opacity .15s ease,background .15s ease}.sidebar-resize-handle:hover:after,.sidebar-dock.resizing .sidebar-resize-handle:after{opacity:1;background:var(--accent-primary, rgba(59, 130, 246, .6))}.sidebar-resize-handle:hover,.sidebar-dock.resizing .sidebar-resize-handle{background:var(--accent-primary-glow, rgba(59, 130, 246, .1))}[data-theme=lunar-light] .sidebar-dock{background:var(--dashboard-bg, #d8d8d8)}[data-theme=lunar-light] .sidebar-ctrl-header{border-bottom-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .sidebar-panel-content{background:var(--panel-bg, #e8e8e8)}[data-theme=lunar-light] .sidebar-resize-handle:after{background:var(--dashboard-border, rgba(0, 0, 0, .15))}[data-theme=lunar-light] .sidebar-resize-handle:hover:after,[data-theme=lunar-light] .sidebar-dock.resizing .sidebar-resize-handle:after{background:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .sidebar-ctrl-btn{color:var(--text-muted, rgba(0, 0, 0, .5))}[data-theme=lunar-light] .sidebar-ctrl-btn:hover{background:var(--bg-hover, rgba(0, 0, 0, .08));color:var(--text-primary, #1a1a1a)}[data-theme=lunar-light] .sidebar-panel-content::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, #a0a0a0)}[data-theme=lunar-light] .sidebar-panel-content::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, #888888)}.right-column{position:relative;display:flex;flex-direction:column;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-left:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));overflow:hidden;z-index:var(--z-sidebar, 20);transition:width .2s ease}.right-column.right-column-empty{width:6px!important;min-width:6px;background:transparent;border-left:1px solid var(--dashboard-border, rgba(255, 255, 255, .04));transition:width .15s ease,background .15s ease,border-color .15s ease}.right-column.right-column-empty:hover{width:40px!important;background:var(--drag-placeholder-bg, rgba(96, 165, 250, .05));border-left-color:var(--accent-primary, rgba(59, 130, 246, .3))}.right-column.right-column-populated{min-width:300px}.right-column.resizing{transition:none}.right-column-resize-handle{position:absolute;top:0;left:-4px;width:8px;height:100%;cursor:col-resize;z-index:100;background:transparent;transition:background .15s ease}.right-column-resize-handle:after{content:"";position:absolute;top:50%;left:3px;transform:translateY(-50%);width:3px;height:40px;background:var(--dashboard-border, rgba(255, 255, 255, .1));border-radius:2px;opacity:0;transition:opacity .15s ease,background .15s ease}.right-column-resize-handle:hover:after,.right-column.resizing .right-column-resize-handle:after{opacity:1;background:var(--accent-primary, rgba(59, 130, 246, .6))}.right-column-resize-handle:hover,.right-column.resizing .right-column-resize-handle{background:var(--accent-primary-glow, rgba(59, 130, 246, .1))}.right-column-header{display:flex;align-items:center;justify-content:space-between;height:32px;min-height:32px;padding:0 8px 0 12px;background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));flex-shrink:0}.right-column-header-left{display:flex;align-items:center;gap:6px;color:var(--text-muted, rgba(255, 255, 255, .5))}.right-column-title{font-size:11px;font-weight:600;color:var(--text-muted, rgba(255, 255, 255, .5));text-transform:uppercase;letter-spacing:.05em}.right-column-close-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .1s ease}.right-column-close-btn:hover{background:var(--semantic-error-bg, rgba(239, 68, 68, .15));color:var(--semantic-error, #ef4444)}.right-column-panels{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;min-height:60px}.right-column-panel-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.right-column-panels::-webkit-scrollbar{width:6px}.right-column-panels::-webkit-scrollbar-track{background:transparent}.right-column-panels::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, rgba(255, 255, 255, .15));border-radius:3px}.right-column-panels::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, rgba(255, 255, 255, .25))}.right-column-drop-zone{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;flex:1;min-height:120px;color:var(--text-muted, rgba(255, 255, 255, .35));font-size:12px;border:2px dashed var(--dashboard-border, rgba(255, 255, 255, .08));border-radius:8px;margin:4px}.right-column-drop-hint{display:flex;align-items:center;justify-content:center;flex:1;opacity:0;transition:opacity .15s ease}.right-column-empty:hover .right-column-drop-hint{opacity:1}.right-column-empty .right-column-panels{min-height:100%;padding:0}.right-column-panels.sortable-drag-over{background:var(--drag-placeholder-bg, rgba(96, 165, 250, .05))}[data-theme=lunar-light] .right-column{background:var(--dashboard-bg, #d8d8d8);border-left-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .right-column-header{background:var(--dashboard-bg, #d8d8d8);border-bottom-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .right-column-resize-handle:after{background:var(--dashboard-border, rgba(0, 0, 0, .15))}[data-theme=lunar-light] .right-column-resize-handle:hover:after,[data-theme=lunar-light] .right-column.resizing .right-column-resize-handle:after{background:var(--accent-primary, #2563eb)}[data-theme=lunar-light] .right-column-panels::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, #a0a0a0)}.theme-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border-primary, rgba(255, 255, 255, .1));border-radius:8px;color:var(--text-secondary, rgba(255, 255, 255, .7));cursor:pointer;transition:all .2s ease;position:relative;flex-shrink:0}.theme-toggle:hover{background:var(--bg-hover, rgba(255, 255, 255, .1));color:var(--text-primary, rgba(255, 255, 255, .95));border-color:var(--border-secondary, rgba(255, 255, 255, .15))}.theme-toggle:focus{outline:none;box-shadow:0 0 0 2px #3b82f64d}.theme-toggle:active{background:var(--bg-active, rgba(255, 255, 255, .15))}.theme-toggle-icon{position:absolute;transition:opacity .3s ease,transform .3s ease}.theme-toggle-icon--moon{opacity:1;transform:rotate(0) scale(1)}.theme-toggle-icon--sun{opacity:0;transform:rotate(-90deg) scale(.8)}.theme-toggle--light .theme-toggle-icon--sun{opacity:1;transform:rotate(0) scale(1)}.theme-toggle--light .theme-toggle-icon--moon{opacity:0;transform:rotate(90deg) scale(.8)}.mobile-topbar{display:flex;align-items:center;justify-content:space-between;height:var(--mobile-topbar-height, 48px);padding:0 8px;padding-top:var(--mobile-safe-top, 0px);background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));position:relative;z-index:var(--z-topbar, 30);flex-shrink:0}.mobile-topbar-btn{display:flex;align-items:center;justify-content:center;width:var(--mobile-touch-target, 44px);height:var(--mobile-touch-target, 44px);background:transparent;border:none;border-radius:8px;color:var(--text-secondary, rgba(255, 255, 255, .7));cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-topbar-btn:active{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95))}.mobile-topbar-brand{font-size:16px;font-weight:700;letter-spacing:2px;color:var(--accent-primary, #60a5fa);text-shadow:0 0 12px var(--accent-primary-glow, rgba(96, 165, 250, .3))}.mobile-topbar-right{display:flex;align-items:center;gap:2px}.mobile-menu-overlay{position:fixed;inset:0;z-index:var(--mobile-menu-z, 600);background:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.mobile-menu{position:absolute;top:0;left:0;width:280px;height:100%;background:var(--dashboard-surface, rgba(30, 30, 38, .95));border-right:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));overflow-y:auto;-webkit-overflow-scrolling:touch;animation:mobile-menu-slide-in .25s ease-out;padding-top:var(--mobile-safe-top, 0px)}@keyframes mobile-menu-slide-in{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-menu-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.mobile-menu-title{font-size:16px;font-weight:700;letter-spacing:2px;color:var(--accent-primary, #60a5fa)}.mobile-menu-close{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:transparent;border:none;border-radius:8px;color:var(--text-secondary, rgba(255, 255, 255, .7));cursor:pointer}.mobile-menu-close:active{background:var(--transport-bg-hover, rgba(255, 255, 255, .12))}.mobile-menu-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;background:transparent;border:none;color:var(--text-primary, rgba(255, 255, 255, .95));font-size:14px;font-family:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}.mobile-menu-item:active{background:var(--transport-bg-hover, rgba(255, 255, 255, .12))}.mobile-menu-item.active{color:var(--accent-primary, #60a5fa)}.mobile-menu-item svg{flex-shrink:0;opacity:.7}.mobile-menu-divider{height:1px;background:var(--dashboard-border, rgba(255, 255, 255, .08));margin:4px 16px}.mobile-menu-section-label{font-size:10px;font-weight:600;color:var(--text-muted, rgba(255, 255, 255, .5));text-transform:uppercase;letter-spacing:.05em;padding:12px 16px 4px}.mobile-menu-theme-dot{width:18px;height:18px;border-radius:50%;border:2px solid var(--dashboard-border, rgba(255, 255, 255, .15));flex-shrink:0}.mobile-carousel-wrapper{flex:1;position:relative;overflow:hidden;display:flex;flex-direction:column}.mobile-carousel-scroll{flex:1;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mobile-carousel-scroll::-webkit-scrollbar{display:none}.mobile-carousel-screen{flex:0 0 100%;width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always;position:relative;overflow:hidden;display:flex;flex-direction:column}.mobile-carousel-dots{position:absolute;bottom:calc(var(--mobile-timeline-strip-height, 56px) + var(--mobile-safe-bottom, 0px) + 8px);left:50%;transform:translate(-50%);display:flex;gap:12px;z-index:25;pointer-events:auto;background:#00000073;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:20px;padding:10px 16px}.mobile-carousel-dot{width:44px;height:44px;border-radius:50%;border:none;background:transparent;cursor:pointer;padding:0;margin:-16px;position:relative;display:flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}.mobile-carousel-dot:after{content:"";width:10px;height:10px;border-radius:50%;background:#fff6;transition:background .2s ease,transform .2s ease}.mobile-carousel-dot.active:after{background:var(--accent-primary, #60a5fa);transform:scale(1.25)}.mobile-carousel-dot:active:after{transform:scale(1.5)}.mobile-timeline-strip{position:absolute;bottom:0;left:0;right:0;height:var(--mobile-timeline-strip-height, 56px);background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));display:flex;flex-direction:column;z-index:20;transition:height .2s ease;padding-bottom:var(--mobile-safe-bottom, 0px)}.mobile-timeline-strip.expanded{height:var(--mobile-timeline-expanded-height, 140px)}.mobile-timeline-main{display:flex;align-items:center;gap:8px;padding:0 12px;height:var(--mobile-timeline-strip-height, 56px);flex-shrink:0}.mobile-timeline-play{display:flex;align-items:center;justify-content:center;width:var(--mobile-touch-target, 44px);height:var(--mobile-touch-target, 44px);background:transparent;border:none;border-radius:50%;color:var(--text-primary, rgba(255, 255, 255, .95));cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.mobile-timeline-play:active{background:var(--transport-bg-hover, rgba(255, 255, 255, .12))}.mobile-timeline-scrub{flex:1;height:32px;position:relative;display:flex;align-items:center;cursor:pointer}.mobile-timeline-track{position:absolute;left:0;right:0;height:4px;background:var(--transport-bg, rgba(255, 255, 255, .06));border-radius:2px}.mobile-timeline-playhead{position:absolute;width:3px;height:20px;background:var(--accent-primary, #60a5fa);border-radius:2px;transform:translate(-50%);box-shadow:0 0 6px var(--accent-primary-glow, rgba(96, 165, 250, .3));pointer-events:none}.mobile-timeline-time{font-size:12px;font-family:SF Mono,Monaco,Consolas,monospace;color:var(--text-secondary, rgba(255, 255, 255, .7));white-space:nowrap;flex-shrink:0;min-width:64px;text-align:right;cursor:pointer;padding:8px 4px;-webkit-tap-highlight-color:transparent}.mobile-timeline-time:active{color:var(--accent-primary, #60a5fa)}.mobile-timeline-expanded{display:flex;align-items:center;gap:8px;padding:0 12px;height:calc(var(--mobile-timeline-expanded-height, 140px) - var(--mobile-timeline-strip-height, 56px))}.mobile-timeline-speed{display:flex;align-items:center;justify-content:center;min-width:48px;height:32px;padding:0 10px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:6px;color:var(--accent-primary, #60a5fa);font-size:12px;font-weight:600;font-family:SF Mono,Monaco,Consolas,monospace;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.mobile-timeline-speed:active{background:var(--transport-bg-active, rgba(255, 255, 255, .18))}.mobile-timeline-range{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5));font-family:SF Mono,Monaco,Consolas,monospace;overflow:hidden}.mobile-timeline-now{display:flex;align-items:center;justify-content:center;height:32px;padding:0 12px;background:var(--semantic-success-bg, rgba(16, 185, 129, .15));border:1px solid var(--semantic-success, #10b981);border-radius:6px;color:var(--semantic-success, #10b981);font-size:11px;font-weight:700;letter-spacing:.5px;cursor:pointer;flex-shrink:0;-webkit-tap-highlight-color:transparent}.mobile-timeline-now:active{background:#10b9814d}.mobile-panel-screen{display:flex;flex-direction:column;height:100%;background:var(--dashboard-bg, rgba(15, 15, 20, .98))}.mobile-panel-header{display:flex;align-items:center;justify-content:space-between;height:40px;padding:0 16px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));flex-shrink:0}.mobile-panel-header-left{display:flex;align-items:center;gap:8px}.mobile-panel-header-left svg{color:var(--accent-primary, #60a5fa);flex-shrink:0}.mobile-panel-header-title{font-size:15px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95));letter-spacing:.02em}.mobile-panel-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain}.mobile-tab-bar{display:flex;align-items:stretch;min-height:var(--mobile-tab-bar-height, 56px);padding-bottom:calc(var(--mobile-safe-bottom, 0px) + 20px);background:var(--dashboard-bg, rgba(15, 15, 20, .98));border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));flex-shrink:0}.mobile-tab-btn{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;border:none;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;position:relative;min-width:0;padding:4px 2px;-webkit-tap-highlight-color:transparent;transition:color .15s ease}.mobile-tab-btn.active{color:var(--accent-primary, #60a5fa)}.mobile-tab-btn:active{background:var(--transport-bg-hover, rgba(255, 255, 255, .06))}.mobile-tab-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:28px;height:28px}.mobile-tab-badge{position:absolute;top:-2px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--semantic-alert, #ef4444);color:#fff;font-size:9px;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1}.mobile-tab-label{font-size:10px;font-weight:500;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.mobile-tab-indicator{position:absolute;top:0;left:25%;right:25%;height:2px;background:var(--accent-primary, #60a5fa);border-radius:0 0 2px 2px}.designer-toolbar{display:flex;align-items:center;justify-content:space-between;height:48px;padding:0 16px;background:linear-gradient(to bottom,#3c3c46f2,#282832f2);border-bottom:1px solid rgba(255,255,255,.1);gap:16px;flex-shrink:0;z-index:var(--z-topbar, 30)}.designer-toolbar-left,.designer-toolbar-center,.designer-toolbar-right{display:flex;align-items:center;gap:12px}.designer-toolbar-left{flex:0 0 auto}.designer-toolbar-center{flex:1;justify-content:center}.designer-toolbar-right{flex:0 0 auto}.designer-product-info{display:flex;align-items:center;gap:8px}.designer-badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;background:#f59e0b33;color:#fbbf24;border:1px solid rgba(245,158,11,.4)}.designer-badge:first-child:not(:only-child){background:#10b98133;color:#34d399;border-color:#10b98166}.designer-product-name{font-size:14px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.designer-product-version{font-size:11px;color:var(--text-muted, rgba(255, 255, 255, .5))}.designer-btn{display:flex;align-items:center;gap:6px;height:32px;padding:0 12px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:6px;color:var(--text-secondary, rgba(255, 255, 255, .7));font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease;position:relative}.designer-btn:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95));border-color:var(--transport-border-hover, rgba(255, 255, 255, .2))}.designer-btn:active{background:var(--transport-bg-active, rgba(255, 255, 255, .18))}.designer-btn-primary{background:#3b82f64d;border-color:#3b82f680;color:#93c5fd}.designer-btn-primary:hover{background:#3b82f666;border-color:#3b82f699;color:#bfdbfe}.designer-btn-secondary{background:transparent;border-color:#ffffff1a;color:var(--text-muted, rgba(255, 255, 255, .5))}.designer-btn-secondary:hover{background:#ffffff0d;color:var(--text-secondary, rgba(255, 255, 255, .7))}.designer-btn-warning{background:#f59e0b33;border-color:#f59e0b66;color:#fbbf24}.designer-btn-warning:hover{background:#f59e0b4d;border-color:#f59e0b80}.designer-btn-group{display:flex;align-items:center;gap:4px}.designer-dropdown{position:relative}.dropdown-caret{margin-left:2px}.designer-dropdown-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:160px;padding:4px;background:var(--dashboard-surface, rgba(30, 30, 38, .98));border:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));border-radius:8px;box-shadow:var(--shadow-lg, 0 10px 25px rgba(0, 0, 0, .5));z-index:100}.designer-dropdown-menu button{display:block;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary, rgba(255, 255, 255, .7));font-size:12px;text-align:left;cursor:pointer;transition:all .1s ease}.designer-dropdown-menu button:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95))}.status-dot{width:8px;height:8px;border-radius:50%;margin-left:4px}.status-dot.success{background:#10b981;box-shadow:0 0 8px #10b98180}.status-dot.error{background:#ef4444;box-shadow:0 0 8px #ef444480}.branding-editor-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal, 200);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.branding-editor-modal{width:100%;max-width:560px;max-height:90vh;background:var(--dashboard-surface, rgba(30, 30, 38, .98));border:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));border-radius:12px;box-shadow:var(--shadow-lg, 0 10px 25px rgba(0, 0, 0, .5));display:flex;flex-direction:column;overflow:hidden}.branding-editor-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.branding-editor-header h2{margin:0;font-size:16px;font-weight:600;color:var(--text-primary, rgba(255, 255, 255, .95))}.branding-editor-close{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:6px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .15s ease}.branding-editor-close:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95))}.branding-editor-content{flex:1;padding:20px;overflow-y:auto}.branding-preview{margin-bottom:24px;border-radius:8px;overflow:hidden;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.branding-preview-header{display:flex;align-items:center;gap:12px;padding:12px 16px}.branding-preview-logo{height:32px;object-fit:contain}.branding-preview-title{flex:1;font-size:16px;font-weight:600}.branding-preview-accent{width:8px;height:8px;border-radius:50%}.branding-form{display:flex;flex-direction:column;gap:16px}.branding-field{display:flex;flex-direction:column;gap:6px}.branding-field label{font-size:12px;font-weight:500;color:var(--text-secondary, rgba(255, 255, 255, .7))}.branding-field input[type=text],.branding-field input[type=number]{height:36px;padding:0 12px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:6px;color:var(--text-primary, rgba(255, 255, 255, .95));font-size:13px}.branding-field input[type=text]:focus,.branding-field input[type=number]:focus{outline:none;border-color:var(--accent-primary, #60a5fa);background:#ffffff14}.branding-upload{display:flex;align-items:center;gap:12px}.branding-upload-btn{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:2px dashed var(--transport-border, rgba(255, 255, 255, .15));border-radius:8px;color:var(--text-secondary, rgba(255, 255, 255, .7));font-size:13px;cursor:pointer;transition:all .15s ease}.branding-upload-btn:hover{border-color:var(--accent-primary, #60a5fa);color:var(--accent-primary, #60a5fa);background:#60a5fa1a}.branding-upload-btn.small{padding:8px 12px;font-size:12px}.branding-upload-preview{display:flex;align-items:center;gap:12px}.branding-upload-preview img{height:48px;object-fit:contain;border-radius:4px}.branding-upload-preview.favicon img{height:32px;width:32px}.branding-upload-preview button{padding:4px 8px;background:var(--semantic-error-bg, rgba(239, 68, 68, .15));border:1px solid rgba(239,68,68,.3);border-radius:4px;color:var(--semantic-error, #ef4444);font-size:11px;cursor:pointer;transition:all .15s ease}.branding-upload-preview button:hover{background:#ef444440;border-color:#ef444466}.branding-colors{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.color-field{display:flex;flex-direction:column;gap:6px}.color-input-wrapper{display:flex;gap:8px}.color-input-wrapper input[type=color]{width:36px;height:36px;padding:2px;border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:6px;cursor:pointer}.color-input-wrapper input[type=text]{flex:1;min-width:0}.branding-theme-options{display:flex;gap:8px}.theme-option{flex:1;padding:8px 12px;background:var(--transport-bg, rgba(255, 255, 255, .06));border:1px solid var(--transport-border, rgba(255, 255, 255, .1));border-radius:6px;color:var(--text-secondary, rgba(255, 255, 255, .7));font-size:12px;cursor:pointer;transition:all .15s ease}.theme-option:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95))}.theme-option.active{background:#3b82f633;border-color:#3b82f680;color:#93c5fd}.branding-editor-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--dashboard-border, rgba(255, 255, 255, .08))}.branding-btn-cancel,.branding-btn-save{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.branding-btn-cancel{background:transparent;border:1px solid var(--transport-border, rgba(255, 255, 255, .1));color:var(--text-secondary, rgba(255, 255, 255, .7))}.branding-btn-cancel:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95))}.branding-btn-save{background:#3b82f64d;border:1px solid rgba(59,130,246,.5);color:#93c5fd}.branding-btn-save:hover{background:#3b82f666;border-color:#3b82f699;color:#bfdbfe}.login-modal-overlay{position:fixed;inset:0;background:linear-gradient(135deg,#050a14fa,#0a0f1efa);display:flex;align-items:center;justify-content:center;z-index:99999;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.login-modal-overlay:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(59,130,246,.1) 0%,transparent 40%),radial-gradient(circle at 80% 20%,rgba(245,158,11,.08) 0%,transparent 40%),repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(100,200,255,.01) 2px,rgba(100,200,255,.01) 4px);pointer-events:none}.login-modal{position:relative;width:100%;max-width:400px;background:linear-gradient(180deg,#141923f2,#0f141efa);border:1px solid rgba(100,200,255,.2);border-radius:12px;padding:40px;box-shadow:0 25px 50px #00000080,0 0 100px #3b82f61a,inset 0 1px #ffffff0d}.login-modal:before{content:"";position:absolute;top:-1px;left:20%;right:20%;height:2px;background:linear-gradient(90deg,transparent,#60a5fa,transparent);border-radius:2px}.login-header{text-align:center;margin-bottom:32px}.login-logo{width:96px;height:96px;margin-bottom:16px;object-fit:contain;border-radius:50%}.login-title{font-size:24px;font-weight:600;color:#fff;margin:0 0 8px;letter-spacing:.5px}.login-subtitle{font-size:14px;color:#ffffff80;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-field{display:flex;flex-direction:column;gap:8px}.login-field label{font-size:12px;font-weight:500;color:#ffffffb3;text-transform:uppercase;letter-spacing:1px}.login-field input{width:100%;padding:12px 16px;background:#0000004d;border:1px solid rgba(100,200,255,.15);border-radius:8px;font-size:15px;color:#fff;transition:all .2s;box-sizing:border-box}.login-field input::placeholder{color:#ffffff4d}.login-field input:focus{outline:none;border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa26;background:#0006}.login-field input:disabled{opacity:.5;cursor:not-allowed}.login-error{display:flex;align-items:center;gap:8px;padding:12px 16px;background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#f87171;font-size:14px}.login-error svg{flex-shrink:0}.login-submit{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:8px;font-size:15px;font-weight:600;color:#fff;cursor:pointer;transition:all .2s;margin-top:8px}.login-submit:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa,#3b82f6);box-shadow:0 4px 20px #3b82f666;transform:translateY(-1px)}.login-submit:active:not(:disabled){transform:translateY(0)}.login-submit:disabled{opacity:.5;cursor:not-allowed}.login-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.login-footer{margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08)}.login-mode-info{display:flex;justify-content:center;gap:24px}.mode-hint{display:flex;flex-direction:column;align-items:center;gap:4px}.mode-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:1px;padding:4px 10px;border-radius:4px}.mode-badge.deployed{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.mode-desc{font-size:11px;color:#fff6;font-family:monospace}.login-clear-buttons{display:flex;gap:8px;justify-content:center;margin-top:20px}.login-clear-session{display:block;padding:6px 14px;background:transparent;border:1px solid rgba(255,255,255,.1);border-radius:6px;font-size:11px;color:#ffffff59;cursor:pointer;transition:all .2s}.login-clear-session:hover{color:#fff9;border-color:#fff3}.login-clear-session.confirm{color:#f59e0b;border-color:#f59e0b66;background:#f59e0b14}.login-clear-session.done{color:#22c55e;border-color:#22c55e66;cursor:default}.depth-profile-plot{display:flex;flex-direction:column;align-items:center;padding:4px}.depth-profile-plot--empty{height:80px;justify-content:center;color:var(--text-muted, #666);font-size:10px;font-style:italic}.depth-profile-plot__title{font-size:10px;font-weight:500;color:var(--text-secondary, #bbb);margin-bottom:2px;text-align:center;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.depth-profile-plot__svg{display:block}.depth-profile-plot__tick-label{font-size:8px;fill:var(--text-muted, #888);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.depth-profile-plot__axis-label{font-size:8px;fill:var(--text-secondary, #999);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.colorbar-legend-panel{position:absolute;background:var(--panel-bg, rgba(30, 30, 30, .92));border:1px solid var(--border-primary, rgba(255, 255, 255, .2));border-radius:4px;color:var(--text-primary, #e0e0e0);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:11px;pointer-events:auto;box-shadow:0 2px 8px #0006;z-index:100}.colorbar-legend-panel--bottom-right{bottom:40px;right:16px}.colorbar-legend-panel--bottom-left{bottom:40px;left:16px}.colorbar-legend-panel--top-right{top:16px;right:16px}.colorbar-legend-panel--top-left{top:16px;left:16px}.colorbar-legend-panel__header{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border-primary, rgba(255, 255, 255, .1));background:var(--bg-hover, rgba(0, 0, 0, .2));border-radius:4px 4px 0 0}.colorbar-legend-panel__title{font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary, #999)}.colorbar-legend-panel__header-actions{display:flex;align-items:center;gap:6px}.colorbar-legend-panel__close{background:none;border:none;color:var(--text-secondary, #999);font-size:16px;line-height:1;padding:0 2px;cursor:pointer}.colorbar-legend-panel__close:hover{color:var(--text-primary, #fff)}.colorbar-legend-panel__unit-toggle{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:3px;color:var(--text-primary, #e0e0e0);padding:2px 8px;cursor:pointer;font-size:9px;font-weight:600;font-family:inherit;text-transform:uppercase;transition:all .15s ease;min-width:32px}.colorbar-legend-panel__unit-toggle:hover{background:#fff3;border-color:#ffffff4d}.colorbar-legend-panel__unit-toggle:active{background:#ffffff26}.colorbar-legend-panel__profile-toggle{background:none;border:1px solid transparent;border-radius:3px;color:var(--text-secondary, #999);padding:2px 4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.colorbar-legend-panel__profile-toggle:hover{color:var(--text-primary, #fff);background:#ffffff1a}.colorbar-legend-panel__profile-toggle--active{color:var(--accent-primary, #4fc3f7);border-color:var(--accent-primary, #4fc3f7);background:#4fc3f71a}.colorbar-legend-panel__profiles{border-top:1px solid var(--border-primary, rgba(255, 255, 255, .1));padding:6px 8px 8px}.colorbar-legend-panel__profiles-header{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted, #777);margin-bottom:4px;padding-left:2px}.colorbar-legend-panel__profiles-content{display:flex;flex-direction:row;gap:8px;justify-content:center}.colorbar-legend-panel__profiles-empty{font-size:10px;color:var(--text-muted, #666);font-style:italic;text-align:center;padding:16px 8px}.colorbar-legend-panel__content{display:flex;flex-direction:row;gap:12px;padding:10px 12px}.colorbar-legend__item{display:flex;flex-direction:column;align-items:center;min-width:60px}.colorbar-legend__item-label{font-weight:500;font-size:10px;margin-bottom:6px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}.colorbar-legend__item-body{display:flex;height:120px;position:relative}.colorbar-legend__item-units{margin-top:4px;font-size:9px;color:var(--text-muted, #888);text-align:center}.colorbar-legend__colorbar{width:14px;height:100%;border:1px solid var(--border-secondary, rgba(255, 255, 255, .3));border-radius:2px;position:relative}.colorbar-legend__cursor-indicator{position:absolute;left:-4px;right:-4px;height:2px;background:#fff;box-shadow:0 0 4px #0009;pointer-events:none;transform:translateY(50%);z-index:2}.colorbar-legend__cursor-indicator:before{content:"";position:absolute;right:-5px;top:-4px;width:0;height:0;border:5px solid transparent;border-left-color:#fff;filter:drop-shadow(1px 0 2px rgba(0,0,0,.4))}.colorbar-legend__cursor-indicator--out-of-range{background:#fff9}.colorbar-legend__cursor-indicator--out-of-range:before{border-left-color:#fff9}.colorbar-legend__cursor-value{position:absolute;left:100%;top:50%;transform:translateY(-50%);margin-left:10px;font-size:9px;font-weight:600;color:#fff;background:#000000b3;padding:1px 4px;border-radius:2px;white-space:nowrap;font-variant-numeric:tabular-nums}.colorbar-legend__ticks{position:relative;height:100%;margin-left:3px;width:40px}.colorbar-legend__tick{position:absolute;display:flex;align-items:center;transform:translateY(50%);left:0;right:0}.colorbar-legend__tick-mark{width:3px;height:1px;background:var(--text-muted, rgba(255, 255, 255, .5));flex-shrink:0}.colorbar-legend__tick-label{margin-left:2px;font-size:9px;color:var(--text-secondary, #bbb);white-space:nowrap;font-variant-numeric:tabular-nums}.colorbar-legend-container{position:absolute;display:flex;flex-direction:column;gap:8px;z-index:100;pointer-events:none}.colorbar-legend-container--bottom-right{bottom:40px;right:16px}.colorbar-legend-container--bottom-left{bottom:40px;left:16px}.colorbar-legend-container--top-right{top:16px;right:16px}.colorbar-legend-container--top-left{top:16px;left:16px}.map-toolbar{position:absolute;top:10px;left:10px;z-index:100;display:flex;gap:4px;background:#1e293be6;padding:4px;border-radius:6px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-toolbar-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:4px;background:transparent;color:#ffffffb3;cursor:pointer;transition:all .15s ease}.map-toolbar-btn:hover{background:#ffffff1a;color:#ffffffe6}.map-toolbar-btn.active{background:#3b82f64d;color:#3b82f6}.map-toolbar-btn.active:hover{background:#3b82f666}.map-toolbar-btn svg{width:16px;height:16px}[data-theme=lunar-light] .map-toolbar{background:#f0f0f0eb;border-color:#0000001f}[data-theme=lunar-light] .map-toolbar-btn{color:#0009}[data-theme=lunar-light] .map-toolbar-btn:hover{background:#00000014;color:#000000d9}[data-theme=lunar-light] .map-toolbar-btn.active{background:#2563eb26;color:#2563eb}[data-theme=lunar-light] .map-toolbar-btn.active:hover{background:#2563eb40}.selection-mode-active,.selection-mode-active *,.selection-mode-active canvas{cursor:crosshair!important}.inspector-mode-active,.inspector-mode-active *,.inspector-mode-active canvas{cursor:crosshair!important}.camera-editor-panel{position:absolute;top:100%;left:0;margin-top:8px;background:#1e293bfa;border:1px solid rgba(255,255,255,.1);border-radius:8px;box-shadow:0 8px 32px #0006;width:520px;max-height:400px;display:flex;flex-direction:column;overflow:hidden;z-index:101}.camera-editor-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.1);flex-shrink:0}.camera-editor-header h3{margin:0;font-size:12px;font-weight:600;color:#ffffffe6;text-transform:uppercase;letter-spacing:.05em}.camera-editor-header-actions{display:flex;align-items:center;gap:8px}.camera-editor-clear-all{font-size:10px;padding:3px 8px;background:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:4px;color:#fca5a5;cursor:pointer;transition:all .15s ease}.camera-editor-clear-all:hover{background:#ef444440;border-color:#ef444480}.camera-editor-close{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:transparent;border:none;border-radius:4px;color:#fff6;cursor:pointer;transition:all .15s ease}.camera-editor-close:hover{background:#ffffff1a;color:#fffc}.camera-editor-content{display:flex;flex:1;overflow:hidden;min-height:0}.camera-editor-list{width:200px;border-right:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;flex-shrink:0}.camera-editor-list-header{padding:8px 10px;font-size:10px;font-weight:500;color:#fff6;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid rgba(255,255,255,.05);flex-shrink:0}.camera-editor-events{flex:1;overflow-y:auto;padding:6px}.camera-event-item{display:flex;flex-direction:column;gap:2px;width:100%;padding:8px 10px;margin-bottom:4px;background:#ffffff08;border:1px solid transparent;border-radius:5px;cursor:pointer;transition:all .15s ease;text-align:left}.camera-event-item:hover{background:#ffffff0f;border-color:#ffffff1a}.camera-event-item.selected{background:#3b82f626;border-color:#3b82f666}.camera-event-item.has-override .event-position{color:#fbbf24}.event-time{font-family:SF Mono,monospace;font-size:10px;font-weight:600;color:#3b82f6}.event-position{font-size:11px;color:#fff9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.override-badge{display:inline-block;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:1px 4px;background:#fbbf2433;border-radius:3px;color:#fbbf24;margin-top:2px;width:fit-content}.camera-editor-edit{flex:1;padding:12px;display:flex;flex-direction:column;overflow-y:auto;min-width:0}.edit-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.edit-title{font-size:12px;font-weight:600;color:#fff}.edit-modified{font-size:9px;font-weight:600;text-transform:uppercase;padding:2px 6px;background:#fbbf2433;border-radius:3px;color:#fbbf24}.edit-fields{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.edit-row{display:flex;gap:10px}.edit-row label{flex:1;display:flex;flex-direction:column;gap:4px;position:relative}.edit-row label>span:first-child{font-size:9px;font-weight:500;color:#fff6;text-transform:uppercase;letter-spacing:.05em}.edit-row label input{width:100%;padding:6px 28px 6px 8px;background:#0000004d;border:1px solid rgba(255,255,255,.15);border-radius:4px;color:#fff;font-size:12px;font-family:SF Mono,monospace;transition:all .15s ease}.edit-row label input:focus{outline:none;border-color:#3b82f680;background:#0006}.edit-row label input::-webkit-inner-spin-button,.edit-row label input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.edit-row label .unit{position:absolute;right:8px;bottom:7px;font-size:10px;color:#ffffff4d;pointer-events:none}.edit-actions{display:flex;gap:8px}.edit-actions button{display:flex;align-items:center;gap:4px;padding:6px 10px;border-radius:4px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease}.btn-preview{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fffc}.btn-preview:hover{background:#ffffff1f;color:#fff}.btn-save{background:#3b82f633;border:1px solid rgba(59,130,246,.4);color:#60a5fa}.btn-save:hover{background:#3b82f64d}.btn-reset{background:#fbbf2426;border:1px solid rgba(251,191,36,.3);color:#fbbf24}.btn-reset:hover{background:#fbbf2440}.edit-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#ffffff4d;padding:20px}.edit-placeholder p{margin:0;font-size:11px}[data-theme=lunar-light] .camera-editor-panel{background:#fffffffa;border-color:#0000001a}[data-theme=lunar-light] .camera-editor-header{border-color:#0000001a}[data-theme=lunar-light] .camera-editor-header h3{color:#000c}[data-theme=lunar-light] .camera-editor-close{color:#0006}[data-theme=lunar-light] .camera-editor-close:hover{background:#0000000d;color:#000000b3}[data-theme=lunar-light] .camera-editor-list{border-color:#0000001a}[data-theme=lunar-light] .camera-editor-list-header{color:#0006;border-color:#0000000d}[data-theme=lunar-light] .camera-event-item{background:#00000005}[data-theme=lunar-light] .camera-event-item:hover{background:#0000000a;border-color:#0000001a}[data-theme=lunar-light] .camera-event-item.selected{background:#2563eb1a;border-color:#2563eb4d}[data-theme=lunar-light] .event-time{color:#2563eb}[data-theme=lunar-light] .event-position{color:#0009}[data-theme=lunar-light] .camera-event-item.has-override .event-position{color:#d97706}[data-theme=lunar-light] .override-badge{background:#d9770626;color:#d97706}[data-theme=lunar-light] .edit-title{color:#000000e6}[data-theme=lunar-light] .edit-modified{background:#d9770626;color:#d97706}[data-theme=lunar-light] .edit-row label>span:first-child{color:#0006}[data-theme=lunar-light] .edit-row label input{background:#0000000a;border-color:#00000026;color:#000000e6}[data-theme=lunar-light] .edit-row label input:focus{border-color:#2563eb80;background:#0000000f}[data-theme=lunar-light] .edit-row label .unit{color:#0000004d}[data-theme=lunar-light] .btn-preview{background:#0000000d;border-color:#00000026;color:#000000b3}[data-theme=lunar-light] .btn-preview:hover{background:#00000014;color:#000000e6}[data-theme=lunar-light] .btn-save{background:#2563eb26;border-color:#2563eb4d;color:#2563eb}[data-theme=lunar-light] .btn-save:hover{background:#2563eb40}[data-theme=lunar-light] .btn-reset{background:#d977061a;border-color:#d977064d;color:#d97706}[data-theme=lunar-light] .btn-reset:hover{background:#d9770633}[data-theme=lunar-light] .edit-placeholder{color:#0000004d}.demo-editor-toolbar{position:absolute;top:10px;left:138px;z-index:100;display:flex;align-items:center;gap:8px;background:#1e293be6;padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #0000004d}.demo-editor-toolbar.compact{padding:4px 10px 4px 4px}.demo-editor-toolbar.dragging{cursor:grabbing;opacity:.95;box-shadow:0 8px 32px #00000080}.demo-drag-handle{display:flex;align-items:center;justify-content:center;width:16px;height:24px;margin-right:4px;cursor:grab;color:#ffffff4d;transition:color .15s ease;flex-shrink:0}.demo-drag-handle:hover{color:#fff9}.demo-drag-handle:active,.demo-editor-toolbar.dragging .demo-drag-handle{cursor:grabbing;color:#fffc}[data-theme=lunar-light] .demo-drag-handle{color:#0003}[data-theme=lunar-light] .demo-drag-handle:hover{color:#0006}[data-theme=lunar-light] .demo-drag-handle:active,[data-theme=lunar-light] .demo-editor-toolbar.dragging .demo-drag-handle{color:#0009}.demo-separator{width:1px;height:20px;background:#ffffff26}.demo-start-btn,.demo-stop-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;border:none;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease}.demo-start-btn{background:linear-gradient(135deg,#3b82f6e6,#6366f1e6);color:#fff;box-shadow:0 2px 8px #3b82f666}.demo-start-btn:hover:not(:disabled){background:linear-gradient(135deg,#4f96fff2,#777afff2);box-shadow:0 4px 12px #3b82f680;transform:translateY(-1px)}.demo-start-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}.demo-stop-btn{background:#ef444433;color:#fca5a5;border:1px solid rgba(239,68,68,.3);padding:6px;min-width:28px;justify-content:center}.demo-stop-btn:hover{background:#ef444459;border-color:#ef444480}.demo-pause-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#ffffffb3;cursor:pointer;transition:all .15s ease}.demo-pause-btn:hover{background:#ffffff26;color:#fff}.demo-pause-btn.paused{background:#3b82f633;border-color:#3b82f64d;color:#3b82f6}.demo-pause-btn.paused:hover{background:#3b82f64d}.demo-editor-toolbar.paused{border-color:#fbbf2466}.demo-timecode.paused{animation:timecodeBlink 1s ease-in-out infinite}@keyframes timecodeBlink{0%,to{opacity:1}50%{opacity:.4}}[data-theme=lunar-light] .demo-pause-btn{background:#0000000d;border-color:#0000001a;color:#0009}[data-theme=lunar-light] .demo-pause-btn:hover{background:#0000001a;color:#000c}[data-theme=lunar-light] .demo-pause-btn.paused{background:#2563eb26;border-color:#2563eb4d;color:#2563eb}[data-theme=lunar-light] .demo-pause-btn.paused:hover{background:#2563eb40}[data-theme=lunar-light] .demo-editor-toolbar.paused{border-color:#d9770666}.demo-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:demoSpin .8s linear infinite}@keyframes demoSpin{to{transform:rotate(360deg)}}.demo-timecode{font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:14px;font-weight:600;color:#3b82f6;letter-spacing:.05em;min-width:40px;text-align:center}.demo-event-info{display:flex;flex-direction:column;gap:2px;max-width:200px;min-width:120px}.demo-current-event,.demo-next-event{display:flex;align-items:center;gap:4px;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.demo-current-event{color:#ffffffe6;font-weight:500}.demo-next-event{color:#ffffff80;font-size:10px}.event-badge{flex-shrink:0;font-size:8px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:2px 4px;background:#ffffff1a;border-radius:3px;color:#fff9}.demo-current-event .event-badge{background:#3b82f633;color:#60a5fa}[data-theme=lunar-light] .event-badge{background:#00000014;color:#00000080}[data-theme=lunar-light] .demo-current-event .event-badge{background:#2563eb26;color:#2563eb}.event-text{overflow:hidden;text-overflow:ellipsis}.next-label{color:#ffffff59;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.demo-skip-btn{display:flex;align-items:center;gap:4px;padding:4px 8px;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#ffffffb3;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s ease}.demo-skip-btn:hover{background:#ffffff26;color:#fff;border-color:#fff3}.demo-skip-btn svg{flex-shrink:0}.demo-toggles{display:flex;align-items:center;gap:4px;position:relative}.demo-toggle{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:4px;cursor:pointer;transition:all .15s ease}.demo-toggle.enabled{background:#3b82f633;color:#3b82f6}.demo-toggle.enabled:hover{background:#3b82f64d}.demo-toggle.disabled{background:#ffffff0d;color:#ffffff4d}.demo-toggle.disabled:hover{background:#ffffff1a;color:#ffffff80}.demo-toggle.pulse.enabled{animation:togglePulse 1.5s ease-in-out infinite}@keyframes togglePulse{0%,to{box-shadow:0 0 #3b82f666}50%{box-shadow:0 0 0 4px #3b82f600}}.demo-preview-popup{position:absolute;bottom:100%;right:0;margin-bottom:8px;padding:8px 12px;background:#141419f2;border:1px solid rgba(255,255,255,.15);border-radius:6px;box-shadow:0 4px 16px #0006;z-index:110;min-width:140px;pointer-events:none}.demo-preview-popup:after{content:"";position:absolute;top:100%;right:12px;border:6px solid transparent;border-top-color:#ffffff26}.preview-header{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#ffffff80;margin-bottom:4px}.preview-content{font-size:12px;color:#ffffffe6;line-height:1.4}.demo-preview-popup.timeline .preview-header{color:#3b82f6b3}.demo-preview-popup.camera .preview-header{color:#10b981b3}[data-theme=lunar-light] .demo-editor-toolbar{background:#f0f0f0f2;border-color:#0000001a}[data-theme=lunar-light] .demo-separator{background:#0000001f}[data-theme=lunar-light] .demo-timecode{color:#2563eb}[data-theme=lunar-light] .demo-current-event{color:#000c}[data-theme=lunar-light] .demo-next-event{color:#00000080}[data-theme=lunar-light] .next-label{color:#00000059}[data-theme=lunar-light] .demo-skip-btn{background:#0000000d;border-color:#0000001a;color:#0009}[data-theme=lunar-light] .demo-skip-btn:hover{background:#0000001a;color:#000c}[data-theme=lunar-light] .demo-toggle.enabled{background:#2563eb26;color:#2563eb}[data-theme=lunar-light] .demo-toggle.enabled:hover{background:#2563eb40}[data-theme=lunar-light] .demo-toggle.disabled{background:#00000008;color:#00000040}[data-theme=lunar-light] .demo-toggle.disabled:hover{background:#00000014;color:#0006}[data-theme=lunar-light] .demo-toggle.pulse.enabled{animation-name:togglePulseLight}@keyframes togglePulseLight{0%,to{box-shadow:0 0 #2563eb4d}50%{box-shadow:0 0 0 4px #2563eb00}}[data-theme=lunar-light] .demo-preview-popup{background:#fffffffa;border-color:#0000001f}[data-theme=lunar-light] .demo-preview-popup:after{border-top-color:#0000001f}[data-theme=lunar-light] .preview-header{color:#00000073}[data-theme=lunar-light] .preview-content{color:#000c}[data-theme=lunar-light] .demo-preview-popup.timeline .preview-header{color:#2563ebb3}[data-theme=lunar-light] .demo-preview-popup.camera .preview-header{color:#108c5ab3}.demo-camera-edit-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:#ffffff14;border:1px solid rgba(255,255,255,.12);border-radius:4px;color:#fff9;cursor:pointer;transition:all .15s ease}.demo-camera-edit-btn.compact{width:24px;height:24px;margin-left:6px}.demo-camera-edit-btn:hover{background:#ffffff26;border-color:#fff3;color:#fff}.demo-camera-edit-btn:active{background:#fff3}[data-theme=lunar-light] .demo-camera-edit-btn{background:#0000000d;border-color:#0000001a;color:#00000080}[data-theme=lunar-light] .demo-camera-edit-btn:hover{background:#0000001a;border-color:#00000026;color:#000c}:root{--bg-primary: #0a0a0a;--bg-elevated: rgba(20, 20, 25, .98);--bg-surface: rgba(20, 20, 20, .95);--bg-hover: rgba(255, 255, 255, .1);--bg-active: rgba(59, 130, 246, .25);--border-primary: rgba(255, 255, 255, .1);--border-secondary: rgba(255, 255, 255, .15);--border-accent: rgba(59, 130, 246, .4);--text-primary: #fafafa;--text-secondary: rgba(255, 255, 255, .6);--text-muted: rgba(255, 255, 255, .4);--accent-primary: #60a5fa;--accent-secondary: #f59e0b;--accent-tertiary: #34d399;--status-success: #22c55e;--status-warning: #fbbf24;--status-error: #ef4444;--status-info: #60a5fa;--toolbar-bg: rgba(20, 20, 25, .98);--menu-bg: rgba(25, 25, 30, .98);--panel-bg: rgba(15, 15, 18, .98);--tooltip-bg: rgba(20, 20, 25, .95);--button-hover: rgba(255, 255, 255, .1);--button-active: rgba(59, 130, 246, .3);--toggle-on: rgba(59, 130, 246, .6);--toggle-off: rgba(255, 255, 255, .15);--scrollbar-track: rgba(255, 255, 255, .05);--scrollbar-thumb: rgba(255, 255, 255, .2);--scrollbar-thumb-hover: rgba(255, 255, 255, .3);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--bg-card: #131825;--bg-input: #0d111d;--bg-body: #0c0f1a;--border-color: #1e2535;--accent-blue: #3b82f6;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", monospace}:root{transition:--bg-primary .3s ease,--bg-elevated .3s ease,--bg-surface .3s ease,--accent-primary .3s ease}[data-theme=lunar-light]{--bg-primary: #c8c8c8;--bg-elevated: rgba(240, 240, 240, .98);--bg-surface: #e8e8e8;--bg-hover: rgba(0, 0, 0, .06);--bg-active: rgba(37, 99, 235, .15);--dashboard-bg: #d8d8d8;--dashboard-surface: #e8e8e8;--dashboard-surface-elevated: #f0f0f0;--dashboard-border: rgba(0, 0, 0, .12);--dashboard-border-subtle: rgba(0, 0, 0, .06);--transport-bg: rgba(0, 0, 0, .06);--transport-bg-hover: rgba(0, 0, 0, .1);--transport-bg-active: rgba(37, 99, 235, .15);--transport-border: rgba(0, 0, 0, .12);--transport-border-hover: rgba(0, 0, 0, .2);--border-primary: rgba(0, 0, 0, .12);--border-secondary: rgba(0, 0, 0, .18);--border-accent: rgba(37, 99, 235, .4);--border-subtle: rgba(0, 0, 0, .08);--text-primary: #4a4a4a;--text-secondary: #6a6a6a;--text-muted: #9a9a9a;--text-disabled: #b8b8b8;--accent-primary: #2563eb;--accent-primary-hover: #1d4ed8;--accent-primary-glow: rgba(37, 99, 235, .3);--accent-secondary: #d97706;--accent-tertiary: #16a34a;--status-success: #16a34a;--status-warning: #d97706;--status-error: #b91c1c;--status-info: #2563eb;--toolbar-bg: rgba(240, 240, 240, .98);--menu-bg: rgba(248, 248, 248, .98);--panel-bg: #e8e8e8;--tooltip-bg: rgba(248, 248, 248, .95);--button-hover: rgba(0, 0, 0, .06);--button-active: rgba(37, 99, 235, .2);--toggle-on: rgba(37, 99, 235, .6);--toggle-off: rgba(0, 0, 0, .12);--scrollbar-track: #d0d0d0;--scrollbar-thumb: #a0a0a0;--scrollbar-thumb-hover: #888888;--scrollbar-border: rgba(0, 0, 0, .05);--header-gradient: linear-gradient(to bottom, #e8e8e8, #d8d8d8);--header-bg: #e0e0e0;--header-border: rgba(0, 0, 0, .15);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .12);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .15);--shadow-panel: 0 4px 20px rgba(0, 0, 0, .12);--drawing-header-bg: linear-gradient(135deg, #d8d8d8 0%, #e8e8e8 100%);--timecode-bg: rgba(255, 255, 255, .6);--timecode-color: #2563eb}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%;overflow:hidden}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-primary);color:var(--text-primary)}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:var(--scrollbar-track, transparent)}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb, rgba(255, 255, 255, .15));border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover, rgba(255, 255, 255, .25))}.app{display:grid;grid-template-rows:auto 1fr;grid-template-columns:var(--dock-width, 80px) 1fr;height:100%;width:100%;background:var(--bg-primary)}.app-topbar{grid-column:1 / -1;grid-row:1}.icon-dock{grid-column:1;grid-row:2}.center-grid{grid-column:2;grid-row:2;display:grid;gap:var(--module-gap);padding:var(--grid-padding);min-height:0;overflow:hidden}.app.layout-2-column .center-grid{grid-template-columns:auto 1fr}.app.layout-3-column .center-grid{grid-template-columns:auto 1fr auto}.app.sidebar-collapsed.layout-2-column .center-grid{grid-template-columns:1fr}.app.sidebar-collapsed.layout-3-column .center-grid{grid-template-columns:1fr auto}.app-header{display:contents}.app-topbar{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 12px;background:var(--toolbar-bg);border-bottom:1px solid var(--border-primary);z-index:200}.topbar-brand{display:flex;align-items:center;justify-content:center;min-width:calc(var(--dock-width, 80px) - 24px);font-size:13px;font-weight:800;letter-spacing:.1em;color:var(--accent-primary);text-shadow:0 0 8px var(--accent-primary-glow, rgba(100, 200, 255, .6)),0 0 16px var(--accent-primary-glow, rgba(100, 200, 255, .4)),0 0 24px var(--accent-primary-glow, rgba(100, 200, 255, .2));-webkit-user-select:none;user-select:none}[data-theme=lunar-light] .topbar-brand{text-shadow:none}.app-toolbar{display:flex;align-items:center;justify-content:space-between;height:44px;padding:0 12px;background:var(--toolbar-bg);border-bottom:1px solid var(--border-primary);flex-shrink:0;z-index:200}.toolbar-left{display:flex;align-items:center;gap:8px}.toolbar-center{flex:1;display:flex;align-items:center;margin:0 8px;min-width:0;overflow:hidden}.toolbar-right{display:flex;align-items:center;gap:8px;margin-left:auto}.toolbar-title{font-size:15px;font-weight:700;letter-spacing:.15em;color:var(--accent-primary, rgba(100, 200, 255, .95));text-shadow:0 0 8px var(--accent-primary-glow, rgba(100, 200, 255, .6)),0 0 16px var(--accent-primary-glow, rgba(100, 200, 255, .4)),0 0 24px var(--accent-primary-glow, rgba(100, 200, 255, .2));animation:title-glow 3s ease-in-out infinite;padding:0 4px}[data-theme=lunar-light] .toolbar-title{text-shadow:none;animation:none}@keyframes title-glow{0%,to{text-shadow:0 0 8px rgba(100,200,255,.6),0 0 16px rgba(100,200,255,.4),0 0 24px rgba(100,200,255,.2);color:#64c8fff2}50%{text-shadow:0 0 12px rgba(100,200,255,.8),0 0 20px rgba(100,200,255,.5),0 0 30px rgba(100,200,255,.3);color:#8cdcff}}.toolbar-group{display:flex;align-items:center;gap:4px;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px;padding:3px}.toolbar-divider{width:1px;height:20px;background:var(--border-secondary);margin:0 4px}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:6px 10px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);font-size:12px;font-family:inherit;cursor:pointer;transition:all .15s}.toolbar-btn:hover:not(:disabled){background:var(--button-hover);color:var(--text-primary)}.toolbar-btn.active{background:var(--bg-active);border-color:var(--border-accent);color:var(--accent-primary)}.toolbar-btn:disabled{opacity:.4;cursor:not-allowed}.toolbar-btn svg{flex-shrink:0}.user-menu{display:flex;align-items:center;gap:8px;padding-left:8px}.user-role-badge{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:4px}.user-role-badge.admin{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.user-role-badge.user{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.user-name{font-size:12px;color:var(--text-secondary)}.logout-btn{padding:6px!important}.logout-btn:hover{color:var(--status-error)!important}.toolbar-btn-indicator{width:8px;height:8px;border-radius:50%;flex-shrink:0}.app-main{display:flex;flex-direction:column;gap:var(--module-gap);min-height:0;overflow:hidden;position:relative}.app-main.map-minimized>.map-container{flex:0 0 500px;min-height:500px;max-height:500px;overflow:hidden}.app-main.map-maximized>.map-container{flex:1}.app-main.map-maximized>.asset-timeline-container{display:none}.app-main.timeline-minimized>.asset-timeline-container{flex:0 0 36px;min-height:36px;max-height:36px;overflow:hidden}.app-main.timeline-maximized>.asset-timeline-container{flex:1;max-height:none}.app-main.timeline-maximized>.map-container{display:none}.map-container.panel-popped-out{position:fixed;inset:48px;z-index:1000;flex:none!important;border-radius:12px;box-shadow:0 25px 50px #00000080}.asset-timeline-container.panel-popped-out{position:fixed;inset:48px;z-index:1000;flex:none!important;max-height:none;border-radius:12px;box-shadow:0 25px 50px #00000080}.popout-header{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 8px 0 12px;background:linear-gradient(to bottom,#1e1e26fa,#191920fa);border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));z-index:1001}.popout-header .panel-title-area{display:flex;align-items:center;gap:6px}.popout-header .panel-title{font-size:12px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95))}.popout-close-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-muted, rgba(255, 255, 255, .5));cursor:pointer;transition:all .1s ease}.popout-close-btn:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .12));color:var(--text-primary, rgba(255, 255, 255, .95))}.panel-size-toolbar{position:absolute;top:6px;right:6px;display:flex;align-items:center;gap:2px;padding:2px 4px;background:#14141cd9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--dashboard-border, rgba(255, 255, 255, .1));border-radius:6px;z-index:50;opacity:0;transition:opacity .15s ease;pointer-events:none}.map-container:hover>.panel-size-toolbar,.asset-timeline-container:hover>.panel-size-toolbar{opacity:1;pointer-events:auto}.center-drag-handle{display:flex;align-items:center;justify-content:center;width:18px;height:18px;cursor:grab;color:var(--text-muted, rgba(255, 255, 255, .4));border-radius:3px;transition:color .15s ease,background .15s ease;flex-shrink:0}.center-drag-handle:hover{color:var(--accent-primary, #60a5fa);background:#ffffff14}.center-drag-handle:active{cursor:grabbing}.app-main>.sortable-ghost{opacity:.4}.app-main>.sortable-chosen{opacity:.8}.panel-size-btn{display:flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;background:transparent;border:none;border-radius:4px;color:var(--text-secondary, rgba(255, 255, 255, .6));cursor:pointer;transition:all .1s ease}.panel-size-btn:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .15));color:var(--text-primary, rgba(255, 255, 255, .95))}.panel-size-btn:active{background:var(--transport-bg-active, rgba(255, 255, 255, .2))}.asset-timeline-container{position:relative}[data-theme=lunar-light] .panel-size-toolbar{background:#dcdce1e6;border-color:var(--dashboard-border, rgba(0, 0, 0, .12))}[data-theme=lunar-light] .panel-size-btn{color:var(--text-secondary, #6a6a6a)}[data-theme=lunar-light] .panel-size-btn:hover{background:var(--transport-bg-hover, rgba(0, 0, 0, .1));color:var(--text-primary, #2a2a2a)}[data-theme=lunar-light] .center-drag-handle{color:var(--text-muted, #8a8a8a)}[data-theme=lunar-light] .center-drag-handle:hover{color:var(--accent-primary, #2563eb);background:#0000000f}.minimized-header{display:flex;align-items:center;justify-content:space-between;height:36px;padding:0 8px 0 12px;background:linear-gradient(to bottom,#323237cc,#232328cc);border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));cursor:pointer}.minimized-header .panel-title-area{display:flex;align-items:center;gap:6px}.minimized-header .panel-title{font-size:12px;font-weight:500;color:var(--text-primary, rgba(255, 255, 255, .95))}.minimized-header .panel-controls{display:flex;align-items:center;gap:2px}@media(max-width:1024px){.app.layout-3-column .widget-column{display:none}}.sidebar-toggle-btn{display:flex;align-items:center;justify-content:center;width:100%;height:40px;padding:0;background:var(--bg-tertiary);border:none;border-bottom:1px solid var(--border-primary);color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.sidebar-toggle-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-panels{flex:1;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:1px;background:var(--border-primary)}.sidebar-panels>*{background:var(--bg-secondary)}.dock-icon-btn:focus-visible,.widget-ctrl-btn:focus-visible,.widget-column-expand-btn:focus-visible,.widget-column-collapse-btn:focus-visible,.widget-overlay-toggle:focus-visible{outline:2px solid var(--accent-primary);outline-offset:-2px}.map-container{flex:1;position:relative;min-height:200px;overflow:hidden;border-radius:var(--module-radius);background:var(--panel-bg)}.cesium-container{position:absolute;inset:0}.asset-timeline-container{flex-shrink:0;width:100%;box-sizing:border-box;position:relative;z-index:10;background:var(--panel-bg);border-radius:var(--module-radius);overflow:hidden}.position-picker-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--tooltip-bg);border:2px solid var(--accent-secondary);border-radius:8px;padding:16px 24px;text-align:center;z-index:200;pointer-events:none;animation:picker-pulse 2s infinite}.picker-message{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:500;color:#fff}.picker-message svg{color:var(--accent-secondary)}.picker-hint{margin-top:8px;font-size:11px;color:#ffffff80}@keyframes picker-pulse{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 8px #f59e0b00}}.data-dropdown{position:relative;margin-left:12px}.data-btn{gap:4px!important}.data-btn .dropdown-arrow{opacity:.5;margin-left:2px}.data-menu{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:4px;background:var(--menu-bg);border:1px solid var(--border-secondary);border-radius:8px;min-width:160px;padding:4px;box-shadow:0 8px 24px #0006;z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.data-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:transparent;border:none;border-radius:4px;color:var(--text-primary);font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:all .1s}.data-menu-item:hover:not(:disabled){background:var(--button-active);color:var(--text-primary)}.data-menu-item:disabled{color:var(--text-muted);cursor:not-allowed}.data-menu-item svg{flex-shrink:0;opacity:.7}.data-menu-item:hover:not(:disabled) svg{opacity:1}.data-menu-divider{height:1px;background:var(--border-primary);margin:4px 8px}.data-badge{font-size:10px;font-weight:600;padding:1px 5px;background:var(--button-active);border-radius:8px;color:var(--accent-primary);margin-left:2px}.view-dropdown{position:relative}.view-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--menu-bg);border:1px solid var(--border-secondary);border-radius:8px;min-width:220px;max-height:calc(100vh - 60px);overflow-y:auto;padding:6px;box-shadow:0 8px 24px #0006;z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.view-menu-section{padding:4px 0}.view-menu-section:not(:last-child){border-bottom:1px solid var(--border-primary);margin-bottom:4px}.view-menu-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:4px 10px 6px}.view-menu-item{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:4px;color:var(--text-primary);font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:all .1s}.view-menu-item:hover{background:var(--button-hover)}.view-menu-item.active{background:var(--bg-active)}.view-menu-item-left{display:flex;align-items:center;gap:10px}.view-menu-item svg{flex-shrink:0;opacity:.6}.view-menu-item:hover svg{opacity:1}.view-menu-toggle{width:32px;height:18px;background:var(--toggle-off);border-radius:9px;position:relative;transition:background .15s}.view-menu-toggle.on{background:var(--toggle-on)}.view-menu-toggle:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:transform .15s}.view-menu-toggle.on:after{transform:translate(14px)}.view-menu-slider{display:flex;align-items:center;gap:8px;padding:6px 10px}.view-menu-slider label{font-size:12px;color:var(--text-secondary);min-width:80px}.view-menu-slider input[type=range]{flex:1;height:4px;background:var(--toggle-off);border-radius:2px;appearance:none;cursor:pointer}.view-menu-slider input[type=range]::-webkit-slider-thumb{appearance:none;width:14px;height:14px;background:var(--accent-primary);border-radius:50%;cursor:pointer}.view-menu-slider .slider-value{font-size:11px;color:var(--text-muted);min-width:30px;text-align:right}.view-menu-dropdown{display:flex;align-items:center;gap:8px;padding:6px 10px}.view-menu-dropdown label{font-size:12px;color:var(--text-secondary);min-width:80px}.view-menu-dropdown select{flex:1;padding:5px 28px 5px 8px;font-size:12px;background:var(--button-hover);border:1px solid var(--border-secondary);border-radius:4px;color:var(--text-primary);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.6)' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 8px center}.view-menu-dropdown select:hover{background-color:var(--bg-hover);border-color:var(--border-secondary)}.view-menu-dropdown select:focus{outline:none;border-color:var(--border-accent);box-shadow:0 0 0 2px var(--bg-active)}.view-menu-dropdown select option{background:#1e1e26;color:#fff;padding:8px}.colormap-dropdown-container{flex:1;position:relative}.colormap-dropdown-trigger{width:100%;display:flex;align-items:center;gap:8px;padding:5px 8px;background:var(--button-hover);border:1px solid var(--border-secondary);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:12px}.colormap-dropdown-trigger:hover{background:var(--bg-hover);border-color:var(--border-secondary)}.colormap-swatch{width:60px;height:14px;border-radius:2px;flex-shrink:0;border:1px solid var(--border-secondary)}.colormap-name{flex:1;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.colormap-chevron{flex-shrink:0;opacity:.6}.colormap-dropdown-menu{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--menu-bg);border:1px solid var(--border-secondary);border-radius:4px;box-shadow:0 4px 12px #0006;z-index:1000;max-height:240px;overflow-y:auto}.colormap-dropdown-item{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;background:transparent;border:none;color:var(--text-primary);cursor:pointer;font-size:12px;text-align:left}.colormap-dropdown-item:hover{background:var(--button-hover)}.colormap-dropdown-item.active{background:var(--button-active);color:var(--text-primary)}.colormap-dropdown-item .colormap-swatch{width:50px;height:12px}.view-menu-radio-group{padding:6px 10px}.view-menu-radio-label{font-size:12px;color:var(--text-secondary);margin-bottom:6px}.view-menu-radio-options{display:flex;gap:4px}.view-menu-radio{flex:1;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 8px;background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:4px;color:var(--text-secondary);font-size:11px;cursor:pointer;transition:all .15s}.view-menu-radio:hover{background:var(--bg-hover);color:var(--text-primary)}.view-menu-radio.active{background:var(--button-active);border-color:var(--border-accent);color:var(--text-primary)}.view-menu-radio svg{flex-shrink:0}.theme-selector{display:flex;flex-direction:column;gap:4px;padding:4px 0}.theme-option{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:4px;color:var(--text-primary);font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:all .15s}.theme-option:hover{background:var(--button-hover)}.theme-option.active{background:var(--bg-active)}.theme-swatches{display:flex;gap:2px;flex-shrink:0}.theme-swatch{width:12px;height:12px;border-radius:2px;border:1px solid var(--border-secondary)}.theme-option-content{flex:1;display:flex;flex-direction:column;gap:1px}.theme-option-name{font-size:13px;color:var(--text-primary)}.theme-option-desc{font-size:10px;color:var(--text-muted)}.theme-check{width:16px;height:16px;color:var(--accent-primary);flex-shrink:0;opacity:0}.theme-option.active .theme-check{opacity:1}.bathymetry-legend{padding:8px 10px;border-top:1px solid rgba(255,255,255,.1);margin-top:4px}.bathymetry-legend-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.bathymetry-legend-label{font-size:11px;color:#fff9;text-transform:uppercase;letter-spacing:.5px}.elevation-preset-select{padding:2px 20px 2px 6px;font-size:10px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:3px;color:#ffffffb3;cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='rgba(255,255,255,0.5)' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center}.elevation-preset-select:hover{background-color:#ffffff26;color:#ffffffe6;border-color:#ffffff4d}.elevation-preset-select:focus{outline:none;border-color:#3b82f680}.elevation-preset-select option{background:#1e1e26;color:#fff;padding:4px}.bathymetry-legend-ramp{display:flex;align-items:center;gap:6px}.bathymetry-legend-ramp .depth-label{font-size:10px;color:#ffffffb3;min-width:45px}.bathymetry-legend-ramp .depth-label:last-child{text-align:right}.color-ramp-bar{flex:1;height:12px;border-radius:2px;border:1px solid rgba(255,255,255,.2);background:linear-gradient(to right,#f9fcca,#bde7ad,#81d2a3,#5ab7a4,#4c9aa0,#437d9a 25%,#3e6194 40%,#424380 50%,#392d52 80%,#291c2f)}.dual-range-slider{position:relative;height:38px;margin-top:8px}.dual-range-slider input[type=range]{position:absolute;width:100%;height:4px;top:8px;background:transparent;pointer-events:none;appearance:none;-webkit-appearance:none}.dual-range-slider input[type=range]::-webkit-slider-runnable-track{width:100%;height:4px;background:#ffffff26;border-radius:2px}.dual-range-slider input[type=range].range-min::-webkit-slider-runnable-track{background:transparent}.dual-range-slider input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:14px;height:14px;background:#60a5fa;border-radius:50%;cursor:pointer;pointer-events:auto;margin-top:-5px;border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 3px #0000004d}.dual-range-slider input[type=range]::-webkit-slider-thumb:hover{background:#93c5fd;transform:scale(1.1)}.dual-range-slider input[type=range]::-moz-range-track{width:100%;height:4px;background:#ffffff26;border-radius:2px}.dual-range-slider input[type=range].range-min::-moz-range-track{background:transparent}.dual-range-slider input[type=range]::-moz-range-thumb{width:14px;height:14px;background:#60a5fa;border-radius:50%;cursor:pointer;pointer-events:auto;border:2px solid rgba(255,255,255,.9);box-shadow:0 1px 3px #0000004d}.dual-range-slider input[type=range]::-moz-range-thumb:hover{background:#93c5fd}.dual-range-slider .range-track-fill{position:absolute;top:8px;height:4px;background:#60a5fa80;border-radius:2px;pointer-events:none}.dual-range-slider .range-ticks{position:absolute;top:16px;left:0;right:0;height:20px;pointer-events:none}.dual-range-slider .range-tick{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%)}.dual-range-slider .range-tick .tick-mark{width:1px;height:6px;background:#fff6}.dual-range-slider .range-tick .tick-label{font-size:9px;color:#ffffff80;margin-top:2px;white-space:nowrap}.dual-range-slider .range-tick:first-child{transform:translate(0);align-items:flex-start}.dual-range-slider .range-tick:last-child{transform:translate(-100%);align-items:flex-end}.dropdown-arrow{opacity:.5;margin-left:2px;transition:transform .15s}.dropdown-arrow.open{transform:rotate(180deg)}.entity-hover-tooltip{background:var(--tooltip-bg);border:1px solid var(--border-secondary);border-radius:6px;padding:10px 12px;min-width:180px;z-index:1000;box-shadow:0 4px 16px #00000080}.entity-hover-tooltip .tooltip-header{font-size:13px;font-weight:600;color:var(--accent-primary);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border-primary)}.entity-hover-tooltip .tooltip-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:4px 0}.entity-hover-tooltip .tooltip-label{color:var(--text-muted)}.entity-hover-tooltip .tooltip-value{color:var(--text-primary);font-family:SF Mono,Monaco,Consolas,monospace}.entity-hover-tooltip .tooltip-thumbnail{width:100%;height:80px;margin-bottom:8px;border-radius:4px;overflow:hidden;background:#0000004d}.entity-hover-tooltip .tooltip-thumbnail img{width:100%;height:100%;object-fit:cover;display:block}.entity-hover-tooltip .tooltip-accuracy-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:10px;font-weight:600;letter-spacing:.3px;margin-left:6px;vertical-align:middle}.entity-hover-tooltip .tooltip-section-label{font-size:9px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:8px;margin-bottom:2px;opacity:.7}.entity-hover-tooltip .tooltip-candidate{font-size:11px;margin:3px 0;color:var(--text-primary)}.entity-hover-tooltip .tooltip-candidate-conf{font-family:SF Mono,Monaco,Consolas,monospace;color:var(--accent-primary);margin-left:4px}.seamark-hover-tooltip{background:#00141eeb;border:1px solid rgba(0,212,255,.5);border-radius:4px;padding:10px 12px;min-width:180px;z-index:1000;box-shadow:0 0 20px #00d4ff26,0 4px 16px #00000080,inset 0 0 20px #00d4ff08;font-family:SF Mono,Monaco,Consolas,monospace}.seamark-hover-tooltip:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(0,212,255,.6),transparent)}.seamark-hover-tooltip .tooltip-header{font-size:12px;font-weight:600;color:#00d4ff;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(0,212,255,.2);text-transform:uppercase;letter-spacing:.5px}.seamark-hover-tooltip .tooltip-row{display:flex;justify-content:space-between;align-items:center;font-size:10px;margin:4px 0}.seamark-hover-tooltip .tooltip-label{color:#00d4ff99;text-transform:uppercase;letter-spacing:.3px}.seamark-hover-tooltip .tooltip-value{color:#ffffffe6;text-transform:capitalize}.currents-popup{background:#001428f2;border:1px solid rgba(0,150,200,.5);border-radius:6px;padding:12px 14px;min-width:200px;z-index:1000;box-shadow:0 0 20px #0096c826,0 4px 16px #00000080;font-family:SF Mono,Monaco,Consolas,monospace}.currents-popup .popup-close{position:absolute;top:8px;right:8px;background:transparent;border:none;color:#fff6;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;transition:color .15s}.currents-popup .popup-close:hover{color:#fffc}.currents-popup .tooltip-header{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:#00c8ff;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(0,150,200,.3)}.currents-popup .tooltip-header svg{stroke:#00c8ff}.currents-popup .tooltip-row{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin:5px 0}.currents-popup .tooltip-label{color:#00c8ff99}.currents-popup .tooltip-value{color:#ffffffe6}.currents-popup .tooltip-value.highlight{color:#0fa;font-weight:600;font-size:13px}.currents-popup .current-speed{background:#00ffaa1a;margin:0 -8px 6px;padding:6px 8px;border-radius:4px}.currents-popup .popup-loading{color:#fff9;font-size:11px;text-align:center;padding:8px}.currents-popup .popup-error{color:#ff6b6b;font-size:11px;text-align:center;padding:8px}.layers-dropdown{position:relative}.layers-menu{position:absolute;top:100%;left:0;margin-top:4px;background:var(--menu-bg);border:1px solid var(--border-secondary);border-radius:8px;min-width:260px;max-height:calc(100vh - 70px);overflow-y:auto;overflow-x:hidden;box-shadow:0 8px 24px #0006;z-index:300;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.layers-menu::-webkit-scrollbar{width:6px}.layers-menu::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:3px}.layers-menu::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}.layers-menu::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.scene-mode-section{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-primary);background:var(--bg-surface)}.scene-mode-label{font-size:11px;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.scene-mode-toggle{display:flex;gap:4px;background:#0000004d;border-radius:6px;padding:3px}.scene-mode-btn{display:flex;align-items:center;gap:5px;padding:5px 10px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-muted);font-size:11px;font-weight:500;cursor:pointer;transition:all .15s}.scene-mode-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.scene-mode-btn.active{background:var(--button-active);border-color:var(--border-accent);color:var(--accent-primary)}.scene-mode-btn svg{opacity:.8}.scene-mode-btn.active svg{opacity:1}.layers-menu-header{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--border-primary);font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.layers-add-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--bg-active);border:1px solid var(--border-accent);border-radius:4px;color:var(--accent-primary);cursor:pointer;transition:all .15s}.layers-add-btn:hover{background:var(--button-active);border-color:var(--accent-primary)}.layers-add-menu{border-bottom:1px solid rgba(255,255,255,.1);padding:8px;background:#0003}.layers-add-title{font-size:11px;font-weight:600;color:#ffffff80;text-transform:uppercase;letter-spacing:.05em;padding:4px 8px 8px}.layers-category-btn{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:4px;color:#fffc;font-size:13px;font-family:inherit;text-align:left;cursor:pointer;transition:all .1s}.layers-category-btn:hover:not(:disabled){background:#ffffff1a}.layers-category-btn:disabled{opacity:.4;cursor:not-allowed}.layers-category-btn .category-icon{font-size:14px}.layers-category-btn .category-count{margin-left:auto;font-size:10px;color:#fff6;background:#ffffff1a;padding:2px 6px;border-radius:8px}.layers-category-btn svg{opacity:.5;flex-shrink:0}.layers-back-btn{display:flex;align-items:center;gap:6px;padding:6px 8px;margin-bottom:4px;background:transparent;border:none;border-radius:4px;color:#fff9;font-size:11px;font-family:inherit;cursor:pointer;transition:all .1s}.layers-back-btn:hover{background:#ffffff1a;color:#ffffffe6}.layers-option-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:4px;text-align:left;cursor:pointer;transition:all .1s}.layers-option-btn:hover{background:#3b82f633}.layers-option-btn .option-name{font-size:13px;color:#ffffffe6;font-family:inherit}.layers-option-btn .option-desc{font-size:10px;color:#ffffff80;font-family:inherit}.layers-list{padding:6px}.layer-item{background:var(--bg-surface);border:1px solid var(--border-primary);border-radius:6px;margin-bottom:4px;overflow:hidden;transition:all .15s}.layer-item:last-child{margin-bottom:0}.layer-item:hover{border-color:var(--border-secondary)}.layer-item.hidden{opacity:.5}.layer-header{display:flex;align-items:center;gap:8px;padding:8px 10px}.layer-visibility{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .1s;flex-shrink:0}.layer-visibility:hover{background:var(--button-hover);color:var(--text-primary)}.layer-item.hidden .layer-visibility{color:var(--text-muted)}.layer-name{flex:1;font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-controls{display:flex;align-items:center;gap:2px;flex-shrink:0}.layer-order-btn,.layer-remove-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:transparent;border:none;border-radius:3px;color:var(--text-muted);cursor:pointer;transition:all .1s}.layer-order-btn:hover:not(:disabled),.layer-remove-btn:hover:not(:disabled){background:var(--button-hover);color:var(--text-primary)}.layer-order-btn:disabled{opacity:.3;cursor:not-allowed}.layer-remove-btn:hover:not(:disabled){background:#ef444433;color:var(--status-error)}.layer-opacity{display:flex;align-items:center;gap:8px;padding:4px 10px 10px;border-top:1px solid var(--border-primary)}.layer-opacity input[type=range]{flex:1;height:4px;background:var(--toggle-off);border-radius:2px;appearance:none;cursor:pointer}.layer-opacity input[type=range]::-webkit-slider-thumb{appearance:none;width:12px;height:12px;background:var(--accent-primary);border-radius:50%;cursor:pointer;transition:transform .1s}.layer-opacity input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.layer-opacity .opacity-value{font-size:10px;color:var(--text-muted);min-width:32px;text-align:right;font-family:SF Mono,Monaco,Consolas,monospace}.layer-time-range{padding:6px 10px 8px;border-top:1px solid var(--border-primary)}.layer-time-range-label{font-size:9px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-muted);margin-bottom:2px}.layer-time-range-value{font-size:11px;color:var(--text-secondary)}.layer-always-visible{display:flex;align-items:center;gap:5px;margin-top:4px;font-size:11px;color:var(--text-muted);cursor:pointer}.layer-always-visible input[type=checkbox]{width:13px;height:13px;accent-color:var(--accent-primary);cursor:pointer}.layer-last-updated{font-size:9px;color:var(--text-muted);margin-top:2px;opacity:.7}.layers-empty{padding:16px;text-align:center;font-size:12px;color:#fff6}.low-fps-warning-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.low-fps-warning-dialog{background:#1e1e23fa;border:1px solid rgba(239,68,68,.5);border-radius:12px;padding:24px;max-width:420px;width:90%;box-shadow:0 0 30px #ef444433,0 8px 32px #00000080;animation:warning-appear .2s ease-out}@keyframes warning-appear{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.low-fps-warning-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.1)}.low-fps-warning-header svg{color:#f87171;flex-shrink:0}.low-fps-warning-header h3{font-size:18px;font-weight:600;color:#f87171;margin:0}.low-fps-warning-content{margin-bottom:20px}.low-fps-warning-content p{font-size:14px;color:#fffc;line-height:1.5;margin:0 0 12px}.low-fps-warning-content p:last-child{margin-bottom:0}.low-fps-stats{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 16px;margin-top:12px}.low-fps-stats .stat-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;padding:4px 0}.low-fps-stats .stat-label{color:#fff9}.low-fps-stats .stat-value{font-family:SF Mono,Monaco,Consolas,monospace;color:#ffffffe6}.low-fps-stats .stat-value.warn{color:#fbbf24}.low-fps-stats .stat-value.bad{color:#f87171}.low-fps-warning-actions{display:flex;gap:12px;justify-content:flex-end}.low-fps-btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;font-family:inherit;cursor:pointer;transition:all .15s}.low-fps-btn.primary{background:#ef444433;border:1px solid rgba(239,68,68,.5);color:#f87171}.low-fps-btn.primary:hover{background:#ef44444d;border-color:#ef4444b3}.low-fps-btn.secondary{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#fffc}.low-fps-btn.secondary:hover{background:#ffffff26;border-color:#ffffff4d}.contacts-panel{display:flex;flex-direction:column;height:100%;overflow:hidden}.contacts-panel .vessel-panel.embedded,.contacts-panel .vessel-list{flex:1;min-height:0}.contacts-panel-toolbar{display:flex;align-items:center;justify-content:space-between;padding:4px 8px;border-bottom:1px solid var(--dashboard-border, rgba(255, 255, 255, .08));flex-shrink:0;gap:6px}.contacts-color-controls{display:flex;align-items:center;gap:6px;position:relative}.contacts-color-controls .colormap-dropdown-menu{min-width:220px;left:0;right:auto}.contacts-color-label{font-size:11px;color:var(--text-secondary, rgba(255, 255, 255, .6));white-space:nowrap}.contacts-color-select{padding:2px 4px;background:var(--button-hover, rgba(255, 255, 255, .1));border:1px solid var(--border-secondary, rgba(255, 255, 255, .15));border-radius:4px;color:var(--text-primary, #fafafa);font-size:11px;cursor:pointer}.contacts-color-select:hover{background:var(--bg-hover, rgba(255, 255, 255, .1))}.contacts-speed-range{display:flex;align-items:center;gap:4px;padding:6px 8px;border-top:1px solid var(--border-secondary, rgba(255, 255, 255, .15))}.contacts-speed-input{width:48px;padding:2px 4px;background:var(--button-hover, rgba(255, 255, 255, .1));border:1px solid var(--border-secondary, rgba(255, 255, 255, .15));border-radius:4px;color:var(--text-primary, #fafafa);font-size:11px;text-align:center}.contacts-speed-input:focus{outline:none;border-color:var(--accent-primary, #60a5fa)}.contacts-gear-btn{display:flex;align-items:center;justify-content:center;padding:3px;background:transparent;border:1px solid transparent;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.contacts-gear-btn:hover{color:var(--text-primary);background:var(--button-hover, rgba(255, 255, 255, .1));border-color:var(--border-secondary)}.alert-vessel-detail-overlay{position:fixed;top:48px;right:0;bottom:0;width:380px;max-width:40vw;z-index:900;background:var(--panel-bg, #111118);border-left:1px solid var(--border-primary, rgba(255, 255, 255, .1));box-shadow:-4px 0 16px #0000004d;overflow-y:auto;animation:slideInRight .2s ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.contacts-table-btn{display:flex;align-items:center;gap:4px;padding:3px 8px;background:transparent;border:1px solid var(--dashboard-border, rgba(255, 255, 255, .12));border-radius:4px;color:var(--text-secondary, rgba(255, 255, 255, .7));font-size:11px;cursor:pointer;transition:all .15s ease}.contacts-table-btn:hover{background:var(--transport-bg-hover, rgba(255, 255, 255, .08));color:var(--text-primary, rgba(255, 255, 255, .95))}.contacts-table-btn.active{background:var(--bg-active, rgba(59, 130, 246, .15));border-color:var(--accent-primary, #60a5fa);color:var(--accent-primary, #60a5fa)}.app.screensaver-mode{grid-template-columns:1fr;grid-template-rows:1fr}.app.screensaver-mode .icon-dock,.app.screensaver-mode .app-topbar{display:none!important}.app.screensaver-mode .center-grid{grid-column:1 / -1;grid-row:1 / -1;padding:0}.app.screensaver-mode .sidebar-dock,.app.screensaver-mode .widget-column,.app.screensaver-mode .asset-timeline-container{display:none!important}.app.screensaver-mode .app-main{gap:0}.app.screensaver-mode .map-container{display:block!important;height:100vh!important;max-height:none!important;flex:1!important;border-radius:0}.app.mobile{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;grid-template-columns:1fr;grid-template-rows:1fr}.app.mobile .app-topbar,.app.mobile .icon-dock,.app.mobile .sidebar-dock,.app.mobile .widget-column,.app.mobile .widget-overlay,.app.mobile .center-grid,.app.mobile .asset-timeline-container{display:none!important}.app.mobile .map-container{border-radius:0;min-height:unset}.app.mobile .cesium-container{border-radius:0}.mobile-map-screen{display:flex;flex-direction:column;height:100%;position:relative}.mobile-map-container{flex:1;position:relative;overflow:hidden}.mobile-map-container .cesium-container{width:100%;height:100%}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.topbar-version{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:var(--text-muted, rgba(255, 255, 255, .4));padding:2px 6px;border-radius:4px;cursor:pointer;-webkit-user-select:none;user-select:none;background:transparent;border:none;transition:color .1s ease,background .1s ease}.topbar-version:hover{color:var(--text-secondary, rgba(255, 255, 255, .7));background:var(--button-hover, rgba(255, 255, 255, .1))}
