.auth-modal[hidden]{display:none}
.auth-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility 0s linear .22s}
.auth-modal.is-open,.auth-modal.is-closing{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.auth-modal__backdrop{position:absolute;inset:0;background:rgba(15,42,51,.58);backdrop-filter:blur(5px);cursor:pointer;opacity:0;transition:opacity .22s ease}
.auth-modal.is-open .auth-modal__backdrop{opacity:1}
.auth-modal__dialog{position:relative;width:min(100%,480px);max-height:min(720px,calc(100vh - 32px));overflow:auto;background:var(--bg);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:0 24px 70px rgba(15,42,51,.24);outline:0;opacity:0;transform:translateY(8px) scale(.985);transition:opacity .22s ease,transform .22s ease}
.auth-modal.is-open .auth-modal__dialog{opacity:1;transform:translateY(0) scale(1)}
.auth-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--s-4);padding:28px 28px 0}
.auth-modal__header h2{margin:0;font-size:var(--t-h2);font-weight:600;line-height:1.15;letter-spacing:-.025em}
.auth-modal__close{display:grid;place-items:center;width:36px;height:36px;margin:-6px -6px 0 0;border:0;border-radius:var(--r-sm);background:var(--surface);font-size:26px;line-height:1;cursor:pointer}
.auth-modal__close:hover{background:var(--surface-2)}
.auth-modal__body{padding:24px 28px 28px}
.auth-modal__field{display:grid;gap:7px;margin-bottom:14px;color:var(--text-2);font-size:var(--t-sm);font-weight:600}
.auth-modal__field input{width:100%;height:48px;padding:0 14px;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--bg);color:var(--text);font:inherit;font-weight:400;transition:border-color .18s,box-shadow .18s}
.auth-modal__field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-weak);outline:0}
.auth-modal__check{display:flex;align-items:flex-start;gap:9px;margin:4px 0 18px;color:var(--text-2);font-size:var(--t-xs);line-height:1.45}
.auth-modal__check input{width:17px;height:17px;margin:1px 0 0;accent-color:var(--accent);flex:none}
.auth-modal__twofa{margin:2px 0 4px;padding:12px;border-radius:var(--r-sm);background:var(--surface)}
.auth-modal__twofa[hidden]{display:none}
.auth-modal__hint{margin:0;color:var(--text-3);font-size:var(--t-xs);line-height:1.45}
.auth-modal__message{min-height:22px;margin:2px 0 12px;color:var(--text-2);font-size:var(--t-sm);line-height:1.45}
.auth-modal__message:empty{min-height:0}
.auth-modal__message.is-error,.auth-modal__message.error{color:#B54735}
.auth-modal__message.is-success,.auth-modal__message.success{color:var(--ok)}
.auth-modal__submit{width:100%;height:48px;border:0;border-radius:var(--r-sm)}
.auth-modal__submit:disabled{cursor:wait;opacity:.55}
.auth-modal__links{display:flex;justify-content:center;gap:16px;flex-wrap:wrap;margin-top:18px}
.auth-modal__links button{padding:0;border:0;background:none;color:var(--accent);font-size:var(--t-sm);font-weight:600;cursor:pointer}
.auth-modal__links button:hover{text-decoration:underline;text-underline-offset:3px}
html.auth-modal-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .auth-modal,.auth-modal__backdrop,.auth-modal__dialog{transition-duration:0s;transition-delay:0s}
}
@media (max-width:620px){
  .auth-modal{align-items:end;padding:0}
  .auth-modal__dialog{max-height:calc(100vh - 12px);border-radius:var(--r-lg) var(--r-lg) 0 0}
  .auth-modal__header{padding:24px 20px 0}
  .auth-modal__body{padding:20px}
}
