:root {
  --xe-ink: #17202a;
  --xe-muted: #5c6670;
  --xe-line: #d9e2ec;
  --xe-primary: #0f766e;
  --xe-primary-dark: #115e59;
  --xe-accent: #c2410c;
  --xe-bg: #f7fafc;
}

body {
  background: var(--xe-bg);
  color: var(--xe-ink);
}

.navbar-brand {
  font-weight: 800;
  letter-spacing: 0;
}

.hero-band {
  background: linear-gradient(135deg, #12343b, #0f766e 58%, #eab308);
  color: #fff;
  min-height: 58vh;
}

.section-title {
  font-size: clamp(1.4rem, 2vw, 2rem);
}

.seat-map {
  background: #fff;
  border: 1px solid var(--xe-line);
  min-height: 360px;
  touch-action: manipulation;
}

.seat {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 2px solid var(--xe-line);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  margin: 4px;
}

.seat.available { background: #ecfdf5; border-color: #10b981; }
.seat.selected { background: #0f766e; color: #fff; border-color: #0f766e; }
.seat.held { background: #fef3c7; border-color: #f59e0b; }
.seat.sold { background: #e5e7eb; color: #6b7280; border-color: #9ca3af; }
.seat.blocked { background: #fee2e2; border-color: #ef4444; }

.scanner-result {
  min-height: 180px;
  display: grid;
  place-items: center;
  font-size: 2rem;
  font-weight: 800;
}

.scanner-result.valid { background: #dcfce7; color: #166534; }
.scanner-result.warning { background: #fef9c3; color: #854d0e; }
.scanner-result.invalid { background: #fee2e2; color: #991b1b; }
