@layer components {
  /* Festival "official map" tab — Leaflet image overlay viewer.
   * Lives inside .group-map-page (flex column), so flex:1 fills the
   * remaining viewport between the tab strip and bottom nav inset. */

  .festival-map {
    position: relative;
    flex: 1;
    min-height: 0;
    background: var(--color-canvas);
  }

  .festival-map__canvas {
    width: 100%;
    height: 100%;
    background: var(--color-canvas);
  }

  /* Empty state when no map has been uploaded yet. */

  .festival-map--empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: var(--block-space-l) var(--inline-space-l);
    text-align: center;
    color: var(--color-ink-muted);
  }

  .festival-map__empty-title {
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-ink);
    margin: 0;
  }

  .festival-map__empty-body {
    font-size: 0.875rem;
    margin: 0;
    max-width: 28ch;
  }
}
