.aster-map{display:grid;grid-template-rows:auto minmax(330px,1fr) auto auto;position:relative;min-width:0;min-height:100%;background:#101a21;color:#e7edf1}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 20px;background:#141f29;border-bottom:1px solid #ffffff20}.map-status{display:flex;flex-direction:column;gap:3px;min-width:0}.map-status strong{font-size:16px;font-weight:500}.map-status span{color:#aebdc9;font-size:14px}.map-routes{display:flex;gap:6px;flex-wrap:wrap}.map-route-button{background:none;border:1px solid #ffffff25;font-size:14px;min-height:38px;padding:8px 12px;color:#bfccd5}.map-route-button[aria-pressed=true]{color:#f1c878;border-color:#b49358;background:#302b22}.map-viewport{position:relative;isolation:isolate;overflow:hidden;min-height:330px;background:#14212b}.map-plane,.map-points{position:absolute;inset:0}.map-terrain{position:absolute;width:100%;height:100%;object-fit:fill;filter:brightness(.78) saturate(.6);transform-origin:center;pointer-events:none}.map-routes-drawing{position:absolute;width:100%;height:100%;inset:0;overflow:visible;pointer-events:none}.map-route{fill:none;stroke:#b5c8cc;stroke-width:2;stroke-dasharray:6 6;filter:drop-shadow(0 1px 2px #000)}.map-route.is-active{stroke:#ebc87d;stroke-width:3;stroke-dasharray:none}.map-route.is-closed{stroke:#e79788;stroke-dasharray:4 5}.map-pin{position:absolute;width:0;height:0;padding:0;border:0;background:none;overflow:visible;z-index:3;font-size:14px}.map-pin:hover:not(:disabled){background:none;border:0}.map-pin-symbol{position:absolute;left:-14px;top:-14px;width:28px;height:28px;display:grid;place-items:center;border:1px solid #e3c68c;border-radius:50%;background:#111d25;color:#f5d492;font-size:14px;font-weight:600;box-shadow:0 2px 12px #0007}.map-label{position:absolute;display:block;width:max-content;max-width:170px;white-space:nowrap;padding:6px 9px;font-size:14px;line-height:1.4;font-weight:500;border:1px solid #aabbbe60;border-radius:3px;background:#101a24ef;color:#f2f5f5;letter-spacing:.02em;pointer-events:auto;box-shadow:0 3px 12px #0004}.map-pin[aria-pressed=true] .map-label,.map-pin:hover .map-label{border-color:#f5cb7a}.map-pin:focus-visible{outline:0}.map-pin:focus-visible .map-pin-symbol{outline:3px solid #efbf6b;outline-offset:3px}.map-convoy{position:absolute;z-index:4;transform:translate(var(--unit-x,-38px),var(--unit-y,-58px));display:flex;gap:5px;align-items:center;padding:6px 8px;background:#143b36;color:#e0f3e8;border:1px solid #8fd1b8;border-radius:4px;white-space:nowrap;box-shadow:0 3px 15px #0008;font-size:13px}.map-convoy:before{content:'';position:absolute;left:37px;top:-23px;height:22px;width:1px;background:#b1dec8;pointer-events:none}.map-convoy svg{width:26px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5}.map-convoy.is-held{border-color:#d6b373;background:#312b20;color:#f0d59e}.map-convoy.is-held:before{background:#d6b373}.map-convoy:active{transform:translate(var(--unit-x,-38px),var(--unit-y,-58px))}.map-tools{position:absolute;bottom:14px;left:16px;display:flex;z-index:5;gap:4px}.map-tools button{width:38px;height:38px;padding:0;background:#111d29e8;border:1px solid #b2c6cf55;font-size:18px}.map-north{position:absolute;top:15px;right:20px;font-size:14px;color:#d3e1e5;text-shadow:0 2px 3px #000}.map-sites{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid #ffffff20;background:#121e28}.map-site{display:flex;gap:10px;text-align:left;align-items:center;background:none;padding:13px 14px;border:0;border-radius:0;border-right:1px solid #ffffff12;min-width:0}.map-site:last-child{border-right:0}.map-site-number{width:25px;height:25px;flex:none;border:1px solid #8196a155;border-radius:50%;display:grid;place-items:center;font-size:13px;color:#d0b77e}.map-site>span:last-child{min-width:0}.map-site strong{font-size:14px;font-weight:500;display:block;line-height:1.4;color:#e5eaee;overflow-wrap:normal}.map-site small{font-size:13px;display:block;color:#9dafbd;margin-top:4px;line-height:1.4}.map-report{display:grid;grid-template-columns:190px 1fr auto;gap:16px;text-align:left;align-items:center;min-width:0;padding:14px 20px;background:#172731;border:0;border-top:1px solid #ffffff16;border-radius:0}.map-report[hidden],.map-detail[hidden]{display:none}.map-report-meta{font-size:13px;color:#edc986;line-height:1.6}.map-report-text{font-size:14px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:#d6e0e6}.map-report>strong{font-size:13px;font-weight:500;max-width:180px;color:#adbecb}.map-detail{padding:20px;background:#1a2e37;border-top:1px solid #8da09c66;display:flex;gap:20px;justify-content:space-between;align-items:flex-start;grid-column:1/-1}.map-detail p{font-size:16px;line-height:1.6;margin:7px 0}.map-detail h3{font-size:18px;margin-bottom:10px}.map-detail-close{font-size:14px;flex:none}.map-detail[hidden]{display:none}
@media(max-width:1100px){.map-toolbar{align-items:flex-start;flex-direction:column;gap:10px}.map-report{grid-template-columns:1fr;gap:5px}.map-report-text{-webkit-line-clamp:2}.map-report>strong{display:none}.map-sites{grid-template-columns:repeat(2,minmax(0,1fr))}.map-site{border-bottom:1px solid #ffffff12}.map-site:nth-child(2){border-right:0}}
@media(max-width:600px){.map-viewport{min-height:370px}.map-toolbar{padding:14px 16px}.map-routes{width:100%;display:grid;grid-template-columns:1fr 1fr}.map-route-button{padding:8px;font-size:13px}.map-label{font-size:12px;padding:5px 7px;max-width:135px}.map-site{padding:12px}.map-site strong{font-size:13px}.map-site small{font-size:12px}.map-report{padding:14px 16px}.map-convoy{font-size:12px}.map-detail{flex-direction:column}.map-detail-close{align-self:flex-end}}
@media(prefers-reduced-motion:reduce){.map-terrain{transition:none}}

.map-convoy:before{display:none}.map-unit-leader{stroke:#e3ce9e;stroke-width:1;stroke-dasharray:2 2}.map-report-text,.map-site small{font-weight:400}
.map-points{pointer-events:none}.map-pin{pointer-events:auto}.aster-map button.map-convoy,.aster-map button.map-convoy:hover,.aster-map button.map-convoy:active{pointer-events:auto;transform:translate(var(--unit-x,-38px),var(--unit-y,-58px))}
