.login-page{--primary:#2e4a8f;--primary-light:#e7ecf8;--primary-mid:#aabce3;--secondary:#ee6a80;--secondary-light:#fdebee;--tertiary:#f4b84a;--tertiary-light:#fdf3dd;--success:#43a047;--success-light:#f0faf0;--bg:#fafbfd;--surface:#f7f9fc;--foreground:#1a1a2e;--muted:#64748b;--border:#e2e8f0;--radius-card:24px;--radius-btn:100px;--radius-input:12px;--shadow-sm:0 2px 8px #2e4a8f12;--shadow-md:0 4px 20px #2e4a8f1f;--shadow-lg:0 8px 40px #2e4a8f2e;--danger:#dc2626;--danger-light:#fef2f2;--danger-border:#fecaca;--danger-text:#991b1b;background:var(--bg);color:var(--foreground);flex-direction:column;min-height:100vh;font-family:Nunito Sans,sans-serif;font-size:16px;line-height:1.6;display:flex}.login-page .top-nav{border-bottom:1px solid var(--border);z-index:100;background:#fff;justify-content:space-between;align-items:center;padding:14px 28px;display:flex;position:sticky;top:0;box-shadow:0 1px 12px #2e4a8f0f}.login-page .logo{align-items:center;gap:0;font-family:Fredoka,sans-serif;font-size:22px;font-weight:700;text-decoration:none;display:flex}.login-page .page-center{flex:1;justify-content:center;align-items:center;padding:40px 24px;display:flex}.login-page .auth-card{border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-md);background:#fff;width:100%;max-width:480px;padding:40px 36px;animation:.5s ease-out both loginFadeInUp}@keyframes loginFadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.login-page .auth-header{text-align:center;margin-bottom:28px}.login-page .auth-icon{background:var(--primary-light);width:52px;height:52px;color:var(--primary);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.login-page .auth-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--primary);margin-bottom:6px;font-size:11px;font-weight:800}.login-page .auth-title{color:var(--foreground);margin-bottom:6px;font-family:Fredoka,sans-serif;font-size:26px;font-weight:600}.login-page .auth-subtitle{color:var(--muted);font-size:15px}.login-page .auth-error{background:var(--danger-light);border:1.5px solid var(--danger-border);color:var(--danger-text);border-radius:16px;align-items:center;gap:10px;margin-bottom:20px;padding:12px 18px;font-size:14px;font-weight:600;display:flex}.login-page .auth-field{flex-direction:column;gap:6px;display:flex}.login-page .auth-field label{color:var(--foreground);font-size:14px;font-weight:700}.login-page .auth-input{border:1.5px solid var(--border);border-radius:var(--radius-input);width:100%;height:44px;color:var(--foreground);background:#fff;outline:none;padding:0 16px;font-family:Nunito Sans,sans-serif;font-size:15px;transition:border-color .2s,box-shadow .2s}.login-page .auth-input::placeholder{color:var(--muted)}.login-page .auth-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2e4a8f26}.login-page .auth-form{flex-direction:column;gap:16px;display:flex}.login-page .auth-form label{color:var(--foreground);margin-bottom:4px;font-size:14px;font-weight:700}.login-page .forgot-row{justify-content:flex-end;margin-top:-4px;display:flex}.login-page .auth-link{color:var(--primary);font-size:14px;font-weight:600;text-decoration:none;transition:opacity .15s}.login-page .auth-link:hover{text-decoration:underline}.login-page .btn-submit{background:var(--primary);color:#fff;border-radius:var(--radius-btn);cursor:pointer;border:none;justify-content:center;align-items:center;gap:8px;width:100%;min-height:48px;padding:14px 28px;font-family:Nunito Sans,sans-serif;font-size:16px;font-weight:700;transition:all .2s;display:flex;box-shadow:0 4px 20px #2e4a8f52}.login-page .btn-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 24px #2e4a8f6b}.login-page .btn-submit:disabled{opacity:.45;cursor:not-allowed;transform:none}.login-page .auth-divider{text-align:center;margin:24px 0;position:relative}.login-page .auth-divider:before{content:"";background:var(--border);height:1px;position:absolute;top:50%;left:0;right:0}.login-page .auth-divider span{color:var(--muted);background:#fff;padding:0 14px;font-size:14px;font-weight:600;position:relative}.login-page .btn-google{border-radius:var(--radius-btn);border:2px solid var(--border);width:100%;height:48px;color:var(--foreground);cursor:pointer;background:#fff;justify-content:center;align-items:center;gap:12px;padding:0 24px;font-family:Nunito Sans,sans-serif;font-size:15px;font-weight:700;transition:all .2s;display:flex}.login-page .btn-google:hover{border-color:var(--primary);background:var(--surface);transform:translateY(-1px)}.login-page .auth-footer{text-align:center;color:var(--muted);margin-top:24px;font-size:14px}.login-page .auth-footer a{color:var(--primary);font-weight:700;text-decoration:none}.login-page .auth-footer a:hover{text-decoration:underline}.login-page .spinner{border:2.5px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite loginSpin}@keyframes loginSpin{to{transform:rotate(360deg)}}.login-page .page-spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite loginSpin}@media (max-width:600px){.login-page .auth-card{border-radius:20px;padding:32px 24px}.login-page .auth-title{font-size:22px}.login-page .top-nav{padding:12px 16px}}@media (max-width:480px){.login-page .page-center{padding:24px 16px}.login-page .auth-card{padding:28px 20px}}
