/* ==========================================================================
   Notas fiscais — listagem (#/nfses) redesign
   Escopo: tudo abaixo de .nfses-page para nao vazar para outras telas.
   Paleta alinhada ao redesign de "Emissao em lote" (nfse-issue-batch.css).
   ========================================================================== */

.nfses-page {
  color: #2b2240;
}

/* ---- Header ---- */
.nfses-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 20px;
}

.nfses-page .nfses-title {
  font-weight: 700;
  color: #2b2240;
  margin: 0 0 4px;
}

.nfses-subtitle {
  color: #7d728c;
  margin: 0;
  font-size: 14px;
}

/* ---- Buttons ---- */
.nfses-page .nfses-btn-purple {
  background: #6f42c1;
  border: 1px solid #6f42c1;
  color: #fff;
}

.nfses-page .nfses-btn-purple:hover,
.nfses-page .nfses-btn-purple:focus {
  background: #5e35b1;
  border-color: #5e35b1;
  color: #fff;
}

.nfses-page .nfses-btn-outline {
  background: #fff;
  border: 1px solid #d8d2e2;
  color: #2b2240;
}

.nfses-page .nfses-btn-outline:hover,
.nfses-page .nfses-btn-outline:focus {
  background: #faf9fc;
  border-color: #c9c2d3;
  color: #2b2240;
}

.nfses-page .nfses-btn-teal {
  background: #17a2b8;
  border: 1px solid #17a2b8;
  color: #fff;
}

.nfses-page .nfses-btn-teal:hover,
.nfses-page .nfses-btn-teal:focus {
  background: #138496;
  border-color: #117a8b;
  color: #fff;
}

/* ---- Metric cards ---- */
.nfses-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-bottom: 20px;
}

.nfses-card {
  background: #fff;
  border: 1px solid #ece9f1;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(43, 34, 64, 0.04);
  padding: 16px 18px;
}

.nfses-card-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: #9e94ad;
  margin-bottom: 8px;
}

.nfses-card-value {
  font-size: 24px;
  font-weight: 700;
  color: #2b2240;
  display: flex;
  align-items: center;
  gap: 8px;
}

.nfses-dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex: 0 0 auto;
}

.nfses-dot-green { background: #2e7d32; }
.nfses-dot-red { background: #c62828; }
.nfses-dot-orange { background: #e08e0b; }
.nfses-dot-gray { background: #b9b1c6; }

@media (max-width: 991px) {
  .nfses-cards { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 575px) {
  .nfses-cards { grid-template-columns: 1fr; }
}

.nfses-cards-info { margin-top: -8px; margin-bottom: 18px; }

/* ---- Toolbar ---- */
.nfses-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 14px;
}

.nfses-toolbar-left,
.nfses-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nfses-page .nfses-search-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #fff;
  border: 1px solid #cfcfcf;
  border-radius: 7px;
  padding: 9px 13px;
  font-weight: 600;
  font-size: 14px;
  color: #555;
  cursor: pointer;
  line-height: 1.2;
}

.nfses-page .nfses-search-btn:hover,
.nfses-page .nfses-search-btn:focus {
  background: #f6f4fb;
  border-color: #c9bce0;
  color: #555;
  outline: none;
}

.nfses-page .nfses-search-btn .fa {
  display: block;
  flex: 0 0 auto;
  color: #6f42c1;
  font-size: 15px;
}

.nfses-toolbar-left .menu-actions-container {
  display: inline-block;
}

/* Botoes primary da toolbar — "Ações" (nfse-actions-menu-directive) e
   "Emitir em lote" — forcados ao roxo padrao do app (#6f42c1), identicos entre
   si. Escopado a .nfses-toolbar-left para NAO vazar para outros .btn-primary da
   pagina (ex.: "Aplicar filtros" em .nfses-filters, que tem seu proprio roxo). */
.nfses-page .nfses-toolbar-left .btn-primary {
  background: #6f42c1;
  border-color: #6f42c1;
  color: #fff;
}

.nfses-page .nfses-toolbar-left .btn-primary:hover,
.nfses-page .nfses-toolbar-left .btn-primary:focus,
.nfses-page .nfses-toolbar-left .btn-primary:active,
.nfses-page .nfses-toolbar-left .btn-primary.active,
.nfses-page .nfses-toolbar-left .open > .dropdown-toggle.btn-primary {
  background: #5e35b1;
  border-color: #5e35b1;
  color: #fff;
}

/* ---- Estado desabilitado para botoes da toolbar ---- */
.nfses-page .is-disabled,
.nfses-page .btn[disabled] {
  pointer-events: none;
  opacity: .6;
}

/* ---- Filtros card ---- */
.nfses-filters {
  margin-bottom: 16px;
}

.nfses-filters .panel {
  border: 1px solid #ece9f1;
  border-radius: 10px;
  box-shadow: 0 1px 2px rgba(43, 34, 64, 0.04);
  background: #fff;
}

.nfses-filters h4 {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #9e94ad;
  margin: 0 0 14px;
}

.nfses-page .nfses-filters .btn-primary {
  background: #6f42c1;
  border-color: #6f42c1;
}

.nfses-page .nfses-filters .btn-primary:hover,
.nfses-page .nfses-filters .btn-primary:focus {
  background: #5e35b1;
  border-color: #5e35b1;
}

/* ---- List header line ---- */
.nfses-list-header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}

.nfses-list-count {
  font-weight: 700;
  color: #2b2240;
  font-size: 15px;
}

.nfses-list-hint {
  color: #9e94ad;
  font-size: 13px;
}

/* Lado direito do cabecalho da lista: hint + botao "Copiar TSV" (sempre visivel). */
.nfses-list-header-right {
  display: flex;
  align-items: center;
  gap: 14px;
}

.nfses-copy-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #fff;
  border: 1px solid #d9d2e6;
  color: #5a4b86;
  border-radius: 8px;
  padding: 6px 12px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
}

.nfses-copy-btn:hover {
  background: #f4f0fb;
}

.nfses-copy-btn[disabled] {
  opacity: .6;
  cursor: default;
}

/* ---- Fallback de copia manual (TSV) ----
   Overlay anexado ao document.body (fora de .nfses-page) quando o navegador
   bloqueia a copia automatica por falta de gesto do usuario (FF/Safari apos o
   fetch assincrono). Mostra o TSV ja selecionado para copia manual. */
.nfses-copy-fallback {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(43, 34, 64, 0.45);
  padding: 16px;
}

.nfses-copy-fallback-box {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(43, 34, 64, 0.25);
  padding: 20px;
  width: 100%;
  max-width: 560px;
  color: #2b2240;
}

.nfses-copy-fallback-title {
  font-weight: 700;
  font-size: 17px;
  margin-bottom: 6px;
}

.nfses-copy-fallback-hint {
  font-size: 13px;
  color: #7d728c;
  margin: 0 0 12px;
}

.nfses-copy-fallback-textarea {
  width: 100%;
  height: 220px;
  border: 1px solid #d8d2e2;
  border-radius: 8px;
  padding: 10px;
  font-family: monospace;
  font-size: 12px;
  white-space: pre;
  resize: vertical;
}

.nfses-copy-fallback-close {
  margin-top: 14px;
  float: right;
  background: #6f42c1;
  border: 1px solid #6f42c1;
  color: #fff;
  border-radius: 8px;
  padding: 8px 16px;
  font-weight: 600;
  font-size: 14px;
  cursor: pointer;
}

.nfses-copy-fallback-close:hover {
  background: #5e35b1;
  border-color: #5e35b1;
}

/* ---- Table ---- */
.nfses-page table.table {
  background: #fff;
  border: 1px solid #ece9f1;
  border-radius: 10px;
  /* visible (nao hidden) para o menu de acoes da linha (position:absolute)
     nao ser cortado pela caixa da tabela ao abrir nas ultimas linhas. */
  overflow: visible;
}

.nfses-page table.table > thead > tr > th {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #9e94ad;
  border-bottom: 1px solid #ece9f1;
  background: #faf9fc;
}

.nfses-page table.table > tbody > tr > td {
  vertical-align: middle;
  border-top: 1px solid #f0edf4;
  color: #2b2240;
}

.nfses-page table.table > tbody > tr.nfses-row { cursor: pointer; }
.nfses-page table.table > tbody > tr.nfses-row:hover > td { background: #faf9fc; }

.nfses-num { font-weight: 600; }

.nfses-tomador-name {
  font-weight: 600;
  color: #2b2240;
}

.nfses-tomador-sub {
  font-size: 12px;
  color: #9e94ad;
}

.nfses-num-right { text-align: right; }

/* Cabecalho das colunas numericas (Valor Servicos, Base de Calculo, V. ISS)
   alinhado a direita, igual ao valor (.nfses-num-right). O ng-table nao copia a
   classe da celula para o <th>, entao alinhamos pela posicao da coluna. */
.nfses-page table.table > thead > tr > th:nth-child(6),
.nfses-page table.table > thead > tr > th:nth-child(7),
.nfses-page table.table > thead > tr > th:nth-child(9) {
  text-align: right;
}

/* ---- Pills ---- */
.nfses-pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 2px 9px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.6;
  white-space: nowrap;
}

.nfses-pill::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.9;
}

.nfses-pill-green { background: #e6f4ea; color: #2e7d32; }
.nfses-pill-gray { background: #f0edf4; color: #7d728c; }
.nfses-pill-orange { background: #fdf0db; color: #c47f0a; }
.nfses-pill-red { background: #fce8e8; color: #c62828; }

.nfses-pill-anexo {
  background: #f1ecfb;
  color: #6f42c1;
}

.nfses-pill-anexo::before { display: none; }

/* ---- Situacao badge (restyle das .label do nfse-status-directive) ---- */
.nfses-page .nfses-situacao .label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
}

.nfses-page .nfses-situacao .label::before {
  content: "";
  display: inline-block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: currentColor;
}

.nfses-page .nfses-situacao .label-success {
  background: #e6f4ea;
  color: #2e7d32;
}

.nfses-page .nfses-situacao .label-danger {
  background: #fce8e8;
  color: #c62828;
}

.nfses-page .nfses-situacao .label-warning {
  background: #fdf0db;
  color: #c47f0a;
}

.nfses-page .nfses-situacao .label-info {
  background: #e8f1fb;
  color: #2f6fb0;
}

.nfses-page .nfses-action-pdf { color: #138496 !important; font-weight: 600; }
.nfses-page .nfses-action-pdf:hover { background: #e6f7f9 !important; color: #0f6674 !important; }

/* ---- Leading expand chevron ---- */
.nfses-page .nfses-expand-cell {
  width: 34px;
  padding-left: 14px;
  padding-right: 0;
  text-align: center;
}

.nfses-page .nfses-expand-chevron {
  display: inline-block;
  vertical-align: middle;
  color: #9aa0a8;
  font-size: 15px;
  transition: transform 0.16s ease;
}

.nfses-page tr.is-expanded .nfses-expand-chevron,
.nfses-page .nfses-expand-chevron.is-open {
  transform: rotate(90deg);
}

/* ---- Row actions (custom toggle menu, NOT a Bootstrap dropdown) ---- */
.nfses-page .nfses-rowmenu {
  position: relative;
  display: inline-block;
  text-align: left;
}

.nfses-page .nfses-rowmenu-trigger {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  background: #fff;
  border: 1px solid #d8d2e2;
  border-radius: 7px;
  padding: 6px 11px;
  font-weight: 600;
  font-size: 13px;
  color: #6f42c1;
  line-height: 1.2;
  cursor: pointer;
}

.nfses-page .nfses-rowmenu-trigger:hover,
.nfses-page .nfses-rowmenu.is-open .nfses-rowmenu-trigger {
  background: #faf9fc;
  border-color: #c9bce0;
  outline: none;
}

.nfses-page .nfses-rowmenu-trigger .fa { display: block; flex: 0 0 auto; font-size: 15px; }

.nfses-page .nfses-rowmenu-trigger .nfses-rowmenu-chevron { font-size: 13px; transition: transform 0.16s ease; }
.nfses-page .nfses-rowmenu.is-open .nfses-rowmenu-chevron { transform: rotate(180deg); }

.nfses-page .nfses-rowmenu-panel {
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  z-index: 1050;
  width: 248px;
  background: #fff;
  border: 1px solid #ece9f1;
  border-radius: 9px;
  box-shadow: 0 8px 24px rgba(43, 34, 64, 0.16);
  padding: 6px;
}

.nfses-page .nfses-rowmenu-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 7px;
  font-size: 13px;
  color: #333;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}

.nfses-page .nfses-rowmenu-item:hover,
.nfses-page .nfses-rowmenu-item:focus {
  background: #f6f4fb;
  color: #333;
  text-decoration: none;
}

.nfses-page .nfses-rowmenu-item .fa { flex: 0 0 auto; display: block; font-size: 15px; }
.nfses-page .nfses-rowmenu-item .fa.nfses-ico-purple { color: #6f42c1; }

.nfses-page .nfses-rowmenu-item-teal { color: #138496; font-weight: 700; }
.nfses-page .nfses-rowmenu-item-teal:hover,
.nfses-page .nfses-rowmenu-item-teal:focus { background: #e6f7f9; color: #0f6674; }

.nfses-page .nfses-rowmenu-item-plain { color: #333; }

.nfses-page .nfses-rowmenu-sep {
  height: 1px;
  background: #efedf4;
  margin: 6px 4px;
}

/* ---- Inline tax-detail panel ---- */
.nfses-page tr.nfses-detail-row > td.nfses-detail-cell {
  padding: 0 16px 16px 60px;
  background: #fff;
  border-top: none;
}

.nfses-page .nfses-detail {
  background: #faf9fc;
  border: 1px solid #efedf4;
  border-radius: 9px;
  padding: 14px 16px;
}

.nfses-page .nfses-detail-head {
  text-transform: uppercase;
  color: #6f42c1;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  margin-bottom: 12px;
}

.nfses-page .nfses-detail-grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 14px 18px;
}

.nfses-page .nfses-detail-field { min-width: 0; }

.nfses-page .nfses-detail-label {
  font-size: 10.5px;
  text-transform: uppercase;
  color: #9aa0a8;
  letter-spacing: 0.04em;
  margin-bottom: 3px;
}

.nfses-page .nfses-detail-value {
  font-size: 13.5px;
  color: #2d2d2d;
  font-weight: 700;
  word-break: break-word;
}

@media (max-width: 1199px) {
  .nfses-page .nfses-detail-grid { grid-template-columns: repeat(4, 1fr); }
}

@media (max-width: 767px) {
  .nfses-page .nfses-detail-grid { grid-template-columns: repeat(2, 1fr); }
  .nfses-page tr.nfses-detail-row > td.nfses-detail-cell { padding-left: 16px; }
}

/* ---- Top "Ações" dropdown: left icons per item ---- */
.nfses-page .menu-actions-container .dropdown-menu.nfses-top-actions > li > a {
  display: flex;
  align-items: center;
  gap: 10px;
}

.nfses-page .menu-actions-container .dropdown-menu.nfses-top-actions .fa {
  flex: 0 0 auto;
  display: block;
  font-size: 15px;
  color: #6f42c1;
}

.nfses-page .menu-actions-container .dropdown-menu.nfses-top-actions .nfses-action-pdf .fa {
  color: #138496;
}

/* ---- Table footer totals ---- */
.nfses-page table.table > tfoot > tr > td {
  border-top: 2px solid #ece9f1;
  background: #faf9fc;
  color: #2b2240;
}

.nfses-foot-label { text-align: right; color: #9e94ad; font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: 0.03em; }

/* ==========================================================================
   Modal "Baixar PDF em lote" (#downloadPdfBatchModal)
   Escopo: .nfses-pdf-modal (classe unica desta feature) — o modal e movido
   para a frente pelo Bootstrap, por isso nao depende do ancestral .nfses-page.
   ========================================================================== */

.nfses-pdf-modal .modal-content {
  border: none;
  border-radius: 12px;
  box-shadow: 0 12px 40px rgba(43, 34, 64, 0.18);
  color: #2b2240;
}

/* ---- Header ---- */
.nfses-pdf-modal .nfses-pdf-head {
  border-bottom: 1px solid #f0edf4;
  padding: 18px 20px;
}

.nfses-pdf-modal .nfses-pdf-head-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-right: 24px;
}

.nfses-pdf-modal .nfses-pdf-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: #e6f7f9;
  color: #138496;
  font-size: 18px;
}

.nfses-pdf-modal .nfses-pdf-titles {
  min-width: 0;
}

.nfses-pdf-modal .nfses-pdf-title {
  margin: 0;
  font-weight: 700;
  font-size: 17px;
  color: #2b2240;
}

.nfses-pdf-modal .nfses-pdf-subtitle {
  margin: 2px 0 0;
  font-size: 13px;
  color: #7d728c;
}

.nfses-pdf-modal .nfses-pdf-close {
  opacity: 0.6;
  font-size: 22px;
}

.nfses-pdf-modal .nfses-pdf-close:hover {
  opacity: 1;
}

/* ---- Body ---- */
.nfses-pdf-modal .nfses-pdf-body {
  padding: 22px 20px;
}

/* Estado 0: formulario (selecao de periodo) */
.nfses-pdf-modal .nfses-pdf-dates {
  display: flex;
  gap: 12px;
  margin-bottom: 14px;
}

.nfses-pdf-modal .nfses-pdf-date-field {
  flex: 1 1 0;
  min-width: 0;
}

.nfses-pdf-modal .nfses-pdf-date-label {
  display: block;
  font-size: 12px;
  font-weight: 600;
  color: #6b6577;
  margin-bottom: 6px;
}

.nfses-pdf-modal .nfses-pdf-date-input {
  width: 100%;
  height: 38px;
  border: 1px solid #d8d2e2;
  border-radius: 8px;
  color: #2b2240;
}

.nfses-pdf-modal .nfses-pdf-date-input:focus {
  border-color: #17a2b8;
  box-shadow: 0 0 0 2px rgba(23, 162, 184, 0.15);
  outline: none;
}

.nfses-pdf-modal .nfses-pdf-date-input--invalid,
.nfses-pdf-modal .nfses-pdf-date-input--invalid:focus {
  border-color: #d9534f;
  box-shadow: 0 0 0 2px rgba(217, 83, 79, 0.15);
}

/* Box de validacao (4 estados: incomplete | order | range | valid) */
.nfses-pdf-modal .nfses-pdf-hint {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 10px 12px;
  border: 1px solid transparent;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.4;
}

.nfses-pdf-modal .nfses-pdf-hint-icon {
  flex: 0 0 auto;
  margin-top: 1px;
}

.nfses-pdf-modal .nfses-pdf-hint--incomplete {
  background: #f4f6f9;
  border-color: #e3e7ed;
  color: #6b7280;
  font-weight: 400;
}
.nfses-pdf-modal .nfses-pdf-hint--incomplete .nfses-pdf-hint-icon { color: #8a90a0; }

.nfses-pdf-modal .nfses-pdf-hint--order {
  background: #fcebea;
  border-color: #f3c9c5;
  color: #c0392b;
  font-weight: 700;
}
.nfses-pdf-modal .nfses-pdf-hint--order .nfses-pdf-hint-icon { color: #d9534f; }

.nfses-pdf-modal .nfses-pdf-hint--range {
  background: #fef4e3;
  border-color: #f5dcae;
  color: #b06f12;
  font-weight: 700;
}
.nfses-pdf-modal .nfses-pdf-hint--range .nfses-pdf-hint-icon { color: #ef9d4e; }

.nfses-pdf-modal .nfses-pdf-hint--valid {
  background: #e7f5ea;
  border-color: #bfe3c7;
  color: #2e7d33;
  font-weight: 700;
}
.nfses-pdf-modal .nfses-pdf-hint--valid .nfses-pdf-hint-icon { color: #43a047; }

/* "Gerar e baixar ZIP" desabilitado: opacidade + cursor not-allowed.
   Sobrepoe o .nfses-page .btn[disabled] (pointer-events:none) para que o
   cursor not-allowed apareca no hover do botao invalido. */
.nfses-pdf-modal .nfses-pdf-foot .nfses-btn-teal[disabled],
.nfses-pdf-modal .nfses-pdf-foot .nfses-btn-teal.is-disabled {
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: auto;
}

/* Estado A: gerando */
.nfses-pdf-modal .nfses-pdf-progress-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}

.nfses-pdf-modal .nfses-pdf-progress-label {
  font-weight: 600;
  color: #2b2240;
  font-size: 14px;
}

.nfses-pdf-modal .nfses-pdf-progress-label .fa-spinner {
  color: #138496;
  margin-right: 4px;
}

.nfses-pdf-modal .nfses-pdf-percent {
  font-weight: 700;
  color: #138496;
  font-size: 15px;
}

.nfses-pdf-modal .nfses-pdf-bar {
  height: 8px;
  border-radius: 6px;
  background: #ece9f1;
  overflow: hidden;
}

.nfses-pdf-modal .nfses-pdf-bar-fill {
  height: 100%;
  border-radius: 6px;
  background: #17a2b8;
  transition: width 0.25s ease;
}

.nfses-pdf-modal .nfses-pdf-help {
  margin: 12px 0 0;
  font-size: 13px;
  color: #7d728c;
}

/* Estado B: sucesso */
.nfses-pdf-modal .nfses-pdf-success {
  text-align: center;
}

.nfses-pdf-modal .nfses-pdf-check {
  width: 64px;
  height: 64px;
  margin: 4px auto 14px;
  border-radius: 50%;
  background: #e6f4ea;
  color: #2e7d32;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 30px;
}

.nfses-pdf-modal .nfses-pdf-success-title {
  margin: 0 0 4px;
  font-weight: 700;
  font-size: 17px;
  color: #2b2240;
}

.nfses-pdf-modal .nfses-pdf-success-sub {
  margin: 0 0 18px;
  font-size: 13px;
  color: #7d728c;
}

.nfses-pdf-modal .nfses-pdf-file {
  display: flex;
  align-items: center;
  gap: 12px;
  text-align: left;
  border: 1px solid #ece9f1;
  border-radius: 10px;
  background: #faf9fc;
  padding: 12px 14px;
}

.nfses-pdf-modal .nfses-pdf-file-icon {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #e6f7f9;
  color: #138496;
  font-size: 18px;
}

.nfses-pdf-modal .nfses-pdf-file-info {
  min-width: 0;
}

.nfses-pdf-modal .nfses-pdf-file-name {
  font-weight: 600;
  color: #2b2240;
  font-size: 14px;
  word-break: break-all;
}

.nfses-pdf-modal .nfses-pdf-file-meta {
  font-size: 12px;
  color: #9e94ad;
  margin-top: 2px;
}

/* Estado D: geracao assincrona iniciada (202) */
.nfses-pdf-modal .nfses-pdf-started {
  text-align: center;
}

.nfses-pdf-modal .nfses-pdf-started-icon {
  width: 64px;
  height: 64px;
  margin: 4px auto 14px;
  border-radius: 50%;
  background: #e6f7f9;
  color: #138496;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
}

/* Estado C: erro */
.nfses-pdf-modal .nfses-pdf-errorbox {
  text-align: center;
}

.nfses-pdf-modal .nfses-pdf-error-icon {
  width: 64px;
  height: 64px;
  margin: 4px auto 14px;
  border-radius: 50%;
  background: #fce8e8;
  color: #c62828;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 28px;
}

.nfses-pdf-modal .nfses-pdf-error-msg {
  margin: 0;
  font-size: 14px;
  color: #2b2240;
}

/* ---- Footer ---- */
.nfses-pdf-modal .nfses-pdf-foot {
  border-top: 1px solid #f0edf4;
  padding: 14px 20px;
}

/* ==========================================================================
   PDFs em lote (#/pdf-zip-exports) — ajustes da tabela de exports
   Escopo: .nfses-pdfzip-table, para nao afetar as demais tabelas .nfses-page.
   ========================================================================== */

/* A regra generica de th:nth-child(6)/(7)/(9) acima (feita para o layout do
   nfses-list) alinha a direita os headers "Criado em" (6) e "Arquivos" (7)
   desta tabela, descolando-os do conteudo das celulas (a esquerda). Aqui essas
   colunas sao textuais: header volta a esquerda, junto do conteudo. */
.nfses-page table.table.nfses-pdfzip-table > thead > tr > th:nth-child(6),
.nfses-page table.table.nfses-pdfzip-table > thead > tr > th:nth-child(7) {
  text-align: left;
}

/* Colunas numericas (Notas, Sucesso, Falhas): header e celula alinhados a
   direita (via .nfses-num-right na view), compactas e sem quebra para os
   numeros ficarem visualmente sob os headers. */
.nfses-page table.table.nfses-pdfzip-table > thead > tr > th.nfses-num-right,
.nfses-page table.table.nfses-pdfzip-table > tbody > tr > td.nfses-num-right {
  text-align: right;
  width: 90px;
  white-space: nowrap;
}

/* Botao de download de shard: compacto, so o icone (nome completo do arquivo
   fica no title/aria-label); varios shards lado a lado com espacamento curto. */
.nfses-page .nfses-pdfzip-shard-btn {
  margin: 2px 4px 2px 0;
  min-width: 32px;
}
