/**
 * ERPAvel AG Grid Theme — slate palette + indigo accent
 */

/* ═══════════════════════════════════════════════════════
   VARIÁVEIS — MODO CLARO
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine {
    --ag-background-color:               #ffffff;
    --ag-header-background-color:        #f8fafc;
    --ag-odd-row-background-color:       #f8fafc;
    --ag-row-hover-color:                #eef2ff;
    --ag-selected-row-background-color:  rgba(99,102,241,.10);
    --ag-foreground-color:               #1e293b;
    --ag-secondary-foreground-color:     #64748b;
    --ag-header-foreground-color:        #334155;
    --ag-border-color:                   #e2e8f0;
    --ag-row-border-color:               #f1f5f9;
    --ag-header-column-separator-color:  #e2e8f0;
    --ag-menu-background-color:          #ffffff;
    --ag-popup-background-color:         #ffffff;
    --ag-control-panel-background-color: #f8fafc;
    --ag-font-family:                    var(--font-family, -apple-system, 'Segoe UI', Roboto, sans-serif);
    --ag-font-size:                      0.84rem;
    --ag-grid-size:                      5px;
    --ag-list-item-height:               36px;
    --ag-row-height:                     40px;
    --ag-header-height:                  44px;
    --ag-pagination-button-color:        var(--primary-color, #667eea);
    --ag-range-selection-border-color:   var(--primary-color, #667eea);
    --ag-input-focus-border-color:       var(--primary-color, #667eea);
    --ag-checkbox-checked-color:         var(--primary-color, #667eea);
    --ag-card-shadow:                    0 1px 4px rgba(0,0,0,.06);
    --ag-popup-shadow:                   0 4px 20px rgba(0,0,0,.10);
    --ag-input-border-color:             #cbd5e1;
    --ag-disabled-foreground-color:      #94a3b8;
    /* Sobrescreve o azul Material padrão do Alpine com nosso indigo */
    --ag-alpine-active-color:            var(--primary-color, #667eea);
    --ag-input-container-background-color: #f8fafc;
    --ag-selected-color:                 var(--primary-color, #667eea);
}

/* ═══════════════════════════════════════════════════════
   VARIÁVEIS — MODO ESCURO (slate palette)
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine-dark {
    --ag-background-color:               #1e293b;   /* slate-800 */
    --ag-header-background-color:        #1e293b;   /* igual ao body e ao footer */
    --ag-odd-row-background-color:       #243347;   /* zebra sutil */
    --ag-row-hover-color:                #2a3f5a;   /* indigo-tinted hover */
    --ag-selected-row-background-color:  rgba(129,140,248,.18);
    --ag-foreground-color:               #e2e8f0;   /* slate-200 */
    --ag-secondary-foreground-color:     #94a3b8;   /* slate-400 */
    --ag-header-foreground-color:        #cbd5e1;   /* slate-300 */
    --ag-border-color:                   #2d3f55;
    --ag-row-border-color:               #1e293b;   /* invisível — zebra faz a separação */
    --ag-header-column-separator-color:  #334155;
    --ag-menu-background-color:          #1a2535;
    --ag-popup-background-color:         #1a2535;
    --ag-control-panel-background-color: #172033;
    --ag-side-panel-border-color:        #2d3f55;
    --ag-modal-overlay-background-color: rgba(0,0,0,.65);
    --ag-font-family:                    var(--font-family, -apple-system, 'Segoe UI', Roboto, sans-serif);
    --ag-font-size:                      0.84rem;
    --ag-grid-size:                      5px;
    --ag-list-item-height:               36px;
    --ag-row-height:                     40px;
    --ag-header-height:                  44px;
    --ag-pagination-button-color:        #818cf8;   /* indigo-400 */
    --ag-range-selection-border-color:   #818cf8;
    --ag-input-focus-border-color:       #818cf8;
    --ag-checkbox-checked-color:         #818cf8;
    --ag-card-shadow:                    0 2px 12px rgba(0,0,0,.5);
    --ag-popup-shadow:                   0 8px 28px rgba(0,0,0,.65);
    --ag-input-border-color:             #334155;
    --ag-disabled-foreground-color:      #475569;
    /* Sobrescreve o azul Material padrão do Alpine com nosso indigo */
    --ag-alpine-active-color:            #818cf8;
    --ag-input-container-background-color: #243347;
    --ag-selected-color:                 #818cf8;
}

/* ═══════════════════════════════════════════════════════
   ROOT WRAPPER — fundo e outline
   Definir background só no container raiz evita quebrar o
   posicionamento absoluto das linhas no Infinite Row Model.
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine-dark {
    background-color: #1e293b;
}
/* Remove a borda de foco vermelha/azul do browser no container */
.ag-theme-alpine-dark .ag-root-wrapper,
.ag-theme-alpine .ag-root-wrapper {
    outline: none !important;
    border: none !important;
}
/* Viewports internas sem !important — AG Grid gerencia layout interno */
.ag-theme-alpine-dark .ag-body-viewport,
.ag-theme-alpine-dark .ag-center-cols-viewport {
    background-color: #1e293b;
}

/* ═══════════════════════════════════════════════════════
   HEADER
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine .ag-header {
    border-bottom: 2px solid #e2e8f0;
    box-shadow: 0 1px 3px rgba(0,0,0,.04);
}
.ag-theme-alpine-dark .ag-header,
.ag-theme-alpine-dark .ag-header-row,
.ag-theme-alpine-dark .ag-header-viewport,
.ag-theme-alpine-dark .ag-header-container,
.ag-theme-alpine-dark .ag-pinned-left-header,
.ag-theme-alpine-dark .ag-pinned-right-header {
    background-color: #1e293b !important;
    border-bottom: 1px solid rgba(100,116,139,.3);
}

.ag-theme-alpine .ag-header-cell,
.ag-theme-alpine-dark .ag-header-cell {
    font-weight: 600;
    font-size: 0.77rem;
    text-transform: uppercase;
    letter-spacing: .05em;
}

/* Menu button (⋮) e filter button — sempre visíveis com opacidade reduzida */
.ag-theme-alpine .ag-header-cell-menu-button,
.ag-theme-alpine .ag-header-cell-filter-button {
    opacity: 0.35;
    transition: opacity 0.15s;
}
.ag-theme-alpine .ag-header-cell:hover .ag-header-cell-menu-button,
.ag-theme-alpine .ag-header-cell:hover .ag-header-cell-filter-button,
.ag-theme-alpine .ag-header-cell-filter-button.ag-filter-active {
    opacity: 1;
}

.ag-theme-alpine-dark .ag-header-cell-menu-button,
.ag-theme-alpine-dark .ag-header-cell-filter-button {
    opacity: 0.35;
    transition: opacity 0.15s;
}
.ag-theme-alpine-dark .ag-header-cell:hover .ag-header-cell-menu-button,
.ag-theme-alpine-dark .ag-header-cell:hover .ag-header-cell-filter-button,
.ag-theme-alpine-dark .ag-header-cell-filter-button.ag-filter-active {
    opacity: 1;
}

/* Sort icons */
.ag-theme-alpine-dark .ag-sort-indicator-icon,
.ag-theme-alpine-dark .ag-header-icon {
    color: #64748b;
    transition: color 0.15s;
}
.ag-theme-alpine-dark .ag-header-cell:hover .ag-sort-indicator-icon,
.ag-theme-alpine-dark .ag-header-cell:hover .ag-header-icon {
    color: #e2e8f0;
}
.ag-theme-alpine-dark .ag-header-cell[aria-sort] .ag-sort-indicator-icon {
    color: #818cf8;
}

/* ═══════════════════════════════════════════════════════
   LINHAS — zebra, hover, seleção
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine-dark .ag-row {
    border-bottom-color: rgba(45,63,85,.5);
    transition: background-color 0.1s;
}
.ag-theme-alpine-dark .ag-row-odd {
    background-color: #243347;
}
.ag-theme-alpine-dark .ag-row-even {
    background-color: #1e293b;
}
.ag-theme-alpine-dark .ag-row:hover {
    background-color: #2a3f5a !important;
}
.ag-theme-alpine-dark .ag-row-selected {
    background-color: rgba(129,140,248,.18) !important;
}

.ag-theme-alpine .ag-row {
    border-bottom-color: #f1f5f9;
    transition: background-color 0.1s;
}
.ag-theme-alpine .ag-row:hover {
    background-color: #eef2ff !important;
}
.ag-theme-alpine .ag-row-selected {
    background-color: rgba(99,102,241,.08) !important;
}

/* ═══════════════════════════════════════════════════════
   CÉLULAS — alinhamento vertical centralizado
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine .ag-cell,
.ag-theme-alpine-dark .ag-cell {
    display: flex !important;
    align-items: center !important;
}
/* display:flex acima cancela o text-align nativo do AG Grid — sem isso,
   colunas type:'rightAligned'/'center' ficam com cabeçalho alinhado mas
   valor da célula sempre à esquerda. */
.ag-theme-alpine .ag-cell.ag-right-aligned-cell,
.ag-theme-alpine-dark .ag-cell.ag-right-aligned-cell {
    justify-content: flex-end !important;
}
.ag-theme-alpine .ag-cell.ag-center-aligned-cell,
.ag-theme-alpine-dark .ag-cell.ag-center-aligned-cell {
    justify-content: center !important;
}
.ag-theme-alpine .ag-cell-focus,
.ag-theme-alpine-dark .ag-cell-focus {
    border: none !important;
    box-shadow: none !important;
}

/* ═══════════════════════════════════════════════════════
   COLUNA DE AÇÕES
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine .ag-cell[col-id="_acoes"],
.ag-theme-alpine-dark .ag-cell[col-id="_acoes"] {
    overflow: visible;
    z-index: 1;
}

/* ═══════════════════════════════════════════════════════
   STATUS BADGES (cores gerenciadas pelo formdefault.css)
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine .status-badge,
.ag-theme-alpine-dark .status-badge {
    font-size: 0.73rem;
    padding: 2px 9px;
}

/* ═══════════════════════════════════════════════════════
   PAGINAÇÃO
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine .ag-paging-panel {
    border-top: 1px solid #e2e8f0;
    background-color: #f8fafc;
    font-size: 0.81rem;
    padding: 6px 14px;
    color: #64748b;
}
.ag-theme-alpine-dark .ag-paging-panel {
    border-top: 1px solid rgba(100,116,139,.3);
    background-color: #1e293b;
    font-size: 0.81rem;
    padding: 6px 14px;
    color: #94a3b8;
}

.ag-theme-alpine-dark .ag-paging-button {
    color: #64748b;
    transition: color 0.15s;
}
.ag-theme-alpine-dark .ag-paging-button:not([disabled]):hover {
    color: #e2e8f0;
}
.ag-theme-alpine-dark .ag-paging-button[disabled] {
    opacity: 0.25;
}

/* Page size selector */
.ag-theme-alpine-dark .ag-paging-page-size .ag-select .ag-picker-field-wrapper {
    background-color: #243347;
    border-color: #2d3f55;
    border-radius: 6px;
    color: #cbd5e1;
}

/* ═══════════════════════════════════════════════════════
   MENU DE COLUNA
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine-dark .ag-menu,
.ag-theme-alpine-dark .ag-menu-list {
    background-color: #1e293b;
    border: 1px solid rgba(100,116,139,.25);
    border-radius: 8px;
    box-shadow: 0 8px 28px rgba(0,0,0,.65);
    overflow: hidden;
}
.ag-theme-alpine-dark .ag-menu-option {
    padding: 7px 16px;
    color: #e2e8f0;
    font-size: 0.83rem;
    transition: background-color 0.1s;
}
.ag-theme-alpine-dark .ag-menu-option:hover,
.ag-theme-alpine-dark .ag-menu-option-active {
    background-color: #243347;
}
.ag-theme-alpine-dark .ag-menu-option-icon {
    color: #64748b;
    min-width: 20px;
    transition: color 0.15s;
}
.ag-theme-alpine-dark .ag-menu-option:hover .ag-menu-option-icon {
    color: #818cf8;
}
.ag-theme-alpine-dark .ag-menu-separator {
    border-top: 1px solid #2d3f55;
    margin: 4px 0;
}

/* Aba "Choose Columns" */
.ag-theme-alpine-dark .ag-column-select-panel {
    background-color: #172033;
    padding: 4px 0;
}
.ag-theme-alpine-dark .ag-column-select-column,
.ag-theme-alpine-dark .ag-column-select-column-group {
    color: #e2e8f0;
    font-size: 0.83rem;
    padding: 4px 10px;
}
.ag-theme-alpine-dark .ag-column-select-column:hover,
.ag-theme-alpine-dark .ag-column-select-column-group:hover {
    background-color: #243347;
}

/* ═══════════════════════════════════════════════════════
   PAINEL DE FILTRO DA COLUNA
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine-dark .ag-filter {
    background-color: #1a2535 !important;
    border: 1px solid rgba(100,116,139,.25) !important;
    border-radius: 10px !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.70) !important;
    padding: 12px !important;
    min-width: 240px !important;
}
.ag-theme-alpine-dark .ag-filter-filter,
.ag-theme-alpine-dark .ag-text-field-input {
    background-color: #243347 !important;
    border: 1px solid #334155 !important;
    border-radius: 6px !important;
    color: #e2e8f0 !important;
    font-size: 0.83rem !important;
    padding: 6px 10px !important;
    width: 100%;
    box-sizing: border-box;
}
.ag-theme-alpine-dark .ag-text-field-input:focus {
    border-color: #818cf8 !important;
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(129,140,248,.25) !important;
}
.ag-theme-alpine-dark .ag-filter-apply-panel {
    border-top: 1px solid #2d3f55 !important;
    padding-top: 10px !important;
    margin-top: 10px !important;
    display: flex !important;
    gap: 6px !important;
    justify-content: flex-end !important;
}
/* Botões Clear/Apply — base */
.ag-theme-alpine-dark .ag-standard-button {
    background-color: transparent !important;
    border: 1px solid #475569 !important;
    border-radius: 6px !important;
    color: #94a3b8 !important;
    cursor: pointer !important;
    font-size: 0.8rem !important;
    font-weight: 500 !important;
    padding: 5px 14px !important;
    transition: all 0.15s !important;
    line-height: 1.4 !important;
}
.ag-theme-alpine-dark .ag-standard-button:hover {
    background-color: #2d3f55 !important;
    color: #e2e8f0 !important;
    border-color: #64748b !important;
}
/* Botão Apply — primeiro filho do apply-panel  OU  ref="btApply" */
.ag-theme-alpine-dark .ag-filter-apply-panel .ag-standard-button:first-child,
.ag-theme-alpine-dark [ref="btApply"] {
    background-color: #818cf8 !important;
    border-color: #818cf8 !important;
    color: #fff !important;
}
.ag-theme-alpine-dark .ag-filter-apply-panel .ag-standard-button:first-child:hover,
.ag-theme-alpine-dark [ref="btApply"]:hover {
    background-color: #6d78f0 !important;
    border-color: #6d78f0 !important;
}

/* ═══════════════════════════════════════════════════════
   AG GRID v32 — CUSTOM PICKER / SELECT
   (dropdown "Contains / Equals / …" nos filtros de coluna)
   ═══════════════════════════════════════════════════════ */

/* dark ------------------------------------------------- */
.ag-theme-alpine-dark .ag-select .ag-picker-field-wrapper {
    background-color: #243347 !important;
    border: 1px solid #334155 !important;
    border-radius: 6px !important;
    color: #e2e8f0 !important;
    min-height: 32px !important;
    padding: 0 8px !important;
    display: flex !important;
    align-items: center !important;
    gap: 4px !important;
    cursor: pointer !important;
    transition: border-color 0.15s, box-shadow 0.15s !important;
}
.ag-theme-alpine-dark .ag-select:hover .ag-picker-field-wrapper {
    border-color: #475569 !important;
}
.ag-theme-alpine-dark .ag-select.ag-picker-has-popup .ag-picker-field-wrapper,
.ag-theme-alpine-dark .ag-select.ag-focused .ag-picker-field-wrapper {
    border-color: #818cf8 !important;
    box-shadow: 0 0 0 2px rgba(129,140,248,.20) !important;
}
.ag-theme-alpine-dark .ag-select .ag-picker-field-display {
    color: #e2e8f0 !important;
    font-size: 0.83rem !important;
    flex: 1 !important;
}
.ag-theme-alpine-dark .ag-select .ag-picker-field-icon {
    color: #64748b !important;
}
/* Dropdown list */
.ag-theme-alpine-dark .ag-select-list {
    background-color: #1a2535 !important;
    border: 1px solid rgba(100,116,139,.25) !important;
    border-radius: 8px !important;
    box-shadow: 0 8px 28px rgba(0,0,0,.65) !important;
    overflow: hidden !important;
    padding: 4px 0 !important;
}
.ag-theme-alpine-dark .ag-select-list-item {
    color: #e2e8f0 !important;
    font-size: 0.83rem !important;
    padding: 7px 14px !important;
    cursor: pointer !important;
    transition: background-color 0.1s !important;
}
.ag-theme-alpine-dark .ag-select-list-item:hover,
.ag-theme-alpine-dark .ag-select-list-item.ag-active-item {
    background-color: #243347 !important;
    color: #a5b4fc !important;
}

/* light ------------------------------------------------ */
.ag-theme-alpine .ag-select .ag-picker-field-wrapper {
    background-color: #ffffff;
    border: 1px solid #cbd5e1;
    border-radius: 6px;
    color: #1e293b;
    min-height: 32px;
    padding: 0 8px;
    display: flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.ag-theme-alpine .ag-select:hover .ag-picker-field-wrapper {
    border-color: #94a3b8;
}
.ag-theme-alpine .ag-select.ag-picker-has-popup .ag-picker-field-wrapper {
    border-color: var(--primary-color, #667eea);
    box-shadow: 0 0 0 2px rgba(99,102,241,.15);
}
.ag-theme-alpine .ag-select .ag-picker-field-display {
    color: #1e293b;
    font-size: 0.83rem;
    flex: 1;
}
.ag-theme-alpine .ag-select .ag-picker-field-icon {
    color: #94a3b8;
}
.ag-theme-alpine .ag-select-list {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,.10);
    overflow: hidden;
    padding: 4px 0;
}
.ag-theme-alpine .ag-select-list-item {
    color: #1e293b;
    font-size: 0.83rem;
    padding: 7px 14px;
    cursor: pointer;
}
.ag-theme-alpine .ag-select-list-item:hover,
.ag-theme-alpine .ag-select-list-item.ag-active-item {
    background-color: #f1f5f9;
    color: var(--primary-color, #667eea);
}

/* Ícone de filtro ativo — indigo accent */
.ag-theme-alpine-dark .ag-header-cell-filter-button.ag-filter-active .ag-icon {
    color: #818cf8;
}
.ag-theme-alpine .ag-header-cell-filter-button.ag-filter-active .ag-icon {
    color: var(--primary-color, #667eea);
}

/* Menu modo claro */
.ag-theme-alpine .ag-menu,
.ag-theme-alpine .ag-menu-list {
    background-color: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    box-shadow: 0 4px 20px rgba(0,0,0,.10);
    overflow: hidden;
}
/* ag-menu-option (legacy) + ag-menu-item (columnMenu: 'new') */
.ag-theme-alpine .ag-menu-option,
.ag-theme-alpine .ag-menu-item {
    padding: 7px 16px;
    font-size: 0.83rem;
    color: #1e293b;
}
.ag-theme-alpine .ag-menu-option:hover,
.ag-theme-alpine .ag-menu-option-active,
.ag-theme-alpine .ag-menu-item:hover,
.ag-theme-alpine .ag-menu-item-active {
    background-color: #f1f5f9;
}
.ag-theme-alpine .ag-menu-separator {
    border-top: 1px solid #e2e8f0;
    margin: 4px 0;
}

/* ═══════════════════════════════════════════════════════
   NOVO MENU CONTEXTUAL DE COLUNA (columnMenu: 'new') — dark
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine-dark .ag-menu-item {
    padding: 7px 16px;
    color: #e2e8f0;
    font-size: 0.83rem;
    transition: background-color 0.1s;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
.ag-theme-alpine-dark .ag-menu-item:hover,
.ag-theme-alpine-dark .ag-menu-item-active {
    background-color: #243347;
}
.ag-theme-alpine-dark .ag-menu-item-disabled {
    color: #475569 !important;
    cursor: default;
}
.ag-theme-alpine-dark .ag-menu-item-icon {
    color: #64748b;
    min-width: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ag-theme-alpine-dark .ag-menu-item:hover .ag-menu-item-icon {
    color: #818cf8;
}
.ag-theme-alpine-dark .ag-menu-item-part-icon {
    color: #64748b;
}
.ag-theme-alpine-dark .ag-menu-item:hover .ag-menu-item-part-icon {
    color: #818cf8;
}

/* ═══════════════════════════════════════════════════════
   NOVO MENU CONTEXTUAL DE COLUNA (columnMenu: 'new') — light
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine .ag-menu-item {
    padding: 7px 16px;
    color: #1e293b;
    font-size: 0.83rem;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}
.ag-theme-alpine .ag-menu-item:hover,
.ag-theme-alpine .ag-menu-item-active {
    background-color: #f1f5f9;
}
.ag-theme-alpine .ag-menu-item-disabled {
    color: #94a3b8 !important;
    cursor: default;
}
.ag-theme-alpine .ag-menu-item-icon {
    color: #64748b;
    min-width: 18px;
}
.ag-theme-alpine .ag-menu-item:hover .ag-menu-item-icon {
    color: var(--primary-color, #667eea);
}

/* ═══════════════════════════════════════════════════════
   SCROLLBARS — modo escuro, discreta
   ═══════════════════════════════════════════════════════ */
.ag-theme-alpine-dark ::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}
.ag-theme-alpine-dark ::-webkit-scrollbar-track {
    background: transparent;
}
.ag-theme-alpine-dark ::-webkit-scrollbar-thumb {
    background: #334155;
    border-radius: 3px;
}
.ag-theme-alpine-dark ::-webkit-scrollbar-thumb:hover {
    background: #475569;
}
