/* ============================================================
   Rajo Diagnóstico — CSS base compartilhado das páginas de
   autenticação (login, cadastro, recuperar, redefinir).
   Regras específicas de cada página permanecem inline nela.
   ============================================================ */

:root {
            --primary-gradient: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
            --background-dark: #0f172a;
            --card-bg: rgba(255, 255, 255, 0.95);
            --font-title: 'Outfit', 'Plus Jakarta Sans', sans-serif;
            --font-body: 'Plus Jakarta Sans', sans-serif;
        }

body::before {
            content: '';
            position: absolute;
            width: 400px;
            height: 400px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(37, 99, 235, 0.15) 0%, rgba(37, 99, 235, 0) 70%);
            top: -100px;
            right: -100px;
            z-index: 0;
        }

body::after {
            content: '';
            position: absolute;
            width: 500px;
            height: 500px;
            border-radius: 50%;
            background: radial-gradient(circle, rgba(29, 78, 216, 0.1) 0%, rgba(29, 78, 216, 0) 70%);
            bottom: -150px;
            left: -150px;
            z-index: 0;
        }

.input-group-custom .btn-toggle-pass {
            position: absolute;
            right: 15px;
            top: 50%;
            transform: translateY(-50%);
            background: none;
            border: none;
            color: #94a3b8;
            font-size: 1.1rem;
            padding: 0;
            cursor: pointer;
            z-index: 12;
            transition: color 0.2s ease;
        }

.input-group-custom .btn-toggle-pass:hover {
            color: #2563eb;
        }

.form-control-custom:focus {
            background-color: #ffffff;
            border-color: #2563eb;
            outline: none;
            box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.1);
        }

.form-control-custom:focus+i.input-icon {
            color: #2563eb;
        }

.alert-danger-custom {
            background-color: #fef2f2;
            color: #991b1b;
        }

.footer-text a {
            color: #2563eb;
            text-decoration: none;
            font-weight: 600;
            transition: color 0.2s ease;
        }

.footer-text a:hover {
            text-decoration: underline;
        }

.form-control-custom:focus + i.input-icon {
            color: #2563eb;
        }

.btn-submit {
            background: var(--primary-gradient);
            border: none;
            color: #ffffff !important;
            font-weight: 600;
            padding: 13px;
            border-radius: 12px;
            width: 100%;
            font-size: 0.95rem;
            transition: all 0.3s ease;
            box-shadow: 0 8px 16px -4px rgba(37, 99, 235, 0.3);
            margin-top: 10px;
        }

.btn-submit:hover,
        .btn-submit:focus,
        .btn-submit:active {
            transform: translateY(-2px);
            box-shadow: 0 12px 20px -4px rgba(37, 99, 235, 0.4);
            filter: brightness(1.05);
            color: #ffffff !important;
        }

