.cesium-svgPath-svg{width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.cesium-button{color:#edffff;fill:#edffff;cursor:pointer;-webkit-user-select:none;user-select:none;background:#303336;border:1px solid #444;border-radius:4px;margin:2px 3px;padding:5px 12px;display:inline-block;position:relative;overflow:hidden}.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{color:#646464;fill:#646464;box-shadow:none;cursor:default;background:#303336;border-color:#444}.cesium-button option{color:#eee;background-color:#000}.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;vertical-align:middle;z-index:0;border-radius:14%;width:32px;height:32px;padding:0}.cesium-performanceDisplay-defaultContainer{text-align:right;position:absolute;top:50px;right:10px}.cesium-performanceDisplay{background-color:#282828b3;border:1px solid #444;border-radius:5px;padding:7px;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;z-index:-100;display:block;position:absolute}.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;text-anchor:middle;font-family:sans-serif;font-size:15px}.cesium-animation-blank{fill:#000;fill-opacity:.01;stroke:none}.cesium-animation-rectButton{cursor:pointer;-webkit-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.2px}.cesium-animation-rectButton:hover .cesium-animation-buttonMain{stroke:#aef}.cesium-animation-rectButton:active .cesium-animation-buttonMain{fill:#abd6ff}.cesium-animation-buttonDisabled{-webkit-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{fill:#2e2;display:block}.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.2px}.cesium-animation-shuttleRingSwoosh line{stroke:#8ac;stroke-width:3px;stroke-opacity:.2;stroke-linecap:round}.cesium-animation-knobOuter{cursor:pointer;stroke:#444;stroke-width:1.2px}.cesium-animation-knobInner{cursor:pointer}.cesium-baseLayerPicker-selected{border:none;width:100%;height:100%;position:absolute;top:0;left:0}.cesium-baseLayerPicker-dropDown{box-sizing:content-box;-webkit-user-select:none;user-select:none;visibility:hidden;opacity:0;background-color:#262626bf;border:1px solid #444;border-radius:10px;width:320px;max-height:500px;margin-top:5px;padding:6px;transition:visibility 0s .2s,opacity .2s ease-in,transform .2s ease-in;display:block;position:absolute;top:auto;right:0;overflow:auto;transform:translateY(-20%)}.cesium-baseLayerPicker-dropDown-visible{visibility:visible;opacity:1;transition:opacity .2s ease-out,transform .2s ease-out;transform:translate(0)}.cesium-baseLayerPicker-sectionTitle{text-align:left;color:#edffff;margin-bottom:4px;font-family:sans-serif;font-size:16pt;display:block}.cesium-baseLayerPicker-choices{margin-bottom:5px}.cesium-baseLayerPicker-categoryTitle{color:#edffff;font-size:11pt}.cesium-baseLayerPicker-choices{border:1px solid #888;border-radius:5px;padding:5px 0;display:block}.cesium-baseLayerPicker-item{vertical-align:top;text-align:center;cursor:pointer;width:64px;margin:2px 5px;display:inline-block}.cesium-baseLayerPicker-itemLabel{text-align:center;vertical-align:middle;color:#edffff;cursor:pointer;word-wrap:break-word;font-family:sans-serif;font-size:8pt;display:block}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel,.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel{text-decoration:underline}.cesium-baseLayerPicker-itemIcon{width:inherit;color:#edffff;cursor:pointer;box-sizing:border-box;background-size:100% 100%;border:1px solid #444;border-radius:9px;height:auto;margin:0;padding:0;display:inline-block;position:relative}.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:4px double #bdecf8}.cesium-widget{width:100%;height:100%;font-family:sans-serif;font-size:16px;display:block;position:relative;top:0;left:0;overflow:hidden}.cesium-widget,.cesium-widget canvas{touch-action:none;width:100%;height:100%}.cesium-widget-credits{color:#fff;text-shadow:0 0 2px #000;padding-right:5px;font-size:10px;display:block;position:absolute;bottom:0;left:0}.cesium-widget-errorPanel{text-align:center;z-index:99999;background:#000000b3;position:absolute;inset:0}.cesium-widget-errorPanel:before{vertical-align:middle;content:"";height:100%;display:inline-block}.cesium-widget-errorPanel-content{text-align:left;vertical-align:middle;color:#510c00;background-color:#f0d9d5;border:1px solid #510c00;border-radius:7px;width:75%;max-width:500px;font-size:14px;display:inline-block}.cesium-widget-errorPanel-content.expanded{max-width:75%}.cesium-widget-errorPanel-header{background:#d69d93;border-bottom:2px solid #510c00;border-radius:3px 3px 0 0;padding:15px;font-family:Open Sans,Verdana,Geneva,sans-serif;font-size:18px}.cesium-widget-errorPanel-scroll{white-space:pre-wrap;margin:10px 0 20px;padding:0 15px;font-family:Open Sans,Verdana,Geneva,sans-serif;overflow:auto}.cesium-widget-errorPanel-buttonPanel{text-align:right;margin:10px 0 20px;padding:0 15px}.cesium-widget-errorPanel-buttonPanel button{color:#202020;background:#d69d93;border-color:#510c00;margin:0}.cesium-widget-errorPanel-buttonPanel button:focus,.cesium-widget-errorPanel-buttonPanel button:hover{color:#510c00;background:#f0d9d5;border-color:#510c00}.cesium-widget-errorPanel-buttonPanel button:active{color:#510c00;background:#b17b72;border-color:#510c00}.cesium-widget-errorPanel-more-details{cursor:pointer;text-decoration:underline}.cesium-widget-errorPanel-more-details:hover{color:#2b0700}.cesium-cesiumInspector{color:#edffff;-webkit-user-select:none;user-select:none;background:#303336cc;border:1px solid #444;border-radius:5px;padding:4px 12px;transition:width .25s ease-in-out;display:inline-block;position:relative;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;overflow:hidden;padding:0!important}.cesium-cesiumInspector-dropDown{width:185px;margin:5px 0;font-family:sans-serif;font-size:10pt}.cesium-cesiumInspector-frustumStatistics{background-color:#505050bf;padding:5px}.cesium-cesiumInspector-pickButton{color:#edffff;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#0000004d;border:1px solid #444;border-radius:5px;margin:0 auto;padding:3px 7px}.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{cursor:pointer;margin:0;font-size:10pt;font-weight:700}.cesium-cesiumInspector-pickSection{border:1px solid #aaa;border-radius:5px;margin-bottom:5px;padding:3px}.cesium-cesiumInspector-sectionContent{margin-bottom:10px;transition:max-height .25s}.cesium-cesiumInspector-tileText{border-bottom:1px solid #aaa;padding-bottom:10px}.cesium-cesiumInspector-relativeText{padding-top:10px}.cesium-cesiumInspector-sectionHeader:before{content:"-";width:1ch;margin-right:5px;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;color:#edffff;cursor:auto;background-color:#222;border:1px solid #444;border-radius:3px;outline:none;width:100px;margin-left:10px;padding:1px}.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cesium-cesiumInspector-slider input[type=range]{vertical-align:middle;margin-left:5px}.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor{display:none}.cesium-cesiumInspector-styleEditor{background:#303336cc;border:1px solid #444;border-radius:5px;padding:10px}.cesium-cesiumInspector-styleEditor textarea{color:#edffff;white-space:pre;overflow-wrap:normal;background:0 0;border:none;width:100%;height:300px;padding:0;overflow-x:auto}.cesium-3DTilesInspector{pointer-events:all;width:300px}.cesium-3DTilesInspector-statistics{font-size:11px}.cesium-3DTilesInspector-disabledElementsInfo{color:#eed202;margin:5px 0 0;padding:0 0 0 20px}.cesium-3DTilesInspector div,.cesium-3DTilesInspector input[type=range]{box-sizing:border-box;width:100%}.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 #fff}input.cesium-cesiumInspector-url{white-space:nowrap;color:#fff;background-color:#0000;border:none;outline:none;width:100%;height:1em;overflow:scroll hidden}.cesium-cesiumInspector .field-group{display:table}.cesium-cesiumInspector .field-group>label{font-weight:700;display:table-cell}.cesium-cesiumInspector .field-group>.field{width:100%;display:table-cell}.cesium-VoxelInspector{pointer-events:all;width:300px}.cesium-VoxelInspector div,.cesium-VoxelInspector input[type=range]{box-sizing:border-box;width:100%}.cesium-VoxelInspector .cesium-cesiumInspector-section{margin-top:3px}.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader+.cesium-cesiumInspector-show{border-top:1px solid #fff}.cesium-button.cesium-fullscreenButton,.cesium-button.cesium-vrButton{border-radius:0;width:100%;height:100%;margin:0;display:block}.cesium-viewer-geocoderContainer .cesium-geocoder-input{color:#fff;vertical-align:middle;box-sizing:border-box;-webkit-appearance:none;background-color:#282828b3;border:1px solid #444;border-radius:0;width:0;height:32px;margin:0;padding:0 32px 0 0;transition:width .25s ease-in-out,background-color .2s ease-in-out;display:inline-block}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input{border-color:#aef;box-shadow:0 0 8px #fff}.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus{box-shadow:none;background-color:#0f0f0fe6;border-color:#ea4;outline:none}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input,.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus,.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide{width:250px;padding-left:4px}.cesium-viewer-geocoderContainer .search-results{color:#eee;opacity:.8;background-color:#000;width:100%;position:absolute;overflow-y:auto}.cesium-viewer-geocoderContainer .search-results ul{margin:0;padding:0;list-style-type:none}.cesium-viewer-geocoderContainer .search-results ul li{padding:3px 10px;font-size:14px}.cesium-viewer-geocoderContainer .search-results ul li:hover{cursor:pointer}.cesium-viewer-geocoderContainer .search-results ul li.active{background:#48b}.cesium-geocoder-searchButton{cursor:pointer;vertical-align:middle;fill:#edffff;background-color:#303336;width:32px;height:30px;display:inline-block;position:absolute;top:1px;right:1px}.cesium-geocoder-searchButton:hover{background-color:#48b}.cesium-infoBox{color:#edffff;visibility:hidden;opacity:0;background:#262626f2;border:1px solid #444;border-right:none;border-top-left-radius:7px;border-bottom-left-radius:7px;width:40%;max-width:480px;transition:visibility 0s .2s,opacity .2s ease-in,transform .2s ease-in;display:block;position:absolute;top:50px;right:0;transform:translate(100%);box-shadow:0 0 10px 1px #000}.cesium-infoBox-visible{visibility:visible;opacity:1;transition:opacity .2s ease-out,transform .2s ease-out;transform:translate(0)}.cesium-infoBox-title{text-align:center;text-overflow:ellipsis;white-space:nowrap;box-sizing:content-box;background:#545454;border-top-left-radius:7px;height:20px;padding:5px 30px 5px 25px;display:block;overflow:hidden}.cesium-infoBox-bodyless .cesium-infoBox-title{border-bottom-left-radius:7px}button.cesium-infoBox-camera{background:0 0;border-color:#0000;border-radius:3px;width:22px;height:22px;margin:0;padding:0 5px;display:block;position:absolute;top:4px;left:4px}button.cesium-infoBox-close{color:#edffff;background:0 0;border:none;border-radius:2px;height:20px;margin:0;padding:0 5px;font-size:16px;font-weight:700;display:block;position:absolute;top:5px;right:5px}button.cesium-infoBox-close:focus{background:#ee880070;outline:none}button.cesium-infoBox-close:hover{color:#000;background:#888}button.cesium-infoBox-close:active{color:#000;background:#a00}.cesium-infoBox-bodyless .cesium-infoBox-iframe{display:none}.cesium-infoBox-iframe{border:none;width:calc(100% - 2px)}span.cesium-sceneModePicker-wrapper{margin:0 3px;display:inline-block;position:relative}.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;margin:3px 0;padding: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{margin:0 3px;display:inline-block;position:relative}.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;margin:3px 0;padding: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{color:#000;background-color:#ff0;padding:10px;position:relative}.cesium-performance-watchdog-message{margin-right:30px}.cesium-performance-watchdog-message-dismiss{margin:0 10px 0 0;position:absolute;right:0}.cesium-navigationHelpButton-wrapper{display:inline-block;position:relative}.cesium-navigation-help{visibility:hidden;transform-origin:234px -10px;border-radius:10px;width:250px;transition:visibility 0s .25s,transform .25s ease-in;position:absolute;top:38px;right:2px;transform:scale(.01)}.cesium-navigation-help-visible{visibility:visible;transition:transform .25s ease-out;transform:scale(1)}.cesium-navigation-help-instructions{background-color:#262626bf;border:1px solid #444;border-radius:0 0 10px 10px;padding-bottom:5px}.cesium-click-navigation-help{display:none}.cesium-touch-navigation-help{padding-top:5px;display:none}.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;cursor:pointer;background-color:#0000;border-top:1px solid #444;border-bottom:none;border-right:1px solid #444;width:50%;margin:0}.cesium-navigation-button-icon{vertical-align:middle;padding:5px 1px}.cesium-navigation-button:focus{outline:none}.cesium-navigation-button-left{border-left:1px solid #444;border-radius:10px 0 0}.cesium-navigation-button-right{border-left:none;border-radius:0 10px 0 0}.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{pointer-events:none;visibility:hidden;opacity:0;width:160px;height:160px;transition:visibility 0s .2s,opacity .2s ease-in;position:absolute}.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{-webkit-user-select:none;user-select:none;border:1px solid #888;position:relative;bottom:0;left:0;overflow:hidden}.cesium-timeline-trackContainer{border-top:1px solid #888;width:100%;position:relative;top:0;left:0;overflow:auto}.cesium-timeline-tracks{width:100%;position:absolute;top:0;left:0}.cesium-timeline-needle{background:red;width:1px;position:absolute;top:1.7em;bottom:0;left:0}.cesium-timeline-bar{cursor:pointer;background:linear-gradient(#747577cc 0%,#3a4452cc 11%,#2e3238cc 46%,#353535cc 81% 100%);width:100%;height:1.7em;position:relative;top:0;left:0;overflow:hidden}.cesium-timeline-ruler{visibility:hidden;white-space:nowrap;z-index:-200;font-size:80%}.cesium-timeline-highlight{background:#08f;position:absolute;bottom:0;left:0}.cesium-timeline-ticLabel{white-space:nowrap;color:#eee;font-size:80%;position:absolute;top:0;left:0}.cesium-timeline-ticMain{background:#eee;width:1px;height:50%;position:absolute;bottom:0;left:0}.cesium-timeline-ticSub{background:#aaa;width:1px;height:33%;position:absolute;bottom:0;left:0}.cesium-timeline-ticTiny{background:#888;width:1px;height:25%;position:absolute;bottom:0;left:0}.cesium-timeline-icon16{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;width:16px;height:16px;display:block;position:absolute}.cesium-viewer{width:100%;height:100%;font-family:sans-serif;font-size:16px;display:block;position:relative;top:0;left:0;overflow:hidden}.cesium-viewer-cesiumWidgetContainer{width:100%;height:100%}.cesium-viewer-bottom{padding-right:5px;display:block;position:absolute;bottom:0;left:0}.cesium-viewer .cesium-widget-credits{color:#fff;text-shadow:0 0 2px #000;padding-right:0;font-size:10px;display:inline;position:static;bottom:auto;left:auto}.cesium-viewer-timelineContainer{height:27px;margin:0;padding:0;font-size:14px;position:absolute;bottom:0;left:169px;right:29px;overflow:hidden}.cesium-viewer-animationContainer{width:169px;height:112px;padding:0;position:absolute;bottom:0;left:0}.cesium-viewer-fullscreenContainer,.cesium-viewer-vrContainer{width:29px;height:29px;padding:0;position:absolute;bottom:0;right:0;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{margin:0 3px;display:inline-block;position:relative}.cesium-viewer-cesium3DTilesInspectorContainer,.cesium-viewer-voxelInspectorContainer{box-sizing:border-box;max-height:calc(100% - 120px);display:block;position:absolute;top:50px;right:10px;overflow:hidden auto}.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{flex-direction:row;align-content:center;display:flex}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{color:#1f2937;background:#f4f6f8;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}.login-shell{background:#001a33;place-items:center;width:100%;height:100%;padding:24px;display:grid;position:relative;overflow:hidden}.login-shell:before{content:"";background:linear-gradient(90deg,#001a33d6,#00336657),linear-gradient(#001a332e,#001a33a3),url(/assets/login-port-operations-bg.png) 50%/cover no-repeat;position:absolute;inset:0;transform:scale(1.035)}.login-shell:after{content:"";pointer-events:none;background:radial-gradient(circle at 76% 36%,#008c952e,#0000 34%),linear-gradient(90deg,#001a33cc 0%,#0000 58%);position:absolute;inset:0}.login-panel{z-index:1;color:#1f2937;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffeb;border:1px solid #ffffff8a;border-radius:8px;gap:22px;width:min(420px,100%);padding:28px;display:grid;position:relative;box-shadow:0 28px 70px #00000075}.login-brand{gap:4px;display:grid}.login-brand span{color:#008c95;text-transform:uppercase;font-size:12px;font-weight:900}.login-brand h1{color:#036;margin:0;font-size:30px;line-height:1.05}.login-brand p{color:#6b7280;margin:0;font-size:13px;font-weight:600}.login-form{gap:14px;display:grid}.login-form label{gap:7px;display:grid}.login-form label span{color:#374151;text-transform:uppercase;font-size:11px;font-weight:900}.login-form input{color:#111827;width:100%;min-height:44px;font:inherit;background:#fff;border:1px solid #005b9642;border-radius:6px;outline:none;padding:10px 12px}.login-form input:focus{border-color:#008c95;box-shadow:0 0 0 3px #008c9524}.login-form button,.auth-user-control button{color:#fff;min-height:38px;font:inherit;text-transform:uppercase;cursor:pointer;background:#005b96;border:1px solid #008c95;border-radius:6px;padding:9px 14px;font-size:12px;font-weight:900}.login-form button:hover,.auth-user-control button:hover{background:#008c95}.login-form button:disabled,.login-form input:disabled{cursor:not-allowed;opacity:.62}.login-message{color:#b91c1c;min-height:18px;margin:0;font-size:12px;font-weight:700}.auth-loading-panel{gap:18px}.auth-loading-indicator{background:#005b962e;border-radius:999px;width:100%;height:4px;overflow:hidden}.auth-loading-indicator:before{content:"";border-radius:inherit;background:#008c95;width:42%;height:100%;animation:1.1s ease-in-out infinite authLoadingSweep;display:block}@keyframes authLoadingSweep{0%{transform:translate(-110%)}to{transform:translate(250%)}}.auth-user-control{z-index:200001;color:#fff;background:#003366f0;border:1px solid #008c9594;border-radius:8px;align-items:center;gap:8px;padding:6px;display:flex;position:fixed;top:18px;right:18px;box-shadow:0 12px 30px #00000047}.auth-user-control span{text-overflow:ellipsis;white-space:nowrap;max-width:170px;padding:0 6px;font-size:12px;font-weight:900;overflow:hidden}.app-shell{background:#f4f6f8;grid-template-columns:minmax(320px,340px) minmax(520px,1fr) minmax(300px,320px);gap:12px;width:100%;height:100%;padding:12px;display:grid;position:relative}.cesium-stage{pointer-events:auto;z-index:1;border-radius:6px;position:absolute;inset:0;overflow:hidden}.center-column{background:#fff;border:1px solid #6b72803d;border-radius:8px;flex-direction:column;grid-column:2;gap:8px;min-height:0;padding:8px;display:flex;overflow:hidden}.module-tabs{z-index:2;background:#036;border:1px solid #005b96;border-radius:6px;flex-shrink:0;gap:4px;padding:6px;display:flex}.tab-button{color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;background:0 0;border:1px solid #0000;border-radius:4px;flex:1;padding:10px 12px;font-size:11px;font-weight:600;transition:all .2s}.tab-button:hover{color:#fff;background:#008c95}.tab-button.active{color:#fff;background:#005b96;border-color:#008c95}.map-section{background:#f4f6f8;border:1px solid #005b96;border-radius:6px;flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.map-section.maximized{flex:100%}.hidden-map-section{display:none}.map-header{background:#036;border-bottom:1px solid #005b96;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.map-header h3{color:#fff;text-transform:uppercase;letter-spacing:.5px;margin:0;font-size:13px;font-weight:700}.popup-button{color:#fff;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px 8px;font-size:14px;transition:all .2s;display:flex}.popup-button:hover{color:#008c95;transform:scale(1.1)}.popout-icon-button{color:#fff;background:#036;border-radius:4px;flex:0 0 24px;width:24px;height:24px;min-height:24px;padding:0;position:relative}.popout-icon-button:hover{color:#fff;background:#008c95;transform:none}.popout-icon-button:before{content:"";border-top:2px solid;border-right:2px solid;width:9px;height:9px;transform:translate(-1px,1px)}.popout-icon-button:after{content:"";transform-origin:50%;background:currentColor;width:11px;height:2px;position:absolute;transform:rotate(-45deg)translate(-1px,1px)}.map-display{pointer-events:auto;flex-direction:column;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.port-twin-section{flex:100%}.port-twin-section .map-display{justify-content:stretch;align-items:stretch}.port-twin-view{background:#b9dce6;width:100%;height:100%;position:relative;overflow:hidden}.port-twin-scenario-guide{z-index:6;color:#1f2937;background:#fffffff0;border:1px solid #d32f2f47;border-radius:6px;gap:8px;width:min(360px,100% - 28px);padding:10px;display:grid;position:absolute;top:72px;left:14px;box-shadow:0 12px 32px #0000003d}.port-twin-scenario-guide.resolved{border-color:#16a34a52}.scenario-guide-head{border-bottom:1px solid #6b72802e;justify-content:space-between;align-items:center;gap:8px;padding-bottom:7px;display:flex}.scenario-guide-head span{color:#6b7280;text-transform:uppercase;font-size:9px;font-weight:900}.scenario-guide-head strong{color:#036;font-size:11px;font-weight:900}.scenario-guide-step{grid-template-columns:26px 1fr;align-items:start;gap:8px;display:grid}.scenario-guide-step b{color:#fff;background:#d32f2f;border:2px solid #fff;border-radius:999px;place-items:center;width:24px;height:24px;font-size:12px;line-height:1;display:grid;box-shadow:0 2px 7px #00000038}.scenario-guide-step.affected b{background:#f59e0b}.scenario-guide-step.fix b{background:#16a34a}.scenario-guide-step div{gap:2px;min-width:0;display:grid}.scenario-guide-step span{color:#6b7280;text-transform:uppercase;font-size:8px;font-weight:900}.scenario-guide-step strong{color:#111827;overflow-wrap:anywhere;font-size:11px;font-weight:900}.scenario-guide-step small{color:#4b5563;font-size:9px;font-weight:700;line-height:1.25}.scenario-guide-technical{border-top:1px solid #6b72802e;gap:5px;padding-top:7px;display:grid}.scenario-guide-technical div{gap:2px;display:grid}.scenario-guide-technical span{color:#005b96;text-transform:uppercase;font-size:8px;font-weight:900}.scenario-guide-technical strong{color:#1f2937;font-size:9px;font-weight:800;line-height:1.28}.port-twin-canvas{position:absolute;inset:0}.port-twin-label-overlay{z-index:200000;pointer-events:none;position:absolute;inset:0}.port-twin-dom-label{color:#fff;text-align:center;text-shadow:-1px -1px #036,1px -1px #036,-1px 1px #036,1px 1px #036;white-space:pre-line;transform-origin:50% 100%;will-change:left, top;background:#111827c7;border-radius:2px;min-width:max-content;padding:4px 9px;font:700 15px/1.18 sans-serif;position:absolute;transform:translate(-50%,-100%)}.port-twin-dom-label.road{background:#111827d1}.port-twin-dom-label.parking{background:#111827b8}.parking-status-popup{z-index:250000;color:#e5edf4;background:#003366f0;border:1px solid #008c95;border-radius:8px;width:min(310px,100% - 32px);padding:16px;position:absolute;bottom:48px;right:16px;box-shadow:0 14px 34px #00000057}.parking-status-popup h3{color:#fff;margin:3px 28px 14px 0;font-size:16px}.parking-status-popup.truck-focus{width:min(360px,100% - 32px)}.parking-status-kicker{color:#73d8de;letter-spacing:.8px;text-transform:uppercase;font-size:9px;font-weight:800}.parking-status-close{color:#fff;cursor:pointer;background:0 0;border:0;font-size:22px;position:absolute;top:8px;right:9px}.parking-status-grid{grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.parking-status-grid div{background:#ffffff17;border:1px solid #ffffff1f;border-radius:5px;padding:9px 7px}.parking-status-grid span,.parking-status-grid strong{display:block}.parking-status-grid span{color:#b8c8d8;min-height:26px;font-size:9px;line-height:1.25}.parking-status-grid strong{color:#fff;margin-top:4px;font-size:17px}.parking-status-meter{background:#ffffff26;border-radius:999px;height:6px;margin:13px 0 9px;overflow:hidden}.parking-status-meter span{border-radius:inherit;background:#f59e0b;height:100%;display:block}.parking-status-popup small{color:#b8c8d8;font-size:9px}.parking-truck-focus-summary{grid-template-columns:1.25fr .65fr 1fr;gap:7px;margin-bottom:10px;display:grid}.parking-truck-focus-summary div,.parking-truck-focus-times div{background:#ffffff17;border:1px solid #ffffff1f;border-radius:5px;min-width:0;padding:8px 7px}.parking-truck-focus-summary span,.parking-truck-focus-summary strong,.parking-truck-focus-times span,.parking-truck-focus-times strong{display:block}.parking-truck-focus-summary span,.parking-truck-focus-times span{color:#b8c8d8;text-transform:uppercase;font-size:8px;font-weight:800}.parking-truck-focus-summary strong,.parking-truck-focus-times strong{color:#fff;overflow-wrap:anywhere;margin-top:4px;font-size:10px}.parking-truck-focus-times{gap:7px;margin-bottom:12px;display:grid}.map-popup-history{max-height:170px;margin-top:4px;overflow-y:auto}.map-popup-history div{border-left-color:#73d8de}.map-popup-history div:before{background:#73d8de}.map-popup-history span{color:#b8c8d8}.map-popup-history strong{color:#fff}.parking-status-analysis-button,.truck-message-button{color:#fff;cursor:pointer;text-transform:uppercase;background:#008c95;border:1px solid #22b8c1;border-radius:4px;width:100%;margin-top:12px;padding:8px 10px;font-size:10px;font-weight:700}.parking-truck-list{gap:7px;max-height:310px;display:grid;overflow-y:auto}.parking-truck-list button{color:#6b7280;text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #d7dee7;border-radius:5px;gap:2px;padding:9px;display:grid}.parking-truck-list button.selected{background:#e6f5f6;border-color:#008c95}.parking-truck-list button.overdue{background:#fff3f1;border-color:#d32f2f}.parking-truck-list button.overdue span{color:#b42318;font-weight:700}.parking-truck-list strong{color:#036;font-size:11px}.parking-truck-list span,.parking-truck-list small{font-size:9px}.truck-history-list{gap:0;display:grid}.truck-history-list div{border-left:2px solid #b8dde0;gap:3px;padding:0 0 14px 17px;display:grid;position:relative}.truck-history-list div:before{content:"";background:#008c95;border-radius:50%;width:8px;height:8px;position:absolute;top:2px;left:-5px}.truck-history-list span{color:#6b7280;font-size:9px}.truck-history-list strong{color:#1f2937;font-size:10px}.truck-message-button:disabled{cursor:not-allowed;opacity:.45}.port-overview-grid{grid-template-columns:repeat(2,1fr);gap:7px;display:grid}.port-overview-grid div{background:#f4f7fa;border:1px solid #dde5ec;border-radius:5px;padding:9px}.port-overview-grid span,.port-overview-grid strong{display:block}.port-overview-grid span{color:#6b7280;font-size:9px}.port-overview-grid strong{color:#036;margin-top:4px;font-size:14px}.operation-analysis-tabs{grid-template-columns:1fr 1fr;gap:7px;display:grid}.operation-analysis-tabs button,.operation-focus-row{cursor:pointer}.operation-analysis-tabs button{color:#fff;text-align:left;background:#005b96;border:1px solid #008c95;border-radius:6px;gap:5px;padding:10px;display:grid}.operation-analysis-tabs strong{font-size:10px}.operation-analysis-tabs span{color:#c9e4ec;font-size:8px;line-height:1.35}.operation-focus-row{color:#6b7280;background:0 0;border:0;border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;width:100%;padding:9px 0;font-size:10px;display:flex}.operation-focus-row strong{color:#005b96;font-size:12px}.operation-analysis-home{color:#fff;cursor:pointer;text-align:left;background:#005b96;border:1px solid #008c95;border-radius:5px;width:100%;padding:9px 11px;font-size:10px;font-weight:700}.operation-analysis-home:before{content:"<";margin-right:7px}.port-twin-canvas canvas{width:100%;height:100%;display:block}.port-twin-error-panel{z-index:250000;color:#1f2937;background:#fffffff0;border:1px solid #d32f2f66;border-radius:6px;gap:6px;width:min(420px,100% - 32px);padding:12px 14px;display:grid;position:absolute;top:70px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #1f29372e}.port-twin-error-panel strong{color:#d32f2f;text-transform:uppercase;font-size:12px}.port-twin-error-panel span{color:#4b5563;font-size:11px;font-weight:700}.port-twin-layer-switcher{z-index:220000;background:#ffffffe0;border:1px solid #0363;border-radius:6px;flex-wrap:nowrap;align-items:center;gap:8px;width:min(320px,100% - 28px);padding:6px 7px;display:flex;position:absolute;top:14px;right:14px;box-shadow:0 8px 24px #1f29371f}.port-twin-layer-switcher label{color:#6b7280;text-transform:uppercase;flex:none;font-size:9px;font-weight:800}.port-twin-reset-button,.port-layer-controls button{color:#fff;text-transform:uppercase;cursor:pointer;background:#036;border:1px solid #008c95;border-radius:4px;flex:none;height:28px;padding:0 10px;font-size:9px;font-weight:800}.port-twin-reset-button:hover,.port-layer-controls button:hover{background:#008c95}.layer-dropdown{color:#fff;text-transform:uppercase;flex:none;font-size:10px;font-weight:800;position:relative}.layer-dropdown summary{white-space:nowrap;cursor:pointer;background:#005b96;border:1px solid #008c95;border-radius:4px;align-items:center;gap:6px;height:28px;padding:0 9px;list-style:none;display:flex}.layer-dropdown summary::-webkit-details-marker{display:none}.layer-dropdown summary:after{content:"▾";color:#fff;font-size:10px}.layer-dropdown[open] summary:after{transform:rotate(180deg)}.layer-dropdown summary small{color:#036;text-align:center;background:#fff;border-radius:8px;min-width:24px;padding:2px 4px}.layer-dropdown-menu{z-index:20;background:#003366f5;border:1px solid #008c95;border-radius:5px;gap:2px;min-width:190px;padding:6px;display:grid;position:absolute;top:calc(100% + 5px);right:0;box-shadow:0 10px 24px #00000052}.port-twin-layer-switcher .layer-dropdown-menu label,.port-layer-controls .layer-dropdown-menu label{color:#fff;text-transform:uppercase;cursor:pointer;border-radius:3px;align-items:center;gap:7px;min-height:28px;padding:4px 7px;font-size:10px;font-weight:800;display:flex}.port-twin-layer-switcher .layer-dropdown-menu label:hover,.port-layer-controls .layer-dropdown-menu label:hover{background:#008c958c}.layer-dropdown-menu input{accent-color:#00a9b5;flex:none}.base-layer-dropdown .layer-dropdown-menu{min-width:170px;left:0;right:auto}.base-layer-dropdown .layer-dropdown-menu button{color:#fff;min-height:30px;font:inherit;text-align:left;text-transform:uppercase;cursor:pointer;background:0 0;border:0;border-radius:3px;justify-content:space-between;align-items:center;padding:5px 8px;font-size:10px;font-weight:800;display:flex}.base-layer-dropdown .layer-dropdown-menu button:hover,.base-layer-dropdown .layer-dropdown-menu button.active{background:#008c95}.port-twin-overlay{z-index:200000;pointer-events:none;grid-template-columns:repeat(4,minmax(110px,1fr));gap:6px;display:grid;position:absolute;inset:14px 362px auto 14px}@media (width<=1120px){.port-twin-overlay{grid-template-columns:repeat(2,minmax(110px,1fr));top:58px;right:14px}}.port-twin-panel{color:#1f2937;background:#ffffffc2;border:1px solid #0033662e;border-radius:6px;padding:7px 9px;box-shadow:0 8px 24px #1f29371f}.port-twin-panel h4{color:#6b7280;text-transform:uppercase;margin:0 0 4px;font-size:10px;font-weight:800}.port-twin-panel strong{color:#036;font-size:16px;line-height:1;display:block}.port-twin-panel span{color:#6b7280;font-size:10px;font-weight:700}.port-twin-panel.seaside{border-color:#005b9673}.port-twin-panel.yardside{border-color:#008c9573}.port-twin-panel.landside{border-color:#2e7d3273}.port-twin-panel.integrated{border-color:#f59e0b8c}.port-twin-problem-board{z-index:200000;pointer-events:none;gap:7px;width:min(430px,100% - 32px);display:none;position:absolute;bottom:46px;right:16px}.port-twin-problem-board div{background:#ffffffd1;border:1px solid #0033662e;border-radius:5px;padding:8px 10px}.port-twin-problem-board strong{color:#036;text-transform:uppercase;font-size:10px;display:block}.port-twin-problem-board span{color:#6b7280;margin-top:3px;font-size:10px;font-weight:700;display:block}.port-twin-resource-strip{z-index:200000;pointer-events:none;flex-wrap:wrap;gap:8px;display:flex;position:absolute;bottom:12px;left:16px;right:16px}.port-twin-resource-strip span{color:#fff;text-transform:uppercase;background:#036;border:1px solid #008c95;border-radius:4px;padding:5px 8px;font-size:9px;font-weight:800}.overall-map-section,.selected-map-section{pointer-events:auto;flex:1;position:relative}.overall-map-section .map-display{pointer-events:auto;overflow:hidden}.popout-shell{background:#f4f6f8;width:100%;height:100%}.popout-map-window{width:100%;height:100%;position:relative}.popout-map-window .map-display{width:100%;height:100%}.popout-map-window .cesium-stage{border-radius:0}.popout-panel{flex-direction:column;gap:12px;padding:16px;display:flex;overflow:auto}.selected-module-info{justify-content:center;align-items:center;width:100%;height:100%;padding:20px;display:flex}.info-card{background:#fff;border:1px solid #005b96;border-radius:6px;width:100%;max-width:100%;padding:18px;box-shadow:0 14px 32px #1f293724}.info-card h4{color:#1f2937;margin:0 0 12px;font-size:16px;font-weight:700}.info-row{border-bottom:1px solid #94a3b81a;justify-content:space-between;gap:12px;padding:8px 0;font-size:13px;line-height:1.35;display:flex}.info-row:last-child{border-bottom:none}.info-row .label{color:#6b7280;flex:none;font-weight:700}.info-row .value{color:#005b96;overflow-wrap:anywhere;text-align:right;min-width:0;font-weight:800}.no-selection{color:#6b7280;text-align:center;justify-content:center;align-items:center;min-height:200px;display:flex}.no-selection p{margin:0;font-size:13px}.selected-vessel-focus{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#0d2d32e0,#07121cf5),repeating-linear-gradient(0deg,#008c9533 0 1px,#0000 1px 32px),repeating-linear-gradient(90deg,#008c952e 0 1px,#0000 1px 32px),repeating-linear-gradient(0deg,#0000 0 127px,#7dd3fc42 127px 129px),repeating-linear-gradient(90deg,#0000 0 127px,#7dd3fc3d 127px 129px);width:100%;height:100%;position:relative;overflow:hidden}.selected-vessel-focus.is-panning{cursor:grabbing}.selected-vessel-focus.is-rotating{cursor:crosshair}.focus-map-viewport{transform-origin:50%;will-change:transform;transition:transform .42s;position:absolute;inset:0}.focus-map-controls{z-index:4;background:#036;border:1px solid #008c95;border-radius:4px;gap:4px;padding:4px;display:flex;position:absolute;top:10px;right:10px}.dock-focus-tabs{z-index:4;background:#036;border:1px solid #008c95;border-radius:4px;gap:5px;padding:4px;display:flex;position:absolute;top:10px;left:10px}.dock-focus-tabs button{color:#fff;height:28px;font:inherit;text-transform:uppercase;cursor:pointer;background:#005b96;border:1px solid #0000;border-radius:3px;padding:0 9px;font-size:10px;font-weight:800}.dock-focus-tabs button.active,.dock-focus-tabs button:hover{color:#fff;background:#008c95}.focus-layer-controls{z-index:6;background:#036;border:1px solid #008c95;border-radius:4px;flex-wrap:wrap;gap:8px;padding:7px 9px;display:flex;position:absolute;bottom:10px;left:10px;box-shadow:0 8px 20px #00000047}.focus-layer-controls label{color:#fff;text-transform:uppercase;align-items:center;gap:4px;font-size:10px;font-weight:800;display:flex}.focus-layer-controls input{accent-color:#005b96}.status-filter-control{align-items:center;gap:5px;display:flex}.status-filter-control span{color:#fff;text-transform:uppercase;font-size:10px;font-weight:800}.status-filter-control select{color:#fff;max-width:150px;height:24px;font:inherit;background:#005b96;border:1px solid #6b72803d;border-radius:3px;font-size:10px;font-weight:800}.focus-map-controls button{color:#fff;min-width:28px;height:28px;font:inherit;cursor:pointer;background:#005b96;border:1px solid #94a3b847;border-radius:3px;padding:0 8px;font-size:11px;font-weight:800}.focus-map-controls button:hover{color:#fff;background:#008c95}.focus-map{width:100%;height:100%;display:block;position:absolute;inset:0}.focus-map-base{fill:#08131d70}.focus-map-tile{opacity:.78;filter:saturate(.9)brightness(.94)}.focus-area{fill:#0000;stroke:#0000;stroke-width:0;stroke-linejoin:round}.focus-dock-layer{stroke-width:2.5px;stroke-linejoin:round;opacity:1;cursor:pointer;filter:drop-shadow(0 1px 2px #000000b3)}.focus-dock-layer.active{stroke-width:3.5px;filter:drop-shadow(0 1px 2px #000000c7)}.focus-dock-label-bg{fill:#060f12e0;stroke:#e2e8f05c;stroke-width:1px}.focus-dock-label{paint-order:normal;stroke:none;dominant-baseline:middle;text-anchor:middle;letter-spacing:.6px;pointer-events:none;filter:none;font-size:12px;font-weight:800}.focus-gate-point{stroke-width:2.2px;filter:drop-shadow(0 1px 2px #000000b3);cursor:pointer}.focus-gate-label-bg{fill:#060f12e6;stroke:#e2e8f061;stroke-width:1px}.focus-gate-label{fill:#1f2937;dominant-baseline:middle;letter-spacing:.3px;pointer-events:none;text-anchor:middle;font-size:10px;font-weight:800}.focus-vessel-layer{position:absolute;inset:0}.focus-vessel{color:#1f2937;cursor:pointer;background:0 0;border:0;grid-template-columns:34px max-content;align-items:center;gap:5px;max-width:190px;padding:0;display:grid;position:absolute;transform:translate(-17px,-17px)}.focus-vessel:after{display:none}.focus-vessel:before{content:"";opacity:0;pointer-events:none;z-index:0;background:radial-gradient(circle,#b91c1cd1 0%,#991b1b75 42%,#7f1d1d00 74%);border:1px solid #b91c1cb3;border-radius:999px;width:18px;height:18px;position:absolute;top:17px;left:17px;transform:translate(-50%,-50%)scale(.25);box-shadow:0 0 14px #b91c1c94,0 0 28px #7f1d1d6b}.heading-chevron{pointer-events:none;border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:10px solid var(--status-color,#008c95);width:0;height:0;filter:drop-shadow(0 0 1px #020617) drop-shadow(0 0 5px color-mix(in srgb, var(--status-color,#008c95) 72%, transparent));opacity:.98;transform:translate(-50%, -17px) rotate(var(--heading-rotation,0deg));transform-origin:50% 17px;z-index:3;position:absolute;top:17px;left:17px}.radar-beam{pointer-events:none;filter:blur(4px);opacity:0;width:38px;height:13px;transform:rotate(var(--beam-rotation,-90deg)) translateX(12px);transform-origin:0;z-index:0;background:linear-gradient(90deg,#b91c1cd1,#7f1d1d47,#0000);border-radius:999px;position:absolute;top:17px;left:17px}.focus-vessel.moving .radar-beam,.focus-vessel.selected .radar-beam,.focus-vessel:hover .radar-beam{opacity:.85;animation:1.4s ease-in-out infinite radarBeamPulse}.focus-vessel.moving .heading-chevron,.focus-vessel.selected .heading-chevron,.focus-vessel:hover .heading-chevron{opacity:.95}@keyframes radarBeamPulse{0%{opacity:.35;transform:rotate(var(--beam-rotation,-90deg)) translateX(8px) scaleX(.82)}50%{opacity:.9;transform:rotate(var(--beam-rotation,-90deg)) translateX(12px) scaleX(1)}to{opacity:.35;transform:rotate(var(--beam-rotation,-90deg)) translateX(8px) scaleX(.82)}}.heading-ray{pointer-events:none;border-top:2px solid var(--status-color,#008c95);width:16px;height:0;box-shadow:0 0 0 1px #020617e0, 0 0 5px color-mix(in srgb, var(--status-color,#008c95) 72%, transparent);opacity:.9;transform:rotate(var(--heading-rotation,-90deg)) translateX(15px);transform-origin:0;z-index:1;border-radius:999px;position:absolute;top:17px;left:17px}.heading-ray:after{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:6px solid var(--status-color,#008c95);width:0;height:0;filter:drop-shadow(0 0 1px #020617) drop-shadow(0 0 4px color-mix(in srgb, var(--status-color,#008c95) 68%, transparent));position:absolute;top:-4px;right:-5px}.focus-vessel.moving .heading-ray,.focus-vessel.selected .heading-ray,.focus-vessel:hover .heading-ray{opacity:.95}.focus-vessel.moving:before,.vessel-marker.moving:before{animation:2.4s cubic-bezier(.22,.61,.36,1) infinite sonarPulse}.focus-vessel.moving img,.vessel-marker.moving .vessel-ship{animation:2s ease-in-out infinite sonarCoreFlicker}.focus-vessel img{object-fit:contain;width:34px;height:34px;transform:rotate(var(--ship-rotation,-45deg));filter:drop-shadow(0 2px 4px #000c);z-index:2;position:relative}.focus-vessel-label{opacity:0;pointer-events:none;color:#fff;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px #000000d9;background:#001a33f5;border:1px solid #008c95c7;border-radius:6px;gap:4px;max-width:190px;padding:7px 9px;font-size:12px;font-weight:800;line-height:1.18;transition:opacity .16s,transform .16s;display:grid;overflow:hidden;transform:translate(-4px);box-shadow:0 10px 24px #00000057}.focus-vessel small{color:#5eead4;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:10px;line-height:1.2;overflow:hidden}.focus-vessel.selected .focus-vessel-label,.focus-vessel:hover .focus-vessel-label{color:#fff;opacity:1;pointer-events:auto;background:#001a33fa;border-color:#5eead4db;transform:translate(0)}.focus-vessel.selected small,.focus-vessel:hover small{color:#5eead4}.dashboard-sidebar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#036;border:1px solid #6b72803d;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.left-sidebar{grid-column:1}.right-sidebar{grid-column:3}.sidebar-header{background:#036;border-bottom:1px solid #005b96;justify-content:space-between;align-items:center;padding:14px;display:flex}.sidebar-header h2{color:#fff;margin:0;font-size:14px;font-weight:700}.sidebar-content{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.analysis-card{background:#fff;border:1px solid #005b96;border-radius:6px;padding:12px}.analysis-card-header{justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px;display:flex}.analysis-card h3{color:#6b7280;text-transform:uppercase;letter-spacing:.5px;min-width:0;margin:0;font-size:12px;font-weight:700}.analysis-card>h3{margin:0 0 10px}.card-popup-button{flex:0 0 24px}.stat-item{border-bottom:1px solid #94a3b81a;justify-content:space-between;align-items:center;padding:6px 0;font-size:11px;display:flex}.stat-item:last-child{border-bottom:none}.stat-label{color:#6b7280;font-weight:500}.stat-value{color:#1f2937;font-weight:700}.stat-status{color:#008c95;background:#008c951a;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.module-summary{flex-direction:column;gap:6px;display:flex}.module-item{color:#6b7280;background:#f4f6f8;border-radius:4px;padding:6px 8px;font-size:11px}.module-item strong{color:#005b96}.berthing-plan-card{gap:10px;display:grid}.berthing-summary-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.berthing-summary-grid div{background:#f4f6f8;border:1px solid #6b72802e;border-radius:4px;padding:7px}.berthing-summary-grid span{color:#6b7280;text-transform:uppercase;font-size:9px;font-weight:700;display:block}.berthing-summary-grid strong{color:#036;margin-top:3px;font-size:15px;display:block}.berthing-dock-list{gap:2px;display:grid}.berthing-plan-list{gap:8px;display:grid}.berthing-plan-item{background:#f4f6f8;border:1px solid #6b728033;border-radius:5px;gap:4px;padding:9px;display:grid}.berthing-plan-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.berthing-plan-item strong{color:#1f2937;font-size:10px}.berthing-plan-item small{color:#6b7280;font-size:9px;line-height:1.25}.berthing-plan-item em{color:#d32f2f;font-size:9px;font-style:normal;font-weight:700}.berthing-plan-status{color:#fff;text-transform:uppercase;background:var(--plan-status-color,#005b96);border-radius:3px;flex:none;padding:3px 5px;font-size:8px;font-weight:800}.empty-state.compact{min-height:auto;padding:8px}.simulation-card{gap:10px;display:grid}.simulation-card-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.simulation-card-header h3{flex:auto;min-width:0;margin:0}.simulation-card-header select{color:#fff;background:#005b96;border:1px solid #008c95;border-radius:4px;outline:none;flex:0 118px;min-width:92px;max-width:118px;padding:5px 6px;font-size:9px;font-weight:800}.simulation-card-header select:focus{border-color:#008c95;box-shadow:0 0 0 2px #008c952e}.simulation-card-body{gap:10px;display:grid}.simulation-description{color:#6b7280;margin:0;font-size:10px;line-height:1.35}.simulation-kpi-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.simulation-kpi-grid div{background:#f4f6f8;border:1px solid #6b72802e;border-radius:4px;padding:7px}.simulation-kpi-grid span{color:#6b7280;text-transform:uppercase;font-size:9px;font-weight:700;display:block}.simulation-kpi-grid strong{color:#036;margin-top:3px;font-size:14px;display:block}.simulation-resource-note{color:#005b96;background:#005b9614;border-radius:4px;padding:6px 7px;font-size:10px;font-weight:700}.simulation-dock-list,.simulation-delay-list{gap:7px;display:grid}.simulation-dock-item{gap:5px;display:grid}.simulation-dock-item div:first-child{color:#6b7280;justify-content:space-between;gap:8px;font-size:10px;font-weight:700;display:flex}.simulation-dock-item strong{color:#1f2937}.simulation-progress{background:#6b728024;border-radius:999px;height:4px;overflow:hidden}.simulation-progress span{background:#008c95;height:100%;display:block}.simulation-delay-item{background:#f4f6f8;border:1px solid #d32f2f2e;border-radius:4px;gap:2px;padding:7px;display:grid}.simulation-delay-item strong{color:#1f2937;font-size:10px}.simulation-delay-item small,.simulation-clear{color:#6b7280;font-size:9px}.multi-vessel-card{gap:10px;display:grid}.multi-vessel-controls{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.multi-vessel-controls button,.multi-vessel-controls select,.multi-vessel-controls label{color:#fff;background:#005b96;border:1px solid #008c95;border-radius:4px;min-width:0;min-height:28px;padding:5px 6px;font-size:9px;font-weight:800}.multi-vessel-controls button:hover{background:#008c95}.multi-vessel-controls select{outline:none;grid-column:span 2}.multi-vessel-mitigation-button{grid-column:span 2}.multi-vessel-controls button:disabled{cursor:not-allowed;opacity:.55}.multi-vessel-controls label{grid-column:span 2;justify-content:center;align-items:center;gap:5px;display:flex}.multi-vessel-controls input{width:12px;height:12px;margin:0}.multi-vessel-status-row{color:#005b96;background:#005b9614;border-radius:4px;justify-content:space-between;gap:8px;padding:7px;font-size:10px;font-weight:800;display:flex}.multi-vessel-status-row span,.multi-vessel-status-row strong{overflow-wrap:anywhere;min-width:0}.multi-vessel-scenario-note{color:#6b7280;font-size:9px;font-weight:700;line-height:1.35}.multi-vessel-story{background:#d32f2f14;border:1px solid #d32f2f47;border-radius:4px;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:7px;display:grid}.multi-vessel-story.resolved{background:#16a34a14;border-color:#16a34a47}.multi-vessel-story div{gap:2px;min-width:0;display:grid}.multi-vessel-story span{color:#6b7280;text-transform:uppercase;font-size:8px;font-weight:900}.multi-vessel-story strong{color:#1f2937;overflow-wrap:anywhere;font-size:10px;font-weight:900}.multi-vessel-story small{color:#4b5563;overflow-wrap:anywhere;font-size:9px;font-weight:700;line-height:1.25}@media (width<=1100px){.multi-vessel-story{grid-template-columns:repeat(2,minmax(0,1fr))}}.multi-vessel-kpis{grid-template-columns:repeat(2,1fr)}.multi-vessel-flow{grid-template-columns:1fr 14px 1fr 14px 1fr 14px 1fr;align-items:center;gap:4px;display:grid}.multi-vessel-flow div{color:#036;text-align:center;background:#f4f6f8;border:1px solid #6b72802e;border-radius:4px;min-width:0;padding:6px 4px;font-size:9px;font-weight:800}.multi-vessel-flow span{background:#008c95;height:2px;position:relative}.multi-vessel-flow span:after{content:"";border-top:4px solid #0000;border-bottom:4px solid #0000;border-left:6px solid #008c95;position:absolute;top:-3px;right:-1px}.multi-vessel-lanes,.multi-vessel-list{gap:7px;display:grid}.multi-vessel-lane{background:#f4f6f8;border:1px solid #6b72802e;border-radius:4px;gap:6px;padding:8px;display:grid}.multi-vessel-lane-head{gap:2px;display:grid}.multi-vessel-lane-head strong{color:#1f2937;font-size:10px}.multi-vessel-lane-head span,.multi-vessel-lane-counts span{color:#6b7280;font-size:9px;font-weight:700}.multi-vessel-lane-counts{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;display:grid}.multi-vessel-lane-counts span{text-align:center;background:#fff;border-radius:3px;min-width:0;padding:4px}.multi-vessel-report-grid{grid-template-columns:1fr;gap:6px;display:grid}.multi-vessel-report-grid div{background:#f4f6f8;border:1px solid #6b72802e;border-radius:4px;justify-content:space-between;gap:8px;padding:7px;display:flex}.multi-vessel-report-grid span,.multi-vessel-list>strong{color:#6b7280;text-transform:uppercase;font-size:9px;font-weight:800}.multi-vessel-report-grid strong{color:#036;font-size:10px}.multi-vessel-playbook{background:#005b9612;border:1px solid #008c9538;border-radius:4px;gap:7px;padding:8px;display:grid}.multi-vessel-playbook>strong{color:#036;text-transform:uppercase;font-size:10px;font-weight:900}.multi-vessel-playbook small{color:#4b5563;font-size:9px;font-weight:700;line-height:1.3}.multi-vessel-playbook-decision,.multi-vessel-playbook-impact{background:#fff;border-radius:4px;gap:2px;padding:7px;display:grid}.multi-vessel-playbook-decision span,.multi-vessel-playbook-impact span,.multi-vessel-playbook-grid span,.multi-vessel-playbook-list span{color:#005b96;text-transform:uppercase;font-size:8px;font-weight:900}.multi-vessel-playbook-decision b{color:#111827;text-transform:capitalize;font-size:10px}.multi-vessel-playbook-grid,.multi-vessel-playbook-list{gap:5px;display:grid}.multi-vessel-playbook-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.multi-vessel-playbook-grid div,.multi-vessel-playbook-list div{background:#fff;border-radius:4px;gap:2px;min-width:0;padding:6px;display:grid}.multi-vessel-list-item{background:#f4f6f8;border:1px solid #6b72802e;border-radius:4px;gap:2px;padding:7px;display:grid}.multi-vessel-list-item.alert{border-color:#d32f2f38}.multi-vessel-list-item span{color:#1f2937;font-size:10px;font-weight:800}.multi-vessel-list-item small{color:#6b7280;font-size:9px;line-height:1.25}.port-resource-card{gap:10px;display:grid}.resource-summary-list{gap:8px;display:grid}.resource-summary-item{background:#f4f6f8;border:1px solid #6b72802e;border-radius:4px;gap:5px;padding:8px;display:grid}.resource-summary-row{justify-content:space-between;gap:8px;display:flex}.resource-summary-row strong{color:#1f2937;font-size:10px}.resource-summary-row span{color:#005b96;font-size:10px;font-weight:800}.resource-progress{background:#6b728024;border-radius:999px;height:4px;overflow:hidden}.resource-progress span{background:#008c95;height:100%;display:block}.resource-summary-item small{color:#6b7280;font-size:9px}.status-legend-list{gap:7px;display:grid}.status-legend-item{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #94a3b81a;grid-template-columns:14px 1fr auto;align-items:center;gap:7px;padding:5px 0;display:grid}.status-legend-item:last-child{border-bottom:none}.status-legend-item:hover,.status-legend-item.active{background:#008c9517}.status-filter-reset{color:#6b7280;width:100%;font:inherit;text-align:left;text-transform:uppercase;cursor:pointer;background:#f4f6f8;border:1px solid #94a3b82e;border-radius:4px;margin:0 0 6px;padding:5px 7px;font-size:10px;font-weight:800}.status-filter-reset:hover,.status-filter-reset.active{color:#fff;background:#008c95;border-color:#008c95}.status-dot{background:var(--status-color,#6b7280);width:11px;height:11px;box-shadow:0 0 10px var(--status-color,#6b7280);border:2px solid #071317;border-radius:999px}.status-name{color:#6b7280;font-size:10px;font-weight:700}.status-legend-item strong{color:#1f2937;font-size:12px}.service-health-card{border-color:#008c9552}.service-health-summary{margin-bottom:8px}.health-ok,.health-warning{text-transform:uppercase;border-radius:4px;padding:3px 7px;font-size:10px;font-weight:800;display:inline-flex}.health-ok{color:#fff;background:#2e7d32}.health-warning{color:#1f2937;background:#f59e0b}.service-health-list{gap:7px;display:grid}.service-health-item{border-bottom:1px solid #94a3b81a;grid-template-columns:12px 1fr;align-items:center;gap:8px;padding:7px 0;display:grid}.service-health-item:last-child{border-bottom:none}.service-health-item strong{color:#1f2937;font-size:11px;line-height:1.2;display:block}.service-health-item small{color:#6b7280;text-transform:uppercase;font-size:10px}.service-dot{border:2px solid #071317;border-radius:999px;width:10px;height:10px}.service-dot.online{background:#2e7d32;box-shadow:0 0 10px #2e7d32cc}.service-dot.offline{background:#d32f2f;box-shadow:0 0 10px #d32f2fbf}.vessel-analysis-list{gap:8px;display:grid}.vessel-analysis-item{background:#f4f6f8;border:1px solid #94a3b824;border-radius:4px;gap:3px;padding:8px;display:grid}.vessel-analysis-item.selected{background:#008c9524;border-color:#008c9599}.vessel-analysis-item strong{color:#1f2937;font-size:11px}.vessel-analysis-item span{color:#008c95;font-size:10px;font-weight:700}.vessel-analysis-item small{color:#6b7280;font-size:10px}.cargo-progress{background:#f4f6f8;border:1px solid #94a3b82e;border-radius:999px;height:5px;overflow:hidden}.cargo-progress span{border-radius:inherit;background:linear-gradient(90deg,#008c95,#f59e0b);height:100%;display:block}.empty-state{color:#6b7280;text-align:center;justify-content:center;align-items:center;min-height:120px;display:flex}.empty-state p{margin:0;font-size:11px}.port-overlay{z-index:3;pointer-events:none;position:absolute;inset:0}.port-boundary{fill:#008c9529;stroke:#67f8df;stroke-dasharray:9 6;stroke-linejoin:round;stroke-width:4px;filter:drop-shadow(0 0 7px #008c95cc)}.dock-zone{stroke-linejoin:round;stroke-width:3.5px;filter:drop-shadow(0 0 7px #000000d6)}.dock-line{fill:none;stroke-linecap:round;stroke-width:5px;filter:drop-shadow(0 0 5px #000000d6)}.unloading-gate{stroke:#fff;stroke-width:2px;filter:drop-shadow(0 0 6px #ffffff6b)drop-shadow(0 0 4px #000000e6)}.gate-label{fill:#fff;paint-order:stroke;stroke:#000000c7;stroke-width:3px;font-size:10px;font-weight:700}.dock-label{fill:#fff;paint-order:stroke;pointer-events:none;stroke:#000000e0;stroke-width:4px;text-anchor:middle;letter-spacing:.8px;filter:drop-shadow(0 1px 2px #000000b3);font-size:10px;font-weight:800}.port-layer-controls{z-index:5;background:#036;border:1px solid #008c95;border-radius:4px;flex-wrap:nowrap;align-items:center;gap:8px;padding:7px 9px;display:flex;position:absolute;top:10px;left:10px;box-shadow:0 8px 20px #00000047}.port-layer-controls label{color:#fff;text-transform:uppercase;align-items:center;gap:4px;font-size:10px;font-weight:800;display:flex}.port-layer-controls input{accent-color:#005b96}.vessel-overlay{z-index:4;pointer-events:none;position:absolute;inset:0}.vessel-marker{color:#1f2937;max-width:200px;font:inherit;pointer-events:auto;cursor:pointer;background:0 0;border:none;grid-template-columns:48px max-content;align-items:center;gap:6px;padding:0;line-height:1;transition:all .2s;position:absolute;transform:translate(-26px,-31px)}.vessel-marker:after{display:none}.vessel-marker:before{content:"";opacity:0;pointer-events:none;z-index:0;background:radial-gradient(circle,#b91c1cd1 0%,#991b1b75 42%,#7f1d1d00 74%);border:1px solid #b91c1cb3;border-radius:999px;width:22px;height:22px;position:absolute;top:24px;left:24px;transform:translate(-50%,-50%)scale(.25);box-shadow:0 0 16px #b91c1c94,0 0 32px #7f1d1d6b}.vessel-marker .heading-ray{width:20px;transform:rotate(var(--heading-rotation,-90deg)) translateX(22px);z-index:1;border-top-width:2px;top:24px;left:24px}.vessel-marker .heading-ray:after{border-top-width:4px;border-bottom-width:4px;border-left-width:6px;top:-4px;right:-5px}.vessel-marker.moving .heading-ray,.vessel-marker:hover .heading-ray,.vessel-marker:focus-visible .heading-ray{opacity:.95}.vessel-marker .heading-chevron{opacity:.98;transform:translate(-50%, -21px) rotate(var(--heading-rotation,0deg));transform-origin:50% 21px;border-bottom-width:10px;border-left-width:5px;border-right-width:5px;top:24px;left:24px}.vessel-marker .radar-beam{width:44px;height:14px;transform:rotate(var(--beam-rotation,-90deg)) translateX(14px);top:24px;left:24px}.vessel-marker.moving .radar-beam,.vessel-marker.selected .radar-beam,.vessel-marker:hover .radar-beam,.vessel-marker:focus-visible .radar-beam{opacity:.85;animation:1.4s ease-in-out infinite radarBeamPulseLarge}.vessel-marker.moving .heading-chevron,.vessel-marker.selected .heading-chevron,.vessel-marker:hover .heading-chevron,.vessel-marker:focus-visible .heading-chevron{opacity:.98}@keyframes radarBeamPulseLarge{0%{opacity:.35;transform:rotate(var(--beam-rotation,-90deg)) translateX(10px) scaleX(.82)}50%{opacity:.9;transform:rotate(var(--beam-rotation,-90deg)) translateX(14px) scaleX(1)}to{opacity:.35;transform:rotate(var(--beam-rotation,-90deg)) translateX(10px) scaleX(.82)}}.vessel-marker:hover{transform:translate(-26px,-31px)scale(1.05)}.vessel-ship{object-fit:contain;filter:drop-shadow(0 2px 4px #000000c7);width:48px;height:48px;transform:rotate(var(--ship-rotation,-45deg));transform-origin:50%;z-index:2;position:relative}.vessel-name{color:#fff;opacity:0;pointer-events:none;text-overflow:ellipsis;text-shadow:0 1px 2px #000000d9;white-space:nowrap;z-index:5;background:#001a33f5;border:1px solid #008c95c7;border-radius:6px;gap:4px;max-width:210px;padding:7px 9px;font-size:12px;font-weight:800;line-height:1.18;transition:opacity .16s,transform .16s;display:grid;overflow:hidden;transform:translate(-4px);box-shadow:0 10px 24px #00000057}.vessel-marker.selected .vessel-name,.vessel-marker:hover .vessel-name,.vessel-marker:focus-visible .vessel-name{opacity:1;pointer-events:auto;background:#001a33fa;border-color:#5eead4db;transform:translate(0)}.vessel-marker.selected .vessel-name{box-shadow:0 0 0 1px #008c9547,0 10px 22px #00000057}.vessel-name small{color:#5eead4;text-transform:uppercase;text-overflow:ellipsis;white-space:nowrap;font-size:10px;line-height:1.2;overflow:hidden}@keyframes sonarPulse{0%{opacity:0;transform:translate(-50%,-50%)scale(0)}16%{opacity:.95}62%{opacity:.28}to{opacity:0;transform:translate(-50%,-50%)scale(2.7)}}@keyframes sonarCoreFlicker{0%,to{filter:drop-shadow(0 2px 4px #000c)drop-shadow(0 0 7px #b91c1c6b)}50%{filter:drop-shadow(0 2px 4px #000c)drop-shadow(0 0 15px #b91c1cb8)}}.draggable-window{z-index:10000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:100000;pointer-events:auto;background:#036;border:1px solid #6b72803d;border-radius:8px;flex-direction:column;min-width:300px;max-width:600px;max-height:600px;display:flex;position:fixed;box-shadow:0 20px 50px #00000080}.window-header{cursor:move;-webkit-user-select:none;user-select:none;pointer-events:auto;background:#036;border-bottom:1px solid #005b96;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.window-header h3{color:#fff;pointer-events:none;margin:0;font-size:14px;font-weight:700}.window-close{color:#fff;cursor:pointer;pointer-events:auto;z-index:100001;background:0 0;border:none;justify-content:center;align-items:center;padding:4px 8px;font-size:20px;transition:all .2s;display:flex}.window-close:hover{color:#d32f2f}.window-content{color:#6b7280;pointer-events:auto;flex:1;padding:14px 16px;font-size:12px;line-height:1.6;overflow-y:auto}.popup-content h4{color:#005b96;margin:0 0 10px;font-size:13px}.popup-content p{color:#6b7280;margin:0 0 8px;font-size:12px}.popup-content strong{color:#1f2937}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b880}.movement-error-toasts{z-index:200000;pointer-events:none;gap:10px;width:min(440px,100vw - 36px);display:grid;position:fixed;top:18px;right:18px}.movement-error-toast{color:#fff;background:#7f1d1df7;border:1px solid #fca5a5;border-left:5px solid #ef4444;border-radius:7px;grid-template-columns:30px 1fr;gap:12px;padding:14px 16px;animation:.2s ease-out movementErrorToastIn;display:grid;box-shadow:0 16px 34px #0000006b}.movement-error-icon{background:#ef4444;border-radius:50%;place-items:center;width:28px;height:28px;font-size:18px;font-weight:900;display:grid}.movement-error-toast strong,.movement-error-toast span,.movement-error-toast p{display:block}.movement-error-toast strong{text-transform:uppercase;font-size:14px}.movement-error-toast div>span{color:#fecaca;margin-top:2px;font-size:12px;font-weight:800}.movement-error-toast p{color:#fff;margin:5px 0 0;font-size:12px;line-height:1.35}@keyframes movementErrorToastIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
