/* Green and earth identity for authentication and field-facing portals. */
.vf-auth-body,
.vf-role-beneficiary,
.vf-role-vendor,
.vf-role-fiscal {
    --vf-brand-green: #649945;
    --vf-brand-green-dark: #426b2b;
    --vf-brand-green-soft: #edf5e8;
    --vf-brand-brown: #632D0B;
    --vf-brand-brown-soft: #f4e9e1;
    --vf-blue: var(--vf-brand-brown);
    --vf-teal: var(--vf-brand-green);
    --vf-cyan: #82b665;
    --vf-green: var(--vf-brand-green);
    --vf-gold: var(--vf-brand-brown);
    --vf-color-strip: linear-gradient(
        90deg,
        var(--vf-brand-brown) 0%,
        var(--vf-brand-brown) 50%,
        var(--vf-brand-green) 50%,
        var(--vf-brand-green) 100%
    );
    --vf-background: #f7faf5;
    --vf-surface-low: #f1f6ee;
    --vf-surface-container: #e8f1e3;
    --vf-surface-high: #dfeadb;
    --vf-primary: var(--vf-brand-green);
    --vf-primary-dark: var(--vf-brand-green-dark);
    --vf-primary-soft: var(--vf-brand-green-soft);
    --vf-secondary: var(--vf-brand-brown);
    --vf-secondary-soft: var(--vf-brand-brown-soft);
    --vf-success: var(--vf-brand-green);
    --vf-success-dark: var(--vf-brand-green-dark);
    --vf-success-soft: var(--vf-brand-green-soft);
    --vf-warning: var(--vf-brand-brown);
    --vf-warning-soft: var(--vf-brand-brown-soft);
    --vf-border: #c8d2c2;
    --vf-border-strong: #74806e;
    --bs-primary: var(--vf-brand-green);
    --bs-primary-rgb: 100, 153, 69;
    --bs-success: var(--vf-brand-green);
    --bs-success-rgb: 100, 153, 69;
}

.vf-auth-body .vf-auth-screen-title,
.vf-auth-body .vf-auth-login-title {
    color: var(--vf-brand-green);
}

.vf-auth-body .vf-auth-wave-band-cyan,
.vf-auth-body .vf-auth-wave-band-green {
    fill: var(--vf-brand-green);
}

.vf-auth-body .vf-auth-wave-band-teal {
    fill: var(--vf-brand-brown);
}

.vf-auth-body .vf-auth-effect-blue,
.vf-auth-body .vf-auth-effect-gold {
    color: var(--vf-brand-brown);
}

.vf-auth-body .vf-auth-effect-teal,
.vf-auth-body .vf-auth-effect-cyan,
.vf-auth-body .vf-auth-effect-green {
    color: var(--vf-brand-green);
}

.vf-auth-body .vf-auth-card,
.vf-auth-body .vf-auth-card.card.shadow {
    box-shadow: 0 24px 58px rgba(99, 45, 11, 0.14), 0 7px 20px rgba(66, 107, 43, 0.12) !important;
}

.vf-role-beneficiary .vf-portal-navbar,
.vf-role-vendor .vf-portal-navbar,
.vf-role-fiscal .vf-portal-navbar {
    box-shadow: 0 5px 22px rgba(66, 107, 43, 0.1);
}

.vf-role-beneficiary .vf-portal-hero,
.vf-role-vendor .vf-portal-hero,
.vf-role-fiscal .vf-portal-hero {
    background: linear-gradient(135deg, #4d7a34 0%, var(--vf-brand-green) 58%, #7cad5f 100%);
    box-shadow: 0 14px 30px rgba(66, 107, 43, 0.22);
}

.vf-role-beneficiary .vf-portal-home .vf-action-card,
.vf-role-vendor .vf-portal-home .vf-action-card,
.vf-role-fiscal .vf-portal-home .vf-action-card {
    border-color: rgba(100, 153, 69, 0.34);
    background: var(--vf-brand-green-soft);
    color: var(--vf-brand-green-dark);
}

.vf-role-beneficiary .vf-portal-home .vf-action-card::before,
.vf-role-vendor .vf-portal-home .vf-action-card::before,
.vf-role-fiscal .vf-portal-home .vf-action-card::before {
    background: var(--vf-color-strip);
}

.vf-role-beneficiary .vf-portal-home .vf-action-card i,
.vf-role-vendor .vf-portal-home .vf-action-card i,
.vf-role-fiscal .vf-portal-home .vf-action-card i,
.vf-role-beneficiary .vf-activity-icon,
.vf-role-vendor .vf-activity-icon,
.vf-role-fiscal .vf-activity-icon {
    color: var(--vf-brand-brown);
}

.vf-role-beneficiary .vf-portal-home .vf-action-card:hover,
.vf-role-vendor .vf-portal-home .vf-action-card:hover,
.vf-role-fiscal .vf-portal-home .vf-action-card:hover {
    border-color: rgba(99, 45, 11, 0.42);
    color: var(--vf-brand-brown);
    box-shadow: 0 12px 22px rgba(66, 107, 43, 0.14);
}

.vf-role-beneficiary .vf-pwa-install-invite,
.vf-role-vendor .vf-pwa-install-invite {
    border-left-color: var(--vf-brand-green);
    box-shadow: 0 0.75rem 2rem rgba(66, 107, 43, 0.18);
}

.vf-auth-body .form-control:focus,
.vf-auth-body .form-select:focus,
.vf-role-beneficiary .form-control:focus,
.vf-role-beneficiary .form-select:focus,
.vf-role-vendor .form-control:focus,
.vf-role-vendor .form-select:focus,
.vf-role-fiscal .form-control:focus,
.vf-role-fiscal .form-select:focus {
    border-color: var(--vf-brand-green);
    box-shadow: 0 0 0 0.2rem rgba(100, 153, 69, 0.2);
}

.vf-fiscal-list-row {
    cursor: pointer;
}

.vf-fiscal-list-row:hover,
.vf-fiscal-list-row:focus-visible {
    background: var(--vf-brand-green-soft);
    outline: 2px solid var(--vf-brand-green);
    outline-offset: -2px;
}

@media (max-width: 576px) {
    .vf-role-beneficiary .vf-action-card,
    .vf-role-vendor .vf-action-card,
    .vf-role-fiscal .vf-action-card {
        font-size: 1.22rem;
        font-weight: 700;
    }

    .vf-role-beneficiary .btn-primary,
    .vf-role-beneficiary .btn-success,
    .vf-role-vendor .btn-primary,
    .vf-role-vendor .btn-success,
    .vf-role-fiscal .btn-primary,
    .vf-role-fiscal .btn-success {
        min-height: 44px;
        font-size: 1.05rem;
        font-weight: 700;
    }

    .vf-portal-body .vf-portal-navbar .navbar-toggler {
        font-size: 1.55rem;
    }

    .vf-portal-body .vf-portal-navbar .navbar-collapse .nav-link,
    .vf-portal-body .vf-portal-navbar .dropdown-item {
        font-size: 1rem;
    }

    .vf-portal-body .vf-mobile-bottom-link {
        font-size: 0.76rem;
    }

    .vf-portal-body .vf-mobile-bottom-link i {
        font-size: 1.32rem;
    }
    .vf-role-beneficiary .vf-mobile-bottom-link.active,
    .vf-role-vendor .vf-mobile-bottom-link.active,
    .vf-role-fiscal .vf-mobile-bottom-link.active {
        background: var(--vf-brand-green-soft);
        color: var(--vf-brand-green-dark);
    }
}
