/* ==========================================================================
   V138 · acabamento do admin (sellers, equipe, compliance e sistema).
   CSS estático, fora do build do tema (o bundle do site não é recompilado).
   Carregado nos quatro painéis: toda regra é escopada pelo painel admin
   (body.fi-panel-admin = site, body.fi-panel-adminapp = aplicativo).
   ========================================================================== */

/* --------------------------------------------------------------------------
   Faixa de alertas críticos: cor discreta por gravidade.
   O tema do aplicativo pinta a pílula com !important; aqui só a borda e o
   ícone mudam de cor, para perigo, aviso e informação se distinguirem.
   -------------------------------------------------------------------------- */
.throne-alert-bar .throne-alerta {
    --alerta-cor: #9aa3b2;
    --alerta-borda: rgba(154, 163, 178, 0.24);
    --alerta-fundo: rgba(154, 163, 178, 0.06);
    color: #ece9f5;
    border-color: var(--alerta-borda);
    background: linear-gradient(90deg, var(--alerta-fundo), transparent 70%), #12151d;
}
.throne-alert-bar .throne-alerta--perigo {
    --alerta-cor: #f07167;
    --alerta-borda: rgba(240, 113, 103, 0.32);
    --alerta-fundo: rgba(240, 113, 103, 0.10);
}
.throne-alert-bar .throne-alerta--aviso {
    --alerta-cor: #f5c04a;
    --alerta-borda: rgba(245, 192, 74, 0.30);
    --alerta-fundo: rgba(245, 192, 74, 0.08);
}
.throne-alert-bar .throne-alerta--info {
    --alerta-cor: #b9a6ff;
    --alerta-borda: rgba(185, 166, 255, 0.30);
    --alerta-fundo: rgba(185, 166, 255, 0.08);
}
.throne-alert-bar .throne-alerta__icone {
    color: var(--alerta-cor) !important;
}
.throne-alert-bar .throne-alerta__icone svg {
    width: 18px;
    height: 18px;
    display: block;
}
.throne-alert-bar .throne-alerta__acao {
    color: var(--alerta-cor);
    border: 1px solid var(--alerta-borda);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 600;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}
.throne-alert-bar .throne-alerta__acao:hover {
    background: var(--alerta-fundo);
}
.throne-alert-bar .throne-alerta__fechar {
    color: rgba(236, 233, 245, 0.55);
    transition: color 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}
.throne-alert-bar .throne-alerta__fechar:hover {
    color: #ece9f5;
}
.throne-alert-bar .throne-alerta-mais {
    color: #9aa3b2;
}
.throne-alert-bar .throne-alerta-mais button {
    color: inherit;
}
/* pulso só no ícone do alerta de perigo, curva própria e sem movimento para quem pede */
.throne-alert-bar .throne-alerta--perigo .throne-alerta__icone {
    animation: v138-alerta-pulso 2.4s cubic-bezier(0.6, 0.01, 0.05, 0.95) infinite;
}
@keyframes v138-alerta-pulso {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.55; }
}
@media (prefers-reduced-motion: reduce) {
    .throne-alert-bar .throne-alerta--perigo .throne-alerta__icone { animation: none; }
}
/* no aplicativo a pílula vem do tema; a gravidade aparece na borda */
body.fi-panel-adminapp .throne-alert-bar > div.throne-alerta--perigo { border-color: rgba(240, 113, 103, 0.40) !important; }
body.fi-panel-adminapp .throne-alert-bar > div.throne-alerta--aviso { border-color: rgba(245, 192, 74, 0.36) !important; }
body.fi-panel-adminapp .throne-alert-bar > div.throne-alerta--info { border-color: rgba(185, 166, 255, 0.36) !important; }

/* --------------------------------------------------------------------------
   Dinheiro e documento nunca quebram em duas linhas (site e aplicativo).
   -------------------------------------------------------------------------- */
body.fi-panel-admin .fi-ta-table td.fi-ta-cell:is([class*='-cents'], .fi-ta-cell-saldo, .fi-ta-cell-fee-percent, .fi-ta-cell-document) .fi-ta-text,
body.fi-panel-adminapp .fi-ta-table td.fi-ta-cell:is([class*='-cents'], .fi-ta-cell-saldo, .fi-ta-cell-fee-percent, .fi-ta-cell-document) .fi-ta-text,
body.fi-panel-admin .fi-ta-table td.fi-ta-cell:is([class*='-cents'], .fi-ta-cell-saldo, .fi-ta-cell-fee-percent, .fi-ta-cell-document) .fi-ta-text-item,
body.fi-panel-adminapp .fi-ta-table td.fi-ta-cell:is([class*='-cents'], .fi-ta-cell-saldo, .fi-ta-cell-fee-percent, .fi-ta-cell-document) .fi-ta-text-item {
    white-space: nowrap !important;
    overflow-wrap: normal !important;
    word-break: keep-all;
    font-variant-numeric: tabular-nums;
}

/* --------------------------------------------------------------------------
   Seller sites: no celular, lista no lugar da tabela de 10 colunas.
   A lista nasce com display:none inline; só esta folha mostra.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    .v138-sites-lista { display: block !important; }
    .v138-sites-tabela { display: none !important; }
}
.v138-sites-item {
    padding: 12px 16px;
    border-top: 1px solid rgba(138, 72, 245, 0.14);
}
.v138-sites-item:first-child { border-top: 0; }
.v138-sites-item__topo,
.v138-sites-item__nota {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
}
.v138-sites-item__dominio {
    min-width: 0;
    font: 500 13px/1.35 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    color: #d8c3ff;
    overflow-wrap: anywhere;
}
.v138-sites-item__valor {
    flex: none;
    font: 600 13px/1.35 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    color: #ece9f5;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.v138-sites-item__nota {
    margin-top: 4px;
    font-size: 12px;
    color: #9aa3b2;
}
.v138-sites-item__nota a {
    color: #b9a6ff;
    text-decoration: none;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.v138-sites-item__nota span { flex: none; }

/* --------------------------------------------------------------------------
   Aplicativo do admin: tabelas em cartão (só no celular).
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    /* Sellers e Equipe: a coluna com avatar, nome e e-mail vira o título do
       cartão na largura toda (antes ficava em 1/3 e o nome saía "Cod...").
       O e-mail solto repetia o que já está sob o nome. */
    body.fi-panel-adminapp .fi-resource-sellers .fi-ta-table tbody > tr > td.fi-ta-cell-display-name,
    body.fi-panel-adminapp .fi-resource-users .fi-ta-table tbody > tr > td.fi-ta-cell-display-name {
        grid-column: 1 / -1;
        order: -1;
        width: auto !important;
        padding-right: 36px !important;
    }
    body.fi-panel-adminapp .fi-resource-sellers .fi-ta-table tbody > tr > td.fi-ta-cell-display-name[data-th]::before,
    body.fi-panel-adminapp .fi-resource-users .fi-ta-table tbody > tr > td.fi-ta-cell-display-name[data-th]::before {
        display: none !important;
    }
    body.fi-panel-adminapp .fi-resource-sellers .fi-ta-table tbody > tr > td.fi-ta-cell-email {
        display: none !important;
    }

    /* Contas restritas: o nome do seller é o título do cartão. */
    body.fi-panel-adminapp .fi-ta-table tbody > tr > td.fi-ta-cell-display {
        grid-column: 1 / -1;
        order: -1;
        padding-right: 36px !important;
    }

    /* Badges sem corte nas pontas: o texto do badge é nó solto e herdava o
       nowrap + overflow:hidden do Filament. */
    body.fi-panel-adminapp .fi-ta-table tbody > tr > td.fi-ta-cell .fi-badge {
        width: auto !important;
        max-width: 100%;
        height: auto;
        white-space: normal !important;
        overflow: visible !important;
        justify-content: flex-start !important;
        text-align: left;
        overflow-wrap: anywhere;
        line-height: 1.25;
        padding-block: 3px;
    }

    /* Texto longo (detalhes, erro, endereço, navegador, tipo de evento) na
       largura toda do cartão, em mono pequeno, até 3 linhas. */
    body.fi-panel-adminapp .fi-ta-table tbody > tr > td.fi-ta-cell:is(.fi-ta-cell-properties, .fi-ta-cell-error-message, .fi-ta-cell-webhook-url, .fi-ta-cell-url, .fi-ta-cell-user-agent, .fi-ta-cell-event-type) {
        grid-column: 1 / -1;
    }
    body.fi-panel-adminapp .fi-ta-table tbody > tr > td.fi-ta-cell:is(.fi-ta-cell-properties, .fi-ta-cell-error-message, .fi-ta-cell-webhook-url, .fi-ta-cell-url, .fi-ta-cell-user-agent, .fi-ta-cell-event-type) .fi-ta-text-item {
        display: -webkit-box;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-clamp: 3;
        overflow: hidden;
        font: 500 0.74rem/1.45 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace !important;
        color: var(--ta-texto-2, #c4c8d4);
        overflow-wrap: anywhere;
    }
    /* Tipo do evento de fraude e cargo da equipe ganham espaço para o nome em português. */
    body.fi-panel-adminapp .fi-resource-fraud-events .fi-ta-table tbody > tr > td.fi-ta-cell-type,
    body.fi-panel-adminapp .fi-resource-activities .fi-ta-table tbody > tr > td.fi-ta-cell-description,
    body.fi-panel-adminapp .fi-resource-users .fi-ta-table tbody > tr > td.fi-ta-cell-user-type {
        grid-column: span 2;
    }

    /* Datas numa linha só, em mono. */
    body.fi-panel-adminapp .fi-ta-table tbody > tr > td.fi-ta-cell:is(.fi-ta-cell-created-at, .fi-ta-cell-sent-at, .fi-ta-cell-screened-at, .fi-ta-cell-processed-at, .fi-ta-cell-updated-at) .fi-ta-text-item {
        white-space: nowrap;
        font-family: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
        font-variant-numeric: tabular-nums;
    }

    /* Adquirentes e webhooks recebidos: valor alinhado à esquerda no cartão,
       como os demais (alignEnd e alignCenter ficavam soltos à direita e no meio). */
    body.fi-panel-adminapp :is(.fi-resource-acquirers, .fi-resource-webhook-events) .fi-ta-table tbody > tr > td.fi-ta-cell:is(.fi-align-end, .fi-align-center) > .fi-ta-col,
    body.fi-panel-adminapp :is(.fi-resource-acquirers, .fi-resource-webhook-events) .fi-ta-table tbody > tr > td.fi-ta-cell:is(.fi-align-end, .fi-align-center) .fi-ta-text {
        text-align: left !important;
        justify-content: flex-start !important;
        align-items: flex-start !important;
    }
}

/* --------------------------------------------------------------------------
   V138 · faixa de alertas no site: um alerta por vez; a linha "Mostrar mais"
   fica fina, no mesmo fundo da faixa, em vez de um vão solto sobre a página.
   -------------------------------------------------------------------------- */
body.fi-panel-admin .throne-alert-bar .throne-alerta-mais {
    display: flex;
    justify-content: flex-end;
    padding: 4px 24px 6px !important;
    background: #0f1118;
    border-bottom: 1px solid rgba(154, 163, 178, 0.14);
}
body.fi-panel-admin .throne-alert-bar .throne-alerta-mais button {
    font: 500 11px/1.4 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
    letter-spacing: 0.06em;
    text-decoration: none;
    color: #b9a6ff;
    transition: color 0.24s cubic-bezier(0.16, 1, 0.3, 1);
}
body.fi-panel-admin .throne-alert-bar .throne-alerta-mais button:hover { color: #ece9f5; }

/* --------------------------------------------------------------------------
   V138 · badges das telas de sellers, equipe, compliance e sistema (site).
   O tema dá a cada cor um tamanho: aviso e roxo grandes e com brilho, perigo
   e cinza pequenos. "Crítica" saía menor que "Média" e "Encerrada" menor que
   "Suspensa". Aqui todos têm o mesmo corpo e a cor diz a gravidade.
   -------------------------------------------------------------------------- */
body.fi-panel-admin :is(.fi-resource-sellers, .fi-resource-users, .fi-resource-shield-roles, .fi-resource-acquirers, .fi-resource-coaf-suspicious-operations, .fi-resource-pep-screenings, .fi-resource-fraud-rules, .fi-resource-fraud-events, .fi-resource-activities, .fi-resource-admin-action-approvals, .fi-resource-lgpd-requests, .fi-resource-feature-flags, .fi-resource-support-tickets, .fi-resource-webhook-events, .v138-b) :is(.fi-ta-cell, .fi-in-entry, .fi-ta-filter-indicators) .fi-badge {
    --v138-badge-cor: #a3abbd;
    --v138-badge-fundo: rgba(154, 163, 178, 0.08);
    --v138-badge-borda: rgba(154, 163, 178, 0.26);
    display: inline-flex;
    align-items: center;
    min-height: 22px;
    padding: 3px 9px !important;
    border-radius: 7px !important;
    border: 1px solid var(--v138-badge-borda) !important;
    background: var(--v138-badge-fundo) !important;
    color: var(--v138-badge-cor) !important;
    font: 600 0.68rem/1.25 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace !important;
    letter-spacing: 0.04em !important;
    text-transform: none;
    text-shadow: none !important;
    box-shadow: none !important;
}
body.fi-panel-admin :is(.fi-resource-sellers, .fi-resource-users, .fi-resource-shield-roles, .fi-resource-acquirers, .fi-resource-coaf-suspicious-operations, .fi-resource-pep-screenings, .fi-resource-fraud-rules, .fi-resource-fraud-events, .fi-resource-activities, .fi-resource-admin-action-approvals, .fi-resource-lgpd-requests, .fi-resource-feature-flags, .fi-resource-support-tickets, .fi-resource-webhook-events, .v138-b) :is(.fi-ta-cell, .fi-in-entry, .fi-ta-filter-indicators) .fi-badge.fi-color-primary {
    --v138-badge-cor: #cdb8ff;
    --v138-badge-fundo: rgba(138, 72, 245, 0.14);
    --v138-badge-borda: rgba(138, 72, 245, 0.42);
}
body.fi-panel-admin :is(.fi-resource-sellers, .fi-resource-users, .fi-resource-shield-roles, .fi-resource-acquirers, .fi-resource-coaf-suspicious-operations, .fi-resource-pep-screenings, .fi-resource-fraud-rules, .fi-resource-fraud-events, .fi-resource-activities, .fi-resource-admin-action-approvals, .fi-resource-lgpd-requests, .fi-resource-feature-flags, .fi-resource-support-tickets, .fi-resource-webhook-events, .v138-b) :is(.fi-ta-cell, .fi-in-entry, .fi-ta-filter-indicators) .fi-badge.fi-color-info {
    --v138-badge-cor: #b9a6ff;
    --v138-badge-fundo: rgba(185, 166, 255, 0.08);
    --v138-badge-borda: rgba(185, 166, 255, 0.30);
}
body.fi-panel-admin :is(.fi-resource-sellers, .fi-resource-users, .fi-resource-shield-roles, .fi-resource-acquirers, .fi-resource-coaf-suspicious-operations, .fi-resource-pep-screenings, .fi-resource-fraud-rules, .fi-resource-fraud-events, .fi-resource-activities, .fi-resource-admin-action-approvals, .fi-resource-lgpd-requests, .fi-resource-feature-flags, .fi-resource-support-tickets, .fi-resource-webhook-events, .v138-b) :is(.fi-ta-cell, .fi-in-entry, .fi-ta-filter-indicators) .fi-badge.fi-color-success {
    --v138-badge-cor: #6ee7b7;
    --v138-badge-fundo: rgba(16, 185, 129, 0.10);
    --v138-badge-borda: rgba(16, 185, 129, 0.36);
}
body.fi-panel-admin :is(.fi-resource-sellers, .fi-resource-users, .fi-resource-shield-roles, .fi-resource-acquirers, .fi-resource-coaf-suspicious-operations, .fi-resource-pep-screenings, .fi-resource-fraud-rules, .fi-resource-fraud-events, .fi-resource-activities, .fi-resource-admin-action-approvals, .fi-resource-lgpd-requests, .fi-resource-feature-flags, .fi-resource-support-tickets, .fi-resource-webhook-events, .v138-b) :is(.fi-ta-cell, .fi-in-entry, .fi-ta-filter-indicators) .fi-badge.fi-color-warning {
    --v138-badge-cor: #f5c04a;
    --v138-badge-fundo: rgba(245, 192, 74, 0.10);
    --v138-badge-borda: rgba(245, 192, 74, 0.36);
}
body.fi-panel-admin :is(.fi-resource-sellers, .fi-resource-users, .fi-resource-shield-roles, .fi-resource-acquirers, .fi-resource-coaf-suspicious-operations, .fi-resource-pep-screenings, .fi-resource-fraud-rules, .fi-resource-fraud-events, .fi-resource-activities, .fi-resource-admin-action-approvals, .fi-resource-lgpd-requests, .fi-resource-feature-flags, .fi-resource-support-tickets, .fi-resource-webhook-events, .v138-b) :is(.fi-ta-cell, .fi-in-entry, .fi-ta-filter-indicators) .fi-badge.fi-color-danger {
    --v138-badge-cor: #f8a39b;
    --v138-badge-fundo: rgba(240, 113, 103, 0.13);
    --v138-badge-borda: rgba(240, 113, 103, 0.46);
}
body.fi-panel-admin :is(.fi-resource-sellers, .fi-resource-users, .fi-resource-shield-roles, .fi-resource-acquirers, .fi-resource-coaf-suspicious-operations, .fi-resource-pep-screenings, .fi-resource-fraud-rules, .fi-resource-fraud-events, .fi-resource-activities, .fi-resource-admin-action-approvals, .fi-resource-lgpd-requests, .fi-resource-feature-flags, .fi-resource-support-tickets, .fi-resource-webhook-events, .v138-b) :is(.fi-ta-cell, .fi-in-entry, .fi-ta-filter-indicators) .fi-badge > * {
    color: inherit !important;
}

/* --------------------------------------------------------------------------
   V138 · dinheiro em Geist Mono tabular também na ficha do seller e nas
   colunas de saldo sem "_cents" no nome (Contas restritas misturava as duas
   fontes na mesma linha).
   -------------------------------------------------------------------------- */
:is(body.fi-panel-admin, body.fi-panel-adminapp) .fi-resource-sellers .fi-grid-col[wire\:key*="_cents"] :is(.fi-in-text, .fi-in-text-item),
:is(body.fi-panel-admin, body.fi-panel-adminapp) .fi-resource-sellers .fi-grid-col[wire\:key*="_percent"] :is(.fi-in-text, .fi-in-text-item),
:is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-b .fi-ta-table td.fi-ta-cell:is([class*='-cents'], .fi-ta-cell-saldo) .fi-ta-text-item {
    font-family: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace !important;
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum" 1, "zero" 1;
    white-space: nowrap !important;
}

/* --------------------------------------------------------------------------
   V138 · Funções: a coluna "Guard" é do pacote de permissões e sempre diz
   "web". Jargão sem informação; sai da lista nos dois painéis.
   -------------------------------------------------------------------------- */
:is(body.fi-panel-admin, body.fi-panel-adminapp) .fi-resource-shield-roles .fi-ta-table :is(th.fi-ta-header-cell-guard-name, td.fi-ta-cell-guard-name) {
    display: none !important;
}

/* --------------------------------------------------------------------------
   V138 · cartões do aplicativo (até 767px), segunda leva.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    /* e-mail e nome do seller numa linha, com reticências (antes quebrava no meio) */
    body.fi-panel-adminapp .fi-ta-table td.fi-ta-cell .v138-linha-email,
    body.fi-panel-adminapp .fi-ta-table td.fi-ta-cell .v138-seller-mini .truncate {
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
    }
    body.fi-panel-adminapp .fi-ta-table td.fi-ta-cell .v138-seller-mini {
        max-width: none !important;
    }
}

/* --------------------------------------------------------------------------
   V138 · listas no lugar de tabela largas no celular (Teste de webhooks e
   Webhook de vendas). A lista nasce com display:none inline; esta folha mostra
   a lista e esconde a tabela abaixo de 768 px. Sem a folha, a tabela continua.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-lista-cel { display: block !important; }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-tabela-desk { display: none !important; }

    /* campos com 16 px e 44 px de altura: o Safari do iPhone dá zoom em campo menor */
    :is(body.fi-panel-admin, body.fi-panel-adminapp) :is(.v138-campo, .v138-logs select, .v138-logs input) {
        font-size: 16px !important;
        min-height: 44px;
    }
}

/* --------------------------------------------------------------------------
   V138 · Sites dos sellers (site): células um pouco mais justas e cabeçalho
   sem quebra ("Volume (TPV)" quebrava em duas linhas e a última coluna saía
   da tela em 1440 px).
   -------------------------------------------------------------------------- */
.v138-sites-tabela table :is(th, td) {
    padding-left: 12px !important;
    padding-right: 12px !important;
}
.v138-sites-tabela table th { white-space: nowrap; }
@media (max-width: 767px) {
    /* V138 · filtros de Sites dos sellers sem "grudar" no topo do celular */
    body.fi-panel-adminapp .v138-sites-filtros { position: static !important; }
}

/* --------------------------------------------------------------------------
   V138 · cartões do aplicativo, terceira leva: colunas secundárias fora.
   As tabelas marcam essas colunas com ->visibleFrom('md'), e o Filament põe a
   classe md:fi-visible na célula. O tema do aplicativo força display:flex
   !important em toda célula do cartão, o que anulava o esconder do Filament;
   aqui a regra vence pela especificidade. No site o Filament já resolve.
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    html body.fi-panel-adminapp .fi-ta-ctn .fi-ta-table > tbody > tr.fi-ta-row > td.fi-ta-cell:is(.md\:fi-visible, .lg\:fi-visible) {
        display: none !important;
    }
    /* Funções: "Alterado em" repetia a mesma data em todo cartão */
    html body.fi-panel-adminapp .fi-resource-shield-roles .fi-ta-ctn .fi-ta-table > tbody > tr.fi-ta-row > td.fi-ta-cell-updated-at {
        display: none !important;
    }
}

/* --------------------------------------------------------------------------
   V138 · Saúde do sistema no celular: duas colunas, número menor. Um cartão
   por linha deixava a tela com 1.200 px de rolagem para oito números.
   -------------------------------------------------------------------------- */
@media (max-width: 639px) {
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-saude {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-saude > .throne-health-card {
        padding: 14px !important;
        border-radius: 14px !important;
    }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-saude > .throne-health-card:hover {
        transform: none !important;
        scale: none !important;
    }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-saude .v138-saude__rotulo {
        font-size: 10px !important;
        letter-spacing: 0.1em !important;
        line-height: 1.35;
    }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-saude .v138-saude__valor {
        font-size: 20px !important;
    }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-saude .v138-saude__detalhe {
        font-size: 11px !important;
        line-height: 1.4 !important;
    }
}

/* --------------------------------------------------------------------------
   V138 · Painel de compliance na tela larga: três cartões em cima e dois
   embaixo, ocupando a linha inteira (antes sobrava um vão no fim).
   -------------------------------------------------------------------------- */
@media (min-width: 1280px) {
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-compliance-grid {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-compliance-grid > section { grid-column: span 2; }
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-compliance-grid > section:nth-child(n + 4) { grid-column: span 3; }
}

/* --------------------------------------------------------------------------
   V138 · Logs do sistema no celular: os três filtros na largura toda (o de
   nível ficava pela metade, solto à esquerda).
   -------------------------------------------------------------------------- */
@media (max-width: 767px) {
    :is(body.fi-panel-admin, body.fi-panel-adminapp) .v138-logs > .flex > div {
        flex: 1 1 100% !important;
        max-width: none !important;
        min-width: 0 !important;
    }
}
