:root {
  --brand-1: #6d28d9;
  --brand-2: #4f46e5;
  --libre: #e9ecef;
  --asignado: #ffd166;
  --pagado: #06d6a0;
}

body {
  background: #f4f5fb;
  font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
}

.app-navbar {
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
}

.login-body {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  margin: 0;
}

.login-wrap { width: 100%; max-width: 420px; padding: 1rem; }
.login-card { border-radius: 18px; }
.login-icon {
  width: 64px; height: 64px; border-radius: 50%;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  color: #fff; font-size: 1.8rem;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto;
}

.page-title {
  font-weight: 800;
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.card-sorteo {
  border: none;
  border-radius: 16px;
  box-shadow: 0 6px 20px rgba(79,70,229,.08);
  transition: transform .15s ease, box-shadow .15s ease;
}
.card-sorteo:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(79,70,229,.15);
}

.progress { height: 8px; border-radius: 10px; }

.stat-pill {
  border-radius: 12px;
  padding: .6rem 1rem;
  background: #fff;
  box-shadow: 0 4px 14px rgba(0,0,0,.06);
}

.btn-brand {
  background: linear-gradient(135deg, var(--brand-1), var(--brand-2));
  border: none;
  color: #fff;
}
.btn-brand:hover { color: #fff; opacity: .92; }

.numeros-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
  gap: 8px;
}

.num-btn {
  border: 2px solid var(--libre);
  background: #fff;
  border-radius: 10px;
  padding: .5rem .3rem;
  font-weight: 700;
  font-size: .95rem;
  cursor: pointer;
  transition: all .12s ease;
  text-align: center;
}
.num-btn:hover { border-color: var(--brand-2); }
.num-btn.estado-asignado { background: #fff8e6; border-color: var(--asignado); }
.num-btn.estado-pagado { background: #e8fdf6; border-color: var(--pagado); color: #047857; }

.legend-dot {
  display: inline-block;
  width: 12px; height: 12px;
  border-radius: 3px;
  margin-right: 6px;
}

.search-box { max-width: 320px; }
