
.home-map.m2 .workspace{display:block}
.home-map.m2 .sidebar,.home-map.m2 .detail{display:none!important}
.home-map.m2 .map-title{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.home-map.m2 .map-panel{position:relative;border-radius:18px;overflow:hidden;border-color:#174067}
.m2-stage{position:relative;--sheet-h:0px;--cy:#00d0ff;--tl:#2bd2f8;--gl:rgba(2,25,46,.74);--mu:#8bb1c8}
.home-map.m2 #map{height:min(78svh,720px);min-height:480px;background:#001324}
@media(min-width:900px){.home-map.m2 #map{height:min(78vh,680px)}}
.home-map.m2 .leaflet-tile-pane{filter:invert(1) hue-rotate(195deg) saturate(1.5) brightness(.62) contrast(1.25)}
.home-map.m2 .leaflet-control-zoom{display:none}
.home-map.m2 .leaflet-control-attribution{background:rgba(0,22,42,.65)!important;color:#799bb1!important;font-size:10px}
.home-map.m2 .leaflet-control-attribution a{color:#95b9d0!important}
.m2-glass{background:var(--gl);-webkit-backdrop-filter:blur(12px) saturate(1.2);backdrop-filter:blur(12px) saturate(1.2);border:1px solid rgba(43,210,248,.24);box-shadow:0 6px 24px rgba(0,0,0,.4)}
.m2-top{position:absolute;z-index:1000;top:10px;left:10px;right:66px;display:flex;flex-direction:column;gap:7px;pointer-events:none}
.m2-top>*{pointer-events:none}
.m2-top button,.m2-top input,.m2-bar,.m2-live{pointer-events:auto} /* v5.61.0: empty parts of the chip/area rows no longer swallow clicks on vessels */
.m2-bar{display:flex;align-items:center;gap:8px;border-radius:16px;padding:5px 6px 5px 12px;max-width:560px}
.m2-bar input{flex:1;min-width:0;background:transparent!important;border:0!important;color:#e3f8fd;font-size:16px;outline:none;padding:8px 2px!important}
.m2-bar input::placeholder{color:var(--mu)}
.m2-live{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:650;color:var(--tl);background:rgba(43,210,248,.1);border:1px solid rgba(43,210,248,.3);border-radius:999px;padding:5px 10px;white-space:nowrap}
.m2-dot{width:8px;height:8px;border-radius:50%;background:var(--tl);animation:m2p 1.8s infinite}
@keyframes m2p{0%{box-shadow:0 0 0 0 rgba(43,210,248,.7)}70%{box-shadow:0 0 0 9px rgba(43,210,248,0)}100%{box-shadow:0 0 0 0 rgba(43,210,248,0)}}
.m2-chips{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding:1px 0;max-width:820px}
.m2-chips::-webkit-scrollbar{display:none}
.m2-chip,.m2-area{flex:0 0 auto;border-radius:999px!important;padding:6px 12px!important;font-size:13px;font-weight:650;color:#e3f8fd;border:1px solid rgba(43,210,248,.24)!important;background:var(--gl)!important;display:flex;align-items:center;gap:6px;line-height:1.2}
.m2-chip i{width:9px;height:9px;border-radius:50%;display:inline-block}
.m2-chip[aria-pressed="true"]{background:linear-gradient(135deg,rgba(0,208,255,.3),rgba(43,210,248,.18))!important;border-color:var(--cy)!important;color:#fff;box-shadow:0 0 12px rgba(0,208,255,.35)}
.m2-areas{display:flex;gap:6px;flex-wrap:wrap}
.m2-area{border-radius:10px!important;font-size:12px;color:var(--mu);padding:5px 10px!important}
.m2-area[aria-pressed="true"]{color:var(--cy);border-color:var(--cy)!important}
.m2-fab{position:absolute;z-index:1001;right:10px;bottom:34px;display:flex;flex-direction:column;gap:8px;transition:bottom .3s}
.m2-fab button{width:44px;height:44px;border-radius:14px!important;padding:0!important;color:#e3f8fd;font-size:18px;display:grid;place-items:center;position:relative;line-height:1;background:var(--gl)!important;border:1px solid rgba(43,210,248,.24)!important;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.m2-fab button[aria-pressed="true"]{color:var(--cy);border-color:var(--cy)!important;box-shadow:0 0 14px rgba(0,208,255,.4)}
.m2-fab small{position:absolute;bottom:2px;font-size:7.5px;font-weight:700;letter-spacing:.2px;color:var(--mu)}
.m2-fab .bsr-sweep-btn{font-size:0!important;min-height:0}
.m2-fab .bsr-sweep-btn::before{content:"◎";font-size:18px}
.m2-fab .bsr-sweep-btn::after{content:"SWEEP";position:absolute;bottom:2px;font-size:7.5px;font-weight:700;color:var(--mu)}
.m2-note{display:none;font-size:11px;color:var(--mu);background:var(--gl);border-radius:8px;padding:3px 8px;align-self:flex-start}
.m2-stage.m2-sweep-on .m2-note{display:block}
.m2-layers{position:absolute;z-index:1002;right:62px;bottom:34px;border-radius:14px;padding:8px 10px;display:none;min-width:190px}
.m2-layers.open{display:block}
.m2-layers label{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 2px;font-weight:650;font-size:14px;cursor:pointer;color:#e3f8fd}
.m2-layers input{width:18px;height:18px;accent-color:#2bd2f8}
.m2-layers small{display:block;color:var(--mu);font-size:11px;max-width:200px}
.m2-hint{position:absolute;z-index:999;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;background:rgba(0,19,36,.78);color:#e3f8fd;border:1px solid rgba(0,208,255,.35);border-radius:999px;padding:8px 14px;font-size:13px;font-weight:650;white-space:nowrap;transition:opacity .3s}
.m2-hint[hidden]{display:block!important;opacity:0}
.m2-legend{pointer-events:none;position:absolute;z-index:999;left:10px;bottom:22px;border-radius:12px;padding:5px 9px;font-size:11px;color:var(--mu);display:flex;gap:9px;flex-wrap:wrap;max-width:calc(100% - 80px)}
.m2-legend span{display:flex;align-items:center;gap:4px}.m2-legend i{width:8px;height:8px;border-radius:50%}
.m2-v{filter:drop-shadow(0 0 3px var(--c)) drop-shadow(0 0 7px var(--c))}
.vessel-icon.m2-icon{background:none;color:inherit;font-size:0}
.vessel-icon.m2-icon.delayed{opacity:.5}
.vessel-icon.m2-icon.vessel-selected{outline:0;background:none!important}
.vessel-icon.m2-icon.vessel-selected .m2-v{filter:drop-shadow(0 0 5px #fff) drop-shadow(0 0 14px #00d0ff);transform-origin:center}
.m2-cl{display:grid;place-items:center;border-radius:50%;color:#000d1a;font-weight:800;background:radial-gradient(circle,#7fe8ff 0,#00d0ff 55%,rgba(0,208,255,.25) 56%,rgba(0,208,255,0) 72%)}
.m2-port{color:#fff;font-weight:700;font-size:11px;background:none;border:0;box-shadow:none;text-shadow:0 1px 3px #000,0 0 4px #000;padding:0 0 0 4px}
.m2-port::before{display:none}
.m2-wind{color:#d7ecff;font-size:11px;font-weight:700;text-align:center;text-shadow:0 1px 3px #000;line-height:1.1}
.m2-wind b{display:block;font-size:20px;line-height:1;color:#9fd8ff;filter:drop-shadow(0 0 3px #4fb4ff)}
.m2-me{width:14px;height:14px;border-radius:50%;background:#00d0ff;border:3px solid #fff;box-shadow:0 0 14px #00d0ff}
.m2-sheet{position:absolute;z-index:1003;left:0;right:0;bottom:0;max-height:62%;overflow:auto;border-radius:20px 20px 0 0;padding:6px 14px 14px;transform:translateY(105%);transition:transform .32s cubic-bezier(.2,.9,.3,1);color:#e3f8fd;overscroll-behavior:contain}
.m2-sheet.open{transform:none}
.m2-grab{width:40px;height:5px;border-radius:9px;background:#2a5883;margin:2px auto 8px}
.m2-h{display:flex;align-items:center;gap:10px}
.m2-flag{font-size:28px;line-height:1}
.m2-h h3{margin:0;font-size:19px;letter-spacing:.2px;overflow-wrap:anywhere}
.m2-h p{margin:2px 0 0;color:var(--mu);font-size:12px}
.m2-x{margin-left:auto;flex:0 0 34px;width:34px;height:34px;border-radius:50%!important;padding:0!important;background:transparent!important;font-size:16px}
.m2-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.m2-badge{display:inline-flex;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:700;background:rgba(43,210,248,.12);color:var(--tl)}
.m2-badge.warn{background:rgba(234,186,107,.15);color:#eaba6b}
.m2-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0 8px}
.m2-st{background:rgba(0,208,255,.06);border:1px solid rgba(0,208,255,.16);border-radius:12px;padding:8px}
.m2-st small{display:block;color:var(--mu);font-size:10.5px;text-transform:uppercase;letter-spacing:.4px}
.m2-st b{font-size:18px;color:#fff}.m2-st em{font-style:normal;font-size:11px;color:var(--mu);margin-left:2px}
.m2-rows{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;font-size:13px;margin:0}
.m2-rows dt{color:var(--mu)}.m2-rows dd{margin:0;font-weight:600;overflow-wrap:anywhere}
.m2-act{display:flex;gap:8px;margin-top:10px}
.m2-act button{flex:1;padding:10px!important;border-radius:12px!important;border:1px solid rgba(0,208,255,.35)!important;background:rgba(0,208,255,.1)!important;color:#00d0ff;font-weight:700;font-size:14px}
.m2-act button[aria-pressed="true"],.m2-act .p{background:linear-gradient(135deg,#00d0ff,#2bd2f8)!important;color:#032!important;border:0!important}
.m2-trail{font-size:11px;color:var(--mu);margin:6px 0 0}
.m2-more{margin-top:10px;border-top:1px solid rgba(43,210,248,.18);padding-top:6px}
.m2-more summary{cursor:pointer;color:var(--tl);font-size:13px;font-weight:650}
.m2-more #selection{font-size:13px}
.m2-more .vessel-close{display:none}
/* sheet open on phones: right buttons become a row ABOVE the sheet (never hidden) */
.m2-stage.m2-open .m2-fab{bottom:calc(var(--sheet-h) + 8px);flex-direction:row}
.m2-stage.m2-open .m2-layers{bottom:calc(var(--sheet-h) + 60px);right:10px}
.m2-stage.m2-open .m2-legend{display:none}
@media(min-width:900px){
 .m2-top{right:auto;width:min(820px,calc(100% - 90px))}
 .m2-fab{bottom:auto;top:50%;transform:translateY(-50%)}
 .m2-layers{bottom:auto;top:50%;transform:translateY(-50%)}
 .m2-sheet{left:auto;right:66px;top:120px;bottom:auto;width:370px;max-height:calc(100% - 140px);border-radius:18px;transform:translateX(130%);padding:14px}
 .m2-sheet.open{transform:none}.m2-grab{display:none}
 .m2-stage.m2-open .m2-fab{bottom:auto;flex-direction:column}
 .m2-stage.m2-open .m2-layers{bottom:auto;right:62px}
 .m2-stage.m2-open .m2-legend{display:flex}
}
.m2-stage:fullscreen{background:#001324}.m2-stage:fullscreen #map,.m2-stage.m2-full #map{height:100vh!important;height:100dvh!important;max-height:none}
.m2-stage.m2-full{position:fixed;inset:0;z-index:5000}
.m2-paused *{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.m2-dot{animation:none}.m2-sheet{transition:none}}
/* Leaflet.markercluster core (MIT) */
.leaflet-cluster-anim .leaflet-marker-icon,.leaflet-cluster-anim .leaflet-marker-shadow{transition:transform .3s ease-out,opacity .3s ease-in}
.leaflet-cluster-spider-leg{transition:stroke-dashoffset .3s ease-out,stroke-opacity .3s ease-in}
/* v5.61.0 mobile tuning */
@media(max-width:899px){
 .m2-top{right:10px}
 .m2-bar{padding:4px 5px 4px 10px}
 .m2-live{font-size:11px;padding:4px 8px}
 .m2-hint{top:auto;bottom:96px}
 .m2-stage.m2-open .m2-areas,.m2-stage.m2-open .m2-chips,.m2-stage.m2-open .m2-note{display:none}
 .m2-sheet{max-height:46%;padding:4px 12px 10px}
 .m2-h h3{font-size:17px}.m2-flag{font-size:24px}
 .m2-stats{margin:8px 0 6px}.m2-st{padding:6px 8px}.m2-st b{font-size:16px}
 .m2-rows{grid-template-columns:auto 1fr auto 1fr;font-size:12px}
 .m2-act{margin-top:8px}.m2-act button{padding:8px!important}
 .m2-stage.m2-open .m2-fab button{width:40px;height:40px}
}

.vessel-icon.m2-icon{cursor:pointer}
.m2-chips{pointer-events:auto}
.m2-stage:has(.bsr-storm-btn) .m2-legend,#map:has(.bsr-storm-btn) ~ .m2-legend{bottom:60px}
