/*
 * V1.03.8.67 — PALHETA UNIVERSAL DE MODAIS E TABELAS
 * Camada final, propositalmente carregada por último.
 * Objetivo: qualquer modal/tabela estrutural deve herdar a paleta ativa sem
 * alterar cores semânticas de status, alarmes, semáforos ou criticidade.
 */

/* Overlays: sempre deixam o menu visível, desfocado e tonalizado pela paleta. */
html[data-sgo-palette] body :is(
  .modal-root:not(.hidden),
  .modal-backdrop,
  .modal-overlay,
  .dialog-backdrop,
  .dialog-overlay,
  .report-overlay,
  .alocar-hard-modal-wrap,
  .alocar-hard-modal-wrap-v2,
  .det-tv-overlay,
  [class*="modal-overlay"],
  [class*="modal-backdrop"]
){
  background:color-mix(in srgb,var(--sgo-theme-950) 62%,transparent)!important;
  -webkit-backdrop-filter:blur(12px) saturate(.92)!important;
  backdrop-filter:blur(12px) saturate(.92)!important;
}

/* Superfícies de diálogo. */
html[data-sgo-palette] body :is(
  .modal-root .modal,
  .modal-root .modal-card,
  .modal-root .modal-content,
  .modal-root .modal-panel,
  .modal-root .dialog-card,
  .modal-root [role="dialog"],
  .alocar-hard-modal,
  .alocar-hard-modal-v2,
  .det-tv-shell,
  .report-view,
  .report-shell,
  .report-card
){
  background:var(--sgo-surface)!important;
  color:var(--sgo-ink)!important;
  border-color:color-mix(in srgb,var(--sgo-line) 88%,var(--sgo-theme-100))!important;
  box-shadow:0 30px 96px rgba(var(--sgo-accent-rgb),.22)!important;
}

/* Cabeçalhos de todo diálogo/relatório. */
html[data-sgo-palette] body :is(
  .modal-root .modal-header,
  .modal-root .modal-head,
  .modal-root .modal-top,
  .modal-root .dialog-header,
  .alocar-hard-modal > header,
  .alocar-hard-modal-v2 > header,
  .det-tv-header,
  .report-header,
  .report-hero
){
  background:linear-gradient(118deg,var(--sgo-theme-950),var(--sgo-theme-900) 60%,var(--sgo-theme-700))!important;
  border-color:rgba(var(--sgo-accent-rgb),.28)!important;
  color:#fff!important;
}
html[data-sgo-palette] body :is(
  .modal-root .modal-header,
  .modal-root .modal-head,
  .modal-root .modal-top,
  .modal-root .dialog-header,
  .alocar-hard-modal > header,
  .alocar-hard-modal-v2 > header,
  .det-tv-header,
  .report-header,
  .report-hero
) :is(h1,h2,h3,h4,strong,b){color:#fff!important}
html[data-sgo-palette] body :is(
  .modal-root .modal-header,
  .modal-root .modal-head,
  .modal-root .modal-top,
  .modal-root .dialog-header,
  .alocar-hard-modal > header,
  .alocar-hard-modal-v2 > header,
  .det-tv-header,
  .report-header,
  .report-hero
) :is(p,small,span,label){color:color-mix(in srgb,#fff 82%,var(--sgo-theme-100))!important}

/* Corpos, rodapés e painéis internos. */
html[data-sgo-palette] body :is(
  .modal-root .modal-body,
  .modal-root .modal-actions,
  .modal-root .modal-footer,
  .modal-root .dialog-body,
  .modal-root .dialog-footer,
  .modal-root .toolbar-line,
  .modal-root .info-card,
  .modal-root .selection-item,
  .modal-root .field,
  .modal-root .filters,
  .modal-root .filter-panel,
  .modal-root .table-shell,
  .modal-root .table-wrapper,
  .alocar-hard-list,
  .alocar-hard-list-v2,
  .det-tv-kpis,
  .det-tv-status,
  .det-tv-process,
  .report-toolbar,
  .report-filters,
  .report-footer
){
  border-color:var(--sgo-line)!important;
  color:var(--sgo-ink)!important;
}
html[data-sgo-palette] body :is(
  .modal-root .modal-body,
  .modal-root .dialog-body,
  .modal-root .table-shell,
  .modal-root .table-wrapper,
  .report-body
){background:var(--sgo-surface)!important}
html[data-sgo-palette] body :is(
  .modal-root .modal-actions,
  .modal-root .modal-footer,
  .modal-root .dialog-footer,
  .modal-root .toolbar-line,
  .modal-root .filters,
  .modal-root .filter-panel,
  .report-toolbar,
  .report-filters,
  .report-footer
){background:var(--sgo-soft)!important}

/* Inputs e filtros em qualquer modal. */
html[data-sgo-palette] body :is(
  .modal-root,
  .alocar-hard-modal,
  .alocar-hard-modal-v2,
  .det-tv-shell,
  .report-view,
  .report-shell
) :is(input,select,textarea,.ms-filter-button,.multi-select-trigger):not([type="color"]){
  background:var(--sgo-surface)!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
}
html[data-sgo-palette] body :is(
  .modal-root,
  .alocar-hard-modal,
  .alocar-hard-modal-v2,
  .det-tv-shell,
  .report-view,
  .report-shell
) :is(input,select,textarea,.ms-filter-button,.multi-select-trigger):focus,
html[data-sgo-palette] body :is(.modal-root,.report-view,.report-shell) .multi-select-shell.open .multi-select-trigger{
  border-color:var(--sgo-theme-700)!important;
  box-shadow:0 0 0 3px rgba(var(--sgo-accent-rgb),.13)!important;
}

/* Popovers de seleção. */
html[data-sgo-palette] body :is(.multi-select-popover,.ms-filter-panel,.select-popover,.dropdown-menu){
  background:color-mix(in srgb,var(--sgo-surface) 97%,var(--sgo-theme-50))!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
  box-shadow:0 18px 48px rgba(var(--sgo-accent-rgb),.18)!important;
}
html[data-sgo-palette] body :is(.multi-select-option,.ms-filter-option,.dropdown-item){
  border-color:var(--sgo-line)!important;
  color:var(--sgo-ink)!important;
}
html[data-sgo-palette] body :is(.multi-select-option,.ms-filter-option,.dropdown-item):hover{
  background:var(--sgo-theme-50)!important;
  border-color:var(--sgo-theme-700)!important;
}
html[data-sgo-palette] body :is(.multi-select-option.selected,.multi-select-option.is-selected,.ms-filter-option.selected,.ms-filter-option.is-selected){
  background:var(--sgo-theme-100)!important;
  color:var(--sgo-theme-900)!important;
  border-color:var(--sgo-theme-700)!important;
}

/*
 * Tabelas globais. Cabeçalho, células, zebra, hover e rodapé acompanham a
 * paleta. Pílulas/badges/status dentro das células continuam semânticos.
 */
html[data-sgo-palette] body table{
  --sgo-table-surface:var(--sgo-surface);
  --sgo-table-alt:color-mix(in srgb,var(--sgo-surface) 91%,var(--sgo-theme-50));
  --sgo-table-hover:color-mix(in srgb,var(--sgo-surface) 77%,var(--sgo-theme-100));
  border-color:var(--sgo-line)!important;
  color:var(--sgo-ink)!important;
}
html[data-sgo-palette] body table thead,
html[data-sgo-palette] body table thead tr,
html[data-sgo-palette] body table thead th{
  background:linear-gradient(180deg,var(--sgo-theme-900),var(--sgo-theme-950))!important;
  color:#fff!important;
  border-color:color-mix(in srgb,var(--sgo-theme-100) 22%,transparent)!important;
}
html[data-sgo-palette] body table tbody tr:not(.is-critical):not(.is-good):not(.card-status-blue-v125):not(.card-status-danger-v125):not(.card-status-ok-v125):not(.card-status-purple-v125):not(.card-status-warning-v125):not(.mobile-report-danger-v13):not(.mobile-report-info-v13):not(.mobile-report-ok-v13):not(.mobile-report-warning-v13):not(.sgo-status-danger-v846):not(.sgo-status-ok-v846):not(.sgo-status-warning-v846) td:not(.ok):not(.bad):not(.warn):not(.excelente):not(.disp-ok):not(.disp-bad):not(.disp-warn):not(.disp-excelente):not(.red):not(.green):not(.orange):not(.yellow):not(.blue):not(.gray){
  background:var(--sgo-table-surface)!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
}
html[data-sgo-palette] body table tbody tr:nth-child(even):not(.is-critical):not(.is-good):not(.card-status-blue-v125):not(.card-status-danger-v125):not(.card-status-ok-v125):not(.card-status-purple-v125):not(.card-status-warning-v125):not(.mobile-report-danger-v13):not(.mobile-report-info-v13):not(.mobile-report-ok-v13):not(.mobile-report-warning-v13):not(.sgo-status-danger-v846):not(.sgo-status-ok-v846):not(.sgo-status-warning-v846) td:not(.ok):not(.bad):not(.warn):not(.excelente):not(.disp-ok):not(.disp-bad):not(.disp-warn):not(.disp-excelente):not(.red):not(.green):not(.orange):not(.yellow):not(.blue):not(.gray){
  background:var(--sgo-table-alt)!important;
}
html[data-sgo-palette] body table tbody tr:hover:not(.is-critical):not(.is-good):not(.card-status-blue-v125):not(.card-status-danger-v125):not(.card-status-ok-v125):not(.card-status-purple-v125):not(.card-status-warning-v125):not(.mobile-report-danger-v13):not(.mobile-report-info-v13):not(.mobile-report-ok-v13):not(.mobile-report-warning-v13):not(.sgo-status-danger-v846):not(.sgo-status-ok-v846):not(.sgo-status-warning-v846) td:not(.ok):not(.bad):not(.warn):not(.excelente):not(.disp-ok):not(.disp-bad):not(.disp-warn):not(.disp-excelente):not(.red):not(.green):not(.orange):not(.yellow):not(.blue):not(.gray){
  background:var(--sgo-table-hover)!important;
}
html[data-sgo-palette] body table tfoot,
html[data-sgo-palette] body table tfoot td,
html[data-sgo-palette] body table tfoot th{
  background:color-mix(in srgb,var(--sgo-soft) 84%,var(--sgo-theme-50))!important;
  color:var(--sgo-theme-900)!important;
  border-color:var(--sgo-line)!important;
}

/* Títulos, labels e paginação de tabela. */
html[data-sgo-palette] body :is(.table-title,.table-heading,.report-title,.modal-root .field > span,.modal-root label > span){
  color:var(--sgo-theme-900)!important;
}
html[data-sgo-palette] body :is(.pagination,.table-pagination,.modal-pager) button:not(.danger){
  background:var(--sgo-surface)!important;
  color:var(--sgo-theme-900)!important;
  border-color:var(--sgo-line)!important;
}
html[data-sgo-palette] body :is(.pagination,.table-pagination,.modal-pager) button:not(:disabled):not(.danger):hover,
html[data-sgo-palette] body :is(.pagination,.table-pagination) button.active{
  background:var(--sgo-theme-50)!important;
  color:var(--sgo-theme-900)!important;
  border-color:var(--sgo-theme-700)!important;
}

/* Botões primários estruturais. */
html[data-sgo-palette] body :is(
  .modal-root .btn.primary,
  .modal-root .button-primary,
  .modal-root .primary-button,
  .report-print-btn,
  .report-copy-btn,
  .alocar-hard-close,
  .det-tv-close
){
  background:linear-gradient(135deg,var(--sgo-theme-900),var(--sgo-theme-700))!important;
  color:#fff!important;
  border-color:var(--sgo-theme-800)!important;
}

/* Scrollbars em áreas de tabela/modal. */
html[data-sgo-palette] body :is(.table-wrapper,.table-shell,.modal-body,.report-body){
  scrollbar-color:color-mix(in srgb,var(--sgo-theme-700) 55%,var(--sgo-line)) var(--sgo-soft);
}

/* Famílias de modal que vivem fora de #modalRoot ou são injetadas em runtime. */
html[data-sgo-palette] body :is(.fac-modal-backdrop,.status-modal-v166,.r80-modal-back){
  background:color-mix(in srgb,var(--sgo-theme-950) 62%,transparent)!important;
  -webkit-backdrop-filter:blur(12px) saturate(.92)!important;
  backdrop-filter:blur(12px) saturate(.92)!important;
}
html[data-sgo-palette] body .monit-dialog::backdrop{
  background:color-mix(in srgb,var(--sgo-theme-950) 62%,transparent)!important;
  -webkit-backdrop-filter:blur(12px) saturate(.92)!important;
  backdrop-filter:blur(12px) saturate(.92)!important;
}
html[data-sgo-palette] body :is(
  .fac-modal,.fac-result-modal,
  .monit-dialog-shell,
  .status-modal-card-v166,
  .r80-modal,
  .det-modal-premium,.det-modal-setorizado,.det-modal-hub,.det-modal-pane,
  .det-order-types-modal,.det-oficina-modal-p16,.det-oficina-modal-v111,.det-oficina-modal-v113,
  .det-tratativa-modal-card,
  .report-modal-shell
){
  background:var(--sgo-surface)!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
  box-shadow:0 30px 96px rgba(var(--sgo-accent-rgb),.22)!important;
}
html[data-sgo-palette] body :is(
  .fac-modal>header,
  .monit-dialog-head,
  .status-modal-head-v166,
  .r80-head,
  .det-tratativa-modal-head,
  .report-modal-header
){
  background:linear-gradient(118deg,var(--sgo-theme-950),var(--sgo-theme-900) 60%,var(--sgo-theme-700))!important;
  color:#fff!important;
  border-color:rgba(var(--sgo-accent-rgb),.28)!important;
}
html[data-sgo-palette] body :is(
  .fac-modal>header,
  .monit-dialog-head,
  .status-modal-head-v166,
  .r80-head,
  .det-tratativa-modal-head,
  .report-modal-header
) :is(h1,h2,h3,h4,strong,b){color:#fff!important}
html[data-sgo-palette] body :is(
  .fac-modal>header,
  .monit-dialog-head,
  .status-modal-head-v166,
  .r80-head,
  .det-tratativa-modal-head,
  .report-modal-header
) :is(p,small,span,label){color:color-mix(in srgb,#fff 82%,var(--sgo-theme-100))!important}
html[data-sgo-palette] body :is(
  .fac-modal-body,.fac-modal-edit,.fac-detail,
  .monit-dialog-body,.monit-detail-card,.monit-timeline-item,
  .status-modal-body-v166,.status-modal-foot-v166,
  .r80-body,.r80-panel,.r80-table,
  .det-modal-hub-intro,.det-modal-pane-head,
  .storage-modal,.storage-modal-v2,.storage-modal-p25,
  .storage-modal-summary>div,.storage-modal-summary-v2>div
){
  background:var(--sgo-soft)!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
}
html[data-sgo-palette] body :is(.fac-detail,.monit-detail-card,.r80-table>*,.storage-modal-summary>div,.storage-modal-summary-v2>div){
  background:var(--sgo-surface)!important;
}
html[data-sgo-palette] body :is(.fac-modal,.monit-dialog-shell,.status-modal-card-v166,.r80-modal,.report-modal-shell) :is(input,select,textarea){
  background:var(--sgo-surface)!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
}
html[data-sgo-palette] body :is(.fac-close,.monit-dialog-close,.status-modal-close-v166,.r80-close){
  background:color-mix(in srgb,var(--sgo-surface) 94%,var(--sgo-theme-50))!important;
  color:var(--sgo-theme-900)!important;
  border-color:var(--sgo-line)!important;
}

/* Painéis de tabela específicos que antes mantinham fundo fixo. */
html[data-sgo-palette] body :is(
  .compact-modal-table-shell,.consultas-report-table-shell,.disp-detail-table-shell,
  .disp-table-shell,.fac-table-shell,.gos-table-shell,.mat-consulta-table-wrap,
  .mat-table-panel,.materiais-table-shell,.monit-audit-table-wrap,
  .rel-paradas-table-shell,.status-table-shell-v166,.storage-table-wrap-p25,
  .usuarios-table-wrap,.table-shell,.table-wrap
){
  background:var(--sgo-surface)!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
}

/* Dialog HTML nativo, inclusive futuros módulos. */
html[data-sgo-palette] body dialog{
  background:var(--sgo-surface)!important;
  color:var(--sgo-ink)!important;
  border-color:var(--sgo-line)!important;
}
html[data-sgo-palette] body dialog::backdrop{
  background:color-mix(in srgb,var(--sgo-theme-950) 62%,transparent)!important;
  -webkit-backdrop-filter:blur(12px) saturate(.92)!important;
  backdrop-filter:blur(12px) saturate(.92)!important;
}
