.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: 420px; 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; }
.forgotRow { text-align: right; }
.forgotLink { font-size: 0.8125rem; color: var(--sage-400); text-decoration: none; }
.forgotLink:hover { color: var(--sage-500); }
.divider { text-align: center; position: relative; margin: 20px 0; }
.divider::before { content: ''; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: var(--sage-100); }
.divider span { background: var(--white); padding: 0 12px; color: var(--sage-300); font-size: 0.8125rem; position: relative; }
.registerText { text-align: center; font-size: 0.9rem; color: var(--sage-400); }
.registerLink { 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; }
.redirectNote { display: flex; align-items: center; background: var(--sage-50); border: 1px solid var(--sage-200); border-radius: var(--radius-md); padding: 10px 14px; color: var(--sage-600); font-size: 0.875rem; margin-bottom: 16px; }

@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; }
}

