.taxi-siena-map-app {
  --taxi-siena-red: #911736;
  --taxi-siena-red-soft: rgba(145, 23, 54, 0.1);
  --taxi-siena-red-strong-soft: rgba(145, 23, 54, 0.16);
  --taxi-siena-ink: #23181c;
  --taxi-siena-muted: #6d5560;
  --taxi-siena-shadow-soft: rgba(145, 23, 54, 0.22);
  --taxi-siena-shadow-strong: rgba(145, 23, 54, 0.24);
  --taxi-siena-map-bg: #f3f0f1;
  --taxi-siena-tab-bg: #ffffff;
  --taxi-siena-tab-active-bg: #f4f4f4;
  color: var(--taxi-siena-ink);
}

.taxi-siena-map-shell {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  overflow: hidden;
  background:
    radial-gradient(circle at top left, var(--taxi-siena-red-soft), transparent 28%),
    linear-gradient(135deg, #fff8fa 0%, #ffffff 48%, #fff5f7 100%);
  box-shadow: 0 26px 60px rgba(35, 24, 28, 0.12);
}

.taxi-siena-map-topbar {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  padding: 24px 24px 16px;
  background: rgba(255, 255, 255, 0.88);
  backdrop-filter: blur(10px);
}

.taxi-siena-map-topbar-head h2 {
  margin: 12px 0 8px;
  font-size: 28px;
  line-height: 1.05;
}

.taxi-siena-map-topbar-head p {
  margin: 0;
  color: var(--taxi-siena-muted);
  font-size: 15px;
  line-height: 1.5;
}

.taxi-siena-map-topbar-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.taxi-siena-carousel-shell {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 0 16px 16px;
  background: rgba(255, 255, 255, 0.88);
}

.taxi-siena-badge {
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  background: var(--taxi-siena-red-soft);
  color: var(--taxi-siena-red);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.taxi-siena-reset-button {
  appearance: none;
  border: 0;
  padding: 12px 16px;
  background: var(--taxi-siena-red);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.2s ease, opacity 0.2s ease;
  box-shadow: 0 12px 26px var(--taxi-siena-shadow-strong);
}

.taxi-siena-reset-button:hover,
.taxi-siena-reset-button:focus-visible {
  transform: translateY(-1px);
  opacity: 0.94;
}

.taxi-siena-stands-list {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(240px, 300px);
  gap: 12px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 2px 6px;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.taxi-siena-stand-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  min-height: 116px;
  padding: 14px 16px;
  border: 0;
  background: var(--taxi-siena-tab-bg);
  text-align: left;
  color: inherit;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
  scroll-snap-align: start;
}

.taxi-siena-stand-card:hover,
.taxi-siena-stand-card:focus-visible,
.taxi-siena-stand-card.is-active {
  background: var(--taxi-siena-tab-active-bg);
}

.taxi-siena-stand-card.is-featured {
  background: var(--taxi-siena-tab-bg);
}

.taxi-siena-stand-card.is-featured:hover,
.taxi-siena-stand-card.is-featured:focus-visible,
.taxi-siena-stand-card.is-featured.is-active {
  background: var(--taxi-siena-tab-active-bg);
}

.taxi-siena-stand-meta {
  display: grid;
  gap: 4px;
}

.taxi-siena-stand-meta strong {
  font-size: 15px;
  line-height: 1.35;
}

.taxi-siena-stand-meta small {
  color: var(--taxi-siena-muted);
  font-size: 13px;
  line-height: 1.45;
}

.taxi-siena-stand-tag {
  align-self: flex-start;
  padding: 6px 10px;
  background: var(--taxi-siena-red-soft);
  color: var(--taxi-siena-red);
  font-size: 11px;
  font-weight: 700;
}

.taxi-siena-carousel-nav {
  appearance: none;
  width: 42px;
  height: 42px;
  border: 0;
  background: #fff;
  color: var(--taxi-siena-red);
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.taxi-siena-carousel-nav:hover,
.taxi-siena-carousel-nav:focus-visible {
  background: var(--taxi-siena-tab-active-bg);
}

.taxi-siena-map-stage {
  position: relative;
  min-height: var(--taxi-siena-map-height, 640px);
  padding: 16px;
}

.taxi-siena-map-canvas {
  min-height: calc(var(--taxi-siena-map-height, 640px) - 32px);
  height: 100%;
  overflow: hidden;
  background: var(--taxi-siena-map-bg);
}

.taxi-siena-map-canvas .leaflet-tile-pane {
  filter: saturate(0.92) contrast(1.02);
}

.taxi-siena-popup {
  display: grid;
  gap: 4px;
}

.taxi-siena-popup strong {
  color: var(--taxi-siena-red);
  font-size: 15px;
}

.taxi-siena-popup span,
.taxi-siena-popup small {
  color: var(--taxi-siena-muted);
}

.taxi-siena-marker-icon {
  filter: drop-shadow(0 10px 16px var(--taxi-siena-shadow-soft));
}

@media (max-width: 980px) {
  .taxi-siena-map-topbar {
    align-items: flex-start;
    flex-direction: column;
  }

  .taxi-siena-carousel-shell {
    grid-template-columns: 1fr;
  }

  .taxi-siena-carousel-nav {
    display: none;
  }
}

@media (max-width: 640px) {
  .taxi-siena-map-topbar,
  .taxi-siena-carousel-shell,
  .taxi-siena-map-stage {
    padding: 14px;
  }

  .taxi-siena-map-topbar-head h2 {
    font-size: 24px;
  }

  .taxi-siena-stands-list {
    grid-auto-columns: minmax(220px, 82vw);
  }

  .taxi-siena-map-canvas {
    min-height: 460px;
  }
}
