.page { min-height: 100vh; background: var(--sage-50); display: flex; align-items: center; justify-content: center; padding: 24px; }
.card { background: var(--white); border: 1px solid var(--sage-100); border-radius: var(--radius-2xl); padding: 40px 36px; max-width: 440px; width: 100%; box-shadow: var(--shadow-lg); }
.logo { display: flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--font-display); font-size: 1.375rem; font-weight: 700; color: var(--sage-500); margin-bottom: 24px; }
.title { font-family: var(--font-display); font-size: 1.625rem; font-weight: 700; color: var(--text-dark); text-align: center; margin-bottom: 6px; }
.subtitle { color: var(--sage-400); text-align: center; margin-bottom: 28px; }
.form { display: flex; flex-direction: column; gap: 16px; }
.passWrap { position: relative; }
.eyeBtn { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; color: var(--sage-300); display: flex; }
.checkboxRow { display: flex; align-items: flex-start; gap: 10px; font-size: 0.875rem; color: var(--sage-400); cursor: pointer; }
.checkboxRow input { margin-top: 2px; accent-color: var(--sage-500); }
.link { color: var(--sage-500); font-weight: 600; text-decoration: none; }
.loginText { text-align: center; font-size: 0.9rem; color: var(--sage-400); margin-top: 20px; }
.loginLink { color: var(--sage-500); font-weight: 600; text-decoration: none; }
.passInput { padding-right: 44px; }
.spinnerSm { width: 16px; height: 16px; border-width: 2px; }
.errorBox { display: flex; align-items: center; gap: 8px; background: #fef2f2; border: 1px solid #fecaca; border-radius: var(--radius-md); padding: 10px 14px; color: #dc2626; font-size: 0.875rem; margin-bottom: 4px; }

@media (max-width: 480px) {
  .page { padding: 16px; align-items: flex-start; padding-top: 40px; }
  .card { padding: 28px 20px; border-radius: var(--radius-xl); }
  .title { font-size: 1.375rem; }
}

