.auth #app{display:flex;flex-direction:column;min-height:100vh;min-height:100svh}.auth #app .footer-container{margin-top:auto}.auth-page{display:flex;justify-content:center;padding:var(--tf-space-6) 0 var(--tf-space-10)}.auth-panel.panel{display:grid;gap:var(--tf-space-6);width:100%;max-width:440px;padding:var(--tf-space-7)}.auth-panel.panel>.alert,.auth-panel.panel>.app-alert{margin:0}.auth-head{display:grid;gap:var(--tf-space-1)}.auth-title{margin:0;color:var(--tf-color-ink);font-size:1.375rem;font-weight:600;line-height:1.3;text-wrap:balance}.auth-lead{margin:0;color:var(--tf-color-muted)}.auth-switch-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:3px;border-radius:var(--tf-radius-sm);background:var(--tf-color-chip);list-style:none}.auth-switch-list>li{display:flex;min-width:0;margin:0}.auth-switch-link{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-height:38px;padding:7px 18px;border-radius:var(--tf-radius-xs);color:var(--tf-color-muted);font-size:.875rem;font-weight:600;text-decoration:none;transition:background-color .15s ease,color .15s ease}.auth-switch-link:hover{color:var(--tf-color-ink)}.auth-switch-link:focus-visible{outline:none;box-shadow:var(--tf-focus-ring)}.auth-switch-link[aria-current=page]{background:var(--tf-color-brand);color:var(--tf-color-on-brand)}.auth-form{display:grid;gap:var(--tf-space-5)}.auth-form .form-group{margin:0}.auth-form .form-check{min-height:44px;align-items:center;margin:0}.auth-form .invalid-feedback:not(.d-none){display:block;margin:0}.auth-links{display:grid;gap:var(--tf-space-2);font-size:.875rem}.auth-links p{margin:0;color:var(--tf-color-ink-2)}.auth-providers{display:grid;gap:var(--tf-space-5)}.auth-divider{display:flex;align-items:center;gap:var(--tf-space-3);margin:0;color:var(--tf-color-muted);font-size:.875rem}.auth-divider:after,.auth-divider:before{content:"";flex:1 1 auto;border-top:var(--tf-border-hairline)}.auth-terms{margin:0;color:var(--tf-color-muted);font-size:.875rem;line-height:1.45}.auth-actions{display:grid;gap:var(--tf-space-3)}@media(max-width:575.98px){.auth-page{padding-top:var(--tf-space-4)}.auth-panel.panel{padding:var(--tf-space-6) var(--tf-space-5)}}@media(prefers-reduced-motion:reduce){.auth-switch-link{transition:none}}@media(pointer:coarse){.auth-switch-link{min-height:44px}}