/**
 * Diagramação BASE — neutraliza o tema chumbo em cards Bootstrap.
 *
 * Chumbo trata .card como KPI de dashboard:
 *   .card { text-align:center; padding:20px }
 *   .card p { font-size:28px; font-weight:700 }
 *   .card h3 { text-transform:uppercase }
 *   .btn { border:none; text-transform:uppercase }
 *
 * KPI legado (número direto no card) permanece grande: .card > p
 * Conteúdo (card-header / card-body) volta a ser texto 14px, à esquerda.
 */
body:not(.login-page) .card:not(.card-item):not(.gerenciar-card):not(.stat-card) {
    text-align: left !important;
}

/* Especificidade de `.card`: vence o padding:20px do chumbo (carregado antes),
   mas perde para o CSS de página (`.escopo .card { padding }`). */
:where(body:not(.login-page)) .card:where(:not(.card-item):not(.gerenciar-card):not(.stat-card)) {
    padding: 0;
}

body:not(.login-page) .card:not(.card-item):not(.gerenciar-card):not(.stat-card):hover {
    transform: none !important;
}

/* Número-KPI só quando o <p> é filho direto do .card (dashboard legado) */
body:not(.login-page) .card > p {
    font-size: 28px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    margin: 4px 0 0 !important;
    padding: 0 16px 16px;
    text-align: center;
}

body:not(.login-page) .card > h3 {
    padding: 16px 16px 0;
}

/*
 * Card de conteúdo legado sem .card-body (tabela/form/título direto no .card).
 * O padding:0 acima é para .card > .card-body; sem ele o conteúdo cola na borda
 * e o <p> explicativo vira número-KPI. Tiles KPI (h3 + p, sem tabela/form) não entram.
 */
:where(body:not(.login-page)) .card:where(:not(.card-item):not(.gerenciar-card):not(.stat-card):not(:has(> .card-body, > .card-header, > .card-footer, > .list-group, > .card-img-top, > .card-h, > .card-head, > .ica-bloco-head, > .report-header)):has(> table, > .table-responsive, > form, > .form-group, > .info-item, > .info-grid, > h2, > .alert, > label)) {
    padding: 16px 20px;
}

:where(body:not(.login-page) .card:not(:has(> .card-body, > .card-header)):has(> table, > .table-responsive, > form, > .form-group, > .info-item, > .info-grid, > h2, > .alert, > label)) > :is(h2, h3) {
    margin-bottom: 12px;
}

body:not(.login-page) .card:not(:has(> .card-body, > .card-header)):has(> table, > .table-responsive, > form, > .form-group, > .info-item, > .info-grid, > h2, > .alert, > label) > :is(h2, h3) {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
    text-transform: none !important;
    letter-spacing: -0.01em !important;
}

body:not(.login-page) .card:not(:has(> .card-body, > .card-header)):has(> table, > .table-responsive, > form, > .form-group, > .info-item, > .info-grid, > h2, > .alert, > label) p:not(.stat-number):not(.kpi-value) {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    text-align: left !important;
    padding: 0 !important;
    margin: 0 0 0.75rem !important;
}

body:not(.login-page) .card:not(.text-white):not(.bg-primary):not(.bg-dark):not(.bg-secondary):not(.bg-danger):not(.bg-success):not(.bg-info):not(.jur-hero-ia) > .card-body,
body:not(.login-page) .card:not(.text-white):not(.bg-primary):not(.bg-dark):not(.bg-secondary):not(.bg-danger):not(.bg-success):not(.bg-info):not(.jur-hero-ia) > .card-body p,
body:not(.login-page) .card:not(.text-white):not(.bg-primary):not(.bg-dark):not(.bg-secondary):not(.bg-danger):not(.bg-success):not(.bg-info):not(.jur-hero-ia) > .card-body li,
body:not(.login-page) .card .alert p,
body:not(.login-page) .card .form-text,
body:not(.login-page) .card .form-label {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.55 !important;
    text-align: left !important;
}

body:not(.login-page) .card:not(.text-white):not(.bg-primary):not(.bg-dark):not(.bg-secondary):not(.bg-danger):not(.bg-success):not(.bg-info):not(.jur-hero-ia) > .card-body p,
body:not(.login-page) .card .alert p {
    color: #374151 !important;
    margin: 0 0 0.75rem !important;
}

body:not(.login-page) .card .text-muted {
    color: #4b5563 !important;
}

body:not(.login-page) .card > .card-header h1,
body:not(.login-page) .card > .card-header h2,
body:not(.login-page) .card > .card-header h3,
body:not(.login-page) .card > .card-header h4,
body:not(.login-page) .card > .card-header .h6,
body:not(.login-page) .card > .card-body h2,
body:not(.login-page) .card > .card-body h3,
body:not(.login-page) .card > .card-body h4 {
    text-transform: none !important;
    letter-spacing: -0.02em !important;
    font-size: 15px !important;
    font-weight: 650 !important;
    color: inherit;
    margin: 0 !important;
}

body:not(.login-page) .btn {
    text-transform: none !important;
    letter-spacing: normal !important;
}

body:not(.login-page) [class*="btn-outline-"] {
    border-width: 1px !important;
    border-style: solid !important;
}

body:not(.login-page) .alert {
    text-align: left !important;
}

body:not(.login-page) .alert p {
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
}
