/* ============================================================
   LOGIN.CSS — Halaman pemilihan peran & form login
   ============================================================ */

.login-stage {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px 20px;
  gap: 48px;
}

/* ---------------- BRAND / LOGO ---------------- */
.brand {
  text-align: center;
}
.brand-badge {
  margin-bottom: 14px;
}
.brand-title {
  font-size: clamp(2.2rem, 6vw, 3.6rem);
  letter-spacing: 0.04em;
}
.accent-slash {
  color: var(--violet-accent);
  text-shadow: 0 0 12px rgba(124, 77, 255, 0.7);
}
.brand-sub {
  margin-top: 10px;
  font-size: 1.05rem;
  letter-spacing: 0.03em;
}

/* ---------------- ROLE SELECT CARDS ---------------- */
.role-select {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  justify-content: center;
}

.role-card {
  width: 260px;
  padding: 36px 26px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  cursor: pointer;
  color: var(--text-primary);
  transition: transform 0.3s var(--ease-arcade), box-shadow 0.3s var(--ease-arcade), border-color 0.3s ease;
}

.role-card:hover {
  transform: translateY(-10px) scale(1.03);
  border-color: var(--glass-border-strong);
  box-shadow: 0 16px 40px rgba(0, 229, 255, 0.28), 0 0 30px rgba(0, 229, 255, 0.2);
}

.role-icon {
  font-size: 2.6rem;
  filter: drop-shadow(0 0 10px rgba(0, 229, 255, 0.6));
}
.role-name {
  font-size: 1.3rem;
  letter-spacing: 0.08em;
}
.role-desc {
  font-size: 0.92rem;
  line-height: 1.4;
}
.role-cta {
  margin-top: 6px;
}

/* ---------------- FORM PANEL (peserta / panitia) ---------------- */
.login-form-panel {
  width: min(420px, 92vw);
  padding: 40px 32px;
  text-align: center;
  animation: formPop 0.4s var(--ease-arcade);
}

@keyframes formPop {
  from { opacity: 0; transform: translateY(16px) scale(0.97); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.login-form-panel.hidden { display: none; }

.form-title {
  font-size: 1.5rem;
  margin-bottom: 8px;
  letter-spacing: 0.05em;
}
.form-sub {
  margin-bottom: 26px;
  font-size: 0.95rem;
}

.back-btn {
  position: absolute;
  top: 18px;
  left: 20px;
  background: none;
  border: none;
  color: var(--text-dim);
  font-family: var(--font-body);
  font-size: 0.9rem;
  cursor: pointer;
  transition: color 0.2s ease;
}
.back-btn:hover { color: var(--blue-glow); }

.form-error {
  color: var(--danger);
  font-size: 0.85rem;
  min-height: 18px;
  margin-bottom: 10px;
}

/* Saat layar role-select disembunyikan */
.role-select.hidden { display: none; }

@media (max-width: 560px) {
  .role-select { flex-direction: column; align-items: center; }
  .role-card { width: 100%; max-width: 320px; }
}