/* ── Feature Calculadora de Compras (Suprimentos/Fiscal x Reforma 2027) ─────────────────────
   Janela no padrão do Pedido de Compra (.mov/.mov-nav/.mov-pane, .ped-card/.ped-field, .mv-table).
   Aqui só o que é próprio da calculadora; cores sempre pelos tokens (tema claro e escuro). */

.calc .mov-pane { gap: 16px; }
.calc-oculto { display: none !important; }
.calc-nota { color: var(--text-muted); font-size: 12px; margin: 0; line-height: 1.5; }
.calc-dica { color: var(--text-subtle); font-size: 11.5px; line-height: 1.4; }
.calc-dica.aviso { color: var(--danger); }
.calc-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.calc-spacer { flex: 1; }
.calc .ped-card-tit .calc-passo {
  display: inline-grid; place-items: center; width: 20px; height: 20px; margin-right: 8px; border-radius: 50%;
  background: var(--accent); color: var(--on-accent); font-size: 11px; letter-spacing: 0;
}

/* Campos sempre cabem na coluna: sem isso input/select ficam com a largura intrínseca (~20 caracteres)
   e vazam do cartão quando ele estreita (3 fornecedores lado a lado). */
.calc .ped-cab { grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr)); }
.calc .ped-field { min-width: 0; }
.calc .ped-field input, .calc .ped-field select { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; }
.calc .ped-field label { overflow-wrap: anywhere; }

/* Campos numéricos e inválidos */
.calc .ped-field input.calc-num { text-align: right; font-variant-numeric: tabular-nums; }
.calc .ped-field input.calc-invalido { border-color: var(--danger); background: color-mix(in srgb, var(--danger) 8%, var(--surface)); }
.calc .ped-field .calc-check { display: flex; align-items: center; gap: 8px; font-size: 13px; color: var(--text); text-transform: none; letter-spacing: 0; font-weight: 500; cursor: pointer; }
.calc .ped-field .calc-check input { width: 16px; height: 16px; accent-color: var(--accent); }
.calc .calc-linha { display: flex; gap: 6px; }
.calc .calc-linha input { flex: 1; min-width: 0; width: auto; }
.calc .calc-linha button { flex-shrink: 0; }
.calc .calc-linha button { height: 36px; }

/* Selos (badges) — mesmo desenho do .ped-badge-ok */
.calc-selo { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; border-radius: 20px; padding: 2px 9px; white-space: nowrap; }
.calc-selo.ok { color: var(--mint); background: color-mix(in srgb, var(--mint) 14%, transparent); }
.calc-selo.alerta { color: var(--danger); background: color-mix(in srgb, var(--danger) 12%, transparent); }
.calc-selo.neutro { color: var(--text-muted); background: var(--surface-hover); border: 1px solid var(--border); }

/* Type-ahead: reaproveita .ped-ta/.ped-ta-list; aqui só mostra/esconde e a linha secundária */
.calc .ped-ta-list.aberta { display: block; }
.calc .ped-ta-item small { display: block; color: var(--text-subtle); font-size: 12px; }
.calc .ped-ta-item.vazio { cursor: default; color: var(--text-muted); }
.calc .ped-ta-item.vazio:hover { background: none; color: var(--text-muted); }

/* Fornecedores */
.calc-forns { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(380px, 100%), 1fr)); gap: 14px; }
.calc-forn { gap: 10px; min-width: 0; }
.calc-forn.vencedor { border-color: var(--mint); box-shadow: 0 0 0 3px color-mix(in srgb, var(--mint) 22%, transparent); }
.calc-forn-topo { display: flex; align-items: center; gap: 8px; }
.calc-forn-topo .calc-forn-nome { flex: 1; margin: 0; font-size: 14px; font-weight: 700; color: var(--text); }
.calc-forn .ped-cab { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.calc-forn .ped-field.calc-largo { grid-column: 1 / -1; }
.calc-forn .ped-secao { padding: 2px 12px; }
.calc-add {
  min-height: 120px; border: 2px dashed var(--border-strong); border-radius: var(--radius-md, 10px);
  background: none; color: var(--text-muted); font-weight: 600;
}
.calc-add:hover { background: var(--surface-hover); color: var(--text); border-color: var(--text-subtle); }
.calc-rm-info { display: flex; flex-direction: column; gap: 4px; margin: 4px 0 8px; }

/* Resultado */
.calc-veredito {
  border-radius: var(--radius-md, 10px); padding: 18px 22px; background: var(--accent); color: var(--on-accent);
  display: grid; grid-template-columns: 1fr auto; gap: 6px 24px; align-items: start;
}
.calc-veredito.vazio { background: var(--surface-hover); color: var(--text); border: 1px solid var(--border); }
.calc-veredito h2 { margin: 0; font-family: var(--font-display); font-size: 22px; font-weight: 800; letter-spacing: -0.02em; }
.calc-veredito .calc-numeros { text-align: right; }
.calc-veredito .calc-numeros strong { display: block; font-size: 20px; color: var(--mint); font-variant-numeric: tabular-nums; }
.calc-veredito.vazio .calc-numeros strong { color: var(--text); }
.calc-veredito .calc-numeros span { font-size: 12px; opacity: .8; }
.calc-veredito ul { grid-column: 1 / -1; margin: 6px 0 0; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; font-size: 13px; }

.calc-alertas { display: flex; flex-direction: column; gap: 8px; }
.calc-alertas:empty { display: none; }
.calc-alerta {
  border-radius: var(--radius-sm, 6px); padding: 9px 12px; font-size: 13px; color: var(--text);
  background: color-mix(in srgb, var(--danger) 7%, var(--surface)); border-left: 3px solid color-mix(in srgb, var(--danger) 55%, transparent);
}
.calc-alerta.forte { color: var(--danger); font-weight: 600; border-left-color: var(--danger); }

.calc .mv-tablewrap { overflow-x: auto; }
.calc .mv-table { min-width: 760px; }
.calc .mv-table tr.calc-com-sub td { border-bottom: none; padding-bottom: 2px; }
.calc .mv-table tr.calc-sub td { padding-top: 0; font-size: 12px; color: var(--text-muted); font-weight: 400; }
.calc .mv-table tr.calc-sub b { color: var(--text); font-weight: 600; }
.calc .mv-table thead th, .calc .mv-table tbody td { padding-left: 8px; padding-right: 8px; }
.calc .mv-table .num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.calc .mv-table thead th.num { text-align: right; }
.calc .mv-table tbody td { vertical-align: top; }
.calc .mv-table tr.calc-melhor td { background: color-mix(in srgb, var(--mint) 12%, transparent); font-weight: 600; }

/* Memória de cálculo */
.calc-memoria { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.calc-memoria section { border: 1px solid var(--border); border-radius: var(--radius-md, 8px); padding: 12px 14px; background: var(--surface); }
.calc-memoria h4 { margin: 0 0 8px; font-size: 13px; color: var(--text); }
.calc-memoria dl { display: grid; grid-template-columns: 1fr auto; gap: 3px 0; margin: 0; font-size: 12.5px; }
.calc-memoria dt { color: var(--text-muted); }
.calc-memoria dd { margin: 0; padding-left: 12px; text-align: right; font-variant-numeric: tabular-nums; color: var(--text); }
.calc-memoria dt.total, .calc-memoria dd.total { font-weight: 700; color: var(--text); border-top: 1px solid var(--border); padding-top: 3px; }
.calc-memoria dt.sub { padding-left: 14px; font-size: 11.5px; }
.calc-memoria dd.sub { font-size: 11.5px; color: var(--text-muted); }
.calc-memoria .calc-alertas { margin-top: 10px; }

/* Cotação do RM */
.calc-cot-item { gap: 10px; }
.calc-cot-item.diverge { border-left: 3px solid var(--danger); }
.calc-cot-cab { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.calc-cot-cab h4 { flex: 1; min-width: 220px; margin: 0; font-size: 13.5px; color: var(--text); }
.calc-cot-cab h4 small { display: block; color: var(--text-muted); font-weight: 400; font-size: 12px; margin-top: 2px; }
.calc-cot-item .mv-table { min-width: 760px; }
.calc-cot-rodape { font-size: 12px; color: var(--text-muted); }

/* Como funciona */
.calc-ajuda h4 { margin: 10px 0 4px; font-size: 13px; color: var(--text); }
.calc-ajuda p, .calc-ajuda li { color: var(--text-muted); font-size: 13px; line-height: 1.55; margin: 0 0 4px; }
.calc-ajuda ul { margin: 0; padding-left: 18px; }
.calc-ajuda code { font-size: 12px; }

/* Impressão: só o resultado da calculadora (memória de cálculo pro processo de compra). */
@media print {
  body.calc-imprimindo .modsel-topbar, body.calc-imprimindo .modsel-nav, body.calc-imprimindo .modsel-footer,
  body.calc-imprimindo .main-header, body.calc-imprimindo .mov-nav, body.calc-imprimindo .calc-entrada,
  body.calc-imprimindo .calc-acoes, body.calc-imprimindo .mov-topo button { display: none !important; }
  body.calc-imprimindo .calc .mv-tablewrap { overflow: visible; }
  body.calc-imprimindo .calc .mv-table { min-width: 0; }
}

@media (max-width: 760px) {
  .calc-forn .ped-cab { grid-template-columns: 1fr; }
  .calc-veredito { grid-template-columns: 1fr; }
  .calc-veredito .calc-numeros { text-align: left; }
}
