:root {
  --rx-purple-950: #2a1242;
  --rx-purple-900: #34195b;
  --rx-purple-800: #4c1d85;
  --rx-purple-700: #6d28d9;
  --rx-purple-600: #7c3aed;
  --rx-purple-500: #8b5cf6;
  --rx-purple-300: #c4b5fd;
  --rx-purple-200: #ddd6fe;
  --rx-purple-100: #ede9fe;
  --rx-purple-50: #f7f2ff;
  --rx-text: #24163a;
}

body {
  background: linear-gradient(180deg, #f4edff 0%, #fcf9ff 100%);
  color: var(--rx-text);
}

.app-shell {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.app-shell main {
  flex: 1 0 auto;
}

.app-shell .rodape-site {
  margin-top: auto !important;
}

#loading {
  position: fixed;
  inset: 0;
  background: rgba(42, 18, 66, 0.72);
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(3px);
}

.topo-site {
  background: linear-gradient(90deg, var(--rx-purple-950), var(--rx-purple-700));
}

.topo-site #areaLogado {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.hero-apostas {
  background: radial-gradient(
    circle at top,
    rgba(139, 92, 246, 0.3),
    rgba(42, 18, 66, 0.96)
  );
  color: #fff;
  padding: 42px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.texto-hero {
  opacity: 0.94;
}

.admin-panel,
.meus-torneios-panel,
.card,
.modal-content,
.admin-card {
  border: 0;
  border-radius: 18px;
  box-shadow: 0 10px 30px rgba(61, 31, 95, 0.12);
}

.admin-panel,
.meus-torneios-panel {
  background: #fff;
  padding: 24px;
}

.admin-card {
  background: #fff;
  padding: 18px;
  border: 1px solid #e8ddff;
}

.admin-divider {
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--rx-purple-300), transparent);
}

.admin-lista {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.admin-item {
  background: #fbf8ff;
  border: 1px solid #ebe2ff;
  border-radius: 14px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.admin-item-titulo {
  font-weight: 700;
}

.admin-item-sub {
  font-size: 0.92rem;
  color: #5b4a76;
}

.admin-item-acoes {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.torneio-faixa {
  background: linear-gradient(90deg, #eee5ff, #f8f4ff);
  border: 1px solid #d8c7ff;
  border-radius: 16px;
  padding: 14px 16px;
}

.card {
  border-radius: 16px;
}

.ganhadores-lista {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.ganhador-item {
  padding: 10px 12px;
  background: #faf7ff;
  border: 1px solid #e9deff;
  border-radius: 12px;
}

.secao-loading {
  color: #5b4a76;
  margin-bottom: 16px;
}

.grafico-box {
  background: #fbf8ff;
  border: 1px solid #eadfff;
  border-radius: 14px;
  padding: 12px;
}

.grafico-titulo {
  font-weight: 600;
  margin-bottom: 8px;
}

.rodape-site {
  background: var(--rx-purple-950);
  color: #e8dcff;
}

.btn-primary,
.btn-primary:focus {
  background-color: var(--rx-purple-700);
  border-color: var(--rx-purple-700);
}

.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus-visible {
  background-color: var(--rx-purple-800);
  border-color: var(--rx-purple-800);
  box-shadow: 0 0 0 0.2rem rgba(124, 58, 237, 0.25);
}

.btn-success,
.btn-success:focus {
  background-color: var(--rx-purple-600);
  border-color: var(--rx-purple-600);
}

.btn-success:hover,
.btn-success:active,
.btn-success:focus-visible {
  background-color: var(--rx-purple-700);
  border-color: var(--rx-purple-700);
  box-shadow: 0 0 0 0.2rem rgba(124, 58, 237, 0.25);
}

.btn-danger,
.btn-danger:focus {
  background-color: #7e22ce;
  border-color: #7e22ce;
}

.btn-danger:hover,
.btn-danger:active,
.btn-danger:focus-visible {
  background-color: #6b21a8;
  border-color: #6b21a8;
  box-shadow: 0 0 0 0.2rem rgba(126, 34, 206, 0.25);
}

.btn-warning,
.btn-warning:focus {
  background-color: #ddd6fe;
  border-color: #c4b5fd;
  color: #2a1242;
}

.btn-warning:hover,
.btn-warning:active,
.btn-warning:focus-visible {
  background-color: #c4b5fd;
  border-color: #a78bfa;
  color: #2a1242;
}

.btn-outline-info {
  color: #b79bff;
  border-color: #b79bff;
}

.btn-outline-info:hover,
.btn-outline-info:active,
.btn-outline-info:focus-visible {
  color: #fff;
  background-color: var(--rx-purple-600);
  border-color: var(--rx-purple-600);
}

.btn-outline-dark {
  color: var(--rx-purple-900);
  border-color: var(--rx-purple-700);
}

.btn-outline-dark:hover,
.btn-outline-dark:active,
.btn-outline-dark:focus-visible {
  color: #fff;
  background-color: var(--rx-purple-700);
  border-color: var(--rx-purple-700);
}

.btn-outline-warning {
  color: #e8dcff;
  border-color: #e8dcff;
}

.btn-outline-warning:hover,
.btn-outline-warning:active,
.btn-outline-warning:focus-visible {
  color: var(--rx-purple-950);
  background-color: #e8dcff;
  border-color: #e8dcff;
}

.badge.bg-primary {
  background-color: var(--rx-purple-700) !important;
}

.badge.bg-success {
  background-color: var(--rx-purple-500) !important;
}

.badge.bg-danger {
  background-color: #7e22ce !important;
}

.alert-success {
  background-color: #f4edff;
  border-color: #decfff;
  color: #44206d;
}

@media (max-width: 768px) {
  .admin-item {
    flex-direction: column;
    align-items: flex-start;
  }
}
