/* ==========================================================================
   InteraEnge - Estilos para Relatórios Acadêmicos ABNT e LaTeX (.tex)
   Padrões ABNT NBR 10719 / NBR 14724 / NBR 6023 e Exportador TeX
   ========================================================================== */

/* Barra de ações de exportação dentro de #results */
.circuit-export-bar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 14px;
  margin-top: 10px;
  border-top: 1px solid var(--ie-rule, #d9d5cc);
  background: var(--ie-raised, #ffffff);
  border-radius: 6px;
}
html[data-theme="dark"] .circuit-export-bar {
  background: var(--ie-raised, #1e2226);
  border-color: var(--ie-rule, #2d3135);
}
.circuit-export-bar .export-label {
  margin-right: auto;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ie-muted, #64748b);
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.circuit-export-bar .btn-export-action {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--ie-rule, #cbd5e1);
  border-radius: 4px;
  background: var(--ie-surface, #ffffff);
  color: var(--ie-ink, #0f172a);
  font: 600 12px/1 var(--font-sans, system-ui, sans-serif);
  cursor: pointer;
  transition: background-color 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}
.circuit-export-bar .btn-export-action:hover {
  border-color: var(--ie-accent, #c2410c);
  color: var(--ie-accent, #c2410c);
  background: var(--ie-soft, #f6e9df);
}
html[data-theme="dark"] .circuit-export-bar .btn-export-action {
  background: var(--ie-surface, #171a1d);
  border-color: var(--ie-rule, #2d3135);
  color: var(--ie-ink, #ebe8e1);
}
html[data-theme="dark"] .circuit-export-bar .btn-export-action:hover {
  background: var(--ie-raised, #1e2226);
  border-color: var(--ie-accent, #f07b3f);
  color: var(--ie-accent, #f07b3f);
}

/* Modal Dialog Genérico para ABNT e LaTeX */
.ie-report-modal {
  position: fixed;
  inset: 0;
  margin: auto;
  width: min(920px, calc(100vw - 32px));
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px);
  background: var(--ie-surface, #ffffff);
  color: var(--ie-ink, #0f172a);
  border: 1px solid var(--ie-rule, #cbd5e1);
  border-radius: 8px;
  padding: 0;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  z-index: 2147483640;
}
.ie-report-modal::backdrop {
  background: rgba(16, 18, 20, 0.65);
  backdrop-filter: blur(2px);
}
html[data-theme="dark"] .ie-report-modal {
  background: #171a1d;
  color: #ebe8e1;
  border-color: #2d3135;
}

/* Cabeçalho do Modal */
.ie-report-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 20px;
  background: var(--ie-raised, #f8fafc);
  border-bottom: 1px solid var(--ie-rule, #e2e8f0);
  gap: 12px;
  flex-wrap: wrap;
}
html[data-theme="dark"] .ie-report-header {
  background: #1e2226;
  border-color: #2d3135;
}
.ie-report-title {
  font: 700 15px/1.2 var(--font-sans, system-ui, sans-serif);
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ie-ink, #0f172a);
}
html[data-theme="dark"] .ie-report-title {
  color: #ffffff;
}
.ie-report-badge {
  font-size: 10px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 999px;
  background: var(--ie-soft, #f6e9df);
  color: var(--ie-accent, #c2410c);
  text-transform: uppercase;
}
html[data-theme="dark"] .ie-report-badge {
  background: #302219;
  color: #f07b3f;
}
.ie-report-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ie-report-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--ie-rule, #cbd5e1);
  border-radius: 4px;
  background: var(--ie-surface, #ffffff);
  color: var(--ie-ink, #0f172a);
  font: 600 12px/1 var(--font-sans, system-ui, sans-serif);
  cursor: pointer;
}
.ie-report-btn:hover {
  border-color: var(--ie-accent, #c2410c);
  color: var(--ie-accent, #c2410c);
}
.ie-report-btn.primary {
  background: var(--ie-accent, #c2410c);
  color: #ffffff;
  border-color: var(--ie-accent, #c2410c);
}
.ie-report-btn.primary:hover {
  opacity: 0.92;
}
html[data-theme="dark"] .ie-report-btn {
  background: #171a1d;
  color: #ebe8e1;
  border-color: #2d3135;
}
html[data-theme="dark"] .ie-report-btn.primary {
  background: var(--ie-accent, #f07b3f);
  color: #101214;
  border-color: var(--ie-accent, #f07b3f);
}
.ie-report-btn-close {
  background: transparent;
  border: none;
  font-size: 18px;
  cursor: pointer;
  color: var(--ie-muted, #64748b);
  padding: 4px 8px;
}
.ie-report-btn-close:hover {
  color: var(--ie-ink, #0f172a);
}

/* Corpo do Modal */
.ie-report-body {
  padding: 24px;
  overflow-y: auto;
  flex: 1;
}

/* Código LaTeX Preview */
.latex-code-container {
  position: relative;
  border: 1px solid var(--ie-rule, #cbd5e1);
  border-radius: 6px;
  background: #0f172a;
  color: #f8fafc;
  overflow: hidden;
}
.latex-code-container textarea {
  width: 100%;
  height: 480px;
  padding: 16px;
  font-family: var(--font-mono, 'IBM Plex Mono', Consolas, monospace);
  font-size: 12.5px;
  line-height: 1.55;
  background: transparent;
  color: #f8fafc;
  border: none;
  resize: vertical;
  box-sizing: border-box;
  outline-offset: -3px;
  white-space: pre;
}

/* Formatação do Documento ABNT */
.abnt-paper {
  background: #ffffff;
  color: #111111;
  font-family: 'Times New Roman', 'Arial', serif;
  font-size: 12pt;
  line-height: 1.5;
  text-align: justify;
  padding: 30mm 20mm 20mm 30mm;
  box-shadow: 0 4px 16px rgba(0,0,0,0.1);
  max-width: 210mm;
  margin: 0 auto;
  box-sizing: border-box;
}

/* Capa / Folha de Rosto ABNT */
.abnt-capa {
  text-align: center;
  min-height: 240mm;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  page-break-after: always;
  padding-bottom: 20mm;
}
.abnt-instituicao {
  font-size: 13pt;
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.abnt-departamento {
  font-size: 11pt;
  text-transform: uppercase;
  color: #333333;
}
.abnt-autor {
  font-size: 12pt;
  font-weight: bold;
  margin: 40mm 0 20mm;
  text-transform: uppercase;
}
.abnt-titulo-bloco {
  margin: 30mm 0;
}
.abnt-titulo {
  font-size: 15pt;
  font-weight: bold;
  text-transform: uppercase;
  line-height: 1.3;
}
.abnt-subtitulo {
  font-size: 12pt;
  font-weight: normal;
  margin-top: 6px;
}
.abnt-natureza {
  margin-left: 50%;
  text-align: justify;
  font-size: 10pt;
  line-height: 1.3;
  margin-bottom: 30mm;
}
.abnt-local-ano {
  font-size: 11pt;
  text-transform: uppercase;
}

/* Seções ABNT */
.abnt-secao {
  margin-top: 24pt;
  margin-bottom: 12pt;
}
.abnt-secao-titulo {
  font-size: 12pt;
  font-weight: bold;
  text-transform: uppercase;
  margin-bottom: 12pt;
}
.abnt-subsecao-titulo {
  font-size: 12pt;
  font-weight: bold;
  margin-top: 14pt;
  margin-bottom: 8pt;
}
.abnt-paragrafo {
  text-indent: 1.25cm;
  margin-bottom: 10pt;
}

/* Tabelas ABNT (Normas IBGE) */
.abnt-tabela-container {
  margin: 16pt 0;
  text-align: center;
}
.abnt-tabela-topo {
  font-size: 10pt;
  text-align: left;
  margin-bottom: 4pt;
}
.abnt-tabela {
  width: 100%;
  border-collapse: collapse;
  font-size: 10pt;
  margin: 0 auto;
}
.abnt-tabela th {
  border-top: 1.5pt solid #000000;
  border-bottom: 1pt solid #000000;
  padding: 6pt 8pt;
  text-align: left;
  font-weight: bold;
}
.abnt-tabela td {
  padding: 5pt 8pt;
  border-bottom: 0.5pt solid #cccccc;
  text-align: left;
}
.abnt-tabela tr:last-child td {
  border-bottom: 1.5pt solid #000000;
}
.abnt-tabela-fonte {
  font-size: 9pt;
  text-align: left;
  margin-top: 4pt;
  color: #444444;
}

/* Equações ABNT */
.abnt-equacao {
  text-align: center;
  font-style: italic;
  margin: 14pt 0;
  padding: 6pt 10pt;
  background: #f7f7f7;
  border-radius: 4px;
}
.abnt-equacao-num {
  float: right;
  font-style: normal;
}

/* Referências ABNT (NBR 6023) */
.abnt-referencias {
  font-size: 11pt;
  line-height: 1.35;
}
.abnt-ref-item {
  margin-bottom: 10pt;
  text-indent: 0;
  text-align: left;
}

/* Notificação Toast */
.ie-report-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: #16181b;
  color: #ffffff;
  padding: 10px 20px;
  border-radius: 999px;
  font: 600 13px var(--font-sans, system-ui, sans-serif);
  box-shadow: 0 8px 24px rgba(0,0,0,0.3);
  z-index: 2147483647;
  animation: toastFade 0.25s ease-out;
}
@keyframes toastFade {
  from { opacity: 0; transform: translate(-50%, 10px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}

/* ==========================================================================
   CSS de Impressão Direta (Ctrl+P) - Normas ABNT 3cm / 2cm
   ========================================================================== */
@media print {
  body.ie-report-printing > :not(.ie-report-modal) {
    visibility: hidden;
  }
  .ie-report-modal,
  .ie-report-modal * {
    visibility: visible;
  }
  .ie-report-modal {
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: none !important;
    box-shadow: none !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
  }
  .ie-report-header,
  .ie-report-actions,
  .ie-report-fields,
  .ie-report-note,
  .ie-report-feedback,
  .latex-code-container,
  .circuit-export-bar {
    display: none !important;
  }
  .ie-report-body {
    padding: 0 !important;
    overflow: visible !important;
  }
  .abnt-paper {
    box-shadow: none !important;
    padding: 0 !important;
    max-width: 100% !important;
  }
  @page {
    size: A4 portrait;
    margin: 30mm 20mm 20mm 30mm;
    @top-right { content: counter(page); font: 11pt 'Times New Roman', serif; }
  }
}

/* Academic controls use the existing Lobby roles; the document stays neutral. */
.ie-report-modal [hidden] { display:none!important; }
.ie-report-modal .ie-report-title { margin:0; font-family:var(--font-display,Georgia,serif); font-size:24px; font-weight:400; }
.ie-report-modal .ie-report-actions { flex-wrap:wrap; margin:16px 0; }
.ie-report-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; font-family:var(--font-sans,'IBM Plex Sans',sans-serif); }
.ie-report-fields label { display:grid; gap:4px; min-width:0; }
.ie-report-fields input { width:100%; min-width:0; padding:9px; font:inherit; box-sizing:border-box; }
.ie-report-note,.ie-report-feedback { font:400 13px/1.5 var(--font-sans,'IBM Plex Sans',sans-serif); overflow-wrap:anywhere; }
.ie-report-modal :is(button,input,textarea):focus-visible { outline:2px solid var(--ie-accent,#c2410c); outline-offset:2px; }
.ie-report-modal .latex-code-container { display:block; }
.ie-report-body { overscroll-behavior:contain; min-height:0; }
.abnt-paper { overflow-wrap:anywhere; }
.abnt-paper h1 { font:700 16pt/1.5 'Times New Roman',serif; color:#111; max-width:none; letter-spacing:normal; }
.abnt-paper h2 { font:700 12pt/1.5 'Times New Roman',serif; color:#111; margin:24pt 0 12pt; }
.abnt-paper h3 { font:700 12pt/1.5 'Times New Roman',serif; color:#111; }
.abnt-paper p { color:#111; margin:0 0 12pt; }
.abnt-paper .abnt-capa { min-height:0; display:block; padding:0; }
.abnt-paper dl { text-align:left; }
.abnt-paper dt { font:700 12pt/1.5 'Times New Roman',serif; text-transform:none; color:#111; letter-spacing:normal; }
.abnt-paper dd { margin:0 0 8pt; color:#111; }
.abnt-paper table { width:100%; table-layout:fixed; border-collapse:collapse; margin:12pt 0; font-size:10pt; line-height:1.3; color:#111; }
.abnt-paper caption { text-align:left; font-size:11pt; }
.abnt-paper thead { display:table-header-group; }
.abnt-paper th,.abnt-paper td { padding:5pt; text-align:left; vertical-align:top; overflow-wrap:anywhere; }
.abnt-paper th { border-top:1pt solid #111; border-bottom:1pt solid #111; }
.abnt-paper tr:last-child td { border-bottom:1pt solid #111; }
.abnt-paper td:nth-child(2) { font-variant-numeric:tabular-nums; }
.br-page .br-academic-block { width:100%; padding:0; margin:0; box-shadow:none; font:400 12pt/1.5 'Times New Roman',serif; }
.br-page .br-academic-block .abnt-capa { break-after:auto; page-break-after:auto; }
.br-page .br-academic-block :is(p,td,dd) { overflow-wrap:anywhere; }
@media(max-width:600px) {
 .ie-report-body { padding:12px; }
 .ie-report-fields { grid-template-columns:minmax(0,1fr); }
 .ie-report-modal .abnt-paper { padding:16px; font-size:11pt; }
 .ie-report-modal .ie-report-actions { align-items:stretch; }
 .ie-report-modal .ie-report-actions button { flex:1 1 140px; min-height:40px; white-space:normal; line-height:1.4; padding:8px; }
}
@media print {
 body.ie-report-printing { margin:0; }
 body.ie-report-printing > :not(.ie-report-modal) { display:none!important; }
 .ie-report-modal { display:block!important; overflow:visible!important; }
 .ie-report-preview { overflow:visible!important; }
 .abnt-paper,.ie-report-modal .abnt-paper { padding:0!important; font-size:12pt; }
 .abnt-paper tr { break-inside:avoid; }
 .abnt-paper h2,.abnt-paper h3 { break-after:avoid; }
 .ie-report-export > .abnt-paper { display:block; }
}
@media(prefers-reduced-motion:reduce) { .ie-report-toast { animation:none; } }

.academic-module-actions {margin:24px auto;padding:20px;max-width:1100px;border:1px solid var(--ie-rule);font-family:var(--font-sans);}
.math-line {display:block;margin:10pt 0;padding:6pt 0;font:400 12pt/1.6 'Times New Roman',serif;color:#111;overflow-wrap:anywhere;}
.math-line sup,.math-line sub {font-size:75%;line-height:0;}
.math-frac {display:inline-block;vertical-align:middle;text-align:center;margin:0 .15em;line-height:1.15;}
.math-frac>span {display:block;padding:1pt 3pt;}
.math-frac>span:first-child {border-bottom:1px solid #111;}
.math-root>span {border-top:1px solid #111;}
.abnt-paper .abnt-fonte {font-size:11pt;line-height:1.2;}
.abnt-paper .abnt-referencia {line-height:1;text-align:left;margin-bottom:12pt;}
.academic-module-actions h2 {font:400 28px var(--font-display);}
.abnt-paper figure {margin:16pt 0;break-inside:avoid;}
.abnt-paper figure img {display:block;max-width:100%;height:auto;max-height:180mm;object-fit:contain;}
.abnt-paper figcaption {font:400 11pt/1.2 'Times New Roman',serif;color:#111;}
:is(.ie-report-modal,.br-page) .abnt-paper :is(h1,h2,h3) {font-family:'Times New Roman',Times,serif!important;color:#111!important;}
