.auth-page { padding: 2rem 0 4rem; min-height: 60vh; }
.auth-card { max-width: 480px; margin: 0 auto; background: #fff; border: 1px solid #e5e7eb; border-radius: 16px; padding: 2rem; box-shadow: 0 10px 30px rgba(0,0,0,.08); }
.auth-card__promo { text-align: center; padding: 1rem; margin-bottom: 1.5rem; border-radius: 12px; background: linear-gradient(135deg, rgba(255,107,91,.12), rgba(255,142,83,.08)); border: 1px solid rgba(255,107,91,.2); }
.auth-card__promo-title { font-size: 1.5rem; font-weight: 800; color: #FF6B5B; }
.auth-card h1 { font-size: 1.35rem; margin-bottom: .5rem; }
.auth-card__subtitle { color: #6b7280; font-size: .9rem; margin-bottom: 1.5rem; }
.auth-card__switch { text-align: center; margin-top: 1.25rem; font-size: .9rem; color: #6b7280; }
.auth-card__switch a { color: #FF6B5B; font-weight: 700; }
.form-control { width: 100%; border-radius: 8px; border: 1px solid #d1d5db; padding: .75rem 1rem; font-size: .95rem; outline: none; background: #fff; }
.form-control:focus { border-color: #FF6B5B; box-shadow: 0 0 0 3px rgba(255,107,91,.18); }
.auth-form__agree { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 1.25rem; }
.auth-form__agree input { margin-top: 3px; accent-color: #FF6B5B; }
.auth-form__agree label { font-size: .8rem; color: #6b7280; line-height: 1.6; }
.auth-form__agree button { background: none; border: none; padding: 0; color: #FF6B5B; font-weight: 700; cursor: pointer; text-decoration: underline; font-size: inherit; }
.auth-modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.75); z-index: 100000; padding: 16px; overflow-y: auto; align-items: flex-start; justify-content: center; }
.auth-modal-overlay.open { display: flex; }
.auth-modal { background: #fff; border-radius: 16px; max-width: 420px; width: 100%; margin: 24px auto; padding: 24px 20px; position: relative; box-shadow: 0 20px 50px rgba(0,0,0,.2); }
.auth-modal__close { position: absolute; top: 10px; right: 12px; background: none; border: none; color: #6b7280; font-size: 26px; cursor: pointer; }
.auth-modal__header { text-align: center; margin-bottom: 20px; }
.auth-modal__header h2 { font-size: 1.25rem; font-weight: 800; color: #FF6B5B; margin-bottom: 4px; }
.auth-modal__header p { font-size: .85rem; color: #6b7280; }
.auth-modal__agree { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 16px; }
.auth-modal__agree label { font-size: .8rem; color: #6b7280; line-height: 1.5; }
.auth-modal__submit { width: 100%; }
.auth-modal__switch { text-align: center; font-size: .85rem; color: #6b7280; margin-top: 16px; }
.auth-modal__switch button { background: none; border: none; color: #FF6B5B; font-weight: 700; cursor: pointer; text-decoration: underline; }
#toast-container { position: fixed; top: 16px; right: 16px; z-index: 100001; display: flex; flex-direction: column; gap: 8px; max-width: 320px; }
.toast { padding: 12px 16px; border-radius: 8px; font-size: .875rem; font-weight: 600; color: #fff; box-shadow: 0 8px 24px rgba(0,0,0,.15); }
.toast-success { background: #059669; }
.toast-error { background: #DC2626; }
.toast-info { background: #FF6B5B; }
.toast.hide { opacity: 0; transition: opacity .3s; }
.terms-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.75); z-index: 100002; padding: 16px; overflow-y: auto; }
.terms-overlay.open { display: block; }
.terms-box { background: #fff; border-radius: 16px; max-width: 480px; margin: 40px auto; padding: 24px; position: relative; }
.terms-box__close { position: absolute; top: 12px; right: 12px; background: none; border: none; font-size: 22px; cursor: pointer; }
.terms-box p { font-size: .85rem; line-height: 1.75; color: #6b7280; margin-bottom: 12px; }
