._step2 .is-invalid .text-input-control { border-bottom-color: var(--brand-color); }
._step2 .field-error { font-size: .75rem; color: var(--brand-color); margin-top: .25rem; display: none; }
._step2 .field-error.show { display: block; }

._step2 .select-search { position: relative; width: 100%; }
._step2 .select-search .text-input-control { cursor: pointer; }
._step2 .select-search .select-dropdown { position: absolute; top: 100%; left: 0; right: 0; z-index: 50; max-height: 15rem; overflow-y: auto; background: #fff; border: 1px solid #000; border-top: none; display: none; margin: 0; padding: 0; list-style: none; }
._step2 .select-search .select-dropdown.open { display: block; }
._step2 .select-search .select-dropdown li { padding: 0.75rem 1rem; cursor: pointer; font-size: 14px; border-bottom: 1px solid #eee; }
._step2 .select-search .select-dropdown li:hover { background: var(--brand-color-light); }
._step2 .select-search .select-dropdown li.selected { background: var(--brand-color); color: #fff; }
._step2 .select-search .select-dropdown li.no-result { padding: 0.75rem 1rem; font-size: 14px; color: #999; cursor: default; }

._step2 .verify-wrap { position: relative; }
._step2 .verify-wrap .send-code-btn { position: absolute; right: 0; bottom: .75rem; padding: .25rem .75rem; font-size: .75rem; color: var(--brand-color); background: none; border: 1px solid var(--brand-color); border-radius: .25rem; cursor: pointer; white-space: nowrap; z-index: 2; line-height: 1.4; }
._step2 .verify-wrap .send-code-btn:disabled { color: #999; border-color: #999; cursor: not-allowed; }
._step2 .verify-wrap .send-code-btn:hover:not(:disabled) { background: var(--brand-color); color: #fff; }
._step2 .verify-wrap .send-code-btn.verified { background: #4caf50; color: #fff; border-color: #4caf50; cursor: default; }

.toast-container { position: fixed; top: 1rem; left: 50%; transform: translateX(-50%); z-index: 9999; display: flex; flex-direction: column; align-items: center; gap: 0.5rem; pointer-events: none; }
.toast { background: #333; color: #fff; padding: 0.75rem 1.5rem; border-radius: 0.25rem; font-size: 0.875rem; box-shadow: 0 4px 12px rgba(0,0,0,0.2); animation: toastIn 0.3s ease; pointer-events: auto; max-width: 90vw; text-align: center; }
.toast.error { background: var(--brand-color); }
.toast.success { background: #27ae60; }
.toast.warning { background: #e67e22; }
@keyframes toastIn { from { opacity: 0; transform: translateY(-0.5rem); } to { opacity: 1; transform: translateY(0); } }

.login-overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,.5); z-index: 9998; display: none; justify-content: center; align-items: center; }
.login-overlay.show { display: flex; }
.login-modal { background: #fff; border-radius: .5rem; padding: 2.5rem; width: 90%; max-width: 520px; position: relative; box-shadow: 0 8px 32px rgba(0,0,0,.2); }
@media (max-width: 768px) { .login-modal { padding: 2rem 1.5rem; } }
.login-modal-close { position: absolute; top: .5rem; right: .75rem; background: none; border: none; font-size: 1.5rem; cursor: pointer; line-height: 1; color: #999; }
.login-modal .is-invalid .text-input-control { border-bottom-color: var(--brand-color); }
.login-modal .field-error { font-size: .75rem; color: var(--brand-color); margin-top: .25rem; display: none; }
.login-modal .field-error.show { display: block; }
