/* Тёмная тема и общие стили для крупных «телефонных» интерфейсов. */
.bg-app {
  background:
    radial-gradient(1200px 600px at 50% -10%, #1e2a4a 0%, transparent 60%),
    #0b1020;
  background-attachment: fixed;
}

.bg-card {
  background: rgba(20, 27, 48, 0.85);
  backdrop-filter: blur(6px);
}

/* Крупные кнопки фаз ведущего и действий игрока. */
.btn-big {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1.1rem 1rem;
  border-radius: 1rem;
  font-size: 1.125rem;
  font-weight: 800;
  transition: transform 0.06s ease, filter 0.15s ease;
  line-height: 1.1;
  text-align: center;
}
.btn-big:active {
  transform: scale(0.98);
}
.btn-big:disabled {
  opacity: 0.4;
  pointer-events: none;
}

/* Акценты карточек ролей. */
.accent-student {
  background: linear-gradient(160deg, #0f3d2e, #114d3a);
  border: 1px solid #1f7a5c;
}
.accent-geo {
  background: linear-gradient(160deg, #4a1530, #5e1b3d);
  border: 1px solid #a33168;
}

/* Экран сна — приглушённый. */
.screen-sleep {
  background: linear-gradient(160deg, #0a0f22, #060913);
}

/* Анимация пульсации для ожидания. */
@keyframes pulse-soft {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.55; }
}
.pulse-soft { animation: pulse-soft 2s ease-in-out infinite; }

/* Большой код комнаты. */
.room-code {
  letter-spacing: 0.35em;
  font-variant-numeric: tabular-nums;
}

* { -webkit-tap-highlight-color: transparent; }
