.starmap { padding-top:32px; scroll-margin-top:20px; }
.starmap[hidden] { display:none; }
.starmap h1 { font:400 32px/1.3 Georgia,"Microsoft YaHei",serif; margin:10px 0 12px; }
.starmap p { color:#b1c4d4; font-size:.875rem; line-height:1.8; }
.map-head { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.map-head a { color:#8edaf2; font-size:.875rem; white-space:nowrap; }
.map-search { display:flex; gap:8px; margin-top:8px; }
.map-search button { flex:0 0 auto; white-space:nowrap; }
.starmap label { font-size:.875rem; color:#cfdfed; }
.map-search input { min-width:0; width:100%; background:#182638; color:#edf5fc; border:1px solid #435c73; border-radius:8px; padding:12px; font:inherit; font-size:1rem; }
.map-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:12px 0; }
.map-actions label { display:flex; align-items:center; gap:8px; margin-left:auto; }
.map-actions input { width:90px; accent-color:#8edaf2; }
.map-search-results { display:grid; gap:6px; margin-bottom:12px; }
.map-search-results button { text-align:left; font-size:.875rem; line-height:1.7; }
.map-search-results small { display:block; color:#afc7d9; }
#map-canvas { height:clamp(340px,48dvh,560px); width:100%; background:#1c2c3c; border-radius:12px; z-index:0; }
.starmap .leaflet-control-attribution { font-size:12px; color:#273544; background:#ffffffdf; }
.starmap .leaflet-control-attribution a { color:#07508a; }
.starmap .leaflet-bar a { color:#243b50; }
.map-point { border-radius:50%; border:3px solid white; background:#0b7da5; box-shadow:0 0 0 5px #09172580; }
.map-legend { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; padding:12px 0; font-size:.75rem; color:#c0d2df; }
.map-legend span { display:inline-flex; align-items:center; gap:5px; }
.map-legend i { width:14px; height:10px; border-radius:2px; display:inline-block; background:var(--zone-color); }
.map-result { background:#1b2d40; border-radius:12px; padding:18px; margin:10px 0 18px; }
.map-result h2 { font-size:1.05rem; font-weight:400; margin:0 0 6px; overflow-wrap:anywhere; }
.map-result p { margin:6px 0; }
.map-metrics-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:#58788e transparent; margin:16px 0; }
.map-metrics-scroll:focus-visible { outline:2px solid #8edaf2; outline-offset:3px; border-radius:10px; }
.map-metrics { display:grid; grid-template-columns:1.15fr repeat(3,1fr); min-width:39rem; gap:10px; margin:0; padding:2px 0 8px; }
.map-metrics>div { min-width:0; padding:16px 12px; }
.map-metrics dt { color:#b1c4d4; font-size:.875rem; min-height:1.5em; }
.map-metrics dd { display:flex; align-items:center; min-height:3rem; margin:8px 0 4px; font-size:1.7rem; line-height:1.2; color:#b5edff; font-variant-numeric:tabular-nums; }
.map-metrics small { color:#b1c4d4; font-size:.75rem; line-height:1.6; }
.map-metrics>.map-metric-primary { background:#2b3e59; border:1px solid #465b7c; border-radius:10px; box-shadow:none; }
.map-metric-primary dt { color:#b7c8df; font-weight:700; }
.map-metric-primary dd { color:#adccec; font-size:2.4rem; font-weight:700; letter-spacing:-.035em; }
.map-metric-primary small { color:#a8bbd1; }
.map-note { font-size:.875rem; line-height:1.8; color:#a9bfce; }
.map-note summary { cursor:pointer; color:#bdeaff; }
.map-note a { color:#8edaf2; text-decoration:underline; }
.starmap :is(a,button,input,summary):focus-visible { outline:2px solid #8edaf2; outline-offset:3px; }
.map-error { color:#f0c59d!important; }
.utility-link[aria-current=page] { color:#bdeaff; }
@media(max-width:520px) {
 .starmap { padding-top:20px; }
 .map-actions label { margin-left:0; }
 .map-metrics { gap:8px; }
 .map-result { padding:14px; }
}
@media(max-width:800px) {
 .tools-mode .right-rail { height:auto; }
 .tools-mode .rail-companion { position:relative; inset:auto; width:auto; margin:72px 7vw 24px; }
 .tools-mode .app-shell { padding-bottom:0; }
}
