/* Зал (design §4.2) */
.hall-header { display: grid; gap: calc(var(--space) * 2); }

.lamp-zone {
  display: grid;
  justify-items: center;
  gap: calc(var(--space) * 3);
  padding: calc(var(--space) * 10) 0 calc(var(--space) * 8);
}
.lamp-btn {
  width: var(--lamp-size);
  height: var(--lamp-size);
  border-radius: var(--r-full);
  border: none;
  background: linear-gradient(180deg, var(--lamp), var(--lamp-deep));
  box-shadow: var(--glow-lamp);
  color: var(--on-lamp);
  cursor: pointer;
  display: grid;
  place-items: center;
  animation: lamp-breathe 4s ease-in-out infinite;
  transition: transform var(--t-fast) var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.lamp-btn:active { transform: scale(.95); animation-play-state: paused; }
.lamp-btn svg { width: 44px; height: 44px; }
.lamp-btn:disabled { opacity: .5; animation: none; cursor: default; }
@keyframes lamp-breathe {
  0%, 100% { transform: scale(1); box-shadow: 0 8px 28px rgba(232, 163, 61, .28); }
  50% { transform: scale(1.02); box-shadow: 0 10px 36px rgba(232, 163, 61, .38); }
}

.empty-queue {
  display: grid;
  justify-items: center;
  gap: calc(var(--space) * 3);
  padding: calc(var(--space) * 8) 0;
  text-align: center;
}
.empty-queue svg { width: 72px; height: 72px; color: var(--text-faint); animation: reel-spin 6s linear infinite; }
@keyframes reel-spin { to { transform: rotate(360deg); } }

.recent-section { display: grid; gap: calc(var(--space) * 3); margin-top: calc(var(--space) * 6); }
.recent-list { display: grid; gap: calc(var(--space) * 2); }

.offline-banner {
  background: var(--surface-2);
  border: 1px solid var(--line);
  border-radius: var(--r-m);
  padding: calc(var(--space) * 3) calc(var(--space) * 4);
  font: var(--type-caption);
  color: var(--text-dim);
  margin-bottom: calc(var(--space) * 4);
}

/* «Гаснет свет» перед сеансом */
.lights-off {
  position: fixed;
  inset: 0;
  background: #000;
  opacity: 0;
  pointer-events: none;
  transition: opacity 300ms ease;
  z-index: 80;
}
.lights-off.on { opacity: 1; pointer-events: auto; }
