:root {
  --brand: #5b2c6f;
  --brand-dark: #3d1c4d;
  --festive: #7b1e3a;
  --gold: #c9a227;
}
body { min-height: 100vh; display: flex; flex-direction: column; background: #faf8fc; }
main { flex: 1; }
.bg-brand { background: var(--brand) !important; }
.btn-brand { background: var(--brand); color: #fff; border: none; }
.btn-brand:hover { background: var(--brand-dark); color: #fff; }
.btn-festive { background: var(--festive); color: #fff; }
.btn-festive:hover { background: #5c1530; color: #fff; }
.hero {
  background: linear-gradient(135deg, var(--brand), #8e44ad);
  color: #fff;
  border-radius: 1rem;
  padding: 2.5rem 1.5rem;
}
.cat-tech { background: #3498db; }
.cat-cultural { background: #9b59b6; }
.cat-sports { background: #27ae60; }
.cat-workshop { background: #e67e22; }
.cat-seminar { background: #1abc9c; }
.cat-other { background: #7f8c8d; }
.occasion-tabs .nav-link { white-space: nowrap; color: var(--festive); }
.occasion-tabs .nav-link.active { background: var(--festive); color: #fff; }
.invite-page {
  background: linear-gradient(180deg, #fff8f0, #faf0e6);
  min-height: 100vh;
}
.invite-card {
  border: 2px solid var(--gold);
  border-radius: 1rem;
  background: #fff;
}
.badge-yes { background: #198754; }
.badge-no { background: #dc3545; }
.badge-maybe { background: #ffc107; color: #000; }
.badge-pending { background: #6c757d; }
.card-event { transition: transform .15s; }
.card-event:hover { transform: translateY(-2px); }
.progress-thin { height: .5rem; }

/* Auth screens */
.auth-page main { display: flex; align-items: center; }
.auth-card {
  border-radius: 1.1rem !important;
  overflow: hidden;
  background: #fff;
}
.auth-icon {
  width: 56px; height: 56px; margin: 0 auto;
  border-radius: 16px;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #5b2c6f, #8e44ad);
  color: #fff; font-size: 1.6rem;
}
.otp-input {
  letter-spacing: 0.45em;
  font-weight: 700;
  font-size: 1.35rem !important;
}
.pwd-toggle { min-width: 3rem; }
.auth-card .form-control-lg { font-size: 1rem; }
.auth-card .btn-brand { border-radius: 0.65rem; }
