/* ─── Global ────────────────────────────────────────────────────────────── */

:root {
  --ppv-red: #dc3545;
  --ppv-dark: #0d0f14;
  --ppv-card: #141720;
  --ppv-border: #2a2d3a;
}

body {
  background-color: var(--ppv-dark);
  color: #d8dde6;
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}

/* ─── Navbar ─────────────────────────────────────────────────────────────── */

.navbar {
  background-color: #0a0c10 !important;
  border-bottom-color: var(--ppv-border) !important;
}

.navbar-brand {
  letter-spacing: 0.02em;
}

/* ─── Cards ──────────────────────────────────────────────────────────────── */

.card {
  background-color: var(--ppv-card) !important;
  border-color: var(--ppv-border) !important;
  border-radius: 10px;
}

.card-header,
.card-footer {
  background-color: rgba(255, 255, 255, 0.02) !important;
}

/* Quick link cards */
.quick-link {
  transition: border-color 0.2s ease, transform 0.15s ease;
  border-radius: 10px;
}
.quick-link:hover {
  border-color: var(--ppv-red) !important;
  transform: translateY(-2px);
}

/* Event cards */
.event-card {
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.event-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 24px rgba(220, 53, 69, 0.15);
}

/* ─── Tables ─────────────────────────────────────────────────────────────── */

.table {
  --bs-table-bg: transparent;
  --bs-table-hover-bg: rgba(255, 255, 255, 0.03);
  border-color: var(--ppv-border);
}

.table td,
.table th {
  border-color: var(--ppv-border);
  vertical-align: middle;
}

/* ─── Forms ──────────────────────────────────────────────────────────────── */

.form-control,
.form-select {
  background-color: #1a1d25;
  color: #d8dde6;
  border-color: var(--ppv-border);
}

.form-control:focus,
.form-select:focus {
  background-color: #1e2230;
  color: #fff;
  border-color: #4a5568;
  box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.2);
}

.form-control::placeholder {
  color: #4a5568;
}

.input-group-text {
  background-color: #1a1d25;
  border-color: var(--ppv-border);
  color: #6c757d;
}

/* ─── Buttons ────────────────────────────────────────────────────────────── */

.btn {
  font-weight: 500;
  border-radius: 6px;
}

.btn-danger {
  background-color: var(--ppv-red);
  border-color: var(--ppv-red);
}

.btn-danger:hover {
  background-color: #bb2d3b;
}

/* ─── Stream selector ────────────────────────────────────────────────────── */

.stream-btn {
  border: none !important;
  border-bottom: 1px solid var(--ppv-border) !important;
  cursor: pointer;
  transition: background-color 0.15s ease;
  padding: 0.75rem 1rem;
}

.stream-btn:last-child {
  border-bottom: none !important;
}

.stream-btn:hover {
  background-color: #1c2030 !important;
  color: #fff !important;
}

.stream-btn.active {
  background-color: #1a1020 !important;
  border-left: 3px solid var(--ppv-red) !important;
  color: #fff !important;
}

/* ─── Video player ───────────────────────────────────────────────────────── */

video {
  display: block;
  background: #000;
}

#player-controls {
  transition: opacity 0.3s;
}

#player-controls.controls-hidden {
  opacity: 0;
  pointer-events: none;
}

/* ─── Status dot ─────────────────────────────────────────────────────────── */

#status-dot.playing {
  background: #28a745 !important;
  animation: pulse 1.8s ease-in-out infinite;
}

#status-dot.error {
  background: #dc3545 !important;
}

#status-dot.loading {
  background: #ffc107 !important;
  animation: pulse 0.8s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

/* ─── Badges ─────────────────────────────────────────────────────────────── */

.badge {
  font-weight: 500;
}

/* ─── Scrollbar ──────────────────────────────────────────────────────────── */

::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: var(--ppv-dark);
}
::-webkit-scrollbar-thumb {
  background: #2a2d3a;
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: #3a3d4a;
}

/* ─── Alerts ─────────────────────────────────────────────────────────────── */

.alert {
  border-radius: 8px;
  border: 1px solid transparent;
}

/* ─── Misc ───────────────────────────────────────────────────────────────── */

.text-truncate {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* List group dark */
.list-group-item-action.bg-dark:focus {
  outline: none;
  background-color: #1c2030 !important;
}
