@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--bg-primary: #1a1d21;--bg-secondary: #242830;--bg-tertiary: #2d323b;--bg-hover: #363c47;--border-color: #3a404b;--text-primary: #ffffff;--text-secondary: #a0a8b6;--text-muted: #6b7280;--accent: #ea580c;--accent-hover: #f97316;--success: #10b981;--warning: #f59e0b;--danger: #ef4444;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-primary);color:var(--text-primary);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}.fleet-table-container{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);overflow-x:auto;-webkit-overflow-scrolling:touch}.fleet-table{width:100%;min-width:800px;border-collapse:collapse;font-size:14px}.fleet-table th,.fleet-table td{white-space:nowrap}.fleet-table th{padding:14px 20px;text-align:left;font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.fleet-table td{padding:16px 20px;border-bottom:1px solid var(--border-color);color:var(--text-primary)}.fleet-table tbody tr{transition:background-color .15s ease}.fleet-table tbody tr:hover{background-color:var(--bg-hover);cursor:pointer}.fleet-table tbody tr:last-child td{border-bottom:none}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500}.status-badge:before{content:"";width:6px;height:6px;border-radius:50%}.status-green{background-color:#10b98126;color:#10b981}.status-green:before{background-color:#10b981;box-shadow:0 0 6px #10b981}.status-yellow{background-color:#f59e0b26;color:#f59e0b}.status-yellow:before{background-color:#f59e0b;box-shadow:0 0 6px #f59e0b}.status-red{background-color:#ef444426;color:#ef4444}.status-red:before{background-color:#ef4444;box-shadow:0 0 6px #ef4444;animation:pulse 2s infinite}.status-blue{background-color:#3b82f626;color:#3b82f6}.status-blue:before{background-color:#3b82f6;box-shadow:0 0 6px #3b82f6}.status-gray{background-color:#6b728026;color:var(--text-muted)}.status-gray:before{background-color:var(--text-muted)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.value-cell{font-family:SF Mono,Fira Code,monospace;font-size:13px}.value-cell .unit{color:var(--text-muted);font-size:11px;margin-left:4px}.last-update{color:var(--text-muted);font-size:13px}.fleet-table-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color)}.fleet-table-empty p{margin:8px 0;color:var(--text-secondary)}.fleet-table-empty .hint{font-size:13px;color:var(--text-muted)}.live-indicator{display:inline-flex;align-items:center;gap:6px}.live-indicator:before{content:"";width:6px;height:6px;border-radius:50%;background-color:var(--success);animation:pulse 1.5s infinite}.logging-cell{font-size:13px}.logging-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:500;cursor:default}.logging-badge:before{content:"";width:6px;height:6px;border-radius:50%}.logging-active{background-color:#10b98126;color:#10b981}.logging-active:before{background-color:#10b981;box-shadow:0 0 6px #10b981}.logging-inactive{background-color:#ef444426;color:#ef4444}.logging-inactive:before{background-color:#ef4444;box-shadow:0 0 6px #ef4444}.sys-id-btn{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-size:13px;font-weight:600;font-family:SF Mono,Fira Code,monospace;color:var(--accent);cursor:pointer;transition:all .15s ease}.sys-id-btn:hover{background-color:var(--bg-hover);border-color:var(--accent)}.vehicle-type-icon{flex-shrink:0;margin-right:6px}.core-link{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-size:12px;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:all .15s ease}.core-link:hover{background-color:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.env-cell{text-align:center}.env-alerts{display:flex;flex-wrap:wrap;gap:4px;justify-content:center}.env-alert{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:4px;font-size:10px;font-weight:700;cursor:help}.env-icons{display:inline-flex;gap:3px;justify-content:center}.env-icon-box{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;cursor:help}.env-icon-box svg{width:14px;height:14px}.env-wind-moderate{background-color:#eab30840;border:1px solid #eab308;color:#eab308;animation:env-wind-moderate-blink 1s infinite}@keyframes env-wind-moderate-blink{0%,to{background-color:#eab30840;box-shadow:0 0 6px #eab30880}50%{background-color:#eab30880;box-shadow:0 0 10px #eab308cc}}.env-wind-high{background-color:#ef444440;border:1px solid #ef4444;color:#ef4444;animation:env-wind-high-blink 1s infinite}@keyframes env-wind-high-blink{0%,to{background-color:#ef444440;box-shadow:0 0 6px #ef444480}50%{background-color:#ef444480;box-shadow:0 0 10px #ef4444cc}}.env-wind-extreme{background-color:#ef444440;border:1px solid #ef4444;color:#ef4444;animation:env-wind-extreme-blink .3s infinite}@keyframes env-wind-extreme-blink{0%,to{background-color:#ef444440;box-shadow:0 0 8px #ef444480}50%{background-color:#ef4444b3;box-shadow:0 0 15px #ef4444}}.env-heat{background-color:#ef444440;border:1px solid #ef4444;color:#ef4444;animation:env-heat-blink 1s infinite}@keyframes env-heat-blink{0%,to{background-color:#ef444440;box-shadow:0 0 6px #ef444480}50%{background-color:#ef444480;box-shadow:0 0 10px #ef4444cc}}.env-cold{background-color:#38bdf840;border:1px solid #38bdf8;color:#38bdf8;animation:env-cold-blink 1s infinite}@keyframes env-cold-blink{0%,to{background-color:#38bdf840;box-shadow:0 0 6px #38bdf880}50%{background-color:#38bdf880;box-shadow:0 0 10px #38bdf8cc}}.env-ok{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;background-color:#10b98126;border:1px solid transparent;border-radius:4px;font-size:10px;font-weight:600;color:#10b981;cursor:help}.env-none{color:var(--text-muted);font-size:12px}.flag-apu{background-color:#ef444440;border:1px solid #ef4444;color:#ef4444}.flag-voltage{background-color:#f59e0b40;border:1px solid #f59e0b;color:#f59e0b}.flag-roll{background-color:#a855f740;border:1px solid #a855f7;color:#a855f7}.offline-vehicles{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);padding:16px;margin-top:20px}.offline-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.offline-header h3{font-size:14px;font-weight:600;color:var(--text-secondary);margin:0}.offline-count{background-color:var(--bg-tertiary);color:var(--text-muted);font-size:12px;font-weight:500;padding:2px 8px;border-radius:10px}.offline-list{display:flex;flex-wrap:wrap;gap:8px}.offline-item{display:flex;align-items:center;gap:8px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;padding:6px 10px;cursor:pointer;transition:all .15s ease}.offline-item:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.offline-item.selected{background-color:#3b82f626;border-color:#3b82f6}.offline-id{font-family:SF Mono,Fira Code,monospace;font-size:13px;font-weight:600;color:var(--text-secondary)}.offline-item.selected .offline-id{color:#3b82f6}.offline-remove{background:none;border:none;color:var(--text-muted);font-size:16px;line-height:1;padding:0 2px;cursor:pointer;opacity:.6;transition:opacity .15s,color .15s}.offline-remove:hover{opacity:1;color:var(--danger)}.offline-details{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-color)}.details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;color:var(--text-secondary)}.details-time{color:var(--text-muted)}.details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}.detail-value{font-family:SF Mono,Fira Code,monospace;font-size:14px;color:var(--text-primary)}.detail-value .unit{color:var(--text-muted);font-size:11px}.core-button{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:all .15s ease}.core-button:hover{background-color:var(--bg-hover);border-color:var(--accent);color:var(--accent)}.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}}.boat-marker{cursor:pointer!important;pointer-events:auto!important}.boat-marker svg{pointer-events:none}.leaflet-marker-icon.boat-marker{background:none!important;border:none!important}.boat-icon-wrapper{display:flex;flex-direction:column;align-items:center;pointer-events:none}.boat-icon-wrapper svg{filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}.boat-label{background-color:#000000bf;color:#fff;font-size:11px;font-weight:600;padding:1px 5px;border-radius:3px;margin-top:2px;font-family:SF Mono,Fira Code,monospace;white-space:nowrap}.command-layout{display:flex;gap:16px;height:calc(100vh - 200px);min-height:400px}.command-hud{width:200px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;align-self:flex-start}.hud-header{padding:8px 16px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color);text-align:center}.hud-title{font-size:14px;font-weight:600;color:var(--accent);font-family:SF Mono,Fira Code,monospace}.hud-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:14px}.hud-attitude{padding:12px;display:flex;flex-direction:column;gap:2px}.attitude-wrapper{position:relative;width:160px;height:160px;margin:0 auto}.roll-scale{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.roll-tick{stroke:var(--text-secondary);stroke-linecap:round}.roll-tick.major{stroke-width:2;stroke:var(--text-primary)}.roll-tick.minor{stroke-width:1.5}.roll-pointer{fill:#fbbf24;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));transition:transform .1s ease-out}.roll-reference{position:absolute;top:-2px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:10px solid var(--text-primary);z-index:5}.attitude-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:120px;height:120px;border-radius:50%;background:linear-gradient(to bottom,#3b82f6 50%,#92400e 50%);overflow:hidden;border:3px solid var(--border-color);box-shadow:inset 0 0 20px #0000004d}.attitude-horizon{position:absolute;width:200%;height:200%;left:-50%;top:-50%;background:linear-gradient(to bottom,#3b82f6,#60a5fa 48%,#fff 49% 51%,#a16207 52%,#92400e);transform-origin:center center;transition:transform .1s ease-out}.attitude-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:60px;height:4px;background-color:#fbbf24;border-radius:2px;box-shadow:0 0 4px #00000080}.attitude-center:before,.attitude-center:after{content:"";position:absolute;top:-8px;width:4px;height:20px;background-color:#fbbf24;border-radius:2px}.attitude-center:before{left:8px}.attitude-center:after{right:8px}.attitude-values-compact{display:flex;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:600;font-family:SF Mono,Fira Code,monospace;color:var(--text-primary)}.attitude-values-compact .separator{color:var(--text-muted)}.energy-pane{padding:12px;border-top:1px solid var(--border-color)}.energy-header{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.energy-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.energy-item{display:flex;align-items:center;gap:6px}.energy-item.energy-low-voltage,.energy-item.energy-warning{background-color:#ef444433;border:1px solid #ef4444;border-radius:4px;padding:4px 6px;margin:-4px -6px;animation:apu-pulse 1s infinite}.energy-item.energy-low-voltage .energy-icon,.energy-item.energy-warning .energy-icon,.energy-item.energy-low-voltage .energy-value,.energy-item.energy-warning .energy-value{color:#ef4444}.energy-item.energy-voltage-green .energy-icon,.energy-item.energy-voltage-green .energy-value{color:#22c55e}.energy-item.energy-voltage-yellow .energy-icon,.energy-item.energy-voltage-yellow .energy-value{color:#eab308}.energy-item.energy-voltage-red .energy-icon,.energy-item.energy-voltage-red .energy-value{color:#ef4444}.energy-item.energy-warn-voltage{background-color:#eab30833;border:1px solid #eab308;border-radius:4px;padding:4px 6px;margin:-4px -6px;animation:apu-pulse 1s infinite}.energy-item.energy-warn-voltage .energy-icon,.energy-item.energy-warn-voltage .energy-value{color:#eab308}.energy-icon{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.energy-value{font-size:13px;font-weight:600;font-family:SF Mono,Fira Code,monospace;color:var(--text-primary)}.energy-remaining{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding-top:8px;border-top:1px solid var(--border-color)}.remaining-label{font-size:12px;color:var(--text-muted)}.remaining-value{font-size:14px;font-weight:600;font-family:SF Mono,Fira Code,monospace;color:var(--text-primary)}.apu-alert{margin-top:10px;padding:8px;background-color:#ef444433;border:1px solid #ef4444;border-radius:6px;color:#ef4444;font-size:13px;font-weight:700;text-align:center;animation:apu-pulse 1s infinite}@keyframes apu-pulse{0%,to{opacity:1}50%{opacity:.6}}.nav-pane{padding:12px;border-top:1px solid var(--border-color)}.nav-header{font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.nav-header.nav-flash{animation:nav-flash-orange .5s ease-in-out 3}@keyframes nav-flash-orange{0%,to{color:var(--text-muted)}50%{color:#ea580c}}.nav-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.nav-item{display:flex;align-items:center;gap:4px}.nav-icon{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.nav-value{font-size:13px;font-weight:600;font-family:SF Mono,Fira Code,monospace;color:var(--text-primary)}.nav-unit{font-size:10px;font-weight:400;color:var(--text-muted);margin-left:1px}.nav-grid-compact{display:flex;justify-content:space-between;gap:4px}.nav-item-compact{display:flex;align-items:center;gap:2px}.nav-icon-sm{width:12px;height:12px;color:var(--text-muted);flex-shrink:0}.nav-value-sm{font-size:11px;font-weight:600;font-family:SF Mono,Fira Code,monospace;color:var(--text-primary)}.command-map-container{flex:1;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);position:relative}.wind-canvas{position:absolute;top:0;left:0;pointer-events:none;z-index:1000}.map-controls{position:absolute;top:10px;right:10px;z-index:1000;display:flex;gap:6px}.map-control-btn{padding:6px 12px;font-size:12px;font-weight:600;background-color:#0009;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:#ffffffe6;cursor:pointer;transition:all .15s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-control-btn:hover{background-color:#000c;border-color:#fff6}.guided-mode-banner{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:1000;background-color:#fbbf24f2;color:#1a1a1a;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:600;display:flex;align-items:center;gap:12px;box-shadow:0 2px 8px #0000004d}.guided-cancel-btn{padding:4px 10px;font-size:12px;font-weight:600;background-color:#0003;border:none;border-radius:4px;color:#1a1a1a;cursor:pointer;transition:background-color .15s ease}.guided-cancel-btn:hover{background-color:#0000004d}.destination-marker{background:none!important;border:none!important}.destination-dot{width:16px;height:16px;background-color:#fbbf24;border:3px solid white;border-radius:50%;box-shadow:0 2px 6px #0006}.command-sidebar{width:280px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;align-self:flex-start}.sidebar-header{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.sidebar-header h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0}.boat-count{background-color:var(--accent);color:#fff;font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px}.boat-list{overflow-y:auto;padding:12px;display:flex;flex-wrap:wrap;gap:8px;align-content:flex-start;max-height:210px}.boat-chip{display:flex;align-items:center;gap:6px;padding:6px 10px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all .15s ease;width:calc(33.333% - 6px);box-sizing:border-box}.boat-chip:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.boat-chip.selected{border-color:var(--accent);background-color:#3b82f61a}.boat-id{font-weight:600;font-size:13px;color:var(--text-secondary);font-family:SF Mono,Fira Code,monospace}.boat-chip.selected .boat-id{color:var(--accent)}.status-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.status-green .status-dot{background-color:#10b981;box-shadow:0 0 6px #10b981}.status-yellow .status-dot{background-color:#f59e0b;box-shadow:0 0 6px #f59e0b}.status-red .status-dot{background-color:#ef4444;box-shadow:0 0 6px #ef4444}.status-blue .status-dot{background-color:#3b82f6;box-shadow:0 0 6px #3b82f6}.status-gray .status-dot{background-color:var(--text-muted)}.no-boats{text-align:center;padding:40px 20px;color:var(--text-muted);font-size:14px}.mode-select-pane{border-top:1px solid var(--border-color);padding:12px}.mode-select-pane.disabled{opacity:.5;pointer-events:none}.mode-select-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.mode-select-header .current-mode{color:#fbbf24;font-family:SF Mono,Fira Code,monospace}.mode-buttons{display:grid;grid-template-columns:1fr 1fr;gap:8px}.mode-button{padding:8px;font-size:12px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mode-button:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--text-muted)}.mode-button.active{background-color:#3b82f626;border-color:var(--accent);color:var(--accent)}.mode-button.waiting{background-color:#fbbf2433;border-color:#fbbf24;color:#fbbf24;animation:pulse-waiting 1.5s ease-in-out infinite}@keyframes pulse-waiting{0%,to{opacity:1}50%{opacity:.6}}.mode-button:disabled{cursor:not-allowed}.boat-popup{font-size:13px;line-height:1.5}.boat-popup strong{font-size:14px}.mission-pane{border-top:1px solid var(--border-color);padding:12px}.mission-pane.disabled{opacity:.5;pointer-events:none}.mission-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.mission-wp-count{font-family:SF Mono,Fira Code,monospace;color:#6366f1;text-transform:none}.mission-controls{display:flex;gap:8px}.mission-btn{flex:1;padding:8px 12px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease}.mission-view-btn,.mission-hide-btn{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.mission-view-btn:hover:not(:disabled),.mission-hide-btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--text-muted)}.mission-view-btn:disabled,.mission-hide-btn:disabled{cursor:not-allowed;opacity:.6}.mission-progress{margin-top:10px;display:flex;align-items:center;gap:8px}.mission-progress-bar{flex:1;height:6px;background-color:var(--bg-tertiary);border-radius:3px;overflow:hidden}.mission-progress-fill{height:100%;background-color:#6366f1;border-radius:3px;transition:width .15s ease-out}.mission-progress-text{font-size:11px;font-family:SF Mono,Fira Code,monospace;color:var(--text-muted);min-width:45px;text-align:right}.mission-status{margin-top:10px;padding-top:8px;border-top:1px solid var(--border-color);display:flex;align-items:center;gap:12px}.follow-lock-label{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.follow-lock-label input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}.mission-current-wp{font-size:12px;font-family:SF Mono,Fira Code,monospace;color:#22c55e}.protocol-toggle{display:flex;gap:4px;margin-bottom:10px}.protocol-btn{flex:1;padding:5px 8px;font-size:11px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-muted);cursor:pointer;transition:all .15s ease}.protocol-btn:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.protocol-btn.active{background-color:#6366f126;border-color:#6366f1;color:#6366f1}.protocol-btn.core-connected{animation:core-glow 1.5s ease-in-out infinite;border-color:#3b82f6}.protocol-btn.core-connected.active{background-color:#3b82f633;border-color:#3b82f6;color:#3b82f6}@keyframes core-glow{0%,to{box-shadow:0 0 4px #3b82f666}50%{box-shadow:0 0 12px #3b82f6cc,0 0 20px #3b82f666}}.waypoint-marker{background:none!important;border:none!important}.waypoint-dot{width:24px;height:24px;border-radius:50%;border:3px solid;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;box-shadow:0 2px 6px #0006}.direct-wp-pane{border-top:1px solid var(--border-color);padding:12px}.direct-wp-pane.disabled{opacity:.5;pointer-events:none}.direct-wp-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.current-wp-display{font-family:SF Mono,Fira Code,monospace;color:#22c55e;text-transform:none}.direct-wp-controls{display:flex;gap:8px}.direct-wp-input{width:60px;padding:8px 10px;font-size:14px;font-family:SF Mono,Fira Code,monospace;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);outline:none;transition:border-color .15s ease;text-align:center}.direct-wp-input:focus{border-color:var(--accent)}.direct-wp-input::placeholder{color:var(--text-muted)}.direct-wp-input::-webkit-inner-spin-button,.direct-wp-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.direct-wp-btn{padding:8px 16px;font-size:13px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);border-radius:6px;cursor:pointer;transition:all .15s ease}.direct-wp-btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--text-muted)}.direct-wp-btn:disabled{cursor:not-allowed;opacity:.6}.core-pane{border-top:1px solid var(--border-color);padding:12px}.core-pane.disabled{opacity:.5;pointer-events:none}.core-pane-link{display:block;padding:8px 12px;font-size:13px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);text-align:center;text-decoration:none;transition:all .15s ease}.core-pane-link:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.environment-pane{border-top:1px solid var(--border-color);padding:12px}.environment-pane.disabled{opacity:.5;pointer-events:none}.env-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:10px}.env-wind-alert{padding:3px 8px;font-size:10px;font-weight:700;background-color:#3b82f640;border:1px solid #3b82f6;border-radius:4px;color:#3b82f6;animation:wind-blink 1s infinite}@keyframes wind-blink{0%,to{background-color:#3b82f640}50%{background-color:#3b82f680}}.env-content{display:flex;flex-direction:column;gap:8px}.env-row{display:flex;gap:8px}.env-item{flex:1;display:flex;flex-direction:column;gap:2px;padding:6px 8px;background-color:var(--bg-tertiary);border-radius:6px}.env-label{font-size:10px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.env-value{font-size:13px;font-weight:600;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace}.env-alert-details{display:flex;align-items:center;gap:6px;padding:8px;background-color:#3b82f626;border:1px solid rgba(59,130,246,.3);border-radius:6px;font-size:12px;color:#3b82f6}.env-alert-icon{font-size:14px}.env-forecast{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background-color:var(--bg-tertiary);border-radius:6px}.env-forecast .env-label{font-size:11px}.env-forecast-value{font-size:13px;font-weight:600;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace}.env-forecast-value.env-high{color:#3b82f6}.env-empty{font-size:13px;color:var(--text-muted);text-align:center;padding:12px}.environment-pane-hud{padding:12px;border-top:1px solid var(--border-color)}.environment-pane-hud .env-header{display:flex;justify-content:space-between;align-items:center;font-size:11px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}.environment-pane-hud .env-alerts-hud{display:flex;gap:4px}.environment-pane-hud .env-wind-alert-moderate{padding:2px 6px;font-size:9px;font-weight:700;background-color:#eab30840;border:1px solid #eab308;border-radius:3px;color:#eab308;animation:env-wind-moderate-hud 1s infinite}@keyframes env-wind-moderate-hud{0%,to{background-color:#eab30840}50%{background-color:#eab30880}}.environment-pane-hud .env-wind-alert-high{padding:2px 6px;font-size:9px;font-weight:700;background-color:#ef444440;border:1px solid #ef4444;border-radius:3px;color:#ef4444;animation:env-wind-high-hud 1s infinite}@keyframes env-wind-high-hud{0%,to{background-color:#ef444440}50%{background-color:#ef444480}}.environment-pane-hud .env-wind-alert-extreme{padding:2px 6px;font-size:9px;font-weight:700;background-color:#ef444440;border:1px solid #ef4444;border-radius:3px;color:#ef4444;animation:env-wind-extreme-hud .3s infinite}@keyframes env-wind-extreme-hud{0%,to{background-color:#ef444440}50%{background-color:#ef4444b3}}.environment-pane-hud .env-heat-alert{padding:2px 6px;font-size:9px;font-weight:700;background-color:#f9731640;border:1px solid #f97316;border-radius:3px;color:#f97316;animation:env-heat-blink 1s infinite}@keyframes env-heat-blink{0%,to{background-color:#f9731640}50%{background-color:#f9731680}}.environment-pane-hud .env-cold-alert{padding:2px 6px;font-size:9px;font-weight:700;background-color:#38bdf840;border:1px solid #38bdf8;border-radius:3px;color:#38bdf8;animation:env-cold-blink 1s infinite}@keyframes env-cold-blink{0%,to{background-color:#38bdf840}50%{background-color:#38bdf880}}.environment-pane-hud .env-grid-compact{display:flex;justify-content:space-between;gap:4px}.environment-pane-hud .env-item-compact{display:flex;align-items:center;gap:2px;padding:2px 4px;border-radius:3px;border:1px solid transparent}.environment-pane-hud .env-item-compact.env-item-active{background-color:#3b82f626;border-color:var(--accent)}.environment-pane-hud .env-item-compact.env-item-active .env-icon-sm,.environment-pane-hud .env-item-compact.env-item-active .env-value-sm{color:var(--accent)}.environment-pane-hud .env-item-compact[title*=Click]{cursor:pointer;transition:all .15s ease}.environment-pane-hud .env-item-compact[title*=Click]:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.environment-pane-hud .env-icon-sm{width:12px;height:12px;color:var(--text-muted);flex-shrink:0}.environment-pane-hud .env-value-sm{font-size:11px;font-weight:600;font-family:SF Mono,Fira Code,monospace;color:var(--text-primary)}.environment-pane-hud .env-content{display:flex;flex-direction:column;gap:6px}.environment-pane-hud .env-row{display:flex;gap:6px}.environment-pane-hud .env-item{flex:1;display:flex;align-items:center;gap:6px;padding:4px 6px;background-color:var(--bg-tertiary);border-radius:4px}.environment-pane-hud .env-item-clickable{cursor:pointer;transition:all .15s ease;border:1px solid transparent}.environment-pane-hud .env-item-clickable:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.environment-pane-hud .env-item-active{background-color:#3b82f626;border-color:var(--accent)}.environment-pane-hud .env-item-active .env-icon,.environment-pane-hud .env-item-active .env-value{color:var(--accent)}.environment-pane-hud .env-icon{width:16px;height:16px;color:var(--text-muted);flex-shrink:0}.environment-pane-hud .env-label{font-size:9px;font-weight:600;color:var(--text-muted);text-transform:uppercase}.environment-pane-hud .env-value{font-size:12px;font-weight:600;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace}.environment-pane-hud .env-conditions{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.environment-pane-hud .env-alert-details{display:flex;align-items:center;gap:4px;padding:6px;border-radius:4px;font-size:10px}.environment-pane-hud .env-alert-wind{background-color:#3b82f626;border:1px solid rgba(59,130,246,.3);color:#3b82f6}.environment-pane-hud .env-alert-heat{background-color:#f9731626;border:1px solid rgba(249,115,22,.3);color:#f97316}.environment-pane-hud .env-alert-cold{background-color:#38bdf826;border:1px solid rgba(56,189,248,.3);color:#38bdf8}.environment-pane-hud .env-forecast{display:flex;justify-content:space-between;align-items:center;padding:4px 6px;background-color:var(--bg-tertiary);border-radius:4px}.environment-pane-hud .env-forecast .env-label{font-size:10px}.environment-pane-hud .env-empty{font-size:12px;color:var(--text-muted);text-align:center;padding:8px}.env-wind-toggle{display:flex;align-items:center;gap:8px;margin-top:8px;padding:6px 8px;background-color:var(--bg-tertiary);border-radius:4px;cursor:pointer;font-size:12px;color:var(--text-secondary);-webkit-user-select:none;user-select:none}.env-wind-toggle:hover{background-color:var(--bg-hover)}.env-wind-toggle input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}.logging-pane{padding:8px 12px;border-bottom:1px solid var(--border)}.logging-pane.disabled{opacity:.5;pointer-events:none}.logging-btn{width:100%;padding:8px 12px;font-size:13px;font-weight:600;border-radius:6px;cursor:pointer;transition:all .15s ease;background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.logging-btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--text-muted)}.logging-btn:disabled{cursor:not-allowed;opacity:.6}.logging-btn.logging-inactive{animation:logging-glow-red 1.5s ease-in-out infinite;border-color:#ef4444}.logging-btn.logging-active{animation:logging-glow-green 1.5s ease-in-out infinite;border-color:#22c55e;background-color:#22c55e26;color:#22c55e}@keyframes logging-glow-red{0%,to{box-shadow:0 0 4px #ef444466}50%{box-shadow:0 0 8px #ef4444b3}}@keyframes logging-glow-green{0%,to{box-shadow:0 0 4px #22c55e66}50%{box-shadow:0 0 8px #22c55eb3}}.logging-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.logging-modal{background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;width:320px;max-width:90vw;box-shadow:0 8px 32px #0000004d}.logging-modal-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--border);font-weight:600;font-size:14px}.logging-modal-close{background:none;border:none;color:var(--text-secondary);font-size:20px;cursor:pointer;padding:0;line-height:1}.logging-modal-close:hover{color:var(--text-primary)}.logging-modal-content{padding:16px;display:flex;flex-direction:column;gap:12px}.logging-status-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.logging-status-label{color:var(--text-secondary)}.logging-status-value{color:var(--text-primary);font-family:SF Mono,Fira Code,monospace;display:flex;align-items:center;gap:6px}.logging-active-text{color:#22c55e}.logging-inactive-text{color:var(--text-secondary)}.logging-input-row{display:flex;flex-direction:column;gap:4px}.logging-input-row label{font-size:12px;color:var(--text-secondary)}.logging-input-row input{padding:8px 10px;background-color:var(--bg-tertiary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:13px}.logging-input-row input:focus{outline:none;border-color:var(--accent)}.logging-input-row input::placeholder{color:var(--text-tertiary)}.logging-start-btn,.logging-stop-btn{padding:10px 16px;border:none;border-radius:4px;font-size:13px;font-weight:500;cursor:pointer;margin-top:8px;transition:background-color .15s}.logging-start-btn{background-color:#22c55e;color:#fff}.logging-start-btn:hover:not(:disabled){background-color:#16a34a}.logging-start-btn:disabled{background-color:#4b5563;cursor:not-allowed}.logging-stop-btn{background-color:#ef4444;color:#fff}.logging-stop-btn:hover:not(:disabled){background-color:#dc2626}.logging-stop-btn:disabled{background-color:#4b5563;cursor:not-allowed}.snapshot-btn{color:var(--text-muted);transition:color .15s}.snapshot-btn:hover{color:var(--accent)}.snapshot-overlay{position:fixed;inset:0;z-index:9999;background:#000000bf;display:flex;align-items:center;justify-content:center;padding:20px}.snapshot-modal{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;padding:16px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;gap:8px;box-shadow:0 8px 32px #00000080}.snapshot-info{display:flex;gap:16px;font-size:.75rem;color:var(--text-muted);flex-wrap:wrap}.snapshot-error{padding:20px;text-align:center;color:#ef4444}.snapshot-error button,.snapshot-close{margin-top:8px;padding:6px 16px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:.8rem}.snapshot-close:hover,.snapshot-error button:hover{background:var(--border-color)}.mission-card-body.collapsed,.mt-boat-list.collapsed{display:none}.mt-btn-row .mt-btn{flex:1 1 0;text-align:center;white-space:nowrap}.mt-btn.active,.mt-btn.trail-active{background:#ea580c;border-color:#ea580c;color:#fff}.mt-btn.armed-active{background:#ef4444;border-color:#ef4444;color:#fff}.mission-tab{display:grid;grid-template-columns:1fr;gap:0;height:calc(100vh - 200px);background:var(--bg-primary);position:relative;overflow:hidden}.mission-panel{position:absolute;top:10px;left:10px;z-index:1000;display:flex;flex-direction:column;gap:0;max-height:calc(100% - 20px);overflow-y:auto}.mission-panel-inner{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);display:flex;flex-direction:column;overflow:hidden;width:270px;box-shadow:0 4px 20px #00000080}.mission-card{padding:12px;border-top:1px solid var(--border-color)}.mission-card:first-child{border-top:none}.mission-card-title{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#ea580c;font-weight:600;text-transform:uppercase;margin-bottom:8px;letter-spacing:.05em}.mission-card-toggle{background:transparent;border:1px solid #334155;color:#94a3b8;font-size:.7rem;padding:2px 8px;border-radius:4px;cursor:pointer;transition:all .2s}.mission-card-toggle:hover{border-color:#ea580c;color:#e2e8f0}.mission-card-body{display:flex;flex-direction:column;gap:8px}.mission-card-body.collapsed{display:none}.mt-boat-selector{display:flex;flex-direction:column;gap:4px}.mt-boat-header{display:flex;justify-content:space-between;align-items:center}.mt-boat-count{background:#1e293b;color:#94a3b8;font-size:.7rem;padding:2px 8px;border-radius:10px}.mt-boat-list{display:flex;flex-wrap:wrap;gap:4px}.mt-boat-chip{display:flex;align-items:center;gap:6px;padding:4px 10px;border-radius:6px;border:1px solid #1e293b;background:#0f1520;color:#e2e8f0;font-size:.8rem;cursor:pointer;transition:all .15s}.mt-boat-chip:hover{border-color:#ea580c}.mt-boat-chip.selected{border-color:#ea580c;background:#ea580c26}.mt-boat-chip .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mt-boat-chip.status-green .status-dot{background:#22c55e}.mt-boat-chip.status-yellow .status-dot{background:#eab308}.mt-boat-chip.status-red .status-dot{background:#ef4444}.mt-boat-chip.status-blue .status-dot{background:#3b82f6}.mt-boat-chip.status-gray .status-dot{background:#6b7280}.mt-no-boats{color:#475569;font-size:.8rem;text-align:center;padding:12px}.mt-btn-row{display:flex;flex-wrap:wrap;gap:6px}.mt-btn{padding:5px 10px;border-radius:4px;border:1px solid #334155;background:#0f1520;color:#94a3b8;font-size:.75rem;cursor:pointer;transition:all .15s;font-weight:500}.mt-btn:hover{border-color:#ea580c;color:#e2e8f0}.mt-btn.active{background:#ea580c;border-color:#ea580c;color:#fff}.mt-btn:disabled{opacity:.4;cursor:not-allowed}.mt-btn.danger{border-color:#ef4444;color:#ef4444}.mt-btn.danger:hover{background:#ef444426}.mt-btn.wp-mode-active{background:#ea580c;color:#fff;animation:mt-pulse 1s ease-in-out infinite}@keyframes mt-pulse{0%,to{opacity:1}50%{opacity:.6}}.mt-protocol-toggle{display:flex;gap:4px}.mt-protocol-btn{flex:1;padding:4px 8px;border-radius:4px;border:1px solid #334155;background:#0f1520;color:#64748b;font-size:.7rem;cursor:pointer;transition:all .15s;text-align:center}.mt-protocol-btn.active{background:#ea580c;border-color:#ea580c;color:#fff}.mt-protocol-btn.core-connected{border-color:#22c55e}.mt-mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mt-mission-grid .mt-btn.span-2{grid-column:span 2}.mt-add-before{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#94a3b8}.mt-add-before input{width:50px;padding:3px 6px;border-radius:4px;border:1px solid #334155;background:var(--bg-primary);color:#e2e8f0;font-size:.75rem;text-align:center}.mt-status{display:flex;flex-direction:column;gap:6px}.mt-status-row{display:flex;justify-content:space-between;align-items:center}.mt-status-label{font-size:.8rem;color:#64748b}.mt-status-value{font-size:.8rem;font-weight:500;color:#e2e8f0}.mt-progress-bar{height:5px;background:#1e293b;border-radius:3px;overflow:hidden;margin-top:4px}.mt-progress-fill{height:100%;background:#ea580c;transition:width .3s;border-radius:3px}.mission-map-container{position:relative;height:100%;border-radius:12px;overflow:hidden}.mission-map-container .leaflet-container{height:100%;width:100%;background:var(--bg-primary);border-radius:12px}.mt-mode-bar{position:absolute;top:10px;left:296px;display:flex;gap:4px;z-index:1000;background:#000000bf;padding:4px;border-radius:6px}.mt-mode-btn{padding:7px 12px;border:none;border-radius:4px;background:#1e293b;color:#94a3b8;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.mt-mode-btn:hover{background:#334155;color:#e2e8f0}.mt-mode-btn.active{background:#ea580c;color:#fff}.mt-mode-btn.guided-active{background:#22c55e;color:#fff;animation:mt-pulse 1s ease-in-out infinite}.mt-mode-btn.override{background:#dc3545b3;color:#fff}.mt-mode-btn:disabled{opacity:.4;cursor:not-allowed}.mt-guided-info{position:absolute;top:50px;right:10px;display:flex;align-items:center;gap:8px;z-index:1000;background:#000000d9;padding:6px 12px;border-radius:4px;font-size:.8rem;color:#22c55e;border:1px solid #22c55e}.mt-guided-cancel{background:#ef4444;border:none;color:#fff;padding:3px 10px;border-radius:4px;cursor:pointer;font-size:.75rem;font-weight:500}.mt-guided-cancel:hover{background:#dc2626}.mt-map-info{position:absolute;bottom:8px;left:8px;z-index:1000;background:#000000bf;padding:4px 10px;border-radius:4px;font-size:.75rem;color:#94a3b8;display:flex;gap:12px}.mt-toast{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:1001;background:#000000e6;border:1px solid #334155;padding:10px 16px;border-radius:6px;display:flex;flex-direction:column;gap:6px;min-width:220px}.mt-toast-title{font-size:.8rem;font-weight:600;color:#e2e8f0}.mt-toast-status{font-size:.75rem;color:#94a3b8}.mt-toast.success{border-color:#22c55e}.mt-toast.success .mt-toast-title{color:#22c55e}.mt-toast.error{border-color:#ef4444}.mt-toast.error .mt-toast-title{color:#ef4444}.mt-wp-icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:.65rem;font-weight:700;color:#fff;border:2px solid white}.mt-wp-icon.current{background:#22c55e;box-shadow:0 0 8px #22c55e99}.mt-wp-icon.normal{background:#ea580c}.mt-wp-icon.home{background:#ef4444}.mt-insert-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#ea580c99;border:2px dashed rgba(255,255,255,.7);color:#fff;font-size:14px;font-weight:700;cursor:pointer;transition:all .15s;line-height:1}.mt-insert-icon:hover{background:#ea580c;border-style:solid;transform:scale(1.2)}.mt-selection-box{width:48px;height:48px;position:relative;pointer-events:none}.mt-selection-box:before,.mt-selection-box:after{content:"";position:absolute;width:12px;height:12px;border-color:#ef4444;border-style:solid}.mt-selection-box:before{top:0;left:0;border-width:2px 0 0 2px}.mt-selection-box:after{top:0;right:0;border-width:2px 2px 0 0}.mt-selection-box{background:linear-gradient(#ef4444,#ef4444) top left,linear-gradient(#ef4444,#ef4444) top left,linear-gradient(#ef4444,#ef4444) top right,linear-gradient(#ef4444,#ef4444) top right,linear-gradient(#ef4444,#ef4444) bottom left,linear-gradient(#ef4444,#ef4444) bottom left,linear-gradient(#ef4444,#ef4444) bottom right,linear-gradient(#ef4444,#ef4444) bottom right;background-size:2px 12px,12px 2px,2px 12px,12px 2px,2px 12px,12px 2px,2px 12px,12px 2px;background-repeat:no-repeat;background-position:top left,top left,top right,top right,bottom left,bottom left,bottom right,bottom right}.mt-selection-box:before,.mt-selection-box:after{display:none}.mt-file-input{display:none}.mt-depth-alert{background-color:#f9731633;border:1px solid #f97316;border-radius:4px;padding:2px 4px;animation:mt-depth-blink 1s infinite}.mt-depth-alert .nav-icon-sm,.mt-depth-alert .nav-value-sm{color:#f97316}@keyframes mt-depth-blink{0%,to{opacity:1}50%{opacity:.4}}.mission-card.disabled{opacity:.4;pointer-events:none}.mt-popup-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:9999}.mt-popup{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;min-width:260px;box-shadow:0 8px 24px #0006}.mt-popup-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border-color);font-size:13px;font-weight:600;color:var(--text-primary)}.mt-popup-close{background:none;border:none;color:var(--text-muted);font-size:18px;cursor:pointer;padding:0 4px}.mt-popup-body{padding:14px;display:flex;flex-direction:column;gap:12px}.mt-popup-toggle{display:flex;gap:6px}.mt-popup-toggle .mt-btn{flex:1}.mt-popup-field{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--text-secondary)}.mt-popup-field label{white-space:nowrap}.mt-popup-field input{flex:1;padding:4px 8px;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:12px;text-align:center}.mt-popup-actions{display:flex;justify-content:flex-end;gap:6px;padding:0 14px 14px}.mt-wp-icon.selected{border-color:#38bdf8;box-shadow:0 0 10px #38bdf8b3}.mt-drag-box{border:2px dashed #38bdf8;background:#38bdf81f;pointer-events:none;z-index:10000}.pt-layers-panel{position:absolute;top:10px;right:10px;z-index:1000;width:180px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:10px;box-shadow:0 4px 20px #00000080;overflow:hidden}.pt-layers-header{padding:10px 14px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#ea580c;border-bottom:1px solid var(--border-color);text-align:center}.pt-layers-body{padding:10px 14px;display:flex;flex-direction:column;gap:6px}.pt-layers-label{font-size:.7rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.pt-layers-checkbox{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-secondary);cursor:pointer}.pt-layers-checkbox input{accent-color:#ea580c}.pt-layers-checkbox.pt-layers-sub{padding-left:18px;font-size:.7rem;color:var(--text-muted)}.pt-layers-select{width:100%;padding:5px 8px;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:.75rem;cursor:pointer}.track-popup-action{display:block;width:100%;margin-top:8px;padding:5px 10px;border:none;border-radius:4px;background:#ea580c;color:#fff;font-size:12px;font-weight:500;cursor:pointer}.track-popup-action:hover{background:#c2410c}.zoom-to-list{display:flex;flex-wrap:wrap;gap:4px}.zoom-to-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:var(--bg-tertiary, #1e293b);border:1px solid var(--border-color, #334155);border-radius:4px;font-size:.7rem;font-family:SF Mono,Fira Code,monospace;color:var(--text-secondary, #94a3b8);cursor:pointer;transition:all .15s ease}.zoom-to-btn:hover{background:var(--bg-hover, #334155);border-color:var(--accent, #3b82f6);color:var(--text-primary, #f1f5f9)}.zoom-to-mode{color:var(--text-muted, #64748b);font-size:.6rem}.mt-btn-write{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important}.mt-btn-write:hover:not(:disabled){background:#15803d!important;border-color:#15803d!important}.mt-btn-write:disabled{background:#1e293b!important;color:#475569!important;border-color:#334155!important}.compass-rose-svg{width:150px;height:150px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}.gen-lines-params{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.gen-lines-row{display:flex;align-items:center;gap:6px}.gen-lines-label{font-size:.7rem;color:#94a3b8;width:48px;flex-shrink:0}.gen-lines-input{flex:1;padding:4px 6px;font-size:.75rem;background:#0f1520;border:1px solid #334155;border-radius:4px;color:#e2e8f0;text-align:center;max-width:70px}.gen-lines-input:focus{outline:none;border-color:#3b82f6}.gen-lines-unit{font-size:.7rem;color:#64748b;width:16px}.gen-lines-select{flex:1;padding:4px 6px;font-size:.75rem;background:#0f1520;border:1px solid #334155;border-radius:4px;color:#e2e8f0;cursor:pointer}.gen-lines-select:focus{outline:none;border-color:#3b82f6}.gen-tool-active{background:#1e3a5f!important;border-color:#3b82f6!important;color:#60a5fa!important}.gen-tool-options{margin-top:8px;padding-top:8px;border-top:1px solid #1e293b;display:flex;flex-direction:column;gap:8px}.gen-run-btn{width:100%;background:#14532d!important;border-color:#22c55e!important;color:#4ade80!important}.gen-run-btn:hover:not(:disabled){background:#166534!important}.gen-run-btn:disabled{opacity:.4}.gen-btn-row{display:flex;gap:6px}.gen-btn-row .mt-btn{flex:1}.gen-btn-row .gen-run-btn{flex:2}.fl-popup-name-row{display:flex;align-items:center;gap:2px}.fl-popup-project{font-size:.8rem;color:#94a3b8;white-space:nowrap;font-weight:500}.fl-popup-input{flex:1;min-width:0;padding:4px 8px;font-size:.8rem;background:#0f172a;border:1px solid #334155;border-radius:4px;color:#e2e8f0;outline:none}.fl-popup-input:focus{border-color:#3b82f6}.fl-popup-input::placeholder{color:#475569}.mobile-tab{position:relative;height:calc(100vh - 140px);height:calc(100dvh - 140px);background:#0f1114;overflow:hidden}@media(max-width:768px){.mobile-tab{height:calc(100vh - 180px);height:calc(100dvh - 180px)}}.mob-map-container{position:absolute;inset:0;z-index:1}.mob-map-container .leaflet-container{height:100%;width:100%}.mob-mode-bar{position:absolute;top:12px;left:12px;right:12px;z-index:900;display:flex;gap:4px;background:#0f1114b8;backdrop-filter:blur(24px) saturate(1.4);-webkit-backdrop-filter:blur(24px) saturate(1.4);border-radius:16px;padding:5px;border:1px solid rgba(255,255,255,.06);box-shadow:0 8px 32px #00000080,inset 0 1px #ffffff0a;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.mob-mode-bar::-webkit-scrollbar{display:none}.mob-mode-btn{flex:1;min-height:44px;min-width:72px;padding:10px 14px;background:#ffffff0a;border:1px solid transparent;border-radius:12px;color:#ffffff80;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.mob-mode-btn:active{transform:scale(.96)}.mob-mode-btn:disabled{opacity:.3;pointer-events:none}.mob-mode-btn.active{background:linear-gradient(135deg,#ea580c,#dc4a04);border-color:#ea580c66;color:#fff;box-shadow:0 0 20px #ea580c4d,inset 0 1px #ffffff26}.mob-mode-btn.guided-active{background:linear-gradient(135deg,#16a34a,#15803d);border-color:#22c55e66;color:#fff;box-shadow:0 0 20px #22c55e59;animation:mob-pulse 1.5s ease-in-out infinite}@keyframes mob-pulse{0%,to{box-shadow:0 0 20px #22c55e59}50%{box-shadow:0 0 28px #22c55e8c}}.mob-guided-info{position:absolute;top:76px;left:12px;right:12px;z-index:900;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0f1114d1;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:12px 16px;border-radius:14px;border:1px solid rgba(34,197,94,.3);color:#4ade80;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:500;box-shadow:0 4px 24px #0006;animation:slideDown .25s cubic-bezier(.4,0,.2,1)}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.mob-guided-cancel{background:linear-gradient(135deg,#ef4444,#dc2626);border:none;color:#fff;padding:8px 18px;border-radius:10px;font-family:inherit;font-size:.8rem;font-weight:600;min-height:44px;cursor:pointer;-webkit-tap-highlight-color:transparent}.mob-guided-cancel:active{transform:scale(.96)}.mob-toast{position:absolute;top:76px;left:50%;transform:translate(-50%);z-index:1001;display:flex;flex-direction:column;gap:2px;background:#0f1114e0;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.08);padding:12px 24px;border-radius:14px;min-width:200px;text-align:center;box-shadow:0 8px 32px #00000080;animation:toastIn .3s cubic-bezier(.4,0,.2,1)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(-12px) scale(.95)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.mob-toast.success{border-color:#22c55e59}.mob-toast.success .mob-toast-title{color:#4ade80}.mob-toast.error{border-color:#ef444459}.mob-toast.error .mob-toast-title{color:#f87171}.mob-toast-title{font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:600;color:#e2e8f0;letter-spacing:.02em}.mob-toast-status{font-size:.72rem;color:#fff6}.mob-sheet{position:absolute;bottom:0;left:0;right:0;z-index:1000;background:#14161ceb;backdrop-filter:blur(40px) saturate(1.5);-webkit-backdrop-filter:blur(40px) saturate(1.5);border-radius:24px 24px 0 0;box-shadow:0 -8px 40px #0009,inset 0 1px #ffffff0f;display:flex;flex-direction:column;transition:height .35s cubic-bezier(.32,.72,0,1);will-change:height;padding-bottom:env(safe-area-inset-bottom,0px)}.mob-sheet-collapsed{height:68px}.mob-sheet-half{height:45vh}.mob-sheet-full{height:85vh}.mob-sheet-handle{display:flex;justify-content:center;padding:12px 0 8px;cursor:grab;flex-shrink:0;touch-action:none;min-height:44px}.mob-sheet-handle:active{cursor:grabbing}.mob-sheet-handle-bar{width:36px;height:5px;background:#fff3;border-radius:3px;transition:background .2s}.mob-sheet-handle:active .mob-sheet-handle-bar{background:#ffffff59}.mob-peek-bar{display:flex;align-items:center;padding:0 14px 8px;gap:10px;flex-shrink:0;min-height:36px}.mob-peek-boats{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:1;padding:2px 0}.mob-peek-boats::-webkit-scrollbar{display:none}.mob-boat-chip{display:flex;align-items:center;gap:8px;padding:7px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:24px;color:#ffffffb3;font-family:JetBrains Mono,monospace;font-size:.78rem;font-weight:600;letter-spacing:.02em;white-space:nowrap;flex-shrink:0;min-height:38px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.mob-boat-chip:active{transform:scale(.95)}.mob-boat-chip.selected{background:#ea580c1f;border-color:#ea580c80;color:#fff;box-shadow:0 0 16px #ea580c26}.mob-boat-chip .status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}.mob-boat-chip.status-green .status-dot{background:#22c55e;box-shadow:0 0 8px #22c55e80}.mob-boat-chip.status-yellow .status-dot{background:#eab308;box-shadow:0 0 8px #eab30880}.mob-boat-chip.status-red .status-dot{background:#ef4444;box-shadow:0 0 8px #ef444480}.mob-boat-chip.status-blue .status-dot{background:#3b82f6;box-shadow:0 0 8px #3b82f680}.mob-boat-chip.status-gray .status-dot{background:#6b7280;box-shadow:none}.mob-peek-stats{display:flex;justify-content:center;gap:20px;flex-shrink:0;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:500;color:#ffffff59;padding:0 14px 8px;letter-spacing:.03em}.mob-sheet-content{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.mob-quick-row{display:flex;gap:6px;padding:8px 14px 12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid rgba(255,255,255,.04)}.mob-quick-row::-webkit-scrollbar{display:none}.mob-card{border-bottom:1px solid rgba(255,255,255,.04)}.mob-card-header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:none;border:none;color:var(--text-primary);cursor:pointer;min-height:52px;-webkit-tap-highlight-color:transparent;transition:background .15s}.mob-card-header:active{background:#ffffff05}.mob-card-title{display:flex;align-items:center;gap:10px;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#ea580cd9}.mob-card-badge{background:#ea580c1a;color:#ea580c;font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:600;padding:3px 10px;border-radius:20px;border:1px solid rgba(234,88,12,.15);letter-spacing:.04em}.mob-chevron{color:#fff3;transition:transform .25s cubic-bezier(.4,0,.2,1);flex-shrink:0}.mob-chevron.open{transform:rotate(180deg)}.mob-card-body{padding:0 18px 18px;display:flex;flex-direction:column;gap:10px;animation:cardExpand .2s cubic-bezier(.4,0,.2,1)}@keyframes cardExpand{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.mob-btn{min-height:44px;padding:10px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#ffffffb3;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:all .15s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent;white-space:nowrap}.mob-btn:active{transform:scale(.96);background:#ffffff0f}.mob-btn:disabled{opacity:.25;cursor:not-allowed;transform:none}.mob-btn.active{background:linear-gradient(135deg,#ea580c,#c2410c);border-color:#ea580c80;color:#fff;box-shadow:0 0 16px #ea580c33}.mob-btn.wp-mode-active{background:linear-gradient(135deg,#ea580c,#c2410c);border-color:#ea580c80;color:#fff;box-shadow:0 0 16px #ea580c33;animation:mob-pulse-btn 1.5s ease-in-out infinite}@keyframes mob-pulse-btn{0%,to{box-shadow:0 0 16px #ea580c33}50%{box-shadow:0 0 24px #ea580c66}}.mob-btn-primary{background:linear-gradient(135deg,#ea580c,#c2410c);border-color:#ea580c80;color:#fff;box-shadow:0 2px 12px #ea580c33}.mob-btn-primary:active{box-shadow:0 1px 8px #ea580c4d}.mob-btn-danger{background:transparent;border-color:#ef444459;color:#f87171}.mob-btn-danger:active{background:#ef444414}.mob-btn-full{width:100%}.mob-btn-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.mob-protocol-toggle{display:flex;gap:4px;background:#ffffff05;border-radius:12px;padding:3px;border:1px solid rgba(255,255,255,.04)}.mob-protocol-btn{flex:1;min-height:40px;padding:8px;background:transparent;border:1px solid transparent;border-radius:9px;color:#fff6;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);-webkit-tap-highlight-color:transparent}.mob-protocol-btn.active{background:linear-gradient(135deg,#ea580c,#c2410c);border-color:transparent;color:#fff;box-shadow:0 2px 10px #ea580c40}.mob-protocol-btn.core-connected{border-color:#22c55e4d}.mob-status-grid{display:flex;flex-direction:column;gap:6px}.mob-stat-row{display:flex;justify-content:space-between;align-items:center;font-size:.78rem;padding:4px 0}.mob-stat-row span:first-child{color:#ffffff59;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.mob-stat-row span:last-child{color:#ffffffe6;font-family:JetBrains Mono,monospace;font-weight:600;font-size:.8rem}.mob-input-row{display:flex;align-items:center;gap:10px}.mob-input-row span{min-width:55px;font-size:.72rem;color:#ffffff59;text-transform:uppercase;letter-spacing:.06em}.mob-input-row input{flex:1;min-height:44px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-primary);font-family:inherit;font-size:16px;transition:border-color .2s}.mob-input-row input:focus{outline:none;border-color:#ea580c66;box-shadow:0 0 0 3px #ea580c14}.mob-insert-row{display:flex;align-items:center;gap:10px;font-size:.75rem;color:#ffffff59}.mob-insert-row input{width:70px;min-height:44px;padding:8px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:16px;text-align:center;transition:border-color .2s}.mob-insert-row input:focus{outline:none;border-color:#ea580c66;box-shadow:0 0 0 3px #ea580c14}.mob-progress-bar{height:4px;background:#ffffff0f;border-radius:2px;overflow:hidden;margin-top:8px}.mob-progress-fill{height:100%;background:linear-gradient(90deg,#ea580c,#f97316);border-radius:2px;transition:width .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 12px #ea580c66;position:relative}.mob-progress-fill:after{content:"";position:absolute;right:0;top:-2px;width:8px;height:8px;border-radius:50%;background:#f97316;box-shadow:0 0 8px #f9731699}.mob-hud-section{padding:10px 0;border-bottom:1px solid rgba(255,255,255,.04)}.mob-hud-section:last-child{border-bottom:none}.mob-hud-label{font-family:JetBrains Mono,monospace;font-size:.65rem;font-weight:700;color:#ea580cb3;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px;display:flex;align-items:center;gap:8px}.mob-hud-row{display:flex;gap:16px;font-family:JetBrains Mono,monospace;font-size:.78rem;color:#ffffffbf;padding:3px 0;flex-wrap:wrap}.mob-hud-row.depth-alert{color:#f97316;font-weight:700}.mob-hud-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.mob-hud-item{display:flex;align-items:center;justify-content:center;padding:8px 4px;background:#ffffff08;border-radius:10px;border:1px solid rgba(255,255,255,.05);transition:border-color .2s}.mob-hud-item.warning{border-color:#ef444466;background:#ef44440f}.mob-hud-val{font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:700;color:#ffffffe6;letter-spacing:-.01em}.mob-hud-item.warning .mob-hud-val{color:#f87171}.mob-hud-remaining{font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:500;color:#ffffff4d;margin-top:6px;letter-spacing:.02em}.mob-apu-alert{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff;font-family:JetBrains Mono,monospace;font-weight:700;font-size:.8rem;letter-spacing:.1em;text-align:center;padding:8px;border-radius:10px;margin-top:6px;animation:apu-flash .8s ease-in-out infinite;box-shadow:0 0 20px #ef44444d}@keyframes apu-flash{0%,to{opacity:1;box-shadow:0 0 20px #ef44444d}50%{opacity:.85;box-shadow:0 0 28px #ef444480}}.mob-alert-badge{font-family:JetBrains Mono,monospace;font-size:.55rem;font-weight:700;padding:2px 8px;border-radius:10px;background:#ea580c26;color:#f97316;text-transform:uppercase;letter-spacing:.08em;border:1px solid rgba(234,88,12,.2)}.mob-core-link{display:block;color:#ea580ccc;text-decoration:none;font-family:JetBrains Mono,monospace;font-size:.75rem;font-weight:600;padding:6px 0;letter-spacing:.02em;transition:color .15s}.mob-core-link:active{color:#f97316}.mob-popup-overlay{position:fixed;inset:0;z-index:2000;background:#000000a6;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;animation:overlayIn .2s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.mob-popup{background:#1c1f26f2;backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px);border:1px solid rgba(255,255,255,.08);border-radius:20px;width:320px;max-width:90vw;overflow:hidden;box-shadow:0 24px 80px #0009,inset 0 1px #ffffff0d;animation:popupIn .25s cubic-bezier(.32,.72,0,1)}@keyframes popupIn{0%{opacity:0;transform:scale(.92) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.mob-popup-header{display:flex;justify-content:space-between;align-items:center;padding:18px 20px;border-bottom:1px solid rgba(255,255,255,.05);font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700;color:var(--text-primary);letter-spacing:.02em}.mob-popup-header button{background:none;border:none;color:#ffffff4d;font-size:1.4rem;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:10px;transition:background .15s}.mob-popup-header button:active{background:#ffffff0d}.mob-popup-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px}.mob-popup-toggle{display:flex;gap:6px}.mob-popup-toggle .mob-btn{flex:1}.mob-popup-field{display:flex;align-items:center;gap:10px}.mob-popup-field label{font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:600;color:#ffffff59;min-width:40px;text-transform:uppercase;letter-spacing:.06em}.mob-popup-field input{flex:1;min-height:44px;padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--text-primary);font-family:JetBrains Mono,monospace;font-size:16px;text-align:center;transition:border-color .2s}.mob-popup-field input:focus{outline:none;border-color:#ea580c66;box-shadow:0 0 0 3px #ea580c14}.mob-popup-actions{display:flex;gap:8px;padding:4px 20px 20px}.mob-popup-actions .mob-btn{flex:1}.mob-wp-icon{width:32px;height:32px;border-radius:50%;border:2px solid rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;font-family:JetBrains Mono,monospace;font-size:.7rem;font-weight:700;color:#fff;box-shadow:0 2px 8px #00000080}.mob-wp-icon.normal{background:linear-gradient(135deg,#ea580c,#c2410c)}.mob-wp-icon.current{background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 0 14px #22c55e80}.mob-wp-icon.home{background:linear-gradient(135deg,#ef4444,#dc2626)}.mob-wp-icon.selected{border-color:#38bdf8;box-shadow:0 0 14px #38bdf880}.mob-selection-box{width:48px;height:48px;background:linear-gradient(#ea580c,#ea580c) top left,linear-gradient(#ea580c,#ea580c) top left,linear-gradient(#ea580c,#ea580c) top right,linear-gradient(#ea580c,#ea580c) top right,linear-gradient(#ea580c,#ea580c) bottom left,linear-gradient(#ea580c,#ea580c) bottom left,linear-gradient(#ea580c,#ea580c) bottom right,linear-gradient(#ea580c,#ea580c) bottom right;background-size:12px 2px,2px 12px,12px 2px,2px 12px,12px 2px,2px 12px,12px 2px,2px 12px;background-repeat:no-repeat;filter:drop-shadow(0 0 6px rgba(234,88,12,.4))}.mob-insert-icon{width:28px;height:28px;border-radius:50%;background:#ea580c80;border:2px dashed rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.snapshot-overlay{position:fixed;inset:0;z-index:2000;background:#000000bf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:20px;animation:overlayIn .2s ease}.snapshot-modal{background:#1c1f26f2;border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:16px;max-width:90vw;max-height:85vh;overflow:hidden;box-shadow:0 24px 80px #0009;animation:popupIn .25s cubic-bezier(.32,.72,0,1)}.snapshot-modal img{border-radius:12px}.snapshot-info{display:flex;justify-content:space-between;padding:12px 4px 8px;font-family:JetBrains Mono,monospace;font-size:.72rem;color:#fff6}.snapshot-close{width:100%;min-height:44px;padding:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#ffffffb3;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s}.snapshot-close:active{background:#ffffff14}.snapshot-error{text-align:center;padding:20px;color:#f87171;font-size:.85rem}.snapshot-error button{margin-top:12px;min-height:44px;padding:10px 24px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;color:#ffffffb3;font-family:JetBrains Mono,monospace;cursor:pointer}.wind-canvas{position:absolute;inset:0;z-index:500;pointer-events:none}.planning-container{display:flex;gap:16px;height:calc(100vh - 200px);min-height:400px}.planning-panel{width:260px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.panel-box{background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.panel-box-header{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background-color:var(--bg-tertiary)}.panel-box-header.clickable{cursor:pointer}.panel-box-header.clickable:hover{background-color:var(--bg-tertiary)}.panel-box-title{font-size:10px;font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px}.toggle-btn{padding:2px 8px;font-size:10px;font-weight:500;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:3px;color:var(--text-secondary);cursor:pointer}.toggle-btn:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.panel-box-content{padding:10px;display:flex;flex-direction:column;gap:8px}.project-row{display:flex;gap:8px}.project-select{flex:1;min-width:0}.action-btn.create-btn{padding:5px 10px;font-size:11px;background-color:#22c55e33;border:1px solid rgba(34,197,94,.5);color:#22c55e}.action-btn.create-btn.full-width{width:100%}.action-btn.create-btn:hover{background-color:#22c55e4d}.create-project-row{display:flex;gap:4px;margin-top:6px}.create-project-row .panel-input{flex:1;min-width:0}.action-btn.save-small,.action-btn.cancel-small{padding:5px 8px;font-size:10px;white-space:nowrap}.action-btn.save-small{background-color:#22c55e33;border:1px solid rgba(34,197,94,.5);color:#22c55e}.action-btn.save-small:hover:not(:disabled){background-color:#22c55e4d}.action-btn.cancel-small{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.action-btn.cancel-small:hover{background-color:var(--bg-primary)}.save-row{display:flex;justify-content:space-between;align-items:center;gap:8px}.vertex-count{font-size:10px;color:var(--text-secondary)}.save-row .action-btn.save{flex:0 0 auto;width:auto;padding:4px 10px;font-size:10px}.panel-section{display:flex;flex-direction:column;gap:4px}.panel-label{font-size:10px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.panel-select{padding:6px 8px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-primary);color:var(--text-primary);font-size:11px;cursor:pointer}.panel-select:focus{outline:none;border-color:var(--accent)}.panel-input{padding:6px 8px;border:1px solid var(--border-color);border-radius:4px;background-color:var(--bg-primary);color:var(--text-primary);font-size:11px}.panel-input:focus{outline:none;border-color:var(--accent)}.layer-toggle{display:flex;gap:3px}.layer-btn{flex:1;padding:4px 8px;font-size:10px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.layer-btn:hover{background-color:var(--bg-primary)}.layer-btn.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.set-area-buttons{display:flex;gap:8px}.set-area-buttons .action-btn{flex:1}.action-btn.clear-area{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.action-btn.clear-area:hover:not(:disabled){background-color:var(--bg-primary)}.source-toggle{display:flex;gap:3px;margin-bottom:8px}.source-btn{flex:1;padding:4px;font-size:9px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.source-btn:hover{background-color:var(--bg-primary)}.source-btn.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.offset-inputs{display:flex;gap:8px;margin-bottom:8px}.offset-input-group{display:flex;align-items:center;gap:3px}.offset-input{width:40px;text-align:center;padding:4px 2px!important}.offset-unit{font-size:9px;color:var(--text-secondary);white-space:nowrap}.auto-define-buttons{display:flex;gap:8px}.action-btn.set-area{flex:1;background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.action-btn.set-area:hover:not(:disabled){background-color:var(--bg-primary)}.action-btn.set-area.active{background-color:#a855f733;border:1px solid rgba(168,85,247,.5);color:#c084fc;animation:pulse 1.5s infinite}.action-btn.set-area.has-area{background-color:#22c55e33;border:1px solid rgba(34,197,94,.5);color:#22c55e}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.action-btn.auto-define{flex:1;background-color:#8b5cf633;border:1px solid rgba(139,92,246,.5);color:#a78bfa}.action-btn.auto-define:hover:not(:disabled){background-color:#8b5cf64d}.nhd-search-row{display:flex;gap:8px}.nhd-search-row .panel-input{flex:1;min-width:0}.action-btn.nhd-search{padding:10px 16px;background-color:#3b82f633;border:1px solid rgba(59,130,246,.5);color:#60a5fa;white-space:nowrap}.action-btn.nhd-search:hover:not(:disabled){background-color:#3b82f64d}.nhd-results{display:flex;flex-direction:column;gap:4px;margin-top:6px;max-height:150px;overflow-y:auto}.nhd-result-item{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;gap:6px}.nhd-result-info{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.nhd-result-name{font-size:10px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nhd-result-meta{font-size:9px;color:var(--text-secondary)}.nhd-result-btn{padding:3px 8px;font-size:9px;font-weight:600;background-color:#22c55e33;border:1px solid rgba(34,197,94,.5);border-radius:3px;color:#22c55e;cursor:pointer;white-space:nowrap}.nhd-result-btn:hover:not(:disabled){background-color:#22c55e4d}.nhd-result-btn:disabled{opacity:.5;cursor:not-allowed}.nhd-clear-btn{padding:4px 8px;font-size:9px;background-color:transparent;border:1px solid var(--border-color);border-radius:3px;color:var(--text-secondary);cursor:pointer;margin-top:3px}.nhd-clear-btn:hover{background-color:var(--bg-tertiary)}.action-btn.import-shp{background-color:#22c55e33;border:1px solid rgba(34,197,94,.5);color:#22c55e}.action-btn.import-shp:hover:not(:disabled){background-color:#22c55e4d}.action-btn.draw-manual{background-color:#3b82f633;border:1px solid rgba(59,130,246,.5);color:#60a5fa}.action-btn.draw-manual:hover:not(:disabled){background-color:#3b82f64d}.mode-buttons{display:flex;gap:3px}.mode-btn{flex:1;padding:4px 6px;font-size:10px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.mode-btn:hover:not(:disabled){background-color:var(--bg-primary)}.mode-btn.active{background-color:#3b82f6;border-color:#3b82f6;color:#fff}.mode-btn.clear{background-color:#ef444426;border-color:#ef444466;color:#f87171}.mode-btn.clear:hover:not(:disabled){background-color:#ef444440}.panel-hint{padding:6px 8px;background-color:#3b82f61a;border:1px solid rgba(59,130,246,.3);border-radius:4px;font-size:10px;color:#60a5fa;line-height:1.3}.panel-warning{padding:6px 8px;background-color:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:4px;font-size:10px;color:#fbbf24;line-height:1.3}.vertex-actions{display:flex;gap:4px}.vertex-btn{flex:1;padding:4px 8px;font-size:10px;font-weight:600;border-radius:4px;cursor:pointer;transition:all .15s ease}.vertex-btn.insert{background-color:#22c55e33;border:1px solid rgba(34,197,94,.5);color:#22c55e}.vertex-btn.insert:hover{background-color:#22c55e4d}.vertex-btn.delete{background-color:#ef444433;border:1px solid rgba(239,68,68,.5);color:#ef4444}.vertex-btn.delete:hover:not(:disabled){background-color:#ef44444d}.vertex-btn:disabled{opacity:.5;cursor:not-allowed}.action-btn{width:100%;padding:6px 10px;font-size:11px;font-weight:600;border-radius:4px;cursor:pointer;transition:all .15s ease}.action-btn.clear{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary)}.action-btn.clear:hover:not(:disabled){background-color:var(--bg-primary);color:var(--text-primary)}.action-btn.save{background-color:var(--accent);border:1px solid var(--accent);color:#fff}.action-btn.save:hover:not(:disabled){background-color:var(--accent-hover)}.action-btn:disabled{opacity:.5;cursor:not-allowed}.panel-actions{margin-top:auto}.planning-map{flex:1;position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);height:100%}.planning-map .leaflet-container{width:100%;height:100%;background-color:#1a1a2e}.mode-indicator{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:8px 16px;border-radius:20px;font-size:12px;font-weight:600;z-index:1000;pointer-events:none}.mode-indicator.draw{background-color:#22c55ee6;color:#fff}.mode-indicator.edit{background-color:#3b82f6e6;color:#fff}.mode-indicator.set-area{background-color:#a855f7e6;color:#fff}.vertex-marker{background:none!important;border:none!important;z-index:1000!important}.vertex-dot{width:20px;height:20px;background-color:#3b82f6;border:3px solid white;border-radius:50%;box-shadow:0 2px 6px #0006;cursor:pointer}.vertex-dot.draggable{cursor:grab;background-color:#22c55e}.vertex-dot.draggable:hover{box-shadow:0 0 0 6px #22c55e80,0 2px 6px #0006;background-color:#16a34a}.vertex-dot.draggable:active{cursor:grabbing;box-shadow:0 0 0 8px #22c55e99,0 2px 6px #0006}.vertex-dot.selected{background-color:#f97316;box-shadow:0 0 0 6px #f9731680,0 2px 6px #0006}.vertex-dot.selected.draggable{background-color:#f97316}.vertex-dot.selected.draggable:hover{box-shadow:0 0 0 8px #f9731699,0 2px 6px #0006;background-color:#ea580c}.planning-map .leaflet-control-zoom{border:none;box-shadow:0 2px 6px #0000004d}.planning-map .leaflet-control-zoom a{background-color:var(--bg-secondary);color:var(--text-primary);border-bottom:1px solid var(--border-color)}.planning-map .leaflet-control-zoom a:hover{background-color:var(--bg-tertiary)}.saved-polygons-list{display:flex;flex-direction:column;gap:3px;max-height:150px;overflow-y:auto}.saved-polygon-item{display:flex;align-items:center;justify-content:space-between;padding:5px 8px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;transition:all .15s ease}.saved-polygon-item:hover{background-color:var(--bg-primary)}.saved-polygon-item.active{border-color:var(--accent);background-color:#ea580c1a}.saved-polygon-item.exclusion.active{border-color:#ef4444;background-color:#ef44441a}.saved-polygon-info{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.saved-polygon-icon{font-size:10px;line-height:1}.saved-polygon-icon.main{color:#3b82f6}.saved-polygon-icon.exclusion{color:#ef4444}.saved-polygon-name{font-size:10px;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.saved-polygon-meta{font-size:9px;color:var(--text-secondary);white-space:nowrap}.saved-polygon-delete{padding:2px 6px;font-size:12px;font-weight:600;background-color:transparent;border:1px solid transparent;border-radius:3px;color:var(--text-secondary);cursor:pointer;line-height:1}.saved-polygon-delete:hover{background-color:#ef444433;border-color:#ef444480;color:#ef4444}.action-btn.add-exclusion{margin-top:4px;background-color:#ef444426;border:1px solid rgba(239,68,68,.4);color:#f87171}.action-btn.add-exclusion:hover:not(:disabled){background-color:#ef444440}.mode-indicator.exclusion,.mode-indicator.draw.exclusion,.mode-indicator.edit.exclusion{background-color:#ef4444e6}.transect-params{display:flex;gap:8px}.transect-param-group{display:flex;align-items:center;gap:3px;flex:1}.transect-input{width:50px;text-align:center;padding:4px 2px!important}.transect-unit{font-size:9px;color:var(--text-secondary);white-space:nowrap}.chunk-mode-toggle{display:flex;gap:3px;margin-bottom:6px}.chunk-mode-btn{flex:1;padding:4px 6px;font-size:10px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.chunk-mode-btn:hover{background-color:var(--bg-primary)}.chunk-mode-btn.active{background-color:#22c55e;border-color:#22c55e;color:#fff}.chunk-value-row{display:flex}.transect-actions{display:flex;gap:6px}.action-btn.generate-transects{flex:1;background-color:#22c55e33;border:1px solid rgba(34,197,94,.5);color:#22c55e}.action-btn.generate-transects:hover:not(:disabled){background-color:#22c55e4d}.action-btn.clear-transects{padding:6px 10px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);width:auto}.action-btn.clear-transects:hover:not(:disabled){background-color:var(--bg-primary)}.transect-summary{margin-top:6px;padding:6px 8px;background-color:#22c55e1a;border:1px solid rgba(34,197,94,.3);border-radius:4px}.transect-summary-row{display:flex;justify-content:space-between;font-size:10px;color:var(--text-secondary);padding:2px 0}.transect-summary-row span:last-child{color:#22c55e;font-weight:500}.panel-divider{height:1px;background-color:var(--border-color);margin:8px 0}.action-btn.generate-mission{flex:1;background-color:#f59e0b33;border:1px solid rgba(245,158,11,.5);color:#f59e0b}.action-btn.generate-mission:hover:not(:disabled){background-color:#f59e0b4d}.action-btn.clear-mission{padding:6px 10px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-secondary);width:auto}.action-btn.clear-mission:hover:not(:disabled){background-color:var(--bg-primary)}.mission-summary{margin-top:6px;padding:6px 8px;background-color:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:4px}.mission-summary .transect-summary-row span:last-child{color:#f59e0b}.action-btn.export-mission{background-color:#3b82f633;border:1px solid rgba(59,130,246,.5);color:#3b82f6}.action-btn.export-mission:hover:not(:disabled){background-color:#3b82f64d}.checkbox-label{display:flex;align-items:center;gap:6px;font-size:10px;color:var(--text-secondary);cursor:pointer}.checkbox-label input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.planning-files{position:relative;display:flex;flex-direction:column;align-items:flex-end}.files-toggle{padding:6px 8px;font-size:10px;font-weight:600;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.files-toggle:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.files-toggle.active{background-color:#3b82f633;border-color:#3b82f680;color:#60a5fa}.files-content.compact{width:180px;max-height:calc(100vh - 280px);overflow-y:auto;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;margin-top:4px}.files-content.compact .files-section{border-bottom:1px solid var(--border-color)}.files-content.compact .files-section:last-of-type{border-bottom:none}.files-content.compact .files-section-header{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;background-color:var(--bg-tertiary)}.files-select-all{display:flex;align-items:center;gap:6px;font-size:9px;font-weight:600;color:var(--text-primary);cursor:pointer;text-transform:uppercase;letter-spacing:.3px}.files-select-all input[type=checkbox]{width:12px;height:12px;accent-color:var(--accent);cursor:pointer}.files-select-all input[type=checkbox]:disabled{opacity:.4;cursor:not-allowed}.files-count{font-size:9px;color:var(--text-secondary);background-color:var(--bg-primary);padding:1px 5px;border-radius:8px}.files-content.compact .files-list{padding:4px 6px;display:flex;flex-direction:column;gap:2px}.file-item-compact{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:3px;cursor:pointer;transition:background-color .1s ease}.file-item-compact:hover{background-color:var(--bg-tertiary)}.file-item-compact input[type=checkbox]{width:11px;height:11px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}.file-name-compact{font-size:9px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.file-meta-compact{font-size:8px;color:var(--text-secondary);flex-shrink:0}.files-actions{display:flex;gap:4px;padding:6px;border-top:1px solid var(--border-color);background-color:var(--bg-tertiary)}.files-action-btn{flex:1;padding:4px 8px;font-size:9px;font-weight:600;border-radius:3px;cursor:pointer;transition:all .15s ease}.files-action-btn:disabled{opacity:.4;cursor:not-allowed}.files-action-btn.delete{background-color:#ef444426;border:1px solid rgba(239,68,68,.4);color:#f87171}.files-action-btn.delete:hover:not(:disabled){background-color:#ef444440}.files-action-btn.download{background-color:#3b82f626;border:1px solid rgba(59,130,246,.4);color:#60a5fa}.files-action-btn.download:hover:not(:disabled){background-color:#3b82f640}.files-action-btn.route{background-color:#22c55e26;border:1px solid rgba(34,197,94,.4);color:#22c55e}.files-action-btn.route:hover:not(:disabled){background-color:#22c55e40}.import-export-buttons{display:flex;gap:6px}.import-export-buttons .action-btn{flex:1;padding:5px 8px;font-size:10px}.planning-settings-panel{width:220px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.planning-settings-panel .panel-box{background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.planning-settings-panel .planning-files{position:relative;display:flex;flex-direction:column}.planning-settings-panel .files-toggle{display:none}.planning-settings-panel .files-content.compact{width:100%;max-height:none;margin-top:0}.compass-rose-overlay{position:absolute;bottom:12px;right:12px;z-index:1000;pointer-events:none;opacity:.65;transition:opacity .2s ease}.compass-rose-overlay:hover{opacity:.95}.compass-rose-svg{width:160px;height:160px;filter:drop-shadow(0 2px 8px rgba(0,0,0,.5))}.event-log{display:flex;flex-direction:column;height:calc(100vh - 200px);min-height:400px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);overflow:hidden}.event-log-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background-color:var(--bg-tertiary);border-bottom:1px solid var(--border-color)}.event-log-header h2{margin:0;font-size:16px;font-weight:600;color:var(--text-primary)}.event-log-tabs{display:flex;gap:4px}.tab-btn{padding:6px 16px;font-size:13px;font-weight:600;background-color:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.tab-btn:hover{background-color:var(--bg-hover)}.tab-btn.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.event-log-controls{display:flex;align-items:center;gap:12px;padding:12px 16px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color);flex-wrap:wrap}.filter-box{display:flex;align-items:center;gap:8px}.filter-box label{font-size:13px;color:var(--text-secondary)}.filter-input{width:60px;padding:6px 10px;font-size:13px;font-family:SF Mono,Fira Code,monospace;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);outline:none;text-align:center}.filter-input:focus{border-color:var(--accent)}.filter-input::placeholder{color:var(--text-muted)}.date-box{display:flex;align-items:center;gap:8px}.date-box label{font-size:13px;color:var(--text-secondary)}.date-input{padding:6px 10px;font-size:13px;font-family:SF Mono,Fira Code,monospace;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);outline:none}.date-input:focus{border-color:var(--accent)}.action-btn{padding:6px 14px;font-size:13px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.action-btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--text-muted)}.action-btn:disabled{opacity:.6;cursor:not-allowed}.action-btn.download-btn{background-color:#22c55e26;border-color:#22c55e66;color:#22c55e}.action-btn.download-btn:hover{background-color:#22c55e40;border-color:#22c55e}.filter-clear{padding:6px 12px;font-size:12px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.filter-clear:hover{background-color:var(--bg-hover);border-color:var(--text-muted)}.event-log-list{flex:1;overflow-y:auto;padding:8px}.event-log-empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:14px}.event-row{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;margin-bottom:4px;background-color:var(--bg-tertiary);transition:background-color .15s ease}.event-row:hover{background-color:var(--bg-hover)}.event-row.severity-info{border-left:3px solid #3b82f6}.event-row.severity-warning{border-left:3px solid #f59e0b;background-color:#f59e0b1a}.event-row.severity-error{border-left:3px solid #ef4444;background-color:#ef44441a}.event-date{font-size:12px;font-family:SF Mono,Fira Code,monospace;color:var(--text-secondary);min-width:55px}.event-time{font-size:12px;font-family:SF Mono,Fira Code,monospace;color:var(--text-muted);min-width:70px}.event-icon{width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:14px}.event-icon:before{content:"";width:16px;height:16px;background-size:contain;background-repeat:no-repeat;background-position:center}.icon-plug:before{content:"🔌"}.icon-chart:before{content:"📊"}.icon-gamepad:before{content:"🎮"}.icon-warning:before{content:"⚠️"}.icon-battery:before{content:"🔋"}.icon-bolt:before{content:"⚡"}.icon-waypoint:before{content:"📍"}.icon-radio:before{content:"📡"}.icon-info:before{content:"📝"}.event-boat-tag{padding:2px 8px;font-size:11px;font-weight:700;font-family:SF Mono,Fira Code,monospace;background-color:var(--accent);color:#fff;border-radius:4px;min-width:36px;text-align:center}.event-boat-tag.system{background-color:var(--text-muted)}.event-type{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);min-width:90px}.event-text{flex:1;font-size:13px;color:var(--text-primary)}.severity-warning .event-text{color:#f59e0b}.severity-error .event-text{color:#ef4444;font-weight:600}.event-log-footer{padding:8px 16px;background-color:var(--bg-tertiary);border-top:1px solid var(--border-color);font-size:12px;color:var(--text-muted)}.telemetry-logs{display:flex;flex-direction:column;height:100%;padding:16px;overflow-y:auto}.tlog-header{margin-bottom:20px}.tlog-header h3{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--text-primary)}.tlog-description{margin:0;font-size:13px;color:var(--text-muted)}.tlog-controls{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.tlog-row{display:flex;gap:12px}.tlog-field{display:flex;flex-direction:column;gap:6px;flex:1}.tlog-field label{font-size:12px;font-weight:500;color:var(--text-secondary)}.tlog-select,.tlog-input{padding:10px 12px;font-size:13px;font-family:inherit;background-color:var(--bg-primary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);outline:none}.tlog-select:focus,.tlog-input:focus{border-color:var(--accent)}.tlog-error{padding:10px 14px;margin-bottom:16px;background-color:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:6px;color:var(--danger);font-size:13px}.tlog-info{background-color:var(--bg-tertiary);border-radius:8px;padding:16px;margin-bottom:20px}.tlog-loading{color:var(--text-muted);font-size:13px}.tlog-stats{display:flex;gap:24px;margin-bottom:16px;flex-wrap:wrap}.tlog-stat{display:flex;flex-direction:column;gap:4px}.stat-label{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted)}.stat-value{font-size:14px;font-weight:600;color:var(--text-primary);font-family:SF Mono,Fira Code,monospace}.tlog-download-btn{padding:12px 24px;font-size:14px;font-weight:600;background-color:var(--accent);border:none;border-radius:8px;color:#fff;cursor:pointer;transition:all .15s ease}.tlog-download-btn:hover:not(:disabled){background-color:var(--accent-hover)}.tlog-download-btn:disabled{opacity:.6;cursor:not-allowed}.tlog-boat-list{margin-top:auto}.tlog-boat-list h4{margin:0 0 12px;font-size:13px;font-weight:600;color:var(--text-secondary)}.tlog-table{width:100%;border-collapse:collapse;font-size:13px}.tlog-table th,.tlog-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border-color)}.tlog-table th{font-size:11px;font-weight:600;text-transform:uppercase;color:var(--text-muted);background-color:var(--bg-tertiary)}.tlog-table td{color:var(--text-secondary)}.tlog-table tbody tr{cursor:pointer;transition:background-color .15s ease}.tlog-table tbody tr:hover{background-color:var(--bg-hover)}.tlog-table tbody tr.selected{background-color:#00b4d826}.tlog-table tbody tr.selected td{color:var(--text-primary)}.tlog-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:var(--text-muted);text-align:center}.tlog-empty p{margin:4px 0}.tlog-empty .hint{font-size:13px;color:var(--text-muted)}.logs-page{display:grid;grid-template-columns:1fr 1fr;gap:20px;height:calc(100vh - 200px);min-height:400px}.logs-pane{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);overflow:hidden}.messages-pane .event-log{height:100%;border:none;border-radius:0}.telemetry-pane{display:flex;flex-direction:column}@media(max-width:1200px){.logs-page{grid-template-columns:1fr;grid-template-rows:1fr 1fr}}.settings-container{height:calc(100vh - 200px);min-height:400px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);overflow:auto}.settings-content{padding:24px;max-width:600px}.settings-content h2{margin:0 0 24px;font-size:20px;font-weight:600;color:var(--text-primary)}.settings-section{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:16px;margin-bottom:16px}.settings-section h3{margin:0 0 16px;font-size:14px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.settings-loading,.settings-error{color:var(--text-muted);font-size:14px;margin:0}.settings-error{color:#ef4444}.system-stats{display:flex;flex-direction:column;gap:16px}.stat-item{display:flex;flex-direction:column;gap:6px}.stat-header{display:flex;justify-content:space-between;align-items:center}.stat-label{font-size:13px;font-weight:600;color:var(--text-primary)}.stat-value{font-size:12px;font-family:SF Mono,Fira Code,monospace;color:var(--text-muted)}.stat-bar{height:8px;background-color:var(--bg-primary);border-radius:4px;overflow:hidden}.stat-bar-fill{height:100%;border-radius:4px;transition:width .3s ease,background-color .3s ease}.notif-settings{display:flex;flex-direction:column;gap:12px}.notif-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.notif-label{font-size:13px;font-weight:600;color:var(--text-primary);min-width:140px}.notif-toggle{display:flex;align-items:center;gap:8px;cursor:pointer}.notif-toggle input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer}.notif-toggle-label{font-size:13px;color:var(--text-primary)}.notif-threshold{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-muted)}.notif-input{padding:5px 8px;border-radius:4px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:12px;font-family:inherit}.notif-input-wide{flex:1}.notif-input-sm{width:60px;text-align:center}.notif-input:focus{outline:none;border-color:var(--accent)}.notif-actions{display:flex;align-items:center;gap:12px;margin-top:4px}.notif-save-btn{padding:6px 20px;border-radius:6px;border:none;background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s}.notif-save-btn:hover{background:var(--accent-hover)}.notif-save-btn:disabled{opacity:.5;cursor:not-allowed}.notif-msg{font-size:12px;font-weight:500}.notif-msg.success{color:#22c55e}.notif-msg.error{color:#ef4444}.notif-boats{border-top:1px solid var(--border-color);padding-top:12px}.notif-boat-list{display:flex;flex-wrap:wrap;gap:6px}.notif-boat-chip{display:flex;align-items:center;gap:4px;padding:4px 10px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-primary);color:var(--text-primary);font-size:12px;cursor:pointer;transition:all .15s}.notif-boat-chip:hover{border-color:var(--accent)}.notif-boat-chip.excluded{opacity:.4;border-color:var(--border-color)}.notif-boat-chip input[type=checkbox]{width:14px;height:14px;accent-color:var(--accent);cursor:pointer}.online-clients{margin-top:8px}.clients-table{width:100%;border-collapse:collapse;font-size:.8rem}.clients-table th{text-align:left;color:#94a3b8;font-weight:500;padding:4px 8px;border-bottom:1px solid #334155}.clients-table td{padding:6px 8px;color:#e2e8f0;border-bottom:1px solid #1e293b}.client-ip{font-family:monospace;color:#38bdf8}.clients-locations{margin-top:10px;display:flex;flex-direction:column;gap:4px}.client-location-dot{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#94a3b8}.client-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;display:inline-block;flex-shrink:0}.file-manager{padding:1.5rem;max-width:1400px;margin:0 auto}.file-manager-header{margin-bottom:1.5rem}.file-manager-header h2{margin:0;font-size:1.5rem;font-weight:600;color:#f8fafc}.file-manager-subtitle{margin:.25rem 0 0;font-size:.875rem;color:#94a3b8}.file-manager-controls{display:flex;gap:1rem;align-items:flex-end;margin-bottom:1.5rem;flex-wrap:wrap}.control-group{display:flex;flex-direction:column;gap:.25rem}.control-group label{font-size:.75rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.control-group select{padding:.5rem .75rem;border:1px solid #334155;border-radius:.375rem;background:#1e293b;color:#f8fafc;font-size:.875rem;min-width:200px}.control-group select:focus{outline:none;border-color:#3b82f6}.upload-group{margin-left:auto;flex-direction:row;align-items:center;gap:.75rem}.upload-group input[type=file]{padding:.375rem .75rem;border:1px dashed #334155;border-radius:.375rem;background:#1e293b;color:#94a3b8;font-size:.875rem;cursor:pointer}.upload-group input[type=file]:hover{border-color:#3b82f6}.upload-progress{display:flex;align-items:center;gap:.5rem;min-width:120px}.upload-progress .progress-bar{height:6px;background:#3b82f6;border-radius:3px;transition:width .2s}.upload-progress span{font-size:.75rem;color:#94a3b8}.file-manager-stats{display:flex;gap:1.5rem;padding:1rem;background:#1e293b;border-radius:.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:.125rem}.stat-value{font-size:1.25rem;font-weight:600;color:#f8fafc}.stat-label{font-size:.75rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.file-manager-list{background:#1e293b;border-radius:.5rem;overflow:hidden}.loading-message,.empty-message{padding:2rem;text-align:center;color:#94a3b8}.file-table{width:100%;border-collapse:collapse}.file-table th{padding:.75rem 1rem;text-align:left;font-size:.75rem;font-weight:500;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;background:#0f172a;border-bottom:1px solid #334155}.file-table td{padding:.75rem 1rem;font-size:.875rem;color:#e2e8f0;border-bottom:1px solid #334155}.file-table tr:hover td{background:#3b82f60d}.file-table tr.file-missing td{color:#64748b;text-decoration:line-through}.filename-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{display:inline-block;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.status-badge.parsed{background:#22c55e33;color:#22c55e}.status-badge.pending{background:#eab30833;color:#eab308}.status-badge.missing{background:#ef444433;color:#ef4444}.actions-cell{display:flex;gap:.5rem}.action-btn{padding:.25rem .5rem;border:none;border-radius:.25rem;background:transparent;cursor:pointer;font-size:.875rem;transition:background .15s}.action-btn:hover{background:#ffffff1a}.action-btn.download{color:#3b82f6}.action-btn.extract{color:#eab308}.action-btn.delete{color:#ef4444}.action-btn.delete:hover{background:#ef444433}@media(max-width:768px){.file-manager-controls{flex-direction:column;align-items:stretch}.upload-group{margin-left:0;flex-direction:column;align-items:stretch}.control-group select{min-width:auto;width:100%}.file-table{display:block;overflow-x:auto}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:20px;background-color:var(--bg-primary)}.login-card{width:100%;max-width:400px;background-color:var(--bg-secondary);border-radius:16px;border:1px solid var(--border-color);padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-header h1{font-size:32px;font-weight:700;font-style:italic;margin:0 0 8px;letter-spacing:-.02em}.login-header h1 .brand-fleet{color:var(--accent)}.login-header h1 .brand-link{color:var(--text-muted)}.login-header p{font-size:14px;color:var(--text-muted);margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{padding:12px 16px;background-color:#ef444426;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:var(--danger);font-size:14px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:var(--text-secondary)}.form-group input{padding:12px 16px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;font-size:14px;color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.form-group input::placeholder{color:var(--text-muted)}.form-group input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #00b4d826}.login-button{padding:14px 20px;background-color:var(--accent);border:none;border-radius:8px;font-size:14px;font-weight:600;color:#fff;cursor:pointer;transition:background-color .2s,transform .1s;margin-top:8px}.login-button:hover:not(:disabled){background-color:var(--accent-hover)}.login-button:active:not(:disabled){transform:scale(.98)}.login-button:disabled{opacity:.6;cursor:not-allowed}.mode-selector{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.mode-label{font-size:14px;font-weight:500;color:var(--text-secondary)}.mode-buttons{display:flex;gap:8px}.mode-btn{flex:1;padding:10px 12px;font-size:13px;font-weight:600;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.mode-btn:hover:not(:disabled){background-color:var(--bg-hover);border-color:var(--text-muted)}.mode-btn.active{background-color:var(--accent);border-color:var(--accent);color:#fff}.mode-btn:disabled{opacity:.5;cursor:not-allowed}.login-footer{display:flex;flex-direction:column;align-items:center;margin-top:32px;padding-top:24px;border-top:1px solid var(--border-color)}.login-logo{width:80px;height:auto;margin-bottom:12px}.copyright{font-size:12px;color:var(--text-muted);margin:0}.observer-portal{display:flex;flex-direction:column;height:100vh;background-color:var(--bg-primary)}.observer-header{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.observer-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.observer-logo{height:40px;width:auto}.observer-title{display:flex;flex-direction:column}.observer-title h1{font-size:20px;font-weight:700;font-style:italic;letter-spacing:-.02em;margin:0;line-height:1.2}.observer-title h1 .brand-fleet{color:var(--accent)}.observer-title h1 .brand-link{color:var(--text-muted)}.observer-subtitle{font-size:12px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.observer-logout{padding:8px 16px;background-color:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s ease}.observer-logout:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.observer-content{flex:1;display:flex;overflow:hidden;margin-top:12px}.observer-footer{padding:8px 24px;background-color:var(--bg-secondary);border-top:1px solid var(--border-color);text-align:center}.observer-footer p{margin:0;font-size:12px;color:var(--text-muted)}.nav-current-mode{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;margin:0 8px 6px;background-color:var(--bg-tertiary);border-radius:6px;border:1px solid var(--border-color)}.nav-mode-label{font-size:11px;color:var(--text-muted)}.nav-mode-value{font-size:12px;font-weight:600;color:var(--accent);font-family:SF Mono,Fira Code,monospace}.observer-snapshot-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:6px;padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;color:var(--text-muted);font-size:.75rem;cursor:pointer;transition:all .15s}.observer-snapshot-btn:hover{color:var(--accent);border-color:var(--accent)}.observer-snapshot-btn:disabled{opacity:.5;cursor:not-allowed}.project-tracker{display:flex;flex-direction:column;height:100vh;background-color:var(--bg-primary)}.project-header{display:flex;justify-content:space-between;align-items:center;padding:12px 24px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.project-brand{display:flex;align-items:center;gap:12px;text-decoration:none}.project-logo{height:40px;width:auto}.project-title{display:flex;flex-direction:column}.project-title h1{font-size:20px;font-weight:700;font-style:italic;letter-spacing:-.02em;margin:0;line-height:1.2}.project-title h1 .brand-fleet{color:var(--accent)}.project-title h1 .brand-link{color:var(--text-muted)}.project-subtitle{font-size:12px;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.project-section{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);padding:12px}.project-select{width:100%;padding:8px 10px;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-size:13px;cursor:pointer}.project-select:focus{outline:none;border-color:var(--accent)}.project-logout{padding:8px 16px;background-color:transparent;border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);font-size:13px;cursor:pointer;transition:all .2s ease}.project-logout:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.project-content{flex:1;display:flex;overflow:hidden;margin-top:12px;gap:12px;padding:0 12px}.project-sidebar{width:200px;display:flex;flex-direction:column;gap:12px}.layers-section,.import-section{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);padding:12px}.tracks-section{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);padding:12px;flex:1;overflow:hidden;display:flex;flex-direction:column}.sidebar-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.sidebar-section .mission-card-title{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:#ea580c;font-weight:600;text-transform:uppercase;margin-bottom:8px;letter-spacing:.05em}.sidebar-section .mission-card-toggle{background:transparent;border:1px solid #334155;color:#94a3b8;font-size:.7rem;padding:2px 8px;border-radius:4px;cursor:pointer;transition:all .2s}.sidebar-section .mission-card-toggle:hover{border-color:#ea580c;color:#e2e8f0}.sidebar-section .mission-card-body.collapsed,.sidebar-section .layer-options.collapsed{display:none}.pt-import-row{display:flex;gap:6px;margin-top:8px}.layer-options{display:flex;flex-direction:column;gap:10px}.layer-sub-checkbox{margin-left:20px;font-size:.8rem;opacity:.85}.layer-divider{border:none;border-top:1px solid #334155;margin:4px 0}.layer-checkbox{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 10px;border-radius:6px;transition:background-color .2s ease}.layer-checkbox:hover{background-color:var(--bg-tertiary)}.layer-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer}.checkbox-label{font-size:14px;color:var(--text-secondary)}.layer-checkbox:hover .checkbox-label{color:var(--text-primary)}.project-map-container{flex:1;border-radius:12px;overflow:hidden;border:1px solid var(--border-color);position:relative}.map-overlay{position:absolute;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;pointer-events:none}.map-overlay-content{display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 40px;background-color:#1e222ae6;border-radius:12px;border:1px solid var(--border-color)}.map-overlay-icon{font-size:32px}.map-overlay-text{font-size:18px;font-weight:600;color:var(--text-primary)}.map-overlay.loading{background-color:#0000004d}.loading-spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.project-footer{padding:8px 24px;background-color:var(--bg-secondary);border-top:1px solid var(--border-color);text-align:center}.project-footer p{margin:0;font-size:12px;color:var(--text-muted)}.import-controls{display:flex;flex-direction:column;gap:12px}.import-row{display:flex;flex-direction:column;gap:6px}.import-label{font-size:12px;color:var(--text-muted)}.import-select{padding:8px 10px;border-radius:6px;border:1px solid var(--border-color);background-color:var(--bg-tertiary);color:var(--text-primary);font-size:13px;cursor:pointer}.import-select:focus{outline:none;border-color:var(--accent)}.import-file-input{display:none}.import-file-label{display:block;padding:10px 16px;background-color:var(--accent);color:#fff;text-align:center;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.import-file-label:hover{background-color:var(--accent-hover, #2563eb)}.import-file-label.disabled{opacity:.5;cursor:not-allowed}.import-progress{display:flex;flex-direction:column;gap:6px}.import-progress-bar{height:8px;background-color:var(--bg-tertiary);border-radius:4px;overflow:hidden}.import-progress-fill{height:100%;background-color:var(--accent);border-radius:4px;transition:width .3s ease}.import-progress-text{font-size:12px;color:var(--text-muted);text-align:center}.import-actions{display:flex;gap:10px;margin-top:8px}.import-cancel-btn{flex:1;padding:10px 16px;background-color:var(--bg-tertiary);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.import-cancel-btn:hover:not(:disabled){background-color:var(--bg-hover)}.import-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.import-submit-btn{flex:1;padding:10px 16px;background-color:var(--accent);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.import-submit-btn:hover:not(:disabled){background-color:var(--accent-hover, #2563eb)}.import-submit-btn:disabled{opacity:.5;cursor:not-allowed}.import-select:disabled{opacity:.5;cursor:not-allowed}.tracks-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.tracks-header h3{margin:0;font-size:14px;font-weight:600;color:var(--text-primary)}.clear-tracks-btn{padding:4px 8px;font-size:11px;background-color:transparent;border:1px solid var(--border-color);border-radius:4px;color:var(--text-muted);cursor:pointer;transition:all .2s ease}.clear-tracks-btn:hover{background-color:#ef4444;border-color:#ef4444;color:#fff}.tracks-list{display:flex;flex-direction:column;gap:6px;max-height:200px;overflow-y:auto}.track-item{display:flex;align-items:center;gap:8px;padding:6px 8px;background-color:var(--bg-tertiary);border-radius:4px;font-size:12px;cursor:pointer;transition:all .15s ease;border:1px solid transparent}.track-item:hover{background-color:var(--bg-primary);border-color:var(--border-color)}.track-item.selected{background-color:#9ca3af4d;border-color:#6b7280;border-left:3px solid #9ca3af}.track-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.track-name{flex:1;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.track-points{font-size:10px;color:var(--text-muted);flex-shrink:0}.layer-count{margin-left:auto;font-size:11px;color:var(--text-muted);background-color:var(--bg-tertiary);padding:2px 6px;border-radius:10px}.import-btn{width:100%;padding:10px;background-color:var(--accent);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background-color .2s ease}.import-btn:hover:not(:disabled){background-color:var(--accent-hover, #2563eb)}.import-btn:disabled{background-color:var(--bg-tertiary);color:var(--text-muted);cursor:not-allowed;opacity:.6}.clear-all-btn{width:100%;padding:8px;margin-top:8px;background-color:transparent;color:var(--text-muted);border:1px solid var(--border-color);border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s ease}.clear-all-btn:hover{background-color:#ef4444;border-color:#ef4444;color:#fff}.right-panel-clear{margin-top:auto;flex-shrink:0}.import-dialog-overlay{position:fixed;inset:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.import-dialog{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);width:360px;max-width:90vw;box-shadow:0 20px 40px #0000004d}.import-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border-color)}.import-dialog-header h2{margin:0;font-size:18px;font-weight:600;color:var(--text-primary)}.import-dialog-close{background:none;border:none;font-size:24px;color:var(--text-muted);cursor:pointer;padding:0;line-height:1}.import-dialog-close:hover{color:var(--text-primary)}.import-dialog-body{padding:20px;display:flex;flex-direction:column;gap:16px}.options-section{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);padding:12px}.options-section h3{font-size:14px;font-weight:600;color:var(--text-primary);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border-color)}.options-note{margin:8px 0 0;font-size:10px;color:var(--text-muted);text-align:center;font-style:italic}.toggle-option{display:flex;align-items:center;justify-content:center;gap:10px}.toggle-label{font-size:13px;color:var(--text-muted);transition:color .2s ease}.toggle-label.active{color:var(--text-primary);font-weight:500}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px}.toggle-switch input{opacity:0;width:100%;height:100%;position:absolute;top:0;left:0;cursor:pointer;z-index:1;margin:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:24px;transition:.2s ease}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:2px;bottom:2px;background-color:var(--text-muted);border-radius:50%;transition:.2s ease}.toggle-switch input:checked+.toggle-slider{background-color:var(--accent);border-color:var(--accent)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px);background-color:#fff}.map-controls{position:absolute;top:10px;right:10px;z-index:1000;display:flex;flex-direction:column;gap:6px}.map-control-btn{padding:8px 14px;background-color:#242830b3;border:1px solid rgba(58,64,75,.7);border-radius:6px;color:var(--text-secondary);font-size:12px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;box-shadow:0 2px 4px #0000004d;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.map-control-btn:hover{background-color:#2d323bd9;color:var(--text-primary)}.map-control-btn.active{background-color:#ea580cb3;border-color:#ea580cb3;color:#fff}.project-right-panel{width:160px;display:flex;flex-direction:column;gap:8px}.routes-stats-card{display:flex;gap:8px;padding:8px;background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color)}.stats-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}.stats-label{font-size:10px;color:var(--text-muted);text-transform:uppercase}.stats-value{font-size:13px;font-weight:600;color:var(--text-primary);white-space:nowrap}.right-panel-section{background-color:var(--bg-secondary);border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.right-panel-toggle{width:100%;display:flex;align-items:center;gap:6px;padding:8px 10px;background:none;border:none;cursor:pointer;color:var(--text-primary);font-size:12px;text-align:left;transition:background-color .2s ease}.right-panel-toggle:hover{background-color:var(--bg-tertiary)}.toggle-icon{font-size:8px;color:var(--text-muted);width:10px}.toggle-title{flex:1;font-weight:500}.toggle-count{font-size:10px;color:var(--text-muted);background-color:var(--bg-tertiary);padding:2px 6px;border-radius:8px}.right-panel-list{display:flex;flex-direction:column;gap:4px;padding:0 6px 8px;max-height:400px;overflow-y:auto}.right-panel-list .track-item{padding:4px 6px;font-size:11px}.right-panel-list .track-color{width:10px;height:10px}.right-panel-list .track-points{font-size:9px}@media(max-width:768px){.project-content{flex-direction:column;padding:0 8px;gap:8px}.project-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;gap:8px;overflow-x:auto;padding-bottom:4px}.sidebar-section{flex:0 0 auto;min-width:140px;max-width:180px}.import-section{min-width:120px}.layers-section,.options-section{min-width:140px}.project-map-container{flex:1;min-height:300px}.project-right-panel{width:100%;flex-direction:row;gap:8px}.right-panel-section{flex:1}.right-panel-list{max-height:100px}.project-header{padding:8px 12px}.project-logo{height:32px}.project-title h1{font-size:16px}.project-subtitle{font-size:10px}.import-dialog{width:95vw}}.markup-section{border-top:1px solid rgba(255,255,255,.1);padding-top:12px}.markup-section .section-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:4px 0}.markup-section .section-header h3{margin:0;font-size:13px}.markup-section .toggle-icon{font-size:10px;color:#fff9}.markup-tools-content{margin-top:10px}.markup-tool-buttons{display:flex;gap:6px;margin-bottom:10px}.markup-tool-btn{flex:1;padding:8px;font-size:16px;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:#fff;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center}.markup-tool-btn:hover{background:#fff3}.markup-tool-btn.active{background:#3b82f6;border-color:#60a5fa}.markup-color-row{display:flex;align-items:center;gap:10px;margin-bottom:10px}.markup-color-row label{font-size:12px;color:#fffc}.markup-color-picker{width:40px;height:28px;padding:0;border:none;border-radius:4px;cursor:pointer;background:transparent}.markup-color-picker::-webkit-color-swatch-wrapper{padding:2px}.markup-color-picker::-webkit-color-swatch{border-radius:4px;border:1px solid rgba(255,255,255,.3)}.markup-hint{font-size:11px;color:#fff9;margin:0 0 10px;font-style:italic}.markup-list{margin-top:12px;border-top:1px solid rgba(255,255,255,.1);padding-top:10px}.markup-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.markup-list-header span{font-size:11px;color:#ffffffb3}.markup-clear-btn{font-size:10px;padding:3px 8px;background:#ef44444d;border:1px solid rgba(239,68,68,.5);border-radius:4px;color:#fca5a5;cursor:pointer;transition:all .2s}.markup-clear-btn:hover{background:#ef444480}.markup-items{max-height:120px;overflow-y:auto}.markup-item{display:flex;align-items:center;gap:6px;padding:4px 6px;background:#ffffff0d;border-radius:4px;margin-bottom:4px}.markup-item:hover{background:#ffffff1a}.markup-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.markup-type{font-size:12px;flex-shrink:0;width:18px;text-align:center}.markup-label{flex:1;font-size:11px;color:#fffc;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.markup-label:hover{color:#fff}.markup-name-input{flex:1;font-size:11px;color:#fff;background:#0000004d;border:1px solid var(--accent);border-radius:3px;padding:2px 4px;outline:none;min-width:0}.markup-delete-btn{background:none;border:none;color:#ffffff80;cursor:pointer;font-size:14px;padding:0 4px;line-height:1}.markup-delete-btn:hover{color:#f87171}.measure-label,.measure-label-preview,.text-annotation{background:transparent!important;border:none!important}.measure-label>div,.measure-label-preview>div,.text-annotation>div{transform:translate(-50%,-50%)}.track-popup{min-width:150px}.track-popup-name{font-weight:600;font-size:14px;color:#1f2937;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #e5e7eb}.track-popup-info{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:4px}.track-popup-label{color:#6b7280}.track-popup-value{font-weight:500;color:#111827}.track-popup-section{font-size:11px;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin:8px 0 6px;padding-top:6px;border-top:1px solid #e5e7eb}.track-popup-coords{margin-top:6px;padding-top:6px;border-top:1px solid #e5e7eb}.track-popup-coords .track-popup-value{font-size:11px;font-family:monospace}.track-item{display:flex;align-items:center;gap:6px}.track-item .track-name{cursor:pointer;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.track-item .track-name:hover{text-decoration:underline}.track-dropdown{position:relative}.track-dropdown-btn{background:none;border:none;cursor:pointer;padding:2px 6px;font-size:14px;color:#9ca3af;border-radius:4px;line-height:1}.track-dropdown-btn:hover{background:#ffffff1a;color:#e5e7eb}.track-dropdown-menu{position:absolute;top:100%;left:0;background:#1f2937;border:1px solid #374151;border-radius:6px;padding:4px 0;min-width:130px;z-index:100;box-shadow:0 4px 12px #0000004d}.track-dropdown-item{display:flex;align-items:center;gap:8px;padding:6px 12px;cursor:pointer;font-size:13px;color:#e5e7eb}.track-dropdown-item:hover{background:#ffffff1a}.track-dropdown-item input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:#3b82f6}.track-download-btn{background:none;border:none;cursor:pointer;padding:2px 4px;font-size:12px;color:#9ca3af;border-radius:4px;line-height:1;flex-shrink:0}.track-download-btn:hover{background:#3b82f633;color:#60a5fa}.sidebar-section-toggle{width:100%;display:flex;align-items:center;gap:8px;padding:0 0 8px;margin-bottom:12px;background:none;border:none;border-bottom:1px solid var(--border-color);cursor:pointer;color:var(--text-primary);font-size:14px;font-weight:600;text-align:left}.sidebar-section-toggle:hover{color:var(--accent)}.sidebar-section-toggle .toggle-icon{font-size:10px;color:var(--text-muted)}.sidebar-section-toggle .toggle-title{flex:1}.sidebar-section.markup-section{background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color);padding:12px}.sidebar-section.markup-section .markup-tools-content{margin-top:0}.ais-vessel-marker{background:none!important;border:none!important}.ais-vessel{display:flex;align-items:center;justify-content:center;transition:transform .3s ease}.ais-vessel svg{filter:drop-shadow(0 1px 3px rgba(0,0,0,.5))}.ais-popup{font-size:12px;min-width:150px}.ais-popup-name{font-weight:600;font-size:13px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #e5e7eb;color:#1f2937}.ais-popup-info{display:flex;justify-content:space-between;margin:4px 0}.ais-popup-label{color:#6b7280}.ais-popup-value{font-weight:500;color:#1f2937}.ais-vessels-section{margin-bottom:12px}.ais-vessels-list{max-height:200px;overflow-y:auto}.ais-vessel-item{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border-color)}.ais-vessel-item:last-child{border-bottom:none}.ais-vessel-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.ais-vessel-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.ais-vessel-name{font-size:12px;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.ais-vessel-age{font-size:11px;color:var(--text-muted);flex-shrink:0}.ais-vessel-delete{background:none;border:none;color:#ef4444;font-size:16px;cursor:pointer;padding:2px 6px;margin-left:8px;border-radius:4px;opacity:.6;transition:all .2s ease}.ais-vessel-delete:hover{opacity:1;background:#ef44441a}.ais-vessel-item.status-red{opacity:.7}.ais-vessel-item.status-yellow .ais-vessel-name{color:var(--text-secondary)}.ais-vessel-item.stationary{opacity:.6}.ais-vessel-stationary{font-size:10px;color:#9ca3af;font-style:italic}.ais-vessel-item.left-area{opacity:.6}.ais-vessel-left{font-size:10px;color:#ef4444;font-style:italic}.survey-planner{display:flex;flex-direction:column;height:100%;padding:1rem;gap:1rem;background:#1a1a2e;color:#e0e0e0}.survey-header{display:flex;align-items:center;gap:1rem}.survey-header h1{margin:0;font-size:1.5rem;flex:1}.btn-back{background:transparent;border:1px solid #4a4a6a;color:#9ca3af;padding:.5rem 1rem;cursor:pointer;border-radius:4px}.btn-back:hover{background:#2a2a4a}.btn-primary{background:#3b82f6;border:none;color:#fff;padding:.5rem 1rem;cursor:pointer;border-radius:4px;font-weight:500}.btn-primary:hover:not(:disabled){background:#2563eb}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-delete{background:#dc2626;border:none;color:#fff;padding:.25rem .5rem;cursor:pointer;border-radius:4px;font-size:.875rem}.btn-delete:hover{background:#b91c1c}.step-indicator{display:flex;justify-content:center;align-items:center;gap:0;padding:1rem 0}.step-item-wrapper{display:flex;align-items:center}.step-item{display:flex;flex-direction:column;align-items:center;cursor:pointer;padding:.5rem;border-radius:8px;transition:background .2s}.step-item:hover{background:#3b82f61a}.step-number{width:32px;height:32px;border-radius:50%;background:#3a3a5a;display:flex;align-items:center;justify-content:center;font-weight:700;margin-bottom:.25rem}.step-item.active .step-number{background:#3b82f6;color:#fff}.step-item.completed .step-number{background:#22c55e;color:#fff}.step-name{font-size:.75rem;color:#9ca3af}.step-item.active .step-name{color:#3b82f6;font-weight:500}.step-connector{width:40px;height:2px;background:#3a3a5a;margin:0 .5rem}.step-content{flex:1;min-height:0}.step-panel{display:flex;height:100%;gap:1rem}.step-sidebar{width:300px;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;padding-right:.5rem}.step-sidebar h2{margin:0;font-size:1.25rem;padding-bottom:.5rem;border-bottom:1px solid #3a3a5a}.step-map{flex:1;border-radius:8px;overflow:hidden;border:1px solid #3a3a5a}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;font-size:.875rem}.form-group input[type=text],.form-group input[type=number],.form-group select{background:#2a2a4a;border:1px solid #4a4a6a;color:#e0e0e0;padding:.5rem;border-radius:4px}.form-group input[type=range]{width:100%}.form-row{display:flex;gap:1rem}.form-row .form-group{flex:1}.radio-group{display:flex;flex-direction:column;gap:.5rem}.radio-group label{display:flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer}.hint{font-size:.75rem;color:#9ca3af;margin:0}.button-group{display:flex;gap:.5rem;flex-wrap:wrap}.button-group.vertical{flex-direction:column}.button-group button{padding:.5rem 1rem;background:#3a3a5a;border:none;color:#e0e0e0;border-radius:4px;cursor:pointer;font-size:.875rem}.button-group button:hover:not(:disabled){background:#4a4a7a}.button-group button:disabled{opacity:.5;cursor:not-allowed}.save-section{padding-top:1rem;border-top:1px solid #3a3a5a}.error-message{background:#7f1d1d;color:#fca5a5;padding:.75rem;border-radius:4px;font-size:.875rem}.warning-message{background:#78350f;color:#fcd34d;padding:.75rem;border-radius:4px;font-size:.875rem}.success-message{background:#14532d;color:#86efac;padding:.75rem;border-radius:4px;font-size:.875rem}.info-box{background:#2a2a4a;padding:1rem;border-radius:4px}.info-box h3{margin:0 0 .5rem;font-size:.875rem;color:#9ca3af}.info-box p{margin:.25rem 0;font-size:.875rem}.instructions{background:#2a2a4a;padding:1rem;border-radius:4px;margin-top:auto}.instructions h3{margin:0 0 .5rem;font-size:.875rem;color:#9ca3af}.instructions ul{margin:0;padding-left:1.25rem;font-size:.75rem;color:#9ca3af}.instructions li{margin-bottom:.25rem}.step-navigation{display:flex;justify-content:space-between;padding-top:1rem;border-top:1px solid #3a3a5a}.step-navigation button{padding:.75rem 1.5rem;background:#3a3a5a;border:none;color:#e0e0e0;border-radius:4px;cursor:pointer}.step-navigation button:hover:not(:disabled){background:#4a4a7a}.step-navigation button:disabled{opacity:.5;cursor:not-allowed}.projects-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.project-card{display:flex;align-items:center;justify-content:space-between;background:#2a2a4a;padding:1rem;border-radius:8px;cursor:pointer;transition:background .2s}.project-card:hover{background:#3a3a5a}.project-info h3{margin:0;font-size:1rem}.project-step{font-size:.75rem;color:#9ca3af}.empty-state,.loading{text-align:center;padding:2rem;color:#9ca3af}.modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-dialog{background:#2a2a4a;padding:1.5rem;border-radius:8px;min-width:300px}.modal-dialog h2{margin:0 0 1rem}.modal-dialog input{width:100%;padding:.75rem;background:#1a1a2e;border:1px solid #4a4a6a;color:#e0e0e0;border-radius:4px;margin-bottom:1rem}.modal-buttons{display:flex;justify-content:flex-end;gap:.5rem}.modal-buttons button{padding:.5rem 1rem;border-radius:4px;cursor:pointer}.modal-buttons button:first-child{background:transparent;border:1px solid #4a4a6a;color:#9ca3af}.exclusion-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem;background:#3a3a5a;border-radius:4px;margin-bottom:.5rem}.exclusion-item button{padding:.25rem .5rem;background:#dc2626;border:none;color:#fff;border-radius:4px;font-size:.75rem;cursor:pointer}.summary-table{width:100%;font-size:.875rem}.summary-table td{padding:.25rem 0}.summary-table td:first-child{color:#9ca3af}.vertex-marker{background:transparent}.vertex-dot{width:14px;height:14px;background:#fff;border:2px solid #3b82f6;border-radius:50%;cursor:move}.midpoint-marker{background:transparent}.midpoint-plus{width:20px;height:20px;background:#3b82f6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;cursor:pointer;opacity:.7}.midpoint-plus:hover{opacity:1}.waterbody-list{max-height:200px;overflow-y:auto;margin-top:.5rem;border:1px solid #3a3a5a;border-radius:4px;background:#1a1a2e}.waterbody-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;cursor:pointer;border-bottom:1px solid #2a2a4a;transition:background .15s}.waterbody-item:last-child{border-bottom:none}.waterbody-item:hover{background:#2a2a4a}.waterbody-item.selected{background:#3b82f6;color:#fff}.waterbody-item .wb-name{font-size:.875rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:.5rem}.waterbody-item .wb-area{font-size:.75rem;color:#9ca3af;white-space:nowrap}.waterbody-item.selected .wb-area{color:#fffc}.app{display:flex;flex-direction:column;min-height:100vh}.app-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-logo{height:42px;width:auto}.app-header h1{font-size:20px;font-weight:700;font-style:italic;letter-spacing:-.02em}.app-header h1 .brand-fleet{color:var(--accent)}.app-header h1 .brand-link{color:var(--text-muted)}.header-right{display:flex;align-items:center;gap:16px}.user-menu{display:flex;align-items:center;gap:12px}.username{font-size:13px;color:var(--text-secondary)}.logout-button{padding:8px 14px;background-color:transparent;border:1px solid var(--border-color);border-radius:6px;font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .2s}.logout-button:hover{background-color:var(--bg-tertiary);color:var(--text-primary);border-color:var(--text-muted)}.disconnected-overlay{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0006}.disconnected-box{display:flex;align-items:center;gap:12px;padding:20px 36px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;box-shadow:0 8px 32px #00000080;font-size:18px;font-weight:600;color:var(--text-primary)}.disconnected-dot{width:12px;height:12px;border-radius:50%;background-color:var(--danger);box-shadow:0 0 10px var(--danger);animation:pulse-dot 1.5s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.4}}.tab-nav{display:flex;gap:4px;background-color:var(--bg-secondary);padding:0 20px;border-bottom:1px solid var(--border-color)}.tab-button{position:relative;padding:14px 20px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:700;color:var(--text-muted);transition:all .2s ease}.tab-button:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:2px;background-color:var(--accent);transition:width .2s ease;border-radius:2px 2px 0 0}.tab-button:hover{color:var(--text-secondary)}.tab-button.active{color:var(--accent);font-style:italic}.tab-button.active:after{width:100%}.tab-dropdown{position:relative}.tab-dropdown .tab-button{display:flex;align-items:center;gap:6px}.tab-dropdown .dropdown-arrow{font-size:10px;transition:transform .2s ease}.tab-dropdown:hover .dropdown-arrow{transform:rotate(180deg)}.tab-dropdown-menu{position:absolute;top:100%;left:0;min-width:160px;background-color:var(--bg-secondary);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 4px 12px #0000004d;z-index:1000;overflow:hidden}.tab-dropdown-item{display:block;width:100%;padding:12px 16px;border:none;background:none;text-align:left;font-size:14px;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all .15s ease}.tab-dropdown-item:hover{background-color:var(--bg-tertiary);color:var(--text-primary)}.tab-dropdown-item.active{color:var(--accent);background-color:var(--bg-tertiary)}.tab-content{flex:1;padding:24px}.placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;background-color:var(--bg-secondary);border-radius:12px;border:1px solid var(--border-color)}.placeholder p{margin:4px 0;color:var(--text-secondary)}.placeholder .hint{font-size:14px;color:var(--text-muted)}.app-footer{padding:8px 24px;background-color:var(--bg-secondary);border-top:1px solid var(--border-color);text-align:center;flex-shrink:0}.app-footer p{margin:0;font-size:12px;color:var(--text-muted)}@media(max-width:768px){.app-footer{position:fixed;bottom:0;left:0;right:0;z-index:100;padding:10px 16px}.tab-content{padding-bottom:60px}}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:var(--bg-primary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--bg-tertiary);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
