/* =====================================================================
   LA SUERTE TE LLAMA — Estilos base (sobre Bootstrap 5)
   ===================================================================== */

:root {
  /* Tema 2026: dorado/naranja sobre fondo oscuro (reemplaza al morado anterior) */
  --lstl-primary: #ff9d00;
  --lstl-primary-dark: #cc7d00;
  --lstl-gold: #ffc400;
  --lstl-success: #20c997;
  --lstl-danger: #dc3545;
  --lstl-radius: 14px;

  /* Overrides de Bootstrap: todo botón/enlace/foco "primary" usa el dorado */
  --bs-primary: #ff9d00;
  --bs-primary-rgb: 255, 157, 0;
  --bs-link-color: #ff9d00;
  --bs-link-color-rgb: 255, 157, 0;
  --bs-link-hover-color: #ffc400;
}
[data-bs-theme="dark"] {
  --bs-body-bg: #0a0b0e;
  --bs-body-color: #f7f7f4;
  --bs-tertiary-bg: #14161b;
  --bs-secondary-bg: #111318;
  --bs-border-color: rgba(255,255,255,.09);
  --bs-primary: #ff9d00;
  --bs-primary-rgb: 255, 157, 0;
}

body {
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
  background-color: var(--bs-body-bg);
}
[data-bs-theme="dark"] body {
  background:
    radial-gradient(circle at 50% -20%, rgba(255,166,0,.10), transparent 34%),
    linear-gradient(#090a0d, #08090b 35%, #0a0b0e) fixed;
}

.btn-primary {
  --bs-btn-bg: linear-gradient(135deg, var(--lstl-gold), var(--lstl-primary) 70%);
  background: linear-gradient(135deg, var(--lstl-gold), var(--lstl-primary) 70%) !important;
  border-color: transparent !important;
  color: #17120a !important;
  font-weight: 700;
}
.btn-primary:hover, .btn-primary:focus { filter: brightness(1.06); color: #17120a !important; }
.btn-outline-primary { --bs-btn-color: var(--lstl-primary); --bs-btn-border-color: var(--lstl-primary); --bs-btn-hover-bg: var(--lstl-primary); --bs-btn-hover-border-color: var(--lstl-primary); --bs-btn-hover-color: #17120a; }

/* Bootstrap no referencia siempre --bs-primary en cada componente compilado
   (pills, badges, spinners…), así que forzamos estos puntos clave a mano. */
.nav-pills .nav-link.active, .nav-pills .show > .nav-link { background: linear-gradient(135deg, var(--lstl-gold), var(--lstl-primary) 70%) !important; color: #17120a !important; }
.nav-tabs .nav-link.active { color: var(--lstl-primary) !important; border-color: var(--bs-border-color) var(--bs-border-color) var(--bs-body-bg) !important; }
.form-check-input:checked { background-color: var(--lstl-primary) !important; border-color: var(--lstl-primary) !important; }
.badge.text-bg-primary, .bg-primary { background: linear-gradient(135deg, var(--lstl-gold), var(--lstl-primary) 70%) !important; color: #17120a !important; }
a:not(.btn):not(.nav-link):not(.dropdown-item) { color: var(--lstl-primary); }
.form-control:focus, .form-select:focus { border-color: var(--lstl-primary); box-shadow: 0 0 0 .25rem rgba(255,157,0,.18); }
.spinner-border.text-primary { color: var(--lstl-primary) !important; }
::selection { background: rgba(255,196,0,.35); }

.navbar-brand-lstl {
  font-weight: 800;
  letter-spacing: .3px;
  background: linear-gradient(90deg, var(--lstl-gold), #fff3c4);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.hero-lstl {
  background: radial-gradient(circle at top left, #ffce32, #ff6a00 65%);
  color: #1a1204;
  border-radius: 0 0 32px 32px;
}
[data-bs-theme="dark"] .hero-lstl {
  background: radial-gradient(circle at top left, #2a2107 0%, #14161b 65%);
  color: #fff;
  border: 1px solid rgba(255,196,0,.18);
}

.prize-card {
  border-radius: var(--lstl-radius);
  border: none;
  overflow: hidden;
  transition: transform .18s ease, box-shadow .18s ease;
  box-shadow: 0 6px 18px rgba(0,0,0,.08);
}
.prize-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(0,0,0,.14); }
.prize-card .prize-amount { font-size: 2rem; font-weight: 800; }

.package-card {
  border-radius: var(--lstl-radius);
  border: 2px solid transparent;
  transition: all .15s ease;
  cursor: pointer;
  position: relative;
}
.package-card:hover { border-color: var(--lstl-primary); transform: translateY(-3px); }
.package-card.selected { border-color: var(--lstl-primary); box-shadow: 0 0 0 4px rgba(255,157,0,.15); }
.package-badge {
  position: absolute; top: -10px; right: 14px;
  font-size: .7rem; font-weight: 700; padding: .3rem .6rem; border-radius: 999px; color: #fff;
}

.progress-lstl { height: 26px; border-radius: 999px; background: var(--bs-tertiary-bg); }
.progress-lstl .progress-bar { background: linear-gradient(90deg, var(--lstl-gold), var(--lstl-primary)); font-weight: 700; }

.ticket-chip {
  display: inline-block; padding: .25rem .55rem; margin: 2px; border-radius: 8px;
  font-family: 'Consolas', monospace; font-size: .82rem; background: var(--bs-tertiary-bg);
}
.status-dot { display:inline-block; width:10px; height:10px; border-radius:50%; margin-right:6px; }
.status-available { background:#20c997; }
.status-sold { background:#dc3545; }
.status-blocked { background:#fd7e14; }
.status-cancelled { background:#6c757d; }
.status-test { background:#0dcaf0; }

.countdown-box {
  font-family: 'Consolas', monospace; font-size: 1.4rem; font-weight: 700;
  background: var(--bs-tertiary-bg); border-radius: 10px; padding: .4rem .9rem; display:inline-block;
}
.countdown-box.expiring { color: var(--lstl-danger); }

.admin-sidebar {
  width: 260px; min-height: 100vh; background: var(--bs-body-bg); border-right: 1px solid var(--bs-border-color);
}
.admin-sidebar .nav-link { color: var(--bs-body-color); border-radius: 10px; padding: .55rem .8rem; font-weight: 500; }
.admin-sidebar .nav-link.active { background: linear-gradient(135deg, var(--lstl-gold), var(--lstl-primary) 70%); color: #17120a; font-weight: 700; }
.admin-sidebar .nav-link:hover:not(.active) { background: var(--bs-tertiary-bg); }
.admin-topbar { border-bottom: 1px solid var(--bs-border-color); }

.dashboard-tile {
  border-radius: var(--lstl-radius); border: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg); padding: 1.1rem 1.3rem; cursor: grab;
}
.dashboard-tile .tile-value { font-size: 1.7rem; font-weight: 800; }
.dashboard-tile .tile-label { font-size: .8rem; text-transform: uppercase; letter-spacing: .5px; opacity: .7; }

.activity-feed-item { border-left: 3px solid var(--lstl-primary); padding: .4rem .8rem; margin-bottom: .5rem; font-size: .88rem; }

.top10-row.rank-1 { background: linear-gradient(90deg, rgba(255,193,7,.18), transparent); }
.top10-row.rank-2 { background: linear-gradient(90deg, rgba(173,181,189,.18), transparent); }
.top10-row.rank-3 { background: linear-gradient(90deg, rgba(205,127,50,.18), transparent); }

.editor-canvas { min-height: 70vh; border: 2px dashed var(--bs-border-color); border-radius: 12px; padding: 1rem; }
.editor-block { position: relative; border: 1px solid transparent; border-radius: 8px; padding: .5rem; }
.editor-block:hover { border-color: var(--lstl-primary); }
.editor-block.locked { opacity: .6; pointer-events: none; }
.editor-block .block-toolbar {
  position: absolute; top: -14px; right: 4px; display: none; gap: 2px; background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color); border-radius: 8px; padding: 2px 4px; z-index: 5;
}
.editor-block:hover .block-toolbar { display: flex; }
.editor-block.dragging { opacity: .4; }
.editor-palette-item { cursor: grab; border-radius: 10px; padding: .5rem; border: 1px solid var(--bs-border-color); }

.verified-badge { color: #198754; font-weight: 700; }

.roulette-wheel {
  width: 260px; height: 260px; border-radius: 50%; margin: 0 auto;
  background: conic-gradient(from 0deg, #ff9d00, #ffce32, #ff9d00, #ffc107, #ff9d00, #20c997, #ff9d00, #dc3545);
  position: relative; border: 8px solid var(--bs-body-bg); box-shadow: 0 0 0 4px var(--lstl-primary);
  transition: transform 4s cubic-bezier(.17,.67,.21,1.01);
}
.roulette-pointer { width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:22px solid var(--lstl-gold); margin: 0 auto; }

.captcha-box { background: var(--bs-tertiary-bg); border-radius: 8px; padding: .6rem 1rem; font-family: 'Consolas', monospace; font-size: 1.3rem; letter-spacing: 4px; user-select: none; }

.badge-soft-purple { background: rgba(255,157,0,.15); color: var(--lstl-primary); }

@media (max-width: 768px) {
  .admin-sidebar { position: fixed; left: -260px; top: 0; z-index: 1040; transition: left .2s ease; }
  .admin-sidebar.open { left: 0; }
}
