/* ═══════════════════════════════════════════════════════════
   FORTUNA360 — DESIGN SYSTEM v3
   Paleta oficial: Negro #050505 · Oro #c9a227 · Plata #b8b8c8
   TU MUNDO. TU OPORTUNIDAD. TU CAMBIO.
   ═══════════════════════════════════════════════════════════ */

/* ── Variables ──────────────────────────────────────────── */
:root {
  /* Violeta — secundario (funcional: badges, links, KPIs) */
  --violet:       #7c3aed;
  --violet-d:     #5b21b6;
  --violet-l:     #a78bfa;
  --violet-xl:    #ede9fe;

  /* Marca Fortuna360 — paleta principal */
  --f360-black:   #050505;
  --f360-gold:    #c9a227;
  --f360-gold-l:  #f0c040;
  --f360-gold-d:  #a07820;
  --f360-silver:  #b8b8c8;
  --f360-gold-xl: #fdf7e3;

  /* Oro (alias globales) */
  --gold:         #c9a227;
  --gold-d:       #a07820;
  --gold-l:       #f0c040;

  --success:      #10b981;
  --success-l:    #d1fae5;
  --danger:       #ef4444;
  --danger-l:     #fee2e2;

  /* Paleta oscura — negro Fortuna */
  --dark:         #050505;
  --dark-2:       #0d0b00;
  --dark-3:       #1a1500;
  --dark-4:       #2a2100;

  /* Paleta clara */
  --body:         #f9f7ee;
  --card:         #ffffff;
  --border:       #e8e2cc;
  --border-d:     rgba(255,255,255,.08);

  /* Texto */
  --tx:           #1a1400;
  --tx-muted:     #6b6245;
  --tx-inv:       #fdf7e3;
  --tx-inv-dim:   rgba(253,247,227,.70);

  /* Sombras */
  --sh-sm: 0 1px 4px rgba(0,0,0,.08);
  --sh-md: 0 4px 20px rgba(0,0,0,.10);
  --sh-lg: 0 8px 40px rgba(201,162,39,.18);
  --sh-xl: 0 20px 60px rgba(201,162,39,.28);

  /* Radios */
  --r:     .875rem;
  --r-lg:  1.375rem;
  --r-xl:  2rem;
  --r-pill: 999px;

  /* Gradientes */
  --g-brand:     linear-gradient(135deg, #c9a227 0%, #f0c040 50%, #a07820 100%);
  --g-hero:      linear-gradient(135deg, #050505 0%, #1a1200 55%, #2d2000 100%);
  --g-card:      linear-gradient(135deg, #c9a227 0%, #f0c040 100%);
  --g-gold:      linear-gradient(135deg, #c9a227 0%, #f0c040 50%, #a07820 100%);
  --g-gold-dark: linear-gradient(135deg, #050505 0%, #1a1200 60%, #2d2000 100%);
  --g-silver:    linear-gradient(135deg, #b8b8c8 0%, #e8e8f0 50%, #a0a0b0 100%);
  --g-green:     linear-gradient(135deg, #10b981 0%, #059669 100%);
  --g-gray:      linear-gradient(135deg, #374151 0%, #6b7280 100%);
}

/* ── Reset ──────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background: var(--body);
  color: var(--tx);
  min-height: 100vh;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--violet); text-decoration: none; }
a:hover { color: var(--violet-d); }
img { max-width: 100%; display: block; }
.page-content { padding: 0; }

/* ══════════════════════════════════════════════════════════
   NAVBAR
   ══════════════════════════════════════════════════════════ */
.s360-nav {
  background: linear-gradient(180deg, #050505 0%, #0a0800 100%);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border-bottom: 2px solid rgba(201,162,39,.3);
  box-shadow: 0 6px 28px rgba(0,0,0,.7), 0 1px 0 rgba(201,162,39,.12) inset;
  position: sticky;
  top: 0;
  z-index: 1000;
  padding: 0;
  min-height: 100px;
}
.s360-nav .container {
  min-height: 100px;
}
.s360-nav .container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  position: relative;
}
.s360-nav__brand {
  display: flex;
  align-items: center;
  gap: .55rem;
  text-decoration: none;
  flex-shrink: 0;
}
.s360-nav__logo {
  width: 34px; height: 34px;
  background: var(--g-brand);
  border-radius: .5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: .7rem;
  color: #fff;
  letter-spacing: -.3px;
  flex-shrink: 0;
}
.s360-nav__name {
  font-size: 1.1rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: -.02em;
}
.s360-nav__name span { color: var(--violet-l); }
.s360-nav__links {
  display: flex;
  align-items: center;
  gap: .15rem;
}
.s360-nav__link {
  color: var(--tx-inv-dim);
  text-decoration: none;
  padding: .4rem .85rem;
  border-radius: var(--r-pill);
  font-size: .875rem;
  transition: background .15s, color .15s;
  display: flex;
  align-items: center;
  gap: .35rem;
  white-space: nowrap;
}
.s360-nav__link:hover { background: rgba(255,255,255,.08); color: #fff; }
.s360-nav__link i { font-size: .8rem; }
.s360-nav__btn {
  background: var(--g-brand);
  color: #fff !important;
  text-decoration: none;
  padding: .48rem 1.1rem;
  border-radius: var(--r-pill);
  font-size: .875rem;
  font-weight: 700;
  transition: opacity .15s, transform .15s;
  margin-left: .2rem;
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  box-shadow: 0 2px 12px rgba(124,58,237,.4);
}
.s360-nav__btn:hover { opacity: .85; transform: translateY(-1px); color: #fff; }
.s360-nav__btn--outline {
  background: transparent;
  border: 1px solid rgba(255,255,255,.22);
  color: var(--tx-inv-dim) !important;
  box-shadow: none;
}
.s360-nav__btn--outline:hover {
  border-color: rgba(255,255,255,.45);
  color: #fff !important;
  opacity: 1;
  transform: none;
}
.s360-nav__toggle {
  display: none;
  background: transparent;
  border: 1px solid rgba(255,255,255,.18);
  color: #fff;
  padding: .38rem .55rem;
  border-radius: .5rem;
  cursor: pointer;
  font-size: .95rem;
  flex-shrink: 0;
}
@media (max-width: 820px) {
  .s360-nav__toggle { display: flex; align-items: center; }
  .s360-nav__links {
    display: none;
    position: absolute;
    top: calc(100% + .8rem);
    left: 0; right: 0;
    background: rgba(7,7,20,.98);
    backdrop-filter: blur(20px);
    flex-direction: column;
    padding: .75rem;
    border: 1px solid var(--border-d);
    border-radius: var(--r-lg);
    gap: .2rem;
    box-shadow: 0 8px 32px rgba(0,0,0,.4);
  }
  .s360-nav__links.open { display: flex; }
  .s360-nav__link { width: 100%; justify-content: center; padding: .6rem; }
  .s360-nav__btn { width: 100%; justify-content: center; margin: .15rem 0 0; }
}

/* ══════════════════════════════════════════════════════════
   HERO
   ══════════════════════════════════════════════════════════ */
.hero {
  background: var(--g-hero);
  min-height: 88vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 3.5rem;
}
.hero::before, .hero::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
  opacity: .3;
  pointer-events: none;
}
.hero::before {
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(201,162,39,.35), transparent 70%);
  top: -200px; right: -80px;
  animation: floatBlob 14s ease-in-out infinite;
}
.hero::after {
  width: 480px; height: 480px;
  background: radial-gradient(circle, rgba(160,120,32,.25), transparent 70%);
  bottom: -120px; left: -80px;
  animation: floatBlob 18s ease-in-out infinite reverse;
}
.hero__content { position: relative; z-index: 1; }
.hero__badge {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: rgba(124,58,237,.22);
  border: 1px solid rgba(124,58,237,.38);
  color: var(--violet-l);
  padding: .32rem .85rem;
  border-radius: var(--r-pill);
  font-size: .78rem;
  font-weight: 700;
  margin-bottom: 1.2rem;
  backdrop-filter: blur(8px);
  letter-spacing: .02em;
}
.hero__title {
  font-size: clamp(2.2rem, 5vw, 3.8rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.1;
  margin-bottom: 1.2rem;
  letter-spacing: -.04em;
}
.hero__title .accent {
  background: linear-gradient(135deg, #f0c040 0%, #c9a227 50%, #f0c040 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.hero__subtitle {
  font-size: 1.1rem;
  color: var(--tx-inv-dim);
  max-width: 520px;
  line-height: 1.75;
  margin-bottom: 2rem;
}
.hero__cta { display: flex; flex-wrap: wrap; gap: .7rem; }
.hero__trust { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 2.25rem; }
.hero__trust-item {
  display: flex;
  align-items: center;
  gap: .4rem;
  color: var(--tx-inv-dim);
  font-size: .85rem;
}
.hero__trust-item i { color: var(--success); }
.hero__visual { display: flex; align-items: center; justify-content: center; position: relative; z-index: 1; }
.hero__card {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-xl);
  padding: 1.75rem;
  backdrop-filter: blur(16px);
  max-width: 340px;
  width: 100%;
  animation: floatCard 6s ease-in-out infinite;
  box-shadow: 0 20px 60px rgba(0,0,0,.4);
}
.hero__card h3 { color: #fff; font-size: 1rem; margin-bottom: .2rem; font-weight: 600; }
.hero__card .prize {
  font-size: 2.2rem;
  font-weight: 900;
  background: var(--g-gold);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin: .4rem 0 1rem;
  line-height: 1;
}
.hero__card-cta {
  display: block;
  text-align: center;
  background: var(--g-brand);
  border-radius: var(--r);
  padding: .7rem;
  font-weight: 700;
  font-size: .9rem;
  color: #fff !important;
  transition: opacity .15s;
}
.hero__card-cta:hover { opacity: .85; }

/* ══════════════════════════════════════════════════════════
   STATS BAR
   ══════════════════════════════════════════════════════════ */
.stats-bar {
  background: #fff;
  border-bottom: 1px solid var(--border);
  padding: 1.75rem 0;
  box-shadow: var(--sh-sm);
}
.stats-bar .container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  text-align: center;
}
.stat-item__num {
  font-size: 2rem;
  font-weight: 900;
  background: var(--g-brand);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin-bottom: .25rem;
}
.stat-item__label {
  color: var(--tx-muted);
  font-size: .78rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .05em;
}
@media (max-width: 576px) { .stats-bar .container { grid-template-columns: repeat(2, 1fr); } }

/* ══════════════════════════════════════════════════════════
   SECTION HEADINGS
   ══════════════════════════════════════════════════════════ */
.section-head { text-align: center; margin-bottom: 3rem; }
.section-head__eyebrow {
  display: inline-block;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--violet);
  margin-bottom: .5rem;
}
.section-head__title {
  font-size: clamp(1.65rem, 3vw, 2.4rem);
  font-weight: 900;
  letter-spacing: -.04em;
  color: var(--tx);
  line-height: 1.15;
  margin-bottom: .65rem;
}
.section-head__sub { color: var(--tx-muted); font-size: 1rem; max-width: 520px; margin: 0 auto; line-height: 1.7; }

/* ══════════════════════════════════════════════════════════
   SORTEO CARDS
   ══════════════════════════════════════════════════════════ */
.sorteos-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}
@media (max-width: 1024px) { .sorteos-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .sorteos-grid { grid-template-columns: 1fr; } }

.sorteo-card {
  background: var(--card);
  border-radius: var(--r-lg);
  overflow: hidden;
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
  transition: transform .2s ease, box-shadow .2s ease;
  display: flex;
  flex-direction: column;
}
.sorteo-card:hover { transform: translateY(-5px); box-shadow: var(--sh-xl); }
.sorteo-card__head {
  background: var(--g-card);
  padding: 1.6rem 1.4rem .9rem;
  position: relative;
}
.sorteo-card__head--gold   { background: var(--g-gold); }
.sorteo-card__head--green  { background: var(--g-green); }
.sorteo-card__head--closed { background: var(--g-gray); }
.sorteo-card__estado {
  position: absolute;
  top: .7rem; right: .7rem;
  padding: .22rem .6rem;
  border-radius: var(--r-pill);
  font-size: .68rem;
  font-weight: 800;
  background: rgba(255,255,255,.18);
  color: #fff;
  backdrop-filter: blur(4px);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.sorteo-card__icon { font-size: 2.4rem; margin-bottom: .4rem; }
.sorteo-card__prize {
  font-size: 1.5rem;
  font-weight: 900;
  color: #fff;
  text-shadow: 0 2px 8px rgba(0,0,0,.25);
  line-height: 1.15;
  word-break: break-word;
}
.sorteo-card__body {
  padding: 1.2rem 1.4rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .7rem;
}
.sorteo-card__title { font-size: 1rem; font-weight: 700; color: var(--tx); line-height: 1.3; }
.sorteo-card__company {
  font-size: .78rem;
  color: var(--tx-muted);
  display: flex;
  align-items: center;
  gap: .3rem;
}
.sorteo-card__countdown-label {
  font-size: .7rem;
  font-weight: 700;
  color: var(--tx-muted);
  text-transform: uppercase;
  letter-spacing: .05em;
  margin-bottom: .3rem;
  display: flex;
  align-items: center;
  gap: .25rem;
}
.countdown { display: flex; gap: .3rem; }
.countdown__unit {
  background: var(--violet-xl);
  border-radius: .4rem;
  padding: .28rem .45rem;
  min-width: 40px;
  text-align: center;
}
.countdown__num { display: block; font-size: .9rem; font-weight: 900; color: var(--violet); line-height: 1; }
.countdown__label { display: block; font-size: .55rem; color: var(--tx-muted); text-transform: uppercase; margin-top: .1rem; }
.ticket-progress {}
.ticket-progress__bar-wrap {
  background: #f3f4f6;
  border-radius: var(--r-pill);
  height: 6px;
  overflow: hidden;
  margin: .35rem 0;
}
.ticket-progress__bar { height: 100%; border-radius: var(--r-pill); background: var(--g-brand); }
.ticket-progress__info { display: flex; justify-content: space-between; font-size: .72rem; color: var(--tx-muted); }
.sorteo-card__price {
  font-weight: 700;
  color: var(--tx);
  font-size: .92rem;
  display: flex;
  align-items: baseline;
  gap: .25rem;
  margin-top: auto;
}
.sorteo-card__price .per { font-size: .75rem; color: var(--tx-muted); font-weight: 400; }
.sorteo-card__footer { padding: 0 1.4rem 1.4rem; }

/* ══════════════════════════════════════════════════════════
   HOW IT WORKS
   ══════════════════════════════════════════════════════════ */
.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5rem;
  position: relative;
}
.steps::before {
  content: '';
  position: absolute;
  top: 29px;
  left: 14%;
  right: 14%;
  height: 2px;
  background: linear-gradient(to right, var(--violet-xl) 0%, var(--violet) 50%, var(--violet-xl) 100%);
}
@media (max-width: 768px) { .steps { grid-template-columns: repeat(2, 1fr); } .steps::before { display: none; } }
@media (max-width: 420px) { .steps { grid-template-columns: 1fr; } }
.step { text-align: center; position: relative; z-index: 1; }
.step__num {
  width: 58px; height: 58px;
  background: var(--g-brand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  color: #fff;
  margin: 0 auto .75rem;
  box-shadow: 0 4px 16px rgba(124,58,237,.38);
}
.step__title { font-weight: 700; color: var(--tx); margin-bottom: .35rem; font-size: .95rem; }
.step__desc { color: var(--tx-muted); font-size: .84rem; line-height: 1.65; }

/* ══════════════════════════════════════════════════════════
   CTA BANNER
   ══════════════════════════════════════════════════════════ */
.cta-banner {
  background: var(--g-brand);
  border-radius: var(--r-xl);
  padding: 3.5rem 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.cta-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle at 20% 50%, rgba(255,255,255,.06) 0%, transparent 50%),
                    radial-gradient(circle at 80% 50%, rgba(255,255,255,.04) 0%, transparent 40%);
  pointer-events: none;
}
.cta-banner h2 { color: #fff; font-size: clamp(1.6rem, 3vw, 2.2rem); font-weight: 900; margin-bottom: .65rem; letter-spacing: -.04em; position: relative; z-index: 1; }
.cta-banner p  { color: rgba(255,255,255,.8); font-size: 1rem; margin-bottom: 1.75rem; position: relative; z-index: 1; }

/* ══════════════════════════════════════════════════════════
   BUTTON SYSTEM
   ══════════════════════════════════════════════════════════ */
.btn-brand {
  background: var(--g-brand);
  color: #fff !important;
  border: none;
  border-radius: var(--r-pill);
  padding: .72rem 1.65rem;
  font-size: .92rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .15s, transform .15s, box-shadow .15s;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  box-shadow: 0 4px 18px rgba(201,162,39,.35);
  white-space: nowrap;
}
.btn-brand:hover { opacity: .9; transform: translateY(-2px); box-shadow: 0 8px 28px rgba(201,162,39,.5); color: #fff; }
.btn-brand--lg { padding: .95rem 2.1rem; font-size: 1.02rem; }
.btn-brand:disabled, .btn-brand[disabled] { background: #94a3b8; box-shadow: none; cursor: not-allowed; opacity: 1; }

.btn-outline {
  background: transparent;
  color: var(--tx) !important;
  border: 2px solid var(--border);
  border-radius: var(--r-pill);
  padding: .7rem 1.63rem;
  font-size: .92rem;
  font-weight: 600;
  cursor: pointer;
  transition: border-color .15s, color .15s;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  white-space: nowrap;
}
.btn-outline:hover { border-color: var(--violet); color: var(--violet) !important; }
.btn-outline--inv { border-color: rgba(255,255,255,.28); color: #fff !important; }
.btn-outline--inv:hover { border-color: rgba(255,255,255,.55); background: rgba(255,255,255,.07); color: #fff !important; }
.btn-outline--lg { padding: .93rem 2.08rem; font-size: 1.02rem; }

/* Legacy admin button */
.button {
  display: inline-block;
  background: var(--violet);
  color: #fff;
  text-decoration: none;
  border-radius: var(--r);
  padding: .42rem .88rem;
  font-weight: 600;
  font-size: .83rem;
  border: none;
  cursor: pointer;
  line-height: 1.5;
  white-space: nowrap;
  transition: background .15s;
}
.button:hover { background: var(--violet-d); color: #fff; }
.button-warning { background: var(--danger); }
.button-warning:hover { background: #dc2626; }

/* ══════════════════════════════════════════════════════════
   AUTH SPLIT SCREEN
   ══════════════════════════════════════════════════════════ */
.auth-page {
  min-height: calc(100vh - 60px);
  display: flex;
  align-items: stretch;
}
.auth-page__panel {
  flex: 0 0 42%;
  background: var(--g-hero);
  padding: 3rem 2.5rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  overflow: hidden;
}
.auth-page__panel::before {
  content: '';
  position: absolute;
  width: 380px; height: 380px;
  background: radial-gradient(circle, rgba(124,58,237,.4), transparent 70%);
  top: -100px; right: -80px;
  border-radius: 50%;
  filter: blur(55px);
  pointer-events: none;
}
.auth-page__panel::after {
  content: '';
  position: absolute;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(29,78,216,.35), transparent 70%);
  bottom: -60px; left: -40px;
  border-radius: 50%;
  filter: blur(50px);
  pointer-events: none;
}
.auth-page__logo {
  display: flex;
  align-items: center;
  gap: .55rem;
  text-decoration: none;
  margin-bottom: 2.75rem;
  position: relative;
  z-index: 1;
}
.auth-page__logo .logo-box {
  width: 40px; height: 40px;
  background: var(--g-brand);
  border-radius: .65rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  color: #fff;
  font-size: .75rem;
}
.auth-page__logo .logo-name { font-size: 1.2rem; font-weight: 800; color: #fff; }
.auth-page__logo .logo-name span { color: var(--violet-l); }
.auth-page__panel h2 {
  color: #fff;
  font-size: 1.75rem;
  font-weight: 900;
  line-height: 1.2;
  margin-bottom: .7rem;
  position: relative;
  z-index: 1;
  letter-spacing: -.04em;
}
.auth-page__panel > p {
  color: var(--tx-inv-dim);
  line-height: 1.7;
  margin-bottom: 2rem;
  position: relative;
  z-index: 1;
  font-size: .95rem;
}
.auth-trust { display: flex; flex-direction: column; gap: .55rem; position: relative; z-index: 1; }
.auth-trust-item { display: flex; align-items: center; gap: .45rem; color: var(--tx-inv-dim); font-size: .88rem; }
.auth-trust-item i { color: var(--success); font-size: .95rem; }
.auth-page__form {
  flex: 1;
  background: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 3rem;
  min-height: 100%;
}
.auth-page__form h1 {
  font-size: 1.7rem;
  font-weight: 900;
  color: var(--tx);
  margin-bottom: .3rem;
  letter-spacing: -.04em;
}
.auth-page__form .auth-sub {
  color: var(--tx-muted);
  margin-bottom: 2rem;
  font-size: .92rem;
}
.form-group { margin-bottom: 1rem; }
.form-group label { display: block; font-size: .83rem; font-weight: 700; color: var(--tx); margin-bottom: .42rem; }
.form-control {
  width: 100%;
  padding: .78rem 1rem;
  border-radius: var(--r);
  border: 1.5px solid var(--border);
  background: #fafafa;
  font-size: .95rem;
  color: var(--tx);
  transition: border-color .15s, box-shadow .15s;
  -webkit-appearance: none;
}
.form-control:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(124,58,237,.1); background: #fff; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem; }
.auth-divider { text-align: center; color: var(--tx-muted); font-size: .82rem; margin: .85rem 0; }
@media (max-width: 820px) {
  .auth-page { flex-direction: column; }
  .auth-page__panel { flex: none; padding: 2rem 1.75rem; min-height: 200px; }
  .auth-page__panel h2 { font-size: 1.35rem; }
  .auth-page__panel > p, .auth-trust { display: none; }
  .auth-page__form { flex: none; padding: 2rem 1.5rem; }
  .form-row { grid-template-columns: 1fr; }
}

/* ══════════════════════════════════════════════════════════
   ALERTS
   ══════════════════════════════════════════════════════════ */
.alert {
  padding: .8rem 1rem;
  border-radius: var(--r);
  margin-bottom: 1.1rem;
  font-size: .88rem;
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}
.alert-error   { background: var(--danger-l);  color: #991b1b; border: 1px solid #fecaca; }
.alert-success { background: var(--success-l); color: #166534; border: 1px solid #a7f3d0; }
.alert-info    { background: #eff6ff;          color: #1e40af; border: 1px solid #bfdbfe; }

/* ══════════════════════════════════════════════════════════
   ADMIN CARD (backward compat)
   ══════════════════════════════════════════════════════════ */
.auth-card, .dashboard {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 2rem;
  max-width: 1100px;
  margin: 2rem auto;
  box-shadow: var(--sh-md);
}
.auth-card--narrow { max-width: 560px; }
.auth-card h1, .dashboard h1 { margin-bottom: 1.4rem; font-size: 1.65rem; font-weight: 900; letter-spacing: -.04em; }
.auth-card label { display: block; margin-top: .9rem; margin-bottom: .38rem; font-weight: 700; font-size: .85rem; }
.auth-card input, .auth-card select, .auth-card textarea {
  width: 100%;
  padding: .78rem 1rem;
  border-radius: var(--r);
  border: 1.5px solid var(--border);
  background: #fafafa;
  font-size: .95rem;
  transition: border-color .15s, box-shadow .15s;
}
.auth-card input:focus, .auth-card select:focus, .auth-card textarea:focus {
  outline: none;
  border-color: var(--violet);
  box-shadow: 0 0 0 3px rgba(124,58,237,.1);
}
.auth-card > form > button[type="submit"] {
  margin-top: 1.4rem;
  width: 100%;
  padding: .88rem 1rem;
  border: none;
  border-radius: var(--r);
  background: var(--g-brand);
  color: #fff;
  font-weight: 700;
  cursor: pointer;
  font-size: .98rem;
  transition: opacity .15s;
  box-shadow: 0 4px 16px rgba(124,58,237,.3);
}
.auth-card > form > button[type="submit"]:hover { opacity: .86; }
button:disabled, .auth-card button:disabled { background: #94a3b8 !important; cursor: not-allowed; box-shadow: none !important; }

/* ══════════════════════════════════════════════════════════
   DATA TABLE (admin)
   ══════════════════════════════════════════════════════════ */
.data-table { width: 100%; border-collapse: collapse; margin-top: 1.4rem; font-size: .875rem; }
.data-table th, .data-table td { border: 1px solid var(--border); padding: .68rem .88rem; text-align: left; vertical-align: middle; }
.data-table thead { background: #f9fafb; }
.data-table thead th { font-weight: 700; font-size: .78rem; text-transform: uppercase; letter-spacing: .04em; color: var(--tx-muted); }
.data-table tbody tr:hover { background: #f5f4ff; }

/* ══════════════════════════════════════════════════════════
   ADMIN FORMS & UTILITIES
   ══════════════════════════════════════════════════════════ */
.search-form { display: flex; gap: .6rem; margin-top: 1rem; flex-wrap: wrap; }
.search-form input, .search-form select {
  flex: 1 1 260px;
  padding: .78rem 1rem;
  border-radius: var(--r);
  border: 1.5px solid var(--border);
  background: #fafafa;
  font-size: .9rem;
}
.search-form button { border: none; border-radius: var(--r); background: var(--g-brand); color: #fff; font-weight: 700; padding: .78rem 1.2rem; cursor: pointer; }
.action-links { margin-top: 1.2rem; display: flex; gap: .45rem; flex-wrap: wrap; align-items: center; }
.profile-item { display: flex; justify-content: space-between; align-items: center; padding: .78rem 0; border-bottom: 1px solid var(--border); font-size: .92rem; }
.profile-item:last-child { border-bottom: none; }
.text-center { text-align: center; }

/* ══════════════════════════════════════════════════════════
   STATUS BADGES
   ══════════════════════════════════════════════════════════ */
.status-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .28rem .68rem; border-radius: var(--r-pill); font-size: .78rem; font-weight: 700; }
.status-active   { background: #dbeafe; color: #1e40af; }
.status-upcoming { background: #fef3c7; color: #92400e; }
.status-closed   { background: #fee2e2; color: #991b1b; }

/* ══════════════════════════════════════════════════════════
   DASHBOARD KPIs
   ══════════════════════════════════════════════════════════ */
.kpi-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-bottom: 1.75rem; }
@media (max-width: 1024px) { .kpi-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .kpi-grid { grid-template-columns: 1fr; } }
.kpi-card {
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 1.4rem;
  box-shadow: var(--sh-sm);
  display: flex;
  flex-direction: column;
  gap: .35rem;
  transition: transform .15s, box-shadow .15s;
}
.kpi-card:hover { transform: translateY(-2px); box-shadow: var(--sh-md); }
.kpi-card__icon {
  width: 42px; height: 42px;
  border-radius: .7rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  margin-bottom: .2rem;
}
.kpi-card__icon--violet { background: var(--violet-xl); color: var(--violet); }
.kpi-card__icon--gold   { background: #fef3c7; color: var(--gold-d); }
.kpi-card__icon--green  { background: var(--success-l); color: #059669; }
.kpi-card__icon--blue   { background: #dbeafe; color: #1d4ed8; }
.kpi-card__num { font-size: 1.9rem; font-weight: 900; color: var(--tx); letter-spacing: -.05em; line-height: 1; }
.kpi-card__label { font-size: .78rem; font-weight: 700; color: var(--tx-muted); text-transform: uppercase; letter-spacing: .05em; }

/* Quick actions */
.quick-actions { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .65rem; margin-top: .5rem; }
.quick-action {
  background: var(--card);
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  padding: 1rem .75rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .38rem;
  text-decoration: none;
  color: var(--tx);
  font-size: .82rem;
  font-weight: 600;
  text-align: center;
  transition: border-color .15s, transform .15s, color .15s;
}
.quick-action:hover { border-color: var(--violet); transform: translateY(-2px); color: var(--violet); }
.quick-action i { font-size: 1.4rem; color: var(--violet); }

/* ══════════════════════════════════════════════════════════
   SORTEO DETAIL PAGE
   ══════════════════════════════════════════════════════════ */
.detail-hero {
  background: var(--g-hero);
  padding: 3rem 0 2.5rem;
  position: relative;
  overflow: hidden;
}
.detail-hero::before {
  content: '';
  position: absolute;
  width: 400px; height: 400px;
  background: radial-gradient(circle, rgba(124,58,237,.32), transparent 70%);
  top: -100px; right: -80px;
  border-radius: 50%;
  filter: blur(60px);
}
.detail-hero .container { position: relative; z-index: 1; }
.detail-hero h1 { color: #fff; font-size: clamp(1.65rem, 3vw, 2.4rem); font-weight: 900; letter-spacing: -.04em; margin-bottom: .4rem; }
.detail-hero .prize-display {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 900;
  background: var(--g-gold);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1;
  margin: .65rem 0;
}
.detail-body { background: var(--body); padding: 2.5rem 0 4rem; }
.detail-card {
  background: var(--card);
  border-radius: var(--r-xl);
  padding: 2rem;
  box-shadow: var(--sh-lg);
  border: 1px solid var(--border);
}
.detail-row { display: flex; justify-content: space-between; align-items: center; padding: .8rem 0; border-bottom: 1px solid var(--border); font-size: .92rem; }
.detail-row:last-child { border-bottom: none; }
.detail-row .label { color: var(--tx-muted); font-weight: 600; font-size: .82rem; }
.detail-row .value { font-weight: 700; color: var(--tx); }

/* ══════════════════════════════════════════════════════════
   BUY PAGE
   ══════════════════════════════════════════════════════════ */
.buy-layout { display: grid; grid-template-columns: 1fr 360px; gap: 1.75rem; align-items: start; }
@media (max-width: 768px) { .buy-layout { grid-template-columns: 1fr; } }
.buy-summary {
  background: var(--card);
  border-radius: var(--r-xl);
  padding: 1.75rem;
  border: 1px solid var(--border);
  box-shadow: var(--sh-md);
}
.buy-summary h2 { font-size: 1.2rem; font-weight: 800; margin-bottom: 1.1rem; letter-spacing: -.03em; }
.buy-prize {
  text-align: center;
  padding: 1.4rem;
  background: var(--g-card);
  border-radius: var(--r-lg);
  margin-bottom: 1.1rem;
}
.buy-prize .p-icon { font-size: 2.8rem; margin-bottom: .3rem; }
.buy-prize .p-label { color: rgba(255,255,255,.7); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .07em; }
.buy-prize .p-value { color: #fff; font-size: 1.65rem; font-weight: 900; line-height: 1.2; }
.buy-form-box {
  background: var(--card);
  border-radius: var(--r-xl);
  padding: 1.75rem;
  border: 1px solid var(--border);
  box-shadow: var(--sh-md);
}
.buy-form-box h2 { font-size: 1.2rem; font-weight: 800; margin-bottom: 1.4rem; letter-spacing: -.03em; }
.price-box {
  background: linear-gradient(135deg, var(--violet-xl), #eff6ff);
  border-radius: var(--r-lg);
  padding: 1.4rem;
  text-align: center;
  margin-bottom: 1.4rem;
  border: 1.5px solid var(--violet-l);
}
.price-box .price { font-size: 2.4rem; font-weight: 900; background: var(--g-brand); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.price-box .price-label { color: var(--tx-muted); font-size: .82rem; margin-top: .2rem; }
.buy-btn {
  width: 100%;
  padding: 1.05rem;
  border: none;
  border-radius: var(--r-lg);
  background: var(--g-brand);
  color: #fff;
  font-size: 1.08rem;
  font-weight: 800;
  cursor: pointer;
  transition: opacity .15s, transform .15s;
  box-shadow: 0 4px 20px rgba(124,58,237,.38);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
}
.buy-btn:hover:not(:disabled) { opacity: .86; transform: translateY(-2px); }
.buy-btn:disabled { background: #94a3b8 !important; cursor: not-allowed; box-shadow: none; }

/* ══════════════════════════════════════════════════════════
   PAGINATION
   ══════════════════════════════════════════════════════════ */
.pagination { display: flex; align-items: center; justify-content: center; gap: .4rem; margin-top: 2rem; flex-wrap: wrap; }
.pagination a, .pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  min-width: 36px;
  padding: 0 .7rem;
  border-radius: var(--r);
  font-size: .85rem;
  font-weight: 600;
  text-decoration: none;
  border: 1.5px solid var(--border);
  color: var(--tx);
  background: #fff;
  transition: background .15s, border-color .15s, color .15s;
}
.pagination a:hover { background: var(--violet-xl); border-color: var(--violet-l); color: var(--violet); }
.pagination .current { background: var(--g-brand); color: #fff !important; border-color: transparent; }
.pagination .disabled { opacity: .38; pointer-events: none; }

/* ══════════════════════════════════════════════════════════
   ADMIN COMPAT
   ══════════════════════════════════════════════════════════ */
.grid-cards { display: grid; gap: 1.1rem; margin-top: 1.1rem; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }
.grid-cards article { background: #f9fafb; border-radius: var(--r); padding: 1.2rem; border: 1px solid var(--border); }
.grid-cards article h2 { font-size: .95rem; font-weight: 700; margin-bottom: .7rem; }

/* ══════════════════════════════════════════════════════════
   SECTIONS / SPACING
   ══════════════════════════════════════════════════════════ */
.py-xl  { padding: 5rem 0; }
.py-lg  { padding: 3.5rem 0; }
.py-md  { padding: 2.5rem 0; }
.bg-white { background: #fff; }
.bg-body  { background: var(--body); }

/* ══════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════ */
.site-footer { background: var(--dark-2); color: var(--tx-inv-dim); padding: 3.5rem 0 2rem; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 3rem; margin-bottom: 2.5rem; }
@media (max-width: 768px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 1.5rem; } }
@media (max-width: 480px) { .footer-grid { grid-template-columns: 1fr; } }
.footer-brand-link { display: flex; align-items: center; gap: .55rem; text-decoration: none; margin-bottom: .7rem; }
.footer-logo-box {
  width: 30px; height: 30px;
  background: var(--g-brand);
  border-radius: .4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 900;
  font-size: .65rem;
  color: #fff;
}
.footer-brand-name { font-size: 1rem; font-weight: 700; color: #fff; }
.footer-brand-desc { font-size: .84rem; line-height: 1.65; color: var(--tx-inv-dim); max-width: 270px; }
.footer-col h4 { color: #fff; font-weight: 700; font-size: .82rem; margin-bottom: .85rem; text-transform: uppercase; letter-spacing: .07em; }
.footer-col ul { list-style: none; }
.footer-col ul li { margin-bottom: .45rem; }
.footer-col ul li a { color: var(--tx-inv-dim); font-size: .84rem; transition: color .15s; }
.footer-col ul li a:hover { color: var(--violet-l); }
.footer-bottom { border-top: 1px solid var(--border-d); padding-top: 1.4rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .6rem; font-size: .78rem; }

/* ══════════════════════════════════════════════════════════
   ANIMATIONS
   ══════════════════════════════════════════════════════════ */
/* ══ WHATSAPP FLOAT + BACK TO TOP ══════════════════════════ */
.wa-float {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  width: 58px; height: 58px;
  background: #25d366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  color: #fff;
  z-index: 9990;
  box-shadow: 0 6px 24px rgba(37,211,102,.45);
  text-decoration: none;
  animation: waFloat 3s ease-in-out infinite;
  transition: transform .2s, box-shadow .2s;
}
.wa-float:hover { transform: scale(1.12) !important; box-shadow: 0 8px 32px rgba(37,211,102,.6); color: #fff; animation: none; }
@keyframes waFloat {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-5px); }
}
.wa-tooltip {
  position: absolute;
  right: 68px;
  background: #fff;
  color: var(--tx);
  border-radius: var(--r-lg);
  padding: .5rem .9rem;
  font-size: .78rem;
  font-weight: 700;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(0,0,0,.12);
  opacity: 0;
  transform: translateX(8px);
  transition: all .2s;
  pointer-events: none;
}
.wa-float:hover .wa-tooltip { opacity: 1; transform: translateX(0); }

.back-top {
  position: fixed;
  bottom: 6.5rem;
  right: 2.22rem;
  width: 42px; height: 42px;
  background: rgba(124,58,237,.88);
  backdrop-filter: blur(8px);
  border-radius: 50%;
  display: none;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: .85rem;
  z-index: 9989;
  cursor: pointer;
  border: 1.5px solid rgba(255,255,255,.2);
  box-shadow: 0 4px 14px rgba(124,58,237,.35);
  transition: background .15s, transform .15s;
  text-decoration: none;
}
.back-top.visible { display: flex; }
.back-top:hover   { background: var(--violet); transform: translateY(-3px); color: #fff; }

/* ══ NEWSLETTER ══════════════════════════════════════════════ */
.newsletter-section {
  background: linear-gradient(135deg, #070714 0%, #1a1a40 50%, #0e3a8a 100%);
  border-radius: var(--r-xl);
  padding: 3rem 2.5rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.newsletter-section::before {
  content: '';
  position: absolute;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(124,58,237,.25), transparent 70%);
  top: -100px; right: -80px;
  border-radius: 50%;
  filter: blur(50px);
  pointer-events: none;
}
.newsletter-form {
  display: flex;
  gap: .6rem;
  max-width: 480px;
  margin: 1.5rem auto 0;
  position: relative;
  z-index: 1;
  flex-wrap: wrap;
}
.newsletter-form input {
  flex: 1;
  min-width: 200px;
  padding: .88rem 1.25rem;
  border-radius: var(--r-pill);
  border: 1.5px solid rgba(255,255,255,.2);
  background: rgba(255,255,255,.08);
  color: #fff;
  font-size: .95rem;
  backdrop-filter: blur(8px);
  transition: border-color .15s;
}
.newsletter-form input::placeholder { color: rgba(255,255,255,.4); }
.newsletter-form input:focus { outline: none; border-color: rgba(167,139,250,.5); }
.newsletter-form button {
  padding: .88rem 1.4rem;
  border-radius: var(--r-pill);
  border: none;
  background: var(--g-brand);
  color: #fff;
  font-weight: 800;
  font-size: .9rem;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(124,58,237,.4);
  transition: opacity .15s, transform .15s;
}
.newsletter-form button:hover { opacity: .88; transform: translateY(-1px); }

/* ══ REFERRAL BOX ═══════════════════════════════════════════ */
.referral-box {
  background: linear-gradient(135deg, var(--violet-xl), #eff6ff);
  border: 1.5px solid var(--violet-l);
  border-radius: var(--r-xl);
  padding: 1.4rem 1.6rem;
}
.referral-link-row {
  display: flex;
  align-items: center;
  gap: .5rem;
  background: #fff;
  border: 1.5px solid var(--violet-l);
  border-radius: var(--r-lg);
  padding: .6rem .9rem;
  margin-top: .65rem;
  font-family: monospace;
  font-size: .78rem;
  color: var(--violet-d);
  word-break: break-all;
}

/* ══ CHART.JS ════════════════════════════════════════════════ */
.chart-card {
  background: #fff;
  border-radius: var(--r-xl);
  border: 1px solid var(--border);
  padding: 1.5rem;
  box-shadow: var(--sh-sm);
}
.chart-card h3 { font-size: .8rem; font-weight: 800; color: var(--tx-muted); text-transform: uppercase; letter-spacing: .07em; margin-bottom: 1.1rem; display: flex; align-items: center; gap: .4rem; }
.chart-card h3::before { content: ''; width: 3px; height: 14px; background: var(--g-brand); border-radius: 2px; display: inline-block; }

/* ══════════════════════════════════════════════════════════
   HERO INTERACTIVO — PARTÍCULAS, 3D, SOCIAL PROOF
   ══════════════════════════════════════════════════════════ */

/* Hero background morphing */
.hero {
  background: linear-gradient(-45deg, #050500, #1a1000, #0a0800, #2a1e00, #050500, #1a1000, #050500) !important;
  background-size: 400% 400% !important;
  animation: heroBgMorph 22s ease-in-out infinite !important;
}
@keyframes heroBgMorph {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Particles */
.particle {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  animation: particleRise linear infinite;
  z-index: 0;
}
@keyframes particleRise {
  0%   { transform: translateY(0) rotate(0deg); opacity: 0; }
  5%   { opacity: 1; }
  95%  { opacity: .6; }
  100% { transform: translateY(-110vh) rotate(720deg); opacity: 0; }
}

/* Gold text gradient — Fortuna360 brand */
.neon-text {
  background: linear-gradient(135deg, #f0c040 0%, #c9a227 35%, #f5d060 65%, #a07820 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: neonShimmer 4s ease-in-out infinite;
}
@keyframes neonShimmer {
  0%,100% { filter: brightness(1); }
  50%      { filter: brightness(1.2) drop-shadow(0 0 12px rgba(167,139,250,.6)); }
}

/* 3D hero card */
.hero-card-3d {
  transition: transform .08s ease-out;
  transform-style: preserve-3d;
  will-change: transform;
}
.hero-card-3d::after {
  content: '';
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(167,139,250,.3), transparent 50%, rgba(96,165,250,.2));
  border-radius: var(--r-xl);
  pointer-events: none;
  z-index: -1;
  filter: blur(8px);
  animation: cardAura 4s ease-in-out infinite;
}
@keyframes cardAura {
  0%,100% { opacity: .6; transform: scale(1); }
  50%      { opacity: 1; transform: scale(1.02); }
}

/* Social proof toast */
.sp-toast {
  position: fixed;
  bottom: 2rem;
  left: 2rem;
  background: #fff;
  border-radius: var(--r-xl);
  padding: .85rem 1.25rem;
  box-shadow: 0 8px 40px rgba(0,0,0,.18), 0 2px 8px rgba(0,0,0,.1);
  display: flex;
  align-items: center;
  gap: .85rem;
  z-index: 9999;
  transform: translateX(calc(-100% - 3rem));
  transition: transform .45s cubic-bezier(.34,1.56,.64,1);
  border-left: 3px solid var(--violet);
  max-width: 290px;
  min-width: 240px;
}
.sp-toast.show { transform: translateX(0); }
.sp-toast__avatar {
  width: 38px; height: 38px;
  border-radius: 50%;
  background: var(--g-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .85rem;
  font-weight: 900;
  color: #fff;
  flex-shrink: 0;
}
.sp-toast__body { flex: 1; }
.sp-toast__name { font-size: .82rem; font-weight: 700; color: var(--tx); }
.sp-toast__action { font-size: .72rem; color: var(--tx-muted); margin-top: .05rem; }

/* Animated urgency badge */
.live-badge {
  animation: badgePulse 2.5s ease-in-out infinite;
}
@keyframes badgePulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(124,58,237,.3); }
  50%      { box-shadow: 0 0 0 8px rgba(124,58,237,.0); }
}

/* Headline word spotlight */
.headline-word {
  display: inline-block;
  animation: wordIn .6s ease both;
}
.headline-word:nth-child(2) { animation-delay: .1s; }
.headline-word:nth-child(3) { animation-delay: .2s; }
.headline-word:nth-child(4) { animation-delay: .3s; }
@keyframes wordIn {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* CTA glow enhanced */
.btn-neon {
  position: relative;
  overflow: hidden;
}
.btn-neon::before {
  content: '';
  position: absolute;
  top: -50%; left: -50%;
  width: 200%; height: 200%;
  background: linear-gradient(45deg, transparent 30%, rgba(255,255,255,.15) 50%, transparent 70%);
  transform: translateX(-100%) rotate(45deg);
  animation: btnShine 4s ease-in-out infinite 2s;
}
@keyframes btnShine {
  0%   { transform: translateX(-100%) rotate(45deg); }
  30%  { transform: translateX(100%) rotate(45deg); }
  100% { transform: translateX(100%) rotate(45deg); }
}

/* ══ FUTURISTIC LANDING — CAROUSEL & ANIMATIONS ════════════ */

/* Grid dot pattern for hero */
.hero-grid {
  position: absolute;
  inset: 0;
  background-image: radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px);
  background-size: 32px 32px;
  pointer-events: none;
  z-index: 0;
}

/* Activity ticker */
.activity-ticker {
  background: linear-gradient(90deg, #050500, #0d0b00, #050500);
  border-top: 1px solid rgba(201,162,39,.15);
  border-bottom: 1px solid rgba(201,162,39,.25);
  padding: .5rem 0;
  overflow: hidden;
  white-space: nowrap;
}
.ticker-track {
  display: inline-flex;
  gap: 0;
  animation: ticker 35s linear infinite;
}
.ticker-track:hover { animation-play-state: paused; }
.ticker-item {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  padding: 0 2.5rem;
  font-size: .8rem;
  color: rgba(255,255,255,.92);
  font-weight: 600;
  letter-spacing: .01em;
}
.ticker-dot {
  width: 7px; height: 7px;
  background: #10b981;
  border-radius: 50%;
  box-shadow: 0 0 8px #10b981;
  flex-shrink: 0;
  animation: tickerDot 2s ease-in-out infinite;
}
@keyframes ticker {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
@keyframes tickerDot {
  0%,100% { opacity: 1; box-shadow: 0 0 6px #10b981; }
  50%      { opacity: .5; box-shadow: 0 0 14px #10b981; }
}

/* ══ PREMIUM CAROUSEL ══════════════════════════════════════ */
.carousel-section { overflow: hidden; position: relative; }
.carousel-section::before,
.carousel-section::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 100px;
  z-index: 2;
  pointer-events: none;
}
.carousel-section::before { left: 0;  background: linear-gradient(to right, #f0f0ff, transparent); }
.carousel-section::after  { right: 0; background: linear-gradient(to left,  #f0f0ff, transparent); }
.carousel-track {
  display: flex;
  gap: 1.5rem;
  width: max-content;
  /* Animación manejada por JS para precisión pixel-perfect */
  padding: 1.5rem .5rem 2rem;
  will-change: transform;
}

/* Premium card — full image, Omaze style */
.carousel-card {
  width: 280px;
  height: 340px;
  flex-shrink: 0;
  border-radius: var(--r-xl);
  overflow: hidden;
  position: relative;
  box-shadow: 0 8px 32px rgba(0,0,0,.14), 0 2px 8px rgba(0,0,0,.08);
  cursor: pointer;
  transition: transform .28s ease, box-shadow .28s ease;
  text-decoration: none;
}
.carousel-card:hover {
  transform: translateY(-10px) scale(1.015);
  box-shadow: 0 20px 60px rgba(0,0,0,.22), 0 4px 16px rgba(124,58,237,.2);
}

/* Background image with Ken Burns zoom */
.carousel-card__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transition: transform .6s ease;
  z-index: 0;
}
.carousel-card:hover .carousel-card__bg { transform: scale(1.1); }

/* Multi-layer gradient overlay */
.carousel-card__overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,.05) 0%,
      rgba(0,0,0,.15) 35%,
      rgba(0,0,0,.7)  70%,
      rgba(0,0,0,.92) 100%);
  z-index: 1;
  transition: background .3s;
}
.carousel-card:hover .carousel-card__overlay {
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,.1) 0%,
      rgba(0,0,0,.2) 30%,
      rgba(0,0,0,.78) 65%,
      rgba(0,0,0,.95) 100%);
}

/* Status badge */
.carousel-card__badge {
  position: absolute;
  top: .85rem;
  right: .85rem;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: .3rem;
  background: rgba(0,0,0,.4);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--r-pill);
  padding: .22rem .65rem;
  font-size: .62rem;
  font-weight: 800;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.carousel-card__badge--hot { background: rgba(239,68,68,.6); border-color: rgba(239,68,68,.3); }

/* Content at bottom */
.carousel-card__content {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 1.1rem 1.25rem 4.5rem;
  z-index: 2;
  transform: translateY(0);
  transition: transform .28s ease;
}
.carousel-card__prize-label { font-size: .62rem; color: rgba(255,255,255,.55); font-weight: 700; text-transform: uppercase; letter-spacing: .07em; margin-bottom: .2rem; }
.carousel-card__prize-val   { font-size: 1.05rem; font-weight: 900; color: #fff; line-height: 1.2; text-shadow: 0 2px 12px rgba(0,0,0,.4); margin-bottom: .2rem; }
.carousel-card__name        { font-size: .74rem; color: rgba(255,255,255,.65); margin-bottom: .6rem; }
.carousel-card__meta        { display: flex; align-items: center; justify-content: space-between; }
.carousel-card__price       { font-size: .88rem; font-weight: 800; color: #fbbf24; text-shadow: 0 1px 4px rgba(0,0,0,.3); }
.carousel-card__people      { font-size: .65rem; color: rgba(255,255,255,.5); display: flex; align-items: center; gap: .25rem; }

/* Slide-up CTA */
.carousel-card__cta {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 3.75rem;
  background: var(--g-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  font-size: .88rem;
  font-weight: 800;
  color: #fff;
  z-index: 3;
  transform: translateY(100%);
  transition: transform .28s ease;
}
.carousel-card:hover .carousel-card__cta { transform: translateY(0); }

/* Progress bar at very bottom */
.carousel-card__prog {
  position: absolute;
  bottom: 3.75rem;
  left: 0; right: 0;
  height: 3px;
  background: rgba(255,255,255,.15);
  z-index: 3;
}
.carousel-card__prog-fill { height: 100%; border-radius: 0; transition: width .6s; }

/* Neon CTA pulse */
.btn-neon {
  animation: neonPulse 3s ease-in-out infinite;
  background: var(--g-brand) !important;
}
@keyframes neonPulse {
  0%,100% { box-shadow: 0 4px 20px rgba(201,162,39,.4); }
  50%      { box-shadow: 0 6px 40px rgba(201,162,39,.75), 0 0 80px rgba(201,162,39,.2); }
}

/* Hero grid + glow stat pills */
.stat-glass-glow {
  animation: statGlow 4s ease-in-out infinite;
}
@keyframes statGlow {
  0%,100% { border-color: rgba(255,255,255,.1); }
  50%      { border-color: rgba(167,139,250,.35); box-shadow: 0 0 20px rgba(124,58,237,.15); }
}

/* Floating badge animation */
.float-badge { animation: floatBadge 3s ease-in-out infinite; }
@keyframes floatBadge {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-4px); }
}

/* 3D card perspective */
.sorteo-card { transform-style: preserve-3d; }

/* Counter flash on load */
@keyframes counterFlash {
  0%   { color: var(--violet-l); }
  100% { color: inherit; }
}

@keyframes floatBlob {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%  { transform: translate(30px, -40px) scale(1.05); }
  66%  { transform: translate(-20px, 20px) scale(.96); }
}
@keyframes floatCard {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-10px); }
}
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes pulse-badge {
  0%, 100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(239,68,68,.6); }
  50%       { transform: scale(1.1); box-shadow: 0 0 0 4px rgba(239,68,68,0); }
}
.fade-up   { animation: fadeUp .5s ease both; }
.fade-up-1 { animation-delay: .1s; }
.fade-up-2 { animation-delay: .2s; }
.fade-up-3 { animation-delay: .32s; }

/* ══════════════════════════════════════════════════════════
   PREMIUM USER PANEL — DESIGN UPGRADE
   ══════════════════════════════════════════════════════════ */

/* Premium hero mesh gradient — Fortuna360 brand */
.premium-hero {
  background: linear-gradient(135deg, #050500 0%, #1a1200 40%, #2d1e00 70%, #1a1000 100%);
  background-image:
    linear-gradient(135deg, #050500 0%, #1a1200 40%, #2d1e00 70%, #1a1000 100%),
    radial-gradient(at 30% 70%, rgba(201,162,39,.22) 0%, transparent 50%),
    radial-gradient(at 80% 10%, rgba(59,130,246,.25) 0%, transparent 50%),
    radial-gradient(at 0% 0%, rgba(124,58,237,.30) 0%, transparent 40%);
  background-blend-mode: normal, screen, screen, screen;
  border-radius: var(--r-xl);
  padding: 2rem 2.25rem;
  position: relative;
  overflow: hidden;
  margin-bottom: 1.5rem;
}
.premium-hero::before {
  content: '';
  position: absolute;
  width: 420px; height: 420px;
  background: radial-gradient(circle, rgba(201,162,39,.2), transparent 70%);
  top: -140px; right: -80px;
  border-radius: 50%;
  filter: blur(50px);
  pointer-events: none;
}
.premium-hero::after {
  content: '';
  position: absolute;
  width: 280px; height: 280px;
  background: radial-gradient(circle, rgba(160,120,32,.15), transparent 70%);
  bottom: -80px; left: 40px;
  border-radius: 50%;
  filter: blur(45px);
  pointer-events: none;
}
.premium-hero-content { position: relative; z-index: 1; }

/* Glass stat pills */
.stat-glass {
  display: flex;
  align-items: center;
  gap: .55rem;
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--r-lg);
  padding: .75rem 1.1rem;
  transition: background .2s;
}
.stat-glass:hover { background: rgba(255,255,255,.11); }
.stat-glass__icon { font-size: 1.4rem; }
.stat-glass__num  { font-size: 1.35rem; font-weight: 900; color: #fff; line-height: 1; letter-spacing: -.03em; }
.stat-glass__lbl  { font-size: .62rem; font-weight: 700; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .06em; margin-top: .1rem; }
.stat-glass--gold { border-color: rgba(245,158,11,.3); background: rgba(245,158,11,.1); }
.stat-glass--gold .stat-glass__num { background: linear-gradient(135deg,#fbbf24,#f59e0b); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }

/* Premium avatar */
.premium-avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #a78bfa 0%, #60a5fa 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  font-weight: 900;
  color: #fff;
  border: 3px solid rgba(255,255,255,.2);
  box-shadow: 0 0 0 6px rgba(167,139,250,.15), 0 8px 24px rgba(124,58,237,.4);
  flex-shrink: 0;
  letter-spacing: -.04em;
}

/* Premium ticket cards */
.lux-ticket {
  background: #fff;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: 0 8px 40px rgba(0,0,0,.12), 0 2px 8px rgba(0,0,0,.06);
  border: 1px solid rgba(0,0,0,.05);
  transition: transform .2s, box-shadow .2s;
  min-width: 220px;
  flex-shrink: 0;
}
.lux-ticket:hover { transform: translateY(-4px); box-shadow: 0 16px 48px rgba(201,162,39,.2), 0 4px 12px rgba(0,0,0,.1); }
.lux-ticket--winner { box-shadow: 0 8px 40px rgba(201,162,39,.3), 0 2px 8px rgba(0,0,0,.06); border-color: rgba(201,162,39,.4); }
.lux-ticket--pending { opacity: .88; }
.lux-ticket__top {
  background: linear-gradient(145deg, #050500 0%, #1a1200 45%, #0d0900 75%, #2a1e00 100%);
  padding: 1.1rem 1.25rem .85rem;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(201,162,39,.2);
}
/* Franja dorada decorativa arriba */
.lux-ticket__top::after {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  background: linear-gradient(90deg, #a07820, #f0c040, #c9a227, #f0c040, #a07820);
}
.lux-ticket__top::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 0;
  background-image:
    radial-gradient(circle at 85% 20%, rgba(201,162,39,.12) 0%, transparent 45%),
    radial-gradient(circle at 10% 80%, rgba(201,162,39,.07) 0%, transparent 40%);
}
.lux-ticket__top--winner { background: linear-gradient(135deg, #d97706 0%, #f59e0b 50%, #fbbf24 100%); }
.lux-ticket__top--gray   { background: linear-gradient(135deg, #374151 0%, #6b7280 100%); }
.lux-ticket__top--pend   { background: linear-gradient(135deg, #374151 0%, #4b5563 100%); }
.lux-ticket__brand { font-size: .55rem; font-weight: 800; color: rgba(255,255,255,.5); text-transform: uppercase; letter-spacing: .12em; margin-bottom: .5rem; position: relative; z-index: 1; display: flex; align-items: center; gap: .3rem; }
.lux-ticket__brand::after { content: ''; flex: 1; height: 1px; background: rgba(255,255,255,.15); }
.lux-ticket__prize { font-size: .9rem; font-weight: 800; color: #fff; line-height: 1.25; position: relative; z-index: 1; text-shadow: 0 1px 4px rgba(0,0,0,.25); }
.lux-ticket__sorteo { font-size: .65rem; color: rgba(255,255,255,.6); margin-top: .18rem; position: relative; z-index: 1; }
.lux-ticket__status-dot {
  position: absolute;
  top: .75rem; right: .85rem;
  display: flex;
  align-items: center;
  gap: .28rem;
  background: rgba(0,0,0,.25);
  backdrop-filter: blur(4px);
  border-radius: var(--r-pill);
  padding: .18rem .55rem;
  font-size: .6rem;
  font-weight: 800;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .05em;
  z-index: 2;
}
.lux-ticket__status-dot .dot { width: 5px; height: 5px; border-radius: 50%; }
.lux-perf {
  display: flex;
  align-items: center;
  height: 0;
  border-top: 2px dashed rgba(0,0,0,.08);
  position: relative;
  margin: 0 -1px;
}
.lux-perf::before, .lux-perf::after {
  content: '';
  position: absolute;
  width: 16px; height: 16px;
  background: var(--body);
  border-radius: 50%;
  top: -9px;
  border: 1px solid rgba(0,0,0,.08);
}
.lux-perf::before { left: -9px; }
.lux-perf::after  { right: -9px; }
.lux-ticket__body { padding: .85rem 1.25rem 1rem; }
.lux-num-label { font-size: .52rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; color: var(--tx-muted); margin-bottom: .35rem; }
.lux-num {
  font-family: 'Courier New', monospace;
  font-size: 1.5rem;
  font-weight: 900;
  letter-spacing: .18em;
  color: var(--tx);
  display: block;
  margin-bottom: .45rem;
}
.lux-barcode { display: flex; gap: 2px; height: 22px; align-items: flex-end; opacity: .4; }
.lux-barcode span { border-radius: 1px; background: var(--tx); }
.lux-ticket__foot { display: flex; align-items: center; justify-content: space-between; padding: .55rem 1.25rem .85rem; }
.lux-meta { font-size: .65rem; color: var(--tx-muted); display: flex; align-items: center; gap: .28rem; }

/* Premium sorteo cards */
.premium-sorteo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.25rem;
}
@media (max-width: 1100px) { .premium-sorteo-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px)  { .premium-sorteo-grid { grid-template-columns: 1fr; } }

.premium-sc {
  background: #fff;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,.08);
  border: 1px solid rgba(0,0,0,.05);
  transition: transform .2s ease, box-shadow .2s ease;
  display: flex;
  flex-direction: column;
}
.premium-sc:hover { transform: translateY(-5px); box-shadow: 0 12px 48px rgba(124,58,237,.14); }
.premium-sc__cover {
  background: var(--g-brand);
  height: 130px;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: .85rem 1.1rem;
}
.premium-sc__cover::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.15) 0%, transparent 40%),
    radial-gradient(circle at 10% 80%, rgba(0,0,0,.2) 0%, transparent 50%);
}
.premium-sc__cover--photo {
  background-size: cover !important;
  background-position: center !important;
}
.premium-sc__cover--photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.05) 0%, rgba(0,0,0,.6) 100%);
}
.premium-sc__cover--gold   { background: linear-gradient(135deg, #d97706 0%, #f59e0b 100%); }
.premium-sc__cover--gray   { background: linear-gradient(135deg, #374151 0%, #6b7280 100%); }
.premium-sc__badge {
  position: absolute;
  top: .75rem; right: .75rem;
  background: rgba(255,255,255,.18);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: var(--r-pill);
  padding: .2rem .6rem;
  font-size: .62rem;
  font-weight: 800;
  color: #fff;
  text-transform: uppercase;
  letter-spacing: .05em;
  z-index: 2;
}
.premium-sc__icon { font-size: 2.75rem; position: relative; z-index: 1; margin-bottom: .25rem; filter: drop-shadow(0 4px 12px rgba(0,0,0,.3)); }
.premium-sc__prize { font-size: 1.15rem; font-weight: 900; color: #fff; position: relative; z-index: 2; text-shadow: 0 2px 8px rgba(0,0,0,.3); line-height: 1.2; }
.premium-sc__body { padding: 1rem 1.1rem .85rem; flex: 1; display: flex; flex-direction: column; gap: .6rem; }
.premium-sc__title { font-size: .92rem; font-weight: 800; color: var(--tx); letter-spacing: -.02em; line-height: 1.25; }
.premium-sc__co { font-size: .72rem; color: var(--tx-muted); display: flex; align-items: center; gap: .28rem; }
.premium-sc__cntdn { display: flex; gap: .28rem; }
.premium-sc__cntdn .cu { background: #f5f4ff; border-radius: .4rem; padding: .25rem .42rem; min-width: 38px; text-align: center; }
.premium-sc__cntdn .cu-n { display: block; font-size: .88rem; font-weight: 900; color: var(--violet); line-height: 1; }
.premium-sc__cntdn .cu-l { display: block; font-size: .52rem; color: var(--tx-muted); text-transform: uppercase; }
.premium-sc__price { font-weight: 800; font-size: .9rem; color: var(--tx); display: flex; align-items: baseline; gap: .25rem; margin-top: auto; }
.premium-sc__price .per { font-size: .72rem; color: var(--tx-muted); font-weight: 400; }
.premium-sc__cta { padding: 0 1.1rem 1.1rem; }

/* Premium section headers */
.premium-section { margin-bottom: 2rem; }
.premium-section-hdr { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.1rem; }
.premium-section-title {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .78rem;
  font-weight: 800;
  color: var(--tx);
  text-transform: uppercase;
  letter-spacing: .07em;
}
.premium-section-title .line {
  height: 2px;
  width: 20px;
  background: var(--g-brand);
  border-radius: 2px;
}
.premium-section-link { font-size: .82rem; color: var(--violet); font-weight: 600; text-decoration: none; display: flex; align-items: center; gap: .25rem; transition: gap .15s; }
.premium-section-link:hover { gap: .45rem; color: var(--violet-d); }

/* Premium admin KPI enhancements */
.premium-kpi {
  border-radius: var(--r-xl);
  padding: 1.5rem 1.35rem;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 20px rgba(0,0,0,.12);
}
.premium-kpi::before {
  content: '';
  position: absolute;
  width: 100px; height: 100px;
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  top: -25px; right: -25px;
}
.premium-kpi::after {
  content: '';
  position: absolute;
  width: 60px; height: 60px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  bottom: -15px; left: -15px;
}
.premium-kpi__icon { font-size: 1.6rem; margin-bottom: .4rem; position: relative; z-index: 1; }
.premium-kpi__num { font-size: 2.25rem; font-weight: 900; color: #fff; letter-spacing: -.06em; line-height: 1; position: relative; z-index: 1; }
.premium-kpi__lbl { font-size: .68rem; font-weight: 700; color: rgba(255,255,255,.65); text-transform: uppercase; letter-spacing: .06em; margin-top: .25rem; position: relative; z-index: 1; }
.premium-kpi--v { background: linear-gradient(135deg, #7c3aed 0%, #5b21b6 100%); }
.premium-kpi--b { background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%); }
.premium-kpi--g { background: linear-gradient(135deg, #059669 0%, #047857 100%); }
.premium-kpi--o { background: linear-gradient(135deg, #d97706 0%, #b45309 100%); }

/* ══════════════════════════════════════════════════════════
   SUPER COOL ADMIN PANEL
   ══════════════════════════════════════════════════════════ */
.admin-dash-hero {
  background: linear-gradient(135deg, #050500 0%, #1a1200 35%, #2d1e00 60%, #1a1000 100%);
  padding: 2.75rem 0 2.25rem;
  position: relative;
  overflow: hidden;
}
.admin-dash-hero::before {
  content: '';
  position: absolute;
  width: 500px; height: 500px;
  background: radial-gradient(circle, rgba(201,162,39,.22), transparent 70%);
  top: -150px; right: -100px;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
}
.admin-dash-hero::after {
  content: '';
  position: absolute;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(160,120,32,.18), transparent 70%);
  bottom: -100px; left: 100px;
  border-radius: 50%;
  filter: blur(50px);
  pointer-events: none;
}
.admin-dash-hero .container { position: relative; z-index: 1; }
.admin-hero-avatar {
  width: 68px; height: 68px;
  border-radius: 50%;
  background: linear-gradient(135deg, #c9a227, #f0c040);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.6rem;
  font-weight: 900;
  color: #fff;
  border: 3px solid rgba(255,255,255,.15);
  box-shadow: 0 0 0 6px rgba(79,70,229,.2), 0 8px 28px rgba(37,99,235,.4);
  flex-shrink: 0;
}
.admin-hero-eyebrow {
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: rgba(255,255,255,.35);
  margin-bottom: .3rem;
}
.admin-hero-title {
  font-size: clamp(1.4rem, 3vw, 2rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -.05em;
  line-height: 1.05;
  margin-bottom: .3rem;
}
.admin-hero-sub {
  font-size: .82rem;
  color: rgba(255,255,255,.45);
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
}
.admin-metric-pill {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--r-pill);
  padding: .4rem .85rem;
  font-size: .78rem;
  color: rgba(255,255,255,.75);
  font-weight: 600;
  backdrop-filter: blur(8px);
  transition: background .15s;
}
.admin-metric-pill:hover { background: rgba(255,255,255,.1); color: #fff; }
.admin-metric-pill strong { color: #fff; }

/* Super KPI cards */
.super-kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1rem; margin-bottom: 1.5rem; }
@media (max-width: 900px) { .super-kpi-grid { grid-template-columns: repeat(2,1fr); } }
.super-kpi {
  border-radius: var(--r-xl);
  padding: 1.6rem 1.4rem 1.4rem;
  position: relative;
  overflow: hidden;
  cursor: default;
  transition: transform .2s, box-shadow .2s;
}
.super-kpi:hover { transform: translateY(-3px); }
.super-kpi--v { background: linear-gradient(135deg,#7c3aed,#4c1d95); box-shadow: 0 6px 24px rgba(124,58,237,.35); }
.super-kpi--b { background: linear-gradient(135deg,#2563eb,#1e40af); box-shadow: 0 6px 24px rgba(37,99,235,.35); }
.super-kpi--g { background: linear-gradient(135deg,#059669,#065f46); box-shadow: 0 6px 24px rgba(5,150,105,.35); }
.super-kpi--o { background: linear-gradient(135deg,#d97706,#92400e); box-shadow: 0 6px 24px rgba(217,119,6,.35); }
.super-kpi::before {
  content: '';
  position: absolute;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  top: -35px; right: -25px;
}
.super-kpi::after {
  content: '';
  position: absolute;
  width: 70px; height: 70px;
  border-radius: 50%;
  background: rgba(255,255,255,.06);
  bottom: -20px; left: -15px;
}
.super-kpi__emoji { font-size: 1.75rem; margin-bottom: .5rem; position: relative; z-index: 1; filter: drop-shadow(0 2px 8px rgba(0,0,0,.2)); }
.super-kpi__num   { font-size: 2.4rem; font-weight: 900; color: #fff; letter-spacing: -.06em; line-height: 1; position: relative; z-index: 1; }
.super-kpi__label { font-size: .68rem; font-weight: 700; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .07em; margin-top: .25rem; position: relative; z-index: 1; }
.super-kpi__trend { font-size: .7rem; color: rgba(255,255,255,.5); position: relative; z-index: 1; margin-top: .15rem; }

/* Big action cards */
.big-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: .85rem; }
@media (max-width: 768px) { .big-actions { grid-template-columns: repeat(2,1fr); } }
.big-action-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .5rem;
  padding: 1.4rem 1.25rem;
  background: #fff;
  border: 1.5px solid var(--border);
  border-radius: var(--r-xl);
  text-decoration: none;
  color: var(--tx);
  transition: all .2s;
  position: relative;
  overflow: hidden;
}
.big-action-card:hover { border-color: var(--violet); box-shadow: var(--sh-lg); transform: translateY(-3px); color: var(--tx); }
.big-action-card--alert { border-color: #fde68a; background: #fffbeb; }
.big-action-card--alert:hover { border-color: #f59e0b; box-shadow: 0 8px 30px rgba(245,158,11,.2); }
.big-action-card--primary { background: var(--g-brand); border-color: transparent; }
.big-action-card--primary:hover { box-shadow: 0 8px 30px rgba(124,58,237,.4); }
.big-action-icon {
  width: 48px; height: 48px;
  border-radius: var(--r-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  margin-bottom: .15rem;
}
.big-action-title { font-size: .95rem; font-weight: 800; letter-spacing: -.02em; }
.big-action-sub   { font-size: .75rem; color: var(--tx-muted); }
.big-action-card--primary .big-action-title { color: #fff; }
.big-action-card--primary .big-action-sub   { color: rgba(255,255,255,.65); }
.big-action-badge {
  position: absolute;
  top: .9rem; right: .9rem;
  background: var(--danger);
  color: #fff;
  border-radius: var(--r-pill);
  padding: .15rem .55rem;
  font-size: .65rem;
  font-weight: 900;
}

/* Settings constructor tabs */
.constructor-tabs {
  display: flex;
  gap: .3rem;
  flex-wrap: wrap;
  margin-bottom: 2rem;
  border-bottom: 1.5px solid var(--border);
  padding-bottom: .75rem;
}
.constructor-tab {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .45rem .9rem;
  border-radius: var(--r);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  border: 1.5px solid transparent;
  background: transparent;
  color: var(--tx-muted);
  transition: all .15s;
}
.constructor-tab:hover { background: var(--body); color: var(--tx); }
.constructor-tab.active {
  background: var(--violet-xl);
  color: var(--violet);
  border-color: var(--violet-l);
  font-weight: 800;
}
.constructor-tab i { font-size: .78rem; }

/* Dynamic list item (FAQ, Why, etc.) */
.dyn-item {
  background: #fafafa;
  border: 1.5px solid var(--border);
  border-radius: var(--r-lg);
  padding: 1rem 1.1rem;
  display: grid;
  gap: .6rem;
  transition: border-color .15s;
  margin-bottom: .6rem;
}
.dyn-item:hover { border-color: var(--violet-l); }
.dyn-item__row { display: flex; gap: .5rem; align-items: flex-start; }
.dyn-item input, .dyn-item textarea {
  flex: 1;
  padding: .65rem .9rem;
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  font-size: .88rem;
  background: #fff;
  transition: border-color .15s;
}
.dyn-item input:focus, .dyn-item textarea:focus { outline: none; border-color: var(--violet); }
.dyn-item textarea { resize: vertical; min-height: 60px; }
.dyn-remove {
  width: 32px; height: 32px;
  border: 1px solid #fecaca;
  background: #fee2e2;
  color: var(--danger);
  border-radius: var(--r);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  margin-top: .4rem;
  font-size: .8rem;
  transition: background .15s;
}
.dyn-remove:hover { background: var(--danger); color: #fff; }
.add-item-btn {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  padding: .6rem 1rem;
  background: transparent;
  border: 1.5px dashed var(--border);
  border-radius: var(--r);
  color: var(--tx-muted);
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: all .15s;
  width: 100%;
  justify-content: center;
  margin-top: .25rem;
}
.add-item-btn:hover { border-color: var(--violet); color: var(--violet); background: var(--violet-xl); }

/* ══ LANDING PAGE SECTIONS ════════════════════════════════ */
/* Featured sorteo (Omaze-style) */
.featured-wrap {
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: 0 12px 60px rgba(0,0,0,.15);
  display: grid;
  grid-template-columns: 1fr 380px;
}
@media (max-width: 900px) { .featured-wrap { grid-template-columns: 1fr; } }
.featured-visual {
  background: var(--g-brand);
  position: relative;
  overflow: hidden;
  min-height: 380px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  padding: 2.5rem;
}
.featured-visual::before {
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.12) 0%, transparent 40%),
    radial-gradient(circle at 10% 80%, rgba(0,0,0,.25) 0%, transparent 50%),
    linear-gradient(to top, rgba(0,0,0,.5) 0%, transparent 60%);
  z-index: 1;
}
.featured-visual--photo { background-size: cover !important; background-position: center !important; }
.featured-visual-content { position: relative; z-index: 2; }
.featured-visual-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: rgba(245,158,11,.9);
  color: #fff;
  border-radius: var(--r-pill);
  padding: .28rem .85rem;
  font-size: .72rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: .85rem;
  backdrop-filter: blur(4px);
}
.featured-visual-prize {
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 900;
  color: #fff;
  line-height: 1.05;
  letter-spacing: -.04em;
  text-shadow: 0 2px 20px rgba(0,0,0,.3);
  margin-bottom: .4rem;
}
.featured-visual-title { font-size: 1.05rem; color: rgba(255,255,255,.8); font-weight: 600; margin-bottom: 1.25rem; }
.featured-live {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .82rem;
  color: rgba(255,255,255,.75);
}
.featured-live .dot {
  width: 8px; height: 8px;
  background: #10b981;
  border-radius: 50%;
  box-shadow: 0 0 8px #10b981;
  flex-shrink: 0;
  animation: livePulse 2s infinite;
}
@keyframes livePulse {
  0%,100% { box-shadow: 0 0 6px #10b981; opacity:1; }
  50%      { box-shadow: 0 0 14px #10b981; opacity:.7; }
}
.featured-info {
  background: #fff;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.featured-info h3 { font-size: 1.1rem; font-weight: 900; color: var(--tx); letter-spacing: -.03em; margin-bottom: .1rem; }
.featured-company { font-size: .8rem; color: var(--tx-muted); display: flex; align-items: center; gap: .3rem; }
.featured-price-box {
  background: linear-gradient(135deg, var(--f360-gold-xl), #fffbef);
  border: 1.5px solid rgba(201,162,39,.5);
  border-radius: var(--r-lg);
  padding: 1.1rem;
  text-align: center;
}
.featured-price { font-size: 2rem; font-weight: 900; background: var(--g-brand); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.featured-price-lbl { font-size: .72rem; color: var(--tx-muted); margin-top: .1rem; }
.featured-countdown-lbl { font-size: .68rem; font-weight: 800; color: var(--tx-muted); text-transform: uppercase; letter-spacing: .06em; margin-bottom: .4rem; }
.featured-countdown { display: flex; gap: .4rem; }
.featured-countdown .fu { background: var(--dark-2); border-radius: var(--r); padding: .6rem .7rem; min-width: 52px; text-align: center; }
.featured-countdown .fu-n { display: block; font-size: 1.3rem; font-weight: 900; color: #fff; line-height: 1; }
.featured-countdown .fu-l { display: block; font-size: .58rem; color: rgba(255,255,255,.5); text-transform: uppercase; margin-top: .15rem; }
.featured-trust { display: flex; gap: .75rem; font-size: .72rem; color: var(--tx-muted); flex-wrap: wrap; }
.featured-trust span { display: flex; align-items: center; gap: .25rem; }
.featured-trust i { color: var(--success); font-size: .7rem; }

/* Winners section */
.winners-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }
@media (max-width: 900px)  { .winners-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 500px)  { .winners-grid { grid-template-columns: 1fr; } }
.winner-card {
  background: linear-gradient(145deg, #0d0b00, #1a1400, #0a0800);
  border-radius: var(--r-xl);
  padding: 1.5rem 1.25rem;
  text-align: center;
  border: 1px solid rgba(201,162,39,.2);
  box-shadow: 0 4px 20px rgba(0,0,0,.35);
  transition: transform .2s, box-shadow .2s, border-color .2s;
}
.winner-card:hover {
  transform: translateY(-4px);
  border-color: rgba(201,162,39,.5);
  box-shadow: 0 8px 32px rgba(201,162,39,.18), 0 2px 8px rgba(0,0,0,.4);
}
.winner-name   { font-size: .92rem; font-weight: 800; color: rgba(255,255,255,.9); margin-bottom: .2rem; }
.winner-date   { font-size: .7rem; color: rgba(255,255,255,.38); }
.winner-quote  { font-size: .78rem; color: rgba(255,255,255,.5); font-style: italic; margin-top: .65rem; line-height: 1.55; border-top: 1px solid rgba(201,162,39,.12); padding-top: .65rem; }
.winner-avatar {
  width: 56px; height: 56px;
  background: var(--g-brand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  font-weight: 900;
  color: #fff;
  margin: 0 auto .85rem;
  border: 3px solid var(--violet-xl);
}
.winner-name   { font-size: .92rem; font-weight: 800; color: var(--tx); margin-bottom: .2rem; }
.winner-prize  { font-size: .78rem; color: var(--f360-gold-l); font-weight: 700; margin-bottom: .2rem; }
.winner-date   { font-size: .7rem; color: var(--tx-muted); }
.winner-quote  { font-size: .78rem; color: var(--tx-muted); font-style: italic; margin-top: .65rem; line-height: 1.55; }
.winner-verified { font-size: .65rem; color: var(--success); display: flex; align-items: center; gap: .25rem; justify-content: center; margin-top: .5rem; }

/* Why choose us */
.why-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1.25rem; }
@media (max-width: 900px) { .why-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px) { .why-grid { grid-template-columns: 1fr; } }
.why-item {
  background: #fff;
  border-radius: var(--r-xl);
  padding: 1.75rem 1.5rem;
  text-align: center;
  border: 1px solid var(--border);
  box-shadow: var(--sh-sm);
  transition: transform .2s, box-shadow .2s;
}
.why-item:hover { transform: translateY(-4px); box-shadow: 0 8px 32px rgba(201,162,39,.16), 0 2px 8px rgba(0,0,0,.06); border-color: rgba(201,162,39,.4); }
.why-icon {
  width: 60px; height: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  margin: 0 auto 1rem;
}
.why-item h4 { font-size: .95rem; font-weight: 800; color: var(--tx); margin-bottom: .4rem; letter-spacing: -.02em; }
.why-item p  { font-size: .82rem; color: var(--tx-muted); line-height: 1.65; margin: 0; }

/* FAQ */
.faq-list { display: flex; flex-direction: column; gap: .6rem; max-width: 780px; margin: 0 auto; }
.faq-item {
  background: #fff;
  border-radius: var(--r-lg);
  border: 1.5px solid var(--border);
  overflow: hidden;
  transition: border-color .2s;
}
.faq-item[open] { border-color: rgba(201,162,39,.55); background: linear-gradient(180deg, #fffef7, #fff); }
.faq-item summary {
  padding: 1.1rem 1.35rem;
  font-weight: 700;
  font-size: .92rem;
  color: var(--tx);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  list-style: none;
  user-select: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
  content: '\f078';
  font-family: 'Font Awesome 6 Free';
  font-weight: 900;
  font-size: .72rem;
  color: var(--tx-muted);
  transition: transform .25s;
  flex-shrink: 0;
}
.faq-item[open] summary::after { transform: rotate(180deg); color: var(--f360-gold); }
.faq-item[open] summary { color: var(--f360-gold-d); }
.faq-answer { padding: 0 1.35rem 1.1rem; color: var(--tx-muted); font-size: .88rem; line-height: 1.7; }

/* Stats ticker enhanced */
.stats-ticker {
  background: #fff;
  border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--border);
  padding: 1.4rem 0;
  overflow: hidden;
  position: relative;
}
.stats-ticker::before,
.stats-ticker::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 60px;
  z-index: 1;
  pointer-events: none;
}
.stats-ticker::before { left: 0; background: linear-gradient(to right, #fff, transparent); }
.stats-ticker::after  { right: 0; background: linear-gradient(to left, #fff, transparent); }
.stats-ticker-inner { display: flex; gap: 3rem; align-items: center; justify-content: center; flex-wrap: wrap; }
.stats-ticker-item { text-align: center; display: flex; align-items: center; gap: .85rem; }
.stats-ticker-icon { font-size: 2rem; }
.stats-ticker-num { font-size: 1.85rem; font-weight: 900; background: var(--g-brand); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; line-height: 1; }
.stats-ticker-lbl { font-size: .72rem; font-weight: 700; color: var(--tx-muted); text-transform: uppercase; letter-spacing: .06em; margin-top: .15rem; }

/* ══ USER SIDEBAR ════════════════════════════════════════ */
.user-layout { display: flex; min-height: calc(100vh - 60px); }
.user-sidebar {
  width: 220px;
  background: #fff;
  border-right: 1px solid var(--border);
  flex-shrink: 0;
  position: sticky;
  top: 60px;
  height: calc(100vh - 60px);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  z-index: 200;
}
.user-sidebar::-webkit-scrollbar { width: 3px; }
.user-sidebar::-webkit-scrollbar-thumb { background: var(--border); }
.user-sidebar-profile {
  padding: 1.25rem 1rem 1rem;
  border-bottom: 1px solid var(--border);
  text-align: center;
}
.user-sidebar-avatar {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--g-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  font-weight: 900;
  color: #fff;
  margin: 0 auto .65rem;
  border: 3px solid var(--violet-xl);
  letter-spacing: -.03em;
}
.user-sidebar-name  { font-size: .84rem; font-weight: 800; color: var(--tx); margin-bottom: .15rem; }
.user-sidebar-role  {
  display: inline-flex;
  align-items: center;
  gap: .28rem;
  background: var(--violet-xl);
  color: var(--violet-d);
  border-radius: var(--r-pill);
  padding: .15rem .6rem;
  font-size: .65rem;
  font-weight: 700;
}
.user-sidebar-nav { flex: 1; padding: .6rem .5rem; }
.user-sidebar-section { margin-bottom: .65rem; }
.user-sidebar-label {
  padding: .35rem .7rem;
  font-size: .58rem;
  font-weight: 800;
  color: rgba(0,0,0,.25);
  text-transform: uppercase;
  letter-spacing: .1em;
  display: block;
}
.user-sidebar-link {
  display: flex;
  align-items: center;
  gap: .58rem;
  padding: .55rem .75rem;
  border-radius: var(--r);
  color: var(--tx-muted);
  text-decoration: none;
  font-size: .83rem;
  font-weight: 600;
  transition: background .14s, color .14s;
  margin-bottom: .08rem;
}
.user-sidebar-link:hover { background: var(--body); color: var(--violet); }
.user-sidebar-link.active { background: var(--violet-xl); color: var(--violet); font-weight: 700; }
.user-sidebar-link i { width: 16px; text-align: center; font-size: .8rem; flex-shrink: 0; }
.user-sidebar-link .link-badge {
  margin-left: auto;
  background: var(--violet);
  color: #fff;
  border-radius: var(--r-pill);
  padding: .1rem .45rem;
  font-size: .6rem;
  font-weight: 800;
  min-width: 18px;
  text-align: center;
}
.user-sidebar-bottom {
  padding: .5rem;
  border-top: 1px solid var(--border);
}
.user-main { flex: 1; overflow-x: auto; background: var(--body); min-width: 0; }
.user-sidebar-toggle {
  display: none;
  position: fixed;
  bottom: 1.4rem;
  right: 1.4rem;
  width: 46px; height: 46px;
  background: var(--g-brand);
  border-radius: 50%;
  border: none;
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  z-index: 500;
  box-shadow: 0 4px 16px rgba(124,58,237,.45);
  align-items: center;
  justify-content: center;
}
.user-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.4);
  z-index: 590;
}
.user-overlay.open { display: block; }
@media (max-width: 820px) {
  .user-sidebar {
    position: fixed;
    top: 0; left: -240px;
    height: 100vh;
    z-index: 600;
    transition: left .25s ease;
    width: 240px;
    box-shadow: none;
  }
  .user-sidebar.open { left: 0; box-shadow: 8px 0 32px rgba(0,0,0,.25); }
  .user-sidebar-toggle { display: flex; }
  .user-main { width: 100%; }
}

/* ══ DASHBOARD REDISEÑO PROFESIONAL ═══════════════════ */
.dash-hero {
  background: var(--g-hero);
  border-radius: var(--r-xl);
  padding: 2rem 2.25rem;
  position: relative;
  overflow: hidden;
  margin-bottom: 1.5rem;
}
.dash-hero::before {
  content: '';
  position: absolute;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(124,58,237,.3), transparent 70%);
  top: -100px; right: -80px;
  border-radius: 50%;
  filter: blur(60px);
  pointer-events: none;
}
.dash-hero::after {
  content: '';
  position: absolute;
  width: 250px; height: 250px;
  background: radial-gradient(circle, rgba(37,99,235,.25), transparent 70%);
  bottom: -80px; left: 20px;
  border-radius: 50%;
  filter: blur(50px);
  pointer-events: none;
}
.dash-hero__content { position: relative; z-index: 1; }
.dash-avatar {
  width: 60px; height: 60px;
  background: linear-gradient(135deg, #a78bfa, #60a5fa);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: 900;
  color: #fff;
  border: 3px solid rgba(255,255,255,.2);
  box-shadow: 0 4px 20px rgba(124,58,237,.4);
  flex-shrink: 0;
  letter-spacing: -.03em;
}
.dash-hero__name {
  font-size: clamp(1.25rem, 3vw, 1.75rem);
  font-weight: 900;
  color: #fff;
  letter-spacing: -.04em;
  line-height: 1.1;
}
.dash-hero__sub {
  font-size: .82rem;
  color: rgba(255,255,255,.55);
  display: flex;
  align-items: center;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: .2rem;
}
.dash-hero__badge {
  background: rgba(124,58,237,.35);
  border: 1px solid rgba(167,139,250,.4);
  color: var(--violet-l);
  border-radius: var(--r-pill);
  padding: .15rem .6rem;
  font-size: .7rem;
  font-weight: 700;
}
.dash-stat-pills {
  display: flex;
  gap: .5rem;
  flex-wrap: wrap;
  margin-top: 1.25rem;
}
.dash-stat-pill {
  display: flex;
  align-items: center;
  gap: .4rem;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--r-pill);
  padding: .38rem .85rem;
  backdrop-filter: blur(8px);
}
.dash-stat-pill__num { font-size: 1rem; font-weight: 900; color: #fff; line-height: 1; }
.dash-stat-pill__lbl { font-size: .65rem; font-weight: 700; color: rgba(255,255,255,.55); text-transform: uppercase; letter-spacing: .06em; }

/* Mini KPI cards del hero (admin) */
.dash-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1rem;
  margin-bottom: 1.5rem;
}
@media (max-width: 900px) { .dash-kpi-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px)  { .dash-kpi-grid { grid-template-columns: 1fr; } }
.dash-kpi {
  border-radius: var(--r-lg);
  padding: 1.4rem 1.25rem;
  position: relative;
  overflow: hidden;
}
.dash-kpi::after {
  content: '';
  position: absolute;
  width: 80px; height: 80px;
  border-radius: 50%;
  background: rgba(255,255,255,.1);
  top: -20px; right: -20px;
}
.dash-kpi--violet { background: linear-gradient(135deg, #7c3aed, #5b21b6); box-shadow: 0 4px 20px rgba(124,58,237,.35); }
.dash-kpi--blue   { background: linear-gradient(135deg, #2563eb, #1d4ed8); box-shadow: 0 4px 20px rgba(37,99,235,.35); }
.dash-kpi--green  { background: linear-gradient(135deg, #059669, #047857); box-shadow: 0 4px 20px rgba(5,150,105,.35); }
.dash-kpi--gold   { background: linear-gradient(135deg, #d97706, #b45309); box-shadow: 0 4px 20px rgba(217,119,6,.35); }
.dash-kpi__icon { font-size: 1.5rem; margin-bottom: .4rem; }
.dash-kpi__num   { font-size: 2rem; font-weight: 900; color: #fff; line-height: 1; letter-spacing: -.05em; }
.dash-kpi__label { font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.7); text-transform: uppercase; letter-spacing: .06em; margin-top: .2rem; }

/* Mini ticket para dashboard */
.mini-ticket {
  background: #fff;
  border-radius: var(--r-lg);
  overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: var(--sh-sm);
  transition: transform .18s, box-shadow .18s;
  min-width: 200px;
  flex-shrink: 0;
}
.mini-ticket:hover { transform: translateY(-3px); box-shadow: var(--sh-md); }
.mini-ticket__top {
  background: var(--g-brand);
  padding: .85rem 1rem;
  position: relative;
  overflow: hidden;
}
.mini-ticket__top::after {
  content: '';
  position: absolute;
  width: 60px; height: 60px;
  background: rgba(255,255,255,.1);
  border-radius: 50%;
  top: -15px; right: -15px;
}
.mini-ticket__top--gold    { background: var(--g-gold); }
.mini-ticket__top--gray    { background: var(--g-gray); }
.mini-ticket__top--pending { background: linear-gradient(135deg,#374151,#6b7280); }
.mini-ticket__prize  { font-size: .8rem; font-weight: 800; color: #fff; line-height: 1.3; position: relative; z-index: 1; }
.mini-ticket__sorteo { font-size: .65rem; color: rgba(255,255,255,.65); margin-top: .18rem; position: relative; z-index: 1; }
.mini-ticket__body   { padding: .7rem 1rem .85rem; }
.mini-ticket__num    { font-family: 'Courier New', monospace; font-size: .95rem; font-weight: 900; letter-spacing: .1em; color: var(--tx); }
.mini-ticket__row    { display: flex; align-items: center; justify-content: space-between; margin-top: .3rem; }
.mini-ticket__status { font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.mini-ticket__status--active  { color: var(--success); }
.mini-ticket__status--pending { color: var(--gold-d); }
.mini-ticket__status--winner  { color: var(--gold-d); }
.mini-ticket__status--lost    { color: var(--tx-muted); }

/* Scroll horizontal de tickets */
.tickets-scroll {
  display: flex;
  gap: 1rem;
  overflow-x: auto;
  padding-bottom: .5rem;
  scrollbar-width: thin;
  scrollbar-color: var(--border) transparent;
}
.tickets-scroll::-webkit-scrollbar { height: 4px; }
.tickets-scroll::-webkit-scrollbar-track { background: transparent; }
.tickets-scroll::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }

/* Dashboard section titles */
.dash-section-hdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 1rem;
}
.dash-section-title {
  font-size: .75rem;
  font-weight: 800;
  color: var(--tx-muted);
  text-transform: uppercase;
  letter-spacing: .08em;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.dash-section-title i { color: var(--violet); }
.dash-section-link {
  font-size: .82rem;
  color: var(--violet);
  font-weight: 600;
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: .25rem;
}
.dash-section-link:hover { color: var(--violet-d); }

/* Pending alert */
.pending-alert {
  background: linear-gradient(135deg, #fffbeb, #fef3c7);
  border: 1.5px solid #fde68a;
  border-radius: var(--r-lg);
  padding: 1rem 1.25rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
.pending-alert__icon { font-size: 1.75rem; flex-shrink: 0; }
.pending-alert__num  { font-size: 1.5rem; font-weight: 900; color: #92400e; line-height: 1; }
.pending-alert__lbl  { font-size: .7rem; font-weight: 700; color: #b45309; text-transform: uppercase; letter-spacing: .05em; }
.pending-alert__text { font-size: .82rem; color: #92400e; line-height: 1.5; }

/* Onboarding card (sin boletas) */
.onboarding-card {
  background: linear-gradient(135deg, var(--violet-xl) 0%, #eff6ff 100%);
  border: 1.5px solid var(--violet-l);
  border-radius: var(--r-xl);
  padding: 2.5rem;
  text-align: center;
}
.onboarding-card__icon { font-size: 3.5rem; margin-bottom: 1rem; }
.onboarding-card h3 { font-size: 1.2rem; font-weight: 900; color: var(--tx); margin-bottom: .5rem; letter-spacing: -.03em; }
.onboarding-card p  { color: var(--tx-muted); font-size: .9rem; margin-bottom: 1.5rem; line-height: 1.65; max-width: 380px; margin-left: auto; margin-right: auto; }
.onboarding-steps {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 1.75rem;
}
.onboarding-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  max-width: 100px;
}
.onboarding-step__icon {
  width: 44px; height: 44px;
  background: var(--g-brand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  color: #fff;
  box-shadow: 0 4px 14px rgba(124,58,237,.3);
}
.onboarding-step__label { font-size: .72rem; font-weight: 700; color: var(--tx); text-align: center; line-height: 1.35; }

/* Admin quick action buttons */
.admin-action-btn {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1rem 1.25rem;
  background: #fff;
  border: 1.5px solid var(--border);
  border-radius: var(--r-lg);
  text-decoration: none;
  color: var(--tx);
  font-weight: 700;
  font-size: .88rem;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.admin-action-btn:hover { border-color: var(--violet); transform: translateY(-2px); box-shadow: var(--sh-sm); color: var(--violet); }
.admin-action-btn i { font-size: 1.2rem; color: var(--violet); width: 22px; text-align: center; }
.admin-action-btn .lbl { font-size: .72rem; color: var(--tx-muted); font-weight: 400; display: block; margin-top: .05rem; }

/* ══════════════════════════════════════════════════════════
   USER PANEL — TICKET CARDS
   ══════════════════════════════════════════════════════════ */
.tickets-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
  gap: 1.5rem;
}
.ticket-card {
  background: #fff;
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
  transition: transform .2s, box-shadow .2s;
}
.ticket-card:hover { transform: translateY(-3px); box-shadow: var(--sh-lg); }
.ticket-card--winner { border-color: var(--gold); box-shadow: 0 4px 24px rgba(245,158,11,.22); }
.ticket-card--winner:hover { box-shadow: 0 10px 40px rgba(245,158,11,.35); }
.ticket-card__top {
  background: var(--g-brand);
  padding: 1.2rem 1.4rem .9rem;
  position: relative;
  overflow: hidden;
}
.ticket-card__top::before {
  content: '';
  position: absolute;
  width: 160px; height: 160px;
  background: radial-gradient(circle, rgba(255,255,255,.12), transparent 70%);
  top: -50px; right: -30px;
  border-radius: 50%;
}
.ticket-card__top--winner { background: linear-gradient(135deg, #d97706, #f59e0b, #fbbf24); }
.ticket-card__top--lost   { background: var(--g-gray); }
.ticket-card__top--wait   { background: linear-gradient(135deg, #374151, #6b7280); }
.ticket-card__status {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .22rem .65rem;
  border-radius: var(--r-pill);
  font-size: .66rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  background: rgba(255,255,255,.18);
  color: #fff;
  backdrop-filter: blur(4px);
  margin-bottom: .6rem;
  position: relative;
  z-index: 1;
}
.ticket-card__prize {
  font-size: 1rem;
  font-weight: 800;
  color: #fff;
  line-height: 1.3;
  position: relative;
  z-index: 1;
}
.ticket-card__company {
  font-size: .73rem;
  color: rgba(255,255,255,.65);
  margin-top: .2rem;
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  gap: .28rem;
}
.ticket-divider {
  height: 0;
  border-top: 2px dashed var(--border);
  position: relative;
}
.ticket-divider::before,
.ticket-divider::after {
  content: '';
  position: absolute;
  width: 18px; height: 18px;
  background: var(--body);
  border-radius: 50%;
  border: 2px solid var(--border);
  top: -11px;
}
.ticket-divider::before { left: -11px; }
.ticket-divider::after  { right: -11px; }
.ticket-card__num {
  padding: .9rem 1.4rem .65rem;
  text-align: center;
}
.ticket-num-label {
  font-size: .62rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--tx-muted);
  margin-bottom: .4rem;
}
.ticket-num-value {
  font-family: 'Courier New', 'Courier', monospace;
  font-size: 1.75rem;
  font-weight: 900;
  letter-spacing: .2em;
  color: var(--tx);
  background: var(--body);
  border-radius: var(--r);
  padding: .45rem 1rem;
  border: 1.5px solid var(--border);
  display: inline-block;
}
.ticket-barcode {
  display: flex;
  gap: 2px;
  height: 28px;
  align-items: flex-end;
  margin: .55rem auto .1rem;
  max-width: 180px;
  justify-content: center;
  opacity: .65;
}
.ticket-barcode span { border-radius: 1px; background: var(--tx-muted); }
.ticket-card__foot {
  padding: .8rem 1.4rem 1.1rem;
  border-top: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: .5rem;
}
.ticket-meta {
  font-size: .75rem;
  color: var(--tx-muted);
  display: flex;
  align-items: center;
  gap: .3rem;
}
.ticket-hash {
  font-size: .65rem;
  color: var(--tx-muted);
  font-family: monospace;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 140px;
}
.winner-banner {
  background: linear-gradient(135deg, #fef3c7, #fde68a);
  border: 2px solid var(--gold);
  border-radius: var(--r-lg);
  padding: 1.25rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.75rem;
  box-shadow: 0 4px 20px rgba(245,158,11,.2);
}
.winner-banner__icon { font-size: 2.5rem; flex-shrink: 0; }
.winner-banner h3 { font-size: 1.05rem; font-weight: 900; color: #92400e; margin-bottom: .2rem; }
.winner-banner p  { font-size: .82rem; color: #b45309; margin: 0; line-height: 1.55; }
.empty-state {
  text-align: center;
  padding: 4rem 1.5rem;
}
.empty-state__icon { font-size: 4.5rem; margin-bottom: 1rem; }
.empty-state h3 { font-size: 1.3rem; font-weight: 800; color: var(--tx); margin-bottom: .5rem; letter-spacing: -.03em; }
.empty-state p  { color: var(--tx-muted); margin-bottom: 1.5rem; font-size: .95rem; }

/* ══════════════════════════════════════════════════════════
   USER PROFILE LAYOUT
   ══════════════════════════════════════════════════════════ */
.profile-layout { display: grid; grid-template-columns: 260px 1fr; gap: 1.75rem; align-items: start; }
@media (max-width: 820px) { .profile-layout { grid-template-columns: 1fr; } }
.profile-card {
  background: var(--card);
  border-radius: var(--r-xl);
  overflow: hidden;
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
}
.profile-card__banner { background: var(--g-brand); height: 72px; position: relative; }
.profile-card__avatar {
  width: 70px; height: 70px;
  background: linear-gradient(135deg, var(--violet) 0%, #2563eb 100%);
  border: 4px solid #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.55rem;
  font-weight: 900;
  color: #fff;
  position: absolute;
  bottom: -35px;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 16px rgba(124,58,237,.25);
  letter-spacing: -.05em;
}
.profile-card__body {
  padding: 2.65rem 1.5rem 1.5rem;
  text-align: center;
}
.profile-card__name  { font-size: 1.05rem; font-weight: 800; color: var(--tx); margin-bottom: .2rem; letter-spacing: -.03em; }
.profile-card__email { font-size: .78rem; color: var(--tx-muted); margin-bottom: .9rem; }
.profile-card__role  {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: var(--violet-xl);
  color: var(--violet-d);
  border: 1px solid var(--violet-l);
  border-radius: var(--r-pill);
  padding: .22rem .7rem;
  font-size: .72rem;
  font-weight: 700;
}
.profile-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .55rem; margin-top: 1rem; }
.profile-stat {
  background: var(--body);
  border-radius: var(--r);
  padding: .7rem .4rem;
  text-align: center;
  border: 1px solid var(--border);
}
.profile-stat__num   { font-size: 1.45rem; font-weight: 900; color: var(--tx); letter-spacing: -.04em; line-height: 1; }
.profile-stat__label { font-size: .62rem; font-weight: 700; color: var(--tx-muted); text-transform: uppercase; letter-spacing: .05em; margin-top: .15rem; }
.profile-links { margin-top: 1.1rem; display: flex; flex-direction: column; gap: .35rem; }
.profile-link {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .58rem .85rem;
  border-radius: var(--r);
  text-decoration: none;
  font-size: .82rem;
  font-weight: 600;
  color: var(--tx-muted);
  transition: background .15s, color .15s;
}
.profile-link:hover { background: var(--body); color: var(--violet); }
.profile-link i { width: 16px; text-align: center; color: var(--violet); font-size: .85rem; }
.profile-link.active { background: var(--violet-xl); color: var(--violet); }
.profile-form-card {
  background: var(--card);
  border-radius: var(--r-xl);
  padding: 2rem;
  box-shadow: var(--sh-md);
  border: 1px solid var(--border);
}
.profile-form-card h2 { font-size: 1rem; font-weight: 800; margin-bottom: .3rem; letter-spacing: -.03em; }
.profile-form-card .subtitle { color: var(--tx-muted); font-size: .83rem; margin-bottom: 1.5rem; }
.form-divider { border: none; border-top: 1px solid var(--border); margin: 1.5rem 0; }
.input-icon-wrap { position: relative; }
.input-icon-wrap input { padding-left: 2.5rem !important; }
.input-icon-wrap i { position: absolute; left: .9rem; top: 50%; transform: translateY(-50%); color: var(--tx-muted); font-size: .85rem; pointer-events: none; }

/* ══════════════════════════════════════════════════════════
   USER DASHBOARD ENHANCED
   ══════════════════════════════════════════════════════════ */
.user-welcome {
  background: var(--g-hero);
  padding: 2.5rem 0;
  position: relative;
  overflow: hidden;
}
.user-welcome::before {
  content: '';
  position: absolute;
  width: 350px; height: 350px;
  background: radial-gradient(circle, rgba(124,58,237,.25), transparent 70%);
  top: -100px; right: -50px;
  border-radius: 50%;
  filter: blur(50px);
}
.welcome-avatar {
  width: 56px; height: 56px;
  background: var(--g-brand);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  font-weight: 900;
  color: #fff;
  border: 3px solid rgba(255,255,255,.2);
  flex-shrink: 0;
}
.user-luck-bar {
  background: var(--card);
  border-radius: var(--r-xl);
  padding: 1.5rem;
  border: 1px solid var(--border);
  box-shadow: var(--sh-md);
  display: flex;
  align-items: center;
  gap: 1.25rem;
}
.luck-icon { font-size: 2.5rem; flex-shrink: 0; }
.luck-meter-bar {
  flex: 1;
  height: 8px;
  background: var(--body);
  border-radius: var(--r-pill);
  overflow: hidden;
  margin-top: .4rem;
}
.luck-meter-fill {
  height: 100%;
  background: var(--g-brand);
  border-radius: var(--r-pill);
  transition: width .8s ease;
}

/* ══════════════════════════════════════════════════════════
   GLOBAL POLISH
   ══════════════════════════════════════════════════════════ */
::selection { background: var(--violet-xl); color: var(--violet-d); }
:focus-visible { outline: 2px solid var(--violet); outline-offset: 3px; border-radius: .2rem; }
html { scrollbar-color: var(--border) transparent; scrollbar-width: thin; }
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--tx-muted); }

/* ══════════════════════════════════════════════════════════
   ADMIN MODERN LIST LAYOUT
   ══════════════════════════════════════════════════════════ */
.admin-page { padding: 1.75rem 0 3rem; background: var(--body); min-height: calc(100vh - 60px); }
.admin-page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border);
}
.admin-page-header h1 { font-size: 1.4rem; font-weight: 900; letter-spacing: -.04em; margin: 0 0 .2rem; }
.admin-page-header .subtitle { font-size: .85rem; color: var(--tx-muted); margin: 0; }

/* Search bar */
.admin-search-bar {
  background: #fff;
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  padding: 1rem 1.25rem;
  box-shadow: var(--sh-sm);
  display: flex;
  gap: .65rem;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 1.25rem;
}
.admin-search-input {
  flex: 1;
  min-width: 220px;
  position: relative;
}
.admin-search-input input {
  width: 100%;
  padding: .7rem .9rem .7rem 2.4rem;
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  font-size: .9rem;
  background: #fafafa;
  transition: border-color .15s, box-shadow .15s;
}
.admin-search-input input:focus { border-color: var(--violet); box-shadow: 0 0 0 3px rgba(124,58,237,.1); outline: none; background: #fff; }
.admin-search-input i { position: absolute; left: .88rem; top: 50%; transform: translateY(-50%); color: var(--tx-muted); font-size: .82rem; pointer-events: none; }
.admin-search-select {
  padding: .7rem .9rem;
  border: 1.5px solid var(--border);
  border-radius: var(--r);
  font-size: .88rem;
  background: #fafafa;
  color: var(--tx);
  min-width: 155px;
}

/* Admin list items */
.admin-list { display: flex; flex-direction: column; gap: .75rem; }
.admin-item {
  background: #fff;
  border-radius: var(--r-lg);
  border: 1px solid var(--border);
  padding: 1.1rem 1.25rem;
  display: grid;
  gap: 1rem;
  align-items: center;
  transition: box-shadow .2s, border-color .2s, transform .2s;
}
.admin-item:hover { box-shadow: var(--sh-md); border-color: var(--violet-l); transform: translateY(-1px); }
.admin-item--sorteo { grid-template-columns: 72px 1fr auto; }
.admin-item--user    { grid-template-columns: 44px 1fr auto; }
.admin-item--company { grid-template-columns: 44px 1fr auto; }
@media (max-width: 768px) {
  .admin-item--sorteo { grid-template-columns: 1fr; }
  .admin-item--user    { grid-template-columns: 1fr; }
  .admin-item--company { grid-template-columns: 1fr; }
}
.admin-item__thumb {
  width: 72px; height: 56px;
  border-radius: var(--r);
  overflow: hidden;
  flex-shrink: 0;
}
.admin-item__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.admin-item__thumb-fill {
  width: 100%; height: 100%;
  background: var(--g-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.75rem;
}
.admin-item__avatar {
  width: 44px; height: 44px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .9rem;
  font-weight: 900;
  color: #fff;
  flex-shrink: 0;
  letter-spacing: -.03em;
}
.admin-item__title { font-size: .96rem; font-weight: 800; color: var(--tx); margin-bottom: .25rem; letter-spacing: -.02em; }
.admin-item__meta  { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .78rem; color: var(--tx-muted); }
.admin-item__meta i { font-size: .72rem; }
.admin-item__progress { margin-top: .45rem; }
.admin-item__actions { display: flex; flex-wrap: wrap; gap: .3rem; align-items: center; justify-content: flex-end; }

/* Status badges (admin) */
.s-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  padding: .22rem .65rem;
  border-radius: var(--r-pill);
  font-size: .7rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  white-space: nowrap;
}
.s-badge--publicado { background: #d1fae5; color: #065f46; }
.s-badge--borrador  { background: #f3f4f6; color: #374151; }
.s-badge--cerrado   { background: #fee2e2; color: #991b1b; }
.s-badge--ejecutado { background: #ede9fe; color: #5b21b6; }
.s-badge--cancelado { background: #f3f4f6; color: #6b7280; }
.s-badge--activo    { background: #d1fae5; color: #065f46; }
.s-badge--inactivo  { background: #fee2e2; color: #991b1b; }
.s-badge--pendiente { background: #fef3c7; color: #92400e; }

/* Icon action buttons */
.icon-btn {
  width: 32px; height: 32px;
  border: 1px solid var(--border);
  border-radius: var(--r);
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: .8rem;
  transition: background .15s, border-color .15s, transform .15s;
  color: var(--tx-muted);
  text-decoration: none;
  flex-shrink: 0;
}
.icon-btn:hover { transform: scale(1.08); color: var(--tx); }
.icon-btn--edit    { background: var(--violet-xl); border-color: var(--violet-l); color: var(--violet); }
.icon-btn--edit:hover { background: var(--violet); color: #fff; border-color: var(--violet); }
.icon-btn--pub     { background: #d1fae5; border-color: #a7f3d0; color: #059669; }
.icon-btn--pub:hover { background: #059669; color: #fff; border-color: #059669; }
.icon-btn--warn    { background: #fef3c7; border-color: #fde68a; color: #d97706; }
.icon-btn--warn:hover { background: #d97706; color: #fff; border-color: #d97706; }
.icon-btn--danger  { background: #fee2e2; border-color: #fecaca; color: #dc2626; }
.icon-btn--danger:hover { background: #dc2626; color: #fff; border-color: #dc2626; }
.icon-btn--gray    { background: #f3f4f6; border-color: var(--border); color: #374151; }
.icon-btn--gray:hover { background: #374151; color: #fff; border-color: #374151; }

/* Pagination improved */
.admin-pagination { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; font-size: .82rem; color: var(--tx-muted); }

/* ══════════════════════════════════════════════════════════
   ADMIN SIDEBAR
   ══════════════════════════════════════════════════════════ */
.admin-wrapper { display: flex; min-height: calc(100vh - 60px); }
.admin-sidebar {
  width: 240px;
  background: var(--dark-2);
  flex-shrink: 0;
  position: sticky;
  top: 60px;
  height: calc(100vh - 60px);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--border-d);
  z-index: 200;
}
.admin-sidebar::-webkit-scrollbar { width: 4px; }
.admin-sidebar::-webkit-scrollbar-track { background: transparent; }
.admin-sidebar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.1); border-radius: 4px; }
.admin-sidebar-top {
  padding: 1.1rem 1.25rem .75rem;
  border-bottom: 1px solid var(--border-d);
  display: flex;
  align-items: center;
  gap: .5rem;
}
.admin-sidebar-top .sb-logo {
  width: 28px; height: 28px;
  background: var(--g-brand);
  border-radius: .4rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .6rem;
  font-weight: 900;
  color: #fff;
  flex-shrink: 0;
}
.admin-sidebar-top .sb-title { font-size: .8rem; font-weight: 700; color: rgba(255,255,255,.55); }
.admin-nav { padding: .65rem 0; flex: 1; }
.admin-nav-section { margin-bottom: .25rem; }
.admin-nav-label {
  padding: .55rem 1.25rem .25rem;
  font-size: .62rem;
  font-weight: 800;
  color: rgba(255,255,255,.28);
  text-transform: uppercase;
  letter-spacing: .1em;
  display: block;
}
.admin-nav-link {
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .58rem 1.25rem;
  color: rgba(255,255,255,.58);
  text-decoration: none;
  font-size: .835rem;
  transition: background .15s, color .15s, border-color .15s;
  border-left: 2px solid transparent;
  line-height: 1.3;
}
.admin-nav-link:hover { background: rgba(255,255,255,.055); color: rgba(255,255,255,.9); }
.admin-nav-link.active { background: rgba(124,58,237,.14); color: var(--violet-l); border-left-color: var(--violet); }
.admin-nav-link i { width: 15px; text-align: center; font-size: .8rem; flex-shrink: 0; }
.admin-nav-sub .admin-nav-link { padding-left: 2.5rem; font-size: .8rem; }
.admin-nav-divider { border: none; border-top: 1px solid var(--border-d); margin: .4rem .85rem; }
.admin-main { flex: 1; overflow-x: auto; min-width: 0; background: var(--body); }
.admin-sidebar-toggle {
  display: none;
  position: fixed;
  bottom: 1.4rem;
  right: 1.4rem;
  width: 46px; height: 46px;
  background: var(--g-brand);
  border-radius: 50%;
  border: none;
  color: #fff;
  font-size: 1rem;
  cursor: pointer;
  z-index: 500;
  box-shadow: 0 4px 16px rgba(124,58,237,.45);
  align-items: center;
  justify-content: center;
}
@media (max-width: 900px) {
  .admin-sidebar {
    position: fixed;
    top: 0; left: -260px;
    height: 100vh;
    z-index: 600;
    transition: left .25s ease;
    width: 260px;
  }
  .admin-sidebar.open { left: 0; box-shadow: 8px 0 32px rgba(0,0,0,.4); }
  .admin-sidebar-toggle { display: flex; }
  .admin-main { width: 100%; }
}
.admin-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 590;
}
.admin-overlay.open { display: block; }

/* ══════════════════════════════════════════════════════════
   AD / PUBLICITY BANNERS
   ══════════════════════════════════════════════════════════ */
.ad-strip {
  background: linear-gradient(135deg, #0f0f23 0%, #1e1b4b 50%, #1e3a8a 100%);
  border-radius: var(--r-lg);
  padding: 1.1rem 1.5rem;
  margin-bottom: 1.75rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  flex-wrap: wrap;
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(124,58,237,.2);
}
.ad-strip::before {
  content: '';
  position: absolute;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(124,58,237,.3), transparent 70%);
  right: -40px; top: -60px;
  border-radius: 50%;
  filter: blur(40px);
}
.ad-strip__badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  background: rgba(124,58,237,.3);
  border: 1px solid rgba(167,139,250,.3);
  color: var(--violet-l);
  padding: .2rem .6rem;
  border-radius: var(--r-pill);
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  flex-shrink: 0;
}
.ad-strip__content { position: relative; z-index: 1; flex: 1; }
.ad-strip__title { font-size: 1rem; font-weight: 800; color: #fff; letter-spacing: -.02em; }
.ad-strip__sub { font-size: .8rem; color: rgba(255,255,255,.6); margin-top: .15rem; }
.ad-strip__action { position: relative; z-index: 1; flex-shrink: 0; }

.ad-box {
  background: linear-gradient(160deg, #1e1b4b 0%, #0f0f23 100%);
  border: 1px solid rgba(124,58,237,.22);
  border-radius: var(--r-xl);
  padding: 1.75rem 1.25rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.ad-box::before {
  content: '';
  position: absolute;
  width: 180px; height: 180px;
  background: radial-gradient(circle, rgba(124,58,237,.28), transparent 70%);
  top: -50px; right: -40px;
  border-radius: 50%;
  filter: blur(35px);
}
.ad-box::after {
  content: '';
  position: absolute;
  width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(37,99,235,.2), transparent 70%);
  bottom: -30px; left: -20px;
  border-radius: 50%;
  filter: blur(30px);
}
.ad-box__icon { font-size: 3.2rem; margin-bottom: .6rem; position: relative; z-index: 1; }
.ad-box__badge { font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; color: var(--violet-l); margin-bottom: .35rem; position: relative; z-index: 1; }
.ad-box__title { font-size: 1.15rem; font-weight: 900; color: #fff; margin-bottom: .35rem; position: relative; z-index: 1; letter-spacing: -.03em; line-height: 1.2; }
.ad-box__desc { font-size: .82rem; color: rgba(255,255,255,.6); margin-bottom: 1.2rem; position: relative; z-index: 1; line-height: 1.6; }
.sponsors-row { display: flex; align-items: center; justify-content: center; gap: 1.5rem; flex-wrap: wrap; margin-top: 1.25rem; }
.sponsor-pill {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: var(--r-pill);
  padding: .5rem 1.25rem;
  color: rgba(255,255,255,.7);
  font-size: .82rem;
  font-weight: 600;
  backdrop-filter: blur(4px);
}

/* ══════════════════════════════════════════════════════════
   IMAGE UPLOAD (sorteo form)
   ══════════════════════════════════════════════════════════ */
.img-upload-wrap { position: relative; }
.img-upload-area {
  border: 2px dashed var(--border);
  border-radius: var(--r-lg);
  padding: 2.25rem 1.5rem;
  text-align: center;
  cursor: pointer;
  transition: border-color .2s, background .2s;
  position: relative;
  background: #fafafa;
}
.img-upload-area:hover { border-color: var(--violet); background: var(--violet-xl); }
.img-upload-area.drag-over { border-color: var(--violet); background: var(--violet-xl); border-style: solid; }
.img-upload-area input[type=file] {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
  width: 100%;
  height: 100%;
  z-index: 2;
}
.img-upload-area i { font-size: 2.75rem; color: var(--violet-l); display: block; margin-bottom: .6rem; }
.img-upload-area .upload-title { font-weight: 700; color: var(--tx); margin-bottom: .25rem; font-size: .95rem; }
.img-upload-area .upload-hint { color: var(--tx-muted); font-size: .8rem; }
.img-preview-box {
  margin-top: 1rem;
  border-radius: var(--r-lg);
  overflow: hidden;
  position: relative;
  display: none;
}
.img-preview-box img { width: 100%; height: 200px; object-fit: cover; display: block; }
.img-preview-box .remove-img {
  position: absolute;
  top: .5rem; right: .5rem;
  background: rgba(239,68,68,.9);
  color: #fff;
  border: none;
  border-radius: .4rem;
  padding: .3rem .6rem;
  font-size: .75rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: .25rem;
}
.form-section { margin-bottom: 1.75rem; }
.form-section-title {
  font-size: .75rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--tx-muted);
  border-bottom: 1px solid var(--border);
  padding-bottom: .6rem;
  margin-bottom: 1.1rem;
  display: flex;
  align-items: center;
  gap: .45rem;
}
.form-section-title i { color: var(--violet); }
.form-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 640px) { .form-grid-2 { grid-template-columns: 1fr; } }

/* ══════════════════════════════════════════════════════════
   SETTINGS PAGE
   ══════════════════════════════════════════════════════════ */
.settings-tabs { display: flex; gap: .35rem; flex-wrap: wrap; margin-bottom: 1.75rem; }
.settings-tab {
  padding: .48rem 1rem;
  border-radius: var(--r-pill);
  font-size: .84rem;
  font-weight: 600;
  cursor: pointer;
  border: 1.5px solid var(--border);
  background: transparent;
  color: var(--tx-muted);
  transition: all .15s;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.settings-tab.active { background: var(--g-brand); color: #fff; border-color: transparent; box-shadow: 0 2px 12px rgba(124,58,237,.3); }
.settings-panel { display: none; }
.settings-panel.active { display: block; }
.settings-group { margin-bottom: 1.5rem; }
.settings-group h3 {
  font-size: .78rem;
  font-weight: 800;
  color: var(--tx-muted);
  text-transform: uppercase;
  letter-spacing: .07em;
  margin-bottom: 1rem;
  padding-bottom: .5rem;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: .4rem;
}
.settings-group h3 i { color: var(--violet); }
.settings-field { margin-bottom: 1rem; }
.settings-field label { display: block; font-size: .82rem; font-weight: 700; color: var(--tx); margin-bottom: .4rem; }
.settings-field input,
.settings-field textarea,
.settings-field select {
  width: 100%;
  padding: .75rem 1rem;
  border-radius: var(--r);
  border: 1.5px solid var(--border);
  background: #fafafa;
  font-size: .92rem;
  transition: border-color .15s, box-shadow .15s;
}
.settings-field input:focus,
.settings-field textarea:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgba(124,58,237,.1); }
.settings-hint { font-size: .74rem; color: var(--tx-muted); margin-top: .3rem; }
.preview-card {
  background: var(--g-hero);
  border-radius: var(--r-lg);
  padding: 1.75rem;
  position: relative;
  overflow: hidden;
}
.preview-card::before {
  content: '';
  position: absolute;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(124,58,237,.3), transparent 70%);
  right: -40px; top: -40px;
  border-radius: 50%;
  filter: blur(40px);
}
.preview-card h2 { color: #fff; font-size: 1.4rem; font-weight: 900; letter-spacing: -.04em; margin-bottom: .4rem; position: relative; z-index: 1; }
.preview-card p { color: rgba(255,255,255,.65); font-size: .88rem; position: relative; z-index: 1; margin-bottom: 1rem; line-height: 1.6; }
.preview-label {
  font-size: .65rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--violet-l);
  margin-bottom: .65rem;
  display: flex;
  align-items: center;
  gap: .3rem;
}
.color-preview { display: flex; align-items: center; gap: .75rem; }
.color-preview input[type=color] { width: 44px; height: 44px; border: none; border-radius: .5rem; cursor: pointer; padding: .2rem; }

/* ══════════════════════════════════════════════════════════
   SORTEO CARD IMAGE VARIANT
   ══════════════════════════════════════════════════════════ */
.sorteo-card__head--photo {
  background-size: cover !important;
  background-position: center !important;
  min-height: 155px;
  position: relative;
}
.sorteo-card__head--photo::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(0,0,0,.08) 0%, rgba(0,0,0,.6) 100%);
  border-radius: 0;
}
.sorteo-card__head--photo .sorteo-card__estado,
.sorteo-card__head--photo .sorteo-card__icon,
.sorteo-card__head--photo .sorteo-card__prize { position: relative; z-index: 2; }
