/* [project]/app/auth/auth.css [app-client] (css) */
.auth-page {
  min-height: 100vh;
  padding: var(--dd-sp-4);
  padding-top: calc(var(--dd-sp-4) + 64px);
  background: var(--dd-bg);
  justify-content: center;
  align-items: center;
  display: flex;
}

.auth-container {
  gap: var(--dd-sp-6);
  flex-direction: column;
  width: 100%;
  max-width: 420px;
  display: flex;
}

.auth-logo {
  text-align: center;
  color: var(--dd-text);
  margin-bottom: var(--dd-sp-2);
  text-decoration: none;
  display: block;
}

.auth-logo .dd-logotype {
  font-size: var(--dd-fs-2xl);
}

.auth-card {
  box-shadow: var(--dd-shadow-lg);
}

.auth-card .dd-card__body {
  padding: var(--dd-sp-8);
}

.auth-title {
  font-size: var(--dd-fs-3xl);
  margin: 0 0 var(--dd-sp-2) 0;
  text-align: center;
  color: var(--dd-text);
  font-weight: 700;
}

.auth-subtitle {
  text-align: center;
  margin: 0 0 var(--dd-sp-6) 0;
  font-size: var(--dd-fs-md);
}

.auth-message {
  border-radius: var(--dd-radius);
  margin-bottom: var(--dd-sp-4);
  font-size: var(--dd-fs-sm);
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  font-weight: 500;
  display: flex;
}

.auth-message svg {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.auth-message--success {
  color: #065f46;
  background: #d1fae5;
  border: 1px solid #10b981;
}

.auth-message--error {
  color: #991b1b;
  background: #fee2e2;
  border: 1px solid #ef4444;
}

.auth-form {
  gap: var(--dd-sp-5);
  flex-direction: column;
  display: flex;
}

.auth-form-group {
  flex-direction: column;
  gap: 8px;
  display: flex;
}

.auth-label {
  font-size: var(--dd-fs-sm);
  color: var(--dd-text);
  font-weight: 600;
}

.auth-submit {
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  display: flex;
}

.auth-spinner {
  border: 2px solid #ffffff4d;
  border-top-color: #fff;
  border-radius: 50%;
  width: 16px;
  height: 16px;
  animation: .6s linear infinite auth-spin;
}

@keyframes auth-spin {
  to {
    transform: rotate(360deg);
  }
}

.auth-divider {
  text-align: center;
  margin: var(--dd-sp-4) 0;
  color: var(--dd-muted);
  font-size: var(--dd-fs-sm);
  align-items: center;
  display: flex;
}

.auth-divider:before, .auth-divider:after {
  content: "";
  border-bottom: 1px solid var(--dd-border);
  flex: 1;
}

.auth-divider span {
  padding: 0 var(--dd-sp-3);
}

.auth-google-btn {
  border: 1px solid var(--dd-border);
  border-radius: var(--dd-r-lg);
  width: 100%;
  font-size: var(--dd-fs-lg);
  color: var(--dd-text);
  cursor: pointer;
  background: #fff;
  justify-content: center;
  align-items: center;
  gap: 12px;
  height: 56px;
  padding: 14px 32px;
  font-weight: 600;
  transition: all .2s;
  display: flex;
}

.auth-google-btn:hover {
  background: var(--dd-gray-50);
  border-color: var(--dd-gray-300);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px #0000001a;
}

.auth-google-btn:active {
  transform: translateY(0);
}

.auth-google-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.auth-footer {
  text-align: center;
  gap: var(--dd-sp-3);
  flex-direction: column;
  display: flex;
}

.auth-footer p {
  font-size: var(--dd-fs-sm);
  margin: 0;
}

.auth-link {
  color: var(--dd-primary);
  cursor: pointer;
  font-weight: 600;
  text-decoration: none;
  transition: opacity .2s;
}

.auth-link:hover {
  opacity: .8;
  text-decoration: underline;
}

@media (max-width: 640px) {
  .auth-card .dd-card__body {
    padding: var(--dd-sp-6);
  }

  .auth-title {
    font-size: var(--dd-fs-2xl);
  }
}

@media (prefers-color-scheme: dark) {
  .auth-message--success {
    color: #d1fae5;
    background: #064e3b;
  }

  .auth-message--error {
    color: #fecaca;
    background: #7f1d1d;
  }

  .auth-info {
    background: var(--dd-gray-800);
  }
}

/*# sourceMappingURL=app_auth_auth_20xyq_-.css.map*/