/*
 * Máximo Gestão 0.7.2 — padronização dos selects em todo o CRM.
 * Respeita controles nativos, eventos React, formulários e layouts mobile.
 * Carregado APÓS os CSS anteriores para neutralizar larguras obsoletas.
 */
:root {
  --mg72-border: #dbe3ed;
  --mg72-text: #35445b;
  --mg72-ring: #b4232a;
}

/* Campos nativos: leitura, foco e alvos adequados, sem mexer em JS/valores. */
#root select:not([multiple]),
:is(.maxfix-mask,.maxv4-overlay,.mv5-overlay,.mv6-mask,.mv7-overlay) select:not([multiple]) {
  box-sizing: border-box;
  max-width: 100%;
  min-height: 36px;
  font-family: inherit;
  font-size: max(12px, 0.8rem);
  line-height: 1.4;
  color: var(--mg72-text);
  cursor: pointer;
  text-overflow: ellipsis;
  white-space: nowrap;
}
#root select:not([multiple]):focus-visible,
:is(.maxfix-mask,.maxv4-overlay,.mv5-overlay,.mv6-mask,.mv7-overlay) select:not([multiple]):focus-visible {
  outline: 2px solid var(--mg72-ring);
  outline-offset: 2px;
}
#root select:not([multiple]) option,
:is(.maxfix-mask,.maxv4-overlay,.mv5-overlay,.mv6-mask,.mv7-overlay) select:not([multiple]) option {
  color: #27384e;
  background: #fff;
  font-size: 13px;
}

/* Filtro de período do cabeçalho: a caixa e o seletor devem ter largura real. */
#root .period-select {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 8px;
  width: 205px;
  min-width: 205px;
  max-width: 100%;
  min-height: 40px;
  height: auto;
  padding: 0 12px;
  border-radius: 9px;
  box-sizing: border-box;
}
#root .period-select select {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 38px;
  padding: 0;
  background: transparent;
  border: 0;
  font-size: 12px;
  line-height: 1.4;
}
#root .period-select > svg {flex-shrink: 0;}
#root .page-actions {flex-wrap: wrap;gap: 10px;}

/* Filtros financeiros/estoque/compras: o select não pode ficar com 70–100px. */
#root .finance-filter {
  width: 220px !important;
  min-width: 220px !important;
  max-width: 100%;
  height: 40px;
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  padding: 0 12px;
  border-radius: 9px;
  box-sizing: border-box;
}
#root .finance-filter select {
  display: block;
  flex: 1 1 0;
  width: 100%;
  min-width: 0 !important;
  max-width: none;
  min-height: 38px;
  padding: 0;
  font-size: 12px;
  background: transparent;
  border: 0;
}
#root .finance-filter > svg {flex: 0 0 auto;}
#root .finance-toolbar-left,
#root .operations-toolbar .finance-toolbar-left {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

/* O filtro de responsável comercial também precisa mostrar nomes inteiros. */
#root .commercial-owner-filter {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 200px;
  min-width: 200px;
  max-width: 100%;
  min-height: 40px;
  padding: 0 12px;
  border-radius: 9px;
  box-sizing: border-box;
}
#root .commercial-owner-filter select {
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  min-height: 38px;
  font-size: 12px;
  border: 0;
  background: transparent;
}
#root .commercial-owner-filter > svg {flex: 0 0 auto;}

/* Auditoria: não espremê-la em oito colunas de 100px. */
#root .audit-filters {
  display: grid;
  grid-template-columns: repeat(4,minmax(155px,1fr));
  gap: 12px;
  align-items: end;
  padding: 16px;
}
#root .audit-filters > label:first-child {grid-column: span 2;}
#root .audit-filters label {gap: 7px;font-size: 11px;min-width: 0;}
#root .audit-filters :is(select,input) {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  min-height: 40px;
  padding: 8px 12px;
  font-size: 12px;
  border-radius: 8px;
}

/* Seletores de paginação, filtros extras e consultas de registros. */
.mv6-controls-filters select,
.mv5-filters select,
.mv7-toolbar select {
  min-height: 40px !important;
  padding: 8px 12px !important;
  font-size: 12px !important;
  border-radius: 8px !important;
  background-color: #fff;
}
.mv6-controls-filters select {min-width: 120px;}
.mv5-filters select {width:100%;min-width:0;}
.mv7-toolbar select {min-width: 170px;}
.mv6-controls-filters label {min-width: 0;}
.mv5-filters {grid-template-columns:minmax(160px,1fr) minmax(190px,2fr) minmax(165px,1fr) 110px;}

/* Formulários: largura fluida dentro do campo, sem estouro da janela. */
:is(.maxfix-form,.maxv4-field,.finance-form-grid,.mv7-role-form) select,
:is(.maxfix-form,.maxv4-field,.finance-form-grid,.mv7-role-form) input {
  box-sizing: border-box;
  max-width: 100%;
}
:is(.maxfix-form,.maxv4-field,.finance-form-grid,.mv7-role-form) select {
  width: 100%;
  min-width: 0;
  min-height: 42px;
  padding: 9px 12px;
  border: 1px solid var(--mg72-border);
  border-radius: 9px;
  background-color: #fff;
  font-size: 13px;
}

@media (max-width: 1050px) {
  #root .audit-filters {grid-template-columns:repeat(3,minmax(145px,1fr));}
  .mv5-filters {grid-template-columns:repeat(2,minmax(0,1fr));}
  .mv5-filters .search {grid-column:span 2;}
}
@media (max-width: 720px) {
  #root .period-select {width: 195px;min-width: 195px;}
  #root .finance-filter {width: 100% !important;min-width: 0 !important;flex: 1 1 175px;}
  #root .commercial-owner-filter {width: 100%;min-width: 0;}
  #root .audit-filters {grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:10px;}
  #root .audit-filters > label:first-child {grid-column:span 2;}
  #root .finance-toolbar-left .finance-search {flex: 1 1 100%;min-width: 0;}
  .mv5-filters {grid-template-columns:repeat(2,minmax(0,1fr));}
  .mv6-controls-filters {width:100%;flex-wrap:wrap;}
}
@media (max-width: 410px) {
  #root .audit-filters {grid-template-columns:1fr;}
  #root .audit-filters > label:first-child {grid-column:auto;}
  .mv5-filters {grid-template-columns:1fr;}
  .mv5-filters .search {grid-column:auto;}
  #root .page-actions {align-items:stretch;}
}

/* Sobrescreve a regra genérica de #root em formulários sem afetar selects inline. */
#root :is(.maxfix-form,.maxv4-field,.finance-form-grid,.mv7-role-form) select:not([multiple]){min-height:42px;}
