.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-pane>svg,.leaflet-pane>canvas,.leaflet-zoom-box,.leaflet-image-layer,.leaflet-layer{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer,.leaflet-container .leaflet-tile{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{-ms-touch-action:pan-x pan-y;touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{-ms-touch-action:pinch-zoom;touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{-ms-touch-action:none;touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;-moz-box-sizing:border-box;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;-webkit-transition:opacity .2s linear;-moz-transition:opacity .2s linear;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{-webkit-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{-webkit-transition:-webkit-transform .25s cubic-bezier(0,0,.25,1);-moz-transition:-moz-transform .25s cubic-bezier(0,0,.25,1);transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-zoom-anim .leaflet-tile,.leaflet-pan-anim .leaflet-tile{-webkit-transition:none;-moz-transition:none;transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-popup-pane,.leaflet-control{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-image-layer,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:#ffffff80}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px #000000a6;border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:hover,.leaflet-bar a:focus{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px #0006;background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAQAAAADQ4RFAAACf0lEQVR4AY1UM3gkARTePdvdoTxXKc+qTl3aU5U6b2Kbkz3Gtq3Zw6ziLGNPzrYx7946Tr6/ee/XeCQ4D3ykPtL5tHno4n0d/h3+xfuWHGLX81cn7r0iTNzjr7LrlxCqPtkbTQEHeqOrTy4Yyt3VCi/IOB0v7rVC7q45Q3Gr5K6jt+3Gl5nCoDD4MtO+j96Wu8atmhGqcNGHObuf8OM/x3AMx38+4Z2sPqzCxRFK2aF2e5Jol56XTLyggAMTL56XOMoS1W4pOyjUcGGQdZxU6qRh7B9Zp+PfpOFlqt0zyDZckPi1ttmIp03jX8gyJ8a/PG2yutpS/Vol7peZIbZcKBAEEheEIAgFbDkz5H6Zrkm2hVWGiXKiF4Ycw0RWKdtC16Q7qe3X4iOMxruonzegJzWaXFrU9utOSsLUmrc0YjeWYjCW4PDMADElpJSSQ0vQvA1Tm6/JlKnqFs1EGyZiFCqnRZTEJJJiKRYzVYzJck2Rm6P4iH+cmSY0YzimYa8l0EtTODFWhcMIMVqdsI2uiTvKmTisIDHJ3od5GILVhBCarCfVRmo4uTjkhrhzkiBV7SsaqS+TzrzM1qpGGUFt28pIySQHR6h7F6KSwGWm97ay+Z+ZqMcEjEWebE7wxCSQwpkhJqoZA5ivCdZDjJepuJ9IQjGGUmuXJdBFUygxVqVsxFsLMbDe8ZbDYVCGKxs+W080max1hFCarCfV+C1KATwcnvE9gRRuMP2prdbWGowm1KB1y+zwMMENkM755cJ2yPDtqhTI6ED1M/82yIDtC/4j4BijjeObflpO9I9MwXTCsSX8jWAFeHr05WoLTJ5G8IQVS/7vwR6ohirYM7f6HzYpogfS3R2OAAAAAElFTkSuQmCC);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA0CAQAAABvcdNgAAAEsklEQVR4AWL4TydIhpZK1kpWOlg0w3ZXP6D2soBtG42jeI6ZmQTHzAxiTbSJsYLjO9HhP+WOmcuhciVnmHVQcJnp7DFvScowZorad/+V/fVzMdMT2g9Cv9guXGv/7pYOrXh2U+RRR3dSd9JRx6bIFc/ekqHI29JC6pJ5ZEh1yWkhkbcFeSjxgx3L2m1cb1C7bceyxA+CNjT/Ifff+/kDk2u/w/33/IeCMOSaWZ4glosqT3DNnNZQ7Cs58/3Ce5HL78iZH/vKVIaYlqzfdLu8Vi7dnvUbEza5Idt36tquZFldl6N5Z/POLof0XLK61mZCmJSWjVF9tEjUluu74IUXvgttuVIHE7YxSkaYhJZam7yiM9Pv82JYfl9nptxZaxMJE4YSPty+vF0+Y2up9d3wwijfjZbabqm/3bZ9ecKHsiGmRflnn1MW4pjHf9oLufyn2z3y1D6n8g8TZhxyzipLNPnAUpsOiuWimg52psrTZYnOWYNDTMuWBWa0tJb4rgq1UvmutpaYEbZlwU3CLJm/ayYjHW5/h7xWLn9Hh1vepDkyf7dE7MtT5LR4e7yYpHrkhOUpEfssBLq2pPhAqoSWKUkk7EDqkmK6RrCEzqDjhNDWNE+XSMvkJRDWlZTmCW0l0PHQGRZY5t1L83kT0Y3l2SItk5JAWHl2dCOBm+fPu3fo5/3v61RMCO9Jx2EEYYhb0rmNQMX/vm7gqOEJLcXTGw3CAuRNeyaPWwjR8PRqKQ1PDA/dpv+on9Shox52WFnx0KY8onHayrJzm87i5h9xGw/tfkev0jGsQizqezUKjk12hBMKJ4kbCqGPVNXudyyrShovGw5CgxsRICxF6aRmSjlBnHRzg7Gx8fKqEubI2rahQYdR1YgDIRQO7JvQyD52hoIQx0mxa0ODtW2Iozn1le2iIRdzwWewedyZzewidueOGqlsn1MvcnQpuVwLGG3/IR1hIKxCjelIDZ8ldqWz25jWAsnldEnK0Zxro19TGVb2ffIZEsIO89EIEDvKMPrzmBOQcKQ+rroye6NgRRxqR4U8EAkz0CL6uSGOm6KQCdWjvjRiSP1BPalCRS5iQYiEIvxuBMJEWgzSoHADcVMuN7IuqqTeyUPq22qFimFtxDyBBJEwNyt6TM88blFHao/6tWWhuuOM4SAK4EI4QmFHA+SEyWlp4EQoJ13cYGzMu7yszEIBOm2rVmHUNqwAIQabISNMRstmdhNWcFLsSm+0tjJH1MdRxO5Nx0WDMhCtgD6OKgZeljJqJKc9po8juskR9XN0Y1lZ3mWjLR9JCO1jRDMd0fpYC2VnvjBSEFg7wBENc0R9HFlb0xvF1+TBEpF68d+DHR6IOWVv2BECtxo46hOFUBd/APU57WIoEwJhIi2CdpyZX0m93BZicktMj1AS9dClteUFAUNUIEygRZCtik5zSxI9MubTBH1GOiHsiLJ3OCoSZkILa9PxiN0EbvhsAo8tdAf9Seepd36lGWHmtNANTv5Jd0z4QYyeo/UEJqxKRpg5LZx6btLPsOaEmdMyxYdlc8LMaJnikDlhclqmPiQnTEpLUIZEwkRagjYkEibQErwhkTAKCLQEbUgkzJQWc/0PstHHcfEdQ+UAAAAASUVORK5CYII=);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=)}.leaflet-container .leaflet-control-attribution{background:#fff;background:#fffc;margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:hover,.leaflet-control-attribution a:focus{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;-moz-box-sizing:border-box;box-sizing:border-box;background:#fffc;text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{box-shadow:none}.leaflet-touch .leaflet-control-layers,.leaflet-touch .leaflet-bar{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px #0006}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:hover,.leaflet-container a.leaflet-popup-close-button:focus{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=.70710678,M12=.70710678,M21=-.70710678,M22=.70710678)}.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px #0006}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-top:before,.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0;padding:0}body{background:#050a14;color:#e6edf6;font-family:Outfit,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-font-smoothing:antialiased}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{display:flex;flex:1;min-height:0;overflow:hidden}.top-bar{flex-shrink:0;height:44px;display:flex;align-items:center;gap:12px;padding:0 14px;background:#0a1424;border-bottom:1px solid rgba(56,102,145,.32)}.top-bar__title{font-weight:600;font-size:.9rem;flex-shrink:0}.top-bar__views{display:flex;gap:2px;background:#0d192dd9;border:1px solid rgba(56,102,145,.32);border-radius:8px;padding:2px}.top-bar__view-btn{border:none;background:transparent;color:#93a8c1;border-radius:6px;padding:4px 10px;font-size:.78rem;cursor:pointer}.top-bar__view-btn--active{background:#38bdf82e;color:#e6edf6}.top-bar__spacer{flex:1}.top-bar__user{color:#93a8c1;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-bar__logout{border:1px solid rgba(72,130,184,.55);background:#0d192dd9;color:#e6edf6;border-radius:6px;padding:4px 10px;font-size:.78rem;cursor:pointer}.auth-screen{height:100vh;display:flex;align-items:center;justify-content:center;background:#050a14}.auth-screen__status{color:#93a8c1}.auth-screen__status--error{color:#fb7185}.login-form{width:280px;display:flex;flex-direction:column;gap:10px;padding:24px;background:#0c1727;border:1px solid rgba(56,102,145,.32);border-radius:10px}.login-form__title{margin:0;font-size:1.1rem}.login-form__hint{margin:0 0 6px;color:#93a8c1;font-size:.82rem}.login-form__dev-hint{margin:-4px 0 6px;color:#f59e0b;font-size:.78rem}.login-form__field{display:flex;flex-direction:column;gap:4px;font-size:.82rem;color:#93a8c1}.login-form__field input{background:#060d19e0;border:1px solid rgba(56,102,145,.32);border-radius:6px;color:#e6edf6;padding:7px 8px;font-size:.9rem}.login-form__error{color:#fb7185;font-size:.8rem;margin:0}.login-form button{margin-top:4px;padding:9px;border-radius:8px;border:1px solid rgba(72,130,184,.55);background:#38bdf82e;color:#e6edf6;cursor:pointer;font-size:.9rem}.login-form button:disabled{opacity:.5;cursor:not-allowed}.panel{position:relative;flex-shrink:0;background:#0c1727;overflow:hidden;transition:width .25s ease;box-shadow:0 12px 34px #0000003d}.panel.no-anim{transition:none}.panel--left{border-right:1px solid rgba(56,102,145,.32)}.panel--right{border-left:1px solid rgba(56,102,145,.32)}.panel__content{height:100%;overflow-y:auto;padding:12px}.panel--collapsed .panel__content{display:none}.collapse-btn{position:absolute;top:50%;transform:translateY(-50%);z-index:5;width:20px;height:40px;border:1px solid rgba(72,130,184,.55);background:#0d192dd9;color:#93a8c1;border-radius:4px;cursor:pointer}.collapse-btn--left{right:4px}.collapse-btn--right{left:4px}.divider-v{width:5px;flex-shrink:0;cursor:col-resize;background:#38669152}.divider-v:hover{background:#38bdf8}.divider-h{height:5px;cursor:row-resize;background:#38669152}.divider-h:hover{background:#38bdf8}.main-panel{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.main-panel__map{flex:1;min-height:0;position:relative}.main-panel__speed{flex:0 0 auto;height:190px;max-height:42%;min-height:0}.live-map__plot-stack{position:absolute;left:0;right:0;bottom:0;z-index:900;display:flex;flex-direction:column;pointer-events:none;max-height:48%}.live-map__plot-stack>*{pointer-events:auto}.live-map__plot-actions{position:absolute;top:-38px;right:8px;z-index:960;display:flex;align-items:center;justify-content:flex-end;gap:6px;max-width:calc(100% - 16px)}.live-map__plot-exit,.live-map__plot-window{border:1px solid rgba(72,130,184,.55);border-radius:8px;background:#0a1424f0;color:#e6edf6;padding:6px 12px;font-size:.76rem;font-weight:650;cursor:pointer;box-shadow:0 4px 12px #0000004d}.live-map__plot-exit:hover,.live-map__plot-window:hover{background:#14243cf5;border-color:#38bdf8}.live-map__plot-recover{border:1px solid rgba(72,130,184,.55);border-radius:8px;background:#0a1424f0;color:#e6edf6;padding:6px 12px;font-size:.76rem;font-weight:650;cursor:pointer;box-shadow:0 4px 12px #0000004d;max-width:min(280px,calc(100vw - 160px));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-map__plot-recover:hover{background:#14243cf5;border-color:#5ec4b4}.live-map__plot-recover.is-on{background:#5ec4b433;border-color:#5ec4b4;color:#bff0e7}.live-map__plot-recover.is-error{border-color:#f87171b3;color:#fecaca}.live-map__plot-speed{flex:0 0 auto;height:190px;min-height:120px;max-height:36vh;background:#070e1af0;border-top:1px solid rgba(56,102,145,.35)}.live-map__plot-timeline{flex:0 0 auto;background:#070e1af5;border-top:1px solid rgba(56,102,145,.25)}.plot-staging-panel{z-index:1300;top:auto;left:auto;width:min(460px,calc(100% - 24px));max-height:min(86vh,760px);overflow:hidden}.plot-staging-panel .fleet-picker__title{display:none}.plot-staging-panel .fleet-picker{padding-top:0}.plot-staging-panel__selected{border:1px solid rgba(56,102,145,.3);background:#0d192d73;border-radius:7px;padding:8px;margin-bottom:10px}.plot-staging-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:min(28vh,220px);overflow-y:auto}.plot-staging-panel__row{display:flex;align-items:center;gap:7px;min-height:44px;padding:4px 2px;color:#e6edf6}.plot-staging-panel__window{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;margin:0 -12px -12px;padding:10px 12px 12px;border-top:1px solid rgba(56,102,145,.32);background:#070e1afa}.plot-staging-panel__window .fleet-picker__window{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.plot-staging-panel__window .fleet-picker__apply{flex:0 0 auto;min-height:42px;margin-top:8px}.activity-strip{margin:8px 0 4px}.activity-strip__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.activity-strip__scan{border:1px solid rgba(72,130,184,.55);border-radius:6px;background:#14263cd9;color:#cfe3f7;font-size:11px;padding:3px 9px;cursor:pointer}.activity-strip__scan:disabled{opacity:.5;cursor:default}.activity-strip__warning{margin:4px 0;font-size:11px;color:#f3b25c}.activity-strip__months{display:flex;flex-direction:column;gap:3px;max-height:180px;overflow-y:auto;padding:4px 0}.activity-strip__month{display:flex;align-items:center;gap:6px}.activity-strip__month-label{flex:0 0 52px;font-size:10px;color:#8fa8c2}.activity-strip__days{display:flex;flex-wrap:wrap;gap:2px}.activity-strip__day{position:relative;width:12px;height:12px;padding:0;border:1px solid rgba(72,130,184,.3);border-radius:3px;background:#14263c99;cursor:pointer}.activity-strip__day.is-mild{background:#2e76588c}.activity-strip__day.is-warm{background:#3aa268bf}.activity-strip__day.is-hot{background:#58d68df2}.activity-strip__day.is-selected{outline:2px solid #7cc0ff;outline-offset:0}.activity-strip__day.has-gap:after{content:"";position:absolute;right:1px;top:1px;width:4px;height:4px;border-radius:50%;background:#e4574f}.feature-action-hub{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.feature-action-hub--compact{gap:4px}.feature-action-hub__button{min-width:0;border:1px solid rgba(72,130,184,.55);background:#0d192dd9;color:#e6edf6;border-radius:6px;padding:5px 7px;font-size:.72rem;font-weight:650;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.feature-action-hub__button--primary{background:#38bdf833;border-color:#38bdf894}.feature-action-hub__button--danger{color:#fecdd3;border-color:#fb718573}.feature-action-hub__button:hover:not(:disabled){background:#38bdf842;border-color:#38bdf8}.feature-action-hub__button:disabled{opacity:.48;cursor:not-allowed}.live-map__plot-error{position:absolute;top:48px;left:50%;transform:translate(-50%);z-index:950}.replay-map{width:100%;height:100%;background:#050a14}.replay-vessel-label{border:1px solid rgba(56,102,145,.5);border-radius:5px;background:#07101de0;color:#e6edf6;box-shadow:0 3px 9px #00000047;font-size:.7rem;font-weight:700}.live-map{position:relative;width:100%;height:100%}.live-map__map{width:100%;height:100%;background:#050a14}.live-map__hint{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:1000;background:#0a1220eb;border:1px solid rgba(56,102,145,.32);color:#93a8c1;padding:6px 14px;border-radius:999px;font-size:.8rem;box-shadow:0 4px 12px #0000002e}.live-map__hint--action{cursor:pointer;color:#b9d7f0;border-color:#38bdf866}.live-map__hint--action:hover{background:#14243cf2;color:#e6edf6}.live-map__layer-panel{position:absolute;top:12px;left:12px;z-index:1000}.port-coverage-control{position:absolute;top:12px;left:248px;z-index:1000;width:312px;max-width:calc(100% - 520px);padding:10px;border:1px solid rgba(92,154,190,.38);border-radius:8px;background:#060e18eb;box-shadow:0 16px 38px #00000057;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#e6edf6}.port-coverage-control--layer{position:static;width:auto;max-width:none;margin:6px 0 8px 18px;padding:8px;box-shadow:none;background:#060e18bd}.port-coverage-control__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.port-coverage-control__head strong{display:block;margin-top:1px;font-size:.9rem}.port-coverage-control__eyebrow{display:block;color:#7dd3fc;font-size:.62rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.port-coverage-control__badge{flex-shrink:0;border:1px solid rgba(45,212,191,.5);border-radius:6px;padding:3px 7px;background:#14b8a624;color:#ccfbf1;font-size:.72rem;font-weight:750}.port-coverage-control__meter{height:7px;margin-top:9px;overflow:hidden;border-radius:999px;background:#1e293bf2}.port-coverage-control__meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#fb7185,#facc15 54%,#22c55e 76%,#2dd4bf)}.port-coverage-control__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:8px 0 10px}.port-coverage-control__stats span{min-width:0;border:1px solid rgba(56,102,145,.26);border-radius:6px;padding:4px 5px;background:#0d192da3;color:#bdd7ee;font-size:.68rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.port-coverage-control__range{display:flex;flex-direction:column;gap:4px;margin-top:8px;color:#93a8c1;font-size:.72rem}.port-coverage-control__range span{display:flex;justify-content:space-between;gap:8px}.port-coverage-control__range b{color:#e6edf6;font-weight:750}.port-coverage-control__range input{width:100%;accent-color:#2dd4bf}.port-coverage-control__toggles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:9px}.port-coverage-control__toggles label{display:flex;align-items:center;gap:6px;border:1px solid rgba(56,102,145,.3);border-radius:6px;padding:5px 7px;background:#0d192da3;color:#cfe2f4;font-size:.72rem;cursor:pointer}.port-coverage-control__toggles input{margin:0;accent-color:#2dd4bf}.port-coverage-control__error{margin-top:8px;color:#fecdd3;font-size:.72rem}.port-coverage-label-icon{pointer-events:none!important;background:transparent!important;border:none!important}.port-coverage-label{display:inline-flex;align-items:baseline;gap:4px;max-width:180px;padding:2px 6px;border:1px solid #2dd4bf;border-radius:5px;background:#040a12db;color:#f8fafc;box-shadow:0 4px 12px #00000047;font-size:.67rem;font-weight:760;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.port-coverage-label small{color:#8fb4d2;font-size:.58rem;font-weight:700}.port-coverage-tooltip{font-size:.74rem;font-weight:650}.port-coverage-canvas{position:absolute;z-index:420;pointer-events:auto}.world-port-popup{display:flex;flex-direction:column;gap:8px;min-width:210px;font-size:.78rem}.world-port-popup__head{display:flex;flex-direction:column;gap:1px}.world-port-popup__head strong{font-size:.92rem}.world-port-popup__head span{color:#93a8c1}.world-port-popup__score{font-size:1.6rem;line-height:1;font-weight:850}.world-port-popup dl{display:grid;grid-template-columns:1fr auto;gap:4px 12px;margin:0}.world-port-popup dt{color:#8aa5bf}.world-port-popup dd{margin:0;color:#e6edf6;font-weight:700}.world-port-popup button{border:1px solid rgba(45,212,191,.55);border-radius:7px;padding:7px 9px;background:#14b8a62e;color:#ccfbf1;font-size:.78rem;font-weight:750;cursor:pointer}.world-port-popup button:hover{border-color:#2dd4bf;background:#14b8a642}@media(max-width:900px){.port-coverage-control:not(.port-coverage-control--layer){top:auto;left:12px;right:12px;bottom:12px;width:auto;max-width:none}.port-coverage-control__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.layer-panel{display:flex;flex-direction:column;width:224px;max-height:calc(100% - 24px)}.layer-panel__toggle{background:#0a1220f2;border:1px solid rgba(56,102,145,.32);color:#7ab3d4;font-size:.72rem;font-weight:600;padding:6px 10px;border-radius:6px;cursor:pointer;text-align:left;box-shadow:0 12px 34px #0000003d}.layer-panel__toggle:hover{background:#14243cf2}.layer-panel__body{margin-top:4px;background:#0a1220f2;border:1px solid rgba(56,102,145,.32);border-radius:6px;padding:8px 10px 10px;overflow-y:auto;box-shadow:0 12px 34px #0000003d}.layer-panel__section-title{font-size:.62rem;color:#5a7a9a;text-transform:uppercase;letter-spacing:.06em;margin:8px 0 4px}.layer-panel__section-title:first-child{margin-top:0}.layer-panel__section-title--sub{margin-top:2px;color:#6f98b8}.layer-panel__row{display:flex;align-items:center;gap:6px;font-size:.72rem;color:#c0c8d0;padding:2px 0;cursor:pointer}.layer-panel__row input{accent-color:#38bdf8;cursor:pointer;margin:0}.port-layer-options{display:flex;flex-direction:column;gap:6px;margin:3px 0 8px 18px;padding-left:9px;border-left:1px solid rgba(92,154,190,.28)}.port-layer-options__meta{display:flex;justify-content:space-between;gap:8px;color:#8aa5bf;font-size:.66rem}.port-layer-options__range{display:flex;flex-direction:column;gap:3px;color:#9eb4ca;font-size:.68rem}.port-layer-options__range span{display:flex;justify-content:space-between;gap:8px}.port-layer-options__range b{color:#e6edf6;font-weight:750}.port-layer-options__range input{width:100%;accent-color:#2dd4bf}.port-layer-options__toggles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.port-layer-options__toggles label{display:flex;align-items:center;gap:5px;min-width:0;border:1px solid rgba(56,102,145,.32);border-radius:5px;padding:4px 6px;background:#0d192d75;color:#cfe2f4;font-size:.68rem;cursor:pointer}.port-layer-options__toggles input{margin:0;accent-color:#2dd4bf}.port-layer-options__error{margin:0;color:#fecdd3;font-size:.68rem}.layer-panel__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.layer-panel__chip{min-width:0;display:flex;align-items:center;gap:5px;padding:4px 6px;border:1px solid rgba(56,102,145,.34);border-radius:6px;color:#c0c8d0;background:#0d192d99;font-size:.68rem;cursor:pointer}.layer-panel__chip input{accent-color:#facc15;margin:0}.live-map__mode-btns{position:absolute;top:12px;right:12px;z-index:1000;display:flex;flex-direction:column;gap:6px;align-items:flex-end}.live-map__select-btn{background:#0a1220f2;border:1px solid rgba(56,102,145,.32);color:#e6edf6;font-size:.76rem;padding:6px 12px;border-radius:6px;cursor:pointer;box-shadow:0 12px 34px #0000003d}.live-map__select-btn--active{border-color:#38bdf8;background:#38bdf82e}.selection-bar{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:12px;background:#0a1220f2;border:1px solid rgba(56,102,145,.32);border-radius:8px;padding:8px 14px;box-shadow:0 12px 34px #0000003d;font-size:.8rem;color:#e6edf6;max-width:calc(100% - 24px)}.selection-box-hint{position:absolute;right:12px;bottom:72px;z-index:1000;max-width:min(360px,calc(100% - 24px));padding:6px 10px;border-radius:7px;border:1px solid rgba(250,204,21,.5);background:#0a1220f0;color:#f8d95b;font-size:.76rem;box-shadow:0 12px 34px #0000003d}.selection-bar__hint{color:#93a8c1}.selection-bar__error{color:#fb7185;font-size:.75rem}.selection-bar__actions{display:flex;flex-wrap:wrap;gap:6px}.selection-bar__actions button{border:1px solid rgba(72,130,184,.55);background:#0d192dd9;color:#e6edf6;border-radius:6px;padding:5px 9px;font-size:.76rem;cursor:pointer}.selection-bar__actions button:disabled{opacity:.5;cursor:not-allowed}.vessel-label-icon{pointer-events:none!important;background:transparent!important;border:none!important}.draw-bar{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:1000;display:flex;align-items:center;gap:8px;background:#0a1220f2;border:1px solid rgba(251,191,36,.5);border-radius:8px;padding:6px 12px;box-shadow:0 12px 34px #0000003d;font-size:.78rem}.draw-bar__hint{color:#fbbf24}.draw-bar button{border:1px solid rgba(72,130,184,.55);background:#0d192dd9;color:#e6edf6;border-radius:6px;padding:4px 9px;font-size:.74rem;cursor:pointer}.presence-panel{position:absolute;top:12px;right:12px;bottom:12px;z-index:1100;width:340px;max-width:calc(100% - 24px);display:flex;flex-direction:column;background:#0a1220f5;border:1px solid rgba(56,102,145,.32);border-radius:10px;padding:12px;box-shadow:0 12px 34px #0006;overflow:hidden}.presence-panel__head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.presence-panel__title{margin:0;font-size:.95rem}.presence-panel__subtitle{color:#93a8c1;font-size:.76rem}.presence-panel__close{border:none;background:transparent;color:#93a8c1;font-size:1.2rem;cursor:pointer;line-height:1}.presence-panel__interval{font-size:.8rem;overflow-y:auto}.presence-panel__run{margin-top:10px;padding:8px;border-radius:8px;border:1px solid rgba(72,130,184,.55);background:#38bdf82e;color:#e6edf6;cursor:pointer}.presence-panel__run:disabled{opacity:.6;cursor:wait}.presence-panel__error{color:#fb7185;font-size:.8rem}.presence-panel__summary{color:#93a8c1;font-size:.8rem;margin:0 0 8px}.presence-panel__toolbar{display:flex;gap:6px;margin-bottom:8px}.presence-panel__toolbar select,.presence-panel__toolbar button{background:#060d19e0;border:1px solid rgba(56,102,145,.32);color:#e6edf6;border-radius:6px;padding:4px 8px;font-size:.74rem;cursor:pointer}.presence-panel__list{list-style:none;margin:0;padding:0;flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:3px}.presence-panel__row{background:#0d192d99;border-radius:6px;padding:5px}.presence-panel__row-main{display:flex;align-items:center;gap:8px;padding:2px 2px 6px;cursor:pointer}.presence-panel__row-text{display:flex;flex-direction:column;min-width:0}.presence-panel__name{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.presence-panel__meta{font-size:.7rem;color:#93a8c1}.presence-panel__actions{display:flex;gap:6px;margin-top:8px}.presence-panel__row-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.presence-panel__actions button{flex:1;border:1px solid rgba(72,130,184,.55);background:#38bdf82e;color:#e6edf6;border-radius:6px;padding:7px;font-size:.78rem;cursor:pointer}.presence-panel__actions button:disabled{opacity:.5;cursor:not-allowed}.vessel-popup__photo{width:100%;max-height:120px;object-fit:cover;border-radius:6px;margin-bottom:4px}.vessel-popup__actions{margin-top:6px}.vessel-popup__error{color:#fb7185;font-size:.75rem}.vessel-popup__credit{font-size:.64rem;color:#5a7a9a;margin-top:-3px}.vessel-popup__credit a{color:#5a7a9a;text-decoration:none}.vessel-popup__credit a:hover{color:#93a8c1;text-decoration:underline}.vessel-popup__details{margin-top:3px;font-size:.76rem}.vessel-popup__details summary{cursor:pointer;color:#93a8c1;-webkit-user-select:none;user-select:none}.vessel-popup__details summary:hover{color:#e6edf6}.vessel-popup__grid{display:flex;flex-direction:column;gap:2px;margin-top:5px;padding-top:5px;border-top:1px solid rgba(56,102,145,.28)}.vessel-popup__grid-row{display:flex;justify-content:space-between;gap:10px}.vessel-popup__grid-label{color:#5a7a9a;flex-shrink:0}.vessel-popup__grid-value{text-align:right;overflow-wrap:anywhere}.vessel-label{display:inline-block;background:#0a1220e0;border:1px solid rgba(56,102,145,.32);color:#e6edf6;font-size:.7rem;padding:1px 5px;border-radius:3px;white-space:nowrap}.main-panel__error{position:absolute;top:12px;left:12px;z-index:1000;background:#fb718529;border:1px solid #fb7185;color:#fb7185;padding:6px 10px;border-radius:6px;font-size:.8rem}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#0c1727;color:#e6edf6;box-shadow:0 12px 34px #0006}.leaflet-popup-content{margin:10px 12px}.leaflet-popup-close-button{color:#93a8c1!important}.vessel-popup__body{display:flex;flex-direction:column;gap:3px;font-size:.8rem}.pv-plot-hit-target{width:36px;height:36px;margin:-18px 0 0 -18px;padding:0;border:0;border-radius:50%;background:transparent;opacity:0;cursor:pointer;pointer-events:auto;touch-action:manipulation}.pv-plot-hit-target:focus-visible{opacity:1;background:#ffffff24;outline:2px solid #ffffff;outline-offset:1px}.vessel-popup__body strong{font-size:.88rem}.vessel-popup__remove{margin-top:6px;padding:5px 8px;border-radius:6px;border:1px solid rgba(251,113,133,.5);background:#fb71851f;color:#fb7185;cursor:pointer;font-size:.78rem}.timeline-strip{height:100%;display:flex;flex-direction:column;padding:8px 12px;background:#0a1424;border-top:1px solid rgba(56,102,145,.32)}.timeline-strip__controls{display:flex;align-items:center;gap:10px;margin-bottom:6px}.timeline-strip__play{width:28px;height:28px;border-radius:50%;border:1px solid rgba(72,130,184,.55);background:#0d192dd9;color:#e6edf6;cursor:pointer}.timeline-strip__speed{background:#060d19e0;color:#e6edf6;border:1px solid rgba(56,102,145,.32);border-radius:4px;padding:2px 6px}.timeline-strip__clock{color:#93a8c1;font-size:.78rem;font-family:ui-monospace,monospace}.timeline-strip__track{position:relative;flex:1;min-height:24px;background:#0d192dd9;border-radius:4px;cursor:pointer}.timeline-strip__fill{position:absolute;inset:0 auto 0 0;background:#38bdf82e;border-radius:4px;pointer-events:none}.timeline-strip__cursor{position:absolute;top:0;bottom:0;width:2px;background:#38bdf8;pointer-events:none}.fleet-picker__title,.profile-dock__title{margin:0 0 8px;font-size:.95rem;color:#e6edf6}.fleet-picker__subtitle{margin:12px 0 6px;font-size:.8rem;color:#93a8c1}.fleet-picker__hint{margin:0 0 8px;font-size:.76rem;color:#5a7a9a}.fleet-picker__selected{border:1px solid rgba(56,102,145,.3);background:#0d192d73;border-radius:7px;padding:6px;margin-bottom:8px}.fleet-picker__selected-strip{display:flex;flex-wrap:wrap;gap:4px}.fleet-picker__selected-chip{display:inline-flex;align-items:center;gap:4px;min-width:0;max-width:100%;border:1px solid rgba(72,130,184,.35);border-radius:999px;padding:2px 7px;color:#dbeafe;font-size:.7rem}.fleet-picker__bulk{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.fleet-picker__bulk button{border:1px solid rgba(72,130,184,.45);background:#0d192dc7;color:#dbeafe;border-radius:6px;padding:5px 7px;font-size:.74rem;cursor:pointer}.fleet-picker__bulk button:disabled{opacity:.46;cursor:not-allowed}.fleet-picker__status,.profile-dock__status{color:#93a8c1;font-size:.8rem}.fleet-picker__status--error,.profile-dock__status--error{color:#fb7185}.fleet-picker__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;max-height:min(36vh,330px);overflow-y:auto}.fleet-picker__row label{display:flex;align-items:center;gap:6px;padding:4px 6px;border-radius:4px;cursor:pointer;font-size:.85rem}.fleet-picker__row label:hover{background:#14243ce0}.fleet-picker__row input[type=checkbox]{position:relative;z-index:2;flex:0 0 auto}.fleet-picker .vessel-thumb,.presence-panel .vessel-thumb,.fleet-search-panel .vessel-thumb{pointer-events:none}.fleet-picker__swatch{width:10px;height:10px;border-radius:50%;flex-shrink:0}.fleet-picker__row-main{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.fleet-picker__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-picker__meta{font-size:.72rem;color:#93a8c1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-picker__interval-host{font-size:.8rem}.fleet-picker__interval-host .pv-interval__calendar-wrap{max-height:min(310px,38vh);overflow-y:auto;padding-right:2px}.fleet-picker__interval-host .pv-interval__cell{height:24px;border-radius:5px;font-size:.66rem}.fleet-picker__source-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:6px 0 8px;padding:3px;border:1px solid rgba(123,168,204,.38);border-radius:7px;background:#050c16c7}.fleet-picker__source-toggle button{min-width:0;border:0;border-radius:5px;padding:7px 8px;background:transparent;color:#a9bfd3;font-size:.72rem;font-weight:800;cursor:pointer}.fleet-picker__source-toggle button.is-active{background:#49b9c247;color:#e6fbff;box-shadow:inset 0 0 0 1px #6ddde685}.fleet-picker__source-note{margin:-2px 0 10px;color:#9fb6c9;font-size:11px;line-height:1.35}.speed-dock__source-badge{display:inline-flex;align-items:center;width:fit-content;margin-top:4px;padding:3px 7px;border-radius:999px;background:#49b9c229;color:#a9f4f6;border:1px solid rgba(109,221,230,.34);font-size:11px;font-weight:750}.fleet-picker__window-actions{position:sticky;bottom:0;margin:8px -12px -12px;padding:10px 12px 12px;border-top:1px solid rgba(56,102,145,.32);background:#070e1afa}.fleet-picker__apply{margin-top:12px;width:100%;padding:8px;border-radius:8px;border:1px solid rgba(72,130,184,.55);background:#38bdf82e;color:#e6edf6;cursor:pointer}.fleet-picker__apply:disabled{opacity:.5;cursor:not-allowed}.fleet-search-panel__title{margin:0 0 8px;font-size:.95rem;color:#e6edf6}.fleet-search-panel__title--fleet{margin-top:18px;padding-top:14px;border-top:1px solid rgba(56,102,145,.32)}.fleet-search-panel__input{width:100%;background:#060d19e0;border:1px solid rgba(56,102,145,.32);border-radius:6px;color:#e6edf6;padding:7px 8px;font-size:.85rem;margin-bottom:8px}.fleet-search-panel__status{color:#93a8c1;font-size:.8rem}.fleet-search-panel__status--error{color:#fb7185}.fleet-search-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.fleet-search-panel__row{padding:6px;border-radius:6px;background:#0d192d99}.fleet-search-panel__row--open{background:#10213ad1}.fleet-search-panel__summary{width:100%;display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;color:inherit;text-align:left;cursor:pointer}.fleet-search-panel__row-main{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.fleet-search-panel__name{font-size:.83rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fleet-search-panel__meta{font-size:.72rem;color:#93a8c1}.fleet-search-panel__chevron{width:24px;height:24px;border:1px solid rgba(72,130,184,.5);border-radius:5px;display:inline-flex;align-items:center;justify-content:center;color:#9cc8e6;flex:0 0 auto}.fleet-search-panel__routes{margin-top:6px}.profile-dock{container-type:inline-size}.profile-dock__summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0 0 10px}.profile-dock__summary-card,.profile-dock__vessel-kpis span{border:1px solid rgba(56,102,145,.32);border-radius:7px;background:#0d192d9e}.profile-dock__summary-card{padding:7px 8px;min-width:0}.profile-dock__summary-card b{display:block;color:#e6edf6;font-size:.9rem;line-height:1.2}.profile-dock__summary-card span{display:block;color:#93a8c1;font-size:.66rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-dock__tabs{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.profile-dock__vessel-kpis{display:flex;flex-wrap:wrap;gap:6px;margin:-2px 0 10px}.profile-dock__vessel-kpis span{padding:4px 7px;color:#b7c6db;font-size:.7rem}.chip{border:1px solid rgba(56,102,145,.32);background:#0d192dd9;color:#93a8c1;border-radius:999px;padding:3px 10px;font-size:.75rem;cursor:pointer}.chip--active{border-color:#38bdf8;color:#e6edf6;background:#38bdf82e}.profile-dock__chart{margin-bottom:10px}.profile-dock__chart-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}.profile-dock__chart-label{margin:0;font-size:.75rem;color:#93a8c1;font-weight:500}.profile-dock__metric-toggle{display:inline-flex;border:1px solid rgba(56,102,145,.36);border-radius:5px;overflow:hidden}.profile-dock__metric-toggle button{border:0;background:#0d192dad;color:#93a8c1;padding:2px 7px;font-size:.66rem;cursor:pointer}.profile-dock__metric-toggle button.is-active{background:#38bdf82e;color:#e6edf6}@container (min-width: 420px){.profile-dock__chart .js-plotly-plot{min-height:208px}}@media(max-width:480px){.top-bar{padding:0 8px;gap:6px}.top-bar__user{display:none}.top-bar__view-btn{padding:4px 6px;font-size:.72rem}.top-bar__logout{padding:4px 7px;font-size:.72rem}.panel{position:absolute;top:0;bottom:0;z-index:1200;box-shadow:0 0 24px #0006}.panel--left{left:0}.panel--right{right:0}.panel--collapsed{top:112px;bottom:auto;height:40px;background:transparent;border:0;overflow:visible;box-shadow:none;z-index:1300}.panel:not(.panel--collapsed){width:100vw!important;height:min(72vh,620px);max-height:calc(100% - 96px);top:auto;left:0;right:0;bottom:0;z-index:1260;border-top:1px solid rgba(56,102,145,.36);border-left:0;border-right:0}.panel--right .panel__content{padding-left:32px}.panel--left .panel__content{padding-right:32px}.panel:not(.panel--collapsed) .collapse-btn{top:8px;width:28px;height:28px;transform:none}.panel:not(.panel--collapsed) .collapse-btn--left{right:8px}.panel:not(.panel--collapsed) .collapse-btn--right{left:8px}.presence-panel,.coverage-panel{top:auto;left:8px;right:8px;bottom:8px;width:auto;max-width:none;height:auto;max-height:min(72vh,620px);z-index:1240}.plot-staging-panel{top:max(8px,env(safe-area-inset-top));bottom:max(8px,env(safe-area-inset-bottom));max-height:none;border-radius:8px}.plot-staging-panel .presence-panel__head{flex:0 0 auto}.plot-staging-panel__selected{flex:0 1 auto;min-height:0;margin-bottom:8px}.plot-staging-panel__list{max-height:min(16dvh,126px)}.plot-staging-panel__window{padding-bottom:max(10px,env(safe-area-inset-bottom))}.plot-staging-panel__window .fleet-picker__apply{min-height:46px}.live-map__plot-stack{max-height:44dvh}.live-map__plot-actions{top:-44px;left:8px;right:8px;max-width:none}.live-map__plot-actions button{min-height:38px;padding:7px 10px}.live-map__plot-window{margin-right:auto}.live-map__plot-recover{max-width:42vw}.live-map__plot-speed{height:220px;min-height:0;max-height:30dvh}.live-map__plot-timeline{height:72px!important;max-height:72px}.selection-bar{left:8px;right:8px;bottom:8px;transform:none;flex-direction:column;align-items:stretch;gap:8px;width:auto;max-width:none;max-height:46vh;overflow-y:auto;padding:8px}.selection-bar__count,.selection-bar__hint,.selection-bar__error{line-height:1.25}.selection-bar__actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.selection-bar__actions button,.feature-action-hub__button{min-height:30px;padding:5px 6px;white-space:normal}.live-map__layer-panel{top:8px;left:8px;max-width:60vw}.layer-panel{width:auto;max-width:60vw}.live-map__mode-btns{top:8px;right:8px}.live-map__select-btn{font-size:.72rem;padding:5px 9px}.leaflet-popup-content{margin:8px 10px}.leaflet-popup-content-wrapper{max-width:calc(100vw - 20px)}}.fleet-picker__apply,.presence-panel__run,.presence-panel__actions button,.selection-bar__actions button,.draw-bar button,.top-bar__logout,.login-form button{background:#38bdf81a;border:1px solid rgba(72,130,184,.45);transition:background .15s ease,border-color .15s ease}.fleet-picker__apply:hover:not(:disabled),.presence-panel__run:hover:not(:disabled),.presence-panel__actions button:hover:not(:disabled),.selection-bar__actions button:hover:not(:disabled),.draw-bar button:hover,.top-bar__logout:hover,.login-form button:hover:not(:disabled){background:#38bdf833;border-color:#38bdf8}.live-map__select-btn--active{background:#38bdf83d;border-color:#38bdf8;color:#e6edf6}.presence-cards{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-direction:column;gap:6px}.presence-card{width:100%;display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;background:#0d192d99;border:1px solid rgba(56,102,145,.32);border-radius:6px;color:#e6edf6;cursor:pointer}.presence-card:hover{border-color:#38bdf8;background:#14243cb3}.presence-card__label{font-size:.82rem;font-weight:600}.presence-card__count{font-size:.74rem;color:#93a8c1}.presence-card__meta,.presence-panel__bucket-note{font-size:.72rem;color:#5a7a9a}.occupancy-panel{position:absolute;top:12px;right:12px;bottom:12px;z-index:1100;width:min(1120px,calc(100% - 24px));max-width:calc(100% - 24px);display:flex;flex-direction:column;background:#0a1220f5;border:1px solid rgba(56,102,145,.32);border-radius:8px;padding:12px;box-shadow:0 12px 34px #0006;overflow:hidden}.occupancy-panel__head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.occupancy-panel__title{margin:0;font-size:1.05rem}.occupancy-panel__subtitle{font-size:.76rem;color:#93a8c1}.occupancy-panel__close{border:none;background:transparent;color:#93a8c1;font-size:1.3rem;cursor:pointer;line-height:1}.occupancy-panel__interval{font-size:.8rem}.occupancy-panel__run{margin-top:8px;padding:8px;border-radius:8px;color:#e6edf6;cursor:pointer;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.occupancy-panel__run:disabled{opacity:.5;cursor:progress}.occupancy-panel__error{color:#fb7185;font-size:.8rem}.occupancy-panel__summary{display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;font-size:.8rem;color:#93a8c1;margin:0 0 8px}.occupancy-panel__summary strong{color:#eef6ff;font-size:.88rem}.occupancy-panel__summary-range{color:#c0d3e7}.occupancy-panel__data-note{color:#617a95;font-size:.7rem;cursor:help}.occupancy-panel__summary-chip{padding:2px 7px;border-radius:999px;color:#b9d7f0;background:#38bdf81a;border:1px solid rgba(56,189,248,.22)}.occupancy-panel__new-window{margin-left:auto;font-size:.74rem;padding:3px 8px;border-radius:5px;color:#e6edf6;cursor:pointer;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.occupancy-panel--expanded{left:12px;width:auto;max-width:none;background:#080f1bfc}.occupancy-panel--expanded .occupancy-panel__gantt-scroll{background:#050c18bf}.occupancy-panel__main{display:flex;flex:1;min-height:0;gap:12px}.occupancy-panel__chart{min-width:0;min-height:0;flex:1;display:flex;flex-direction:column;border:1px solid rgba(56,102,145,.28);border-radius:6px;overflow:hidden;background:#050c188c}.occupancy-panel__chart-toolbar{min-height:38px;padding:5px 7px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;border-bottom:1px solid rgba(56,102,145,.28);background:#0a1424f0}.occupancy-panel__axis-key{display:flex;flex-direction:column;flex-shrink:0;line-height:1.15}.occupancy-panel__axis-key strong{color:#d9e8f7;font-size:.72rem}.occupancy-panel__axis-key span{color:#718aa4;font-size:.66rem}.occupancy-panel__legend{min-width:0;display:flex;align-items:center;flex-wrap:wrap;gap:5px 12px;color:#93a8c1;font-size:.68rem}.occupancy-panel__legend-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;border:1px solid rgba(255,255,255,.22)}.occupancy-panel__legend-anchor-ink{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:15px;padding:0 6px;border-radius:3px;background:linear-gradient(180deg,#ffffff61,#ffffff2e),#5fb5dc;box-shadow:inset 0 0 0 .75px #ffffff73}.occupancy-panel__legend-anchor-ink b{color:#b45309;font-size:.62rem;font-weight:600;letter-spacing:.06em;line-height:1}.occupancy-panel__anchor-inspect{display:flex;flex-direction:column;gap:4px;margin:8px 0 4px;padding:8px 10px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08)}.occupancy-panel__anchor-inspect strong{font-size:.92rem;font-weight:750}.occupancy-panel__anchor-inspect strong.is-long-wait{font-weight:800}.occupancy-panel__legend-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.occupancy-panel__identity-swatches{display:inline-flex;align-items:center}.occupancy-panel__identity-swatches b{width:9px;height:9px;border:1px solid rgba(255,255,255,.26);border-radius:50%}.occupancy-panel__identity-swatches b+b{margin-left:-2px}.occupancy-panel__legend-selected,.occupancy-panel__legend-low{width:13px;height:9px;box-sizing:border-box;border-radius:2px;background:#5ec4b4}.occupancy-panel__legend-selected{border:2px solid #f4c152}.occupancy-panel__legend-low{border:1px dashed #f7d59a;opacity:.58}.occupancy-panel__time-scale{margin-left:auto;padding:2px;display:grid;grid-template-columns:auto repeat(3,34px);align-items:center;gap:2px;flex-shrink:0;border:1px solid rgba(56,102,145,.34);border-radius:6px;background:#040b16b8}.occupancy-panel__time-scale>span{padding:0 5px;color:#718aa4;font-size:.66rem}.occupancy-panel__time-scale button{height:25px;padding:0;border:0;border-radius:4px;background:transparent;color:#91a8bf;cursor:pointer;font-size:.68rem;font-weight:700}.occupancy-panel__time-scale button:hover{color:#e7f3ff;background:#6fa2c81f}.occupancy-panel__time-scale button.is-active{color:#07111f;background:#82b8df}.occupancy-panel__side{width:292px;flex-shrink:0;display:flex;flex-direction:column;gap:10px;overflow-y:auto}.occupancy-panel__gantt-scroll{flex:1;min-width:0;min-height:0;overflow:auto;background:#050c1847;scrollbar-color:#59718b #07111f;scrollbar-width:thin}.occupancy-panel__canvas{position:relative;min-width:100%}.occupancy-panel__svg{position:absolute;top:0;right:0;bottom:0;left:0;display:block}.occupancy-panel__row-labels{position:sticky;left:0;z-index:4;background:#050c18fa;box-shadow:7px 0 14px #0000003d}.occupancy-panel__row-labels:before{content:"BERTH / QUAY";position:absolute;inset:0 0 auto 0;height:22px;box-sizing:border-box;padding:6px 8px 0;color:#607b96;font-size:.61rem;font-weight:800}.occupancy-panel__row-labels>button{position:absolute;left:0;width:100%;padding:6px 8px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;overflow:hidden;border:0;border-top:1px solid rgba(91,141,180,.34);border-left:4px solid;border-radius:0;background:#07101df7;color:#728ba5;cursor:pointer;text-align:left}.occupancy-panel__row-labels>button:hover,.occupancy-panel__row-labels>button.is-active{background:#13253cfa;color:#acc4db}.occupancy-panel__row-label-head{min-width:0;width:100%;display:flex;align-items:center;gap:6px}.occupancy-panel__row-label-head b,.occupancy-panel__stay-berth b{min-width:28px;padding:2px 4px;border-radius:3px;color:#07111f;font-size:.62rem;font-weight:900;text-align:center}.occupancy-panel__row-label-head strong{min-width:0;overflow:hidden;color:#d6e7f7;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.occupancy-panel__row-labels>button>span:last-child{font-size:.64rem;white-space:nowrap}@media(max-width:700px){.occupancy-panel__main{flex-direction:column;gap:8px}.occupancy-panel__side{width:100%;max-height:38%}.occupancy-panel__chart-toolbar{flex-wrap:wrap;gap:5px 10px}.occupancy-panel__legend{order:3;width:100%}.occupancy-panel__mini-map-frame{height:124px}}.occupancy-panel__block{cursor:pointer;transition:filter .12s ease,opacity .12s ease}.occupancy-panel__block:hover{filter:brightness(1.18) saturate(1.12)}.occupancy-panel__hint{color:#5a7a9a;font-size:.76rem;margin:8px 0 0}.occupancy-panel__mini-map{display:flex;flex-direction:column;gap:7px;padding:8px;border:1px solid rgba(56,102,145,.32);border-radius:6px;background:#050c18ad}.occupancy-panel__mini-map-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.occupancy-panel__mini-map-head strong{color:#d9e8f7;font-size:.78rem}.occupancy-panel__mini-map-head span{color:#6f88a2;font-size:.61rem;text-align:right}.occupancy-panel__mini-map-frame{position:relative;height:176px;overflow:hidden;border:1px solid rgba(112,143,173,.34);border-radius:5px;background:#07111f}.occupancy-panel__mini-leaflet{width:100%;height:100%;background:#07111f}.occupancy-panel__mini-leaflet .leaflet-tile-pane{filter:saturate(.72) brightness(.72) contrast(1.08)}.occupancy-panel__mini-leaflet .leaflet-interactive{cursor:pointer}.occupancy-panel__mini-leaflet .leaflet-control-zoom{margin:7px 0 0 7px;border:1px solid rgba(112,143,173,.46);border-radius:5px;overflow:hidden;background:#040b16d1;box-shadow:none}.occupancy-panel__mini-leaflet .leaflet-control-zoom a{width:24px;height:24px;border:0;background:#040b16db;color:#e6edf6;line-height:24px}.occupancy-panel__mini-leaflet .leaflet-control-zoom a:hover{background:#14263df0;color:#fff}.occupancy-panel__mini-map-reset{position:absolute;right:7px;bottom:7px;z-index:500;border:1px solid rgba(112,143,173,.48);border-radius:5px;padding:4px 8px;background:#040b16d6;color:#e6edf6;font-size:.66rem;font-weight:750;cursor:pointer}.occupancy-panel__mini-map-reset:hover{border-color:#7dd3fcb3;background:#10243af0}.occupancy-panel__mini-map-label{padding:2px 5px;border:0;border-radius:3px;background:#040b16e6;box-shadow:none;color:#fff;font-size:.64rem;font-weight:900}.occupancy-panel__mini-map-label:before{display:none}.occupancy-panel__north{position:absolute;top:7px;right:7px;z-index:500;width:21px;height:21px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:#040b16d1;color:#fff;font-size:.62rem;font-weight:900}.occupancy-panel__north:before{content:"";position:absolute;top:-5px;border-right:4px solid transparent;border-bottom:7px solid #ffffff;border-left:4px solid transparent}.occupancy-panel__mini-map-key{display:flex;flex-wrap:wrap;gap:5px}.occupancy-panel__mini-map-key button{min-width:0;padding:3px 6px;display:inline-flex;align-items:baseline;gap:4px;border:1px solid;border-radius:4px;background:#08111fd6;color:#8ca4bd;cursor:pointer;font-size:.62rem}.occupancy-panel__mini-map-key button strong{color:#e9f4ff}.occupancy-panel__mini-map-key button.is-active{background:#f4c15224;color:#f7d994}.occupancy-panel__batch{margin-top:8px;padding:7px 8px;display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid rgba(56,102,145,.28);border-radius:7px;background:#08101eb8}.occupancy-panel__batch-count{color:#93a8c1;font-size:.76rem;white-space:nowrap}.occupancy-panel__batch-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.occupancy-panel__range-filter{width:230px;display:flex;flex-direction:column;gap:3px;padding:5px 8px 7px;border:1px solid rgba(72,130,184,.38);border-radius:6px;background:#050c188a;color:#93a8c1;font-size:.72rem}.occupancy-panel__visible-filter{width:clamp(210px,24vw,310px);margin-left:auto;display:flex;flex-direction:column;gap:3px;padding:5px 8px 6px;border:1px solid rgba(56,189,248,.38);border-radius:7px;background:linear-gradient(180deg,#12243bc7,#060e1bbd);box-shadow:inset 0 1px #ffffff0a;color:#93a8c1;font-size:.72rem}.occupancy-panel__range-head{display:flex;justify-content:space-between;gap:8px;line-height:1.1}.occupancy-panel__range-head b{color:#38bdf8;font-weight:700}.occupancy-panel__range-track{position:relative;height:26px;display:flex;align-items:flex-end;justify-content:space-between;color:#6e87a2;font-size:.62rem}.occupancy-panel__range-track:before{content:"";position:absolute;left:0;right:0;top:7px;height:8px;border:2px solid #0a0f18;background:#e8eff7f5}.occupancy-panel__range-track>i{position:absolute;top:5px;height:12px;border:2px solid #38bdf8;background:#38bdf829;pointer-events:none}.occupancy-panel__range-track input[type=range]{position:absolute;left:-1px;right:-1px;top:0;width:calc(100% + 2px);height:18px;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;pointer-events:none}.occupancy-panel__range-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:18px;border:2px solid #38bdf8;border-radius:3px;background:#07111f;cursor:pointer;pointer-events:auto}.occupancy-panel__range-track input[type=range]::-moz-range-thumb{width:12px;height:18px;border:2px solid #38bdf8;border-radius:3px;background:#07111f;cursor:pointer;pointer-events:auto}.occupancy-panel__empty-filter{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:9px 12px;border:1px solid rgba(72,130,184,.45);border-radius:7px;background:#08101edb;color:#9fb5cc;font-size:.78rem;pointer-events:none}.occupancy-panel__batch-actions button{padding:5px 9px;border-radius:6px;color:#e6edf6;cursor:pointer;font-size:.74rem;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.occupancy-panel__batch-actions button:disabled{opacity:.5;cursor:not-allowed}.occupancy-panel__roster{display:flex;flex-direction:column;min-height:0;gap:8px}.occupancy-panel__roster-head{display:flex;flex-direction:column;gap:2px}.occupancy-panel__roster-head strong{font-size:.9rem}.occupancy-panel__roster-list{list-style:none;margin:0;padding:0;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:4px}.occupancy-panel__roster-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:6px;border:1px solid rgba(56,102,145,.28);border-left:3px solid;background:#0d192d80;cursor:pointer}.occupancy-panel__roster-row:hover{background:#14243cb3}.occupancy-panel__roster-row--active{border-color:#38bdf8b3;background:#38bdf81f}.occupancy-panel__roster-info{min-width:0;flex:1;display:flex;flex-direction:column}.occupancy-panel__roster-info strong{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.occupancy-panel__roster-hq{flex-shrink:0;padding:4px 8px;border-radius:6px;color:#e6edf6;cursor:pointer;font-size:.72rem;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.occupancy-panel__roster-actions{display:flex;gap:6px}.occupancy-panel__roster-actions button{flex:1;padding:6px 8px;border-radius:6px;color:#e6edf6;cursor:pointer;font-size:.76rem;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.occupancy-panel__roster-actions button:disabled{opacity:.5;cursor:not-allowed}.occupancy-panel__detail{margin-top:8px;padding:8px 10px;border:1px solid rgba(56,102,145,.32);border-radius:6px;background:#0d192d99;display:flex;flex-direction:column;gap:3px;font-size:.82rem}.occupancy-panel__detail-head{display:flex;align-items:flex-start;gap:8px}.occupancy-panel__detail-head>div{min-width:0;display:flex;flex-direction:column}.occupancy-panel__detail-head strong{min-width:0;display:flex;align-items:center;gap:6px}.occupancy-panel__detail-head strong i{width:9px;height:9px;flex:0 0 auto;border-radius:50%;box-shadow:0 0 0 1px #ffffff3d}.occupancy-panel__stay-berth{margin:5px 0 2px;padding:6px;display:flex;align-items:center;gap:7px;border:1px solid rgba(87,124,158,.3);border-radius:4px;background:#050c188a;color:#cadced;font-size:.7rem}.occupancy-panel__confidence{width:fit-content;margin-top:3px;padding:2px 6px;border:1px solid rgba(119,155,187,.3);border-radius:4px;color:#9db5cc;font-size:.66rem;cursor:help}.occupancy-panel__confidence--high{border-color:#4fd1a166;color:#7bdcb7}.occupancy-panel__confidence--medium{border-color:#f4c1526b;color:#f0ca74}.occupancy-panel__confidence--low{border-style:dashed;border-color:#f08b6385;color:#f2a887}.occupancy-panel__detail-meta{color:#93a8c1;font-size:.74rem}.occupancy-panel__detail-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.occupancy-panel__detail-actions button{padding:5px 10px;border-radius:6px;color:#e6edf6;cursor:pointer;font-size:.76rem;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.occupancy-panel__detail-actions button:disabled{opacity:.5;cursor:not-allowed}.occupancy-panel__vessel-key{min-height:0;display:flex;flex:1;flex-direction:column;gap:6px}.occupancy-panel__vessel-key-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px}.occupancy-panel__vessel-key-head strong{color:#d9e8f7;font-size:.78rem}.occupancy-panel__vessel-key-head span{color:#6f88a2;font-size:.61rem}.occupancy-panel__vessel-key-list{min-height:0;display:flex;flex-direction:column;gap:3px;overflow-y:auto}.occupancy-panel__vessel-key-list button{min-width:0;padding:5px 6px;display:grid;grid-template-columns:10px minmax(0,1fr);align-items:center;gap:7px;border:1px solid transparent;border-radius:4px;background:transparent;color:#cfe0ef;cursor:pointer;text-align:left}.occupancy-panel__vessel-key-list button:hover{border-color:#5e98c64d;background:#14263d9e}.occupancy-panel__vessel-key-list button>i{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 1px #ffffff3d}.occupancy-panel__vessel-key-list button>span{min-width:0;display:flex;flex-direction:column}.occupancy-panel__vessel-key-list strong{overflow:hidden;font-size:.7rem;text-overflow:ellipsis;white-space:nowrap}.occupancy-panel__vessel-key-list small{color:#6f88a2;font-size:.62rem}@media(max-width:700px){.occupancy-panel__mini-map-frame{height:124px}}@media(max-width:480px){.occupancy-panel{position:fixed;top:auto;left:8px;right:8px;bottom:8px;z-index:1400;width:auto;max-height:min(76vh,660px)}.occupancy-panel--expanded{top:51px;left:8px;right:8px;bottom:8px;max-height:none}.occupancy-panel__head{gap:8px}.occupancy-panel__summary{gap:6px}.occupancy-panel__summary-range{order:6;width:100%}.occupancy-panel__data-note{display:none}.occupancy-panel__new-window{margin-left:0}.occupancy-panel__chart-toolbar{min-height:34px;padding:4px 5px}.occupancy-panel__axis-key{flex-direction:row;gap:7px}.occupancy-panel__legend{overflow:visible;flex-wrap:wrap;gap:3px 10px}.occupancy-panel__time-scale{grid-template-columns:repeat(3,34px)}.occupancy-panel__time-scale>span{display:none}.occupancy-panel__mini-map-frame{height:112px}.occupancy-panel__mini-map-head span{display:none}.occupancy-panel__detail-actions{flex-wrap:wrap}.occupancy-panel__batch{align-items:flex-start;flex-direction:column}.occupancy-panel__batch-actions{width:100%;justify-content:flex-start}}.vessel-label-icon{pointer-events:none!important}.coverage-panel{position:absolute;top:12px;right:12px;max-height:calc(100% - 24px);height:fit-content;z-index:1100;width:330px;max-width:calc(100% - 24px);display:flex;flex-direction:column;background:#0a1220f5;border:1px solid rgba(56,102,145,.32);border-radius:10px;padding:12px;box-shadow:0 12px 34px #0006;overflow-y:auto}.coverage-panel__head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.coverage-panel__title{margin:0;font-size:.95rem}.coverage-panel__subtitle{font-size:.76rem;color:#93a8c1}.coverage-panel__close{border:none;background:transparent;color:#93a8c1;font-size:1.3rem;cursor:pointer;line-height:1}.coverage-panel__interval{font-size:.8rem}.coverage-panel__res{display:flex;align-items:center;gap:8px;font-size:.78rem;color:#93a8c1;margin-top:8px}.coverage-panel__res select,.coverage-panel__toolbar select{background:#060d19e0;color:#e6edf6;border:1px solid rgba(56,102,145,.32);border-radius:4px;padding:2px 6px}.coverage-panel__run{margin-top:8px;padding:8px;border-radius:8px;color:#e6edf6;cursor:pointer;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.coverage-panel__run:disabled{opacity:.5;cursor:progress}.coverage-panel__error{color:#fb7185;font-size:.8rem}.coverage-panel__note{color:#f59e0b;font-size:.74rem;margin:4px 0}.coverage-panel__cards{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.coverage-card{display:flex;flex-direction:column;align-items:center;padding:7px 4px;background:#0d192d99;border:1px solid rgba(56,102,145,.32);border-radius:6px}.coverage-card__value{font-size:.95rem;font-weight:600}.coverage-card__label{font-size:.64rem;color:#5a7a9a;text-transform:uppercase;letter-spacing:.05em}.coverage-panel__histogram{display:flex;flex-direction:column;gap:3px;margin-bottom:10px}.coverage-panel__bar-row{display:flex;align-items:center;gap:6px;font-size:.7rem;color:#93a8c1}.coverage-panel__bar-label{width:64px;flex-shrink:0;text-align:right}.coverage-panel__bar-track{flex:1;height:8px;background:#0d192d99;border-radius:4px;overflow:hidden}.coverage-panel__bar{height:100%;background:#38bdf8;border-radius:4px}.coverage-panel__bar-count{width:44px;flex-shrink:0}.coverage-panel__toolbar{display:flex;align-items:center;gap:8px;font-size:.78rem;color:#93a8c1}.coverage-panel__toolbar button{margin-left:auto;font-size:.74rem;padding:3px 8px;border-radius:5px;color:#e6edf6;cursor:pointer;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.coverage-panel__hint{color:#5a7a9a;font-size:.74rem;margin:8px 0 0}.playback-bar-host{position:absolute;left:50%;transform:translate(-50%);bottom:14px;z-index:1100;width:min(680px,calc(100% - 24px));pointer-events:none}.playback-bar{pointer-events:auto;display:flex;flex-direction:column;gap:6px;background:#0a1220f0;border:1px solid rgba(56,102,145,.32);border-radius:10px;padding:10px 12px;box-shadow:0 12px 34px #0006}.playback-bar__controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.78rem;color:#93a8c1}.playback-bar__play{width:32px;height:26px;border-radius:6px;color:#e6edf6;cursor:pointer;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.playback-bar__speed{background:#060d19e0;color:#e6edf6;border:1px solid rgba(56,102,145,.32);border-radius:4px;padding:2px 6px}.playback-bar__clock{font-size:.74rem;color:#e6edf6}.playback-bar__stat{color:#38bdf8;font-weight:600}.playback-bar__follow{font-size:.72rem;padding:2px 8px;border-radius:10px;cursor:pointer;color:#93a8c1;background:transparent;border:1px solid rgba(56,102,145,.32)}.playback-bar__follow--on{color:#0b1626;background:#38bdf8;border-color:#38bdf8}.playback-bar__exit{margin-left:auto;font-size:.74rem;padding:3px 8px;border-radius:5px;color:#e6edf6;cursor:pointer;background:#38bdf81a;border:1px solid rgba(72,130,184,.45)}.playback-bar__spark{position:relative;height:28px}.playback-bar__spark svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.playback-bar__spark-label{position:absolute;top:0;right:4px;font-size:.6rem;color:#5a7a9a;text-transform:uppercase;letter-spacing:.05em}.playback-bar__track{position:relative;height:10px;background:#0d192dcc;border-radius:5px;cursor:pointer;touch-action:none}.playback-bar__fill{position:absolute;left:0;top:0;bottom:0;background:#38bdf859;border-radius:5px}.playback-bar__cursor{position:absolute;top:-3px;bottom:-3px;width:2px;background:#f8fafc}.vessel-label--main{color:#f8fafc;font-weight:700;border-color:#f8fafc8c}.playback-panel__progress{display:flex;flex-direction:column;gap:5px;margin-top:4px}.playback-panel__progress-track{height:8px;background:#0d192dcc;border-radius:4px;overflow:hidden}.playback-panel__progress-fill{height:100%;background:#38bdf8;border-radius:4px;transition:width .4s ease}.playback-panel__phase{font-size:.78rem;color:#e6edf6}.playback-panel__message{font-size:.7rem;color:#5a7a9a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.playback-bar-host{bottom:10px}.playback-bar__controls{font-size:.72rem;gap:6px}}.intel-panel{width:640px}.intel-panel__mode{display:grid;gap:4px;margin-top:8px;font-size:.78rem;color:#9db2ca}.intel-panel__mode select{width:100%;border:1px solid rgba(72,130,184,.45);border-radius:8px;background:#060d19e0;color:#e6edf6;padding:8px 10px}.intel-panel__answer{margin:8px 0;padding:10px;border:1px solid rgba(72,130,184,.42);border-radius:8px;background:#060d19a8}.intel-panel__answer-head{display:flex;justify-content:space-between;gap:10px;color:#d8e6f5;font-size:.82rem}.intel-panel__answer-head span,.intel-panel__zone span{color:#9db2ca}.intel-panel__zone-list{display:grid;gap:6px;margin-top:8px}.intel-panel__zone{display:grid;grid-template-columns:10px 1fr;gap:8px;font-size:.78rem}.intel-panel__zone-dot{width:8px;height:8px;border-radius:999px;margin-top:5px}.intel-panel__zone>div{display:grid;gap:3px}.intel-panel__stay{width:fit-content;border:1px solid rgba(56,189,248,.45);border-radius:999px;background:#38bdf81a;color:#d8e6f5;padding:3px 8px;cursor:pointer;font-size:.75rem}.intel-panel__segment{cursor:pointer}.zone-save{display:flex;flex-direction:column;gap:4px}.zone-save__name,.zone-save__scope{background:#060d19e0;color:#e6edf6;border:1px solid rgba(56,102,145,.32);border-radius:4px;padding:3px 6px;font-size:.78rem}.world-port-popup{min-width:150px;font-size:12px;line-height:1.4}.world-port-popup strong,.world-port-popup span{display:block}.world-port-popup span{color:#64748b;margin-top:2px}.world-port-popup dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:8px 0 0}.world-port-popup dt{color:#64748b}.world-port-popup dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.port-marker-wrap{overflow:visible!important;background:none;border:none}.port-marker{position:absolute;top:50%;left:50%;width:16px;height:16px;cursor:pointer;pointer-events:auto}.port-marker__pin{position:absolute;top:-7px;left:-7px;width:14px;height:14px;border-radius:50%;background:var(--pc, #2dd4bf);border:2px solid rgba(255,255,255,.92);box-shadow:0 0 0 4px color-mix(in srgb,var(--pc, #2dd4bf) 35%,transparent),0 6px 14px #00000073}.port-marker__body{position:absolute;left:13px;top:-14px;display:flex;flex-direction:column;padding:4px 9px 5px;border:1px solid color-mix(in srgb,var(--pc, #2dd4bf) 65%,transparent);border-radius:8px;background:#040a12e6;box-shadow:0 10px 24px #0006;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);white-space:nowrap}.port-marker__name{color:#f8fafc;font-size:.74rem;font-weight:750;line-height:1.15}.port-marker__pct{color:var(--pc, #2dd4bf);font-size:.62rem;font-weight:650;letter-spacing:.04em}.port-marker--selected .port-marker__body{border-width:2px}.port-marker:hover .port-marker__body{background:#0a1624f5}.port-card{position:absolute;top:148px;right:12px;z-index:1100;width:min(420px,calc(100vw - 24px));max-height:calc(100vh - 168px);overflow-x:hidden;overflow-y:auto;border:1px solid rgba(92,154,190,.38);border-radius:10px;background:#060e18f0;box-shadow:0 18px 44px #0000006b;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#e6edf6}.port-card__media{position:relative;height:132px;background:#0f1a28e6}.port-card__media img{width:100%;height:100%;object-fit:cover;display:block}.port-card__media-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#040a121a 30%,#040a12e0);pointer-events:none}.port-card__close{position:absolute;top:6px;right:6px;z-index:2;width:26px;height:26px;border:1px solid rgba(148,163,184,.4);border-radius:50%;background:#040a12b8;color:#e6edf6;font-size:1rem;line-height:1;cursor:pointer}.port-card__close:hover{background:#1e293be6}.port-card__title{position:absolute;left:10px;right:76px;bottom:8px;z-index:1}.port-card__eyebrow{display:block;color:#7dd3fc;font-size:.6rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,.8)}.port-card__title strong{display:block;font-size:1.02rem;line-height:1.2;text-shadow:0 1px 5px rgba(0,0,0,.85)}.port-card__pct{position:absolute;right:8px;bottom:8px;z-index:1;padding:3px 7px;border:1px solid;border-radius:6px;background:#040a12c7;font-size:.7rem;font-weight:750}.port-card__stats{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:9px 10px 4px}.port-card__stats div{display:flex;flex-direction:column;align-items:center;padding:5px 2px;border:1px solid rgba(71,85,105,.4);border-radius:7px;background:#0f1a28a6}.port-card__stats b{font-size:.78rem;font-weight:750;color:#f1f5f9}.port-card__stats span{font-size:.56rem;color:#94a3b8;letter-spacing:.05em;text-transform:uppercase}.port-card .feature-action-hub{padding:6px 10px 8px}.port-card__details{margin:0 10px 8px;border-top:1px solid rgba(71,85,105,.35);padding-top:6px}.port-card__details summary{cursor:pointer;color:#94a3b8;font-size:.68rem;font-weight:650;letter-spacing:.05em;text-transform:uppercase}.port-card__details dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0 0;font-size:.72rem}.port-card__details dt{color:#7f93ab}.port-card__details dd{margin:0;text-align:right;color:#dbe6f2;font-weight:600}.port-card__credit{display:block;padding:0 10px 8px;color:#64748b;font-size:.62rem;text-decoration:none}.port-card__credit:hover{color:#94a3b8;text-decoration:underline}.port-card__credit--muted{cursor:default}.port-card__top100{border-top:1px solid rgba(71,85,105,.45);padding:8px 8px 10px}.port-card__top100-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:8px;padding:0 2px}.port-card__top100-head strong{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:#7dd3fc}.port-card__top100-head span{color:#7f93ab;font-size:.62rem}.port-card__top100-empty{margin:0;padding:8px 4px;color:#94a3b8;font-size:.72rem}.port-card__matrix{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.port-card__ship{display:flex;flex-direction:column;align-items:stretch;gap:4px;margin:0;padding:6px;border:1px solid rgba(71,85,105,.45);border-radius:8px;background:#0a1420b8;color:inherit;text-align:left;cursor:pointer}.port-card__ship:hover:not(:disabled){border-color:#7dd3fc8c;background:#0f1c2ceb}.port-card__ship:disabled{opacity:.55;cursor:not-allowed}.port-card__ship .vessel-thumb{width:100%!important;height:64px!important;border-radius:6px}.port-card__ship-name{display:block;overflow:hidden;color:#e6edf6;font-size:.68rem;font-weight:650;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}.port-card__ship-cov{font-size:.62rem;font-weight:700}.fleet-search-panel__subtitle{margin:10px 0 4px;color:#7dd3fc;font-size:.64rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}.fleet-search-panel__port-flag{flex-shrink:0;width:46px;height:46px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(71,85,105,.4);border-radius:8px;background:#0f1a28a6;font-size:1.3rem}@media(max-width:480px){.port-card{position:fixed;top:auto;right:0;left:0;bottom:0;width:100%;max-height:72vh;overflow-y:auto;border-radius:14px 14px 0 0;border-left:none;border-right:none;border-bottom:none}.port-card__media{height:116px}}:root{--bg-deep: #050a14;--bg-bar-1: #0a1424;--bg-bar-2: #0f1c33;--panel-bg: rgba(10, 18, 32, .92);--panel-bg-solid: #0c1727;--border: rgba(56, 102, 145, .32);--border-strong: rgba(72, 130, 184, .55);--text: #e6edf6;--text-muted: #93a8c1;--accent: #38bdf8;--accent-dim: rgba(56, 189, 248, .18);--accent-glow: rgba(56, 189, 248, .4);--danger: #fb7185;--warn: #f59e0b;--ok: #34d399;--font-ui: "Outfit", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--topbar-h: 64px;--radius: 8px;--surface-raised: rgba(10, 18, 32, .94);--surface-subtle: rgba(13, 25, 45, .72);--control-bg: rgba(13, 25, 45, .85);--control-bg-hover: rgba(20, 36, 60, .88);--shadow-soft: 0 12px 34px rgba(0, 0, 0, .24);--shadow-tight: 0 4px 12px rgba(0, 0, 0, .18);--chrome-line: linear-gradient(90deg, transparent, var(--accent) 50%, transparent);--map-overlay-tint: rgba(10, 18, 32, .78);--input-bg: rgba(6, 13, 25, .88);--button-radius: 8px}.archive-panel__body{margin-top:8px;padding:10px 10px 8px;border-radius:var(--radius, 8px);border:1px solid var(--border);background:#0003}.archive-panel__body.archive-panel__body--dialog{margin-top:0;padding:12px 12px 14px;border-radius:0 0 var(--radius, 8px) var(--radius, 8px);border:none;border-top:1px solid var(--border)}.archive-panel__intro{margin:0 0 8px;font-size:.72rem;line-height:1.35;color:var(--text-muted)}.archive-panel__intro code{font-size:.68rem;color:var(--accent, #38bdf8)}.archive-panel__label{display:block;font-size:.68rem;font-weight:600;color:var(--text-muted);margin-bottom:4px}.archive-panel__input{width:100%;box-sizing:border-box;font-family:var(--font-mono);font-size:.72rem;padding:8px 10px;border-radius:6px;border:1px solid var(--border-strong);background:var(--panel-bg, #0f172a);color:var(--text)}.archive-panel__row{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap}.archive-panel__btn{flex:1;min-width:120px;font-family:var(--font-ui);font-size:.72rem;font-weight:600;padding:7px 10px;border-radius:6px;border:1px solid var(--border-strong);background:var(--accent, #38bdf8);color:#0a1424;cursor:pointer}.archive-panel__btn--ghost{background:transparent;color:var(--text-muted);border-color:var(--border)}.archive-panel__status{margin:8px 0 0;font-size:.7rem;line-height:1.35;color:var(--text-muted);min-height:2.5em}.archive-access-dialog{border:none;padding:0;max-width:min(440px,calc(100vw - 20px));width:100%;background:transparent;color:var(--text)}.archive-access-dialog::backdrop{background:#02060eb8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.archive-access-dialog__panel{border-radius:var(--radius, 10px);border:1px solid var(--border-strong);background:var(--panel-bg-solid);box-shadow:0 20px 50px #0000008c;overflow:hidden}.archive-access-dialog__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 14px;border-bottom:1px solid var(--border);background:#081020f2}.archive-access-dialog__title{margin:0;font-size:1rem;font-weight:700;letter-spacing:.01em}.archive-access-dialog__close-form{margin:0;padding:0}.archive-access-dialog__close{width:40px;height:40px;border-radius:var(--radius);border:1px solid var(--border);background:#0c1628e6;color:var(--text-muted);font-size:1.35rem;line-height:1;cursor:pointer}.archive-access-dialog__close:hover{color:var(--text);border-color:var(--border-strong)}.topbar__history-btn{display:inline-flex}@media(max-width:768px),(hover:none)and (pointer:coarse){.archive-panel__input--touch,.archive-panel__input--access{font-size:1rem;min-height:48px;padding:12px}.archive-panel__btn{min-height:48px;font-size:.82rem}}@media(max-width:768px){.archive-access-dialog{max-width:100vw;width:100%;height:100%;max-height:100dvh;margin:0}.archive-access-dialog__panel{display:flex;flex-direction:column;min-height:100%;max-height:100dvh;border-radius:0}.archive-panel__body--dialog{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:max(16px,env(safe-area-inset-bottom,16px))}}.interval-selector-dialog{max-width:min(340px,calc(100vw - 16px))}.pv-interval__body{display:flex;flex-direction:column;gap:8px;padding:10px 12px 12px}.pv-interval--embedded .pv-interval__body{padding:0;gap:6px}.pv-interval__presets{display:flex;flex-wrap:wrap;gap:6px}.pv-interval__preset{flex:1 1 0;min-width:0;min-height:32px;padding:5px 8px;border-radius:8px;border:1px solid var(--border);background:var(--control-bg);color:var(--text);font-size:.7rem;font-weight:600;cursor:pointer}.pv-interval__preset.is-active{border-color:var(--accent);background:var(--accent-dim);color:var(--text)}.pv-interval__exclude{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none}.pv-interval__exclude-input{width:16px;height:16px;accent-color:var(--accent)}.pv-interval__intro{margin:0;font-size:.72rem;line-height:1.35}.pv-interval__calendar-hint{margin:0 0 4px;font-size:.65rem;color:var(--text-muted)}.pv-interval__weekhead,.pv-interval__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.pv-interval__dow{text-align:center;font-size:.58rem;font-weight:600;color:var(--text-muted);padding:0 0 2px}.pv-interval__cell{aspect-ratio:1;min-height:0;height:28px;max-height:32px;border:1px solid var(--border);border-radius:6px;background:var(--control-bg);color:var(--text);font-size:.72rem;font-weight:600;cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;padding:0}.pv-interval__cell--pad{visibility:hidden;pointer-events:none;border-color:transparent;background:transparent}.pv-interval__cell--today{box-shadow:inset 0 0 0 1px #38bdf88c}.pv-interval__cell--in-range{background:#38bdf847;border-color:#38bdf8a6;color:var(--text)}.pv-interval__cell:hover:not(.pv-interval__cell--pad){border-color:var(--border-strong)}.pv-interval__summary{margin:0;font-family:var(--font-mono, "JetBrains Mono", monospace);font-size:.68rem;color:var(--text-muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pv-interval__footer{margin-top:2px}.pv-interval__err:empty{display:none}.pv-interval-embed{min-width:0}.pb-window-picker{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap}.pb-window-summary{font-size:.72rem;color:var(--text-muted);font-family:var(--font-mono, "JetBrains Mono", monospace);max-width:14rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px),(hover:none)and (pointer:coarse){.pv-interval__preset{min-height:36px;font-size:.72rem}.pv-interval__cell{height:32px;max-height:34px;font-size:.75rem}.interval-selector-dialog .archive-access-dialog__panel{max-height:min(92dvh,640px)}.interval-selector-dialog .pv-interval__body{overflow-y:auto;-webkit-overflow-scrolling:touch}}.vessel-thumb{position:relative;flex-shrink:0;border-radius:8px;overflow:hidden;background:#0d1c33;border:1px solid rgba(56,102,145,.4);display:flex;align-items:center;justify-content:center}.vessel-thumb--photo{border-color:#5ec4b473;cursor:zoom-in}.vessel-thumb--photo:focus-visible{outline:2px solid #38bdf8;outline-offset:2px}.vessel-thumb__img{width:100%;height:100%;object-fit:cover;display:block}.vessel-thumb--placeholder{background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.06),transparent 60%),color-mix(in srgb,var(--thumb-accent, #3a556f) 22%,#0d1c33);border-color:color-mix(in srgb,var(--thumb-accent, #3a556f) 50%,transparent)}.vessel-thumb__glyph{font-weight:700;font-size:1rem;color:color-mix(in srgb,var(--thumb-accent, #9fb3cc) 78%,#e6edf6);text-shadow:0 1px 2px rgba(0,0,0,.5)}.vessel-thumb--loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.08) 50%,transparent 80%);background-size:200% 100%;animation:vessel-thumb-shimmer 1.1s ease-in-out infinite}@keyframes vessel-thumb-shimmer{0%{background-position:180% 0}to{background-position:-80% 0}}.profile-dock__head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.profile-dock__head .profile-dock__title{margin:0}.profile-dock__bridges{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.profile-dock__bridge{flex-shrink:0;border:1px solid rgba(56,189,248,.45);background:#38bdf81f;color:#7dd3fc;border-radius:6px;padding:4px 9px;font-size:.72rem;font-weight:600;cursor:pointer}.profile-dock__bridge:hover{background:#38bdf833}.profile-dock__bridge--hq{border-color:#34d39973;background:#34d3991f;color:#a7f3d0}.profile-dock__bridge--hq:hover{background:#34d39933}.profile-dock__chart-hint{font-size:.62rem;color:#7f93ac;white-space:nowrap}.profile-day-bars{display:flex;align-items:stretch;gap:3px;height:100%;min-height:160px;padding:4px 2px 0;overflow-x:auto}.profile-day-bars__col{flex:1 1 0;min-width:22px;max-width:48px;display:flex;flex-direction:column;align-items:center;gap:3px;border:0;background:transparent;color:#93a8c1;padding:0;cursor:default}.profile-day-bars--clickable .profile-day-bars__col.is-busy{cursor:pointer}.profile-day-bars--clickable .profile-day-bars__col.is-busy:hover .profile-day-bars__bar,.profile-day-bars--clickable .profile-day-bars__col.is-busy:focus-visible .profile-day-bars__bar{background:linear-gradient(180deg,#7dd3fc,#34d399);box-shadow:0 0 0 1px #38bdf873}.profile-day-bars__col:disabled{cursor:default;opacity:.85}.profile-day-bars__val{font-size:.58rem;font-variant-numeric:tabular-nums;color:#c6d4e6;line-height:1;min-height:.7rem}.profile-day-bars__track{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;border-radius:4px 4px 2px 2px;background:#94a8c114;min-height:96px}.profile-day-bars__bar{width:70%;max-width:18px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,#38bdf8,#0ea5e9);transition:background .12s ease,box-shadow .12s ease}.profile-day-bars__col.is-quiet .profile-day-bars__bar{background:#94a8c138}.profile-day-bars__label{font-size:.55rem;color:#7f93ac;white-space:nowrap;transform:rotate(-35deg);transform-origin:top center;margin-top:6px;margin-bottom:10px;max-width:3.2rem;overflow:hidden;text-overflow:ellipsis}.profile-day-chart{width:100%;height:100%}.profile-day-chart--clickable{cursor:pointer}.profile-window{border:1px solid rgba(56,102,145,.32);border-radius:8px;background:#0d192d8c;padding:8px 9px 9px;margin:0 0 10px}.profile-window__summary{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#e6edf6;font-size:.76rem;font-weight:650;cursor:pointer;list-style-position:inside}.profile-window__summary small{min-width:0;overflow:hidden;color:#93a8c1;font-size:.66rem;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.profile-window__content{padding-top:8px}.profile-window__host{min-height:0}.profile-window__apply{width:100%;margin-top:8px;border:1px solid rgba(52,211,153,.4);background:#34d39924;color:#a7f3d0;border-radius:6px;padding:7px 10px;font-size:.78rem;font-weight:600;cursor:pointer}.profile-window__apply:disabled{opacity:.55;cursor:wait}.profile-window__apply:not(:disabled):hover{background:#34d39938}.profile-roster{display:flex;flex-direction:column;gap:4px;margin:0 0 12px;max-height:min(42vh,320px);overflow:auto;padding-right:2px}.profile-roster__hint{margin:0 0 6px;font-size:.62rem;color:#7f93ac}.profile-roster__check{flex-shrink:0;width:1rem;text-align:center;color:#7dd3fc;font-size:.85rem;line-height:1}.profile-roster__row.is-selected{border-color:#38bdf86b;background:#38bdf812}.profile-roster__row.is-active.is-selected{box-shadow:inset 3px 0 #38bdf8}.profile-roster__batch{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;padding:6px 8px;border:1px solid rgba(56,102,145,.28);border-radius:8px;background:#0d192d73}.profile-roster__batch-count{font-size:.68rem;color:#93a8c1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-roster__batch-actions{display:flex;gap:6px;flex-shrink:0}.profile-roster__batch-actions button{border:1px solid rgba(56,102,145,.4);background:#14243ab3;color:#c6d4e6;border-radius:5px;padding:3px 8px;font-size:.66rem;cursor:pointer}.profile-roster__batch-actions button:disabled{opacity:.4;cursor:default}.profile-roster__batch-actions button:not(:disabled):hover{border-color:#38bdf873;color:#e6edf6}.profile-dock__bridge:disabled{opacity:.4;cursor:default}.profile-roster__row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;border:1px solid rgba(56,102,145,.28);border-radius:8px;background:#0d192d73;padding:6px 8px;color:#e6edf6;cursor:pointer}.profile-roster__row:hover{border-color:#38bdf866;background:#14243ab3}.profile-roster__row.is-active{border-color:#38bdf88c;background:#38bdf81a;box-shadow:inset 3px 0 #38bdf8}.profile-roster__row .vessel-thumb{flex-shrink:0;border-radius:6px;overflow:hidden}.profile-roster__fleet-icon{width:36px;height:36px;flex-shrink:0;display:grid;place-items:center;border-radius:6px;background:#38bdf824;border:1px solid rgba(56,102,145,.4);font-size:16px}.profile-roster__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.profile-roster__name{font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-roster__meta{font-size:.66rem;color:#93a8c1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-roster__stats{display:flex;align-items:center;gap:8px;font-size:.68rem;color:#c6d4e6;font-variant-numeric:tabular-nums}.profile-roster__cov{flex:1;height:4px;border-radius:2px;background:#94a8c12e;overflow:hidden;max-width:72px}.profile-roster__cov-fill{display:block;height:100%;background:linear-gradient(90deg,#34d399,#38bdf8);border-radius:2px}.profile-id{display:flex;gap:10px;margin-bottom:12px}.profile-id__photo{position:relative;width:88px;height:88px;flex-shrink:0;border-radius:10px;overflow:hidden;border:1px solid rgba(56,102,145,.36);background:linear-gradient(135deg,#1e3656e6,#0d192df5)}.profile-id__photo-img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.profile-id__photo--empty{display:grid;place-items:center}.profile-id__fleet-mark{font-size:28px;color:#7cc7f0}.profile-id__credit{position:absolute;left:4px;right:4px;bottom:3px;font-size:.5rem;color:#e6edf6b3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.7)}.profile-id__meta{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:6px}.profile-id__name{margin:0;color:#f3f7fb;font-size:1.15rem;line-height:1.2;font-weight:700;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.profile-id__ids{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:0}.profile-id__ids>div{border:1px solid rgba(56,102,145,.28);border-radius:6px;background:#0d192d80;padding:4px 7px;min-width:0}.profile-id__ids dt{margin:0;font-size:.58rem;text-transform:uppercase;letter-spacing:.04em;color:#7f93ac}.profile-id__ids dd{margin:1px 0 0;font-size:.78rem;color:#e6edf6;font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-hero{border:1px solid rgba(56,102,145,.32);border-radius:10px;background:radial-gradient(120% 90% at 12% -10%,rgba(52,211,153,.08),transparent 58%),#0d192d9e;padding:10px 12px 12px;margin:0 0 12px}.profile-hero__body{display:flex;align-items:center;gap:14px;margin-bottom:10px}.profile-hero__donut{width:132px;height:132px;flex-shrink:0}.profile-hero__legend{flex:1;min-width:0;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.profile-hero__legend li{display:flex;align-items:center;gap:8px;font-size:.74rem;color:#b7c6db}.profile-hero__legend .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.profile-hero__legend-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-hero__legend-pct{color:#e6edf6;font-weight:600;font-variant-numeric:tabular-nums}.profile-hero__kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.profile-hero__kpis>div{border:1px solid rgba(56,102,145,.28);border-radius:7px;background:#0d192d80;padding:6px 7px;min-width:0}.profile-hero__kpis b{display:block;color:#e6edf6;font-size:.82rem;line-height:1.25;white-space:nowrap;font-variant-numeric:tabular-nums}.profile-hero__kpis span{display:block;color:#7f93ac;font-size:.62rem;text-transform:uppercase;letter-spacing:.03em}.profile-dock__charts{display:flex;flex-direction:column;gap:6px}.profile-dock__chart-canvas{height:clamp(210px,26vh,320px)}.profile-dock__chart--days .profile-dock__chart-canvas{height:clamp(180px,22vh,280px)}@container (min-width: 560px){.profile-hero__donut{width:150px;height:150px}.profile-id__photo{width:110px;height:110px}.profile-id__name{font-size:1.35rem}.profile-dock__charts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.profile-dock__chart--days{grid-column:1 / -1}}@media(max-width:420px){.profile-dock__head{position:sticky;top:-12px;z-index:4;margin:-12px -12px 8px;padding:10px 12px 8px 30px;background:#0c1727fa;border-bottom:1px solid rgba(56,102,145,.32)}.profile-dock__bridges{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.profile-dock__bridge{min-height:38px;white-space:normal}.profile-window__summary{min-height:44px}.profile-id{flex-direction:column}.profile-id__photo{width:100%;height:120px}.profile-hero__donut{width:112px;height:112px}.profile-roster{max-height:36vh}}.speed-dock{--meta-w: 168px;--actions-w: 118px;display:flex;flex-direction:column;height:100%;min-height:0;background:#0a1424;border-top:1px solid rgba(56,102,145,.32);overflow:hidden}.speed-dock--empty{align-items:center;justify-content:center}.speed-dock__hint{margin:0;color:#7f93ac;font-size:.8rem}.speed-dock__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 10px 3px;flex-shrink:0}.speed-dock__head-left{display:flex;align-items:baseline;gap:8px;min-width:0}.speed-dock__title{font-size:.78rem;font-weight:600;color:#b7c6db}.speed-dock__meta-line{font-size:.68rem;color:#7f93ac;white-space:nowrap}.speed-dock__share{display:flex;height:5px;margin:0 10px 4px;border-radius:3px;overflow:hidden;background:#060d19b3;flex-shrink:0}.speed-dock__share-seg{height:100%}.speed-dock__axis{position:relative;height:13px;margin-left:var(--meta-w);margin-right:var(--actions-w);flex-shrink:0}.speed-dock__axis-day{position:absolute;top:1px;transform:translate(2px);font-size:.6rem;color:#6f829b;white-space:nowrap}.speed-dock__body{position:relative;flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 0 8px}.speed-dock__overlay{position:absolute;top:0;bottom:0;left:var(--meta-w);right:var(--actions-w);pointer-events:none;z-index:2}.speed-dock__gridline{position:absolute;top:0;bottom:0;border-left:1px solid rgba(120,145,180,.16)}.speed-dock__cursor{position:absolute;top:0;bottom:0;width:0;border-left:1.5px solid #fbbf24;z-index:3}.speed-dock__row{position:relative;display:flex;align-items:center;min-height:22px}.speed-dock__row:hover{background:#38669114}.speed-dock__meta{display:flex;align-items:center;gap:6px;width:var(--meta-w);padding-left:10px;box-sizing:border-box;flex-shrink:0;min-width:0}.speed-dock__swatch{width:7px;height:7px;border-radius:50%;flex-shrink:0}.speed-dock__name{font-size:.74rem;color:#dbe6f3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}.speed-dock__right{width:var(--actions-w);flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;gap:5px;padding-right:8px;box-sizing:border-box}.speed-dock__sog{font-size:.68rem;color:#9fb3cc;flex-shrink:0;min-width:40px;text-align:right}.speed-dock__actions{display:flex;align-items:center;gap:3px;opacity:.72;transition:opacity .12s ease}.speed-dock__row:hover .speed-dock__actions{opacity:1}.speed-dock__act{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:17px;padding:0 5px;font-size:.62rem;font-weight:600;color:#9fb8d6;background:#38669133;border:1px solid rgba(56,102,145,.4);border-radius:4px;cursor:pointer;line-height:1}.speed-dock__act:hover{color:#eaf2fb;background:#3866915c}.speed-dock__act--on{color:#0a1424;background:#6fa2c8;border-color:#6fa2c8}.speed-dock__act:disabled{opacity:.4;cursor:not-allowed}.speed-dock__act--remove{font-size:.82rem;color:#c98a97}.speed-dock__act--remove:hover{color:#fb7185;background:#fb718529;border-color:#fb7185}.speed-dock__strip{position:relative;flex:1 1 auto;height:16px;background:#060d19b3;overflow:hidden}.speed-dock__seg{position:absolute;top:0;bottom:0}.speed-dock__days{position:absolute;left:var(--meta-w);right:var(--actions-w);top:100%;display:flex;flex-wrap:wrap;align-items:center;gap:3px;padding:3px 4px;background:#0a1424f5;border:1px solid rgba(56,102,145,.4);border-radius:5px;z-index:6}.speed-dock__day{min-width:22px;height:18px;padding:0 4px;font-size:.62rem;font-family:var(--font-mono, ui-monospace, monospace);color:#9fb3cc;background:#38669124;border:1px solid rgba(56,102,145,.32);border-radius:3px;cursor:pointer}.speed-dock__day:hover{color:#eaf2fb;border-color:#78a5d28c}.speed-dock__day--selected{color:#0a1424;background:#6fa2c8;border-color:#6fa2c8}.speed-dock__days-hq{height:18px;padding:0 6px;margin-left:4px;font-size:.62rem;font-weight:600;color:#9fb8d6;background:#38669133;border:1px solid rgba(56,102,145,.32);border-radius:3px;cursor:pointer}.speed-dock__days-hq:disabled{opacity:.35;cursor:not-allowed}.speed-legend{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.speed-legend__scale{display:flex;gap:9px}.speed-legend__item{display:flex;align-items:center;gap:4px;font-size:.66rem;color:#93a8c1}.speed-legend__item i{width:9px;height:9px;border-radius:2px;display:inline-block}.speed-legend__range{color:#6f829b;font-size:.6rem}.speed-legend__item b{color:#cdd9e8;font-weight:600}.speed-legend__tune{display:flex;align-items:center;gap:10px}.speed-legend__slider{display:flex;align-items:center;gap:5px;font-size:.64rem;color:#93a8c1}.speed-legend__slider input[type=range]{width:88px;accent-color:#e0447a}.speed-legend__presets{display:flex;gap:3px}.speed-legend__preset{padding:1px 6px;font-size:.6rem;color:#9fb8d6;background:#3866912e;border:1px solid rgba(56,102,145,.34);border-radius:3px;cursor:pointer;text-transform:capitalize}.speed-legend__preset:hover{color:#eaf2fb;background:#38669157}@media(max-width:640px){.speed-dock{--meta-w: 112px;--actions-w: 0px}.speed-dock__head{min-height:30px;padding:5px 8px 3px}.speed-legend,.speed-legend__tune,.speed-dock__meta-line,.speed-dock__sog{display:none}.speed-dock__axis{margin-right:0}.speed-dock__row{display:grid;grid-template-columns:var(--meta-w) minmax(0,1fr);grid-template-rows:25px auto;align-items:center;min-height:61px;padding:2px 0 3px;border-top:1px solid rgba(56,102,145,.18)}.speed-dock__meta{grid-column:1;grid-row:1;width:auto;padding-left:8px}.speed-dock__strip{grid-column:2;grid-row:1;width:100%}.speed-dock__right{grid-column:1 / -1;grid-row:2;width:auto;min-width:0;padding:3px 8px 0}.speed-dock__actions{width:100%;justify-content:flex-end;gap:5px;opacity:1}.speed-dock__name{font-size:.68rem}.speed-dock__act{min-width:42px;height:30px;padding:0 7px;font-size:.67rem}.speed-dock__act--remove{min-width:32px}.speed-dock__days{position:static;grid-column:1 / -1;grid-row:3;margin:3px 8px 0}.speed-dock__day,.speed-dock__days-hq{min-height:30px}.speed-dock__overlay{right:0}}.temporal-gantt{min-height:0;height:100%;display:flex;flex-direction:column;border:1px solid #203955;background:#071321;overflow:hidden}.temporal-gantt__toolbar{flex:0 0 auto;display:flex;align-items:center;gap:10px;justify-content:space-between;padding:6px 12px;border-bottom:1px solid #1e3550}.temporal-gantt__hint{margin:0;min-width:0;color:#8aa0b8;font-size:10.5px;letter-spacing:.02em;line-height:1.35}.temporal-gantt__time-scale{flex:0 0 auto;display:inline-flex;align-items:center;gap:4px}.temporal-gantt__time-scale>span{margin-right:2px;color:#7d93aa;font-size:10px;font-weight:650;letter-spacing:.06em;text-transform:uppercase}.temporal-gantt__time-scale button{min-width:36px;padding:3px 8px;border:1px solid #2a4563;border-radius:4px;background:#0d1f33;color:#a9bad0;font-size:11px;font-weight:650;cursor:pointer}.temporal-gantt__time-scale button:hover{border-color:#3d5f84;color:#e8f2ff}.temporal-gantt__time-scale button.is-active{border-color:#42c6b7;background:#42c6b724;color:#9af0e4}.temporal-gantt__scroll{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain}.temporal-gantt__axis,.temporal-gantt__row{display:grid;grid-template-columns:clamp(156px,20vw,248px) minmax(0,1fr);width:max-content;min-width:100%}.temporal-gantt__axis{position:sticky;top:0;z-index:8;height:30px;border-bottom:1px solid #29425e;background:#0a192a}.temporal-gantt__corner,.temporal-gantt__row-label{position:sticky;left:0;z-index:5;background:#0b1a2c}.temporal-gantt__corner{display:flex;align-items:center;padding:0 10px;color:#8fa8c3;font-size:11px;font-weight:700;letter-spacing:.04em}.temporal-gantt__ticks{position:relative;min-width:0}.temporal-gantt__ticks span{position:absolute;top:6px;transform:translate(5px);color:#a9bad0;font-size:11px;font-variant-numeric:tabular-nums}.temporal-gantt__row{border-bottom:1px solid #18304a}.temporal-gantt__row.is-hot .temporal-gantt__row-label{background:linear-gradient(90deg,rgba(251,146,60,.12),transparent 70%)}.temporal-gantt__row-label{display:flex;align-items:center;gap:8px;min-width:0;min-height:100%;padding:10px;border:0;border-left:3px solid var(--row-accent);color:#edf6ff;text-align:left;cursor:pointer}.temporal-gantt__row-label:hover{background:#10243a}.temporal-gantt__row-label>span{display:grid;gap:2px;min-width:0}.temporal-gantt__row-label strong,.temporal-gantt__row-label small,.temporal-gantt__peak{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.temporal-gantt__row-label strong{font-size:12px;font-weight:650;letter-spacing:.01em}.temporal-gantt__row-label small{color:#8ea8c4;font-size:10px}.temporal-gantt__stats{display:flex!important;flex-wrap:wrap;gap:4px 8px;white-space:normal!important;overflow:visible!important;text-overflow:unset!important}.temporal-gantt__stats em{font-style:normal;font-size:10px;font-weight:650;letter-spacing:.03em;color:#7dcea8;font-variant-numeric:tabular-nums}.temporal-gantt__stats em.is-hot{color:#fb923c}.temporal-gantt__section{min-width:100%;width:max-content}.temporal-gantt__fleet{display:grid;position:sticky;top:30px;z-index:7;min-width:100%;background:#081624;border-bottom:1px solid #1c334c}.temporal-gantt__fleet-label{position:sticky;left:0;z-index:6;display:flex;flex-direction:column;justify-content:center;gap:2px;padding:7px 12px;border-left:3px solid var(--fleet-accent, #42c6b7);background:linear-gradient(90deg,#42c6b729,#0b1a2c 70%)}.temporal-gantt__fleet-label strong{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#e7f4ff}.temporal-gantt__fleet-label span{color:#8fa8c3;font-size:10px}.temporal-gantt__fleet-track{background:repeating-linear-gradient(90deg,transparent,transparent 11px,rgba(66,198,183,.05) 11px,rgba(66,198,183,.05) 12px)}.temporal-gantt__track{min-width:0;display:grid;grid-template-rows:64px 48px;background:#091727;overflow:hidden}.temporal-gantt__speed-band{position:relative;min-height:64px;overflow:hidden;border-bottom:1px solid #15283c;background:linear-gradient(180deg,#0c1c2c8c,#09172733)}.temporal-gantt__scale{position:absolute;inset:0 auto 0 0;z-index:4;pointer-events:none;background:linear-gradient(90deg,#091727f0 55%,#09172733)}.temporal-gantt__scale span{position:absolute;right:4px;transform:translateY(-50%);color:#7d93aa;font-size:9px;font-variant-numeric:tabular-nums;letter-spacing:.02em}.temporal-gantt__scale-unit{top:auto!important;bottom:4px;transform:none!important;color:#5f7690!important;font-size:8px!important;letter-spacing:.08em!important;text-transform:uppercase}.temporal-gantt__plot{position:absolute;top:0;right:0;bottom:0;left:0;min-width:0;overflow:hidden;cursor:crosshair;touch-action:none}.temporal-gantt__weekend{position:absolute;inset-block:0;z-index:1;background:#5c718f12;pointer-events:none}.temporal-gantt__speed{position:absolute;top:4px;right:0;bottom:4px;left:0;width:100%;height:calc(100% - 8px);z-index:3;overflow:hidden;pointer-events:none}.temporal-gantt__speed polyline{fill:none;stroke-width:2;vector-effect:non-scaling-stroke}.temporal-gantt__speed polyline:not(.is-vessel){stroke:#5ff5d6}.temporal-gantt__speed polyline.is-hot{stroke:#fb923c;stroke-width:2.35}.temporal-gantt__speed polyline.is-vessel{fill:none;stroke-width:2.6;stroke-opacity:.95;vector-effect:non-scaling-stroke}.temporal-gantt__speed-guide{stroke:#29425e77;stroke-width:.55;vector-effect:non-scaling-stroke}.temporal-gantt__hot-guide{stroke:#fb923c73;stroke-width:.7;stroke-dasharray:2 3;vector-effect:non-scaling-stroke}.temporal-gantt__gridline{position:absolute;inset-block:0;z-index:2;width:1px;background:#29425e44;pointer-events:none}.temporal-gantt__job-band{position:relative;min-height:48px;overflow:hidden;background:#071421;box-shadow:inset 0 1px #ffffff08}.temporal-gantt__job-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#4f657c;font-size:10px;letter-spacing:.04em;pointer-events:none}.temporal-gantt__ticks span.is-weekend{color:#c9b07a}.temporal-gantt__block{position:absolute;top:6px;bottom:6px;z-index:4;min-width:6px;overflow:hidden;display:flex;align-items:stretch;padding:0;border:1px solid rgba(0,0,0,.28);border-radius:5px;color:#0b1524;text-align:left;cursor:pointer;box-shadow:0 1px #ffffff38 inset}.temporal-gantt__block-copy{min-width:0;flex:1;display:flex;flex-direction:column;justify-content:center;gap:1px;padding:4px 8px}.temporal-gantt__block-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.15}.temporal-gantt__block-copy .is-primary{font-size:11px;font-weight:700;letter-spacing:.015em}.temporal-gantt__block-copy .is-meta{font-size:10px;font-weight:600;letter-spacing:.04em;opacity:.78}.temporal-gantt__block:hover,.temporal-gantt__block.is-focused{filter:brightness(1.06);z-index:5;box-shadow:0 1px #ffffff38 inset,0 0 0 1px #ffffff47}.temporal-gantt__block.is-selected{outline:2px solid #f8fafc;outline-offset:1px}.temporal-gantt__range{position:absolute;inset-block:2px;z-index:8;border:1.5px solid #f4c152;border-radius:3px;background:#f4c15229;box-shadow:inset 0 0 0 1px #f4c15247;pointer-events:none}.temporal-gantt__hover{position:absolute;top:3px;z-index:9;transform:translate(-50%);pointer-events:none}.temporal-gantt__hover:before{content:"";position:absolute;top:18px;bottom:-8px;left:50%;width:1px;background:#f4c152a6}.temporal-gantt__hover b{display:inline-block;margin-right:4px;padding:2px 7px;border:1px solid rgba(244,193,82,.5);border-radius:3px;background:#080e18f0;color:#f4c152;font-size:10.5px;font-weight:700;letter-spacing:.03em;font-variant-numeric:tabular-nums;white-space:nowrap}.temporal-gantt__hover.is-hot b{border-color:#fb923ca6;color:#fdba74}.temporal-gantt__empty{display:grid;min-height:180px;height:100%;place-items:center;border:1px solid #203955;color:#9ab0c8}@media(max-width:600px){.temporal-gantt__toolbar{flex-wrap:wrap;gap:6px}.temporal-gantt__hint{display:none}.temporal-gantt__row-label{padding-inline:6px}.temporal-gantt__track{grid-template-rows:56px 44px}}.towage-panel{position:fixed;top:70px;right:18px;bottom:18px;left:18px;z-index:1210;display:grid;grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid #2b4d6d;background:#071321f2;color:#eef7ff;box-shadow:0 18px 50px #0009}.towage-panel__head,.towage-panel__summary,.towage-panel__actions{display:flex;align-items:center;gap:10px}.towage-panel__head{justify-content:space-between;padding:12px 14px;border-bottom:1px solid #233e59}.towage-panel__head h2{margin:0;font-size:18px;font-weight:650;letter-spacing:.01em}.towage-panel__head span,.towage-panel__vessel span,.towage-panel__tugs small,.towage-panel__detail-note{display:block;color:#91aac5;font-size:11px}.towage-panel button{min-height:36px;border:1px solid #36658b;border-radius:4px;background:#0a2136;color:#eaf6ff;font-weight:650;cursor:pointer}.towage-panel button:hover{background:#10304c}.towage-panel__head>button{width:38px;padding:0;font-size:22px}.towage-panel__setup,.towage-panel__progress{align-self:start;display:grid;gap:10px;padding:14px}.towage-panel__progress progress{width:100%}.towage-panel__error{margin:14px;color:#ff8795}.towage-panel__workspace{min-height:0;height:100%;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,360px);grid-template-rows:auto minmax(0,1fr);gap:10px;padding:10px}.towage-panel__summary{grid-column:1 / -1;min-width:0;flex-wrap:wrap}.towage-panel__summary span{color:#9bb1c9;font-size:12px}.towage-panel__summary-hint{color:#c9b07a!important;font-size:11px!important;letter-spacing:.02em}.towage-panel__summary button{margin-left:auto;padding:0 12px}.towage-panel__qa{flex-basis:100%;border-top:1px solid #233e59;padding-top:6px;color:#9bb1c9;font-size:11px}.towage-panel__qa summary{width:fit-content;cursor:pointer;color:#d5e4f2;font-weight:650}.towage-panel__qa>div{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px}.towage-panel__qa pre{margin:6px 0 0;overflow-x:auto;color:#7894b0;font:10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap}.towage-panel__chart{min-width:0;min-height:0;height:100%;display:flex;flex-direction:column}.towage-panel__chart .temporal-gantt{flex:1;min-height:0}.towage-panel__detail{min-height:0;overflow:auto;border:1px solid #233e59;border-radius:6px;padding:12px;background:#081220b8}.towage-panel__detail-kicker{margin:0 0 10px;color:#8fa8c3;font-size:10px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.towage-panel__vessel,.towage-panel__tug-card{display:flex;align-items:center;gap:10px}.towage-panel__vessel>div,.towage-panel__tug-card span{min-width:0}.towage-panel__vessel strong,.towage-panel__tug-card strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.towage-panel__tugs,.towage-panel__roster{display:grid;gap:6px;margin-top:12px}.towage-panel__tug-card{width:100%;padding:7px 8px;border:1px solid #1f3a55;border-radius:5px;background:#091a2b;text-align:left}.towage-panel__tug-card.is-active{border-color:#f4c15288;box-shadow:inset 0 0 0 1px #f4c15244}.towage-panel__tug-card small{color:#8ea8c4;font-size:10px}.towage-panel__actions{align-items:stretch;flex-direction:column;margin-top:14px}.towage-panel__actions button{padding:7px 10px}.towage-panel__actions .is-primary{border-color:#51cbb8;background:#0b4b49}.towage-panel__detail-note{margin:8px 0 0;line-height:1.35}.towage-panel__stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.towage-panel__stat-grid>div{padding:10px 10px 8px;border:1px solid #1f3a55;border-radius:6px;background:#091a2be6}.towage-panel__stat-grid b{display:block;font-size:18px;font-weight:700;letter-spacing:.01em;font-variant-numeric:tabular-nums;color:#eaf8ff}.towage-panel__stat-grid span{color:#8ea8c4;font-size:10px;letter-spacing:.06em;text-transform:uppercase}.towage-panel__fleet-board{display:grid;gap:8px}.towage-panel__fleet-card{border:1px solid #1f3a55;border-left-width:3px;border-radius:6px;background:#091a2b;overflow:hidden}.towage-panel__fleet-card>header{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border-bottom:1px solid #1a3148}.towage-panel__fleet-card>header strong{font-size:12px}.towage-panel__fleet-card>header span{color:#8ea8c4;font-size:10px}.towage-panel__fleet-card ul{list-style:none;margin:0;padding:4px}.towage-panel__fleet-card li button{width:100%;min-height:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:6px 8px;border:0;border-radius:4px;background:transparent;text-align:left}.towage-panel__fleet-card li button:hover{background:#10304c}.towage-panel__fleet-card li span{color:#eaf6ff;font-size:12px;font-weight:650}.towage-panel__fleet-card li small{color:#8ea8c4;font-size:10px}@media(max-width:760px){.towage-panel{top:54px;right:0;bottom:0;left:0}.towage-panel__workspace{grid-template-columns:1fr;grid-template-rows:auto minmax(280px,1fr) minmax(180px,34dvh)}.towage-panel__detail{max-height:none}.towage-panel__actions{position:sticky;bottom:0;z-index:2;padding-bottom:max(6px,env(safe-area-inset-bottom));background:#071321}}.fb-fab{position:fixed;right:16px;bottom:16px;z-index:1200;width:46px;height:46px;border-radius:50%;border:1px solid rgba(56,102,145,.5);background:#12233c;color:#cfe0f3;font-weight:700;font-size:.85rem;letter-spacing:.03em;cursor:pointer;box-shadow:0 6px 18px #00000073}.fb-fab:hover{background:#17304f;color:#e6edf6}.fb-overlay{position:fixed;right:16px;bottom:16px;z-index:1300;display:flex;justify-content:flex-end}.fb-panel{width:360px;max-width:calc(100vw - 24px);max-height:min(78vh,640px);display:flex;flex-direction:column;background:#0a1424;border:1px solid rgba(56,102,145,.4);border-radius:12px;box-shadow:0 14px 40px #0000008c;overflow:hidden}.fb-panel__head{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid rgba(56,102,145,.32);flex-shrink:0}.fb-panel__tabs{display:flex;gap:2px;background:#0d192dd9;border:1px solid rgba(56,102,145,.32);border-radius:8px;padding:2px}.fb-tab{border:none;background:transparent;color:#93a8c1;border-radius:6px;padding:5px 12px;font-size:.82rem;cursor:pointer}.fb-tab--on{background:#17304f;color:#e6edf6}.fb-panel__close{border:none;background:transparent;color:#93a8c1;font-size:1.3rem;line-height:1;cursor:pointer;padding:0 6px}.fb-panel__close:hover{color:#e6edf6}.fb-body{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:10px}.fb-field{display:flex;flex-direction:column;gap:5px}.fb-field__label{font-size:.8rem;color:#b7c6db}.fb-select,.fb-textarea{background:#0d1c33;border:1px solid rgba(56,102,145,.4);border-radius:7px;color:#e6edf6;padding:8px 9px;font:inherit;font-size:.85rem}.fb-textarea{resize:vertical;min-height:60px}.fb-select:focus,.fb-textarea:focus{outline:none;border-color:#3d9bd6}.fb-context-note{margin:0;font-size:.74rem;color:#7f93ac}.fb-hint{margin:0;font-size:.78rem;color:#93a8c1}.fb-error{margin:0;font-size:.8rem;color:#f6a5a5}.fb-actions{display:flex;justify-content:flex-end;gap:8px}.fb-btn{border-radius:7px;border:1px solid rgba(56,102,145,.45);background:#12233c;color:#cfe0f3;padding:7px 14px;font-size:.83rem;cursor:pointer}.fb-btn--ghost{background:transparent}.fb-btn--primary{background:#1d5f8f;border-color:#2c84c3;color:#f2f8ff}.fb-btn--primary:disabled{opacity:.55;cursor:default}.fb-thread-row{display:flex;flex-direction:column;gap:4px;text-align:left;background:#0d1c33;border:1px solid rgba(56,102,145,.3);border-radius:8px;padding:9px 10px;cursor:pointer;color:inherit}.fb-thread-row:hover{border-color:#38669199}.fb-thread-row__top{display:flex;align-items:center;gap:8px}.fb-thread-row__cat{font-size:.74rem;color:#7f93ac;text-transform:capitalize}.fb-thread-row__time{margin-left:auto;font-size:.72rem;color:#6f829b}.fb-thread-row__msg{font-size:.84rem;color:#dbe6f3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fb-thread-row__last{font-size:.76rem;color:#8fa6c1}.fb-thread-row__sender{color:#5ec4b4;text-transform:capitalize;font-weight:600}.fb-pill{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:999px;border:1px solid transparent;text-transform:uppercase;letter-spacing:.03em}.fb-pill--info{background:#3d9bd629;color:#86c5ee;border-color:#3d9bd666}.fb-pill--active{background:#e8986529;color:#edb489;border-color:#e8986566}.fb-pill--warn{background:#d6ae3d29;color:#e2cf7e;border-color:#d6ae3d66}.fb-pill--ok{background:#5ec4b429;color:#7fd6c6;border-color:#5ec4b473}.fb-pill--muted{background:#7f93ac24;color:#a6b6ca;border-color:#7f93ac59}.fb-thread__status{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fb-thread__next{font-size:.78rem;color:#b7c6db}.fb-msgs{display:flex;flex-direction:column;gap:8px}.fb-msg{border-radius:8px;padding:8px 10px;border:1px solid rgba(56,102,145,.28)}.fb-msg--user{background:#10233d;align-self:stretch}.fb-msg--agent{background:#0e1b2f;border-color:#5ec4b44d}.fb-msg__meta{display:flex;gap:8px;margin-bottom:3px}.fb-msg__sender{font-size:.72rem;font-weight:600;color:#5ec4b4;text-transform:capitalize}.fb-msg__time{font-size:.7rem;color:#6f829b}.fb-msg__text{font-size:.84rem;color:#dbe6f3;white-space:pre-wrap}.fb-events{font-size:.78rem;color:#93a8c1}.fb-events__list{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.fb-events__item{display:flex;gap:8px}.fb-events__type{color:#7fd6c6;flex-shrink:0}.fb-events__msg{color:#a6b6ca}.fb-reply{display:flex;flex-direction:column;gap:8px;border-top:1px solid rgba(56,102,145,.28);padding-top:10px}.fb-reply .fb-btn{align-self:flex-end}@media(max-width:480px){.fb-fab{right:10px;bottom:10px;width:40px;height:40px}.fb-overlay{left:8px;right:8px;bottom:8px}.fb-panel{width:100%;max-width:none;max-height:76vh;border-radius:10px}.fb-panel__tabs{min-width:0}.fb-tab{padding:5px 8px}}
