body{flex-direction:column;min-height:100vh;margin:0;display:flex}.login-page{background:#f7f8fa;flex:1;justify-content:center;align-items:center;display:flex}.app-footer{color:#6b7280;text-align:center;background:#fff;border-top:1px solid #e5e7eb;margin-top:auto;padding:10px 20px;font-size:12px}.app-footer-link{color:#6b7280;text-decoration:none}.app-footer-link:hover{color:#2563eb;text-decoration:underline}.login-card{background:#fff;border-radius:12px;width:380px;max-width:92vw;padding:2.5rem 2rem;box-shadow:0 1px 3px #00000014,0 6px 24px #0000000d}.login-card--wide{width:420px}.login-title{margin:0 0 .25rem;font-size:1.6rem}.login-title--sm{margin-bottom:1rem;font-size:1.4rem}.login-tagline{color:#6b7280;margin:0 0 1.5rem}.login-tagline--sm{font-size:.9rem}.login-tagline--tight{margin:.25rem 0}.sso-btn{justify-content:center;align-items:center;gap:.6rem;width:100%;display:inline-flex}.btn-block{width:100%;margin-top:1rem}.google-mark{display:inline-flex}.login-breakglass{color:#6b7280;text-align:center;border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1rem;font-size:.85rem}.login-breakglass a{color:inherit}.login-form{flex-direction:column;gap:.75rem;margin-top:1rem;display:flex}.login-form .form-label{color:#374151;flex-direction:column;gap:.25rem;font-size:.85rem;display:flex}.login-form input{border:1px solid #d1d5db;border-radius:6px;padding:.5rem}.form-error{color:#dc2626;margin:0;font-size:.85rem}.auth-container{max-width:400px;margin:80px auto;padding:32px}.auth-container--centered{text-align:center}.msg-container{text-align:center;max-width:440px;margin:80px auto;padding:32px}.onboard-container{max-width:440px;margin:60px auto;padding:32px}.auth-container h1,.msg-container h1{margin-bottom:8px;font-size:1.4rem}.auth-container--centered h1,.msg-container h1{margin-bottom:12px}.onboard-container h1{margin-bottom:8px;font-size:1.5rem}.auth-container p,.onboard-container p{color:#64748b;margin-bottom:24px}.msg-container p{color:#64748b}.form-group{margin-bottom:16px}.form-group label{margin-bottom:6px;font-size:.875rem;font-weight:500;display:block}.form-input{box-sizing:border-box;border:1px solid #d1d5db;border-radius:6px;width:100%;padding:9px 12px;font-size:.9rem}.form-input:focus{border-color:#0000;outline:2px solid #2563eb}.btn-submit{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;width:100%;padding:10px;font-size:1rem;font-weight:500}.btn-submit:hover{background:#1d4ed8}.hint{color:#94a3b8;margin-top:4px;font-size:.8rem}.error{color:#dc2626;margin-bottom:12px;font-size:.875rem}.errors{background:#fee2e2;border-radius:6px;margin-bottom:16px;padding:12px 16px}.errors ul{color:#991b1b;margin:0;padding-left:20px;font-size:.875rem}.link{color:#2563eb;text-decoration:none}.link-row,.reset-link-note{margin-top:12px}.back-link{text-align:center;color:#2563eb;margin-top:16px;font-size:.875rem;text-decoration:none;display:block}.auth-container--centered .back-link{text-align:initial;margin-top:24px;display:inline-block}.msg-container .btn{color:#fff;background:#2563eb;border:none;border-radius:6px;margin-top:20px;padding:10px 24px;font-weight:500;text-decoration:none;display:inline-block}.msg-container .btn:hover{background:#1d4ed8}.step-indicator{gap:8px;margin-bottom:28px;display:flex}.step{background:#e2e8f0;border-radius:2px;flex:1;height:4px}.step.active{background:#2563eb}
