.geodata-map {
  --geo-bg: #050e16;
  --geo-bg-elevated: #081923;
  --geo-surface: #0c2430;
  --geo-ink: #e3f5f8;
  --geo-muted: #91adb7;
  --geo-subtle: #607e89;
  --geo-line: rgba(126, 195, 210, .16);
  --geo-line-strong: rgba(126, 220, 236, .3);
  min-width: 0;
  height: 100%;
  display: grid;
  grid-template-rows: auto minmax(220px, 1fr) auto auto;
  overflow: hidden;
  border-radius: var(--r-sm);
  background: var(--geo-bg);
  color: var(--geo-ink);
  container: geodata-map / inline-size;
}

.geodata-map-toolbar,
.geodata-map-legal {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 9px;
  border-bottom: 1px solid var(--geo-line);
  background: var(--geo-bg-elevated);
  font-size: 10px;
}

.geodata-map-toolbar { justify-content: flex-start; }
.geodata-map-toolbar time { margin-left: auto; color: var(--geo-subtle); font: 500 9px/1.3 var(--font-mono); }
.geodata-map-status { display: inline-flex; align-items: center; gap: 5px; color: var(--geo-muted); font-weight: 600; }
.geodata-map-status::before { width: 6px; height: 6px; border-radius: 50%; background: var(--c-offline); content: ""; }
.geodata-map-status.up::before { background: var(--c-primary); box-shadow: 0 0 0 3px color-mix(in oklab, var(--c-primary) 16%, transparent); }
.geodata-map-status.degraded::before { background: var(--c-warn); }
.geodata-map-status.down::before { background: var(--c-danger); }
.geodata-map-mode { padding: 2px 5px; border: 1px solid var(--geo-line); border-radius: var(--r-xs); color: #79d8e7; font-size: 9px; }
.geodata-map-count { color: var(--geo-muted); }

.geodata-map-canvas {
  min-width: 0;
  min-height: 220px;
  position: relative;
  overflow: hidden;
  background: var(--geo-surface);
  box-shadow: inset 0 0 42px rgba(0, 0, 0, .42);
}

.geodata-map-loading .geodata-map-canvas::after {
  position: absolute;
  z-index: 2;
  inset: 12px auto auto 12px;
  padding: 5px 8px;
  border: 1px solid var(--geo-line);
  border-radius: var(--r-xs);
  background: rgba(5, 14, 22, .9);
  color: var(--geo-muted);
  font-size: 10px;
  content: "正在加载开放底图…";
}

.geodata-map-fallback {
  width: min(440px, calc(100% - 32px));
  min-height: 112px;
  position: absolute;
  inset: 50% auto auto 50%;
  display: grid;
  place-content: center;
  gap: 6px;
  transform: translate(-50%, -50%);
  padding: 18px;
  border: 1px dashed var(--geo-line-strong);
  border-radius: var(--r-sm);
  background: rgba(8, 25, 35, .94);
  text-align: center;
}
.geodata-map-fallback b { font-size: 13px; }
.geodata-map-fallback span { color: var(--geo-muted); font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }

.geodata-map-legal {
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  border-top: 1px solid var(--geo-line);
  border-bottom: 0;
  color: var(--geo-muted);
  line-height: 1.4;
}
.geodata-map-attribution { min-width: 0; overflow-wrap: anywhere; }
.geodata-map-attribution b { color: var(--geo-subtle); font-weight: 500; }
.geodata-map-attribution a { color: #63cedf; text-underline-offset: 2px; }
.geodata-map-advisory { flex: 0 1 auto; color: #e5b94b; font-size: 9px; font-weight: 600; text-align: right; }
.geodata-map-usage { width: 100%; margin: 0; color: var(--geo-subtle); font-size: 9px; line-height: 1.5; overflow-wrap: anywhere; }

.geodata-event-list { border-top: 1px solid var(--geo-line); background: var(--geo-bg-elevated); }
.geodata-event-list summary {
  min-height: 31px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 5px 9px;
  color: var(--geo-muted);
  font-size: 10px;
  cursor: pointer;
  list-style-position: inside;
}
.geodata-event-list summary b { margin-left: auto; color: var(--geo-ink); font: 600 10px/1 var(--font-mono); }
.geodata-event-list ol { max-height: 174px; margin: 0; padding: 0 9px 7px; overflow: auto; list-style: none; }
.geodata-event-list li { min-width: 0; display: grid; grid-template-columns: 50px minmax(0, 1fr) auto; gap: 8px; padding: 6px 0; border-top: 1px solid var(--geo-line); font-size: 10px; }
.geodata-event-list li b { color: #ee8654; font: 600 10px/1.3 var(--font-mono); }
.geodata-event-list li span { min-width: 0; overflow: hidden; color: var(--geo-ink); text-overflow: ellipsis; white-space: nowrap; }
.geodata-event-list li time { color: var(--geo-subtle); font: 500 9px/1.3 var(--font-mono); white-space: nowrap; }
.geodata-event-list > p,
.geodata-event-list > small { display: block; margin: 0; padding: 0 9px 7px; color: var(--geo-subtle); font-size: 9px; }

.geodata-event-popup { display: grid; gap: 7px; color: var(--geo-ink); }
.geodata-event-popup > b { max-width: 32ch; font-size: 12px; line-height: 1.4; }
.geodata-event-popup > p { max-width: 38ch; margin: 0; color: var(--geo-muted); font-size: 10px; line-height: 1.45; }
.geodata-event-kicker { color: #68dcec; font: 600 8px/1.2 var(--font-mono); letter-spacing: .08em; }
.geodata-event-popup dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 10px; margin: 0; }
.geodata-event-popup dt { color: var(--geo-subtle); font-size: 8px; }
.geodata-event-popup dd { margin: 1px 0 0; color: var(--geo-muted); font-size: 9px; overflow-wrap: anywhere; }
.geodata-event-popup a { color: #68dcec; font-size: 10px; }
.geodata-event-popup small { color: #e5b94b; font-size: 8px; }

.geodata-map .maplibregl-popup-content {
  border: 1px solid var(--geo-line-strong);
  border-radius: var(--r-sm);
  background: #081923;
  box-shadow: 0 6px 18px rgba(0, 0, 0, .32);
}
.geodata-map .maplibregl-popup-close-button { width: 30px; height: 30px; color: var(--geo-muted); font-size: 18px; }
.geodata-map .maplibregl-popup-anchor-bottom .maplibregl-popup-tip { border-top-color: #081923; }
.geodata-map .maplibregl-popup-anchor-top .maplibregl-popup-tip { border-bottom-color: #081923; }
.geodata-map .maplibregl-popup-anchor-left .maplibregl-popup-tip { border-right-color: #081923; }
.geodata-map .maplibregl-popup-anchor-right .maplibregl-popup-tip { border-left-color: #081923; }

.geodata-selected-place-marker {
  width: max-content;
  min-width: 44px;
  min-height: 58px;
  position: relative;
  display: block;
  padding: 0;
  border: 0;
  background: transparent;
  color: #effdff;
  cursor: pointer;
}
.geodata-selected-place-marker:focus-visible { outline: 2px solid #79e7f1; outline-offset: 4px; border-radius: var(--r-xs); }
.geodata-selected-place-label {
  max-width: 220px;
  position: absolute;
  inset: auto auto 47px 50%;
  overflow: hidden;
  transform: translateX(-50%);
  padding: 5px 8px;
  border: 1px solid rgba(188, 244, 250, .68);
  border-radius: var(--r-xs);
  background: #071b25;
  color: #effdff;
  font: 650 11px/1.2 var(--font-sans);
  text-overflow: ellipsis;
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .38);
}
.geodata-selected-place-pin {
  width: 27px;
  height: 27px;
  position: absolute;
  inset: auto auto 14px 50%;
  transform: translateX(-50%) rotate(-45deg);
  border: 2px solid #effdff;
  border-radius: 50% 50% 50% 6px;
  background: #08a8bf;
  box-shadow: 0 2px 6px rgba(0, 0, 0, .48);
}
.geodata-selected-place-pin::after {
  width: 8px;
  height: 8px;
  position: absolute;
  inset: 50% auto auto 50%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: #effdff;
  content: "";
}
.geodata-selected-place-halo {
  width: 36px;
  height: 12px;
  position: absolute;
  inset: auto auto 2px 50%;
  transform: translateX(-50%);
  border: 2px solid rgba(88, 225, 238, .82);
  border-radius: 50%;
  background: rgba(8, 168, 191, .2);
}
.geodata-selected-place-marker:hover .geodata-selected-place-label { border-color: #79e7f1; background: #0a2632; }
.geodata-selected-place-marker:hover .geodata-selected-place-pin { background: #11bfd2; }
.geodata-map .maplibregl-ctrl-group {
  overflow: hidden;
  border: 1px solid var(--geo-line-strong);
  border-radius: var(--r-xs);
  background: #081923;
  box-shadow: 0 2px 7px rgba(0, 0, 0, .28);
}
.geodata-map .maplibregl-ctrl-group button + button { border-top-color: var(--geo-line); }
.geodata-map .maplibregl-ctrl button .maplibregl-ctrl-icon { filter: invert(1) grayscale(1) brightness(1.65); opacity: .82; }
.geodata-map .maplibregl-ctrl-scale { border-color: var(--geo-line-strong); background: rgba(5, 14, 22, .84); color: var(--geo-ink); }

.geodata-layer-control {
  width: 188px;
  position: absolute;
  z-index: 4;
  inset: 10px auto auto 10px;
  overflow: hidden;
  border: 1px solid var(--geo-line-strong);
  border-radius: var(--r-sm);
  background: rgba(8, 25, 35, .96);
  color: var(--geo-ink);
  box-shadow: 0 3px 9px rgba(0, 0, 0, .28);
}
.geodata-layer-control summary {
  min-height: 34px;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 9px;
  color: var(--geo-muted);
  font-size: 10px;
  font-weight: 650;
  cursor: pointer;
  list-style: none;
}
.geodata-layer-control summary::-webkit-details-marker { display: none; }
.geodata-layer-control summary::before { color: #68dcec; content: "+"; font: 600 13px/1 var(--font-mono); }
.geodata-layer-control[open] summary::before { content: "−"; }
.geodata-layer-control summary b { margin-left: auto; color: var(--geo-subtle); font: 600 9px/1 var(--font-mono); }
.geodata-layer-control-body {
  display: grid;
  gap: 2px;
  padding: 4px 5px 6px;
  border-top: 1px solid var(--geo-line);
}
.geodata-layer-toggle {
  min-height: 31px;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr) auto;
  align-items: center;
  gap: 7px;
  padding: 4px 6px;
  border: 0;
  border-radius: var(--r-xs);
  background: transparent;
  color: var(--geo-muted);
  font: 600 10px/1.2 var(--font-sans);
  text-align: left;
  cursor: pointer;
}
.geodata-layer-toggle:hover:not(:disabled) { background: rgba(104, 220, 236, .07); color: var(--geo-ink); }
.geodata-layer-toggle:focus-visible { outline: 2px solid #68dcec; outline-offset: -2px; }
.geodata-layer-toggle[aria-pressed="false"] { opacity: .48; }
.geodata-layer-toggle:disabled { opacity: .28; cursor: not-allowed; }
.geodata-layer-toggle b { color: var(--geo-subtle); font: 600 8px/1 var(--font-mono); }
.geodata-layer-swatch { width: 13px; height: 3px; display: block; border-radius: 2px; background: #4aaec6; box-shadow: 0 0 6px rgba(74, 174, 198, .44); }
.geodata-layer-toggle.labels .geodata-layer-swatch { height: 7px; background: #cbeff4; box-shadow: none; }
.geodata-layer-toggle.vehicles .geodata-layer-swatch { width: 8px; height: 8px; margin-left: 2px; border: 1px solid #dffcff; border-radius: 50%; background: #22c77a; box-shadow: 0 0 7px rgba(34, 199, 122, .44); }
.geodata-layer-toggle.tasks .geodata-layer-swatch { width: 8px; height: 8px; margin-left: 2px; border: 1px solid #dceeff; border-radius: 50%; background: #46a4f2; box-shadow: 0 0 7px rgba(70, 164, 242, .38); }
.geodata-layer-toggle.weather .geodata-layer-swatch { width: 8px; height: 8px; margin-left: 2px; border: 1px solid #fff4cc; border-radius: 50%; background: #e3ad31; box-shadow: 0 0 7px rgba(227, 173, 49, .38); }
.geodata-layer-toggle.earthquakes .geodata-layer-swatch { width: 8px; height: 8px; margin-left: 2px; border: 1px solid #fff0e6; border-radius: 50%; background: #e85b48; box-shadow: 0 0 7px rgba(232, 91, 72, .4); }
.geodata-layer-control-body > small { padding: 4px 6px 1px; color: var(--geo-subtle); font-size: 8px; line-height: 1.4; }

.admin-map-primary-stack { min-width: 0; display: grid; gap: 12px; }
.admin-geodata-stage { padding: 0; overflow: hidden; container: admin-map-stage / inline-size; }
.admin-geodata-stage > .admin-panel-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px 14px;
  margin: 0;
  padding: 11px 12px;
  border-bottom: 1px solid var(--c-border);
}
.admin-map-stage-title { min-width: 0; }
.admin-map-stage-title h3,
.admin-map-stage-title span { overflow-wrap: anywhere; }
.admin-map-stage-actions {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 6px;
}
.admin-map-focus-status {
  min-width: 0;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--c-muted);
  font-size: 10px;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.admin-map-focus-status::before {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--c-subtle);
  content: "";
}
.admin-map-focus-status[data-state="located"]::before { background: var(--c-primary); }
.admin-map-focus-status[data-state="locating"]::before { background: var(--c-info); }
.admin-map-focus-status[data-state="blocked"]::before { background: var(--c-warn); }
.admin-map-stage-actions button {
  min-width: 0;
  min-height: 36px;
  padding: 6px 9px;
  border: 1px solid var(--c-border);
  border-radius: var(--r-sm);
  background: var(--c-bg);
  color: var(--c-muted);
  font: 550 10px/1.3 var(--font-sans);
  white-space: nowrap;
  cursor: pointer;
}
.admin-map-stage-actions button:hover:not(:disabled) { border-color: var(--c-border-strong); color: var(--c-fg); }
.admin-map-stage-actions button:focus-visible { outline: 2px solid var(--c-info); outline-offset: 2px; }
.admin-map-stage-actions button:disabled { opacity: .45; cursor: not-allowed; }
.admin-map-fullscreen-toggle[aria-pressed="true"] { border-color: var(--c-info); color: var(--c-fg); }
.admin-map-fullscreen-toolbar-exit { display: none; }
.admin-map-focus-detail {
  margin: 0;
  padding: 7px 12px;
  border-bottom: 1px solid var(--c-border);
  color: var(--c-subtle);
  font-size: 9.5px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}
.admin-geodata-stage > #admin-geodata-map { height: 500px; border-radius: 0; }
.admin-geodata-loading { min-height: 330px; display: grid; place-items: center; align-content: center; gap: 9px; color: var(--c-muted); font-size: 11px; }
.admin-geodata-loading > span { width: 20px; height: 20px; border: 2px solid var(--c-border-strong); border-top-color: var(--c-info); border-radius: 50%; animation: geodata-spin .75s linear infinite; }

body.admin-map-fullscreen-open { overflow: hidden; }
#page-map::backdrop { background: var(--c-bg); }
#page-map.admin-map-fullscreen-active {
  width: 100%;
  max-width: none;
  height: 100dvh;
  min-height: 0;
  margin: 0;
  padding: max(8px, env(safe-area-inset-top)) max(8px, env(safe-area-inset-right)) max(8px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr);
  gap: 8px;
  overflow: hidden;
  box-sizing: border-box;
  background: var(--c-bg);
  animation: none;
}
#page-map.admin-map-fullscreen-fallback {
  position: fixed;
  z-index: 180;
  inset: 0;
}
#page-map.admin-map-fullscreen-active > .admin-page-head,
#page-map.admin-map-fullscreen-active .admin-map-tools,
#page-map.admin-map-fullscreen-active .admin-map-primary-stack > .admin-map-plot-notice,
#page-map.admin-map-fullscreen-active .admin-map-operational-details { display: none; }
#page-map.admin-map-fullscreen-active > .admin-map-search-workspace {
  position: relative;
  z-index: 30;
  grid-template-columns: minmax(0, 1.45fr) minmax(230px, .7fr) auto;
  margin: 0;
  padding: 9px 10px;
  border-radius: var(--r-sm);
  background: var(--c-bg-elevated);
  box-shadow: var(--sh-float);
}
#page-map.admin-map-fullscreen-active .admin-map-fullscreen-toolbar-exit {
  min-width: 90px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: end;
  padding: 7px 12px;
  border: 1px solid var(--c-border-strong);
  border-radius: var(--r-sm);
  background: var(--c-bg);
  color: var(--c-fg);
  font: 600 10.5px/1.2 var(--font-sans);
  cursor: pointer;
}
#page-map.admin-map-fullscreen-active .admin-map-fullscreen-toolbar-exit:hover { border-color: var(--c-info); }
#page-map.admin-map-fullscreen-active .admin-map-fullscreen-toolbar-exit:focus-visible { outline: 2px solid var(--c-info); outline-offset: 2px; }
#page-map.admin-map-fullscreen-active .admin-geodata-stage .admin-map-fullscreen-toggle { display: none; }
#page-map.admin-map-fullscreen-active .admin-map-search-feedback {
  max-height: min(42dvh, 360px);
  position: absolute;
  z-index: 32;
  inset: calc(100% + 6px) 10px auto;
  display: none;
  gap: 6px;
  padding: 8px;
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid var(--c-border-strong);
  border-radius: var(--r-sm);
  background: var(--c-bg-elevated);
  box-shadow: var(--sh-float);
  scrollbar-gutter: stable;
}
#page-map.admin-map-fullscreen-active .admin-map-search-workspace:focus-within .admin-map-search-feedback { display: grid; }
#page-map.admin-map-fullscreen-active .admin-map-search-results { max-height: min(32dvh, 280px); }
#page-map.admin-map-fullscreen-active > .admin-map-page-layout,
#page-map.admin-map-fullscreen-active .admin-map-primary-stack,
#page-map.admin-map-fullscreen-active .admin-geodata-stage {
  width: 100%;
  height: 100%;
  min-height: 0;
}
#page-map.admin-map-fullscreen-active > .admin-map-page-layout { display: block; }
#page-map.admin-map-fullscreen-active .admin-map-primary-stack { display: grid; grid-template-rows: minmax(0, 1fr); gap: 0; }
#page-map.admin-map-fullscreen-active .admin-geodata-stage {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden;
  border: 0;
  border-radius: var(--r-sm);
}
#page-map.admin-map-fullscreen-active .admin-geodata-stage:has(> #admin-geodata-map) { grid-template-rows: auto auto minmax(0, 1fr); }
#page-map.admin-map-fullscreen-active .admin-geodata-stage > #admin-geodata-map {
  height: 100%;
  min-height: 0;
}
#page-map.admin-map-fullscreen-active .admin-geodata-loading,
#page-map.admin-map-fullscreen-active .admin-geodata-stage > .admin-compact-empty { min-height: 0; height: 100%; }

.screen-geodata-plot { display: block; }
.screen-geodata-plot > #screen-geodata-map { width: 100%; height: 100%; min-height: inherit; border-radius: 0; }
.screen-geodata-plot .geodata-map { grid-template-rows: auto minmax(145px, 1fr) auto auto; }
.screen-geodata-plot .geodata-map-canvas { min-height: 145px; }
.screen-geodata-plot .geodata-map-toolbar,
.screen-geodata-plot .geodata-map-legal { padding: 5px 7px; font-size: 8px; }
.screen-geodata-plot .geodata-map-advisory { font-size: 8px; }
.screen-geodata-plot .geodata-event-list summary { min-height: 25px; padding-block: 3px; font-size: 8px; }
.screen-geodata-plot .geodata-event-list li { font-size: 8px; }
.screen-geodata-plot .geodata-layer-control { width: 168px; inset: 7px auto auto 7px; }
.screen-geodata-plot .geodata-layer-control summary { min-height: 28px; padding-block: 4px; font-size: 9px; }
.screen-geodata-plot .geodata-layer-toggle { min-height: 27px; font-size: 9px; }

@keyframes geodata-spin { to { transform: rotate(1turn); } }

@container admin-map-stage (max-width: 560px) {
  .admin-geodata-stage > .admin-panel-head { grid-template-columns: minmax(0, 1fr); align-items: stretch; }
  .admin-map-stage-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); justify-content: stretch; }
  .admin-map-focus-status { grid-column: 1 / -1; min-height: 24px; }
  .admin-map-stage-actions button { min-height: 44px; white-space: normal; }
  .admin-map-stage-actions .admin-map-fullscreen-toggle { grid-column: 1 / -1; }
}

@container geodata-map (max-width: 520px) {
  .geodata-map-toolbar { flex-wrap: wrap; }
  .geodata-map-toolbar time { width: 100%; margin-left: 0; }
  .geodata-map-legal { display: grid; }
  .geodata-map-advisory { text-align: left; }
  .geodata-layer-control,
  .screen-geodata-plot .geodata-layer-control { width: min(244px, calc(100% - 74px)); inset: 9px auto auto 9px; }
  .geodata-layer-control[open],
  .screen-geodata-plot .geodata-layer-control[open] { max-height: calc(100% - 18px); overflow-y: auto; overscroll-behavior: contain; }
  .geodata-selected-place-label { max-width: 150px; }
}

@media (max-width: 900px) {
  #page-map.admin-map-fullscreen-active > .admin-map-search-workspace { grid-template-columns: minmax(0, 1fr) auto; }
  #page-map.admin-map-fullscreen-active .admin-map-renderer-picker { grid-column: 1 / -1; }
}

@media (max-width: 600px) {
  .geodata-map { grid-template-rows: auto minmax(190px, 1fr) auto auto; }
  .geodata-map-canvas { min-height: 190px; }
  .geodata-map .maplibregl-popup-close-button { display: grid; width: 44px; height: 44px; place-items: center; line-height: 1; }
  .geodata-map-toolbar { flex-wrap: wrap; }
  .geodata-map-toolbar time { width: 100%; margin-left: 0; }
  .geodata-map-legal { display: grid; }
  .geodata-map-advisory { text-align: left; }
  .geodata-layer-control,
  .screen-geodata-plot .geodata-layer-control { width: min(244px, calc(100% - 74px)); inset: 9px auto auto 9px; }
  .geodata-layer-control[open],
  .screen-geodata-plot .geodata-layer-control[open] { max-height: calc(100% - 18px); overflow-y: auto; overscroll-behavior: contain; }
  .geodata-layer-control summary,
  .screen-geodata-plot .geodata-layer-control summary { min-height: 44px; padding-inline: 11px; }
  .geodata-layer-control-body { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .geodata-layer-toggle,
  .screen-geodata-plot .geodata-layer-toggle { min-height: 44px; }
  .geodata-event-list summary,
  .screen-geodata-plot .geodata-event-list summary { min-height: 44px; }
  .geodata-layer-control-body > small { grid-column: 1 / -1; }
  .geodata-event-list li { grid-template-columns: 45px minmax(0, 1fr); }
  .geodata-event-list li time { grid-column: 2; white-space: normal; }
  .admin-geodata-stage > #admin-geodata-map { height: 430px; }
  .screen-geodata-plot .geodata-map { grid-template-rows: auto minmax(190px, 1fr) auto auto; }
  .screen-geodata-plot .geodata-map-canvas { min-height: 190px; }
  .screen-geodata-plot .geodata-map-toolbar,
  .screen-geodata-plot .geodata-map-legal,
  .screen-geodata-plot .geodata-map-advisory,
  .screen-geodata-plot .geodata-event-list summary,
  .screen-geodata-plot .geodata-event-list li,
  .screen-geodata-plot .geodata-layer-control summary,
  .screen-geodata-plot .geodata-layer-toggle { font-size: 11px; }
  .geodata-selected-place-label { max-width: 150px; font-size: 11px; }
  .admin-map-stage-actions button { min-height: 44px; }
  #page-map.admin-map-fullscreen-active { padding: max(5px, env(safe-area-inset-top)) max(5px, env(safe-area-inset-right)) max(5px, env(safe-area-inset-bottom)) max(5px, env(safe-area-inset-left)); gap: 5px; }
  #page-map.admin-map-fullscreen-active > .admin-map-search-workspace { padding: 7px; }
  #page-map.admin-map-fullscreen-active .admin-map-renderer-picker { display: none; }
  #page-map.admin-map-fullscreen-active .admin-map-search-input input,
  #page-map.admin-map-fullscreen-active .admin-map-search-input .btn { min-height: 44px; }
  #page-map.admin-map-fullscreen-active .admin-map-search-feedback { inset-inline: 7px; max-height: min(46dvh, 320px); }
  #page-map.admin-map-fullscreen-active .admin-map-search-results { max-height: min(35dvh, 250px); }
}

@media (max-height: 600px) and (orientation: landscape) {
  #page-map.admin-map-fullscreen-active .admin-map-search-form > label small,
  #page-map.admin-map-fullscreen-active .admin-map-renderer-picker > p,
  #page-map.admin-map-fullscreen-active .admin-map-stage-title > span,
  #page-map.admin-map-fullscreen-active .admin-map-focus-detail { display: none; }
  #page-map.admin-map-fullscreen-active > .admin-map-search-workspace { padding-block: 5px; }
  #page-map.admin-map-fullscreen-active .admin-map-search-feedback { max-height: min(52dvh, 260px); }
}

@media (pointer: coarse) {
  .geodata-map .maplibregl-popup-close-button,
  .geodata-map .maplibregl-ctrl-group button { width: 44px; height: 44px; }
  .geodata-layer-control summary,
  .screen-geodata-plot .geodata-layer-control summary,
  .geodata-layer-toggle,
  .screen-geodata-plot .geodata-layer-toggle,
  .geodata-event-list summary,
  .screen-geodata-plot .geodata-event-list summary { min-height: 44px; }
  .geodata-event-popup a { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; }
}

@media (prefers-reduced-motion: reduce) {
  .admin-geodata-loading > span { animation: none; }
}

.geodata-map-amap-canvas .amap-container,
.geodata-map-amap-canvas .amap-maps { width: 100%; height: 100%; }
.geodata-map-amap-canvas .amap-copyright,
.geodata-map-amap-canvas .amap-logo { opacity: .72; }

.geodata-map-frame-host {
  min-width: 0;
  position: relative;
  overflow: hidden;
  background: #050e16;
}

.geodata-map-frame {
  width: 100%;
  height: 100%;
  min-height: inherit;
  display: block;
  border: 0;
  background: #050e16;
  color-scheme: dark;
}

.amap-operational-marker {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 7px 10px;
  border: 1px solid rgba(118, 224, 238, .42);
  border-radius: 999px;
  background: rgba(6, 20, 28, .94);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .34), inset 0 0 0 1px rgba(255, 255, 255, .025);
  color: #e6fbff;
  font: 650 11px/1.2 var(--font-sans);
  white-space: nowrap;
  cursor: pointer;
}
.amap-operational-marker:hover,
.amap-operational-marker:focus-visible { border-color: #73e8f2; outline: 2px solid rgba(56, 189, 248, .35); outline-offset: 2px; }
.amap-operational-marker .amap-operational-dot { width: 8px; height: 8px; border-radius: 50%; background: #38bdf8; box-shadow: 0 0 0 4px rgba(56, 189, 248, .16); }
.amap-operational-marker.vehicle.green .amap-operational-dot { background: #22c77a; box-shadow: 0 0 0 4px rgba(34, 199, 122, .16); }
.amap-operational-marker.vehicle.amber .amap-operational-dot { background: #f4c84a; box-shadow: 0 0 0 4px rgba(244, 200, 74, .16); }
.amap-operational-marker.weather { min-width: 72px; align-items: baseline; border-radius: 12px; border-color: rgba(244, 200, 74, .42); }
.amap-operational-marker.weather b { color: #ffd96a; font: 750 15px/1 var(--font-mono); }
.amap-operational-marker.weather span { max-width: 128px; overflow: hidden; color: #f4edce; text-overflow: ellipsis; }

.amap-selected-place-marker {
  position: relative;
  width: 38px;
  min-width: 38px;
  height: 50px;
  min-height: 50px;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.amap-selected-place-marker .amap-selected-place-pin {
  position: absolute;
  inset: 0 auto auto 0;
  width: 38px;
  height: 50px;
  overflow: visible;
  filter: drop-shadow(0 8px 10px rgba(0, 0, 0, .42));
}
.amap-selected-place-marker .amap-selected-place-pin::after {
  content: "";
  position: absolute;
  z-index: -1;
  left: 5px;
  bottom: 0;
  width: 28px;
  height: 10px;
  border: 1px solid rgba(115, 232, 242, .72);
  border-radius: 50%;
  background: rgba(56, 189, 248, .18);
  box-shadow: 0 0 0 5px rgba(56, 189, 248, .08);
}
.amap-selected-place-marker .amap-selected-place-pin-head {
  position: absolute;
  left: 6px;
  top: 1px;
  width: 27px;
  height: 27px;
  overflow: visible;
  border: 2px solid #dffcff;
  border-radius: 50% 50% 50% 0;
  background: #14b8c8;
  box-shadow: 0 0 0 4px rgba(56, 189, 248, .2);
  transform: rotate(-45deg);
}
.amap-selected-place-marker .amap-selected-place-pin-core {
  position: absolute;
  left: 14px;
  top: 9px;
  width: 10px;
  height: 10px;
  overflow: visible;
  border: 2px solid rgba(4, 19, 27, .76);
  border-radius: 50%;
  background: #effdff;
}
.amap-selected-place-marker .amap-selected-place-copy {
  position: absolute;
  left: 44px;
  bottom: 9px;
  width: max-content;
  max-width: min(240px, calc(100vw - 118px));
  min-width: 88px;
  display: grid;
  gap: 2px;
  padding: 7px 10px;
  overflow: hidden;
  border: 1px solid rgba(115, 232, 242, .62);
  border-radius: 10px;
  background: rgba(5, 19, 27, .96);
  box-shadow: 0 8px 24px rgba(0, 0, 0, .4), inset 0 0 0 1px rgba(255, 255, 255, .03);
  color: #e9fcff;
  text-align: left;
}
.amap-selected-place-marker .amap-selected-place-copy b,
.amap-operational-marker.weather .amap-selected-place-copy b {
  overflow: hidden;
  color: #f2fdff;
  font: 700 11px/1.3 var(--font-sans);
  text-overflow: ellipsis;
}
.amap-selected-place-marker .amap-selected-place-copy small {
  overflow: hidden;
  color: #8fcad3;
  font: 500 9px/1.3 var(--font-sans);
  text-overflow: ellipsis;
}
.amap-selected-place-marker:hover,
.amap-selected-place-marker:focus-visible {
  border: 0;
  outline: 2px solid rgba(115, 232, 242, .54);
  outline-offset: 4px;
}

.amap-native-navigation {
  position: absolute;
  z-index: 540;
  inset: 12px 12px auto auto;
  display: grid;
  justify-items: end;
  gap: 8px;
  color: #dff8fb;
  font-family: var(--font-mono);
  pointer-events: none;
}
.amap-native-navigation-buttons {
  display: grid;
  overflow: hidden;
  border: 1px solid rgba(126, 220, 236, .3);
  border-radius: 10px;
  background: rgba(5, 16, 23, .94);
  box-shadow: 0 12px 28px rgba(0, 0, 0, .3);
  pointer-events: auto;
  backdrop-filter: blur(10px);
}
.amap-native-navigation-buttons button {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 0;
  border-bottom: 1px solid rgba(126, 220, 236, .18);
  background: transparent;
  color: #e7fbff;
  font: 500 23px/1 var(--font-sans);
  cursor: pointer;
}
.amap-native-navigation-buttons button:last-child { border-bottom: 0; }
.amap-native-navigation-buttons button:hover { background: rgba(56, 189, 248, .14); }
.amap-native-navigation-buttons button:focus-visible {
  position: relative;
  z-index: 1;
  outline: 2px solid #73e8f2;
  outline-offset: -3px;
}
.amap-native-scale {
  min-width: 76px;
  display: grid;
  justify-items: end;
  gap: 3px;
  padding: 5px 7px 6px;
  border: 1px solid rgba(126, 220, 236, .24);
  border-radius: 8px;
  background: rgba(5, 16, 23, .9);
  box-shadow: 0 10px 24px rgba(0, 0, 0, .26);
  pointer-events: auto;
  backdrop-filter: blur(8px);
}
.amap-native-scale span {
  height: 5px;
  min-width: 36px;
  max-width: 88px;
  border: 1px solid #dff8fb;
  border-top: 0;
}
.amap-native-scale b { color: #dff8fb; font: 600 9px/1 var(--font-mono); }

.amap-layer-control {
  position: absolute;
  z-index: 520;
  inset: 12px auto auto 12px;
  width: min(164px, calc(100% - 84px));
  display: grid;
  gap: 5px;
  padding: 9px;
  border: 1px solid rgba(126, 220, 236, .26);
  border-radius: var(--r-sm);
  background: rgba(5, 16, 23, .92);
  box-shadow: 0 14px 30px rgba(0, 0, 0, .28);
  backdrop-filter: blur(10px);
}
.amap-layer-control > b { padding: 2px 4px 5px; color: #9bb9c3; font-size: 10px; letter-spacing: .08em; }
.amap-layer-control button {
  min-height: 34px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 6px 8px;
  border: 1px solid rgba(126, 195, 210, .12);
  border-radius: var(--r-xs);
  background: rgba(12, 36, 48, .72);
  color: #d9eef2;
  font: 600 10px/1 var(--font-sans);
  cursor: pointer;
}
.amap-layer-control button[aria-pressed="false"] { opacity: .56; }
.amap-layer-control button:disabled { opacity: .34; cursor: default; }
.amap-layer-control button b { color: #79d8e7; font: 650 10px/1 var(--font-mono); }

@media (max-width: 600px) {
  .amap-native-navigation { inset: 8px 8px auto auto; }
  .amap-native-navigation-buttons button { width: 44px; height: 44px; }
  .amap-layer-control { inset: 8px auto auto 8px; width: 140px; padding: 7px; }
  .amap-layer-control button { min-height: 44px; }
  .amap-operational-marker span { max-width: 92px; overflow: hidden; text-overflow: ellipsis; }
  .amap-operational-marker.weather { min-width: 60px; padding-inline: 8px; }
  .amap-operational-marker.weather span { max-width: 76px; }
  .amap-selected-place-marker .amap-selected-place-copy { max-width: min(164px, calc(100vw - 112px)); }
}

@media (pointer: coarse) {
  .amap-selected-place-marker { width: 44px; min-width: 44px; height: 52px; min-height: 52px; }
  .amap-selected-place-marker .amap-selected-place-pin { left: 3px; }
  .amap-selected-place-marker .amap-selected-place-copy { left: 47px; min-height: 44px; align-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .amap-selected-place-marker,
  .amap-selected-place-marker .amap-selected-place-pin { transition: none; }
}
