.auth-page,.auth-page *,.auth-page *::before,.auth-page *::after{box-sizing:border-box}

.auth-page{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:24px 16px;background:transparent}
.auth-card{width:100%;max-width:520px;padding:28px;border-radius:20px;border:1px solid var(--border);background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.1)}
.auth-header{margin:0 0 16px}.auth-title{margin:0 0 8px;font-size:30px;line-height:1.15}.auth-subtitle{margin:0;color:#6b7280}
.auth-alert{margin:0 0 12px;padding:10px 12px;border-radius:12px;border:1px solid #fecaca;background:#fef2f2;color:#991b1b;font-size:14px}
.auth-success{margin:0 0 12px;padding:10px 12px;border-radius:12px;border:1px solid #86efac;background:#f0fdf4;color:#166534;font-size:14px}
.auth-form{display:grid;gap:12px}.auth-label{display:block;margin:0 0 6px;font-size:14px;font-weight:600;color:#4b5563}
.auth-input{width:100%;height:52px;line-height:52px;margin:0;padding:0 16px;border-radius:14px;border:1px solid var(--border);background:#fff;color:#111827;outline:none;box-sizing:border-box;transition:border-color .18s ease,box-shadow .18s ease}
.auth-input:focus{border-color:rgba(124,58,237,.44);box-shadow:0 0 0 3px rgba(124,58,237,.14)}
.auth-password-field{position:relative}.auth-input--password{padding-right:50px}
.auth-password-toggle{position:absolute;right:10px;top:50%;width:32px;height:32px;transform:translateY(-50%);padding:0;margin:0;border:0;border-radius:10px;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#6b7280;line-height:1;box-sizing:border-box;transition:background-color .16s ease,color .16s ease}
.auth-password-toggle:hover,.auth-password-toggle:focus-visible{background:rgba(124,58,237,.08);color:#5b21b6;outline:none;transform:translateY(-50%)}
.auth-password-toggle:active{background:rgba(124,58,237,.12);transform:translateY(-50%)}
.auth-password-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;pointer-events:none;margin:0;padding:0;transform:none}.auth-password-icon svg{display:block;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.auth-password-icon--hide{display:none}.auth-password-toggle[aria-pressed='true'] .auth-password-icon--show{display:none}.auth-password-toggle[aria-pressed='true'] .auth-password-icon--hide{display:inline-flex}
.auth-error{font-size:12px;color:#dc2626;min-height:16px;margin-top:4px}
.auth-btn{width:100%;height:52px;border-radius:14px;border:1px solid #6d28d9;background:linear-gradient(180deg,#8b5cf6 0%,#7c3aed 58%,#6d28d9 100%);color:#fff;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 10px 20px rgba(76,29,149,.24);transition:background .18s ease,transform .18s ease,box-shadow .18s ease}
.auth-btn:hover{background:linear-gradient(180deg,#7c3aed 0%,#6d28d9 60%,#5b21b6 100%);transform:translateY(-1px);box-shadow:0 12px 22px rgba(76,29,149,.28)}
.auth-btn:active{transform:translateY(0);box-shadow:0 7px 14px rgba(76,29,149,.22)}
.auth-hint{margin:6px 0 0;text-align:center;color:#6b7280;font-size:13px}

.auth-trust{margin:4px 0 0;text-align:center;color:#6b7280;font-size:12px;line-height:1.45}
.auth-hint--split{display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left}
.auth-link-btn{color:#4c1d95;text-decoration:none;font-weight:600}.auth-link-btn:hover{text-decoration:underline}
@media (max-width:420px){.auth-card{padding:18px}.auth-title{font-size:24px}}
