/*
 * SGA - acabamento visual unificado dos cards de indicadores.
 *
 * Esta folha altera exclusivamente a carcaça dos indicadores: fundo, borda,
 * raio, sombra e faixa lateral. Tipografia, ícones, valores, textos, espaçamento
 * interno e estrutura continuam sob responsabilidade de cada módulo.
 */

html body :is(
    .grid.stats > .stat:not(.sga-standard-metric),
    .grid.stats2 > .stat:not(.sga-standard-metric),
    .auth-metrics > .auth-metric,
    .noc-hero-metrics > .noc-metric,
    .sga-alert-summary > .sga-summary-card,
    .sga-agent-summary > .sga-summary-card,
    .ng-primary-kpis > .ng-kpi,
    .ng-metric-grid > div,
    .ng-wu-metrics > div,
    .noc-kpis > .noc-kpi,
    .noc-kpi-grid > .noc-kpi,
    .nb-kpis > .nb-kpi,
    .nb-provider-metrics > div,
    .us-kpis > .us-kpi,
    .us-modal-metrics > div,
    .sr-kpis > article,
    .wp-metrics > article,
    .wp-job-metrics > article,
    .version-metrics > .version-metric,
    .audit-kpi-grid > .audit-kpi,
    .chat-metrics > .metric-card,
    .production-metrics > div,
    .flow-console-kpis > .flow-kpi,
    .auto-kpis > div,
    .inv-kpis > div,
    .health-overview-grid > .health-kpi,
    .monitor-summary > article
) {
    --sga-indicator-accent: 249, 115, 22;
    border: 1px solid rgba(var(--sga-indicator-accent), .30) !important;
    border-radius: 18px !important;
    background: linear-gradient(135deg, rgba(31, 32, 37, .98), rgba(15, 16, 20, .98)) !important;
    box-shadow:
        inset -4px 0 0 rgba(var(--sga-indicator-accent), .92),
        0 18px 44px rgba(var(--sga-indicator-accent), .16),
        0 12px 28px rgba(0, 0, 0, .20) !important;
}

/* Remove os halos/círculos decorativos herdados dos cards antigos. */
html body :is(
    .grid.stats > .stat:not(.sga-standard-metric),
    .grid.stats2 > .stat:not(.sga-standard-metric),
    .auth-metrics > .auth-metric,
    .noc-hero-metrics > .noc-metric,
    .sga-alert-summary > .sga-summary-card,
    .sga-agent-summary > .sga-summary-card,
    .ng-primary-kpis > .ng-kpi,
    .ng-metric-grid > div,
    .ng-wu-metrics > div,
    .noc-kpis > .noc-kpi,
    .noc-kpi-grid > .noc-kpi,
    .nb-kpis > .nb-kpi,
    .nb-provider-metrics > div,
    .us-kpis > .us-kpi,
    .us-modal-metrics > div,
    .sr-kpis > article,
    .wp-metrics > article,
    .wp-job-metrics > article,
    .version-metrics > .version-metric,
    .audit-kpi-grid > .audit-kpi,
    .chat-metrics > .metric-card,
    .production-metrics > div,
    .flow-console-kpis > .flow-kpi,
    .auto-kpis > div,
    .inv-kpis > div,
    .health-overview-grid > .health-kpi,
    .monitor-summary > article
)::after {
    content: none !important;
    display: none !important;
}

html body :is(
    .grid.stats > .stat:not(.sga-standard-metric),
    .grid.stats2 > .stat:not(.sga-standard-metric),
    .noc-hero-metrics > .noc-metric,
    .sga-alert-summary > .sga-summary-card,
    .sga-agent-summary > .sga-summary-card,
    .ng-primary-kpis > .ng-kpi,
    .ng-metric-grid > div,
    .ng-wu-metrics > div,
    .noc-kpis > .noc-kpi,
    .noc-kpi-grid > .noc-kpi,
    .nb-kpis > .nb-kpi,
    .nb-provider-metrics > div,
    .us-kpis > .us-kpi,
    .us-modal-metrics > div,
    .sr-kpis > article,
    .wp-metrics > article,
    .wp-job-metrics > article,
    .version-metrics > .version-metric,
    .audit-kpi-grid > .audit-kpi,
    .chat-metrics > .metric-card,
    .production-metrics > div,
    .flow-console-kpis > .flow-kpi,
    .auto-kpis > div,
    .inv-kpis > div,
    .health-overview-grid > .health-kpi,
    .monitor-summary > article
):is(
    .greenish,
    .online,
    .success,
    .good,
    .ok,
    .metric-online,
    .nb-kpi-success,
    .us-kpi-online,
    .green
) {
    --sga-indicator-accent: 34, 197, 94;
}

html body :is(
    .grid.stats > .stat:not(.sga-standard-metric),
    .grid.stats2 > .stat:not(.sga-standard-metric),
    .noc-hero-metrics > .noc-metric,
    .sga-alert-summary > .sga-summary-card,
    .sga-agent-summary > .sga-summary-card,
    .ng-primary-kpis > .ng-kpi,
    .ng-metric-grid > div,
    .ng-wu-metrics > div,
    .noc-kpis > .noc-kpi,
    .noc-kpi-grid > .noc-kpi,
    .nb-kpis > .nb-kpi,
    .nb-provider-metrics > div,
    .us-kpis > .us-kpi,
    .us-modal-metrics > div,
    .sr-kpis > article,
    .wp-metrics > article,
    .wp-job-metrics > article,
    .version-metrics > .version-metric,
    .audit-kpi-grid > .audit-kpi,
    .chat-metrics > .metric-card,
    .production-metrics > div,
    .flow-console-kpis > .flow-kpi,
    .auto-kpis > div,
    .inv-kpis > div,
    .health-overview-grid > .health-kpi,
    .monitor-summary > article
):is(
    .yellowish,
    .warning,
    .warn,
    .attention,
    .pending,
    .nb-kpi-warning,
    .us-kpi-warning,
    .ng-kpi-warning
) {
    --sga-indicator-accent: 245, 158, 11;
}

html body :is(
    .grid.stats > .stat:not(.sga-standard-metric),
    .grid.stats2 > .stat:not(.sga-standard-metric),
    .noc-hero-metrics > .noc-metric,
    .sga-alert-summary > .sga-summary-card,
    .sga-agent-summary > .sga-summary-card,
    .ng-primary-kpis > .ng-kpi,
    .ng-metric-grid > div,
    .ng-wu-metrics > div,
    .noc-kpis > .noc-kpi,
    .noc-kpi-grid > .noc-kpi,
    .nb-kpis > .nb-kpi,
    .nb-provider-metrics > div,
    .us-kpis > .us-kpi,
    .us-modal-metrics > div,
    .sr-kpis > article,
    .wp-metrics > article,
    .wp-job-metrics > article,
    .version-metrics > .version-metric,
    .audit-kpi-grid > .audit-kpi,
    .chat-metrics > .metric-card,
    .production-metrics > div,
    .flow-console-kpis > .flow-kpi,
    .auto-kpis > div,
    .inv-kpis > div,
    .health-overview-grid > .health-kpi,
    .monitor-summary > article
):is(
    .critical,
    .danger,
    .offline,
    .bad,
    .failed,
    .error,
    .nb-kpi-error,
    .us-kpi-offline,
    .ng-kpi-danger
) {
    --sga-indicator-accent: 239, 68, 68;
}

/*
 * Correspondência fina entre a carcaça e o indicador visual de cada módulo.
 * Os seletores com :has() cobrem cards cujo estado existe apenas no ponto filho.
 */
html body .grid.stats > .stat.blueish:not(.sga-standard-metric),
html body .grid.stats2 > .stat.blueish:not(.sga-standard-metric),
html body .noc-hero-metrics > .noc-metric.clients {
    --sga-indicator-accent: 91, 140, 255 !important;
}

html body .noc-hero-metrics > .noc-metric.remote,
html body .noc-kpi-grid > .noc-kpi:has(> .dot.clients),
html body .wp-metrics > article.metric-agents {
    --sga-indicator-accent: 96, 165, 250 !important;
}

html body .audit-kpi-grid > .audit-kpi.info,
html body .noc-kpi-grid > .noc-kpi:has(> .dot.remote) {
    --sga-indicator-accent: 56, 189, 248 !important;
}

html body .wp-metrics > article.metric-devices {
    --sga-indicator-accent: 34, 211, 238 !important;
}

html body .chamados-sga-page .hours-stats > .stat.blueish,
html body .sga-alert-summary > .sga-summary-card.not-applicable,
html body .sga-agent-summary > .sga-summary-card.clients {
    --sga-indicator-accent: 168, 85, 247 !important;
}

html body .noc-hero-metrics > .noc-metric.backup-documents,
html body .noc-kpi-grid > .noc-kpi:has(> .dot.command) {
    --sga-indicator-accent: 167, 139, 250 !important;
}

html body .audit-kpi-grid > .audit-kpi.purple {
    --sga-indicator-accent: 139, 92, 246 !important;
}

html body .sga-alert-summary > .sga-summary-card.muted {
    --sga-indicator-accent: 168, 162, 158 !important;
}

html body .noc-hero-metrics > .noc-metric.disk,
html body .noc-kpi-grid > .noc-kpi:has(> .dot.total),
html body .wp-metrics > article.metric-patches {
    --sga-indicator-accent: 249, 115, 22 !important;
}

html body .noc-hero-metrics > .noc-metric.alerts,
html body .noc-kpi-grid > .noc-kpi:has(> .dot.offline),
html body .noc-kpi-grid > .noc-kpi:has(> .dot.alert) {
    --sga-indicator-accent: 239, 68, 68 !important;
}

html body .noc-kpi-grid > .noc-kpi:has(> .dot.online) {
    --sga-indicator-accent: 34, 197, 94 !important;
}

html body .noc-kpi-grid > .noc-kpi:has(> .dot.attention),
html body .noc-kpi-grid > .noc-kpi:has(> .dot.disk),
html body .wp-metrics > article.metric-reboot {
    --sga-indicator-accent: 245, 158, 11 !important;
}

/* O filtro ativo continua reconhecível sem abandonar a carcaça padronizada. */
html body .noc-hero-metrics > .noc-metric.active {
    box-shadow:
        inset -4px 0 0 rgba(var(--sga-indicator-accent), .92),
        0 0 0 2px rgba(var(--sga-indicator-accent), .14),
        0 18px 44px rgba(var(--sga-indicator-accent), .18),
        0 12px 28px rgba(0, 0, 0, .20) !important;
}
