/* ============================================================
   INTRANET RANCHO S — css/fiscal.css
   Portal do Fiscal: badges de prazo, barra de filtros, tabela de
   notas e cores das faixas de prazo (verde/amarelo/vermelho/vencido).
   ============================================================ */

/* ── Badges de contadores ─────────────────────────────────── */
.fiscal-badges {
  display: flex; flex-wrap: wrap; gap: 10px;
  margin: 4px 0 16px;
}
.fiscal-badge {
  display: flex; flex-direction: column; align-items: flex-start;
  min-width: 120px; padding: 10px 14px;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: var(--surface); box-shadow: var(--shadow);
}
.fiscal-badge .n { font-size: 22px; font-weight: 800; line-height: 1.1; }
.fiscal-badge .l { font-size: 12px; color: var(--text2); font-weight: 600; margin-top: 2px; }
.fiscal-badge.b-vencido  { border-left: 4px solid #7a1d17; }
.fiscal-badge.b-vermelho { border-left: 4px solid var(--danger); }
.fiscal-badge.b-amarelo  { border-left: 4px solid var(--warning); }
.fiscal-badge.b-semxml   { border-left: 4px solid var(--text3); }
.fiscal-badge.b-tacita   { border-left: 4px solid #7a1d17; }
.fiscal-badge.b-total    { border-left: 4px solid var(--verde-escuro); }
.fiscal-badge.b-vencido  .n { color: #7a1d17; }
.fiscal-badge.b-vermelho .n { color: var(--danger); }
.fiscal-badge.b-amarelo  .n { color: var(--warning); }

/* ── Barra de filtros ─────────────────────────────────────── */
.fiscal-toolbar {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  margin-bottom: 14px;
}
.fiscal-toolbar .fiscal-fld { max-width: 200px; width: auto; }
.fiscal-busca { flex: 1 1 260px; min-width: 220px; }
.fiscal-busca input { font-family: ui-monospace, monospace; letter-spacing: .3px; }

/* ── Tabela ────────────────────────────────────────────────── */
.fiscal-tabela { overflow-x: auto; }
.fiscal-tabela table {
  width: 100%; border-collapse: collapse; font-size: 13px;
  background: var(--surface); border-radius: var(--radius-sm); overflow: hidden;
}
.fiscal-tabela th, .fiscal-tabela td {
  padding: 8px 10px; text-align: left; border-bottom: 1px solid var(--surface2);
  white-space: nowrap;
}
.fiscal-tabela th {
  background: var(--verde-suave); color: var(--verde-escuro);
  font-weight: 700; font-size: 12px; position: sticky; top: 0;
}
.fiscal-tabela tr:hover td { background: rgba(153,212,32,0.06); }
.fiscal-tabela td.emit { white-space: normal; max-width: 240px; }
.fiscal-tabela td.num { text-align: right; font-variant-numeric: tabular-nums; }
.fiscal-chave-mono { font-family: ui-monospace, monospace; font-size: 11.5px; color: var(--text3); }

/* Cadastro de certificados (modal ⚙) */
.fiscal-cert-linha { display: flex; justify-content: space-between; align-items: center; gap: 10px;
  border: 1px solid var(--border); border-radius: 8px; padding: 8px 12px; margin-bottom: 8px; }
.fiscal-cert-linha.inativo { opacity: .6; }

/* NFS-e: descrição do serviço com reticências pra tabela caber sem rolagem */
.fiscal-tabela td.nfse-serv { max-width: 240px; }
.nfse-serv-desc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 240px; }

/* ── Chip de prazo (cor por faixa) ────────────────────────── */
.prazo-chip {
  display: inline-block; padding: 2px 9px; border-radius: 999px;
  font-size: 11.5px; font-weight: 800; white-space: nowrap;
}
.prazo-verde    { background: rgba(74,140,28,0.15);  color: #2f6b12; }
.prazo-amarelo  { background: rgba(212,131,26,0.18); color: #9a5c0c; }
.prazo-vermelho { background: rgba(192,57,43,0.16);  color: #a5271b; }
.prazo-vencido  { background: #7a1d17; color: #fff; }
.prazo-sem_prazo{ background: var(--surface2); color: var(--text3); }

/* ── Chip de situação/manifestação ────────────────────────── */
.manif-chip { display: inline-block; padding: 1px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; }
.manif-sem              { background: var(--surface2); color: var(--text2); }
.manif-ciencia          { background: rgba(0,92,40,0.10);  color: var(--verde-escuro); }
.manif-confirmada       { background: rgba(74,140,28,0.15); color: #2f6b12; }
.manif-desconhecida     { background: rgba(192,57,43,0.14); color: var(--danger); }
.manif-nao_realizada    { background: rgba(192,57,43,0.14); color: var(--danger); }
.manif-confirmada_tacita{ background: #7a1d17; color: #fff; }

.fiscal-acoes { display: flex; gap: 6px; }
.fiscal-linkbtn {
  background: none; border: 1px solid var(--border); border-radius: 6px;
  padding: 3px 8px; font-size: 12px; cursor: pointer; color: var(--verde-escuro);
  font-family: inherit;
}
.fiscal-linkbtn:hover { background: var(--verde-suave); }
.fiscal-linkbtn:disabled { opacity: .4; cursor: not-allowed; }

.fiscal-paginacao { display: flex; gap: 10px; align-items: center; justify-content: center; margin: 14px 0; }
.fiscal-vazio { padding: 28px; text-align: center; color: var(--text3); }

/* ── Detalhe (itens) ──────────────────────────────────────── */
.fiscal-det-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 18px; margin-bottom: 14px; font-size: 13px; }
.fiscal-det-meta b { color: var(--verde-escuro); }
.fiscal-itens table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.fiscal-itens th, .fiscal-itens td { padding: 5px 7px; border-bottom: 1px solid var(--surface2); text-align: left; }
.fiscal-itens th { color: var(--verde-escuro); font-weight: 700; }
.fiscal-aviso-teste {
  background: rgba(212,131,26,0.10); border: 1px solid var(--warning);
  color: #9a5c0c; border-radius: var(--radius-sm); padding: 8px 12px;
  font-size: 12.5px; margin-bottom: 12px;
}

/* ── Manifestação conclusiva (fase 3) ─────────────────────── */
.fiscal-manif-box {
  margin-top: 16px; padding: 14px; border: 1px solid var(--border);
  border-radius: var(--radius-sm); background: var(--verde-suave);
}
.fiscal-manif-titulo { font-weight: 700; color: var(--verde-escuro); font-size: 14px; margin-bottom: 10px; }
.fiscal-manif-off { font-weight: 500; color: var(--text3); font-size: 12px; }
.fiscal-manif-aviso {
  background: rgba(212,131,26,0.12); border: 1px solid var(--warning);
  color: #9a5c0c; border-radius: 6px; padding: 7px 10px; font-size: 12px; margin-bottom: 10px;
}
.fiscal-manif-botoes { display: flex; gap: 8px; flex-wrap: wrap; }

/* ── Modal de configuração (⚙ admin): certificado A1 + CNPJ base ── */
.fiscal-cfg-bloco {
  margin-top: 16px; padding: 12px 14px;
  border: 1px solid var(--border); border-radius: 10px;
  font-size: 14px; display: grid; gap: 4px;
}
.fiscal-cfg-titulo { font-weight: 700; margin-bottom: 4px; }

/* ── Entrada no ERP (deu entrada × pendente) ───────────────── */
.fiscal-badge.b-sementrada { border-left: 4px solid #b45309; }
.fiscal-badge.b-sementrada .n { color: #b45309; }
.entrada-chip { display: inline-block; padding: 1px 8px; border-radius: 6px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.entrada-sim { background: rgba(74,140,28,0.15); color: #2f6b12; }
.entrada-nao { background: rgba(180,83,9,0.12); color: #b45309; }
.fiscal-entrada-cel { white-space: nowrap; }
.fiscal-entrada-btn { display: block; margin-top: 3px; font-size: 11px; }

/* ── Caber a tela inteira ──────────────────────────────────────
   .main-content é flex:1; sem min-width:0 o flex item NÃO encolhe e a
   tabela larga estoura a página pro lado. Com isto, o overflow-x da
   .fiscal-tabela passa a rolar DENTRO da tabela (a página fica inteira). */
.main-content { min-width: 0; }
.fiscal-tabela { max-width: 100%; }
/* Compactar levemente pra reduzir a rolagem horizontal */
.fiscal-tabela th, .fiscal-tabela td { padding: 7px 8px; }
.fiscal-tabela td.emit { max-width: 200px; }
.fiscal-chave-mono { font-size: 11px; }
.fiscal-badge { min-width: 104px; padding: 8px 12px; }
.fiscal-badge .n { font-size: 19px; }

/* ── Compactar a tabela p/ caber sem cortar botões (10 colunas) ── */
.fiscal-tabela table { font-size: 12px; }
.fiscal-tabela th { font-size: 11px; }
.fiscal-tabela th, .fiscal-tabela td { padding: 6px 7px; }
.fiscal-tabela td.emit { max-width: 168px; }
.fiscal-chave-mono { font-size: 10px; letter-spacing: 0; }
.fiscal-linkbtn { padding: 2px 6px; font-size: 11px; }
.fiscal-acoes { gap: 4px; }
.fiscal-entrada-btn { font-size: 10.5px; padding: 1px 6px; margin-top: 2px; }

/* Botão "Baixar XML da SEFAZ" (ação principal das notas ainda sem XML) */
.fiscal-baixar-btn { color: #2f6b12; border-color: rgba(74,140,28,0.55); font-weight: 700; }
.fiscal-baixar-btn:hover { background: rgba(74,140,28,0.12); }

/* Botões do modal do fiscal quebram linha — senão o de aceite (à esquerda) fica cortado */
.modal--lg .modal-actions { flex-wrap: wrap; }
.fiscal-manif-box { overflow-x: auto; }

/* ── Robô de baixa automática de XML ─────────────────────────── */
.fiscal-robo-card { border:1px solid var(--border); border-left:4px solid var(--verde-escuro);
  border-radius:10px; padding:10px 14px; margin:4px 0 14px; background:var(--surface); box-shadow:var(--shadow); }
.fiscal-robo-top { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:14px; }
.fiscal-robo-acoes { display:flex; align-items:center; gap:8px; flex-shrink:0; }
.robo-on { color:#2f6b12; font-weight:800; } .robo-off { color:var(--text3); font-weight:700; }
.fiscal-robo-prog { height:7px; background:var(--surface2); border-radius:6px; overflow:hidden; margin:8px 0 4px; }
.fiscal-robo-prog span { display:block; height:100%; background:var(--verde-escuro); }
.fiscal-robo-sub { font-size:12.5px; color:var(--text2); }
.fiscal-robo-filiais { display:flex; flex-wrap:wrap; gap:6px 12px; margin-top:6px; font-size:12px; }
.robo-fil { color:var(--text2); }
.fiscal-robo-erros { margin-top:6px; font-size:12px; color:#b45309; }

/* ── Eventos da nota (situação na SEFAZ) ─────────────────────── */
.fiscal-eventos { margin-top:14px; }
.fiscal-eventos-tit { font-weight:700; color:var(--verde-escuro); font-size:13px; margin-bottom:6px; }
.fiscal-eventos ul { list-style:none; margin:0; padding:0; border-left:2px solid var(--surface2); }
.fiscal-eventos li { position:relative; padding:3px 0 3px 14px; font-size:12.5px; }
.fiscal-eventos li::before { content:''; position:absolute; left:-5px; top:9px; width:8px; height:8px; border-radius:50%; background:var(--verde-escuro); }
.fev-data { color:var(--text3); margin-right:6px; }
.fev-prot { color:var(--text3); margin-left:6px; font-size:11px; }

/* Sub-abas NF-e × CT-e (Portal do Fiscal) */
.fiscal-subtabs { display: flex; gap: 4px; margin: 14px 0 6px; border-bottom: 2px solid var(--border); }
.fiscal-subtab {
  background: none; border: none; cursor: pointer; font-size: 14px; font-weight: 700;
  color: var(--text2); padding: 9px 18px; border-bottom: 3px solid transparent; margin-bottom: -2px;
}
.fiscal-subtab:hover { color: var(--text); }
.fiscal-subtab.ativa { color: var(--verde-escuro); border-bottom-color: var(--verde-escuro); }
.fiscal-badge.b-verde { border-left: 4px solid var(--success); }
.fiscal-badge.b-verde .n { color: var(--success); }

/* Filtros no padrão do intranet (card + user-form-grid + labels) */
.fiscal-filtros { margin-bottom: 14px; }
.fiscal-lbl { font-size: 12px; color: var(--text2); font-weight: 600; display: block; margin-bottom: 4px; }
.fiscal-chave-input { font-family: ui-monospace, monospace; letter-spacing: .3px; }
.fiscal-filtros-acoes {
  display: flex; flex-wrap: wrap; gap: 8px; align-items: center;
  margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--border);
}
.fiscal-acoes-sep { flex: 1 1 auto; min-width: 8px; }

/* Vínculo CT-e ↔ NF-e: chip do tipo da nota transportada (infDoc) */
.cte-nfe-chip {
  display: inline-block; font-size: 10.5px; font-weight: 700; letter-spacing: .04em;
  padding: 2px 8px; border-radius: 9px; text-transform: uppercase; white-space: nowrap;
}
.cte-nfe-chip.entrada { background: var(--verde-suave); color: var(--verde-medio); border: 1px solid var(--verde-borda); }
.cte-nfe-chip.saida   { background: var(--verde-escuro); color: #fff; border: 1px solid var(--verde-escuro); }
.cte-nfe-chip.nd      { background: var(--surface2); color: var(--text3); border: 1px dashed var(--text3); }
