/* ====== Tema oscuro elegante ====== */
:root{
  --bg: #0f172a;
  --surface: #111827;
  --surface-2: #1f2937;
  --text: #e5e7eb;
  --muted: #94a3b8;
  --brand: #0ea5e9;
  --brand-dark:#0284c7;
  --border: #334155;
  --green-strong: #22c55e;
}

html, body { height: 100%; }
body { background: var(--bg) !important; color: var(--text) !important; font-family: Arial, sans-serif; }

/* Navbar / Footer */
.navbar, footer { background: var(--surface) !important; color: var(--text) !important; }
.navbar .nav-link, .navbar .navbar-brand, footer a { color: var(--text) !important; }
.navbar .nav-link:hover { color: var(--brand) !important; }

/* Superficies */
.hero, .card { background: var(--surface) !important; color: var(--text) !important; border: 1px solid var(--border) !important; box-shadow: none !important; border-radius: 14px; }

/* Quitar blancos Bootstrap */
.bg-white, .bg-light, .modal-content { background: var(--surface) !important; color: var(--text) !important; }

/* Botones */
.btn-brand, .btn-primary { background: var(--brand) !important; border: none !important; color: #fff !important; }
.btn-brand:hover, .btn-primary:hover { background: var(--brand-dark) !important; }
.btn-outline-primary { border-color: var(--brand) !important; color: var(--brand) !important; }
.btn-outline-primary:hover { background: var(--brand) !important; color:#fff !important; }

/* Tablas */
.table { background: var(--surface) !important; color: var(--text) !important; }
.table thead th { background: var(--surface-2) !important; color: var(--text) !important; border-color: var(--border) !important; font-weight: 700 !important; }
.table td, .table th { border-color: var(--border) !important; color: var(--text) !important; }
.table-striped > tbody > tr:nth-of-type(odd) > * { background: #0b1220 !important; }

/* Badges / texto secundario */
.badge-soft { background: rgba(14,165,233,.15) !important; color: var(--brand) !important; border: 1px solid rgba(14,165,233,.35) !important; }
.text-secondary, .muted, small.muted { color: var(--muted) !important; }

/* Formularios */
.form-control, .form-select { background: #0b1220 !important; color: var(--text) !important; border: 1px solid var(--border) !important; }
.form-control::placeholder { color: #93a3b8aa !important; }

/* Links */
a { color: var(--brand); } a:hover { color: var(--brand-dark); }

/* Layout */
.container { max-width: 1100px; }

/* Overrides de verde en tablas */
.table .text-success,
.table td.text-success,
.table th.text-success { color: var(--green-strong) !important; }
.table .text-success.fw-bold,
.table td.text-success.fw-bold,
.table th.text-success.fw-bold { color: var(--green-strong) !important; font-weight: 700 !important; }

/* ====== CELEBRACIÓN: Explosión desde el centro + anillo ====== */
#confetti-container {
  position: fixed; inset: 0;
  pointer-events: none; overflow: hidden;
  z-index: 9999;
}

/* pieza del confetti para “burst” radial */
.confetti-piece {
  position: absolute;
  left: 50%; top: 45%;
  transform: translate(-50%, -50%);
  width: 10px; height: 14px;
  opacity: 0;
  will-change: transform, opacity;
  animation: confetti-burst var(--dur, 1000ms) ease-out forwards;
}

@keyframes confetti-burst {
  0%   { opacity: 0; transform: translate(-50%, -50%) translate(0, 0) scale(0.8) rotate(0deg); }
  10%  { opacity: 1; }
  100% { opacity: 0.95; transform: translate(-50%, -50%) translate(var(--dx, 0), var(--dy, 0)) rotate(var(--rot, 360deg)); }
}

/* Anillo pulsante en el centro */
#pulse-ring {
  position: fixed;
  left: 50%; top: 45%;
  width: 10px; height: 10px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9998;
  box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.6);
  animation: pulse-ring 900ms ease-out 1;
}
@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,0.65); }
  100% { box-shadow: 0 0 0 120px rgba(34,197,94,0); }
}

/* Overlay del sorteo en vivo */
#draw-overlay{
  position:fixed; inset:0; background:rgba(0,0,0,.82); z-index:9999;
  display:flex; align-items:center; justify-content:center;
}
#draw-overlay .draw-inner{ position:relative; max-width:1200px; width:96%; }
#draw-canvas{ width:100%; height:70vh; display:block; background:transparent; }
#draw-overlay .draw-title{ position:absolute; top:8px; left:12px; color:#e2e8f0; font-weight:800; text-shadow:0 2px 8px rgba(0,0,0,.5); }
#draw-overlay .draw-sub{ position:absolute; top:40px; left:12px; color:#94a3b8; }

/* Confetti DOM */
.confetti-piece{ pointer-events:none; border-radius:2px; }

/* Tarjeta del ganador */
.winner-card{
  position:absolute; right:12px; top:12px; width:320px;
  background:linear-gradient(135deg, #0f172a 0%, #0b1220 100%);
  border:1px solid rgba(148,163,184,0.25);
  border-radius:14px; padding:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.45);
  transform: translateY(-8px);
  opacity: 0;
  transition: opacity .35s ease, transform .35s ease;
}
.winner-card.show{ opacity:1; transform: translateY(0); }
.wc-title{ font-weight:800; color:#22c55e; margin-bottom:6px; }
.wc-ticket{ font-size:20px; font-weight:700; color:#e2e8f0; margin-bottom:6px; }
#wc-num{ color:#0ea5e9; }
.wc-name, .wc-email{ color:#e2e8f0; font-weight:600; }
.wc-time{ color:#94a3b8; font-size:12px; margin-top:6px; }
