.teh-scheme,
.teh-public-map {
  display: flex;
  flex-direction: column;
  min-height: calc(100dvh - var(--header-h, 76px) - 48px);
  background: var(--bg);
  color: var(--text);
}

.teh-scheme__chips,
.teh-map__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  padding: 8px 16px;
}

.teh-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
  padding: 6px 14px;
  border-radius: var(--radius-pill, 999px);
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text);
  font: inherit;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.teh-chip i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}

.teh-chip.is-on {
  background: var(--accent);
  color: var(--accent-fg);
  border-color: transparent;
}

.teh-scheme__stage,
.teh-public-map .teh-map__stage {
  flex: 1;
  min-height: min(52vh, 560px);
  background: radial-gradient(1200px 560px at 50% 0, var(--surface-2), transparent 62%), var(--bg);
}

.teh-svg {
  width: 100%;
  height: 100%;
  min-height: 360px;
  display: block;
  touch-action: none;
}

.teh-obj {
  fill: var(--surface);
  stroke: var(--border);
}

.teh-obj + text,
.teh-scheme text,
.teh-public-map text {
  fill: var(--text-muted);
  font-size: 12px;
}

.teh-seat.is-on circle {
  filter: brightness(1.25);
}

.teh-scheme__bar,
.teh-map__cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding: 12px 16px calc(14px + env(safe-area-inset-bottom));
  background: var(--card-bg);
  border-top: 1px solid var(--border);
  position: sticky;
  bottom: 0;
}

.teh-map__legend {
  display: flex;
  justify-content: center;
  gap: 16px;
  padding: 8px;
  color: var(--text-muted);
  font-size: 13px;
}

.teh-map__picked {
  list-style: none;
  margin: 0;
  padding: 0 16px 8px;
}

.teh-map__picked li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 6px 0;
  border-bottom: 1px solid var(--border);
}

.teh-map__picked strong {
  margin-left: auto;
}

.teh-seat--sold,
.teh-seat--reserved,
.teh-seat--disabled {
  opacity: 0.45;
  pointer-events: none;
}

@media (max-width: 720px) {
  .teh-scheme__stage,
  .teh-public-map .teh-map__stage {
    min-height: min(50svh, 440px);
  }
}
