/* Estilos das telas de orcamento reformuladas (Gerente, Meta de Receita,
   Acompanhamento, DRE, Painel Global). Carregado depois de styles.css. */

/* --- Toast / feedback --- */
.toast {
  position: fixed; right: 20px; bottom: 20px; z-index: 1000; max-width: 380px; padding: 11px 16px;
  border-radius: 8px; font-size: 13px; font-weight: 600; color: #fff; background: #1F2937;
  box-shadow: 0 6px 20px rgba(0,0,0,.22); opacity: 0; transform: translateY(8px); pointer-events: none;
  transition: opacity .18s, transform .18s;
}
.toast.visivel { opacity: 1; transform: translateY(0); }
.toast.ok { background: var(--verde); }
.toast.erro { background: var(--vermelho); }
.toast.info { background: var(--primary); }

.status-autosave.erro { color: var(--vermelho); }
.btn-link { background: none; border: none; color: var(--primary); cursor: pointer; font-family: inherit; font-size: 12px; font-weight: 600; }
.btn-link:hover { text-decoration: underline; }
button.btn.ativo { background: var(--primary); color: #fff; }
.check-linha { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-muted); padding: 0 6px; }

/* --- Gerente: grade com colunas fixas e totalizadores agrupados --- */
.grade-scroll { overflow: auto; max-height: calc(100vh - 150px); border: 1px solid var(--border); border-radius: 8px; background: var(--panel); }
table.grade-orcamento { border-collapse: separate; border-spacing: 0; }
table.grade-orcamento th, table.grade-orcamento td { border-width: 0 1px 1px 0; }
table.grade-orcamento thead th { position: sticky; top: 0; z-index: 3; }
table.grade-orcamento .col-conta { position: sticky; left: 0; z-index: 2; min-width: 250px; max-width: 250px; overflow: hidden; text-overflow: ellipsis; background: var(--panel); }
table.grade-orcamento thead .col-conta { z-index: 4; background: var(--azul-bg); }
table.grade-orcamento td:not(.col-conta):not(.celula-mes) { min-width: 82px; }
table.grade-orcamento td.celula-mes { min-width: 92px; }
td.celula-mes input { min-width: 88px; font-variant-numeric: tabular-nums; }
td.celula-mes.invalida input { background: var(--vermelho-bg); outline: 2px solid var(--vermelho); }

tr.linha-ambiente td { background: #DDE5F1; color: var(--primary-dark); font-weight: 800; padding: 8px 8px; border-top: 2px solid #fff; }
tr.linha-ambiente td.col-conta { background: #DDE5F1; }
tr.linha-ambiente small { font-weight: 500; color: var(--text-muted); }
tr.linha-subgrupo td { background: #F0F3F9; color: var(--primary-dark); font-weight: 700; padding: 6px 8px; cursor: pointer; font-size: 12px; }
tr.linha-subgrupo td.col-conta { background: #F0F3F9; padding-left: 22px; }
tr.linha-subgrupo small { font-weight: 500; color: var(--text-muted); }
tr.linha-ambiente:hover td, tr.linha-subgrupo:hover td { filter: brightness(.97); }
tr.linha-conta .nome-conta-cel { padding-left: 38px; font-weight: 500; }
tr.linha-conta .codigo-conta { display: block; font-size: 9px; color: var(--text-muted); font-weight: 400; margin-top: -1px; }
tr.linha-conta td.celula-ytd { background: #EEF2F8; }
table.grade-orcamento tfoot td { position: sticky; bottom: 0; z-index: 3; }
tr.linha-total td { background: var(--primary); color: #fff; font-weight: 800; padding: 9px 8px; border-color: var(--primary-dark); }
tr.linha-total td.col-conta { background: var(--primary); z-index: 4; }
tr.linha-realizado-anterior td.col-conta { background: #FAFBFC; }

.painel-sticky { position: sticky; top: 12px; max-height: calc(100vh - 40px); overflow: auto; }

/* --- Gerente: completude --- */
.completude { display: grid; grid-template-columns: auto 1.4fr 1.1fr auto; gap: 18px; align-items: center; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--border); }
.completude-total { display: flex; align-items: center; gap: 10px; }
.completude-pct { font-size: 32px; font-weight: 800; color: var(--primary); line-height: 1; }
.completude-rotulo { font-size: 12px; color: #374151; line-height: 1.25; font-weight: 600; }
.completude-rotulo span { color: var(--text-muted); font-weight: 400; font-size: 11px; }
.completude-amb { display: flex; flex-direction: column; gap: 4px; }
.completude-item { display: grid; grid-template-columns: 130px 1fr 38px; align-items: center; gap: 8px; background: none; border: none; padding: 2px 4px; font-family: inherit; cursor: pointer; border-radius: 4px; text-align: left; }
.completude-item:hover { background: var(--azul-bg); }
.completude-item .nome { font-size: 12px; color: #1F2937; }
.completude-item .pct { font-size: 12px; font-weight: 700; text-align: right; }
.barra { display: block; height: 8px; border-radius: 4px; background: var(--cinza-bg); overflow: hidden; }
.barra > span { display: block; height: 100%; border-radius: 4px; }
.barra.verde > span { background: var(--verde); }
.barra.amarelo > span { background: #D9A400; }
.barra.vermelho > span { background: var(--vermelho); }
.barra.cinza > span { background: #9CA3AF; }
.completude-meses { display: grid; grid-template-columns: repeat(12, 1fr); gap: 3px; height: 66px; align-items: end; }
.mes-comp { position: relative; height: 100%; display: flex; flex-direction: column; justify-content: flex-end; align-items: stretch; }
.mes-comp .mes-barra { display: block; border-radius: 3px 3px 0 0; background: #9CA3AF; }
.mes-comp.verde .mes-barra { background: var(--verde); }
.mes-comp.amarelo .mes-barra { background: #D9A400; }
.mes-comp.vermelho .mes-barra { background: var(--vermelho); }
.mes-comp .mes-rot { font-size: 9px; color: var(--text-muted); text-align: center; margin-top: 2px; }
.mes-comp .mes-barra { flex: 0 0 auto; max-height: calc(100% - 14px); }
.completude-alertas { font-size: 12px; color: #374151; display: flex; flex-direction: column; gap: 4px; }
.completude-alertas .alerta { color: var(--vermelho); }

/* --- Gerente: sazonalidade --- */
.card.sazonal { border-left: 4px solid var(--brand-red); }
.sazonal-topo { display: flex; justify-content: space-between; margin-bottom: 10px; font-size: 14px; }
.sazonal-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.sazonal .campo select, .sazonal .campo input { border: 1px solid var(--border); border-radius: 5px; padding: 6px 8px; font-family: inherit; font-size: 13px; width: 100%; }
.sazonal-pers { display: grid; grid-template-columns: repeat(12, 1fr); gap: 6px; margin-top: 10px; align-items: end; }
.sazonal-pers label { font-size: 10px; color: var(--text-muted); display: flex; flex-direction: column; gap: 2px; }
.sazonal-pers input { border: 1px solid var(--border); border-radius: 4px; padding: 4px; font-size: 12px; width: 100%; }
.sazonal-pers .soma { grid-column: 1 / -1; font-size: 11px; font-weight: 700; }
.sazonal-pers .soma.ok { color: var(--verde); }
.sazonal-pers .soma.alerta { color: var(--amarelo); }
.sazonal-previa { margin-top: 12px; }
.previa-titulo { font-size: 11px; color: var(--text-muted); margin-bottom: 4px; }
.previa-barras { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; align-items: end; height: 92px; }
.previa-col { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; gap: 2px; }
.previa-barra { width: 100%; background: var(--primary); border-radius: 3px 3px 0 0; }
.previa-valor { font-size: 9px; color: var(--text-muted); }
.previa-mes { font-size: 9px; color: var(--text-muted); }

@media (max-width: 1100px) {
  .completude { grid-template-columns: 1fr; }
  .grid-gerente { grid-template-columns: 1fr; }
}

/* label usado como botao (importar arquivo) */
label.btn { display: inline-flex; align-items: center; border-radius: 6px; padding: 9px 16px; font-size: 13px; font-weight: 700; font-family: inherit; }
label.btn.secundario { background: var(--panel); border: 1px solid var(--primary); color: var(--primary); }
button.btn.secundario:hover, label.btn.secundario:hover { background: var(--azul-bg); }
