:root {  --bg: #f8fafc;  --card: #ffffff;  --muted: #64748b;  --accent: #0284c7;  --accent-2: #0ea5e9;  --accent-glow: rgba(14, 165, 233, 0.16);  --radius: 18px;  --shadow: 0 20px 50px -10px rgba(15, 23, 42, 0.08), 0 4px 16px -2px rgba(15, 23, 42, 0.03);  font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;}* { box-sizing: border-box; }body {  margin: 0;  background: radial-gradient(circle at 50% 8%, rgba(14, 165, 233, 0.15), transparent 48%),              radial-gradient(circle at 10% 90%, rgba(2, 132, 199, 0.09), transparent 45%),              radial-gradient(circle at 90% 85%, rgba(56, 189, 248, 0.1), transparent 45%),              #f8fafc;  color: #0f172a;  min-height: 100vh;  min-height: 100dvh;}.page-root {  min-height: 100vh;  display: flex;  flex-direction: column;}.topbar {  display: flex;  align-items: center;  padding: 16px 28px;  background: rgba(2, 132, 199, 0.92);  backdrop-filter: blur(12px);  -webkit-backdrop-filter: blur(12px);  box-shadow: 0 4px 20px rgba(2, 132, 199, 0.18);}.brand {  display: flex;  align-items: center;  text-decoration: none;  color: inherit;}.brand-icon {  display: block;  width: 140px;  height: auto;  max-width: 100%;  filter: drop-shadow(0 4px 10px rgba(2, 6, 23, 0.2));}.brand-name {  font-weight: 800;  font-size: 20px;  color: #ffffff;  letter-spacing: -0.3px;}.auth-wrap {  flex: 1;  display: flex;  padding: 36px 24px;  align-items: center;  justify-content: center;}.card {  width: 1000px;  max-width: 100%;  display: grid;  grid-template-columns: 1fr 440px;  background: #ffffff;  border-radius: 28px;  border: 1px solid rgba(226, 232, 240, 0.9);  box-shadow: 0 24px 60px -12px rgba(15, 23, 42, 0.1), 0 6px 20px -4px rgba(15, 23, 42, 0.04);  overflow: hidden;  margin: auto;}.card-art {  position: relative;  padding: 60px 48px;  display: flex;  flex-direction: column;  justify-content: center;  gap: 20px;  align-items: center;  text-align: center;  background: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);  overflow: hidden;}.card-art > * {  position: relative;  z-index: 2;}.card-art-image {  position: absolute;  top: 0;  left: 0;  width: 100%;  height: 100%;  object-fit: cover;  opacity: 0.18;  pointer-events: none;  z-index: 1;}.card-art .hero {  color: #ffffff;  font-size: 36px;  font-weight: 800;  letter-spacing: -0.6px;  margin: 0;  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);}.card-art .sub {  color: rgba(255, 255, 255, 0.92);  margin: 0;  max-width: 320px;  font-size: 15px;  line-height: 1.55;  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);}.auth-form {  padding: 44px 44px;  display: flex;  flex-direction: column;  justify-content: center;}.form-layout {  display: flex;  flex-direction: column;  gap: 16px;}.form-field {  display: flex;  flex-direction: column;  gap: 6px;}.input-group {  position: relative;  display: flex;  align-items: center;  border: 1.5px solid #e2e8f0;  padding: 10px 16px;  border-radius: 16px;  gap: 12px;  background: #f8fafc;  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);}.input-group:hover {  background: #ffffff;  border-color: #cbd5e1;}.input-group:focus-within {  border-color: #0ea5e9;  background: #ffffff;  box-shadow: 0 0 0 4px rgba(14, 165, 233, 0.12), 0 4px 14px rgba(2, 132, 199, 0.06);}.input-group input {  border: 0;  outline: none;  font-family: inherit;  font-size: 14.5px;  font-weight: 500;  flex: 1;  background: transparent;  padding: 4px 0;  color: #0f172a;}.input-icon {  display: flex;  align-items: center;  justify-content: center;  width: 20px;  height: 20px;  color: #64748b;  flex-shrink: 0;}.eye {  background: transparent;  border: 0;  font-size: 14px;  cursor: pointer;  padding: 6px;  display: flex;  align-items: center;  justify-content: center;  border-radius: 10px;  color: #64748b;  transition: all 0.15s ease;}.eye:hover {  background: #f1f5f9;  color: #0f172a;}.eye svg {  width: 18px;  height: 18px;  stroke: currentColor;}.row {  display: flex;  align-items: center;}.between {  justify-content: space-between;}.remember {  color: #334155;  display: flex;  align-items: center;  gap: 8px;  font-size: 13.5px;  font-weight: 600;  cursor: pointer;}.link {  color: var(--accent);  text-decoration: none;  font-weight: 700;  transition: color 0.18s ease;}.link:hover {  color: #0369a1;  text-decoration: underline;}.btn {  display: inline-flex;  align-items: center;  justify-content: center;  gap: 10px;  padding: 14px 20px;  border-radius: 16px;  border: 0;  font: inherit;  font-weight: 800;  cursor: pointer;  font-size: 14.5px;  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);}.btn.wide { width: 100%; }.primary {  background: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);  color: #ffffff;  box-shadow: 0 4px 16px rgba(2, 132, 199, 0.3);}.primary:hover {  transform: translateY(-2px);  box-shadow: 0 8px 24px rgba(2, 132, 199, 0.42);}.google {  display: flex;  align-items: center;  justify-content: center;  gap: 10px;}.divider {  display: flex;  align-items: center;  gap: 12px;  margin: 16px 0;}.divider::before,.divider::after {  content: "";  flex: 1;  height: 1px;  background: #e2e8f0;}.divider span {  padding: 0 8px;  color: var(--muted);  font-size: 12.5px;  font-weight: 600;  text-transform: uppercase;}.muted {  font-size: 13px;  color: var(--muted);  margin-top: 8px;  text-align: center;  line-height: 1.5;}.small { font-size: 14px; }.center { text-align: center; }.signup {  color: var(--accent);  font-weight: 700;  text-decoration: none;}.signup:hover { text-decoration: underline; }.error-message {  color: #ef4444;  font-size: 12.5px;  font-weight: 600;  padding-left: 14px;  display: none;}.input-group.invalid {  border-color: #ef4444 !important;  background: #fef2f2 !important;}:root {  --bg-dark: #07111f;  --bg-card: rgba(11, 23, 42, 0.85);  --border-cyan: rgba(56, 189, 248, 0.22);  --border-glow: rgba(56, 189, 248, 0.45);  --cyan-accent: #38bdf8;  --primary-blue: #0284c7;  --primary-gradient: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);  --text-main: #FFFFFF;  --text-muted: #94a3b8;}.login-page,.reset-page {  background: #07111f;  background-image:     radial-gradient(circle at 50% 0%, rgba(56, 189, 248, 0.14), transparent 50%),    radial-gradient(circle at 10% 85%, rgba(2, 132, 199, 0.12), transparent 45%),    radial-gradient(circle at 90% 80%, rgba(14, 165, 233, 0.12), transparent 45%),    radial-gradient(circle at 50% 50%, rgba(15, 23, 42, 0.8), transparent 70%);  display: flex;  flex-direction: column;  justify-content: center;  align-items: center;  min-height: 100vh;  padding: 32px 16px;  position: relative;  overflow-x: hidden;  font-family: 'Inter', system-ui, -apple-system, sans-serif;  color: #F8FAFC;}.auth-ambient-glow {  position: fixed;  border-radius: 50%;  pointer-events: none;  filter: blur(90px);  z-index: 0;}.auth-glow-1 {  width: 380px;  height: 380px;  top: -80px;  left: 50%;  transform: translateX(-50%);  background: radial-gradient(circle, rgba(56, 189, 248, 0.18), transparent 70%);}.auth-glow-2 {  width: 320px;  height: 320px;  bottom: -40px;  left: 10%;  background: radial-gradient(circle, rgba(2, 132, 199, 0.15), transparent 70%);}.auth-glow-3 {  width: 340px;  height: 340px;  bottom: 0px;  right: 10%;  background: radial-gradient(circle, rgba(14, 165, 233, 0.16), transparent 70%);}.auth-top-nav {  position: absolute;  top: 28px;  left: 32px;  z-index: 20;  display: flex;  align-items: center;}.auth-back-link {  display: inline-flex;  align-items: center;  gap: 8px;  color: #94a3b8;  font-size: 0.85rem;  font-weight: 600;  text-decoration: none;  padding: 8px 16px;  border-radius: 9999px;  background: rgba(15, 23, 42, 0.7);  border: 1px solid rgba(255, 255, 255, 0.1);  backdrop-filter: blur(12px);  -webkit-backdrop-filter: blur(12px);  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);}.auth-back-link i {  color: var(--cyan-accent);  font-size: 0.82rem;  transition: transform 0.2s ease;}.auth-back-link:hover {  background: rgba(56, 189, 248, 0.12);  border-color: rgba(56, 189, 248, 0.4);  color: #FFFFFF;  box-shadow: 0 6px 20px rgba(56, 189, 248, 0.2);}.auth-back-link:hover i {  transform: translateX(-3px);  color: #38bdf8;}.login-container,.reset-container {  position: relative;  z-index: 2;  width: 100%;  max-width: 440px;  padding: 38px 36px 30px;  background: rgba(11, 23, 42, 0.85);  backdrop-filter: blur(24px);  -webkit-backdrop-filter: blur(24px);  border-radius: 24px;  border: 1px solid rgba(56, 189, 248, 0.22);  box-shadow: 0 24px 64px -12px rgba(0, 0, 0, 0.7), 0 0 32px rgba(56, 189, 248, 0.08);  text-align: center;  animation: login-card-enter 0.4s cubic-bezier(0.16, 1, 0.3, 1);}@keyframes login-card-enter {  from { opacity: 0; transform: translateY(16px) scale(0.98); }  to { opacity: 1; transform: translateY(0) scale(1); }}@keyframes auth-spin {  to { transform: rotate(360deg); }}.login-header-group {  margin-bottom: 22px;}.login-logo {  display: inline-flex;  align-items: center;  justify-content: center;  margin: 0 auto 20px;  text-decoration: none;  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);}.login-logo:hover {  transform: scale(1.05);}.auth-logo-img {  height: 58px;  width: auto;  max-width: 220px;  object-fit: contain;  filter: drop-shadow(0 4px 18px rgba(56, 189, 248, 0.4));  transition: transform 0.25s cubic-bezier(0.16, 1, 0.3, 1);}.login-container h1,.reset-container h1 {  font-family: 'Plus Jakarta Sans', system-ui, sans-serif;  color: #FFFFFF;  font-size: 1.75rem;  font-weight: 800;  letter-spacing: -0.02em;  margin: 0 0 8px;  line-height: 1.2;}.login-subtitle,.reset-subtitle {  color: #94a3b8;  font-size: 0.88rem;  line-height: 1.5;  margin: 0 0 24px;  font-weight: 400;}.login-form,.reset-form {  display: flex;  flex-direction: column;  gap: 14px;}.login-form .form-field,.reset-form .form-field {  margin-bottom: 0;  text-align: left;}.login-form .input-group,.reset-form .input-group {  position: relative;  display: flex;  align-items: center;  width: 100%;  min-height: 54px;  padding: 0 18px;  gap: 12px;  border: 1.5px solid rgba(56, 189, 248, 0.2);  border-radius: 14px;  background: rgba(15, 23, 42, 0.65);  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);}.login-form .input-group:hover,.reset-form .input-group:hover {  background: rgba(15, 23, 42, 0.85);  border-color: rgba(56, 189, 248, 0.4);}.login-form .input-group:focus-within,.reset-form .input-group:focus-within {  border-color: #38bdf8;  background: rgba(15, 23, 42, 0.95);  box-shadow: 0 0 0 3.5px rgba(56, 189, 248, 0.18), 0 4px 20px rgba(2, 132, 199, 0.15);}.login-form .input-group.invalid,.reset-form .input-group.invalid {  border-color: #f87171 !important;  background: rgba(239, 68, 68, 0.08) !important;  box-shadow: 0 0 0 3.5px rgba(239, 68, 68, 0.18) !important;}.login-form .input-group.invalid .input-icon,.login-form .input-group.invalid .field-label {  color: #f87171 !important;}.login-form .error-message,.reset-form .error-message {  display: none;  color: #f87171;  font-size: 0.78rem;  font-weight: 600;  line-height: 1.4;  margin-top: 6px;  padding-left: 6px;  text-align: left;}.login-form .input-icon,.reset-form .input-icon {  color: #64748b;  width: 20px;  flex-shrink: 0;  display: flex;  align-items: center;  justify-content: center;  transition: color 0.2s ease;}.login-form .input-group:focus-within .input-icon {  color: var(--cyan-accent);}.login-form .input-group input,.reset-form .input-group input {  min-width: 0;  padding: 12px 0;  font-family: inherit;  font-size: 0.92rem;  font-weight: 500;  color: #FFFFFF;  border: 0;  outline: 0;  background: transparent;  flex: 1;}.login-form .input-group input::placeholder {  color: transparent;}.login-form .field-label,.reset-form .field-label {  position: absolute;  left: 48px;  top: 50%;  color: #94a3b8;  font-size: 0.92rem;  font-weight: 500;  pointer-events: none;  transform: translateY(-50%);  transform-origin: left center;  transition: all 0.2s ease;}.login-form .input-group:focus-within .field-label,.login-form .input-group input:not(:placeholder-shown) + .field-label {  top: 0;  padding: 0 6px;  color: #38bdf8;  background: #0b172a;  font-size: 0.7rem;  font-weight: 700;  border-radius: 4px;  transform: translateY(-50%);  letter-spacing: 0.04em;}.login-form .eye {  color: #64748b;  background: transparent;  border: 0;  padding: 4px;  cursor: pointer;  display: flex;  align-items: center;  justify-content: center;  margin-left: auto;  transition: color 0.2s ease;}.login-form .eye:hover {  color: var(--cyan-accent);}.login-form .eye svg {  width: 18px;  height: 18px;  stroke: currentColor;  fill: none;}.login-options {  display: flex;  justify-content: space-between;  align-items: center;  margin: 4px 0 10px;  font-size: 0.82rem;}.remember-me {  display: flex;  align-items: center;  gap: 8px;  color: #cbd5e1;  font-weight: 500;  cursor: pointer;  user-select: none;}.remember-me input {  width: 16px;  height: 16px;  accent-color: #0ea5e9;  cursor: pointer;  border-radius: 4px;}.login-link {  color: var(--cyan-accent);  text-decoration: none;  font-weight: 700;  transition: all 0.18s ease;}.login-link:hover {  color: #7dd3fc;  text-decoration: underline;  text-underline-offset: 3px;}.login-primary {  display: flex;  align-items: center;  justify-content: center;  gap: 10px;  width: 100%;  height: 52px;  padding: 0 20px;  border-radius: 14px;  font-family: inherit;  font-size: 0.95rem;  font-weight: 800;  letter-spacing: 0.02em;  cursor: pointer;  color: #FFFFFF;  background: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);  border: 0;  box-shadow: 0 4px 20px rgba(2, 132, 199, 0.4);  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);  margin-top: 4px;}.login-primary:hover {  transform: translateY(-2px);  box-shadow: 0 8px 28px rgba(2, 132, 199, 0.55);}.login-primary:active {  transform: translateY(0);}.btn-icon-arrow {  font-size: 0.9rem;  transition: transform 0.2s ease;}.login-primary:hover .btn-icon-arrow {  transform: translateX(4px);}.login-divider {  display: flex;  align-items: center;  margin: 18px 0;  color: #64748b;  font-size: 0.72rem;  font-weight: 800;  letter-spacing: 0.08em;  text-transform: uppercase;}.login-divider::before,.login-divider::after {  content: '';  flex: 1;  border-bottom: 1px solid rgba(255, 255, 255, 0.1);}.login-divider span {  padding: 0 14px;}.login-google {  display: inline-flex;  align-items: center;  justify-content: center;  gap: 10px;  width: 100%;  height: 50px;  padding: 0 16px;  border-radius: 14px;  font-family: inherit;  font-size: 0.92rem;  font-weight: 700;  cursor: pointer;  color: #FFFFFF;  background: rgba(255, 255, 255, 0.05);  border: 1.5px solid rgba(255, 255, 255, 0.12);  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);  margin-bottom: 18px;  transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);}.login-google:hover:not(:disabled) {  background: rgba(255, 255, 255, 0.09);  border-color: rgba(56, 189, 248, 0.35);  transform: translateY(-1px);  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.35);}.login-google:disabled {  opacity: 0.6;  cursor: not-allowed;  transform: none;}.google-auth-error {  display: flex;  align-items: center;  gap: 8px;  background: rgba(239, 68, 68, 0.14);  border: 1px solid rgba(239, 68, 68, 0.35);  color: #fca5a5;  padding: 10px 14px;  border-radius: 12px;  font-size: 0.82rem;  line-height: 1.4;  margin: -6px 0 16px;  text-align: left;  animation: login-card-enter 0.25s ease;}.google-auth-error[hidden] {  display: none !important;}.signup-prompt {  color: #94a3b8;  font-size: 0.85rem;  margin: 6px 0 18px;  font-weight: 500;  display: flex;  align-items: center;  justify-content: center;  gap: 6px;}.signup-prompt .create-account-link {  color: var(--cyan-accent);  font-weight: 700;}.auth-security-footer {  display: flex;  align-items: center;  justify-content: center;  gap: 8px;  color: #64748b;  font-size: 0.72rem;  font-weight: 500;  margin-top: 14px;  padding-top: 14px;  border-top: 1px solid rgba(255, 255, 255, 0.08);}.auth-security-footer i {  color: #22c55e;}.login-terms {  color: #64748b;  font-size: 0.75rem;  line-height: 1.5;  margin: 0;}.login-terms a {  color: #94a3b8;  text-decoration: underline;  text-underline-offset: 2px;}.login-terms a:hover {  color: var(--cyan-accent);}.reset-illustration {  display: flex;  align-items: center;  justify-content: center;  width: 68px;  height: 68px;  margin: 0 auto 18px;  border-radius: 20px;  color: #38bdf8;  background: radial-gradient(circle, rgba(56, 189, 248, 0.18) 0%, rgba(2, 132, 199, 0.05) 100%);  border: 1px solid rgba(56, 189, 248, 0.28);  font-size: 26px;  box-shadow: 0 0 24px rgba(56, 189, 248, 0.2), inset 0 0 12px rgba(56, 189, 248, 0.1);  animation: reset-badge-float 3s ease-in-out infinite alternate;}@keyframes reset-badge-float {  0% { transform: translateY(0px); }  100% { transform: translateY(-4px); }}.reset-illustration.success-badge {  color: #34d399;  background: radial-gradient(circle, rgba(16, 185, 129, 0.2) 0%, rgba(5, 150, 105, 0.06) 100%);  border-color: rgba(16, 185, 129, 0.4);  box-shadow: 0 0 28px rgba(16, 185, 129, 0.25), inset 0 0 14px rgba(16, 185, 129, 0.12);}.reset-primary {  width: 100%;  height: 52px;  border: 0;  border-radius: 14px;  color: #ffffff;  background: linear-gradient(135deg, #0284c7 0%, #0ea5e9 100%);  font-size: 0.95rem;  font-weight: 800;  letter-spacing: 0.02em;  cursor: pointer;  box-shadow: 0 4px 20px rgba(2, 132, 199, 0.4);  display: inline-flex;  align-items: center;  justify-content: center;  gap: 8px;  transition: all 0.22s cubic-bezier(0.16, 1, 0.3, 1);}.reset-primary:hover {  transform: translateY(-2px);  box-shadow: 0 8px 28px rgba(2, 132, 199, 0.55);}@media (max-width: 640px) {  .auth-top-nav {    top: 18px;    left: 18px;  }  .login-page, .reset-page {    padding: 76px 16px 32px;    justify-content: flex-start;    min-height: 100vh;    min-height: 100dvh;  }  .login-container, .reset-container {    padding: 28px 20px 24px;    border-radius: 24px;  }  .auth-logo-img {    height: 50px;    max-width: 190px;  }  .card {    grid-template-columns: 1fr;    border-radius: 24px;  }  .card-art {    padding: 36px 24px;  }  .auth-form {    padding: 32px 24px;  }}@media (max-width: 360px) {  .login-page, .reset-page {    padding: 70px 10px 24px;  }  .login-container, .reset-container {    padding: 22px 14px 18px;    border-radius: 20px;  }  .login-container h1, .reset-container h1 {    font-size: 1.5rem;  }  .login-subtitle, .reset-subtitle {    font-size: 0.82rem;  }  .login-options {    flex-direction: column;    align-items: flex-start;    gap: 8px;  }  .login-form .input-group,  .reset-form .input-group {    padding: 0 14px;    min-height: 48px;  }}@supports (padding-top: env(safe-area-inset-top)) {  .auth-top-nav {    top: calc(18px + env(safe-area-inset-top, 0px));  }}@media (max-height: 720px) {  .login-page, .reset-page {    justify-content: flex-start;    padding-top: 80px;  }}
.auth-modal-overlay {
  position: fixed;
  inset: 0;
  z-index: 99999;
  background: rgba(7, 17, 31, 0.4);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}
.auth-modal-overlay.active {
  opacity: 1;
  visibility: visible;
}
.auth-modal-content {
  position: relative;
  width: 100%;
  max-width: 480px;
  height: 95vh;
  max-height: 850px;
  background: transparent;
  transform: translateY(30px) scale(0.95);
  opacity: 0;
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.4s ease;
}
.auth-modal-overlay.active .auth-modal-content {
  transform: translateY(0) scale(1);
  opacity: 1;
}
.auth-modal-close {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.8);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: #94a3b8;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  z-index: 10;
  transition: all 0.2s ease;
}
.auth-modal-close:hover {
  background: #1e293b;
  color: #f8fafc;
  transform: scale(1.1);
}
#authIframe {
  width: 100%;
  height: 100%;
  border: none;
  border-radius: 24px;
}
