#charts{min-height:calc(100vh - 72px);padding-bottom:52px;background:#071a27;color:#f3f8fa}.chart-titlebar{padding:30px 4.5% 24px;display:flex;align-items:flex-end;justify-content:space-between;gap:24px;background:radial-gradient(circle at 78% -20%,#167b8a55,transparent 38%),linear-gradient(118deg,#061724,#0b3244);border-bottom:1px solid #315263}.chart-titlebar h1{margin:4px 0 7px;font-size:clamp(2rem,3.1vw,3rem);letter-spacing:-.04em}.chart-titlebar p:not(.eyebrow){margin:0;max-width:780px;color:#b8d0da;line-height:1.55}.chart-title-meta{display:grid;justify-items:end;gap:8px;flex:none}.chart-title-meta span{display:flex;align-items:center;gap:8px;font-size:.8rem;color:#d8e9ed}.chart-title-meta i{width:9px;height:9px;border-radius:50%;background:#42d4af;box-shadow:0 0 0 5px #42d4af22}.chart-title-meta b{padding:6px 9px;border:1px solid #3aa99466;border-radius:5px;color:#68e2c1;font:700 .7rem Roboto Mono}
.chart-workspace{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;padding:18px 4.5%}.chart-sidebar{display:grid;align-content:start;gap:12px}.chart-card{padding:18px;background:#0c2634;border:1px solid #284653;border-radius:12px;box-shadow:0 10px 24px #0002}.chart-card>small,.waypoint-card>div small,.procurement-head small{font:700 .7rem Roboto Mono;letter-spacing:.09em;color:#62d4bc}.chart-card h2{margin:5px 0 15px;font-size:1.15rem}.route-builder label{display:block;margin:12px 0;color:#a9c0c9;font-size:.82rem;font-weight:700}.route-builder select,.speed-input{width:100%;margin-top:6px;padding:10px 11px;border:1px solid #3b5865;border-radius:8px;background:#071d29;color:#fff;font:inherit}.speed-input{display:flex;align-items:center;padding:0}.speed-input input{width:100%;padding:10px 11px;border:0;background:transparent;color:#fff;font:inherit;outline:0}.speed-input span{padding-right:11px;color:#84a6b2;font:700 .75rem Roboto Mono}.chart-card .full{width:100%;margin-top:3px}.chart-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.chart-metrics article{padding:12px;border-radius:8px;background:#061b27;border:1px solid #254552}.chart-metrics small,.chart-metrics b,.chart-metrics span{display:block}.chart-metrics small{font:700 .63rem Roboto Mono;color:#7699a5}.chart-metrics b{margin:4px 0;font-size:1.15rem;color:#fff}.chart-metrics span{font-size:.68rem;color:#6f909b}.waypoint-card>div,.procurement-head{display:flex;justify-content:space-between;align-items:center}.waypoint-card>div span,.procurement-head span{font:700 .65rem Roboto Mono;color:#8eaab4}.waypoint-card ol{padding:0;margin:12px 0 0;list-style:none}.waypoint-card li{display:grid;grid-template-columns:auto 1fr;gap:10px;padding:9px 0;border-top:1px solid #233f4b}.waypoint-card li b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#0e766f;color:#fff;font-size:.68rem}.waypoint-card li span{display:grid;font-size:.78rem;font-weight:800}.waypoint-card li small{font:500 .64rem Roboto Mono;color:#7699a5}.procurement-card h2{margin-bottom:4px}.procurement-route{margin:0 0 12px;color:#7fa2ad;font:700 .68rem Roboto Mono}.procurement-list{display:grid;gap:7px}.procurement-empty{display:grid;gap:4px;padding:12px;border:1px dashed #3b5865;border-radius:8px;color:#9cb5be}.procurement-empty b{color:#d9e8ec;font-size:.78rem}.procurement-empty span{font-size:.7rem;line-height:1.45}.procurement-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px;border:1px solid #2d4b57;border-radius:8px;background:#071f2b}.procurement-item>i{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;color:#fff;font:900 .62rem Roboto Mono;font-style:normal}.procurement-item.marina>i{background:#137ad1}.procurement-item.fuel>i{background:#dc7b16}.procurement-item.service>i{background:#8058bd}.procurement-item div{min-width:0;display:grid}.procurement-item b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem}.procurement-item small{color:#7899a4;font-size:.62rem}.procurement-item button{width:26px;height:26px;border:0;border-radius:50%;background:#173744;color:#a9c1c9;cursor:pointer}.procurement-model{display:flex;justify-content:space-between;margin:12px 0 8px;padding-top:9px;border-top:1px solid #294651;color:#89a5af;font-size:.68rem}.procurement-model b{color:#5ae1bf}.procurement-status{display:grid;gap:3px;margin:8px 0;padding:9px;border:1px solid #2f8a76;border-radius:8px;background:#0a3b36}.procurement-status[hidden]{display:none}.procurement-status b{color:#64e5c4;font:800 .64rem Roboto Mono}.procurement-status span{color:#d4eee8;font-size:.7rem;line-height:1.4}.procurement-card button:disabled{opacity:.48;cursor:not-allowed}.chart-links{display:grid;gap:2px}.chart-links>small{margin-bottom:7px}.chart-links button{display:flex;justify-content:space-between;padding:9px 0;border:0;border-top:1px solid #233f4b;background:transparent;color:#d5e4e9;text-align:left}.chart-links button span{color:#54d9bb}
.chart-map-panel{min-width:0;display:grid;grid-template-rows:auto minmax(500px,calc(100vh - 270px)) auto;overflow:hidden;border:1px solid #2a4c5a;border-radius:13px;background:#0a2533;box-shadow:0 15px 34px #0003}.chart-toolbar{min-height:52px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#0c2b3a;border-bottom:1px solid #32505c}.chart-map-actions,.chart-layers{display:flex;align-items:center;gap:6px}.chart-toolbar button{min-width:36px;height:34px;padding:0 11px;border:1px solid #43616d;border-radius:6px;background:#102f3e;color:#fff;font-weight:800}.chart-layers{gap:5px;flex-wrap:wrap;justify-content:flex-end}.chart-toolbar label{display:flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid #294b59;border-radius:6px;background:#092431;color:#c7d9df;font-size:.72rem;white-space:nowrap}.chart-toolbar label:has(input:checked){border-color:#288e7c;background:#0b3a3b;color:#e5fff8}.chart-toolbar input{width:15px;height:15px;accent-color:#12a58b}.save-nautical-route{border-color:#3b6c78!important;color:#a8e5d8!important}.chart-canvas{position:relative;overflow:hidden;min-height:500px;background:#dce6df;cursor:grab;touch-action:none;outline:0}.chart-canvas:focus-visible{box-shadow:inset 0 0 0 3px #45d6b2}.chart-canvas.dragging{cursor:grabbing}.marine-tiles,.marine-overlay,.marine-service-markers{position:absolute;inset:0}.marine-tiles img{position:absolute;width:256px;height:256px;user-select:none;-webkit-user-drag:none}.marine-tiles img.seamark-tile{z-index:2}.chart-canvas.hide-seamarks .seamark-tile{display:none}.marine-overlay{z-index:3;width:100%;height:100%;pointer-events:none}.marine-overlay .route-shadow{fill:none;stroke:#04151c99;stroke-width:8;stroke-linecap:round;stroke-linejoin:round}.marine-overlay .route-path{fill:none;stroke:#12d6b0;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:10 7}.marine-overlay .route-point{fill:#fff;stroke:#08796e;stroke-width:4}.marine-overlay .route-point.start,.marine-overlay .route-point.end{fill:#ffbe4c;stroke:#fff}.marine-overlay .waypoint-label{paint-order:stroke;stroke:#fff;stroke-width:4px;stroke-linejoin:round;fill:#0a2533;font:800 12px Manrope}.marine-service-markers{z-index:4;pointer-events:none}.marine-service-marker{position:absolute;display:flex;align-items:center;gap:6px;transform:translate(-18px,-18px);padding:3px 7px 3px 3px;border:1px solid #fff;border-radius:22px;background:#092a38e8;color:#fff;box-shadow:0 4px 12px #00182166;font:800 .68rem Manrope;pointer-events:auto;cursor:pointer;white-space:nowrap}.marine-service-marker i{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:#fff;font:900 .68rem Roboto Mono;font-style:normal}.marine-service-marker.marina i,.chart-legend.marina{background:#137ad1}.marine-service-marker.fuel i,.chart-legend.fuel{background:#dc7b16}.marine-service-marker.service i,.chart-legend.service{background:#8058bd}.marine-service-marker.selected{border-color:#52e5c4;box-shadow:0 0 0 3px #0b4b45aa,0 5px 15px #00182188}.marine-service-marker.selected:after{content:'✓';position:absolute;left:21px;top:-7px;width:15px;height:15px;display:grid;place-items:center;border-radius:50%;background:#20b996;color:#fff;font-size:.58rem}.marine-service-marker:hover,.marine-service-marker:focus-visible{transform:translate(-18px,-18px) scale(1.06);outline:3px solid #ffffffaa;z-index:2}.marine-point-card{position:absolute;z-index:7;right:14px;top:14px;width:min(320px,calc(100% - 28px));padding:17px;border:1px solid #5a7b86;border-radius:11px;background:#082633f2;color:#f3f8fa;box-shadow:0 16px 35px #00141d99;cursor:default;touch-action:auto}.marine-point-card[hidden]{display:none}.marine-point-card>small{font:800 .64rem Roboto Mono;letter-spacing:.08em;color:#62d4bc}.marine-point-card h3{margin:5px 25px 5px 0;font-size:1rem}.marine-point-card p{margin:0 0 12px;color:#b9ced5;font-size:.76rem;line-height:1.45}.marine-point-commercial{display:flex;justify-content:space-between;padding:9px 0;border-top:1px solid #34515c;color:#b9ced5;font-size:.68rem}.marine-point-commercial b{color:#62d4bc}.marine-point-actions{display:grid;grid-template-columns:1fr;gap:6px;padding-top:4px}.marine-point-actions button{width:100%}.marine-point-close{position:absolute;right:9px;top:8px;width:28px;height:28px;border:0;background:transparent;color:#a8c0c8;font-size:1.35rem;cursor:pointer}.map-loading{position:absolute;z-index:6;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:9px;padding:10px 13px;border-radius:8px;background:#082332e8;color:#fff;font-size:.78rem;box-shadow:0 8px 24px #0004}.map-loading span{width:10px;height:10px;border-radius:50%;background:#4fe0bd;animation:chartPulse 1s infinite}.map-loading[hidden]{display:none}.chart-attribution{position:absolute;z-index:8;right:5px;bottom:5px;padding:3px 6px;background:#ffffffdf;color:#304b56;font-size:.6rem}.chart-attribution a{color:#075f75}.chart-statusbar{padding:10px 13px;display:flex;align-items:center;gap:14px;background:#092532;color:#bcd1d8;font-size:.7rem}.chart-statusbar>div{display:flex;align-items:center;gap:6px;white-space:nowrap}.chart-legend{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;color:#fff;font:900 .56rem Roboto Mono}.chart-legend.route{width:18px;height:4px;border-radius:3px;background:#18d4b0}.chart-statusbar p{margin:0 0 0 auto;text-align:right;color:#98b2bc}.chart-statusbar b{color:#ffcf72}@keyframes chartPulse{50%{opacity:.35;transform:scale(.75)}}
.quote-room{margin:2px 4.5% 0;padding:22px;border:1px solid #2d5160;border-radius:14px;background:linear-gradient(145deg,#0b2837,#071d2a);box-shadow:0 16px 35px #0002;transition:border-color .2s,box-shadow .2s}.quote-room.awarded{border-color:#45c8aa;box-shadow:0 0 0 2px #45c8aa22,0 16px 35px #0002}.quote-room-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:17px;border-bottom:1px solid #294753}.quote-room-head small{font:800 .7rem Roboto Mono;letter-spacing:.1em;color:#62d4bc}.quote-room-head h2{margin:5px 0;font-size:1.35rem}.quote-room-head p{margin:0;max-width:720px;color:#9fb8c1;font-size:.82rem;line-height:1.5}.quote-room-route{display:grid;justify-items:end;gap:7px;flex:none}.quote-room-route span{color:#d8e7eb;font-size:.78rem;font-weight:800}.quote-room-route b{padding:6px 8px;border:1px solid #2fa48b;border-radius:5px;color:#68e2c1;font:800 .67rem Roboto Mono}.quote-room-empty{display:flex;align-items:center;justify-content:center;gap:14px;min-height:145px;color:#95afb8;text-align:left}.quote-room-empty[hidden]{display:none}.quote-room-empty>span{width:48px;height:48px;display:grid;place-items:center;border:1px solid #3f6472;border-radius:50%;background:#0a3140;color:#69d9c0;font:900 .72rem Roboto Mono}.quote-room-empty b{color:#e3eef1;font-size:.9rem}.quote-room-empty p{margin:4px 0 0;font-size:.76rem}.quote-room-content[hidden]{display:none}.quote-room-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.quote-room-metrics article{padding:13px 15px;border:1px solid #2a4b58;border-radius:9px;background:#071e2b}.quote-room-metrics small,.quote-room-metrics b,.quote-room-metrics span{display:block}.quote-room-metrics small{color:#7899a5;font:700 .64rem Roboto Mono}.quote-room-metrics b{margin:3px 0;color:#fff;font-size:1.2rem}.quote-room-metrics span{color:#7899a5;font-size:.68rem}.quote-request-list{display:grid;gap:11px}.quote-request{display:grid;grid-template-columns:230px minmax(0,1fr);gap:14px;padding:14px;border:1px solid #2e4d59;border-radius:11px;background:#0a2230}.quote-request-info{display:flex;align-items:center;gap:10px}.quote-request-info>i{width:35px;height:35px;display:grid;place-items:center;flex:none;border-radius:50%;color:#fff;font:900 .7rem Roboto Mono;font-style:normal}.quote-request.marina .quote-request-info>i{background:#137ad1}.quote-request.fuel .quote-request-info>i{background:#dc7b16}.quote-request.service .quote-request-info>i{background:#8058bd}.quote-request-info div{min-width:0;display:grid}.quote-request-info b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}.quote-request-info small{margin-top:3px;color:#7f9faa;font:700 .61rem Roboto Mono}.quote-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quote-offer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:10px 12px;border:1px solid #355562;border-radius:8px;background:#0d2d3b;color:#dce9ed;text-align:left;cursor:pointer}.quote-offer:hover,.quote-offer:focus-visible{border-color:#68d8bf;outline:2px solid #2eb99a55}.quote-offer.selected{border-color:#50d8b9;background:#0d413d;box-shadow:inset 0 0 0 1px #50d8b944}.quote-room.awarded .quote-offer.selected{box-shadow:inset 0 0 0 1px #50d8b977,0 0 0 2px #50d8b922}.quote-offer small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8daab4;font-size:.66rem}.quote-offer>em{grid-row:1;font-style:normal;color:#5bdcbd;font:800 .59rem Roboto Mono}.quote-offer b{font-size:.88rem;color:#fff}.quote-offer span{color:#93adb6;font-size:.65rem}.quote-room-footer{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-top:16px;padding-top:15px;border-top:1px solid #294753}.quote-room-footer p{margin:0;max-width:730px;color:#829fa9;font-size:.68rem;line-height:1.5}.quote-room-footer p b{color:#d3b86b}.quote-room-footer button{flex:none}.quote-room-footer button:disabled{opacity:.45;cursor:not-allowed}.voyage-title-actions{display:flex;gap:8px}
@media(max-width:1050px){.chart-workspace{grid-template-columns:1fr}.chart-sidebar{grid-template-columns:1fr 1fr}.chart-links{grid-column:1/-1}.chart-map-panel{grid-template-rows:auto 560px auto}.waypoint-card{grid-row:span 2}.chart-toolbar{align-items:flex-start;flex-direction:column}.chart-layers{justify-content:flex-start}.quote-request{grid-template-columns:1fr}.quote-room-footer{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.chart-titlebar{padding:25px 18px;align-items:flex-start;flex-direction:column}.chart-title-meta{justify-items:start}.chart-workspace{padding:14px 18px 28px;grid-template-columns:1fr}.chart-sidebar{grid-template-columns:1fr}.waypoint-card{grid-row:auto}.chart-links{grid-column:auto}.chart-map-panel{grid-template-rows:auto 470px auto}.chart-toolbar label{font-size:.68rem}.chart-canvas{min-height:470px}.marine-service-marker span{display:none}.marine-service-marker{padding:3px}.marine-point-card{top:auto;bottom:28px}.chart-statusbar{align-items:flex-start;flex-wrap:wrap}.chart-statusbar p{width:100%;margin:0;text-align:left}.quote-room{margin:0 18px 90px;padding:17px}.quote-room-head{align-items:flex-start;flex-direction:column}.quote-room-route{justify-items:start}.quote-room-metrics{grid-template-columns:1fr}.quote-options{grid-template-columns:1fr}.quote-room-footer button{width:100%}.voyage-title-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}}
