* { margin: 0; padding: 0; box-sizing: border-box; } :root { --azul-glm: #4F758B; --azul-medio: #5B7F95; --acero-claro: #6B8FA3; --verde-glm: #6CC24A; --verde-claro: #A4D65E; --verde-bg: #EEF6E8; --azul-seccion: #D6E8F4; --gris-oscuro: #4A4A4A; --gris-medio: #D0D0D0; --gris-claro: #F5F5F5; --blanco: #FFFFFF; --naranja: #FF6A13; } .login-page { min-height: 90vh; display: flex; align-items: center; justify-content: center; padding: 24px; font-family: Arial, Helvetica, sans-serif; } .login-page.loading .login-card { pointer-events: none; opacity: 0.8; } .login-card { background: var(--blanco); border-radius: 16px; box-shadow: 0 8px 32px rgba(79, 117, 139, 0.12); padding: 48px 40px; width: 100%; max-width: 400px; text-align: center; border: 1px solid var(--gris-medio); } .logo { width: 180px; height: auto; margin-bottom: 24px; } .title { font-size: 22px; font-weight: 700; color: var(--azul-glm); letter-spacing: 0.5px; margin-bottom: 6px; text-transform: uppercase; } .login-divider { height: 2px; background: var(--verde-glm); margin: 24px 0; border-radius: 1px; } .btn-google { display: inline-flex; align-items: center; justify-content: center; gap: 12px; width: 100%; padding: 14px 24px; background: var(--blanco); border: 2px solid var(--gris-medio); border-radius: 10px; font-family: Arial, Helvetica, sans-serif; font-size: 15px; font-weight: 600; color: var(--gris-oscuro); cursor: pointer; transition: all 0.2s ease; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); } .btn-google:hover:not(:disabled) { border-color: var(--verde-glm); background: var(--verde-bg); color: var(--azul-glm); box-shadow: 0 4px 16px rgba(108, 194, 74, 0.2); transform: translateY(-1px); } .btn-google:active:not(:disabled) { transform: translateY(0); } .btn-google:disabled { opacity: 0.6; cursor: not-allowed; } .google-icon { flex-shrink: 0; } .domain-hint { margin-top: 14px; font-size: 12px; color: var(--acero-claro); font-weight: 500; } .error-message { margin-top: 16px; padding: 12px 16px; background: #FDECEA; border: 1px solid #F5C6CB; border-radius: 8px; font-size: 13px; color: #C0392B; text-align: left; } .spinner { width: 40px; height: 40px; border: 3px solid var(--gris-medio); border-top-color: var(--verde-glm); border-radius: 50%; animation: spin 0.8s linear infinite; margin: 16px auto 0; } @keyframes spin { to { transform: rotate(360deg); } } @media (max-width: 480px) { .login-card { padding: 36px 24px; } .title { font-size: 19px; } .logo { width: 150px; } }