/**
 * Helau Tickets - Saalplan Vektor & Interaktivitäts-Styles
 */

/* Saal-Geometrie */
.ht-hall-wall {
  fill: #ffffff;
  stroke: #495057;
  stroke-width: 3.5px;
}

.ht-door,
.ht-door-leaf {
  stroke: #495057;
  stroke-width: 2px;
  fill: none;
}

.ht-door-arc {
  stroke: #94a3b8;
  stroke-width: 1.2px;
  stroke-dasharray: 4, 3;
  fill: none;
}

.ht-door-label {
  font-family: var(--ht-font, sans-serif);
  font-size: 10px;
  font-weight: 700;
  fill: #166534;
  text-anchor: middle;
  letter-spacing: 0.3px;
}

/* Bühne */
.ht-stage-bg {
  fill: #f0f4f8;
  stroke: #607274;
  stroke-width: 2.5px;
}

.ht-stage-border {
  fill: #dbe4ee;
  stroke: #4a627a;
  stroke-width: 2px;
}

.ht-stage-plank {
  stroke: #b0c4de;
  stroke-width: 1px;
}

.ht-stage-arrow {
  fill: #4a627a;
  stroke: #4a627a;
  stroke-width: 1.5px;
}

.ht-stage-text {
  font-family: var(--ht-font);
  font-size: 13px;
  font-weight: 800;
  fill: #2c3e50;
  text-anchor: middle;
  letter-spacing: 0.5px;
}

.ht-stage-subtext {
  font-family: var(--ht-font);
  font-size: 10px;
  fill: #607274;
  text-anchor: middle;
}

/* Technik / Crew Schraffur */
.ht-crew-area {
  fill: url(#diagonal-stripe-pattern);
  stroke: #868e96;
  stroke-width: 1.5px;
}

.ht-crew-area-text {
  font-family: var(--ht-font);
  font-size: 11px;
  font-weight: 700;
  fill: #495057;
  text-anchor: middle;
}

/* Banner Samstag / Freitag */
.ht-banner-rect {
  fill: #fffa65;
  stroke: #ff9f1a;
  stroke-width: 1.5px;
  rx: 4px;
}

.ht-banner-text {
  font-family: var(--ht-font);
  font-size: 20px;
  font-weight: 900;
  fill: #e63946;
  text-anchor: middle;
}

/* Tische */
.ht-table-shape {
  rx: 3px;
  transition: opacity 0.2s ease;
}

/* Schwarze Kontur = Normaler Sitztisch */
.table-contour-black .ht-table-shape {
  fill: #fca311;
  stroke: #111111;
  stroke-width: 2.5px;
}

/* Rote Kontur = Stehtisch-Variante */
.table-contour-red .ht-table-shape {
  fill: #fca311;
  stroke: #d90429;
  stroke-width: 3px;
}

/* Blaue Kontur = Bühnencrew */
.table-contour-blue .ht-table-shape {
  fill: url(#crew-grid-pattern);
  stroke: #0077b6;
  stroke-width: 2.5px;
}

.ht-table-label {
  font-family: var(--ht-font);
  font-weight: 800;
  font-size: 11px;
  fill: #000000;
  text-anchor: middle;
  dominant-baseline: central;
  pointer-events: none;
}

/* Sitze & Stühle */
.ht-seat-group {
  transition: transform 0.15s ease, filter 0.15s ease;
}

.ht-seat-group .seat-body {
  stroke-width: 1.2px;
  transition: fill 0.15s ease, stroke 0.15s ease, stroke-width 0.15s ease;
}

.ht-seat-group .seat-back {
  fill: none;
  stroke-width: 1.4px;
  transition: stroke 0.15s ease;
}

.ht-seat-group .seat-label {
  font-family: var(--ht-font);
  font-size: 9.5px;
  font-weight: 800;
  text-anchor: middle;
  dominant-baseline: central;
  pointer-events: none;
  user-select: none;
}

/* 1. FREIE PLÄTZE (WEISS, KLICKBAR) */
.ht-seat-group.status-free {
  cursor: pointer;
}

.ht-seat-group.status-free .seat-body {
  fill: #ffffff;
  stroke: #212529;
}

.ht-seat-group.status-free .seat-back {
  stroke: #212529;
}

.ht-seat-group.status-free .seat-label {
  fill: #111111;
}

.ht-seat-group.status-free:hover .seat-body {
  fill: #eff6ff;
  stroke: #1d4ed8;
  stroke-width: 2px;
}

.ht-seat-group.status-free:hover .seat-back {
  stroke: #1d4ed8;
  stroke-width: 2px;
}

/* 2. BELEGTE PLÄTZE (GELB / GOLD, DEAKTIVIERT) */
.ht-seat-group.status-occupied {
  cursor: not-allowed;
}

.ht-seat-group.status-occupied .seat-body {
  fill: #ffb703;
  stroke: #c77700;
}

.ht-seat-group.status-occupied .seat-back {
  stroke: #c77700;
}

.ht-seat-group.status-occupied .seat-label {
  fill: #212529;
}

/* 3. AUSGEWÄHLTE PLÄTZE (GRÜN, KLAR & SCHARF) */
.ht-seat-group.status-selected {
  cursor: pointer;
}

.ht-seat-group.status-selected .seat-body {
  fill: #10b981;
  stroke: #065f46;
  stroke-width: 2.2px;
}

.ht-seat-group.status-selected .seat-back {
  stroke: #065f46;
  stroke-width: 2.2px;
}

.ht-seat-group.status-selected .seat-label {
  fill: #ffffff;
}

/* 4. BÜHNENCREW (BLAU KARIERT / GESPERRT) */
.ht-seat-group.status-crew {
  cursor: not-allowed;
}

.ht-seat-group.status-crew .seat-body {
  fill: #90e0ef;
  stroke: #0077b6;
}

.ht-seat-group.status-crew .seat-back {
  stroke: #0077b6;
}

.ht-seat-group.status-crew .seat-label {
  fill: #005080;
}

/* Floating Tooltip */
.ht-tooltip {
  position: absolute;
  pointer-events: none;
  background: rgba(15, 23, 42, 0.92);
  backdrop-filter: blur(4px);
  color: white;
  padding: 8px 12px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.4;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  border: 1px solid rgba(255, 255, 255, 0.15);
  z-index: 500;
  display: none;
  transform: translate(-50%, -120%);
  white-space: nowrap;
}

.ht-tooltip-title {
  font-weight: 800;
  font-size: 13px;
  color: #fbbf24;
  margin-bottom: 2px;
}

.ht-tooltip-badge {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 1px 6px;
  border-radius: 4px;
  margin-top: 3px;
  text-transform: uppercase;
}

.ht-tooltip-badge.badge-free {
  background: #10b981;
  color: white;
}

.ht-tooltip-badge.badge-occupied {
  background: #ffb703;
  color: #111;
}

.ht-tooltip-badge.badge-selected {
  background: #3b82f6;
  color: white;
}

.ht-tooltip-badge.badge-crew {
  background: #0ea5e9;
  color: white;
}
