.auth-layout{min-height:100vh;display:flex;flex-direction:column}.auth-layout-main{flex:1 0 auto;display:flex;flex-direction:column;padding-bottom:4rem}.auth-mini-footer{position:fixed;inset:auto 0 0;width:100%;z-index:100;background:var(--color-bg);padding:var(--space-3) var(--space-6);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-normal);box-sizing:border-box}.auth-mini-footer a{color:var(--color-text-muted);text-decoration:none;transition:color var(--transition-fast)}.auth-mini-footer a:hover{color:var(--color-text)}.auth-page{padding-block:var(--space-16);display:flex;justify-content:center}.auth-card{width:100%;max-width:440px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-10) var(--space-8)}.auth-title{font-size:var(--text-3xl);font-weight:var(--weight-bold);line-height:var(--leading-tight);margin-bottom:var(--space-3);text-align:center}.auth-sub{font-size:var(--text-base);color:var(--color-text-secondary);line-height:var(--leading-relaxed);text-align:center;margin-bottom:var(--space-8)}.auth-form{display:flex;flex-direction:column;gap:var(--space-4)}.auth-consent{font-size:var(--text-xs);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin-top:var(--space-1)}.auth-forgot-link{align-self:flex-end;margin-top:calc(var(--space-2) * -1);font-size:var(--text-xs);color:var(--color-primary);text-decoration:none}.auth-forgot-link:hover{text-decoration:underline}.auth-form-error{background:var(--color-danger-muted);border:1px solid rgba(220,38,38,.25);color:#991b1b;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.auth-success{background:var(--color-accent-muted);border:1px solid rgba(5,150,105,.25);color:#065f46;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.auth-footer-link{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--color-border-subtle);text-align:center;font-size:15px;line-height:var(--leading-loose);color:var(--color-text-secondary)}.auth-footer-link-inline{margin-top:var(--space-3);padding-top:0;border-top:none}.auth-footer-link a{color:var(--color-primary);font-weight:var(--weight-medium);text-decoration:none;display:inline-block;padding:var(--space-1) var(--space-2);margin:0 calc(var(--space-2) * -1)}.auth-footer-link a:hover{text-decoration:underline}.auth-status{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-3);margin-bottom:var(--space-6)}.auth-status-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--radius-full);flex-shrink:0}.auth-status-icon-neutral{background:var(--color-bg-surface);color:var(--color-text-secondary)}.auth-status-icon-success{background:var(--color-accent-muted);color:var(--color-accent)}.auth-status-icon-warning{background:var(--color-warning-muted);color:var(--color-warning)}.auth-status-icon-danger{background:var(--color-danger-muted);color:var(--color-danger)}.auth-actions{display:flex;flex-direction:column;gap:var(--space-3)}.auth-actions-row{display:flex;gap:var(--space-3);justify-content:center;flex-wrap:wrap}.auth-note{font-size:15px;color:var(--color-text-muted);line-height:var(--leading-loose);text-align:center;margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-border-subtle)}.auth-note a{color:var(--color-primary);text-decoration:none;display:inline-block;padding:var(--space-1) var(--space-2);margin:0 calc(var(--space-2) * -1);font-weight:var(--weight-medium)}.auth-note a:hover{text-decoration:underline}.auth-otp-block{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);margin:var(--space-2) 0 var(--space-6)}.auth-otp-error{font-size:var(--text-sm);color:var(--color-danger);text-align:center;line-height:var(--leading-relaxed)}.auth-otp-expired{font-size:var(--text-sm);color:var(--color-danger);text-align:center;line-height:var(--leading-relaxed);font-weight:var(--weight-medium);padding:var(--space-2) var(--space-4);background:var(--color-danger-muted);border-radius:var(--radius-md)}.auth-otp-expiry{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center;margin-top:var(--space-2);margin-bottom:0}.auth-otp-status{font-size:var(--text-xs);color:var(--color-text-muted);text-align:center}.auth-resend-hint{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-2)}.auth-password-row{position:relative}.auth-password-generate{position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;font-size:var(--text-xs);color:var(--color-primary);cursor:pointer;font-weight:var(--weight-medium)}.auth-password-generate:hover{text-decoration:underline}.auth-show-password{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;margin-top:calc(var(--space-2) * -1)}.auth-show-password input[type=checkbox]{cursor:pointer}.dd-spin{animation:ddSpin .9s linear infinite}@keyframes ddSpin{to{transform:rotate(360deg)}}@media(max-width:640px){.auth-page{padding-block:var(--space-8)}.auth-card{padding:var(--space-8) var(--space-6);border-radius:var(--radius-lg)}.auth-title{font-size:var(--text-2xl)}}
