.map-view-tabs{display:flex;gap:6px;padding:5px;background:#edf3fc;border-radius:12px;margin-bottom:12px;width:max-content}.map-view-tab{border:0;background:transparent;color:#53637b;border-radius:9px;padding:9px 15px;font:inherit;font-size:13px;font-weight:750;cursor:pointer}.map-view-tab.active{background:#fff;color:var(--blue);box-shadow:0 2px 9px rgba(30,58,105,.12)}
.metro-scheme-shell{position:relative;height:min(72vh,780px);min-height:560px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#e9f4f6}.metro-scheme-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}.metro-scheme-viewport.dragging{cursor:grabbing}.metro-scheme-canvas{position:absolute;left:0;top:0;width:2880px;height:3600px;transform-origin:0 0;will-change:transform;background:#e9f4f6 url('assets/moscow-metro-scheme-2024-sharp.webp') 0 0/2880px 3600px no-repeat}.metro-scheme-canvas #metroSchemeSvg{display:none}.metro-scheme-grid{fill:url(#metroGrid)}
.metro-vector-host{position:absolute;inset:0;z-index:2;background:#eef8f9;overflow:hidden}.metro-vector-host+.metro-scheme-canvas,.metro-vector-host~.metro-scheme-canvas{display:none}.metro-vector-host svg{display:block;width:100%;height:100%;font-family:Arial,sans-serif;cursor:grab}.metro-vector-host svg.drag{cursor:grabbing}.metro-vector-host .moscow_metro_map__station{cursor:pointer;outline:none}.metro-vector-host .moscow_metro_map__station .moscow_metro_map__substrate{fill:transparent;stroke:transparent;stroke-width:4px;stroke-linejoin:round;transition:fill .14s,stroke .14s}.metro-vector-host .moscow_metro_map__station .moscow_metro_map__area{fill:transparent;stroke:transparent;stroke-width:24px;pointer-events:all}.metro-vector-host .moscow_metro_map__station text{fill:#17243a;font-size:9.5px!important;font-weight:500;letter-spacing:-.08px;paint-order:normal;stroke:none;pointer-events:none}.metro-vector-host .moscow_metro_map__station:hover .moscow_metro_map__substrate,.metro-vector-host .moscow_metro_map__station:focus .moscow_metro_map__substrate{fill:#fff;stroke:#fff}.metro-vector-host .moscow_metro_map__station:hover text,.metro-vector-host .moscow_metro_map__station:focus text{font-weight:700;paint-order:stroke;stroke:#fff;stroke-width:2px}.metro-vector-host .moscow_metro_map__station.selected .moscow_metro_map__substrate{fill:#c8f5d6;stroke:#c8f5d6}.metro-vector-host .moscow_metro_map__station.selected text{font-weight:700;paint-order:stroke;stroke:#c8f5d6;stroke-width:2px}.metro-vector-host .moscow_metro_map__check{opacity:0;pointer-events:none;transition:opacity .16s}.metro-vector-host .moscow_metro_map__check.selected{opacity:1}.metro-vector-host~.metro-scheme-canvas{visibility:hidden}
.metro-vector-host .moscow_metro_map__station.metro-label-collapsed text{opacity:0;transition:opacity .12s}.metro-vector-host .moscow_metro_map__station.metro-label-collapsed:hover text,.metro-vector-host .moscow_metro_map__station.metro-label-collapsed:focus text,.metro-vector-host .moscow_metro_map__station.metro-label-collapsed.selected text{opacity:1}
.metro-vector-host .metro-direct-hitbox{fill:rgba(255,255,255,.001);stroke:transparent;pointer-events:all;cursor:pointer}.metro-vector-host .moscow_metro_map__station:hover .metro-direct-hitbox,.metro-vector-host .moscow_metro_map__station:focus .metro-direct-hitbox{fill:rgba(255,255,255,.72);stroke:#1769ff;stroke-width:1.5px}.metro-vector-host .moscow_metro_map__station.selected .metro-direct-hitbox{fill:rgba(199,245,214,.9);stroke:#18a957;stroke-width:2px}
.metro-html-hit-layer{position:absolute;inset:0;z-index:5;pointer-events:none}.metro-html-hit{position:absolute;pointer-events:auto;border:1px solid transparent;border-radius:6px;background:transparent;cursor:pointer}.metro-html-hit:hover,.metro-html-hit:focus-visible{border-color:#1769ff;background:rgba(255,255,255,.58);outline:none}.metro-html-hit.selected{border-color:#18a957;background:rgba(199,245,214,.35)}
.metro-scheme-line-outline{fill:none;stroke:#fff;stroke-width:13;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:stroke-width .18s}.metro-scheme-line{fill:none;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity .16s,stroke-width .18s}.metro-scheme-line:hover{opacity:.72}.metro-scheme-transfer{stroke:#aeb9c8;stroke-width:5;stroke-linecap:round;vector-effect:non-scaling-stroke}.metro-scheme-station{cursor:pointer}.metro-scheme-station .station-hit{fill:transparent;stroke:none;pointer-events:all}.metro-scheme-station .station-dot{fill:#fff;stroke:var(--metro-color);stroke-width:5;vector-effect:non-scaling-stroke;transition:r .14s,filter .14s;pointer-events:none}.metro-scheme-station:hover .station-dot{r:10;filter:drop-shadow(0 2px 3px rgba(15,32,57,.35))}.metro-scheme-station.selected .station-dot{fill:var(--blue);stroke:#fff;stroke-width:4;filter:drop-shadow(0 0 5px var(--blue))}.metro-scheme-station text{font:600 16px Arial,sans-serif;fill:#1b2a41;paint-order:stroke;stroke:#f7fbff;stroke-width:5;stroke-linejoin:round;pointer-events:none;opacity:0;transition:opacity .15s}.metro-scheme-canvas.detail-medium .metro-scheme-station.major text,.metro-scheme-canvas.detail-full .metro-scheme-station text,.metro-scheme-station:hover text,.metro-scheme-station.selected text{opacity:1}.metro-scheme-canvas.overview .metro-scheme-line{stroke-width:4}.metro-scheme-canvas.overview .metro-scheme-line-outline{stroke-width:8}.metro-scheme-canvas.overview .metro-scheme-transfer{stroke-width:3}.metro-scheme-canvas.overview .station-dot{r:5}.metro-scheme-station .line-number{font-size:12px;font-weight:800;fill:#fff;stroke:none}.metro-scheme-apartment{fill:#1769ff;stroke:#fff;stroke-width:5;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 4px rgba(23,105,255,.4))}
.metro-scheme-tools{position:absolute;right:12px;top:12px;display:grid;gap:6px;z-index:3}.metro-scheme-tools button{width:38px;height:38px;border:1px solid #d7e0ec;background:#fff;color:#263953;border-radius:9px;font-size:20px;font-weight:700;box-shadow:0 3px 10px rgba(24,48,84,.12);cursor:pointer}.metro-scheme-note{position:absolute;left:12px;bottom:12px;z-index:3;background:rgba(255,255,255,.92);border:1px solid #dce5f0;border-radius:10px;padding:8px 11px;color:#52627a;font-size:12px;box-shadow:0 3px 12px rgba(24,48,84,.09)}.metro-scheme-legend{position:absolute;left:12px;top:12px;z-index:3;max-height:150px;max-width:235px;overflow:auto;background:rgba(255,255,255,.94);border:1px solid #dce5f0;border-radius:11px;padding:8px}.metro-scheme-legend button{display:flex;width:100%;align-items:center;gap:7px;border:0;background:transparent;padding:5px 6px;border-radius:7px;color:#293a53;font-size:11px;text-align:left;cursor:pointer}.metro-scheme-legend button:hover{background:#edf4ff}.metro-scheme-legend i{width:18px;height:5px;border-radius:4px;flex:0 0 auto}
.metro-scheme-shell:fullscreen{width:100vw;height:100vh;min-height:100vh;border:0;border-radius:0}.metro-scheme-shell:fullscreen .metro-scheme-tools{top:18px;right:18px}
#metroSchemeView{grid-template-columns:minmax(0,1fr)}#metroSchemeView>.map-results{display:none}
#metroSchemeView[hidden],#cityMapView[hidden]{display:none!important}
#mapModal .map-view-tabs{position:sticky;top:0;z-index:8;width:min(520px,100%);margin:0 auto 14px;padding:5px;border:1px solid #d9e5f5;border-radius:13px;background:#eef4fc;box-shadow:0 5px 16px rgba(20,51,91,.08)}#mapModal .map-view-tab{min-height:44px;font-weight:800}#mapModal .map-view-tab.active{box-shadow:0 3px 10px rgba(23,105,255,.16)}
.metro-scheme-legend{display:none!important}.metro-station-picker-button{position:absolute;left:12px;top:12px;z-index:4;border:0;border-radius:10px;background:#1769ff;color:#fff;padding:11px 15px;font:inherit;font-size:13px;font-weight:800;box-shadow:0 5px 16px rgba(23,105,255,.28);cursor:pointer}.metro-station-picker-button:hover{background:#075ce1}.metro-station-picker-button .picker-count{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:6px;padding:0 5px;border-radius:10px;background:#fff;color:#1769ff;font-size:11px}.metro-scheme-shell:fullscreen .metro-station-picker-button{left:18px;top:18px}
.scheme-picker-overlay{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px;background:rgba(10,24,45,.62);backdrop-filter:blur(5px)}.scheme-picker-panel{width:min(850px,100%);max-height:min(820px,94vh);display:flex;flex-direction:column;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(4,18,40,.32)}.scheme-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;border-bottom:1px solid #e3e9f2}.scheme-picker-head h3{margin:0;font-size:21px}.scheme-picker-close{width:38px;height:38px;border:0;border-radius:10px;background:#eef3fa;font-size:23px;cursor:pointer}.scheme-picker-filters{display:grid;grid-template-columns:220px 1fr;gap:10px;padding:14px 20px}.scheme-picker-filters select,.scheme-picker-filters input{width:100%;min-height:45px;border:1px solid #d8e1ed;border-radius:10px;padding:9px 12px;font:inherit;outline:none}.scheme-picker-chips{display:flex;gap:7px;overflow-x:auto;min-height:48px;padding:5px 20px 12px}.scheme-picker-chip{flex:0 0 auto;border:0;border-radius:17px;padding:7px 10px;background:#eaf2ff;color:#075bcf;font-weight:700}.scheme-picker-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;overflow:auto;padding:8px 20px 18px}.scheme-picker-item{display:flex;align-items:center;gap:9px;min-height:48px;border:1px solid #dce4ef;border-radius:10px;background:#fff;padding:8px 10px;text-align:left;cursor:pointer}.scheme-picker-item:hover{background:#f5f8fc}.scheme-picker-item.selected{border-color:var(--station-color);box-shadow:inset 0 0 0 1px var(--station-color);background:#f5f9ff}.scheme-picker-dot{width:12px;height:12px;border:3px solid var(--station-color);border-radius:50%;background:#fff;flex:0 0 auto}.scheme-picker-item.selected .scheme-picker-dot{background:var(--station-color)}.scheme-picker-copy{min-width:0}.scheme-picker-copy strong,.scheme-picker-copy small{display:block}.scheme-picker-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scheme-picker-copy small{margin-top:2px;color:#68778d;font-size:11px}.scheme-picker-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;border-top:1px solid #e3e9f2}.scheme-picker-actions button{min-height:44px;border-radius:10px;padding:9px 16px;font-weight:800}.scheme-picker-clear{border:0;background:transparent;color:#1769ff}.scheme-picker-apply{border:0;background:#1769ff;color:#fff}.scheme-picker-empty{grid-column:1/-1;padding:30px;text-align:center;color:#69778c}
body.dark .scheme-picker-panel{background:#172235;color:#eef4ff}body.dark .scheme-picker-head,body.dark .scheme-picker-actions{border-color:#34445d}body.dark .scheme-picker-close,body.dark .scheme-picker-item{background:#202e44;color:#eef4ff;border-color:#40516a}body.dark .scheme-picker-item:hover,body.dark .scheme-picker-item.selected{background:#263750}body.dark .scheme-picker-filters select,body.dark .scheme-picker-filters input{background:#202e44;color:#eef4ff;border-color:#40516a}
body.dark .map-view-tabs{background:#202d40}body.dark .map-view-tab{color:#b8c5d7}body.dark .map-view-tab.active{background:#31415a;color:#fff}body.dark .metro-scheme-shell{background:linear-gradient(145deg,#172233,#111b2a)}body.dark .metro-scheme-station text{fill:#f2f6fc;stroke:#172233}body.dark .metro-scheme-line-outline{stroke:#172233}body.dark .metro-scheme-tools button,body.dark .metro-scheme-note,body.dark .metro-scheme-legend{background:rgba(28,41,60,.95);border-color:#40516a;color:#e7edf7}body.dark .metro-scheme-legend button{color:#e7edf7}
@media(max-width:700px){.map-view-tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}.map-view-tab{padding:10px 8px}.metro-scheme-shell{height:min(57vh,480px);min-height:370px;border-radius:13px}.metro-scheme-legend{display:none}.metro-station-picker-button{left:9px;top:9px;padding:9px 12px}.metro-scheme-note{right:58px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.metro-scheme-station text{font-size:18px}.metro-scheme-canvas.detail-medium .metro-scheme-station.major text{opacity:0}.metro-scheme-canvas.detail-full .metro-scheme-station text,.metro-scheme-station:hover text,.metro-scheme-station.selected text{opacity:1}}
@media(max-width:700px){.scheme-picker-overlay{padding:0;place-items:end stretch}.scheme-picker-panel{width:100%;max-height:94vh;border-radius:18px 18px 0 0}.scheme-picker-filters{grid-template-columns:1fr;padding:12px 14px}.scheme-picker-chips{padding-left:14px;padding-right:14px}.scheme-picker-list{grid-template-columns:1fr;padding:6px 14px 14px}.scheme-picker-actions{padding:12px 14px}.scheme-picker-apply{flex:1}}
.scheme-picker-overlay[hidden]{display:none!important}
.metro-vector-host svg{user-select:none!important;-webkit-user-select:none!important}.metro-html-hit-layer,.metro-html-hit{display:none!important}

#mapModal .station-choice-grid[hidden]{display:none!important}#mapModal .selected-stations:not(:has(.selected-chip)){display:none!important}
#mapModal .metro-vector-host .moscow_metro_map__station text{font-size:11px!important;font-weight:550}
.metro-more-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:42px;margin:0 0 10px;padding:9px 13px;border:1px solid #d7e3f2;border-radius:9px;background:#f3f7fc;color:#31506f;font:inherit;font-size:13px;font-weight:750;cursor:pointer}.metro-more-toggle b{font-size:18px;line-height:1;transition:transform .18s}.metro-more-toggle.open b{transform:rotate(180deg)}.metro-collapsible-controls{display:none}.metro-collapsible-controls.open{display:block}#mapModal .selected-stations:empty{display:none}
.metro-more-toggle[hidden]{display:none!important}
@media(min-width:701px){#mapModal .russia-map-panel{width:min(1500px,calc(100vw - 24px));max-width:none;height:min(94vh,980px);max-height:94vh}#mapModal .map-body{display:flex;min-height:0;flex:1;flex-direction:column;padding:12px 16px 16px}#mapModal #metroSchemeView{min-height:0;flex:1}#mapModal .metro-scheme-shell{height:100%;min-height:620px}#mapModal .selected-stations{min-height:0;margin-bottom:9px}}
#mapModal #showSelectedButton{position:sticky;right:0;bottom:10px;display:block;width:max-content!important;min-width:180px;max-width:100%;margin:10px 0 0 auto!important;padding:12px 20px;align-self:flex-end;z-index:9;box-shadow:0 7px 20px rgba(32,78,126,.2)}
#mapModal .close-button{display:grid!important;place-items:center;padding:0!important;font-size:0!important;line-height:1!important}#mapModal .close-button:before{content:'×';display:block;font:400 25px/1 Arial,sans-serif;transform:translateY(-1px)}
.metro-bottom-actions{position:sticky;right:0;bottom:10px;z-index:9;display:flex;justify-content:flex-end;align-items:center;gap:9px;width:100%;margin-top:10px}.metro-bottom-actions #showSelectedButton{position:static;margin:0!important}.metro-reset-button{min-height:43px;padding:10px 16px;border:1px solid #cfdaea;border-radius:9px;background:#fff;color:#31506f;font:inherit;font-size:13px;font-weight:750;cursor:pointer}.metro-reset-button:hover{background:#f1f5fa}.area-embed .metro-reset-button{display:none!important}
.metro-vector-host,.metro-vector-host svg{touch-action:none;overscroll-behavior:contain}.metro-vector-host.touch-dragging,.metro-vector-host.touch-dragging svg{cursor:grabbing!important}

/* Compact disclosure: keep the arrow beside the label. */
#mapModal .metro-more-toggle{
  display:inline-flex!important;
  box-sizing:border-box;
  flex:0 0 auto;
  width:max-content!important;
  min-width:max-content;
  max-width:100%;
  min-height:34px;
  margin-right:auto;
  padding:7px 10px;
  border-radius:4px;
  align-self:flex-start;
  justify-content:flex-start;
  gap:7px;
  overflow:visible;
  white-space:nowrap;
}
#mapModal .metro-more-toggle span{flex:0 0 auto}
#mapModal .metro-more-toggle b{
  display:none!important;
}

#mapModal .metro-bottom-actions #showSelectedButton{
  width:auto!important;
  min-width:130px!important;
  min-height:40px!important;
  padding:9px 15px!important;
  font-size:14px!important;
  border-radius:7px!important;
}

/* Disable inaccurate direct clicks on vector metro map; use station picker list. */
.metro-vector-host .moscow_metro_map__station{pointer-events:none!important}
.metro-vector-host svg path,.metro-vector-host svg circle,.metro-vector-host svg text{pointer-events:none!important}


