/* Tema visual da Benaia: somente apresentação em tela. */
@media screen {
        :root {
            --benaia-primary: #024572;
            --benaia-dark: #082d45;
            --benaia-muted: #667b8a;
            --benaia-line: #e2e8ef;
            --benaia-bg: #f5f7fb;
            --bs-primary: #024572;
            --bs-primary-rgb: 2, 69, 114;
            --bs-body-color: #344b5b;
            --bs-body-bg: #f5f7fb;
            --bs-border-color: #e2e8ef;
            --bs-link-color: #024572;
        }

        body {
            background: var(--benaia-bg) !important;
            color: #344b5b;
            font-family: 'Segoe UI', Tahoma, Arial, sans-serif !important;
            line-height: 1.55;
        }

            body h1, body h2, body .page-title {
                color: var(--benaia-dark);
                font-weight: 700;
                letter-spacing: -.025em;
                line-height: 1.25;
            }

            body h1 {
                font-size: clamp(1.75rem, 3vw, 2.25rem);
            }

            body h2 {
                font-size: clamp(1.5rem, 2.5vw, 1.9rem);
            }

            body h3, body h4, body h5, body h6 {
                font-weight: 650;
            }

            body .text-muted, body .login-description {
                color: var(--benaia-muted) !important;
            }

            body > .container, body > .container-fluid:not(.navbar *) {
                margin-top: 28px;
                margin-bottom: 40px;
            }

            body .card, body .login-card, body .resumo-card-financeiro {
                border: 1px solid var(--benaia-line) !important;
                border-radius: 16px !important;
                background-color: #fff;
                box-shadow: 0 10px 30px rgba(8,45,69,.06) !important;
            }

            body .card-header {
                padding: 16px 22px;
                border-bottom: 1px solid var(--benaia-line);
                border-radius: 15px 15px 0 0 !important;
            }

                body .card-header:not(.bg-primary):not(.bg-success):not(.bg-danger):not(.bg-warning):not(.bg-info):not(.bg-dark):not(.bg-custom) {
                    background: #f8fafc;
                    color: var(--benaia-dark);
                }

            body .card-body {
                padding: 24px;
            }

            body .card-footer {
                background: #f8fafc;
                border-top-color: var(--benaia-line);
                padding: 16px 22px;
            }

            body .btn {
                border-radius: 9px;
                padding: 9px 16px;
                font-family: inherit;
                font-weight: 600;
                font-size: .9375rem;
                line-height: 1.4;
                box-shadow: none;
                transition: background-color .16s ease, border-color .16s ease, color .16s ease;
            }

            body .btn-sm {
                padding: 7px 12px;
                font-size: .8125rem;
                border-radius: 8px;
            }

            body .btn-lg {
                padding: 12px 22px;
                font-size: 1rem;
            }

            body .btn-primary, body .btn-custom, body .btn-benaia {
                background: #024572 !important;
                border: 1px solid #024572 !important;
                color: #fff !important;
            }

                body .btn-primary:hover, body .btn-custom:hover, body .btn-benaia:hover {
                    background: #013957 !important;
                    border-color: #013957 !important;
                    color: #fff !important;
                }

            body .btn-secondary, body .btn-outline-secondary {
                background: #fff !important;
                border: 1px solid #cbd7e1 !important;
                color: #425e70 !important;
            }

                body .btn-secondary:hover, body .btn-outline-secondary:hover {
                    background: #edf2f6 !important;
                    border-color: #9eb2c1 !important;
                }

            body .btn-outline-primary {
                border-color: #b7cedf !important;
                color: #024572 !important;
                background: #fff;
            }

                body .btn-outline-primary:hover {
                    background: #eaf2f8 !important;
                    border-color: #024572 !important;
                }

            body .btn-success {
                background: #187653;
                border-color: #187653;
            }

                body .btn-success:hover {
                    background: #125d41;
                    border-color: #125d41;
                }

            body .btn-danger {
                background: #b83746;
                border-color: #b83746;
            }

                body .btn-danger:hover {
                    background: #992d3a;
                    border-color: #992d3a;
                }

            body .btn-warning {
                background: #f4d88e;
                border-color: #e9c56d;
                color: #624814;
            }

            body .btn:focus-visible, body a:focus-visible {
                outline: 2px solid #024572;
                outline-offset: 3px;
            }

            body .btn:disabled, body .btn.disabled {
                opacity: .55;
            }

            body .btn-group > .btn:not(:first-child) {
                border-top-left-radius: 0;
                border-bottom-left-radius: 0;
            }

            body .btn-group > .btn:not(:last-child) {
                border-top-right-radius: 0;
                border-bottom-right-radius: 0;
            }

            body .form-control, body .form-select {
                border-color: #ccd9e3;
                border-radius: 9px;
                color: #344b5b;
                font-size: .9375rem;
                box-shadow: none;
            }

                body .form-control:not(textarea):not(.form-control-sm):not(.form-floating > .form-control) {
                    min-height: 42px;
                }

                body .form-control:focus, body .form-select:focus {
                    border-color: #6d9cbb;
                    box-shadow: 0 0 0 3px rgba(2,69,114,.1);
                }

                body .form-control:disabled, body .form-control[readonly], body .form-select:disabled {
                    background-color: #edf2f6;
                }

            body .form-label, body .form-check-label {
                color: #425b6d;
                font-weight: 600;
            }

            body .form-floating > label {
                color: #667b8a;
            }

            body .input-group-text {
                border-color: #ccd9e3;
                background: #f2f6f9;
                color: #526b7d;
            }

            body .form-check-input:checked {
                background-color: #024572;
                border-color: #024572;
            }

            body .form-control.is-invalid, body .form-select.is-invalid {
                border-color: #b83746;
            }

            body .form-control.is-valid, body .form-select.is-valid {
                border-color: #187653;
            }

            body .select2-container--default .select2-selection--single,
            body .select2-container--default .select2-selection--multiple {
                border-color: #ccd9e3;
                border-radius: 9px;
            }

            body .select2-dropdown {
                border-color: #ccd9e3;
                border-radius: 9px;
                box-shadow: 0 8px 24px rgba(8,45,69,.12);
            }

            body .select2-container--default .select2-results__option--highlighted[aria-selected] {
                background: #024572;
                color: white;
            }

            body .table, body table.dataTable {
                color: #344b5b;
                border-color: var(--benaia-line);
                background: white;
                font-size: .9375rem;
            }

                body .table > thead > tr > th, body table.dataTable thead th {
                    background-color: #f2f6f9;
                    color: #526b7d;
                    font-size: .75rem;
                    font-weight: 700;
                    letter-spacing: .045em;
                    text-transform: uppercase;
                    padding: 16px 18px;
                    border-bottom: 1px solid #dce5ed;
                    vertical-align: middle;
                }

                body .table > tbody > tr > td, body table.dataTable tbody td {
                    padding: 14px 18px;
                    vertical-align: middle;
                    border-color: #e8eef3;
                }

            body .table-striped {
                --bs-table-striped-bg: #f9fbfd;
                --bs-table-striped-color: #344b5b;
            }

            body table.dataTable.stripe tbody tr.odd, body table.dataTable.display tbody tr.odd {
                background: #f9fbfd;
            }

            body .table-hover {
                --bs-table-hover-bg: #f0f5f9;
                --bs-table-hover-color: #082d45;
            }

            body .table-responsive {
                border: 1px solid var(--benaia-line);
                border-radius: 12px;
                background: #fff;
            }

            body table.dataTable.no-footer {
                border-bottom: 1px solid var(--benaia-line);
            }

            body .dataTables_wrapper {
                color: #667b8a;
                font-size: .875rem;
            }

                body .dataTables_wrapper .dataTables_length, body .dataTables_wrapper .dataTables_filter {
                    margin: 12px 0 18px;
                }

                    body .dataTables_wrapper .dataTables_filter input,
                    body .dataTables_wrapper .dataTables_length select {
                        min-height: 40px;
                        border: 1px solid #ccd9e3;
                        border-radius: 8px;
                        background: white;
                        color: #344b5b;
                        padding: 7px 11px;
                    }

                body .dataTables_wrapper .dataTables_info, body .dataTables_wrapper .dataTables_paginate {
                    padding-top: 18px;
                    padding-bottom: 12px;
                }

                    body .dataTables_wrapper .dataTables_paginate .paginate_button {
                        border: 1px solid #e2e8ef !important;
                        border-radius: 8px;
                        background: white !important;
                        color: #425e70 !important;
                        margin: 2px;
                    }

                        body .dataTables_wrapper .dataTables_paginate .paginate_button.current,
                        body .dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
                            background: #024572 !important;
                            border-color: #024572 !important;
                            color: white !important;
                        }

                        body .dataTables_wrapper .dataTables_paginate .paginate_button:hover {
                            background: #edf3f8 !important;
                            color: #024572 !important;
                            box-shadow: none;
                        }

                        body .dataTables_wrapper .dataTables_paginate .paginate_button.disabled {
                            opacity: .5;
                        }

            body .modal-content {
                border: 1px solid #e2e8ef;
                border-radius: 16px;
                box-shadow: 0 24px 70px rgba(8,45,69,.2);
            }

            body .modal-header {
                padding: 20px 24px;
                border-bottom-color: #e2e8ef;
            }

            body .modal-body {
                padding: 24px;
            }

            body .modal-footer {
                padding: 16px 24px;
                border-top-color: #e2e8ef;
                gap: 6px;
            }

            body .modal-title {
                font-size: 1.2rem;
                font-weight: 700;
            }

            body .nav-tabs {
                border-bottom-color: #dce5ed;
                gap: 4px;
            }

                body .nav-tabs .nav-link {
                    border-radius: 9px 9px 0 0;
                    padding: 11px 16px;
                    color: #667b8a;
                    font-weight: 600;
                }

                    body .nav-tabs .nav-link.active {
                        color: #024572;
                        background: white;
                        border-color: #dce5ed #dce5ed white;
                    }

            body .nav-pills .nav-link.active {
                background: #024572;
                border-radius: 9px;
            }

            body .accordion-item {
                border-color: #e2e8ef;
            }

            body .accordion-button {
                font-weight: 600;
                color: #344b5b;
            }

                body .accordion-button:not(.collapsed) {
                    background: #edf4f9;
                    color: #024572;
                    box-shadow: none;
                }

            body .alert {
                border-radius: 10px;
                padding: 16px 20px;
            }

            body .badge {
                border-radius: 6px;
                padding: .45em .65em;
                font-weight: 600;
                letter-spacing: .01em;
            }

            body .bg-custom, body .bg-primary {
                background-color: #024572 !important;
            }

            body .navbar {
                background: #fff !important;
                border-bottom: 1px solid #e2e8ef !important;
                padding: 12px 20px;
                box-shadow: none !important;
            }

                body .navbar img {
                    height: 42px !important;
                    width: auto;
                    object-fit: contain;
                }

                body .navbar .nav-link {
                    color: #495057 !important;
                    font: 600 16px/1.4 'Segoe UI', Tahoma, Arial, sans-serif;
                    padding: 9px 11px;
                    margin-left: 0;
                    border-radius: 8px;
                    white-space: nowrap;
                }

                    body .navbar .nav-link:hover, body .navbar .nav-link:focus,
                    body .navbar .dropdown-item:hover, body .navbar .dropdown-item:focus {
                        background: transparent !important;
                        color: #024572 !important;
                        box-shadow: none !important;
                        text-decoration: none !important;
                        border-bottom-color: transparent !important;
                    }

                body .navbar .dropdown-menu {
                    border: 1px solid #e2e8ef;
                    border-radius: 12px;
                    padding: 8px;
                    box-shadow: 0 12px 30px rgba(8,45,69,.1);
                }

                body .navbar .dropdown-item {
                    color: #425b6d;
                    padding: 9px 12px;
                    border-radius: 7px;
                    font-size: .9375rem;
                }

                body .navbar .navbar-text {
                    color: #667b8a;
                    font-size: .9375rem;
                }

            body footer {
                background: #fff;
                border-top: 1px solid #e2e8ef;
                color: #667b8a;
            }
    }

    @media screen and (min-width: 576px) and (max-width: 1399.98px) {
        body .navbar > .container-fluid {
            flex-wrap: wrap !important;
            gap: 12px;
        }

        body .navbar .navbar-collapse {
            flex-wrap: wrap;
            gap: 10px;
        }

        body .navbar .navbar-nav {
            flex-wrap: wrap;
            justify-content: center;
        }
    }

    @media screen and (max-width: 767.98px) {
        body .card-body, body .modal-body {
            padding: 18px;
        }

        body .navbar {
            padding: 12px;
        }

            body .navbar .container-fluid {
                padding-left: 0 !important;
                padding-right: 0 !important;
            }

            body .navbar .nav-link {
                font-size: 14px;
            }

            body .navbar .navbar-nav {
                gap: 5px !important;
            }

        body .table > tbody > tr > td {
            padding: 12px;
        }

        body .dataTables_wrapper .dataTables_filter input {
            max-width: 190px;
        }

        body .dataTables_wrapper .dataTables_length, body .dataTables_wrapper .dataTables_filter {
            float: none;
            text-align: left;
        }
    }

    @media (prefers-reduced-motion: reduce) {
        body .btn, body .card, body .navbar .nav-link {
            transition: none;
        }
    }

    @media screen {
        body .table-responsive.tabela-sem-contorno {
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
        }

        body .clientes-conteudo {
            width: 100%;
            max-width: none;
            padding-left: 24px;
            padding-right: 24px;
        }

            body .clientes-conteudo > .card {
                width: 100% !important;
                max-width: none !important;
            }
    }

    @media screen and (max-width: 767.98px) {
        body .clientes-conteudo {
            padding-left: 12px;
            padding-right: 12px;
        }
    }
@media screen {
    body .login-card, body .checkout-card, body .card-custom, body .modulo-card {
        background: #fff;
        border: 1px solid #e2e8ef !important;
        border-radius: 16px !important;
        box-shadow: 0 10px 30px rgba(8,45,69,.06) !important;
    }
    body .navbar-modulos { background: #fff; border-bottom: 1px solid #e2e8ef; padding: 12px 24px; }
    body .navbar-modulos img { height: 42px; width: auto; }
    body .modulo-card { padding: 30px 24px; }
    body .modulo-card:hover { border-color: #8eb1c8 !important; box-shadow: 0 12px 28px rgba(8,45,69,.09) !important; }
    body .modulo-icone { background: #024572; border-radius: 12px; }
    body .card-custom:hover { transform: none; }
    body .nav-tabs .nav-link.active {
        background: #024572 !important; color: #fff !important;
        box-shadow: none !important; transform: none !important;
    }
    body .checkout-card { margin: 24px auto; }
    body .login-card { padding: 32px; }
}
@media screen and (max-width: 767.98px) {
    body .login-card { padding: 24px 20px; }
    body .navbar-modulos { padding: 12px 16px; }
    body .card-body.p-5 { padding: 24px 20px !important; }
}

/* Ajustes responsivos para o sistema em uma única aplicação. */
@media screen {
    body .card, body .login-card, body .checkout-card { max-width: 100%; }
    body .table-responsive { max-width: 100%; overflow-x: auto; }
    body .modal-dialog { max-width: calc(100% - 2rem); }
    body .modal-dialog.modal-lg { max-width: min(800px, calc(100% - 2rem)); }
    body .modal-dialog.modal-xl { max-width: min(1140px, calc(100% - 2rem)); }
    body .modal-dialog:not(.modal-lg):not(.modal-xl):not(.modal-fullscreen) { max-width: min(500px, calc(100% - 2rem)); }
    body .modal-dialog.modal-fullscreen { max-width: 100%; }
    body .login-wrapper { margin: auto; }
    body .checkout-card .plan-box { background: #f5f8fb; border-color: #e2e8ef; }
}
@media screen and (max-width: 767.98px) {
    body .acoes-botoes { flex-wrap: wrap; }
    body .login-wrapper { width: 100%; }
    body .nav-tabs { flex-wrap: wrap; }
}

/* Resumo da mensalidade sem margem e borda duplicada. */
@media screen {
    body .mensalidade-tabela { border: 0; border-radius: 0; box-shadow: none; }
    body .mensalidade-tabela > .table { margin-bottom: 0; }
    body .modulo-card { padding: 30px 24px; }
    body .modulo-card:hover { border-color: #8eb1c8 !important; box-shadow: 0 12px 28px rgba(8,45,69,.09) !important; }
    body .modulo-card:focus-visible { outline: 3px solid #024572; outline-offset: 4px; }
}
@media (prefers-reduced-motion: reduce) { body .modulo-card { transition: none; transform: none; } }

/* Cards de formulários centralizados, com respiro lateral. */
@media screen {
    body .card.benaia-form-card {
        width: calc(100% - 48px) !important;
        max-width: var(--benaia-form-max, 1000px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    body .table-responsive.tabela-sem-contorno { border: 0 !important; border-radius: 0 !important; box-shadow: none !important; }
    body .tabela-sem-contorno > table.dataTable.no-footer { border-bottom: 0 !important; }
}
@media screen and (max-width: 767.98px) {
    body .card.benaia-form-card { width: calc(100% - 24px) !important; padding-left: 16px; padding-right: 16px; }
}
