/* ============================================================================
   MODULO 05/8 - app/05-contratos.css (ex-app.css linhas 8075-11122). Contratos: cockpit, listagem, filtros, graficos, funil, form ciclo operacional, chat do form. A ORDEM DE INCLUSAO 01->08 E CRITICA - nao reordenar.
   ============================================================================ */
/* =========================================================
   CONTRATOS - COCKPIT / LISTAGEM
   ========================================================= */

.contratos-page {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

/* CARD DE FILTROS */

.bm-filter-card {
    display: flex;
    justify-content: space-between;
    gap: 28px;
    align-items: flex-end;
    padding: 22px;
    border-radius: 22px;
    background: var(--bm-surface);
    border: 1px solid var(--bm-border);
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.bm-filter-left {
    min-width: 410px;
}

.bm-filter-right {
    display: grid;
    grid-template-columns: minmax(280px, 1fr) 170px 170px;
    gap: 14px;
    align-items: end;
    flex: 1;
    max-width: 820px;
}

.bm-field-label {
    font-size: 12px;
    font-weight: 900;
    color: #111827;
    margin-bottom: 8px;
}

.bm-filter-field input,
.bm-filter-field .ui-inputfield,
.bm-input-full input,
.bm-input-date {
    width: 100% !important;
}

.bm-filter-card .ui-inputfield {
    height: 42px;
    border-radius: 12px !important;
    border-color: #d6e0ef !important;
    box-shadow: none !important;
    font-size: 13px;
}

.bm-filter-card .ui-inputfield:focus {
    border-color: #2B2F6E !important;
    box-shadow: 0 0 0 3px rgba(39, 55, 127, .10) !important;
}

/* VISÃO SEGMENTADA */

.bm-segmented {
    display: flex;
    gap: 0;
    margin-bottom: 16px;
}

.bm-segmented .ui-button {
    border-radius: 0 !important;
    background: #2B2F6E !important;
    border-color: #2B2F6E !important;
    color: #ffffff !important;
    min-width: 132px;
    height: 46px;
    box-shadow: none !important;
    font-weight: 800 !important;
}

.bm-segmented .ui-button:first-child {
    border-radius: 14px 0 0 14px !important;
}

.bm-segmented .ui-button:last-child {
    border-radius: 0 14px 14px 0 !important;
}

.bm-segmented .ui-button.active,
.bm-segmented .ui-button:hover {
    background: #1d2a63 !important;
    border-color: #1d2a63 !important;
}

/* BOTÕES */

.bm-actions-row {
    display: flex;
    gap: 10px;
}

.bm-btn-primary,
.bm-btn-primary.ui-button {
    height: 46px;
    border-radius: 14px !important;
    background: #2B2F6E !important;
    border-color: #2B2F6E !important;
    color: #ffffff !important;
    font-weight: 800 !important;
    box-shadow: 0 10px 22px rgba(39, 55, 127, .22) !important;
}

.bm-btn-primary:hover,
.bm-btn-primary.ui-button:hover {
    background: #1d2a63 !important;
    border-color: #1d2a63 !important;
}

.bm-btn-secondary,
.bm-btn-secondary.ui-button {
    height: 46px;
    border-radius: 14px !important;
    background: #f5f7ff !important;
    border-color: #dbe4f0 !important;
    color: #2B2F6E !important;
    font-weight: 800 !important;
    box-shadow: none !important;
}

.bm-btn-secondary:hover,
.bm-btn-secondary.ui-button:hover {
    background: #eef2ff !important;
}

.bm-btn-danger,
.bm-btn-danger.ui-button {
    border-radius: 12px !important;
    background: #dc2626 !important;
    border-color: #dc2626 !important;
    color: #ffffff !important;
}

/* FILTRO ATIVO */

.bm-active-filter {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 12px 16px;
    border-radius: 16px;
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    color: #2B2F6E;
    font-size: 13px;
    font-weight: 700;
}

.bm-active-filter-clear {
    color: #2B2F6E !important;
    font-size: 13px;
    font-weight: 900;
    text-decoration: none !important;
}

/* KPI CARDS */

.bm-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 14px;
}

.bm-kpi-card {
    display: block;
    min-height: 106px;
    padding: 16px 18px;
    border-radius: 18px;
    border: 1px solid #dbe4f0;
    background: #ffffff;
    text-decoration: none !important;
    color: #111827 !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
    transition: .18s ease;
}

.bm-kpi-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .10);
    text-decoration: none !important;
}

.bm-kpi-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.bm-kpi-top i {
    font-size: 18px;
    opacity: .75;
}

.bm-kpi-title {
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .02em;
    color: #64748b;
}

.bm-kpi-value {
    font-size: 23px;
    font-weight: 900;
    color: #111827;
    line-height: 1.1;
}

.bm-kpi-subtitle {
    margin-top: 7px;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

.bm-kpi-primary {
    border-color: #c7d2fe;
    background: #eef2ff;
}

.bm-kpi-warning {
    border-color: #fde68a;
    background: #fffbeb;
}

.bm-kpi-danger {
    border-color: #fecaca;
    background: #fef2f2;
}

.bm-kpi-info {
    border-color: #bae6fd;
    background: #f0f9ff;
}

/* TABELA */

.bm-table-card {
    padding: 0;
    border-radius: 14px; /* era 22px: o arco + overflow:hidden cortava conteúdo das células dos cantos */
    background: #ffffff;
    border: 1px solid #dbe4f0;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
    overflow: hidden;
}

.bm-table-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 22px 14px;
    border-bottom: 1px solid #eef2f7;
}

.bm-table-header h3 {
    margin: 0;
    font-size: 17px;
    font-weight: 900;
    color: #111827;
}

.bm-table-header p {
    margin: 4px 0 0;
    color: #64748b;
    font-size: 13px;
    font-weight: 600;
}

.bm-datatable {
    border: 0 !important;
}

.bm-datatable .ui-datatable-tablewrapper {
    border: 0 !important;
}

.bm-datatable table {
    border-collapse: separate;
    border-spacing: 0;
}

.bm-datatable thead th {
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    border-color: #eef2f7 !important;
    padding: 14px 16px !important;
}

.bm-datatable tbody td {
    border-color: #eef2f7 !important;
    padding: 16px !important;
    color: #1f2937;
    font-size: 13px;
}

.bm-datatable tbody tr:hover {
    background: #f8fafc !important;
}

.bm-col-id {
    width: 80px;
    text-align: center;
}

.bm-col-actions {
    width: 90px;
}

.bm-text-center {
    text-align: center;
}

.bm-text-right {
    text-align: right;
}

.bm-id-pill {
    display: inline-flex;
    min-width: 40px;
    height: 26px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #f8fafc;
    border: 1px solid #dbe4f0;
    color: #2B2F6E;
    font-weight: 900;
    font-size: 12px;
}

.bm-count-pill {
    display: inline-flex;
    min-width: 32px;
    height: 26px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: #eef2ff;
    color: #2B2F6E;
    font-weight: 900;
    font-size: 12px;
}

.bm-main-cell {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.bm-main-cell strong {
    color: #111827;
    font-size: 13px;
    font-weight: 900;
}

.bm-main-cell span {
    color: #64748b;
    font-size: 12px;
    font-weight: 600;
}

.bm-person-cell {
    display: flex;
    align-items: center;
    gap: 12px;
}

.bm-person-cell strong {
    display: block;
    color: #111827;
    font-size: 13px;
    font-weight: 900;
}

.bm-person-cell span {
    display: block;
    color: #64748b;
    font-size: 12px;
    margin-top: 2px;
}

.bm-avatar {
    display: flex;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    align-items: center;
    justify-content: center;
    background: #eef2ff;
    color: #2B2F6E;
    font-weight: 900;
}

.bm-money {
    color: #166534;
    font-weight: 900;
}

.bm-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid transparent;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    white-space: nowrap;
}

.bm-badge-neutral,
.status-neutral {
    background: #f1f5f9;
    color: #475569;
    border-color: #e2e8f0;
}

.status-sim {
    background: #dcfce7;
    color: #166534;
    border-color: #86efac;
}

.status-nao {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}

.status-warning {
    background: #fef3c7;
    color: #92400e;
    border-color: #fde68a;
}

.bm-action-button.ui-button {
    width: 38px !important;
    height: 38px !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    border-color: #dbe4f0 !important;
    color: #2B2F6E !important;
    box-shadow: none !important;
}

.bm-action-button.ui-button:hover {
    background: #eef2ff !important;
}

.bm-table-footer {
    display: flex;
    justify-content: flex-end;
    gap: 24px;
    width: 100%;
    font-size: 13px;
    color: #334155;
}

.bm-table-footer strong {
    font-weight: 900;
    color: #111827;
}

/* PAGINADOR */

.bm-datatable .ui-paginator {
    background: #ffffff !important;
    border-color: #eef2f7 !important;
    padding: 14px !important;
}

.bm-datatable .ui-paginator .ui-paginator-page.ui-state-active {
    background: #2B2F6E !important;
    border-color: #2B2F6E !important;
    color: #ffffff !important;
    border-radius: 10px !important;
}

/* RESPONSIVO */

@media (max-width: 1300px) {
    .bm-filter-card {
        flex-direction: column;
        align-items: stretch;
    }

    .bm-filter-left {
        min-width: 0;
    }

    .bm-filter-right {
        max-width: none;
        grid-template-columns: 1fr 170px 170px;
    }

    .bm-kpi-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .bm-filter-right {
        grid-template-columns: 1fr;
    }

    .bm-kpi-grid {
        grid-template-columns: 1fr;
    }

    .bm-segmented {
        flex-direction: column;
        gap: 8px;
    }

    .bm-segmented .ui-button,
    .bm-segmented .ui-button:first-child,
    .bm-segmented .ui-button:last-child {
        width: 100%;
        border-radius: 14px !important;
    }

    .bm-actions-row {
        flex-direction: column;
    }

    .bm-table-footer {
        flex-direction: column;
        align-items: flex-end;
        gap: 4px;
    }
}

/* =========================================================
   AJUSTE FINAL - CONTRATO LIST / FILTROS
   ========================================================= */

.bm-contrato-filter-card {
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-radius: 22px;
    padding: 20px 22px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.bm-contrato-filter-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.bm-contrato-filter-header h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    color: #111827;
}

.bm-contrato-filter-header p {
    margin: 4px 0 0;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
}

.bm-contrato-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
}

.bm-contrato-filter-body {
    display: grid;
    grid-template-columns: 390px minmax(280px, 1fr) 150px 150px;
    gap: 14px;
    align-items: end;
}

.bm-contrato-field label {
    display: block;
    margin-bottom: 7px;
    font-size: 12px;
    font-weight: 900;
    color: #111827;
}

.bm-contrato-field .ui-inputfield {
    width: 100% !important;
    height: 42px !important;
    border-radius: 12px !important;
    border-color: #d6e0ef !important;
    box-shadow: none !important;
    font-size: 13px !important;
}

.bm-contrato-field .ui-inputfield:focus {
    border-color: #2B2F6E !important;
    box-shadow: 0 0 0 3px rgba(39, 55, 127, .10) !important;
}

.bm-contrato-input-icon {
    width: 100%;
    display: block;
}

.bm-contrato-input-icon > i {
    left: 12px !important;
    top: 50% !important;
    margin-top: -7px !important;
    color: #64748b;
    z-index: 2;
}

.bm-contrato-input-icon .ui-inputfield {
    padding-left: 36px !important;
}

.bm-contrato-segmented {
    display: flex;
    width: 100%;
    height: 42px;
    overflow: hidden;
    border-radius: 13px;
    background: #eef2ff;
    border: 1px solid #dbe4f0;
}

.bm-contrato-segmented .ui-button {
    flex: 1;
    height: 42px !important;
    min-width: 0 !important;
    border-radius: 0 !important;
    border: 0 !important;
    background: transparent !important;
    color: #2B2F6E !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 900 !important;
}

.bm-contrato-segmented .ui-button.active,
.bm-contrato-segmented .ui-button:hover {
    background: #2B2F6E !important;
    color: #ffffff !important;
}

.bm-contrato-segmented .ui-button .ui-button-text {
    padding: 0 !important;
}

/* Ajuste dos botões no topo */
.bm-contrato-actions .bm-btn-primary,
.bm-contrato-actions .bm-btn-secondary {
    height: 42px !important;
    min-width: 112px;
}

/* Ajuste dos cards para ficarem mais compactos */
.bm-kpi-grid {
    margin-top: 2px;
}

.bm-kpi-card {
    min-height: 92px !important;
    padding: 14px 16px !important;
}

.bm-kpi-value {
    font-size: 22px !important;
}

.bm-kpi-title {
    font-size: 11px !important;
}

/* Ajuste fino do rodapé da tabela */
.bm-table-footer {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 28px !important;
    width: 100% !important;
    padding-right: 6px;
}

/* Responsivo */
@media (max-width: 1300px) {
    .bm-contrato-filter-body {
        grid-template-columns: 1fr 1fr;
    }

    .bm-contrato-visao,
    .bm-contrato-search {
        grid-column: span 2;
    }
}

@media (max-width: 768px) {
    .bm-contrato-filter-header {
        flex-direction: column;
    }

    .bm-contrato-actions {
        width: 100%;
    }

    .bm-contrato-actions .ui-button {
        flex: 1;
    }

    .bm-contrato-filter-body {
        grid-template-columns: 1fr;
    }

    .bm-contrato-visao,
    .bm-contrato-search {
        grid-column: span 1;
    }

    .bm-contrato-segmented {
        height: auto;
        flex-direction: column;
    }

    .bm-contrato-segmented .ui-button {
        height: 40px !important;
    }
}

.bm-action-menubutton.ui-menubutton .ui-button {
    width: 38px !important;
    height: 38px !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    border: 1px solid #dbe4f0 !important;
    color: #2B2F6E !important;
    box-shadow: none !important;
}

.bm-action-menubutton.ui-menubutton .ui-button:hover {
    background: #eef2ff !important;
}

.bm-action-menubutton .ui-button-text {
    display: none !important;
}

.bm-action-menubutton .ui-button-icon-left {
    left: 50% !important;
    margin-left: -7px !important;
}

/* =========================================================
   CONTRATOS - COCKPIT COMPACTO
   ========================================================= */

.bm-cockpit-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr;
    gap: 14px;
}

.bm-cockpit-card {
    min-height: 142px;
    padding: 18px;
    border-radius: 20px;
    background: #ffffff;
    border: 1px solid #dbe4f0;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .06);
}

.bm-cockpit-priority {
    background: linear-gradient(135deg, #2B2F6E, #3446a5);
    color: #ffffff;
    border-color: #2B2F6E;
}

.bm-cockpit-card-header {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: flex-start;
}

.bm-cockpit-card-header span {
    display: block;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #64748b;
}

.bm-cockpit-priority .bm-cockpit-card-header span {
    color: rgba(255, 255, 255, .72);
}

.bm-cockpit-card-header h3 {
    margin: 4px 0 0;
    font-size: 22px;
    font-weight: 900;
    color: #111827;
}

.bm-cockpit-priority .bm-cockpit-card-header h3 {
    color: #ffffff;
}

.bm-cockpit-card-header i {
    font-size: 22px;
    color: #2B2F6E;
    opacity: .8;
}

.bm-cockpit-priority .bm-cockpit-card-header i {
    color: #ffffff;
}

.bm-cockpit-card p {
    margin: 14px 0 0;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 600;
    color: #64748b;
}

.bm-cockpit-priority p {
    color: rgba(255, 255, 255, .82);
}

.bm-cockpit-actions {
    margin-top: 14px;
}

.bm-mini-action.ui-button {
    height: 36px !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    border-color: #dbe4f0 !important;
    color: #2B2F6E !important;
    font-weight: 900 !important;
    box-shadow: none !important;
}

.bm-cockpit-priority .bm-mini-action.ui-button {
    background: rgba(255, 255, 255, .14) !important;
    border-color: rgba(255, 255, 255, .24) !important;
    color: #ffffff !important;
}

.bm-health-bar {
    height: 10px;
    margin-top: 18px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.bm-health-bar > div {
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, #10b981, #22c55e);
}

@media (max-width: 1200px) {
    .bm-cockpit-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CONTRATOS - COCKPIT PREMIUM BMCode
   ========================================================= */

.cockpit-contratos {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* PRIORIDADE DO DIA */

.bm-priority-card {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 18px;
    border-radius: 18px;
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
}

.bm-priority-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: #2B2F6E;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bm-priority-content {
    flex: 1;
}

.bm-priority-content span {
    display: block;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    color: #2B2F6E;
    margin-bottom: 3px;
}

.bm-priority-content strong {
    font-size: 14px;
    color: #111827;
}

.bm-priority-action {
    flex-shrink: 0;
}

/* MACRO KPIS */

.bm-macro-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}

.bm-macro-card {
    display: block;
    padding: 18px;
    min-height: 118px;
    border-radius: 20px;
    border: 1px solid #dbe4f0;
    text-decoration: none !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
    transition: .18s ease;
}

.bm-macro-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .10);
}

.bm-macro-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.bm-macro-top span {
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.bm-macro-top i {
    font-size: 18px;
    opacity: .75;
}

.bm-macro-card strong {
    display: block;
    font-size: 26px;
    font-weight: 900;
    color: #111827;
}

.bm-macro-card small {
    display: block;
    margin-top: 7px;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

.bm-macro-blue {
    background: #eef2ff;
    border-color: #c7d2fe;
    color: #2B2F6E !important;
}

.bm-macro-green {
    background: #ecfdf5;
    border-color: #bbf7d0;
    color: #047857 !important;
}

.bm-macro-orange {
    background: #fff7ed;
    border-color: #fed7aa;
    color: #c2410c !important;
}

.bm-macro-red {
    background: #fef2f2;
    border-color: #fecaca;
    color: #b91c1c !important;
}

/* MINI KPIS */

.cockpit-mini-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.bm-kpi-health {
    background: #ecfdf5;
    border-color: #bbf7d0;
}

.bm-kpi-purple {
    background: #f5f3ff;
    border-color: #ddd6fe;
}

/* ANALYTICS */

.bm-analytics-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 14px;
}

.bm-operational-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 14px;
}

.bm-risk-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.bm-analytics-card,
.bm-actions-panel {
    background: #ffffff;
    border: 1px solid #dbe4f0;
    border-radius: 20px;
    padding: 18px;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .06);
}

/* Variante "cabeçalho de painel" (título h3 + subtítulo/ação à direita): só quando há <h3> dentro.
   Sem o :has, este space-between/flex-start vazava para os títulos simples (ícone + texto) —
   ex.: receita-produto — jogando o texto para a direita/centro e desalinhando a borda. */
.bm-section-title:has(h3) {
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.bm-section-title h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 900;
    color: #111827;
}

.bm-section-title p {
    margin: 3px 0 0;
    font-size: 12px;
    color: #64748b;
    font-weight: 600;
}

.bm-section-title i {
    color: #94a3b8;
}

/* CHART FAKE */

.bm-fake-chart {
    height: 210px;
    display: flex;
    align-items: flex-end;
    gap: 28px;
    padding: 20px;
    border-radius: 16px;
    background: #f8fafc;
}

.bm-bar-group {
    flex: 1;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 6px;
    position: relative;
}

.bm-bar {
    width: 24px;
    border-radius: 7px 7px 0 0;
}

.bm-bar.protected {
    background: #10b981;
}

.bm-bar.leak {
    background: #f87171;
}

.bm-bar-group span {
    position: absolute;
    bottom: -18px;
    font-size: 11px;
    font-weight: 800;
    color: #64748b;
}

.bm-chart-legend {
    display: flex;
    gap: 18px;
    margin-top: 24px;
    font-size: 12px;
    font-weight: 800;
    color: #64748b;
}

.bm-chart-legend span {
    display: flex;
    align-items: center;
    gap: 6px;
}

.bm-chart-legend i {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.legend-green {
    background: #10b981;
}

.legend-red {
    background: #f87171;
}

/* HEALTH */

.bm-health-circle {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    margin: 12px auto 20px;
    background: conic-gradient(#10b981 0 82%, #e2e8f0 82% 100%);
    display: flex;
    align-items: center;
    justify-content: center;
}

.bm-health-circle > div {
    width: 104px;
    height: 104px;
    border-radius: 50%;
    background: #ffffff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px #e2e8f0;
}

.bm-health-circle strong {
    font-size: 30px;
    font-weight: 900;
    color: #111827;
}

.bm-health-circle span {
    font-size: 11px;
    font-weight: 800;
    color: #64748b;
}

.bm-health-status {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}

.bm-health-status div {
    border-radius: 12px;
    padding: 9px;
    text-align: center;
}

.bm-health-status strong {
    display: block;
    font-size: 15px;
    font-weight: 900;
}

.bm-health-status span {
    font-size: 10px;
    font-weight: 800;
}

.health-ok {
    background: #dcfce7;
    color: #166534;
}

.health-warning {
    background: #fef3c7;
    color: #92400e;
}

.health-danger {
    background: #fee2e2;
    color: #991b1b;
}

/* RADAR */

.bm-radar-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.bm-radar-item > div:first-child {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    margin-bottom: 6px;
}

.bm-radar-item strong {
    color: #111827;
    font-weight: 900;
}

.bm-radar-item span {
    color: #64748b;
    font-weight: 700;
}

.radar-line,
.leak-line {
    height: 8px;
    border-radius: 999px;
    background: #e2e8f0;
    overflow: hidden;
}

.radar-line span,
.leak-line span {
    display: block;
    height: 100%;
    border-radius: 999px;
}

.radar-line.danger span,
.leak-line span {
    background: #ef4444;
}

.radar-line.warning span {
    background: #f59e0b;
}

.radar-line.info span {
    background: #38bdf8;
}

/* FUNIL */

.bm-funnel-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.bm-funnel-grid div {
    border-radius: 14px;
    background: #eef2ff;
    padding: 13px;
    text-align: center;
}

.bm-funnel-grid span {
    display: block;
    font-size: 11px;
    font-weight: 900;
    color: #2B2F6E;
}

.bm-funnel-grid strong {
    display: block;
    margin-top: 5px;
    font-size: 24px;
    font-weight: 900;
    color: #111827;
}

/* FINANCE SNAPSHOT */

.bm-finance-snapshot {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bm-finance-snapshot div {
    display: flex;
    justify-content: space-between;
    border-radius: 12px;
    background: #f8fafc;
    padding: 11px 12px;
    font-size: 12px;
}

.bm-finance-snapshot span {
    color: #64748b;
    font-weight: 700;
}

.bm-finance-snapshot strong {
    color: #111827;
    font-weight: 900;
}

.bm-finance-snapshot .danger {
    background: #fef2f2;
}

.bm-finance-snapshot .danger strong {
    color: #b91c1c;
}

/* OBRIGAÇÕES */

.bm-obligation-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 11px;
}

.bm-obligation-item {
    border-radius: 15px;
    background: #f8fafc;
    padding: 14px;
    border: 1px solid #eef2f7;
}

.bm-obligation-item i {
    color: #f59e0b;
    margin-bottom: 8px;
}

.bm-obligation-item strong {
    display: block;
    font-size: 13px;
    color: #111827;
    font-weight: 900;
}

.bm-obligation-item span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    color: #64748b;
    font-weight: 700;
}

/* VAZAMENTO */

.bm-leak-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.bm-leak-list > div > div:first-child {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    margin-bottom: 6px;
}

.bm-leak-list strong {
    color: #111827;
    font-weight: 900;
}

.bm-leak-list span {
    color: #dc2626;
    font-weight: 900;
}

/* AÇÕES RECOMENDADAS */

.bm-actions-cards {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.bm-recommended-card {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    padding: 15px;
    background: #f8fafc;
}

.bm-recommended-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.bm-recommended-top span {
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background: #2B2F6E;
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
}

.bm-recommended-top strong {
    border-radius: 999px;
    padding: 4px 9px;
    font-size: 10px;
    font-weight: 900;
}

.bm-recommended-card.critical .bm-recommended-top strong {
    background: #fee2e2;
    color: #991b1b;
}

.bm-recommended-card.high .bm-recommended-top strong {
    background: #fef3c7;
    color: #92400e;
}

.bm-recommended-card h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 900;
    color: #111827;
}

.bm-recommended-card p {
    margin: 8px 0 2px;
    font-size: 12px;
    font-weight: 700;
    color: #475569;
}

.bm-recommended-card small {
    display: block;
    font-size: 11px;
    color: #64748b;
    margin-bottom: 12px;
}

.bm-mini-action.ui-button {
    height: 32px !important;
    border-radius: 10px !important;
    background: #ffffff !important;
    border-color: #dbe4f0 !important;
    color: #2B2F6E !important;
    font-weight: 900 !important;
    box-shadow: none !important;
}

/* SCORE */

.bm-score-pill {
    display: inline-flex;
    min-width: 42px;
    height: 26px;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 900;
    border: 1px solid transparent;
}

.score-success {
    background: #dcfce7;
    color: #166534;
    border-color: #86efac;
}

.score-warning {
    background: #fef3c7;
    color: #92400e;
    border-color: #fde68a;
}

.score-danger {
    background: #fee2e2;
    color: #991b1b;
    border-color: #fecaca;
}

/* MENU BUTTON */

.bm-action-menubutton.ui-menubutton .ui-button {
    width: 38px !important;
    height: 38px !important;
    border-radius: 12px !important;
    background: #f8fafc !important;
    border: 1px solid #dbe4f0 !important;
    color: #2B2F6E !important;
    box-shadow: none !important;
}

.bm-action-menubutton.ui-menubutton .ui-button:hover {
    background: #eef2ff !important;
}

.bm-action-menubutton .ui-button-text {
    display: none !important;
}

/* RESPONSIVO */

@media (max-width: 1300px) {
    .bm-macro-grid,
    .bm-actions-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .bm-analytics-grid,
    .bm-operational-grid,
    .bm-risk-grid {
        grid-template-columns: 1fr;
    }

    .cockpit-mini-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .bm-macro-grid,
    .bm-actions-cards,
    .cockpit-mini-grid,
    .bm-obligation-grid {
        grid-template-columns: 1fr;
    }

    .bm-priority-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .bm-priority-action {
        width: 100%;
    }
}

/* =========================================================
   MELHORIA DO GRÁFICO - CONTRATOS
   ========================================================= */

.bm-chart-wrapper {
    display: flex;
    gap: 14px;
    align-items: stretch;
}

.bm-chart-scale {
    width: 90px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    padding: 8px 6px 26px 0;
    font-size: 11px;
    font-weight: 800;
    color: #64748b;
    flex-shrink: 0;
}

.improved-chart {
    flex: 1;
    height: 260px;
    display: flex;
    align-items: flex-end;
    gap: 22px;
    padding: 18px 18px 32px;
    border-radius: 16px;
    background: linear-gradient(to top, #f1f5f9 1px, transparent 1px);
    background-size: 100% 52px;
    background-color: #f8fafc;
    position: relative;
}

.bm-bar-group {
    flex: 1;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 8px;
    position: relative;
}

.bm-bar-column {
    width: 34px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    position: relative;
}

.bm-bar-value {
    position: absolute;
    bottom: calc(100% + 6px);
    font-size: 10px;
    font-weight: 900;
    white-space: nowrap;
    line-height: 1;
}

.protected-value {
    color: #059669;
}

.leak-value {
    color: #dc2626;
}

.improved-chart .bm-bar {
    width: 22px;
    border-radius: 7px 7px 0 0;
    transition: transform .18s ease, opacity .18s ease;
    cursor: pointer;
}

.improved-chart .bm-bar:hover {
    transform: translateY(-2px);
    opacity: .92;
}

.improved-chart .bm-bar.protected {
    background: #10b981;
}

.improved-chart .bm-bar.leak {
    background: #f87171;
}

.bm-bar-month {
    position: absolute;
    bottom: -22px;
    font-size: 11px;
    font-weight: 900;
    color: #64748b;
}

@media (max-width: 900px) {
    .bm-chart-wrapper {
        flex-direction: column;
    }

    .bm-chart-scale {
        width: 100%;
        flex-direction: row;
        align-items: center;
        padding: 0;
    }

    .improved-chart {
        overflow-x: auto;
        min-width: 100%;
    }
}

/* =========================================================
   CONTRATOS - FILTROS PREMIUM COMPLETOS
   ========================================================= */

.bm-filter-premium {
    padding: 18px 20px;
}

.bm-filter-premium .bm-contrato-filter-header {
    margin-bottom: 16px;
}

.bm-segmented-top {
    min-width: 330px;
}

.bm-premium-filter-grid {
    display: grid;
    grid-template-columns: repeat(8, minmax(130px, 1fr));
    gap: 14px;
    align-items: end;
}

.bm-premium-filter-grid .bm-contrato-field label {
    display: block;
    margin-bottom: 7px;
    font-size: 12px;
    font-weight: 900;
    color: #111827;
}

.bm-premium-filter-grid .ui-inputfield,
.bm-premium-filter-grid .ui-selectonemenu {
    width: 100% !important;
    height: 42px !important;
    border-radius: 12px !important;
    border-color: #d6e0ef !important;
    box-shadow: none !important;
    background: #f8fafc !important;
}

.bm-premium-filter-grid .ui-selectonemenu-label {
    padding-top: 10px !important;
    font-size: 13px !important;
    color: #334155 !important;
}

.bm-premium-filter-grid .ui-selectonemenu-trigger {
    border-radius: 0 12px 12px 0 !important;
    border-color: #d6e0ef !important;
    background: transparent !important;
}

.bm-select-full {
    width: 100% !important;
}

.bm-premium-filter-footer {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 18px;
}

.bm-free-search {
    flex: 1;
}

.bm-free-search input {
    width: 100% !important;
    height: 42px !important;
    border-radius: 12px !important;
    padding-left: 36px !important;
}

.bm-premium-filter-buttons {
    display: flex;
    gap: 10px;
    flex-shrink: 0;
}

.bm-btn-success,
.bm-btn-success.ui-button {
    height: 42px;
    border-radius: 14px !important;
    background: #059669 !important;
    border-color: #059669 !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    box-shadow: 0 10px 22px rgba(5, 150, 105, .22) !important;
}

.bm-btn-success:hover,
.bm-btn-success.ui-button:hover {
    background: #047857 !important;
    border-color: #047857 !important;
}

/* Definição ÚNICA de .bm-btn-light (havia 3 duplicatas neste arquivo — consolidadas aqui
   com os valores que já venciam a cascata: radius 12px, cor #0f172a, sombra .05).
   inline-flex centraliza ícone+texto dentro do botão. */
.bm-btn-light,
.bm-btn-light.ui-button {
    height: 42px;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    line-height: 1;
    border-radius: 12px !important;
    background: #ffffff !important;
    border: 1px solid #dbe4f0 !important;
    color: #0f172a !important;
    font-weight: 800 !important;
    box-shadow: 0 8px 18px rgba(15, 23, 42, .05) !important;
}

.bm-btn-light:hover,
.bm-btn-light.ui-button:hover {
    background: #f8fafc !important;
}

@media (max-width: 1500px) {
    .bm-premium-filter-grid {
        grid-template-columns: repeat(4, minmax(150px, 1fr));
    }
}

@media (max-width: 900px) {
    .bm-contrato-filter-header {
        flex-direction: column;
    }

    .bm-contrato-actions {
        width: 100%;
        flex-wrap: wrap;
    }

    .bm-segmented-top {
        width: 100%;
        min-width: 0;
    }

    .bm-premium-filter-grid {
        grid-template-columns: 1fr;
    }

    .bm-premium-filter-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .bm-premium-filter-buttons {
        width: 100%;
    }

    .bm-premium-filter-buttons .ui-button {
        flex: 1;
    }
}

/* =========================================================
   CONTRATOS - GRÁFICO CORRIGIDO
   ========================================================= */

.bm-chart-wrapper {
    display: flex;
    gap: 14px;
    align-items: stretch;
}

.bm-chart-scale {
    width: 78px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    padding: 10px 4px 32px 0;
    font-size: 11px;
    font-weight: 900;
    color: #64748b;
    flex-shrink: 0;
}

.improved-chart {
    flex: 1;
    height: 260px;
    display: flex;
    align-items: flex-end;
    gap: 18px;
    padding: 26px 18px 34px;
    border-radius: 16px;
    background: linear-gradient(to top, rgba(148, 163, 184, .16) 1px, transparent 1px);
    background-size: 100% 52px;
    background-color: #f8fafc;
    position: relative;
    overflow: hidden;
}

.improved-bar-group {
    flex: 1;
    height: 100%;
    min-width: 70px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 9px;
    position: relative;
}

.bm-bar-column {
    width: 30px;
    height: 100%;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    position: relative;
}

.bm-bar-value {
    position: absolute;
    bottom: calc(100% + 5px);
    left: 50%;
    transform: translateX(-50%);
    font-size: 10px;
    font-weight: 900;
    white-space: nowrap;
    line-height: 1;
    padding: 2px 4px;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 3px 8px rgba(15, 23, 42, .08);
}

.protected-value {
    color: #059669;
}

.leak-value {
    color: #dc2626;
}

.improved-chart .bm-bar {
    width: 22px;
    min-height: 2px;
    border-radius: 7px 7px 0 0;
    cursor: pointer;
    transition: transform .18s ease, opacity .18s ease;
}

.improved-chart .bm-bar:hover {
    transform: translateY(-2px);
    opacity: .92;
}

.improved-chart .bm-bar.protected {
    background: #10b981;
}

.improved-chart .bm-bar.leak {
    background: #f87171;
}

.bm-bar-month {
    position: absolute;
    bottom: -24px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    font-weight: 900;
    color: #64748b;
    white-space: nowrap;
}

@media (max-width: 900px) {
    .bm-chart-wrapper {
        flex-direction: column;
    }

    .bm-chart-scale {
        width: 100%;
        flex-direction: row;
        padding: 0;
    }

    .improved-chart {
        overflow-x: auto;
    }
}

.bm-filter-premium {
    padding: 20px;
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
    margin-bottom: 18px;
}

.bm-contrato-filter-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 18px;
    margin-bottom: 20px;
}

.bm-contrato-filter-title h3 {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 900;
    color: #0f172a;
}

.bm-contrato-filter-title p {
    margin: 0;
    color: #64748b;
    font-size: 13px;
}

.bm-contrato-header-right {
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: flex-end;
}

.bm-contrato-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.bm-contrato-segmented {
    display: flex;
    background: #eef2ff;
    padding: 4px;
    border-radius: 14px;
    gap: 4px;
}

.bm-contrato-segmented .ui-button {
    border-radius: 10px !important;
    background: transparent !important;
    border: none !important;
    color: #334155 !important;
    font-weight: 800 !important;
}

.bm-contrato-segmented .ui-button.active {
    background: #313c8f !important;
    color: #fff !important;
}

.bm-premium-filter-grid {
    display: grid;
    gap: 14px;
}

.bm-premium-filter-grid.cols-5 {
    grid-template-columns: repeat(5, minmax(160px, 1fr));
}

.bm-premium-filter-grid.cols-6 {
    grid-template-columns: repeat(6, minmax(150px, 1fr));
}

.bm-contrato-field label {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 800;
    color: #0f172a;
}

.bm-contrato-field .ui-inputfield,
.bm-contrato-field .ui-selectonemenu {
    width: 100% !important;
    height: 42px !important;
    border-radius: 12px !important;
    border: 1px solid #d6e0ef !important;
    background: #f8fafc !important;
    box-shadow: none !important;
}

.mt-16 {
    margin-top: 16px;
}

.bm-premium-filter-footer {
    display: flex;
    gap: 14px;
    align-items: center;
    margin-top: 18px;
}

.bm-free-search {
    flex: 1;
}

.bm-free-search input {
    width: 100% !important;
    height: 44px !important;
    border-radius: 12px !important;
    padding-left: 38px !important;
}

.bm-premium-filter-buttons {
    display: flex;
    gap: 10px;
}

.bm-btn-success,
.bm-btn-success.ui-button {
    background: #16a34a !important;
    border-color: #16a34a !important;
    color: #fff !important;
    border-radius: 12px !important;
    font-weight: 800 !important;
}

/* .bm-btn-light: consolidado na definição única (busque ".bm-btn-light," acima) */

@media (max-width: 1500px) { /* breakpoint canônico: era 1400px */
    .bm-premium-filter-grid.cols-5,
    .bm-premium-filter-grid.cols-6 {
        grid-template-columns: repeat(3, minmax(180px, 1fr));
    }
}

@media (max-width: 900px) {
    .bm-contrato-filter-header,
    .bm-premium-filter-footer {
        flex-direction: column;
        align-items: stretch;
    }

    .bm-contrato-header-right {
        align-items: stretch;
    }

    .bm-premium-filter-grid.cols-5,
    .bm-premium-filter-grid.cols-6 {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CONTRATOS - TOPO COMPACTO PREMIUM
   ========================================================= */

.bm-filter-compact {
    padding: 18px 20px !important;
    border-radius: 22px;
    background: #ffffff;
    border: 1px solid #dbe4f0;
    box-shadow: 0 10px 30px rgba(15, 23, 42, .05);
}

.bm-filter-command-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
    margin-bottom: 18px;
}

.bm-filter-title-block {
    min-width: 300px;
    flex: 1;
}

.bm-filter-title-block h3 {
    margin: 0 0 4px;
    font-size: 18px;
    font-weight: 900;
    color: #0f172a;
}

.bm-filter-title-block p {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
    color: #64748b;
}

.bm-filter-command-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: nowrap;
    flex-shrink: 0;
}

.bm-segmented-command {
    display: flex;
    align-items: center;
    min-width: 360px;
    height: 42px;
    padding: 4px;
    border-radius: 14px;
    background: #eef2ff;
    border: 1px solid #dbe4f0;
    gap: 4px;
}

.bm-segmented-command .ui-button {
    flex: 1;
    min-width: 0 !important;
    height: 34px !important;
    border-radius: 10px !important;
    border: 0 !important;
    background: transparent !important;
    color: #2B2F6E !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    box-shadow: none !important;
}

.bm-segmented-command .ui-button.active,
.bm-segmented-command .ui-button:hover {
    background: #2B2F6E !important;
    color: #ffffff !important;
}

.bm-segmented-command .ui-button .ui-button-text {
    padding: 0 !important;
}

.bm-btn-command,
.bm-btn-command.ui-button {
    height: 42px !important;
    min-width: 104px;
    border-radius: 14px !important;
    font-size: 13px !important;
    font-weight: 900 !important;
}

/* Linhas de filtros */

.bm-filter-grid-line {
    display: grid;
    gap: 14px;
    align-items: end;
}

.bm-filter-line-main {
    grid-template-columns: repeat(6, minmax(145px, 1fr));
}

.bm-filter-line-operational {
    grid-template-columns: repeat(6, minmax(145px, 1fr));
    margin-top: 14px;
}

.bm-contrato-field label {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 900;
    color: #0f172a;
}

.bm-contrato-field .ui-inputfield,
.bm-contrato-field .ui-selectonemenu {
    width: 100% !important;
    height: 40px !important;
    border-radius: 12px !important;
    border: 1px solid #d6e0ef !important;
    background: #f8fafc !important;
    box-shadow: none !important;
}

.bm-contrato-field .ui-selectonemenu-label {
    padding-top: 9px !important;
    font-size: 13px !important;
    color: #334155 !important;
    font-weight: 700 !important;
}

.bm-contrato-field .ui-selectonemenu-trigger {
    border-radius: 0 12px 12px 0 !important;
    border-color: #d6e0ef !important;
    background: transparent !important;
}

.bm-contrato-field .ui-inputfield:focus,
.bm-contrato-field .ui-selectonemenu.ui-state-focus {
    border-color: #2B2F6E !important;
    box-shadow: 0 0 0 3px rgba(39, 55, 127, .10) !important;
}

/* Busca livre */

.bm-filter-search-row {
    display: flex;
    margin-top: 16px;
}

.bm-free-search {
    width: 100%;
    display: block;
}

.bm-free-search input,
.bm-free-search .ui-inputfield {
    width: 100% !important;
    height: 42px !important;
    border-radius: 12px !important;
    padding-left: 38px !important;
    border: 1px solid #d6e0ef !important;
    background: #ffffff !important;
    box-shadow: none !important;
    font-size: 13px !important;
}

.bm-free-search > i {
    left: 13px !important;
    top: 50% !important;
    margin-top: -7px !important;
    color: #64748b;
    z-index: 2;
}

/* Botões */

.bm-btn-primary,
.bm-btn-primary.ui-button {
    background: #2B2F6E !important;
    border-color: #2B2F6E !important;
    color: #ffffff !important;
    box-shadow: 0 10px 22px rgba(39, 55, 127, .18) !important;
}

.bm-btn-primary:hover,
.bm-btn-primary.ui-button:hover {
    background: #1d2a63 !important;
    border-color: #1d2a63 !important;
}

.bm-btn-secondary,
.bm-btn-secondary.ui-button {
    background: #f5f7ff !important;
    border-color: #dbe4f0 !important;
    color: #2B2F6E !important;
    box-shadow: none !important;
}

.bm-btn-secondary:hover,
.bm-btn-secondary.ui-button:hover {
    background: #eef2ff !important;
}

/* .bm-btn-light (+ hover): consolidado na definição única (busque ".bm-btn-light," acima) */

/* Responsivo */

@media (max-width: 1500px) {
    .bm-filter-command-row {
        flex-direction: column;
        align-items: stretch;
    }

    .bm-filter-command-actions {
        justify-content: space-between;
        flex-wrap: wrap;
    }

    .bm-segmented-command {
        flex: 1;
        min-width: 320px;
    }

    .bm-filter-line-main,
    .bm-filter-line-operational {
        grid-template-columns: repeat(3, minmax(180px, 1fr));
    }
}

@media (max-width: 900px) {
    .bm-filter-command-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .bm-segmented-command {
        width: 100%;
        min-width: 0;
    }

    .bm-btn-command,
    .bm-btn-command.ui-button {
        width: 100%;
    }

    .bm-filter-line-main,
    .bm-filter-line-operational {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CONTRATOS - GRÁFICO CORRIGIDO LABEL / MÊS
   ========================================================= */

.improved-chart {
    flex: 1;
    height: 270px;
    display: flex;
    align-items: flex-end;
    gap: 18px;
    padding: 30px 18px 46px !important;
    border-radius: 16px;
    background: linear-gradient(to top, rgba(148, 163, 184, .16) 1px, transparent 1px);
    background-size: 100% 52px;
    background-color: #f8fafc;
    position: relative;
    overflow: visible !important;
}

.improved-bar-group {
    flex: 1;
    height: 100%;
    min-width: 76px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 9px;
    position: relative;
    padding-bottom: 0;
}

.bm-bar-column {
    width: 34px;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    position: relative;
}

.bm-bar-label-wrap {
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    height: 18px;
    min-width: 54px;
    display: flex;
    justify-content: center;
    align-items: flex-end;
    pointer-events: none;
}

.bm-bar-value {
    position: static !important;
    transform: none !important;
    font-size: 10px;
    font-weight: 900;
    white-space: nowrap;
    line-height: 1;
    padding: 2px 4px;
    border-radius: 6px;
    background: #ffffff;
    box-shadow: 0 3px 8px rgba(15, 23, 42, .08);
}

.protected-value {
    color: #059669;
}

.leak-value {
    color: #dc2626;
}

.improved-chart .bm-bar {
    width: 22px;
    min-height: 0;
    border-radius: 7px 7px 0 0;
    cursor: pointer;
    transition: transform .18s ease, opacity .18s ease;
}

.improved-chart .bm-bar[style*="height: 0%"] {
    min-height: 0 !important;
}

.improved-chart .bm-bar:hover {
    transform: translateY(-2px);
    opacity: .92;
}

.improved-chart .bm-bar.protected {
    background: #10b981;
}

.improved-chart .bm-bar.leak {
    background: #f87171;
}

.bm-bar-month {
    position: absolute;
    bottom: -30px !important;
    left: 50%;
    transform: translateX(-50%);
    font-size: 11px;
    font-weight: 900;
    color: #64748b;
    white-space: nowrap;
}

.bm-chart-scale {
    width: 78px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-end;
    padding: 10px 4px 48px 0 !important;
    font-size: 11px;
    font-weight: 900;
    color: #64748b;
    flex-shrink: 0;
}

/* =========================================================
   CONTRATOS - FUNIL COM VALOR
   ========================================================= */

.bm-funnel-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.bm-funnel-item {
    display: block;
    border-radius: 14px;
    background: #eef2ff;
    padding: 13px;
    text-align: center;
    text-decoration: none !important;
    color: inherit !important;
    transition: .18s ease;
    border: 1px solid transparent;
}

.bm-funnel-item:hover {
    transform: translateY(-2px);
    background: #e0e7ff;
    border-color: #c7d2fe;
    box-shadow: 0 10px 22px rgba(15, 23, 42, .08);
}

.bm-funnel-item span {
    display: block;
    font-size: 11px;
    font-weight: 900;
    color: #2B2F6E;
}

.bm-funnel-item strong {
    display: block;
    margin-top: 5px;
    font-size: 24px;
    line-height: 1;
    font-weight: 900;
    color: #111827;
}

.bm-funnel-item small {
    display: block;
    margin-top: 7px;
    font-size: 11px;
    font-weight: 800;
    color: #64748b;
}

/* =========================================================
   CONTRATO FORM - CICLO OPERACIONAL
   ========================================================= */

.bm-contract-status-panel {
    padding: 16px 18px;
    margin-bottom: 16px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid #dbe4f0;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
}

.bm-contract-status-main {
    display: grid;
    grid-template-columns: 1.3fr 1.5fr repeat(3, minmax(130px, .8fr));
    gap: 14px;
    align-items: center;
}

.bm-contract-status-main div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.bm-contract-status-main span {
    font-size: 11px;
    font-weight: 900;
    color: #64748b;
    text-transform: uppercase;
}

.bm-contract-status-main strong {
    font-size: 13px;
    font-weight: 900;
    color: #0f172a;
}

.bm-info-box {
    margin-top: 16px;
    padding: 13px 15px;
    border-radius: 14px;
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    color: #2B2F6E;
    font-size: 13px;
    font-weight: 700;
}

.bm-cycle-flow {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-top: 18px;
}

.bm-cycle-step {
    padding: 16px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    text-align: center;
}

.bm-cycle-step i {
    display: block;
    font-size: 22px;
    color: #2B2F6E;
    margin-bottom: 8px;
}

.bm-cycle-step strong {
    display: block;
    font-size: 14px;
    font-weight: 900;
    color: #111827;
}

.bm-cycle-step span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

.bm-cycle-step.ok {
    background: #ecfdf5;
    border-color: #bbf7d0;
}

.bm-cycle-step.warning {
    background: #fffbeb;
    border-color: #fde68a;
}

@media (max-width: 1100px) {
    .bm-contract-status-main,
    .bm-cycle-flow {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   CONTRATO FORM - CICLO OPERACIONAL
   ========================================================= */

.bm-contract-status-panel {
    padding: 16px 18px;
    margin-bottom: 16px;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid #dbe4f0;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .05);
}

.bm-contract-status-main {
    display: grid;
    grid-template-columns: 1.3fr 1.5fr repeat(3, minmax(130px, .8fr));
    gap: 14px;
    align-items: center;
}

.bm-contract-status-main div {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.bm-contract-status-main span {
    font-size: 11px;
    font-weight: 900;
    color: #64748b;
    text-transform: uppercase;
}

.bm-contract-status-main strong {
    font-size: 13px;
    font-weight: 900;
    color: #0f172a;
}

.bm-info-box {
    margin-top: 16px;
    padding: 13px 15px;
    border-radius: 14px;
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    color: #2B2F6E;
    font-size: 13px;
    font-weight: 700;
}

.bm-cycle-flow {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin-top: 18px;
}

.bm-cycle-step {
    padding: 16px;
    border-radius: 16px;
    background: #f8fafc;
    border: 1px solid #e2e8f0;
    text-align: center;
}

.bm-cycle-step i {
    display: block;
    font-size: 22px;
    color: #2B2F6E;
    margin-bottom: 8px;
}

.bm-cycle-step strong {
    display: block;
    font-size: 14px;
    font-weight: 900;
    color: #111827;
}

.bm-cycle-step span {
    display: block;
    margin-top: 4px;
    font-size: 12px;
    font-weight: 700;
    color: #64748b;
}

.bm-cycle-step.ok {
    background: #ecfdf5;
    border-color: #bbf7d0;
}

.bm-cycle-step.warning {
    background: #fffbeb;
    border-color: #fde68a;
}

@media (max-width: 1100px) {
    .bm-contract-status-main,
    .bm-cycle-flow {
        grid-template-columns: 1fr;
    }
}

.topbar-icon-button {
    width: 36px;
    height: 36px;
    border-radius: 12px;
}

.bm-help-dialog .ui-dialog-content,
.bm-chat-dialog .ui-dialog-content {
    padding: 20px;
}

.bm-help-title {
    margin: 0 0 8px 0;
    font-size: 22px;
    font-weight: 700;
}

.bm-help-description {
    color: #606266;
    margin-bottom: 18px;
}

.bm-help-item {
    border: 1px solid #e7eaf3;
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 12px;
    background: #fff;
}

.bm-help-item-type {
    font-size: 11px;
    font-weight: 700;
    color: #2B2F6E;
    text-transform: uppercase;
    margin-bottom: 6px;
}

.bm-help-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

.bm-chat-context {
    color: #606266;
    margin-bottom: 12px;
}

.context-shortcuts {
    margin: 0 0 18px 0;
    padding: 14px 16px;
    border: 1px solid var(--bm-border, #e7eaf3);
    border-radius: 18px;
    background: rgba(255,255,255,.78);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.context-shortcuts-title {font-weight: 800;color: #2B2F6E;display: flex;align-items: center;gap: 8px;}
.context-shortcuts-list {display:flex;gap:10px;flex-wrap:wrap;}
.context-shortcut-link {display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #dce5f4;border-radius:14px;text-decoration:none;color:#16204f;background:#fff;font-weight:700;font-size:13px;}
.context-shortcut-link:hover {box-shadow:0 10px 28px rgba(22,32,79,.08);transform:translateY(-1px);}

.bm-help-dialog .ui-dialog-content,.bm-chat-dialog .ui-dialog-content{padding:20px;}
.bm-help-title{margin:0 0 8px;font-size:22px;font-weight:800;color:#16204f;}
.bm-help-description{color:#606266;margin-bottom:18px;}
.bm-help-item{border:1px solid #e7eaf3;border-radius:16px;padding:14px;margin-bottom:12px;background:#fff;}
.bm-help-item-type{font-size:11px;font-weight:900;color:#2B2F6E;text-transform:uppercase;margin-bottom:6px;}
.bm-help-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.bm-help-empty{display:flex;align-items:center;gap:12px;color:#606266;background:#f7f9fe;border-radius:16px;padding:18px;}
.bm-chat-context{color:#606266;margin-bottom:12px;background:#f7f9fe;border-radius:16px;padding:14px;}

.cockpit-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px;border-radius:28px;background:linear-gradient(135deg,#101936,#2B2F6E);color:#fff;box-shadow:0 22px 60px rgba(22,32,79,.22);margin-bottom:22px;}
.cockpit-eyebrow{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
.cockpit-hero h1{margin:14px 0 8px;font-size:30px;line-height:1.15;}
.cockpit-hero p{margin:0;color:rgba(255,255,255,.78);max-width:760px;}
.cockpit-health-ring{width:128px;height:128px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 30px rgba(255,255,255,.08);flex-shrink:0;}
.cockpit-health-ring strong{font-size:32px;}
.cockpit-health-ring span{font-size:12px;text-transform:uppercase;opacity:.8;font-weight:800;}
.cockpit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;}
.cockpit-card{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid #e7eaf3;border-radius:22px;padding:18px;box-shadow:0 10px 30px rgba(22,32,79,.06);}
.cockpit-card span{display:block;color:#606266;font-size:12px;font-weight:800;text-transform:uppercase;}
.cockpit-card strong{display:block;font-size:26px;color:#16204f;margin:3px 0;}
.cockpit-card small{color:#667085;}
.cockpit-card-icon{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#eef3ff;color:#2B2F6E;font-size:20px;}
.cockpit-card-icon.danger{background:#fff1f2;color:#e11d48;}
.cockpit-card-icon.warning{background:#fff7ed;color:#ea580c;}
.cockpit-card-icon.success{background:#ecfdf3;color:#16a34a;}
.cockpit-panels{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;}
.cockpit-panel{background:#fff;border:1px solid #e7eaf3;border-radius:24px;padding:20px;box-shadow:0 10px 30px rgba(22,32,79,.06);}
.cockpit-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cockpit-panel-header h2{margin:0;color:#16204f;font-size:20px;}
.cockpit-panel-header p{margin:4px 0 0;color:#667085;}
.cockpit-panel-header i{font-size:24px;color:#2B2F6E;}
.cockpit-alert-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #eef2f7;color:#16204f;font-weight:650;}
.cockpit-alert-item:last-child{border-bottom:0;}
.cockpit-alert-item i{color:#ea580c;}
.cockpit-action-list{display:grid;gap:10px;}
.cockpit-action{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;text-decoration:none;background:#f7f9fe;color:#16204f;font-weight:800;border:1px solid #e7eaf3;}
.cockpit-action:hover{background:#eef3ff;}
@media(max-width:1200px){.cockpit-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.cockpit-panels{grid-template-columns:1fr;}}
@media(max-width:768px){/* breakpoint canônico: era 720px */.cockpit-grid{grid-template-columns:1fr;}.cockpit-hero{flex-direction:column;align-items:flex-start;}.cockpit-health-ring{width:110px;height:110px;}}

.context-shortcuts {
    margin: 0 0 18px 0;
    padding: 14px 16px;
    border: 1px solid var(--bm-border, #e7eaf3);
    border-radius: 18px;
    background: rgba(255,255,255,.78);
    backdrop-filter: blur(8px);
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
}
.context-shortcuts-title {font-weight: 800;color: #2B2F6E;display: flex;align-items: center;gap: 8px;}
.context-shortcuts-list {display:flex;gap:10px;flex-wrap:wrap;}
.context-shortcut-link {display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #dce5f4;border-radius:14px;text-decoration:none;color:#16204f;background:#fff;font-weight:700;font-size:13px;}
.context-shortcut-link:hover {box-shadow:0 10px 28px rgba(22,32,79,.08);transform:translateY(-1px);}

.bm-help-dialog .ui-dialog-content,.bm-chat-dialog .ui-dialog-content{padding:20px;}
.bm-help-title{margin:0 0 8px;font-size:22px;font-weight:800;color:#16204f;}
.bm-help-description{color:#606266;margin-bottom:18px;}
.bm-help-item{border:1px solid #e7eaf3;border-radius:16px;padding:14px;margin-bottom:12px;background:#fff;}
.bm-help-item-type{font-size:11px;font-weight:900;color:#2B2F6E;text-transform:uppercase;margin-bottom:6px;}
.bm-help-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.bm-help-empty{display:flex;align-items:center;gap:12px;color:#606266;background:#f7f9fe;border-radius:16px;padding:18px;}
.bm-chat-context{color:#606266;margin-bottom:12px;background:#f7f9fe;border-radius:16px;padding:14px;}

.cockpit-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px;border-radius:28px;background:linear-gradient(135deg,#101936,#2B2F6E);color:#fff;box-shadow:0 22px 60px rgba(22,32,79,.22);margin-bottom:22px;}
.cockpit-eyebrow{display:inline-flex;padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.12);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;}
.cockpit-hero h1{margin:14px 0 8px;font-size:30px;line-height:1.15;}
.cockpit-hero p{margin:0;color:rgba(255,255,255,.78);max-width:760px;}
.cockpit-health-ring{width:128px;height:128px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);box-shadow:inset 0 0 30px rgba(255,255,255,.08);flex-shrink:0;}
.cockpit-health-ring strong{font-size:32px;}
.cockpit-health-ring span{font-size:12px;text-transform:uppercase;opacity:.8;font-weight:800;}
.cockpit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;}
.cockpit-card{display:flex;gap:14px;align-items:center;background:#fff;border:1px solid #e7eaf3;border-radius:22px;padding:18px;box-shadow:0 10px 30px rgba(22,32,79,.06);}
.cockpit-card span{display:block;color:#606266;font-size:12px;font-weight:800;text-transform:uppercase;}
.cockpit-card strong{display:block;font-size:26px;color:#16204f;margin:3px 0;}
.cockpit-card small{color:#667085;}
.cockpit-card-icon{width:46px;height:46px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:#eef3ff;color:#2B2F6E;font-size:20px;}
.cockpit-card-icon.danger{background:#fff1f2;color:#e11d48;}
.cockpit-card-icon.warning{background:#fff7ed;color:#ea580c;}
.cockpit-card-icon.success{background:#ecfdf3;color:#16a34a;}
.cockpit-panels{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;}
.cockpit-panel{background:#fff;border:1px solid #e7eaf3;border-radius:24px;padding:20px;box-shadow:0 10px 30px rgba(22,32,79,.06);}
.cockpit-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;}
.cockpit-panel-header h2{margin:0;color:#16204f;font-size:20px;}
.cockpit-panel-header p{margin:4px 0 0;color:#667085;}
.cockpit-panel-header i{font-size:24px;color:#2B2F6E;}
.cockpit-alert-item{display:flex;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid #eef2f7;color:#16204f;font-weight:650;}
.cockpit-alert-item:last-child{border-bottom:0;}
.cockpit-alert-item i{color:#ea580c;}
.cockpit-action-list{display:grid;gap:10px;}
.cockpit-action{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:16px;text-decoration:none;background:#f7f9fe;color:#16204f;font-weight:800;border:1px solid #e7eaf3;}
.cockpit-action:hover{background:#eef3ff;}
@media(max-width:1200px){.cockpit-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.cockpit-panels{grid-template-columns:1fr;}}
@media(max-width:768px){/* breakpoint canônico: era 720px */.cockpit-grid{grid-template-columns:1fr;}.cockpit-hero{flex-direction:column;align-items:flex-start;}.cockpit-health-ring{width:110px;height:110px;}}

.chat-context-box {
    background: #f5f7fb;
    border-radius: 16px;
    padding: 16px;
    margin-bottom: 14px;
    color: #334155;
    font-size: 14px;
}

.chat-empty {
    padding: 18px;
    border: 1px dashed #d6e0ef;
    border-radius: 14px;
    color: #64748b;
    margin-bottom: 14px;
}

.chat-thread {
    max-height: 260px;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 14px;
    padding-right: 6px;
}

.chat-message {
    max-width: 82%;
    border-radius: 16px;
    padding: 12px 14px;
    border: 1px solid #dbe4f0;
    background: #ffffff;
}

.chat-message-user {
    align-self: flex-end;
    background: #eef3ff;
}

.chat-message-support {
    align-self: flex-start;
    background: #ffffff;
}

.chat-message-meta {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    font-size: 11px;
    color: #64748b;
    margin-bottom: 6px;
}

.chat-message-body {
    font-size: 14px;
    color: #0f172a;
    white-space: pre-wrap;
}

.chat-input-area {
    border-top: 1px solid #dbe4f0;
    padding-top: 14px;
    display: grid;
    gap: 12px;
}

.chat-input-area textarea {
    width: 100% !important;
    border-radius: 14px !important;
}

.chat-input-area .ui-button {
    justify-self: end;
}

