/* =======================================================
   ml-promocoes.css - Estilos do modulo ML Promocoes
   Precificacao - WebApp MDP v2
   ======================================================= */

/* --- Resumo de contagem -------------------------------- */
.promo-resumo {
  display: flex;
  gap: 16px;
  margin-bottom: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.promo-resumo__aceitar { color: #16A34A; font-weight: 600; }
.promo-resumo__limite  { color: #D97706; font-weight: 600; }
.promo-resumo__recusar { color: #DC2626; font-weight: 600; }
.promo-resumo__acoes   { margin-left: auto; }

/* --- Filtros ------------------------------------------- */
.promo-filtros {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.promo-filtros__label { font-size: 12px; color: var(--text-muted); display: flex; flex-direction: column; gap: 4px; }
.promo-filtros__checks { display: flex; gap: 10px; align-items: center; }
.promo-filtros__check  { display: flex; align-items: center; gap: 4px; font-size: 12px; color: var(--text-muted); cursor: pointer; }
.promo-filtros__check input { cursor: pointer; }
.promo-filtros__verif {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 8px;
}
.promo-filtros__label-verif { font-size: 11px; color: var(--text-muted); }

/* --- Tabela principal ---------------------------------- */
.promo-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px;
}
.promo-table th,
.promo-table td {
  padding-left: 12px;
  padding-right: 12px;
}
.promo-table th {
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 8px 14px;
  border-bottom: 2px solid var(--border, #374151);
  border-right: 1px solid var(--border, #374151);
  white-space: nowrap;
}
.promo-table th:last-child { border-right: none; }
.promo-table td {
  padding: 2px 14px;
  border-bottom: 1px solid var(--border, #374151);
  border-right: 1px solid var(--border, #374151);
  vertical-align: middle;
}
.promo-table th.td-right,
.promo-table th.td-center { text-align: center; }
.promo-table .td-right      { text-align: center; min-width: 80px; }
.promo-table .td-right-bold { text-align: center; font-weight: 600; min-width: 80px; }

.promo-table td:nth-child(10) { text-align: center; }
.promo-table td:nth-child(11) { text-align: center; }
.promo-table td:last-child { border-right: none; }

.promo-grupo-par   { background: transparent; }
.promo-grupo-impar { background: #EFF3F8; }
.promo-grupo-impar td { border-bottom-color: #D8E2EE; border-right-color: #D8E2EE; }
.promo-grupo-inicio td { border-top: 2px solid var(--border, #374151); }

/* --- Celulas especificas ------------------------------- */
.promo-mlb {
  font-weight: 600;
  white-space: nowrap;
  width: 100px;
  text-align: center;
  vertical-align: middle;
  position: relative;
}
.promo-table .td-right strong { display: block; text-align: center; }
/* --- Celula MLB mesclada --------------------------- */
.promo-mlb__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  padding: 4px 0;
  gap: 3px;
}
.promo-mlb__topo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.promo-mlb__foto {
  display: block;
  width: 80px;
  height: 80px;
  object-fit: contain;
  background: #fff;
  border-radius: 4px;
  cursor: zoom-in;
}
.promo-mlb__codigo {
  font-weight: 600;
  font-size: 12px;
  white-space: nowrap;
}
.promo-mlb__canal { margin-top: -2px; margin-bottom: 2px; }
.promo-mlb__btns  { display: flex; gap: 3px; align-items: center; flex-wrap: nowrap; justify-content: center; margin-top: 4px; padding-top: 0; }
.promo-mlb__btn-acao {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  font-size: 16px;
  line-height: 1;
  font-weight: 400;
  background: var(--bg2);
  color: var(--text-muted);
  border: 1px solid var(--border2);
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  white-space: nowrap;
}
.promo-mlb__btn-acao:hover { background: var(--bg3); color: var(--text-primary); border-color: var(--border); }

.promo-table td.promo-produto { font-size: 12px; vertical-align: middle; text-align: center; padding: 1px 14px; line-height: 1; }
.promo-produto__supplier { color: var(--text-muted); font-size: 11px; }
.promo-produto__badges { display: flex; gap: 5px; justify-content: center; margin-top: 8px; }
.promo-produto__badge-custo {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  border-radius: 3px;
  padding: 3px 8px;
  background: #e2e8f0;
  color: #475569;
  border: none;
}
.promo-produto__fonte-custo {
  display: inline-block;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  border-radius: 3px;
  padding: 3px 8px;
  border: none;
}
.promo-produto__fonte-custo--simga   { background: #fff3e0; color: #c05000; }
.promo-produto__fonte-custo--precoga { background: #e8eeff; color: #003399; }
.promo-produto__fonte-custo--bruto   { background: #e2e8f0; color: #475569; }
.promo-motivo { font-size: 11px; color: var(--text-muted); }
.promo-motivo-inline { font-size: 11px; color: var(--text-primary); font-weight: 600; opacity: 0.75; margin-top: 2px; line-height: 1.2; max-width: 220px; text-align: center; }
.promo-badge-dir { display: inline-flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 20px; vertical-align: middle; min-width: 100px; gap: 3px; }
.promo-badge-dir--up     { background: #DCFCE7; color: #15803D; }
.promo-badge-dir--mid    { background: #FEF9C3; color: #854D0E; }
.promo-badge-dir--down   { background: #FEE2E2; color: #991B1B; }
.promo-badge-dir--neutro { background: transparent; color: var(--text-muted); border: 1px solid var(--border, #374151); }
.promo-em-vigor { font-size: 10px; color: #D97706; font-weight: 600; display: block; }
.promo-ativo-dot { color: #16A34A; font-size: 12px; margin-left: 5px; vertical-align: middle; }
.promo-agendada-dot { color: #2563EB; font-size: 12px; margin-left: 5px; vertical-align: middle; }
.promo-preco-linha { display: inline-flex; align-items: center; justify-content: center; }
.promo-btns-ativo { display: flex; flex-direction: row; gap: 6px; align-items: center; justify-content: center; width: 100%; }
.promo-bloco-metricas { display: flex; align-items: center; gap: 2px; margin-top: 0; flex-wrap: nowrap; justify-content: center; }
.promo-bloco-metricas--posads { flex-wrap: wrap; }
.promo-celula__preco    { height: 20px; display: flex; align-items: center; justify-content: center; overflow: hidden; font-weight: 600; }
.promo-celula__metricas { display: block; text-align: center; margin-top: 4px; }
.promo-metrica { font-size: 11px; font-weight: 400; white-space: nowrap; color: var(--text-primary); }
.promo-metrica--green { color: #16A34A; }
.promo-metrica--yellow { color: #D97706; }
.promo-metrica--red { color: #DC2626; }
.promo-metricas-sep { font-size: 10px; color: var(--text-primary); font-weight: 700; }
.promo-metrica-label { font-size: 11px; font-weight: 700; color: var(--text-primary); }
.promo-metrica-badge { font-size: 10px; font-weight: 700; padding: 1px 5px; border-radius: 3px; white-space: nowrap; }
.promo-metrica-badge.promo-metrica--green  { background: #DCFCE7; color: #15803D; }
.promo-metrica-badge.promo-metrica--yellow { background: #FEF9C3; color: #854D0E; }
.promo-metrica-badge.promo-metrica--red    { background: #FEE2E2; color: #991B1B; }
.promo-preco-piso { font-weight: 600; }
.promo-preco-piso--ok { color: var(--text-primary); }
.promo-preco-piso--abaixo { color: var(--text-primary); }
.promo-preco-piso-vazio { color: var(--text-muted); }
.promo-lucro-pos { color: #16A34A; }
.promo-lucro-neg { color: #DC2626; }

/* --- Badges -------------------------------------------- */
.promo-badge-rec,
.promo-badge-status {
  display: inline-block;
  border-radius: 4px;
  white-space: nowrap;
  color: #fff;
  font-weight: 700;
}
.promo-badge-rec    { font-size: 10px; padding: 1px 7px; border-radius: 20px; }
.promo-badge-status { font-size: 10px; font-weight: 600; padding: 1px 6px; border-radius: 20px; }

.promo-badge-rec--aceitar { background: #16A34A; }
.promo-badge-rec--limite  { background: #D97706; }
.promo-badge-rec--recusar { background: #DC2626; }
.promo-badge-rec--outro   { background: #6B7280; }

.promo-badge-status--candidate { background: #6B7280; }
.promo-badge-status--started   { background: #16A34A; }
.promo-badge-status--pending   { background: #D97706; }
.promo-badge-status--outro     { background: #6B7280; }

/* --- Tabela de log ------------------------------------- */
.promo-table--log { font-size: 12px; }
.promo-log__data  { font-size: 11px; color: var(--color-text-primary); white-space: nowrap; }
.promo-log__mlb   { font-weight: 600; }
.promo-log__status-ok   { color: #16A34A; font-size: 11px; }
.promo-log__status-erro { color: #DC2626; font-size: 11px; }

/* --- Avisos -------------------------------------------- */
.promo-aviso-vazio {
  text-align: center;
  padding: 40px 0;
  color: var(--text-muted);
}
.promo-aviso-vazio__icone { font-size: 36px; }
.promo-aviso-vazio__texto { margin-top: 8px; }
.promo-aviso-filtro { padding: 24px; color: var(--text-muted); text-align: center; }

/* --- Modal desconto manual ----------------------------- */
.promo-modal {
  position: fixed;
  top: 0; left: 0;
  width: 100%; height: 100%;
  background: rgba(0,0,0,0.5);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}
.promo-modal__inner {
  background: #003399;
  border-radius: 10px;
  padding: 24px;
  min-width: 360px;
  max-width: 480px;
  width: 100%;
  box-shadow: 0 8px 32px rgba(0,0,0,0.4);
}
.promo-modal__titulo { font-size: 15px; font-weight: 700; margin-bottom: 4px; color: #fff; padding-bottom: 10px; border-bottom: 2px solid #f47920; }
.promo-modal__cabecalho { width: 100%; border-collapse: collapse; margin-bottom: 0; }
.promo-modal__cabecalho-info { vertical-align: middle; padding-right: 12px; }
.promo-modal__cabecalho-foto { width: 135px; vertical-align: middle; text-align: right; height: 90px; max-height: 90px; overflow: hidden; padding-top: 25px; }
.promo-modal__foto { width: 135px; height: 90px; object-fit: contain; border-radius: 6px; background: rgba(255,255,255,0.08); display: block; }
.promo-modal__sub { font-size: 12px; color: rgba(255,255,255,0.55); margin-bottom: 2px; margin-top: 4px; }
.promo-modal__sub--produto { font-size: 13px; color: rgba(255,255,255,0.90); font-weight: 600; margin-bottom: 10px; text-transform: capitalize; }
.promo-modal__info { margin-bottom: 0; }
.promo-modal__info-linha { font-size: 13px; color: rgba(255,255,255,0.55); margin-bottom: 5px; }
.promo-modal__info-linha strong { font-size: 14px; font-weight: 600; color: rgba(255,255,255,0.90); }
.promo-modal__destaque { color: #60a5fa; font-weight: 700; font-size: 15px; background: rgba(0,0,0,0.2); padding: 2px 8px; border-radius: 4px; display: inline-block; vertical-align: baseline; }
.promo-modal__campo { margin-bottom: 12px; margin-top: 12px; }
.promo-modal__label { font-size: 13px; display: block; margin-bottom: 4px; color: rgba(255,255,255,0.65); }
.promo-modal__input {
  width: 100%;
  padding: 8px 10px;
  border-radius: 6px;
  border: 1px solid rgba(255,255,255,0.25);
  background: #002277;
  color: #fff;
  font-size: 15px;
}
.promo-modal__input::placeholder { color: rgba(255,255,255,0.35); }
.promo-modal__input:focus { outline: none; border-color: rgba(255,255,255,0.6); }
.promo-modal__preview { margin-bottom: 16px; min-height: 0; padding: 12px 16px; border-radius: 6px; background: rgba(0,0,0,0.2); display: flex; flex-wrap: wrap; gap: 0; align-items: center; justify-content: center; }
.promo-modal__preview:empty { margin-bottom: 0; padding: 0; background: transparent; display: block; }
.promo-modal__preview-col { display: flex; flex-direction: column; align-items: center; flex: 1; padding: 0 16px; border-right: 1px solid rgba(255,255,255,0.1); }
.promo-modal__preview-col:last-child { border-right: none; }
.promo-modal__preview > .promo-modal__preview-col:last-of-type { border-right: none; }
.promo-modal__preview > .promo-modal__preview-col:nth-child(3) { border-right: none; }
.promo-modal__preview-label { color: rgba(255,255,255,0.55); font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 2px; }
.promo-modal__preview strong { font-size: 20px; font-weight: 700; }
.promo-modal__preview-erro  { color: #fca5a5; }
.promo-modal__acoes { display: flex; gap: 8px; justify-content: flex-end; margin-top: 8px; }
.promo-modal__btn-cancelar { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.4); }
.promo-modal__btn-cancelar:hover { background: rgba(255,255,255,0.1); color: #fff; border-color: rgba(255,255,255,0.7); }
.promo-modal__btn-aplicar  { background: #f47920; color: #fff; border: 1px solid #f47920; }
.promo-modal__btn-aplicar:hover  { background: #ea6c0f; color: #fff; }

/* --- Cards da pagina -------------------------------- */
.promo-card-resultados { margin-bottom: 20px; }
.promo-card-log__titulo { margin-bottom: 10px; }

/* --- Selects dos filtros ---------------------------- */
.promo-filtros__select          { margin-left: 6px; }
.promo-filtros__select--forn    { width: 180px !important; }

/* --- Badges de canal -------------------------------- */
.promo-badge-canal {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 3px;
  white-space: nowrap;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
}
.promo-badge-canal--premium  { background: #EAB308; color: #1a1a1a; min-width: 64px; border-radius: 20px; }
.promo-badge-canal--classico { background: #F97316; color: #1a1a1a; min-width: 64px; border-radius: 20px; }
.promo-badge-canal--flex     { background: #3B82F6; color: #fff; border-radius: 20px; }
.promo-badge-canal--outro    { background: #6B7280; color: #fff; border-radius: 20px; }

/* --- Utilitarios de alinhamento de celula ---------- */
.promo-table .td-right      { text-align: center; min-width: 80px; }
.promo-table .td-center     { text-align: center; min-width: 90px; vertical-align: middle; }
.promo-table .td-nowrap     { text-align: center; vertical-align: middle; }
.promo-table .td-right-bold { text-align: center; font-weight: 600; min-width: 80px; }

/* --- Overflow wrapper ------------------------------ */
.promo-overflow { overflow-x: auto; }

/* --- Coluna Tipo ----------------------------------- */
.promo-table td.promo-tipo {
  white-space: nowrap;
  vertical-align: middle;
  text-align: center;
  padding: 1px 14px;
  line-height: 1;
}

/* --- Nome e datas da campanha na coluna Tipo ------- */
.promo-campanha-nome  { font-size: 12px; font-weight: 700; color: var(--text-primary); display: block; margin-bottom: 2px; }
.promo-campanha-datas { font-size: 11px; color: var(--text-primary); font-weight: 600; display: block; margin-bottom: 0; opacity: 0.75; }
.promo-badge-status   { display: inline-block; margin-top: 0; }

/* --- Padding interno dos cards --------------------- */
.promo-card-resultados,
.promo-card-log { padding: 16px; }

/* --- Botões de ação da tabela ---------------------- */
.precificacao-app .btn--cinza       { background: #4B5563; color: #fff; border-color: #4B5563; }
.precificacao-app .btn--cinza:hover { background: #374151; border-color: #374151; }
.precificacao-app .promo-btn-ativo  { background: #16A34A; color: #fff; border-color: #16A34A; opacity: 0.85; cursor: default; }
.promo-table .btn,
.precificacao-app .btn--verde { background: #16A34A; color: #fff; border-color: #16A34A; }
.precificacao-app .btn--verde:hover { background: #15803D; color: #fff; border-color: #15803D; }
.precificacao-app .btn--cinza:hover { background: #374151; color: #fff; border-color: #374151; }

.precificacao-app .btn--ativo-status { background: #1D4ED8; color: #fff; border-color: #1D4ED8; opacity: 0.85; cursor: default; }
.precificacao-app .btn--ativo-status:hover { background: #1D4ED8; color: #fff; border-color: #1D4ED8; }
.precificacao-app .btn--remover { background: #6B7280; color: #fff; border-color: #6B7280; }
.precificacao-app .btn--remover:hover { background: #DC2626; color: #fff; border-color: #DC2626; }

/* --- Botão Confirmar via site e tick --------------- */
.promo-mlb__btn-confirmar { background: var(--bg2); color: var(--text-muted); border: 1px solid var(--border2); padding: 0 6px; height: 28px; border-radius: 4px; cursor: pointer; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; }
.promo-mlb__btn-confirmar:hover { background: #2d5a8e; color: #fff; }
.promo-mlb__btn-confirmar:disabled { opacity: 0.5; cursor: wait; }
.promo-tick { font-size: 13px; font-weight: 700; margin-left: 4px; vertical-align: middle; }
.promo-tick--ok     { color: #4ade80; }
.promo-tick--alerta { color: #fbbf24; }

/* --- Barra de MLBs ocultos ------------------------- */
.promo-ocultos-barra {
  background: var(--bg-subtle, #f1f5f9);
  border: 1px solid var(--border-color, #e2e8f0);
  border-radius: 6px;
  padding: 8px 12px;
  margin-bottom: 12px;
  font-size: 12px;
  color: var(--text-muted);
}
.promo-ocultos-barra__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 6px;
  font-weight: 600;
}
.promo-ocultos-barra__lista {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.promo-oculto__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 3px 0;
}
.promo-oculto__nome { flex: 1; color: var(--text-primary); font-size: 12px; }
.promo-oculto__mlb  { color: var(--text-muted); font-size: 11px; }
.promo-oculto__btn  { font-size: 11px; padding: 2px 8px; }

.promo-td-check {
  width: 28px;
  min-width: 28px;
  max-width: 28px;
  padding: 0;
  text-align: center;
}
.promo-td-check input[type="checkbox"] {
  cursor: pointer;
}
.promo-td-check__inner {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 32px;
}
.promo-mlb--flash {
  animation: promo-flash 0.8s ease-out;
}
@keyframes promo-flash {
  0%   { background-color: rgba(34, 197, 94, 0.35); }
  100% { background-color: transparent; }
}

.promo-bloco-metricas--posads {
  margin-top: 3px;
  padding-top: 2px;
  border-top: 1px solid rgba(0, 51, 153, 0.6);
  flex-wrap: wrap;
  justify-content: center;
}
.promo-posads-label {
  flex-basis: 100%;
  flex-shrink: 0;
  text-align: center;
  font-size: 7px;
  font-weight: 700;
  color: rgba(0, 51, 153, 0.5);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  margin-bottom: 1px;
  line-height: 1;
}
.promo-modal__preview-posads {
  position: relative;
  width: 100%;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 2px solid rgba(251, 146, 60, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
}
.promo-modal__preview-posads .promo-posads-label {
  position: absolute;
  left: 0;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-size: 9px;
  white-space: nowrap;
  color: rgba(255,255,255,0.55);
  border-left: 1px solid rgba(255,255,255,0.1);
  padding-left: 4px;
}
.promo-modal__preview-posads .promo-modal__preview-col {
  border-right: 1px solid rgba(255,255,255,0.1);
}
.promo-modal__preview-posads .promo-modal__preview-col:last-child {
  border-right: none;
}
.promo-badge-ads {
  display: inline-block;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  background: #003399;
  border-radius: 3px;
  padding: 1px 5px;
  margin-left: 4px;
  letter-spacing: 0.03em;
  vertical-align: middle;
}
.promo-badge-ads--old {
  background: #f97316;
}

@keyframes promo-destaque-pulse {
  0%   { background-color: transparent; }
  25%  { background-color: rgba(59, 130, 246, 0.25); }
  50%  { background-color: transparent; }
  75%  { background-color: rgba(59, 130, 246, 0.25); }
  100% { background-color: transparent; }
}
.promo-tr--destaque td {
  animation: promo-destaque-pulse 1.5s ease-in-out 2;
}
