.auth-page{min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;justify-content:safe center;gap:clamp(18px,3.2vh,30px);padding:clamp(36px,6vh,64px) 16px clamp(44px,7vh,72px);background:transparent}.auth-page--with-topnav{justify-content:flex-start;justify-content:safe flex-start;padding-top:clamp(24px,4vh,40px)}.auth-page--top{justify-content:flex-start;justify-content:safe flex-start;gap:18px;padding-top:132px}.auth-page--top.auth-page--with-topnav{padding-top:clamp(24px,4vh,40px)}.auth-card{position:relative;width:100%;max-width:460px;background:var(--dfl-glass-card-bg);backdrop-filter:blur(var(--dfl-glass-blur-lg));-webkit-backdrop-filter:blur(var(--dfl-glass-blur-lg));border:1px solid var(--dfl-glass-border);border-radius:var(--dfl-radius-md);padding:34px 30px 28px;box-shadow:var(--dfl-shadow-md);overflow:hidden}.auth-card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--dfl-glass-top-border);pointer-events:none}.auth-logo{display:flex;justify-content:center}.auth-logo--corner{position:fixed;top:14px;left:var(--dfl-space-lg);z-index:20}.auth-title{font-family:var(--dfl-font-sans);font-size:1.25rem;font-weight:600;letter-spacing:var(--dfl-tracking-tighter);color:var(--dfl-text-primary);margin:0 0 6px;text-align:center}.auth-switch{margin:20px 0 0;text-align:center;font-size:.8rem;color:var(--dfl-text-muted)}.auth-switch a{color:var(--dfl-accent);font-weight:600;text-decoration:none}.auth-switch a:hover{text-decoration:underline}.login-sub{font-family:var(--dfl-font-sans);font-size:.8rem;color:var(--dfl-text-muted);margin:0 0 20px;text-align:center}.login-form{display:flex;flex-direction:column;gap:10px}.login-form[hidden]{display:none}.login-switch-btn{margin-left:4px;font-weight:600}.login-otp{display:flex;flex-direction:column;gap:10px}.login-otp[hidden]{display:none}.login-otp-hint{margin:0;font-size:.8rem;line-height:1.7;color:var(--dfl-text-muted);text-align:left}.login-otp-rule{margin:8px 0 0;font-size:.7rem;line-height:1.6;color:var(--dfl-text-muted);opacity:.8;text-align:center}.login-otp-actions{display:flex;align-items:center;justify-content:center;gap:8px;margin:0;font-size:.78rem;color:var(--dfl-text-muted)}.login-otp-sep{color:var(--dfl-text-muted)}.login-hints{display:flex;flex-direction:column;align-items:flex-start;gap:5px;margin:0;padding:2px 0 0}.login-hints[hidden]{display:none}.login-hints .form-hint{margin:0;font-size:.74rem;line-height:1.55}.login-hints--password{flex-direction:row;align-items:center;gap:8px;flex-wrap:nowrap;white-space:nowrap;margin-top:-1px;margin-bottom:1px;overflow-x:auto;scrollbar-width:none}.login-hints--password::-webkit-scrollbar{display:none}.login-hint-sep{color:var(--dfl-text-muted);opacity:0;font-size:.68rem;line-height:1;transform:translateY(-1px)}.login-hints--password.is-active .login-hint-sep{opacity:.55}.form-hint--idle{opacity:0}.form-hint.is-satisfied{opacity:1;color:var(--dfl-form-hint-satisfied)}.form-hint.is-error{opacity:1;color:var(--dfl-accent);text-shadow:0 0 10px rgba(212,62,106,.22)}.login-submit-gap{height:4px}@media(max-width:640px){.auth-page{padding:24px 14px 32px;gap:16px}.auth-page--top{gap:14px;padding-top:88px}.auth-page--with-topnav,.auth-page--top.auth-page--with-topnav{padding-top:16px}.auth-logo--corner{top:14px;left:var(--dfl-space-md)}.auth-card{max-width:100%;padding:28px 16px 22px}.login-sub{margin-bottom:14px}}.login-registered{display:flex;align-items:center;gap:8px;font-family:var(--dfl-font-sans);font-size:.75rem;line-height:1.5;color:var(--dfl-error);background:var(--dfl-error-bg);border:1px solid var(--dfl-error-border-soft);border-radius:var(--dfl-radius-md);padding:10px 12px;text-align:left}.login-registered[hidden]{display:none}.login-registered--ok{color:var(--dfl-text-primary);background:var(--dfl-bg-secondary);border-color:var(--dfl-glass-border)}.btn-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-submit .btn-submit-plop{display:none}.btn-submit:disabled .btn-submit-label{opacity:0}.btn-submit:disabled .btn-submit-plop{display:inline-flex;align-items:center;gap:4px}.btn-submit-plop>span{width:5px;height:5px;border-radius:50%;background:currentColor;animation:btn-plop 1.2s ease-in-out infinite}.btn-submit-plop>span:nth-child(2){animation-delay:.15s}.btn-submit-plop>span:nth-child(3){animation-delay:.3s}@keyframes btn-plop{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-3px);opacity:1}}
