:root{--primary:#4f46e5;--primary-hover:#4338ca;--error:#ef4444;--text:#1f2937;--text-light:#6b7280;--border:#e5e7eb;--background:#f9fafb;--card-bg:#ffffff;--shadow-sm:0 1px 2px 0 rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:1rem;--transition:all 0.2s ease}.auth-required-container{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem;background:#f8fafc;position:relative}.auth-required-card{background:#ffffff;padding:2rem;border-radius:1rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);text-align:center;max-width:400px;width:100%}.auth-required-header{margin-bottom:1.5rem}.auth-required-icon-wrapper{margin-bottom:1rem;display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;background:#f1f5f9;border-radius:50%}.auth-required-icon{font-size:1.5rem;color:#64748b}.auth-required-title{color:#1e293b;font-size:1.5rem;font-weight:600;margin:0}.auth-required-content{display:flex;flex-direction:column;gap:1.5rem}.auth-required-message{color:#64748b;font-size:1rem;line-height:1.5;margin:0}.auth-required-redirect-message{color:#3b82f6;font-size:.875rem;font-weight:500;margin:0;animation:pulse 2s infinite}@keyframes pulse{0%{opacity:1}50%{opacity:.6}to{opacity:1}}.auth-required-footer{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.auth-required-brand{color:#94a3b8;font-size:.875rem;font-weight:500;margin:0}.auth-loading{display:flex;justify-content:center;align-items:center;min-height:100vh;background:#f8fafc}.auth-loading-content{text-align:center;background:#ffffff;padding:2rem;border-radius:1rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.auth-loading-spinner{width:3rem;height:3rem;border:3px solid #e2e8f0;border-top-color:#4285f4;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto 1rem}.auth-loading-text{color:#64748b;font-size:1rem;font-weight:500}.auth-error{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:1rem;background:#f8fafc}.auth-error-content{background:#ffffff;padding:2rem;border-radius:1rem;text-align:center;max-width:400px;width:100%;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06)}.auth-error-icon-wrapper{margin-bottom:1rem;display:inline-flex;align-items:center;justify-content:center;width:4rem;height:4rem;background:#fee2e2;border-radius:50%}.auth-error-icon{font-size:1.5rem;color:#ef4444}.auth-error-title{color:#1e293b;font-size:1.5rem;font-weight:600;margin:0 0 1rem}.auth-error-message{color:#64748b;font-size:1rem;line-height:1.5;margin:0 0 1.5rem}.auth-error-link{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#f1f5f9;color:#1e293b;border-radius:.5rem;font-weight:500;text-decoration:none;transition:all .2s ease}.auth-error-link:hover{background:#e2e8f0;transform:translateY(-1px)}.auth-error-link-icon{font-size:1rem;color:#64748b}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (prefers-color-scheme:dark){.auth-error,.auth-loading,.auth-required-container{background:#0f172a}.auth-error-content,.auth-loading-content,.auth-required-card{background:#1e293b;box-shadow:0 4px 6px -1px rgba(0,0,0,.2),0 2px 4px -1px rgba(0,0,0,.1)}.auth-required-icon-wrapper{background:#334155}.auth-required-icon{color:#94a3b8}.auth-error-title,.auth-required-title{color:#f8fafc}.auth-error-message,.auth-loading-text,.auth-required-message{color:#94a3b8}.auth-required-redirect-message{color:#60a5fa}.auth-required-footer{border-top-color:#334155}.auth-required-brand{color:#94a3b8}.auth-error-icon-wrapper{background:#7f1d1d}.auth-error-icon{color:#fca5a5}.auth-error-link{background:#334155;color:#f8fafc}.auth-error-link:hover{background:#475569}.auth-error-link-icon{color:#94a3b8}}@media (max-width:640px){.auth-error-content,.auth-loading-content,.auth-required-card{padding:1.5rem}.auth-error-title,.auth-required-title{font-size:1.25rem}.auth-error-message,.auth-required-message{font-size:.875rem}.auth-required-redirect-message{font-size:.75rem}}