/* SlipScan Login Page Styles */
.login-page {
  min-height: 100vh;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 100%);
  padding: 20px;
}

.login-card {
  background: var(--bg-card);
  border-radius: var(--radius-lg);
  padding: 40px;
  width: 100%; max-width: 400px;
  box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}

.login-logo {
  display: flex; flex-direction: column; align-items: center;
  margin-bottom: 32px;
}
.login-logo img {
  width: 64px; height: 64px; margin-bottom: 12px;
  border-radius: 12px;
}
.login-logo h1 {
  font-size: 1.5rem; color: var(--text);
}
.login-logo p {
  font-size: 0.875rem; color: var(--text-muted);
  margin-top: 4px;
}

/* PIN Input Boxes */
.pin-container {
  display: flex; gap: 8px; justify-content: center;
  margin: 20px 0;
}
.pin-digit {
  width: 48px; height: 56px;
  text-align: center; font-size: 1.5rem; font-weight: 700;
  border: 2px solid var(--border);
  border-radius: var(--radius);
  background: var(--bg);
  color: var(--text);
  outline: none;
  transition: border-color 0.15s;
}
.pin-digit:focus {
  border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(15, 118, 110, 0.1);
}

/* Login Steps */
.login-step { display: none; }
.login-step.active { display: block; }

.login-step h2 {
  font-size: 1.125rem; margin-bottom: 4px; text-align: center;
}
.login-step p.subtitle {
  font-size: 0.875rem; color: var(--text-muted);
  text-align: center; margin-bottom: 20px;
}

/* Dev helper */
.dev-helper {
  margin-top: 24px; padding: 12px;
  background: #FEF3C7; border-radius: var(--radius);
  font-size: 0.8125rem; color: #92400E;
  text-align: center;
}

/* Error message */
.login-error {
  background: #FEE2E2; color: #DC2626;
  padding: 10px 14px; border-radius: var(--radius);
  font-size: 0.875rem; margin-bottom: 16px;
  display: none; text-align: center;
}
.login-error.show { display: block; }

/* Loading state */
.login-loading {
  display: none; text-align: center; padding: 20px;
}
.login-loading.show { display: block; }
.spinner {
  width: 32px; height: 32px;
  border: 3px solid var(--border);
  border-top-color: var(--primary);
  border-radius: 50%;
  animation: spin 0.6s linear infinite;
  margin: 0 auto 12px;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Success message */
.login-success {
  background: #D1FAE5; color: #065F46;
  padding: 10px 14px; border-radius: var(--radius);
  font-size: 0.875rem; margin-bottom: 16px;
  display: none; text-align: center;
}
.login-success.show { display: block; }

/* Login links (Create Account | Forgot PIN) */
.login-links {
  text-align: center; margin-top: 16px;
  font-size: 0.8125rem;
}
.login-links a {
  color: var(--primary); text-decoration: none;
}
.login-links a:hover {
  text-decoration: underline;
}
.login-links .divider {
  color: var(--text-muted); margin: 0 8px;
}

/* Form row (side by side) */
.form-row {
  display: flex; gap: 12px;
}
.form-row .form-group {
  flex: 1;
}

@media (max-width: 480px) {
  .login-card { padding: 28px 20px; }
  .pin-digit { width: 42px; height: 50px; font-size: 1.25rem; }
  .form-row { flex-direction: column; gap: 0; }
}
