/* ═══════════════════════════════════════════════════════════════
   Validador Daimon — Design Tokens & Shared Components
   Para ajustar o esquema de cores, edite apenas a seção :root.
   ═══════════════════════════════════════════════════════════════ */

/* ── Design Tokens ──────────────────────────────────────────── */
:root {
  /* Sidebar */
  --sidebar-w:       260px;
  --sidebar-bg:      #ffffff;
  --sidebar-border:  #e2e8f0;
  --sidebar-text:    #374151;
  --sidebar-muted:   #94a3b8;
  --sidebar-hover:   #fff7ed;
  --sidebar-active:  #ffedd5;
  --topbar-h:        56px;

  /* Brand */
  --brand-dark:      #ea580c;
  --brand-mid:       #f97316;
  --brand-gradient:  linear-gradient(135deg, #ea580c 0%, #f97316 55%, #fb923c 100%);

  /* Accent / Primary */
  --accent:          #ea580c;
  --accent-dark:     #c2410c;
  --accent-light:    #fb923c;
  --accent-bg:       #fff7ed;
  --accent-bg-soft:  #ffedd5;
  --accent-border:   #fed7aa;

  /* Page */
  --page-bg:         #f1f5f9;

  /* Text */
  --text-primary:    #0f172a;
  --text-secondary:  #1e293b;
  --text-muted:      #64748b;
  --text-faint:      #94a3b8;
  --text-body:       #374151;

  /* Surfaces */
  --surface:         #fff;
  --surface-alt:     #f8fafc;
  --surface-muted:   #f1f5f9;

  /* Borders */
  --border:          #e2e8f0;
  --border-light:    #f1f5f9;
  --border-dashed:   #cbd5e1;

  /* Success (azul) */
  --success:         #2563eb;
  --success-dark:    #1d4ed8;
  --success-bg:      #eff6ff;
  --success-soft:    #dbeafe;
  --success-border:  #bfdbfe;

  /* OK / Sem erros (verde) */
  --ok:              #16a34a;
  --ok-dark:         #15803d;
  --ok-bg:           #f0fdf4;
  --ok-soft:         #dcfce7;
  --ok-border:       #bbf7d0;

  /* Warning (âmbar) */
  --warning:         #d97706;
  --warning-text:    #b45309;
  --warning-dark:    #92400e;
  --warning-bg:      #fffbeb;
  --warning-soft:    #fef9c3;
  --warning-border:  #fde68a;

  /* Error (vermelho) */
  --error:           #dc2626;
  --error-dark:      #b91c1c;
  --error-bg:        #fef2f2;
  --error-soft:      #fee2e2;
  --error-border:    #fecaca;

  /* Failure (rosa, para status FALHA de execução) */
  --failure:         #9d174d;
  --failure-bg:      #fce7f3;

  /* Purple (tags de campo) */
  --purple:          #7c3aed;
  --purple-bg:       #f3e8ff;
  --purple-border:   #ddd6fe;

  /* Info */
  --info:            #0891b2;

  /* Border radius */
  --r-sm:   .3rem;
  --r-md:   .5rem;
  --r-lg:   .75rem;
  --r-xl:   .85rem;
  --r-2xl:  1rem;
  --r-pill: 999px;
}

/* ── Base ───────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: 'Segoe UI', system-ui, sans-serif;
  background: var(--page-bg);
}

/* ── App shell ──────────────────────────────────────────────── */
.app-shell {
  display: flex;
  min-height: 100vh;
}

/* ── Sidebar ────────────────────────────────────────────────── */
.sidebar {
  width: var(--sidebar-w);
  flex-shrink: 0;
  background: var(--sidebar-bg);
  border-right: 1.5px solid var(--sidebar-border);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.1) transparent;
  z-index: 100;
}

/* Brand */
.sb-brand {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 1.25rem 1.1rem 1.1rem;
  border-bottom: 1px solid var(--sidebar-border);
  text-decoration: none;
}
.sb-logo {
  height: 34px;
  width: auto;
  flex-shrink: 0;
  object-fit: contain;
}
.sb-brand-text {
  color: var(--text-primary);
  font-size: .95rem;
  font-weight: 700;
  letter-spacing: -.01em;
  line-height: 1.2;
}
.sb-brand-sub {
  color: var(--sidebar-muted);
  font-size: .68rem;
  font-weight: 400;
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* Distribuidora box */
.sb-dist {
  margin: .75rem .75rem 0;
  background: rgba(234,88,12,0.07);
  border: 1px solid rgba(234,88,12,0.2);
  border-radius: .6rem;
  padding: .75rem .85rem .6rem;
}
.sb-dist-label {
  font-size: .65rem;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--sidebar-muted);
  margin-bottom: .25rem;
}
.sb-dist-sigla {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--accent-light);
  line-height: 1.2;
}
.sb-dist-nome {
  font-size: .78rem;
  color: var(--sidebar-text);
  margin-top: .1rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sb-dist-meta {
  display: flex;
  align-items: center;
  gap: .4rem;
  margin-top: .5rem;
}
.sb-dist-badge {
  font-size: .62rem;
  padding: .15rem .45rem;
  border-radius: var(--r-pill);
  background: rgba(0,0,0,0.06);
  color: var(--sidebar-text);
  font-weight: 600;
}
.sb-dist-trocar {
  font-size: .71rem;
  color: var(--accent-light);
  text-decoration: none;
  margin-left: auto;
  opacity: .8;
  display: flex;
  align-items: center;
  gap: 3px;
}
.sb-dist-trocar:hover { opacity: 1; color: var(--accent-light); }
.sb-dist-empty {
  display: flex;
  align-items: center;
  gap: .5rem;
  color: var(--sidebar-muted);
  font-size: .78rem;
}
.sb-dist-empty i { font-size: 1rem; }

/* Nav */
.sb-nav {
  flex: 1;
  padding: .75rem .5rem;
}
.sb-nav-label {
  font-size: .62rem;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--sidebar-muted);
  padding: .5rem .7rem .3rem;
  margin-top: .25rem;
}
.sb-nav-link {
  display: flex;
  align-items: center;
  gap: .65rem;
  padding: .52rem .75rem;
  border-radius: .45rem;
  color: var(--sidebar-text);
  text-decoration: none;
  font-size: .875rem;
  font-weight: 500;
  transition: background .12s, color .12s;
  margin-bottom: 1px;
}
.sb-nav-link i { font-size: 1rem; flex-shrink: 0; }
.sb-nav-link:hover  { background: var(--sidebar-hover); color: var(--text-secondary); }
.sb-nav-link.active { background: var(--sidebar-active); color: var(--brand-dark); font-weight: 600; }
.sb-nav-link.sb-sub { font-size: .8rem; padding: .38rem .75rem .38rem 1.1rem; }

/* Footer */
.sb-footer {
  border-top: 1px solid var(--sidebar-border);
  padding: .85rem .9rem;
}
.sb-user {
  display: flex;
  align-items: center;
  gap: .6rem;
  margin-bottom: .5rem;
}
.sb-user-avatar {
  width: 30px; height: 30px;
  border-radius: 50%;
  background: rgba(0,0,0,0.06);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
}
.sb-user-avatar i { color: var(--sidebar-text); font-size: .95rem; }
.sb-user-info { min-width: 0; }
.sb-user-name {
  font-size: .8rem;
  font-weight: 600;
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sb-user-email {
  font-size: .68rem;
  color: var(--sidebar-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sb-logout {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-size: .78rem;
  color: var(--sidebar-muted);
  text-decoration: none;
  padding: .3rem .4rem;
  border-radius: .35rem;
  transition: background .12s, color .12s;
}
.sb-logout:hover { background: rgba(239,68,68,0.15); color: #fca5a5; }

/* Execução badge */
.sb-exec-badge {
  margin-left: auto;
  font-size: .63rem; font-weight: 700;
  background: #fef08a; color: #854d0e;
  padding: .1rem .45rem; border-radius: var(--r-pill);
  display: inline-flex; align-items: center; gap: .25rem;
}

/* Fonte de validação */
.sb-fonte-box {
  background: var(--surface-muted);
  border: 1px solid var(--border);
  border-radius: .55rem;
  padding: .55rem .75rem .6rem;
}
.sb-fonte-toggle { display: flex; gap: 4px; margin-top: .4rem; }
.sb-fonte-toggle form { flex: 1; margin: 0; }
.sb-fonte-btn {
  width: 100%;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: .35rem;
  color: var(--text-muted);
  font-size: .7rem; font-weight: 600;
  padding: .28rem .2rem;
  cursor: pointer;
  transition: background .12s, color .12s, border-color .12s;
  display: flex; align-items: center; justify-content: center;
  gap: .3rem; white-space: nowrap; line-height: 1.3;
}
.sb-fonte-btn i { font-size: .8rem; }
.sb-fonte-btn:hover { background: var(--accent-bg); color: var(--accent); border-color: var(--accent-border); }
.sb-fonte-btn.active { background: var(--success-soft); border-color: var(--success-border); color: var(--success-dark); }
.sb-fonte-detalhe {
  margin-top: .35rem;
  font-size: .68rem;
  color: var(--text-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sb-fonte-only {
  display: flex; align-items: center; gap: .4rem;
  margin-top: .3rem;
  font-size: .76rem;
  color: var(--text-body);
}
.sb-fonte-only i { font-size: .9rem; color: var(--accent); }

/* ── Main wrap ──────────────────────────────────────────────── */
.main-wrap {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* Mobile topbar */
.topbar {
  height: var(--topbar-h);
  background: var(--sidebar-bg);
  display: flex;
  align-items: center;
  padding: 0 1rem;
  gap: .75rem;
  position: sticky;
  top: 0;
  z-index: 90;
}
.topbar-toggle {
  background: none;
  border: none;
  color: var(--sidebar-text);
  font-size: 1.35rem;
  padding: .25rem .3rem;
  line-height: 1;
  cursor: pointer;
  border-radius: var(--r-sm);
}
.topbar-toggle:hover { background: rgba(0,0,0,0.06); }
.topbar-title { color: var(--text-primary); font-weight: 700; font-size: .95rem; flex: 1; }
.topbar-dist {
  font-size: .75rem;
  background: rgba(234,88,12,0.15);
  color: var(--accent-dark);
  padding: .2rem .55rem;
  border-radius: var(--r-pill);
  font-weight: 600;
  white-space: nowrap;
}

/* Page content */
.page-content { flex: 1; padding: 1.75rem 2rem; }

/* Sidebar overlay (mobile) */
.sb-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.5);
  z-index: 99;
}
.sb-overlay.show { display: block; }

@media (max-width: 991.98px) {
  .sidebar {
    position: fixed;
    left: calc(-1 * var(--sidebar-w));
    top: 0;
    height: 100dvh;
    transition: left .22s ease;
    z-index: 110;
  }
  .sidebar.show { left: 0; }
  .main-wrap { width: 100%; }
  .page-content { padding: 1.25rem 1rem; }
}

@media (min-width: 992px) {
  .topbar { display: none !important; }
}

/* ── Alerts ─────────────────────────────────────────────────── */
.alert { border-radius: .6rem; }

/* ── Animations ─────────────────────────────────────────────── */
@keyframes spin { to { transform: rotate(360deg); } }
.spin { display: inline-block; animation: spin 1s linear infinite; }

/* ══════════════════════════════════════════════════════════════
   SHARED PAGE COMPONENTS
   ══════════════════════════════════════════════════════════════ */

/* ── Page header ────────────────────────────────────────────── */
.page-title { font-weight: 700; color: var(--text-primary); margin-bottom: .2rem; }
.page-sub   { color: var(--text-muted); font-size: .875rem; }

/* ── Section label ──────────────────────────────────────────── */
.section-label {
  font-size: .72rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .07em; color: var(--text-faint);
  margin-bottom: .6rem; margin-top: .25rem;
}
.section-title {
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .08em; color: var(--text-muted); margin-bottom: .75rem;
}

/* ── Breadcrumb ─────────────────────────────────────────────── */
.breadcrumb-bar {
  display: flex; align-items: center; gap: .5rem;
  font-size: .82rem; color: var(--text-muted); margin-bottom: 1.25rem;
}
.breadcrumb-bar a { color: var(--accent); text-decoration: none; font-weight: 500; }
.breadcrumb-bar a:hover { text-decoration: underline; }
.breadcrumb-bar .sep { color: var(--border-dashed); }

/* ── File bar ───────────────────────────────────────────────── */
.file-bar {
  display: flex; align-items: center; gap: .75rem;
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-lg);
  padding: .7rem 1.1rem;
  margin-bottom: 1.75rem;
  flex-wrap: wrap;
}
.file-bar-icon { color: var(--accent); font-size: 1.15rem; }
.file-bar-name { font-weight: 700; font-size: .9rem; color: var(--text-secondary); }
.file-bar-meta { font-size: .75rem; color: var(--text-muted); display: flex; gap: .6rem; flex-wrap: wrap; }
.file-bar-meta span { display: flex; align-items: center; gap: .25rem; }

/* ── Warning / info banners ─────────────────────────────────── */
.no-upload-warn {
  background: var(--warning-bg);
  border: 1.5px solid var(--warning-border);
  border-radius: var(--r-lg);
  padding: 1.25rem 1.4rem;
  display: flex; align-items: center; gap: .85rem;
  margin-bottom: 1.5rem;
}
.no-upload-warn i { font-size: 1.5rem; color: var(--warning); }
.no-upload-warn p { margin: 0; font-size: .875rem; color: var(--warning-dark); }

.exec-banner {
  display: flex; align-items: center; gap: .6rem;
  background: #fefce8;
  border: 1.5px solid #fde047;
  border-radius: .65rem;
  padding: .65rem 1rem;
  font-size: .82rem; color: #854d0e;
  margin-bottom: 1rem;
}

/* ── Status pill system ─────────────────────────────────────── */
.status-pill {
  display: inline-flex; align-items: center; gap: .3rem;
  font-size: .72rem; font-weight: 600;
  padding: .2rem .65rem;
  border-radius: var(--r-pill);
}

/* Smaller variant for card footers */
.pill-sm {
  display: inline-flex; align-items: center; gap: .2rem;
  font-size: .68rem; font-weight: 600;
  padding: .15rem .55rem;
  border-radius: var(--r-pill);
}

/* Color variants — usable on both .status-pill and .pill-sm */
.pill-ok {
  background: var(--ok-soft);
  color: var(--ok-dark);
}
.pill-pronto {
  background: var(--success-soft);
  color: var(--success-dark);
}
.pill-erros, .pill-com-erros {
  background: var(--error-soft);
  color: var(--error);
}
.pill-pendente, .pill-nenhum {
  background: var(--surface-muted);
  color: var(--text-muted);
}
.pill-aviso, .pill-executando {
  background: var(--warning-soft);
  color: var(--warning-text);
}
.pill-falha {
  background: var(--failure-bg);
  color: var(--failure);
}
.pill-nao-critico {
  background: #fff7ed;
  color: #c2410c;
}

/* ── Severity badge ─────────────────────────────────────────── */
.sev-badge {
  display: inline-flex; align-items: center; gap: .25rem;
  padding: .1rem .5rem;
  border-radius: var(--r-sm);
  font-size: .68rem; font-weight: 700;
  white-space: nowrap;
}
.sev-badge.erro  { background: var(--error-soft);   color: var(--error);        border: 1px solid var(--error-border); }
.sev-badge.aviso { background: var(--warning-soft);  color: var(--warning-text); border: 1px solid var(--warning-border); }

/* ── Entity chips (upload, resultados) ──────────────────────── */
.entity-chip {
  display: flex; align-items: center; gap: .4rem;
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: .45rem;
  padding: .35rem .6rem;
  font-size: .78rem;
}
.entity-sigla { font-weight: 700; color: var(--text-secondary); }
.entity-tipo {
  font-size: .62rem; font-weight: 700;
  padding: .05rem .35rem;
  border-radius: 3px;
  margin-left: auto; flex-shrink: 0;
}
.tipo-shp { background: var(--accent-bg-soft); color: var(--accent-dark); }
.tipo-dbf { background: var(--purple-bg);      color: var(--purple); }

/* ── Inline tags (resultados) ───────────────────────────────── */
.ent-tag {
  display: inline-block;
  padding: .1rem .5rem;
  border-radius: var(--r-sm);
  font-size: .72rem; font-weight: 700;
  background: var(--accent-bg);
  color: var(--accent-dark);
  border: 1px solid var(--accent-border);
}
.field-tag {
  font-size: .75rem; font-weight: 600;
  color: var(--purple);
  background: var(--purple-bg);
  padding: .1rem .45rem;
  border-radius: var(--r-sm);
  border: 1px solid var(--purple-border);
}
.type-badge {
  display: inline-block;
  padding: .1rem .5rem;
  border-radius: var(--r-sm);
  font-size: .68rem; font-weight: 700;
  white-space: nowrap;
  background: #fef3c7; color: var(--warning-text); border: 1px solid var(--warning-border);
}
.type-badge.critico { background: var(--error-soft);    color: var(--error);        border-color: var(--error-border); }
.type-badge.aviso   { background: var(--warning-soft);   color: var(--warning-text); border-color: var(--warning-border); }
.type-badge.excecao { background: var(--surface-muted); color: var(--text-muted);   border-color: var(--border-dashed); }

/* ── Error / failure boxes ──────────────────────────────────── */
.error-box, .falha-box {
  background: var(--error-bg);
  border: 1px solid var(--error-border);
  border-radius: var(--r-md);
  padding: .75rem 1rem;
  font-size: .82rem;
  color: var(--error-dark);
  font-family: monospace;
  white-space: pre-wrap;
  word-break: break-all;
}
.falha-box {
  border-width: 1.5px;
  border-radius: var(--r-lg);
  margin-bottom: 1.25rem;
}

/* ── Empty state ────────────────────────────────────────────── */
.empty-state {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--text-faint);
}
.empty-state i { font-size: 2.5rem; display: block; margin-bottom: .5rem; }

/* ── Stat cards (resultados_etapa) ──────────────────────────── */
.stats-row { display: flex; gap: .75rem; flex-wrap: wrap; margin-bottom: 1.5rem; }
.stat-card {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-lg);
  padding: .85rem 1.2rem;
  min-width: 120px;
}
.stat-card.danger  { border-color: var(--error-border);   background: var(--error-bg); }
.stat-card.warning { border-color: var(--warning-border); background: #fefce8; }
.stat-card.success { border-color: var(--success-border); background: var(--success-bg); }
.stat-val  { font-size: 1.5rem; font-weight: 800; color: var(--text-primary); line-height: 1; }
.stat-val.red   { color: var(--error); }
.stat-val.amber { color: var(--warning-text); }
.stat-val.green { color: var(--success); }
.stat-lbl  { font-size: .72rem; color: var(--text-muted); margin-top: .2rem; text-transform: uppercase; letter-spacing: .04em; }

/* ── Error table ────────────────────────────────────────────── */
.err-table-wrap {
  background: var(--surface);
  border: 1.5px solid var(--border);
  border-radius: var(--r-xl);
  overflow: hidden;
}
.err-table { width: 100%; border-collapse: collapse; font-size: .82rem; }
.err-table thead th {
  background: var(--surface-alt);
  padding: .65rem 1rem;
  font-size: .7rem; font-weight: 700; text-transform: uppercase;
  letter-spacing: .05em; color: var(--text-muted);
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.err-table tbody td {
  padding: .6rem 1rem;
  border-bottom: 1px solid var(--border-light);
  vertical-align: top;
}
.err-table tbody tr:last-child td { border-bottom: none; }
.err-table tbody tr:hover td      { background: var(--surface-alt); }

/* ── Pagination ─────────────────────────────────────────────── */
.pag-bar {
  display: flex; align-items: center; justify-content: center; gap: .35rem;
  padding: .85rem;
  border-top: 1px solid var(--border-light);
  flex-wrap: wrap;
}
.pag-link, .pag-cur {
  padding: .3rem .65rem;
  border-radius: .4rem;
  font-size: .8rem; font-weight: 600;
  text-decoration: none;
}
.pag-link { color: var(--accent); background: var(--accent-bg); border: 1px solid var(--accent-border); }
.pag-link:hover { background: var(--accent-bg-soft); }
.pag-cur  { background: var(--accent); color: #fff; border: 1px solid var(--accent); }
.pag-ellipsis { color: var(--text-faint); font-size: .8rem; }

/* ── Filter bar ─────────────────────────────────────────────── */
.filter-bar {
  display: flex; gap: .6rem; align-items: center;
  flex-wrap: wrap; margin-bottom: 1rem;
}
.filter-select {
  border: 1.5px solid var(--border);
  border-radius: var(--r-md);
  padding: .35rem .7rem;
  font-size: .82rem; color: var(--text-body);
  background: var(--surface); cursor: pointer;
}
.filter-select:focus { outline: none; border-color: var(--accent); }
.filter-count { font-size: .78rem; color: var(--text-muted); margin-left: auto; }
.btn-clear-filters {
  font-size: .75rem; color: var(--text-faint);
  background: none; border: none;
  cursor: pointer; padding: .2rem .4rem;
  border-radius: var(--r-sm);
  display: flex; align-items: center; gap: .2rem;
}
.btn-clear-filters:hover { background: var(--surface-muted); color: var(--text-muted); }

/* ── Entity chip (resultados — clicável) ────────────────────── */
.ent-chip {
  display: inline-flex; align-items: center; gap: .3rem;
  background: var(--surface-muted);
  border: 1px solid var(--border);
  border-radius: .45rem;
  padding: .25rem .7rem;
  font-size: .78rem; cursor: pointer;
  text-decoration: none; color: #334155;
  transition: background .12s;
}
.ent-chip:hover, .ent-chip.active { background: var(--accent-bg-soft); border-color: #93c5fd; color: var(--accent-dark); }
.entity-chips { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1.5rem; }
.ent-chip .cnt {
  background: var(--border); color: #475569;
  padding: .02rem .4rem;
  border-radius: var(--r-pill); font-size: .65rem; font-weight: 700;
}
.ent-chip.active .cnt { background: var(--accent-border); color: var(--accent-dark); }

/* ── Chips de classificação (crítico/não crítico/aviso/exceção) ─────── */
.ent-chip.chip-critico:hover,     .ent-chip.chip-critico.active     { background: #fee2e2; border-color: var(--error); color: var(--error); }
.ent-chip.chip-nao-critico:hover, .ent-chip.chip-nao-critico.active { background: #fef3c7; border-color: #f59e0b; color: #b45309; }
.ent-chip.chip-aviso:hover,       .ent-chip.chip-aviso.active       { background: var(--warning-soft); border-color: var(--warning); color: var(--warning-text); }
.ent-chip.chip-excecao:hover,     .ent-chip.chip-excecao.active     { background: var(--surface-muted); border-color: var(--text-faint); color: var(--text-muted); }
.ent-chip.chip-critico.active .cnt     { background: var(--error); color: #fff; }
.ent-chip.chip-nao-critico.active .cnt { background: #f59e0b; color: #fff; }
.ent-chip.chip-aviso.active .cnt       { background: var(--warning); color: #fff; }
.ent-chip.chip-excecao.active .cnt     { background: var(--text-faint); color: #fff; }

/* ── Buttons ────────────────────────────────────────────────── */
.btn-ver, .btn-dl {
  padding: .3rem .75rem;
  border: 1.5px solid var(--accent-border);
  background: var(--accent-bg);
  color: var(--accent-dark);
  border-radius: .45rem;
  font-size: .78rem; font-weight: 600; cursor: pointer;
  text-decoration: none;
  display: inline-flex; align-items: center; gap: .3rem;
  transition: background .12s;
}
.btn-ver:hover { background: var(--accent-bg-soft); color: var(--accent-dark); }
.btn-dl  { border-color: var(--success-border); background: var(--success-bg); color: var(--success-dark); }
.btn-dl:hover { background: var(--success-soft); color: var(--success-dark); }

.btn-exec {
  padding: .3rem .75rem;
  border: none;
  background: var(--accent);
  color: #fff;
  border-radius: .45rem;
  font-size: .78rem; font-weight: 600; cursor: pointer;
  display: inline-flex; align-items: center; gap: .3rem;
  transition: background .12s;
}
.btn-exec:hover            { background: var(--accent-dark); }
.btn-exec.reexec           { background: #6b7280; }
.btn-exec.reexec:hover     { background: #4b5563; }
.btn-exec:disabled         { background: var(--text-faint); cursor: not-allowed; opacity: .7; }

.btn-download {
  display: inline-flex; align-items: center; gap: .35rem;
  padding: .3rem .75rem;
  background: var(--accent-bg); color: var(--accent-dark);
  border: 1.5px solid var(--accent-border);
  border-radius: .4rem;
  font-size: .75rem; font-weight: 600; text-decoration: none;
  transition: background .12s;
}
.btn-download:hover { background: var(--accent-bg-soft); }

/* ── Monospace value / count badge ─────────────────────────── */
.chave-val {
  font-size: .75rem; font-family: monospace;
  background: var(--surface-muted); padding: .1rem .4rem;
  border-radius: var(--r-sm); color: var(--text-body);
  display: inline-block; margin: .1rem .1rem 0 0;
}
.qtd-badge {
  font-size: .7rem; font-weight: 700;
  background: var(--error-soft); color: var(--error);
  padding: .1rem .45rem; border-radius: var(--r-pill);
}
