/* Admin Area Styles */
.nav-rotulo { display: inline-flex; align-items: center; gap: 0.4rem; }
.nav-glyph { display: inline-block; flex: none; vertical-align: middle; }
.nav-glyph-16 { width: 16px; height: 16px; }
.nav-glyph-18 { width: 18px; height: 18px; }
.nav-glyph-20 { width: 20px; height: 20px; }
.nav-preview, .nav-original-icon { display: inline-flex; align-items: center; margin-right: 0.35rem; }
.nav-picker { width: min(46rem, 90vw); max-height: 80vh; padding: 1.25rem; color: var(--color-fg); background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); }
.nav-picker::backdrop { background: rgba(0, 0, 0, 0.5); }
.nav-picker-header, .nav-picker-tabs { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; }
.nav-picker-tabs { justify-content: flex-start; margin: 1rem 0; border-bottom: 1px solid var(--color-border); }
.nav-picker-tabs button { padding: 0.5rem; border: 0; background: transparent; color: var(--color-fg); cursor: pointer; }
.nav-picker-tabs button.active, .nav-icon-option.active { color: var(--color-accent); outline: 2px solid var(--color-accent); }
.nav-picker-body { display: grid; gap: 0.75rem; }
.nav-icon-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(2.8rem, 1fr)); gap: 0.35rem; max-height: 48vh; overflow: auto; }
.nav-icon-option { display: grid; place-items: center; min-height: 2.8rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-bg); color: var(--color-fg); cursor: pointer; }
.nav-upload-preview img { max-width: 64px; max-height: 64px; }

.admin-container {
  padding: 0;
}

.admin-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.admin-sidebar, .admin-overview-card { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 0.75rem; }
.admin-find { box-sizing: border-box; width: 100%; padding: 0.5rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: var(--color-surface); color: var(--color-fg); }
.admin-menu-group h2 { font-size: var(--fs-5); text-transform: uppercase; color: var(--color-muted); margin: 0.5rem 0 0; }
.admin-menu-toggle { display: flex; align-items: center; gap: 0.4rem; width: 100%; padding: 0.4rem 0.25rem; border: 0; border-radius: var(--radius-sm); background: none; color: inherit; font: inherit; text-transform: inherit; text-align: left; cursor: pointer; }
.admin-menu-toggle:hover { color: var(--color-accent); }
.admin-menu-toggle-label { flex: 1 1 auto; }
.admin-group-count { flex: 0 0 auto; padding: 0 0.45rem; border-radius: 999px; background: var(--color-accent-soft); color: var(--color-accent); font-weight: 600; }
.admin-menu-body[hidden], .admin-group-count[hidden] { display: none; }
.admin-menu-item { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.4rem 0.65rem; border-radius: var(--radius-sm); color: var(--color-fg); text-decoration: none; font-size: var(--fs-6); }
.admin-menu-item:hover, .admin-menu-item.active { background: var(--color-accent-soft); color: var(--color-accent); }
.admin-menu-item.active { font-weight: 600; box-shadow: inset 3px 0 var(--color-accent); }
.admin-menu-item small { color: var(--color-muted); }
.admin-menu-item[hidden], .admin-menu-group[hidden], .admin-nav-menus tr[hidden] { display: none; }
.admin-mobile-select { display: none; }
.admin-work { min-width: 0; }
.admin-breadcrumb { color: var(--color-muted); margin: 0 0 0.75rem; font-size: var(--fs-6); }
.admin-breadcrumb a { color: var(--color-accent); }
.admin-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.85rem; }
.admin-overview-card h2 { font-size: var(--fs-8); margin: 0 0 0.5rem; }
.admin-overview-row { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.45rem 0; border-top: 1px solid var(--color-border); color: var(--color-fg); text-decoration: none; font-size: var(--fs-6); }
.admin-overview-row:hover { color: var(--color-accent); }
.admin-overview-value { text-align: right; color: var(--color-muted); }
.admin-overview-value.admin-problem { color: var(--color-error); font-weight: 600; }
.admin-subtabs { display: flex; flex-wrap: wrap; gap: 0.5rem; border-bottom: 1px solid var(--color-border); padding-bottom: 0.5rem; }
.admin-subtabs a { color: var(--color-muted); text-decoration: none; padding: 0.35rem 0.5rem; }
.admin-subtabs a.active { color: var(--color-accent); border-bottom: 2px solid var(--color-accent); }
.admin-nav-section > :not(.admin-nav-save) { display: none; }
.admin-nav-rodape .admin-nav-footer, .admin-nav-acesso .admin-nav-access,
.admin-nav-menus .admin-nav-menus, .admin-nav-tabelas .admin-nav-tables,
.admin-nav-menus .admin-nav-save, .admin-nav-tabelas .admin-nav-save { display: block; }
.admin-nav-section .admin-nav-save { margin-top: 0.75rem; }
.admin-nav-rodape .admin-nav-save, .admin-nav-acesso .admin-nav-save { display: none; }
.nav-order { width: 4rem; margin-right: 0.5rem; }
.admin-content:not(.admin-customizing-spro) > .admin-spro-card { display: none; }
.admin-customizing-spro > :not(.admin-subtabs):not(.admin-spro-card) { display: none; }
@media (max-width: 1100px) { .admin-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 899px) {
  .admin-layout { display: block; }
  .admin-sidebar { margin-bottom: 1rem; }
  .admin-menu { display: none; }
  .admin-mobile-select { display: block; width: 100%; margin-top: 0.5rem; padding: 0.5rem; }
  .admin-overview { grid-template-columns: 1fr; }
}

.admin-container h1 {
  margin: 0 0 1rem 0;
  font-size: var(--fs-16);
  color: var(--color-fg);
}

.admin-tabs {
  display: flex;
  gap: 0.25rem;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 1rem;
  padding-bottom: 0;
}

.admin-tab {
  padding: 0.5rem 1rem;
  font-size: var(--fs-7);
  color: var(--color-muted);
  border-radius: var(--radius-sm) 0.4rem 0 0;
  cursor: pointer;
  background: transparent;
  border: none;
  user-select: none;
  transition: all 0.15s ease;
}

.admin-tab:hover {
  background: var(--color-bg);
  color: var(--color-fg);
}

.admin-tab.active {
  color: var(--color-accent);
  font-weight: 600;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-bottom-color: var(--color-surface);
  margin-bottom: -1px;
}

.admin-main {
  background: var(--color-surface);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  min-height: 400px;
}

.admin-content {
  display: block;
}

.admin-card {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1rem;
  background: var(--color-surface);
  margin-bottom: 1rem;
}

.admin-card h3 {
  margin: 0 0 0.5rem 0;
  font-size: var(--fs-7);
  color: var(--color-fg);
}

.admin-kv {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.5rem;
  margin: 0.5rem 0;
}

.admin-kv div {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-5);
  padding: 0.5rem;
  background: var(--color-bg);
}

.admin-kv b {
  display: block;
  font-size: var(--fs-11);
  font-weight: 700;
  color: var(--color-fg);
}

.admin-kv span {
  font-size: var(--fs-5);
  color: var(--color-muted);
  display: block;
  margin-top: 0.25rem;
}

.admin-cap {
  font-size: var(--fs-5);
  color: var(--color-muted);
  margin: 0.5rem 0 0 0;
}

.admin-opt {
  display: flex;
  gap: 0.5rem;
  align-items: flex-start;
  margin: 0.5rem 0;
  font-size: var(--fs-7);
}

.admin-opt input[type="radio"],
.admin-opt input[type="checkbox"] {
  margin-top: 0.25rem;
  cursor: pointer;
}

.admin-opt label {
  cursor: pointer;
}

.admin-opt b {
  font-weight: 600;
  display: block;
}

.admin-opt small {
  display: block;
  color: var(--color-muted);
  font-size: var(--fs-5);
  margin-top: 0.25rem;
}

.admin-tag {
  display: inline-block;
  font-size: var(--fs-4);
  background: var(--color-accent-soft);
  color: var(--color-accent);
  border-radius: var(--radius-xs);
  padding: 0.1rem 0.35rem;
  margin-left: 0.5rem;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.admin-row {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  flex-wrap: wrap;
}

.admin-assistente-grupo { display: grid; gap: 0.5rem; margin: 0 0 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); padding: 0.75rem; }
.admin-assistente-linha input[type="number"] { width: 8rem; }
.admin-assistente-barra { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }
.admin-assistente-erro[hidden] { display: none; }

.admin-modelo-row {
  display: grid;
  grid-template-columns: 9rem 10rem minmax(12rem, 1fr) auto minmax(5rem, auto);
  gap: 0.5rem;
  align-items: center;
  margin: 0.65rem 0;
}

.admin-modelo-row input {
  min-width: 0;
  padding: 0.45rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
}

.modelos-analisar {
  color: var(--color-muted);
  margin: 0.75rem 0;
}

.admin-btn {
  border: 1px solid var(--color-border);
  background: var(--color-surface);
  border-radius: var(--radius-sm);
  padding: 0.5rem 1rem;
  font-size: var(--fs-6);
  cursor: pointer;
  transition: all 0.15s ease;
  white-space: nowrap;
}

.admin-btn:hover:not(:disabled) {
  background: var(--color-bg);
  border-color: var(--color-muted);
}

.admin-btn:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.admin-btn-primary {
  background: var(--color-accent);
  color: white;
  border-color: var(--color-accent);
  font-weight: 500;
}

.admin-btn-primary:hover:not(:disabled) {
  background: var(--color-link-visited);
  border-color: var(--color-link-visited);
}

.admin-btn-restart {
  background: var(--color-error);
  color: white;
  border-color: var(--color-error);
  font-weight: 500;
}

.admin-btn-restart:hover:not(:disabled) {
  background: var(--color-danger-solid);
  border-color: var(--color-danger-fg);
}

.admin-subheading {
  font-size: var(--fs-7);
  margin: 1.5rem 0 0.75rem 0;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
  color: var(--color-fg);
}

.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-6);
  margin-top: 0.5rem;
}

.admin-table th {
  text-align: left;
  color: var(--color-muted);
  font-weight: 600;
  border-bottom: 1px solid var(--color-border);
  padding: 0.5rem;
  font-size: var(--fs-5);
  text-transform: uppercase;
}

.admin-table td {
  padding: 0.5rem;
  border-bottom: 1px solid var(--color-border);
}

.admin-table tr:hover {
  background: var(--color-bg);
}

/* Reasoning column (RE1): "supported → default" chips; ★ = stored default, struck "Off" = always thinks. */
.admin-table .m-rac .chips { display: flex; flex-wrap: wrap; gap: 2px 3px; margin-bottom: 0.25rem; }
.admin-table .m-rac .chips span { border: 1px solid var(--color-border); border-radius: 12px; padding: 1px 9px; font-size: var(--fs-6); white-space: nowrap; }
.admin-table .m-rac .chips span.def { border-color: var(--color-accent); color: var(--color-accent); font-weight: 600; }
.admin-table .m-rac .chips span.off { color: var(--color-muted); text-decoration: line-through; }

/* --- Processos por módulo (Administração › Processos) ----------------- */

.processos-tabela input[type="text"] {
  width: 100%;
  max-width: 260px;
}

.processos-tabela .admin-btn-sm {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-2);
  background: var(--color-surface);
  color: var(--color-fg);
  padding: 0.15rem 0.45rem;
  font-size: var(--fs-5);
  cursor: pointer;
}

.processos-tabela .admin-btn-sm:hover:not(:disabled) {
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.processos-tabela .admin-btn-sm:disabled {
  opacity: 0.4;
  cursor: default;
}

.processos-ordem {
  white-space: nowrap;
}

.processos-marca {
  color: var(--color-muted);
}

.processos-id {
  color: var(--color-muted);
  font-family: var(--font-mono);
  font-size: var(--fs-5);
}

.processos-tabela tr.processos-inactivo {
  opacity: 0.55;
}

/* --- Rótulos (Administração › Labels) --------------------------------- */

.rotulos-chips {
  display: flex;
  flex-wrap: wrap;
  gap: var(--spacing-xs);
  margin: var(--spacing-sm) 0;
}

.rotulos-chip {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-pill);
  background: var(--color-bg);
  color: var(--color-muted);
  padding: 0.25rem 0.75rem;
  font-size: var(--fs-6);
  cursor: pointer;
}

.rotulos-chip:hover {
  border-color: var(--color-accent);
  color: var(--color-fg);
}

.rotulos-chip.active {
  background: var(--color-accent);
  border-color: var(--color-accent);
  color: var(--color-surface);
  font-weight: 600;
}

.rotulos-filtro {
  margin: var(--spacing-sm) 0;
}

.rotulos-filtro input {
  width: 100%;
  max-width: 22rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-5);
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: var(--fs-6);
}

.admin-tabela-rotulos {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-6);
  margin-top: var(--spacing-sm);
}

.admin-tabela-rotulos th {
  text-align: left;
  color: var(--color-muted);
  font-weight: 600;
  font-size: var(--fs-5);
  text-transform: uppercase;
  padding: 0.4rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
}

.admin-tabela-rotulos td {
  padding: 0.3rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
  vertical-align: middle;
}

.admin-tabela-rotulos tr:hover {
  background: var(--color-bg);
}

.admin-tabela-rotulos .rotulos-col-ordem {
  width: 3rem;
  color: var(--color-muted);
}

.admin-tabela-rotulos .rotulos-col-id {
  width: 14rem;
  font-family: var(--font-mono);
  font-size: var(--fs-5);
  color: var(--color-muted);
  overflow-wrap: anywhere;
}

.admin-tabela-rotulos .rotulos-col-uso {
  width: 6rem;
  color: var(--color-muted);
}

.admin-tabela-rotulos .rotulos-col-acoes {
  width: 8rem;
  white-space: nowrap;
}

.rotulos-input {
  width: 100%;
  box-sizing: border-box;
  padding: 0.3rem 0.4rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-5);
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: var(--fs-6);
}

.rotulos-input:focus {
  outline: none;
  border-color: var(--color-accent);
}

.admin-tabela-rotulos .admin-btn-sm {
  min-width: 1.6rem;
  padding: 0.15rem 0.35rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-5);
  background: var(--color-surface);
  color: var(--color-muted);
  font-size: var(--fs-6);
  cursor: pointer;
}

.admin-tabela-rotulos .admin-btn-sm:hover:not(:disabled) {
  border-color: var(--color-accent);
  color: var(--color-fg);
}

.admin-tabela-rotulos .admin-btn-sm:disabled {
  opacity: 0.4;
  cursor: default;
}

.admin-tabela-rotulos .rotulos-apagar:hover:not(:disabled) {
  border-color: var(--color-error);
  color: var(--color-error);
}

.rotulos-acoes-tabela {
  margin-top: var(--spacing-sm);
}

/* Barra de gravação fixa no fundo: o #content não é o contentor que rola
   (a janela é), por isso `sticky` não a fixava. */
.rotulos-conteudo {
  padding-bottom: 4.5rem;
}

.rotulos-guardar {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 20;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--spacing-sm);
  padding: 0.6rem var(--spacing-md);
  border-top: 1px solid var(--color-border);
  background: var(--color-surface);
  box-shadow: var(--shadow-2);
}

@media (min-width: 900px) {
  .rotulos-guardar {
    left: 300px; /* largura da barra lateral em ecrãs largos */
  }
}

.rotulos-contagem {
  color: var(--color-muted);
  font-size: var(--fs-5);
}

.admin-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

.admin-modal {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.25rem;
  background: var(--color-surface);
  box-shadow: var(--shadow-2);
  min-width: 360px;
  max-width: 460px;
}

.admin-modal > b {
  display: block;
  font-weight: 600;
  margin-bottom: 0.75rem;
  font-size: var(--fs-8);
}

.admin-modal-input {
  width: 100%;
  height: 2rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0 0.5rem;
  margin: 0.5rem 0 1rem 0;
  font-size: var(--fs-7);
  font-family: var(--font-mono);
}

.admin-modal-input:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

.admin-log {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.75rem;
  font-family: var(--font-mono);
  font-size: var(--fs-5);
  color: var(--color-fg);
  overflow-x: auto;
  max-height: 400px;
  overflow-y: auto;
  margin: 0.75rem 0;
  line-height: 1.4;
}

/* Estado da actualização do índice (Administração > Base de conhecimento) */
.kb-indice-estado {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--color-border);
}

.kb-indice-cabeca {
  display: flex;
  gap: 0.5rem;
  align-items: center;
  flex-wrap: wrap;
}

.kb-indice-badge {
  display: inline-block;
  font-size: var(--fs-5);
  font-weight: 600;
  border-radius: var(--radius-pill);
  padding: 0.15rem 0.6rem;
  background: var(--color-accent-soft);
  color: var(--color-accent);
}

.kb-indice-badge[data-estado="completed"] {
  color: var(--color-ok, #1e7b3c);
}

.kb-indice-badge[data-estado="failed"] {
  color: var(--color-error);
}

.kb-indice-badge[data-estado="idle"] {
  background: var(--color-bg);
  color: var(--color-muted);
}

.kb-indice-quando {
  font-size: var(--fs-5);
  color: var(--color-muted);
}

.kb-indice-barra {
  position: relative;
  height: 6px;
  margin: 0.6rem 0 0.25rem 0;
  border-radius: var(--radius-pill);
  background: var(--color-accent-soft);
  overflow: hidden;
}

.kb-indice-barra::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 35%;
  border-radius: var(--radius-pill);
  background: var(--color-accent);
  animation: kb-indice-correr 1.4s ease-in-out infinite;
}

@keyframes kb-indice-correr {
  from { left: -35%; }
  to { left: 100%; }
}

.kb-indice-erro {
  color: var(--color-error);
  font-size: var(--fs-6);
  margin: 0.25rem 0 0 0;
  overflow-wrap: anywhere;
}

@media (prefers-reduced-motion: reduce) {
  .kb-indice-barra::after {
    animation: none;
    width: 100%;
    opacity: 0.5;
  }
}

/* Account tabs */
.account-tabs {
  display: flex;
  gap: 0.25rem;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 1rem;
  padding-bottom: 0;
}

.account-tab {
  padding: 0.5rem 1rem;
  font-size: var(--fs-7);
  color: var(--color-muted);
  border-radius: var(--radius-sm) 0.4rem 0 0;
  cursor: pointer;
  background: transparent;
  border: none;
  user-select: none;
  transition: all 0.15s ease;
}

.account-tab:hover {
  background: var(--color-bg);
  color: var(--color-fg);
}

.account-tab.active {
  color: var(--color-accent);
  font-weight: 600;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-bottom-color: var(--color-surface);
  margin-bottom: -1px;
}

/* Responsive */
@media (max-width: 900px) {
  .admin-kv {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .admin-kv {
    grid-template-columns: 1fr;
  }
  
  .admin-tabs {
    flex-wrap: wrap;
    gap: 0;
  }
  
  .admin-tab {
    flex: 1;
    min-width: 80px;
    border-radius: 0;
  }
  
  .admin-modal {
    min-width: auto;
    width: 90%;
    max-width: none;
  }
}

/* Customizing Styles */

.cust-header {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}

.cust-title-row {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
}

.cust-title-row > div:first-child > h3 {
  margin: 0 0 0.25rem 0;
}

.cust-title-row > div:last-child {
  display: flex;
  gap: 0.5rem;
}

.cust-chips {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin: 1rem 0;
}

.cust-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 0.35rem 0.75rem;
  font-size: var(--fs-6);
  cursor: pointer;
  background: var(--color-surface);
  transition: all 0.15s ease;
  user-select: none;
}

.cust-chip:hover:not(.cust-chip-add):not(.cust-chip-manage) {
  background: var(--color-bg);
  border-color: var(--color-muted);
}

.cust-chip-active {
  background: var(--color-accent);
  color: white;
  border-color: var(--color-accent);
}

.cust-chip b {
  font-weight: 600;
}

.cust-chip-add,
.cust-chip-manage {
  border-style: dashed;
  color: var(--color-accent);
  cursor: pointer;
}

.cust-chip-add:hover,
.cust-chip-manage:hover {
  background: var(--color-accent-soft);
}

.cust-toolbar {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 1rem;
}

.cust-search {
  flex: 1;
  min-width: 200px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.5rem;
  font-size: var(--fs-6);
}

.cust-search:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

.cust-count {
  font-size: var(--fs-5);
  color: var(--color-muted);
}

.cust-actions {
  display: flex;
  gap: 0.35rem;
  justify-content: flex-end;
  padding: 0.5rem;
}

.cust-btn-editar,
.cust-btn-apagar {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: var(--fs-reading);
  padding: 0.35rem;
  color: var(--color-muted);
  transition: color 0.15s ease;
}

.cust-btn-editar:hover,
.cust-btn-apagar:hover {
  color: var(--color-fg);
}

.cust-btn-apagar:hover {
  color: var(--color-error);
}

/* Overlay e Painel */

.cust-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1001;
}

.cust-painel {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  width: 90%;
  max-width: 430px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: var(--shadow-2);
}

.cust-painel h3 {
  margin: 0 0 1rem 0;
  font-size: var(--fs-8);
  color: var(--color-fg);
}

.cust-field {
  margin-bottom: 1.25rem;
}

.cust-field > label {
  display: block;
  font-weight: 600;
  font-size: var(--fs-6);
  margin-bottom: 0.5rem;
  color: var(--color-fg);
}

.cust-field input[type="text"],
.cust-field select,
.cust-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.5rem;
  font-size: var(--fs-6);
  font-family: inherit;
  color: var(--color-fg);
  background: var(--color-surface);
}

.cust-field input[type="text"]:focus,
.cust-field select:focus,
.cust-field textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

.cust-field input:disabled {
  background: var(--color-bg);
  color: var(--color-muted);
}

.cust-select {
  appearance: none;
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  padding-right: 2rem;
}

.cust-help {
  font-size: var(--fs-5);
  color: var(--color-muted);
  margin-top: 0.35rem;
}

.cust-sugestoes {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  margin-top: 0.5rem;
  background: var(--color-bg);
  max-height: 200px;
  overflow-y: auto;
}

.cust-sug-item {
  padding: 0.5rem;
  border-bottom: 1px solid var(--color-border);
  cursor: pointer;
  font-size: var(--fs-6);
  transition: background 0.1s ease;
}

.cust-sug-item:hover,
.cust-sug-selected {
  background: var(--color-accent-soft);
}

.cust-sug-item:last-child {
  border-bottom: none;
}

.cust-checkboxes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.5rem 0;
}

.cust-cbx {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 0.35rem 0.75rem;
  font-size: var(--fs-6);
  cursor: pointer;
  background: var(--color-surface);
  user-select: none;
  transition: all 0.1s ease;
}

.cust-cbx:hover {
  border-color: var(--color-accent);
}

.cust-cbx input[type="checkbox"] {
  cursor: pointer;
}

.cust-cbx.on {
  background: var(--color-accent-soft);
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.cust-cbx-add {
  border-style: dashed;
  color: var(--color-accent);
}

.cust-warn {
  background: var(--color-warn-bg);
  color: var(--color-warn-fg);
  font-size: var(--fs-6);
  padding: 0.5rem;
  border-radius: var(--radius-sm);
}

.cust-painel-botoes {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
}

.cust-painel-botoes .admin-btn {
  margin: 0;
}

/* Import preview */

.cust-import-results {
  margin: 1rem 0;
}

.cust-import-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-5);
}

.cust-import-table th {
  text-align: left;
  background: var(--color-bg);
  padding: 0.5rem;
  border-bottom: 1px solid var(--color-border);
  font-weight: 600;
}

.cust-import-table td {
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
}

.cust-import-ok {
  color: var(--color-ok, #1e7b3c);
  font-weight: 500;
}

.cust-import-warn {
  color: var(--color-warn-fg);
}

.cust-import-mut {
  color: var(--color-muted);
}

/* Gerenciar áreas */

.cust-painel-gerir-areas {
  max-width: 500px;
}

.cust-areas-lista {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.cust-area-item {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem;
  border-bottom: 1px solid var(--color-border);
}

.cust-area-item:last-child {
  border-bottom: none;
}

.cust-area-info {
  flex: 1;
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.cust-area-nome {
  flex: 1;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.35rem 0.5rem;
  font-size: var(--fs-6);
}

.cust-area-count {
  font-size: var(--fs-5);
  color: var(--color-muted);
  white-space: nowrap;
}

.cust-area-btns {
  display: flex;
  gap: 0.25rem;
}

.cust-area-btns button {
  padding: 0.35rem 0.5rem;
  font-size: var(--fs-5);
}

/* Undo toast */

.cust-undo-toast {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-fg);
  color: white;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-sm);
  display: flex;
  gap: 1rem;
  align-items: center;
  box-shadow: var(--shadow-2);
  z-index: 1002;
}

.cust-undo-toast .admin-btn {
  padding: 0.35rem 0.75rem;
  font-size: var(--fs-5);
  border-color: white;
  color: var(--color-fg);
}

.cust-undo-toast .admin-btn:hover {
  background: white;
}

/* Status badges */

.cust-verify-ok {
  color: var(--color-ok, #1e7b3c);
  font-weight: 500;
}

.cust-verify-warn {
  color: var(--color-warn-fg);
}

.cust-verify-mut {
  color: var(--color-muted);
}

/* Documentos Styles */
.doc-cor-amostra {
  display: inline-block;
  width: 20px;
  height: 20px;
  border-radius: 3px;
  border: 1px solid var(--color-border);
  vertical-align: middle;
  margin-right: 0.5rem;
}


/* Customizing Styles */

.cust-header {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
  flex-wrap: wrap;
}

.cust-title-row {
  display: flex;
  gap: 1rem;
  justify-content: space-between;
  align-items: flex-start;
  width: 100%;
}

.cust-title-row > div:first-child > h3 {
  margin: 0 0 0.25rem 0;
}

.cust-title-row > div:last-child {
  display: flex;
  gap: 0.5rem;
}

.cust-chips {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin: 1rem 0;
}

.cust-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 0.35rem 0.75rem;
  font-size: var(--fs-6);
  cursor: pointer;
  background: var(--color-surface);
  transition: all 0.15s ease;
  user-select: none;
}

.cust-chip:hover:not(.cust-chip-add):not(.cust-chip-manage) {
  background: var(--color-bg);
  border-color: var(--color-muted);
}

.cust-chip-active {
  background: var(--color-accent);
  color: white;
  border-color: var(--color-accent);
}

.cust-chip b {
  font-weight: 600;
}

.cust-chip-add,
.cust-chip-manage {
  border-style: dashed;
  color: var(--color-accent);
  cursor: pointer;
}

.cust-chip-add:hover,
.cust-chip-manage:hover {
  background: var(--color-accent-soft);
}

.cust-toolbar {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin-bottom: 1rem;
}

.cust-search {
  flex: 1;
  min-width: 200px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.5rem;
  font-size: var(--fs-6);
}

.cust-search:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

.cust-count {
  font-size: var(--fs-5);
  color: var(--color-muted);
}

.cust-actions {
  display: flex;
  gap: 0.35rem;
  justify-content: flex-end;
  padding: 0.5rem;
}

.cust-btn-editar,
.cust-btn-apagar {
  background: transparent;
  border: none;
  cursor: pointer;
  font-size: var(--fs-reading);
  padding: 0.35rem;
  color: var(--color-muted);
  transition: color 0.15s ease;
}

.cust-btn-editar:hover,
.cust-btn-apagar:hover {
  color: var(--color-fg);
}

.cust-btn-apagar:hover {
  color: var(--color-error);
}

/* Overlay e Painel */

.cust-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.25);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1001;
}

.cust-painel {
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  width: 90%;
  max-width: 430px;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: var(--shadow-2);
}

.cust-painel h3 {
  margin: 0 0 1rem 0;
  font-size: var(--fs-8);
  color: var(--color-fg);
}

.cust-field {
  margin-bottom: 1.25rem;
}

.cust-field > label {
  display: block;
  font-weight: 600;
  font-size: var(--fs-6);
  margin-bottom: 0.5rem;
  color: var(--color-fg);
}

.cust-field input[type="text"],
.cust-field select,
.cust-field textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.5rem;
  font-size: var(--fs-6);
  font-family: inherit;
  color: var(--color-fg);
  background: var(--color-surface);
}

.cust-field input[type="text"]:focus,
.cust-field select:focus,
.cust-field textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

.cust-field input:disabled {
  background: var(--color-bg);
  color: var(--color-muted);
}

.cust-select {
  appearance: none;
  background-repeat: no-repeat;
  background-position: right 0.5rem center;
  padding-right: 2rem;
}

.cust-help {
  font-size: var(--fs-5);
  color: var(--color-muted);
  margin-top: 0.35rem;
}

.cust-sugestoes {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  margin-top: 0.5rem;
  background: var(--color-bg);
  max-height: 200px;
  overflow-y: auto;
}

.cust-sug-item {
  padding: 0.5rem;
  border-bottom: 1px solid var(--color-border);
  cursor: pointer;
  font-size: var(--fs-6);
  transition: background 0.1s ease;
}

.cust-sug-item:hover,
.cust-sug-selected {
  background: var(--color-accent-soft);
}

.cust-sug-item:last-child {
  border-bottom: none;
}

.cust-checkboxes {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.5rem 0;
}

.cust-cbx {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 0.35rem 0.75rem;
  font-size: var(--fs-6);
  cursor: pointer;
  background: var(--color-surface);
  user-select: none;
  transition: all 0.1s ease;
}

.cust-cbx:hover {
  border-color: var(--color-accent);
}

.cust-cbx input[type="checkbox"] {
  cursor: pointer;
}

.cust-cbx.on {
  background: var(--color-accent-soft);
  border-color: var(--color-accent);
  color: var(--color-accent);
}

.cust-cbx-add {
  border-style: dashed;
  color: var(--color-accent);
}

.cust-warn {
  background: var(--color-warn-bg);
  color: var(--color-warn-fg);
  font-size: var(--fs-6);
  padding: 0.5rem;
  border-radius: var(--radius-sm);
}

.cust-painel-botoes {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--color-border);
}

.cust-painel-botoes .admin-btn {
  margin: 0;
}

/* Import preview */

.cust-import-results {
  margin: 1rem 0;
}

.cust-import-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-5);
}

.cust-import-table th {
  text-align: left;
  background: var(--color-bg);
  padding: 0.5rem;
  border-bottom: 1px solid var(--color-border);
  font-weight: 600;
}

.cust-import-table td {
  padding: 0.35rem 0.5rem;
  border-bottom: 1px solid var(--color-border);
}

.cust-import-ok {
  color: var(--color-ok, #1e7b3c);
  font-weight: 500;
}

.cust-import-warn {
  color: var(--color-warn-fg);
}

.cust-import-mut {
  color: var(--color-muted);
}

/* Gerenciar áreas */

.cust-painel-gerir-areas {
  max-width: 500px;
}

.cust-areas-lista {
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  overflow: hidden;
}

.cust-area-item {
  display: flex;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem;
  border-bottom: 1px solid var(--color-border);
}

.cust-area-item:last-child {
  border-bottom: none;
}

.cust-area-info {
  flex: 1;
  display: flex;
  gap: 0.75rem;
  align-items: center;
}

.cust-area-nome {
  flex: 1;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  padding: 0.35rem 0.5rem;
  font-size: var(--fs-6);
}

.cust-area-count {
  font-size: var(--fs-5);
  color: var(--color-muted);
  white-space: nowrap;
}

.cust-area-btns {
  display: flex;
  gap: 0.25rem;
}

.cust-area-btns button {
  padding: 0.35rem 0.5rem;
  font-size: var(--fs-5);
}

/* Undo toast */

.cust-undo-toast {
  position: fixed;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  background: var(--color-fg);
  color: white;
  padding: 0.75rem 1rem;
  border-radius: var(--radius-sm);
  display: flex;
  gap: 1rem;
  align-items: center;
  box-shadow: var(--shadow-2);
  z-index: 1002;
}

.cust-undo-toast .admin-btn {
  padding: 0.35rem 0.75rem;
  font-size: var(--fs-5);
  border-color: white;
  color: var(--color-fg);
}

.cust-undo-toast .admin-btn:hover {
  background: white;
}

/* Status badges */

.cust-verify-ok {
  color: var(--color-ok, #1e7b3c);
  font-weight: 500;
}

.cust-verify-warn {
  color: var(--color-warn-fg);
}

.cust-verify-mut {
  color: var(--color-muted);
}

/* Option A page polish */
.admin-container h1,.admin-content h1{color:var(--color-title);font-size:var(--fs-17);font-weight:700;letter-spacing:-.03em;line-height:1.2}
.admin-sidebar,.admin-overview-card,.admin-card,.admin-main{border-color:var(--color-border-soft);border-radius:var(--radius-panel);box-shadow:var(--shadow-panel)}
.admin-overview-card h2,.admin-card h3{color:var(--color-title);font-weight:700}
.admin-overview-row{border-top-color:var(--color-border-soft)}
.admin-overview-row:hover{background:var(--color-panel-soft)}
.admin-menu-item.active{box-shadow:inset 3px 0 var(--color-highlight)}
.admin-tabs{border-bottom-color:var(--color-border-soft);overflow-x:auto}
.admin-tab{white-space:nowrap}
.admin-table th{background:var(--color-panel-soft);color:var(--color-subtle);letter-spacing:.04em}
.admin-table td{border-bottom-color:var(--color-border-soft)}
@media(max-width:600px){.admin-container h1,.admin-content h1{font-size:var(--fs-15)}}

/* Option A page polish: Account, Screenshots, Users */
.users-heading.page-header-row{align-items:flex-start}
.account-container .page-title,.admin-content .page-title{margin:0}

/* RAG Status Admin Panel */
.admin-rag-status-panel { padding: 1rem; }
.admin-rag-status-panel h1 { font-size: var(--fs-14); font-weight: 700; margin: 0 0 0.5rem; color: var(--color-title); }
.admin-rag-status-panel .descricao { font-size: var(--fs-6); color: var(--color-muted); margin: 0 0 1rem; }
.rag-status-loading { text-align: center; padding: 2rem; color: var(--color-muted); display: flex; align-items: center; justify-content: center; }

.rag-status-security-note {
  background: var(--color-panel-soft);
  border: 1px solid var(--color-border);
  border-left: 3px solid var(--color-ok, #1e7b3c);
  padding: 0.75rem;
  border-radius: var(--radius-sm);
  margin: 1rem 0 1.5rem;
  font-size: var(--fs-6);
}

.rag-status-security-note strong { color: var(--color-ok, #1e7b3c); }
.rag-status-security-note strong::after { content: ' — '; }

.rag-section {
  margin-bottom: 2rem;
  padding: 1rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.rag-section h2 {
  font-size: var(--fs-7);
  font-weight: 700;
  color: var(--color-title);
  margin: 0 0 1rem;
  border-bottom: 2px solid var(--color-border);
  padding-bottom: 0.5rem;
}

.backends-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 1rem;
}

.backend-card {
  padding: 1rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-bg);
  border-left: 4px solid var(--color-muted);
}

.backend-card.status-ok { border-left-color: var(--color-ok, #1e7b3c); }
.backend-card.status-degraded { border-left-color: var(--color-warn-fg); }
.backend-card.status-unavailable { border-left-color: var(--color-error, #dc2626); }

.backend-header {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 0.75rem;
}

.backend-name {
  font-size: var(--fs-7);
  font-weight: 600;
  margin: 0;
  color: var(--color-title);
}

.backend-status {
  font-size: var(--fs-6);
  font-weight: 500;
  padding: 0.2rem 0.5rem;
  border-radius: var(--radius-sm);
  background: var(--color-panel-soft);
  color: var(--color-muted);
}

.backend-card.status-ok .backend-status { color: var(--color-ok, #1e7b3c); }
.backend-card.status-degraded .backend-status { color: var(--color-warn-fg); }
.backend-card.status-unavailable .backend-status { color: var(--color-error, #dc2626); }

.backend-details { }
.detail-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.35rem 0;
  font-size: var(--fs-6);
  border-bottom: 1px solid var(--color-border);
}

.detail-row:last-child { border-bottom: none; }
.detail-label { font-weight: 500; color: var(--color-muted); }
.detail-value { color: var(--color-fg); }
.reason-row .detail-value { color: var(--color-warn-fg); font-weight: 500; }

/* Per-surface retrieval report (R1): wraps instead of overflowing on narrow screens. */
.rag-report-sub { font-size: var(--fs-7); margin: 1.25rem 0 0.5rem; color: var(--color-title); }
.rag-report-section .backends-grid { grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
.rag-report-section .detail-row { gap: 0.75rem; flex-wrap: wrap; }
.rag-report-section .detail-value { text-align: right; overflow-wrap: anywhere; }
.rag-report-dualwrite, .rag-report-backfill { max-width: 36rem; }
.rag-report-blockers { padding-top: 0.5rem; font-size: var(--fs-6); }
.rag-report-blockers ul { margin: 0.25rem 0 0; padding-left: 1.25rem; color: var(--color-warn-fg); }
.rag-report-blockers li { overflow-wrap: anywhere; }

.rag-surfaces-table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-6);
}

.rag-surfaces-table th {
  background: var(--color-panel-soft);
  color: var(--color-muted);
  text-align: left;
  padding: 0.75rem;
  font-weight: 600;
  border-bottom: 2px solid var(--color-border);
}

.rag-surfaces-table td {
  padding: 0.75rem;
  border-bottom: 1px solid var(--color-border);
}

.rag-surfaces-table tbody tr:hover { background: var(--color-panel-soft); }

.index-info { }
.index-info .detail-row {
  display: flex;
  justify-content: flex-start;
  gap: 2rem;
}

.rag-status-info-note {
  margin-top: 1.5rem;
  padding: 1rem;
  background: var(--color-panel-soft);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: var(--fs-6);
  color: var(--color-fg);
}

.rag-status-info-note strong {
  color: var(--color-muted);
  font-weight: 600;
}

.rag-status-info-note strong::after {
  content: ' — ';
}

/* Client Master Data Administration */
.admin-cliente-master { padding: 1rem; }

.admin-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 2px solid var(--color-border);
}

.admin-header h2 {
  margin: 0;
  font-size: var(--fs-8);
  color: var(--color-fg);
}

.admin-cliente-master-content {
  min-height: 400px;
}

.admin-cliente-list-container {
  margin-bottom: 1.5rem;
}

.admin-search-bar {
  margin-bottom: 1rem;
}

.admin-find {
  box-sizing: border-box;
  width: 100%;
  max-width: 300px;
  padding: 0.5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: var(--fs-6);
}

.admin-find:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

.admin-empty-state {
  text-align: center;
  padding: 3rem 1rem;
  color: var(--color-muted);
}

.admin-empty-state p {
  margin: 0.5rem 0;
  font-size: var(--fs-6);
}

.admin-empty-state p.text-muted {
  color: var(--color-muted);
}

.admin-cliente-form {
  max-width: 800px;
  padding: 1.5rem;
  background: var(--color-surface);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}

.admin-form-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--color-border);
}

.admin-form-header h3 {
  margin: 0;
  font-size: var(--fs-7);
  color: var(--color-fg);
}

.form-group {
  margin-bottom: 1.25rem;
}

.form-group label {
  display: block;
  font-weight: 600;
  font-size: var(--fs-6);
  margin-bottom: 0.5rem;
  color: var(--color-fg);
}

.form-group input[type="text"],
.form-group input[type="email"],
.form-group select,
.form-group textarea {
  width: 100%;
  max-width: 400px;
  box-sizing: border-box;
  padding: 0.5rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: var(--color-surface);
  color: var(--color-fg);
  font-size: var(--fs-6);
  font-family: inherit;
}

.form-group input[type="text"]:focus,
.form-group input[type="email"]:focus,
.form-group select:focus,
.form-group textarea:focus {
  outline: none;
  border-color: var(--color-accent);
  box-shadow: 0 0 0 2px var(--color-accent-soft);
}

.form-group input[type="text"]:disabled,
.form-group select:disabled {
  background: var(--color-bg);
  color: var(--color-muted);
  cursor: not-allowed;
}

.form-group textarea {
  max-width: 100%;
  min-height: 100px;
  resize: vertical;
}

.form-group small {
  display: block;
  margin-top: 0.35rem;
  font-size: var(--fs-5);
  color: var(--color-muted);
}

.form-group.form-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.form-group.form-checkbox input[type="checkbox"] {
  margin-top: 0.35rem;
  cursor: pointer;
}

.form-group.form-checkbox label {
  margin-bottom: 0;
  font-weight: 500;
}

.form-actions {
  display: flex;
  gap: 0.75rem;
  align-items: center;
  margin-top: 2rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--color-border);
}

.form-meta {
  margin-left: auto;
  color: var(--color-muted);
  font-size: var(--fs-5);
}

#form-messages {
  margin-top: 1rem;
}

#form-messages .loading,
#form-messages .success,
#form-messages .error {
  padding: 0.75rem 1rem;
  border-radius: var(--radius-sm);
  font-size: var(--fs-6);
}

#form-messages .loading {
  background: var(--color-accent-soft);
  color: var(--color-accent);
}

#form-messages .success {
  background: var(--color-ok-bg);
  color: var(--color-ok-fg);
}

#form-messages .error {
  background: var(--color-danger-bg);
  color: var(--color-danger-fg);
}

.hint {
  font-size: var(--fs-5);
  color: var(--color-muted);
}

.text-muted {
  color: var(--color-muted);
}

/* Buttons (.btn-*) are defined only in base.css (docs/ui/buttons.md). */

.loading {
  text-align: center;
  padding: 2rem;
  color: var(--color-muted);
}

.error {
  padding: 1rem;
  background: var(--color-danger-bg);
  color: var(--color-danger-fg);
  border-radius: var(--radius-sm);
  border-left: 4px solid var(--color-danger-fg);
}

/* Admin > Coding: state tables and field groups */
.admin-coding-grupo { margin: 0 0 1rem; border: 1px solid var(--color-border-soft); border-radius: var(--radius-panel); padding: .75rem 1rem; }
.admin-coding-estados { width: 100%; border-collapse: collapse; }
.admin-coding-estados th, .admin-coding-estados td { text-align: left; padding: .25rem .4rem; }
.admin-coding-estados input[type="text"] { width: 100%; min-width: 8rem; }
.admin-coding-estados input[type="number"] { width: 5rem; }
.admin-coding-estado.error { color: var(--color-danger, #b00020); }

/* ===== Administration > Appearance > Media & backgrounds (admin_media.js) ===== */
.admin-media { display: grid; gap: var(--spacing-md); min-width: 0; }
.admin-media-head { display: flex; flex-wrap: wrap; gap: var(--spacing-md); align-items: flex-start; justify-content: space-between; }
.admin-media-head h2 { margin: 0; }
.admin-media-actions, .admin-media-botoes { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); align-items: center; }
.admin-media-aviso { padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--color-warn-solid); background: var(--color-warn-bg); color: var(--color-warn-fg); border-radius: var(--radius-md); font-size: var(--fs-12); }
.admin-media-estado { min-height: 0; font-size: var(--fs-12); }
.admin-media-estado.ok, .admin-media-estado.err, .admin-media-estado.info { padding: var(--spacing-sm) var(--spacing-md); border-radius: var(--radius-md); border: 1px solid transparent; }
.admin-media-estado.ok { background: var(--color-ok-bg); color: var(--color-ok-fg); border-color: var(--color-ok-solid); }
.admin-media-estado.err { background: var(--color-danger-bg); color: var(--color-danger-fg); border-color: var(--color-danger-solid); }
.admin-media-estado.info { background: var(--color-info-bg); color: var(--color-info-fg); }
.admin-media-cols { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: var(--spacing-md); align-items: start; }
.admin-media-lado { display: grid; gap: var(--spacing-md); min-width: 0; }
.admin-media h3, .admin-media h4 { margin: 0 0 var(--spacing-sm); }
.admin-media-filtros, .admin-media-ctx { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); margin-bottom: var(--spacing-sm); }
.admin-media-campo { display: grid; gap: var(--spacing-xs); font-size: var(--fs-12); color: var(--color-muted); min-width: 0; margin-bottom: var(--spacing-sm); }
.admin-media-filtros .admin-media-campo, .admin-media-ctx .admin-media-campo { margin-bottom: 0; flex: 1 1 9rem; }
.admin-media-campo input:not([type="range"]), .admin-media-campo select { width: 100%; box-sizing: border-box; background: var(--color-panel-soft); color: var(--color-fg); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--spacing-xs) var(--spacing-sm); }
.admin-media-campo input[type="range"] { width: 100%; accent-color: var(--color-accent); }
.admin-media-campo input:focus-visible, .admin-media-campo select:focus-visible, .admin-media-thumb:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.admin-media-check { display: flex; gap: var(--spacing-sm); align-items: center; font-size: var(--fs-12); margin-bottom: var(--spacing-sm); }
.admin-media-grid { list-style: none; margin: 0 0 var(--spacing-sm); padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr)); gap: var(--spacing-sm); }
.admin-media-thumb { display: grid; gap: var(--spacing-xs); width: 100%; text-align: left; padding: var(--spacing-xs); background: var(--color-panel-soft); color: var(--color-fg); border: 1px solid var(--color-border); border-radius: var(--radius-md); cursor: pointer; font-size: var(--fs-12); }
.admin-media-thumb.sel { border-color: var(--color-accent); background: var(--color-accent-soft); }
.admin-media-thumb img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--radius-sm); background: var(--color-surface); }
.admin-media-thumb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-media-thumb small { color: var(--color-muted); }
.admin-media-vazio { padding: var(--spacing-lg); text-align: center; color: var(--color-muted); border: 1px dashed var(--color-border); border-radius: var(--radius-md); }
.admin-media-detalhe { display: grid; grid-template-columns: minmax(0, 12rem) minmax(0, 1fr); gap: var(--spacing-md); margin-bottom: var(--spacing-sm); }
.admin-media-img { width: 100%; max-height: 9rem; object-fit: contain; background: var(--color-surface); border-radius: var(--radius-sm); }
.admin-media-meta { display: grid; grid-template-columns: auto 1fr; gap: var(--spacing-xs) var(--spacing-sm); margin: 0; font-size: var(--fs-12); }
.admin-media-meta dt { color: var(--color-muted); }
.admin-media-meta dd { margin: 0; overflow-wrap: anywhere; }
.admin-media-usos { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--spacing-xs); font-size: var(--fs-12); }
.admin-media-usos a { color: var(--color-link); overflow-wrap: anywhere; }
.admin-media-prev-wrap { margin-bottom: var(--spacing-sm); }
.admin-media-preview { aspect-ratio: 16 / 7; width: 100%; border: 1px solid var(--color-border); border-radius: var(--radius-md); background-repeat: no-repeat; display: grid; place-items: center; overflow: hidden; }
.admin-media-preview.sem-asset { background-image: none; }
.admin-media-prev-txt { color: var(--color-muted); font-size: var(--fs-12); padding: var(--spacing-sm); text-align: center; }
.admin-media-asset { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); align-items: center; font-size: var(--fs-12); margin-bottom: var(--spacing-sm); }
.admin-media-range { grid-template-columns: 1fr auto; align-items: center; }
.admin-media-range > span { grid-column: 1 / -1; }
.admin-media-campo small, .admin-media-asset small { color: var(--color-muted); font-weight: normal; }
.admin-media .admin-btn-small { padding: 0 var(--spacing-sm); font-size: var(--fs-11); }
.admin-media .admin-btn-danger { border-color: var(--color-danger-solid); color: var(--color-danger-fg); }
.admin-media-upload { display: grid; gap: var(--spacing-xs); }
.admin-media-upload[hidden] { display: none; }
.admin-media [hidden] { display: none; }
.admin-media-abas { display: flex; gap: var(--spacing-xs); border-bottom: 1px solid var(--color-border); }
.admin-media-aba { padding: var(--spacing-xs) var(--spacing-md); border: 1px solid transparent; border-bottom: 0; background: none; color: var(--color-muted); cursor: pointer; border-radius: var(--radius-sm) var(--radius-sm) 0 0; }
.admin-media-aba.ativa { color: var(--color-fg); border-color: var(--color-border); background: var(--color-surface); font-weight: 600; }
.admin-media-aba:focus-visible, .admin-media-linkbtn:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.modelos-painel { padding-top: var(--spacing-md); }
.modelos-painel[hidden] { display: none; }
.admin-media-aba .aba-n { color: var(--color-muted); font-weight: 400; }
.admin-media-linkbtn { background: none; border: 0; padding: 0; color: var(--color-link); text-align: left; cursor: pointer; text-decoration: underline; }
.admin-media-padrao { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(0, 3fr) auto; gap: var(--spacing-md); align-items: center; padding: var(--spacing-sm) 0; border-top: 1px solid var(--color-border); }
.admin-media-padrao-nome { display: grid; }
.admin-media-padrao-nome small { color: var(--color-muted); }
.admin-media-padrao-atual { display: flex; flex-wrap: wrap; gap: var(--spacing-sm); align-items: center; min-width: 0; }
.admin-media-mini { width: 3rem; height: 2rem; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--color-border); flex: none; }
.admin-media-avancada summary { cursor: pointer; font-weight: 600; }
.admin-media-avancada summary:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.admin-media-pol-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); gap: var(--spacing-sm); margin-bottom: var(--spacing-sm); }
.admin-media-marcas { display: flex; flex-wrap: wrap; gap: var(--spacing-md); border: 1px solid var(--color-border); border-radius: var(--radius-sm); margin: 0 0 var(--spacing-sm); padding: var(--spacing-xs) var(--spacing-sm); }
.admin-media-dialogo { max-width: min(36rem, 92vw); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-surface); color: var(--color-fg); padding: var(--spacing-md); }
.admin-media-dialogo::backdrop { background: rgba(0, 0, 0, 0.5); }
.admin-media-opcoes { display: grid; gap: var(--spacing-xs); max-height: 40vh; overflow: auto; border: 1px solid var(--color-border); border-radius: var(--radius-sm); margin: var(--spacing-sm) 0; padding: var(--spacing-xs) var(--spacing-sm); }
.admin-media-opcao { display: flex; gap: var(--spacing-sm); align-items: center; padding: var(--spacing-xs) 0; }
@media (max-width: 900px) {
  .admin-media-cols { grid-template-columns: minmax(0, 1fr); }
  .admin-media-detalhe { grid-template-columns: minmax(0, 1fr); }
  .admin-media-padrao { grid-template-columns: minmax(0, 1fr); }
}
.media-slot[data-media-fit="contain"] { background-size: contain; background-repeat: no-repeat; }

/* Confirmed deletion of client documents (shared dialog) */
.eliminacao-dialogo {
  width: min(40rem, 94vw);
  max-height: 88vh;
  overflow: auto;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-surface);
  color: var(--color-fg);
  padding: var(--spacing-md);
}
.eliminacao-dialogo::backdrop { background: rgba(0, 0, 0, .5); }
.eliminacao-titulo { margin: 0 0 var(--spacing-xs); font-size: var(--fs-h3); }
.eliminacao-alvo { margin: 0 0 var(--spacing-sm); color: var(--color-muted); overflow-wrap: anywhere; }
.eliminacao-estado { margin: 0 0 var(--spacing-sm); }
.eliminacao-erro { color: var(--color-danger-fg); }
.eliminacao-aviso { color: var(--color-accent); }
.eliminacao-ok { color: var(--color-success-fg, var(--color-fg)); font-weight: 600; }
.eliminacao-apagar .eliminacao-seccao-titulo { color: var(--color-danger-fg); }
.eliminacao-bloqueios { border-left: 3px solid var(--color-danger-fg); padding-left: var(--spacing-sm); }
.eliminacao-preservar .eliminacao-seccao-titulo { color: var(--color-muted); }
.eliminacao-seccao { margin: 0 0 var(--spacing-sm); }
.eliminacao-seccao-titulo { margin: 0 0 var(--spacing-xs); font-size: var(--fs-reading); }
.eliminacao-lista { margin: 0; padding-left: 1.2rem; max-height: 12rem; overflow: auto; overflow-wrap: anywhere; }
.eliminacao-limites { color: var(--color-muted); font-size: var(--fs-base); }
.eliminacao-acoes { display: flex; gap: var(--spacing-sm); justify-content: flex-end; flex-wrap: wrap; margin-top: var(--spacing-sm); }
@media (max-width: 900px) {
  .eliminacao-dialogo { width: 96vw; max-height: 92vh; }
  .eliminacao-acoes .btn { flex: 1 1 100%; }
}

/* Protection page (Administration > Systems > Protection). Colours come from variables only. */
.prot-page { display: flex; flex-direction: column; gap: var(--spacing-md); min-width: 0; max-width: 100%; }
.prot-page * { box-sizing: border-box; }
.prot-cabecalho { display: flex; align-items: center; gap: var(--spacing-sm); flex-wrap: wrap; }
.prot-titulo-bloco { flex: 1 1 12rem; min-width: 0; }
.prot-titulo { margin: 0; font-size: var(--fs-5); }
.prot-sub { font-size: var(--fs-6); overflow-wrap: anywhere; }
.prot-colunas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--spacing-md); align-items: start; }
.prot-card { border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); min-width: 0; }
.prot-card-titulo { cursor: pointer; padding: var(--spacing-sm) var(--spacing-md); font-weight: 600; color: var(--color-fg); }
.prot-card-corpo { padding: 0 var(--spacing-md) var(--spacing-md); display: flex; flex-direction: column; gap: var(--spacing-sm); min-width: 0; }
.prot-card-corpo p { margin: 0; }
.prot-fixas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--spacing-xs); }
.prot-fixas li { display: flex; gap: var(--spacing-sm); align-items: flex-start; color: var(--color-muted); overflow-wrap: anywhere; }
.prot-campo { display: flex; flex-direction: column; gap: var(--spacing-xs); min-width: 0; }
.prot-campo input[type="text"], .prot-campo input[type="number"], .prot-campo select, .prot-adicionar input, .prot-adicionar select { width: 100%; min-width: 0; max-width: 100%; }
.prot-marca { display: flex; gap: var(--spacing-sm); align-items: center; }
.prot-lista-titulo { margin: var(--spacing-sm) 0 var(--spacing-xs); font-size: var(--fs-6); }
.prot-linhas { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--spacing-xs); }
.prot-linha { display: flex; gap: var(--spacing-sm); align-items: center; border-bottom: 1px solid var(--color-border); padding: var(--spacing-xs) 0; min-width: 0; }
.prot-linha-nome { font-family: var(--font-mono); overflow-wrap: anywhere; min-width: 0; }
.prot-linha-nota { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
.prot-linha-nome + .prot-remover { margin-left: auto; }
.prot-remover { margin-left: auto; flex: 0 0 auto; min-width: 2.75rem; min-height: 2.75rem; }
.prot-adicionar { display: flex; flex-wrap: wrap; gap: var(--spacing-xs); margin-top: var(--spacing-xs); }
.prot-adicionar .prot-nome { flex: 2 1 10rem; }
.prot-adicionar .prot-nota { flex: 3 1 10rem; }
.prot-adicionar .prot-tipo { flex: 0 1 7rem; width: auto; }
.prot-erro-linha, .prot-page .prot-erro { color: var(--color-error); font-size: var(--fs-6); overflow-wrap: anywhere; }
.prot-hist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--spacing-xs); }
.prot-hist-linha { display: flex; flex-wrap: wrap; gap: var(--spacing-xs) var(--spacing-sm); border-bottom: 1px solid var(--color-border); padding: var(--spacing-xs) 0; overflow-wrap: anywhere; }
.prot-hist-quando { color: var(--color-muted); }
.prot-hist-quem { font-weight: 600; }
.prot-hist-mudanca { flex-basis: 100%; }
.prot-hist-mais { color: var(--color-ok); }
.prot-hist-menos { color: var(--color-error); }
.prot-barra { position: sticky; bottom: 0; z-index: 2; display: flex; flex-direction: column; gap: var(--spacing-sm); padding: var(--spacing-sm) var(--spacing-md); border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-surface); }
.prot-barra-botoes { display: flex; justify-content: flex-end; }
.prot-confirmar { display: flex; flex-direction: column; gap: var(--spacing-xs); }
.prot-confirmar[hidden] { display: none; }
.prot-confirmar-titulo { font-weight: 600; color: var(--color-warn-fg); }
.prot-aviso-origem { padding: var(--spacing-xs) var(--spacing-sm); border-radius: 0.4rem; background: var(--color-warn-bg); color: var(--color-warn-fg); }
.prot-aviso-origem[hidden] { display: none; }
.prot-motivos { margin: 0; padding-left: var(--spacing-md); }
.prot-confirmar input { width: 100%; min-width: 0; }
.prot-mensagem { overflow-wrap: anywhere; }
.prot-mensagem:empty { display: none; }
@media (max-width: 700px) {
  .prot-colunas { grid-template-columns: minmax(0, 1fr); }
  .prot-card-corpo { padding: 0 var(--spacing-sm) var(--spacing-sm); }
  .prot-voltar { order: -1; }
  .prot-barra { margin: 0 calc(-1 * var(--spacing-xs)); }
  .prot-barra-botoes .admin-btn { width: 100%; min-height: 2.75rem; }
}
/* Local embedding settings (narrow-first: single column, wraps, no horizontal scroll) */
.rag-embedding-form { display: flex; flex-direction: column; gap: 0.75rem; max-width: 36rem; }
.rag-embedding-field { display: flex; flex-direction: column; gap: 0.25rem; font-size: var(--fs-6); }
.rag-embedding-field input[type="text"] { width: 100%; box-sizing: border-box; min-width: 0; }
.rag-embedding-check { display: flex; align-items: center; gap: 0.5rem; font-size: var(--fs-6); }
.rag-embedding-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.rag-embedding-feedback { margin: 0; min-height: 1.2em; font-size: var(--fs-6); overflow-wrap: anywhere; }

/* ---- Adobe forms library (bf-*) ---- */
.bf-cabeca { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); flex-wrap: wrap; margin-bottom: var(--spacing-md); }
.bf-cabeca h1 { margin: 0; font-size: var(--fs-16); }
.bf-cabecalho { display: flex; align-items: center; gap: var(--spacing-sm); flex-wrap: wrap; }
.bf-accoes { display: inline-flex; gap: var(--spacing-sm); flex-wrap: wrap; align-items: center; }
.bf-crumb { color: var(--color-muted); font-size: var(--fs-6); }
.bf-muted, .bf-nota { color: var(--color-muted); font-size: var(--fs-5); }
.bf-erro { margin: var(--spacing-sm) 0; }
.bf-aviso { border: 1px solid var(--color-highlight); border-radius: var(--radius-5); padding: var(--spacing-sm) var(--spacing-md); margin: var(--spacing-sm) 0; font-size: var(--fs-6); }
.bf-pesquisa { display: flex; gap: var(--spacing-sm); margin-bottom: var(--spacing-md); flex-wrap: wrap; }
.bf-pesquisa input[type="search"], .bf-pesquisa input[type="text"] { flex: 1 1 18rem; }
/* Header search: a normal-size field in the title row, aligned with the title and New form. */
.bf-cabecalho .bf-pesquisa { flex: 0 1 28rem; min-width: 20rem; margin: 0; }
.bf-cabecalho .bf-pesquisa input[type="search"] { width: 100%; min-width: 0; height: 2.25rem; box-sizing: border-box; border: 1px solid var(--color-border); border-radius: 8px; padding: 0 11px; background: var(--color-bg); color: var(--color-fg); font: inherit; }
.bf-resultados { display: grid; gap: var(--spacing-sm); }
.bf-card { border: 1px solid var(--color-border); border-radius: var(--radius-5); background: var(--color-surface); padding: var(--spacing-md); cursor: pointer; }
.bf-card:hover, .bf-card:focus-visible { border-color: var(--color-accent); background: var(--color-accent-soft); }
.bf-card-titulo { font-weight: 600; font-size: var(--fs-8); margin: 0 0 var(--spacing-xs); }
.bf-meta { display: flex; gap: var(--spacing-sm); flex-wrap: wrap; align-items: center; font-size: var(--fs-5); color: var(--color-muted); }
.bf-chip { display: inline-block; border: 1px solid var(--color-border); border-radius: 999px; padding: 1px var(--spacing-sm); margin: 0 var(--spacing-xs) var(--spacing-xs) 0; background: var(--color-accent-soft); color: var(--color-fg); font: inherit; font-size: var(--fs-5); cursor: pointer; }
.bf-chip.is-off { opacity: .5; text-decoration: line-through; }
.bf-sec { border: 1px solid var(--color-border); border-radius: var(--radius-5); background: var(--color-surface); padding: var(--spacing-md); margin-bottom: var(--spacing-md); }
.bf-sec h4 { margin: 0 0 var(--spacing-sm); }
.bf-grelha, .bf-tres { display: grid; gap: var(--spacing-md); }
.bf-grelha { grid-template-columns: 1fr 1fr; }
.bf-tres { grid-template-columns: repeat(3, 1fr); }
.bf-f { display: grid; grid-template-columns: 16rem 1fr; gap: var(--spacing-sm) var(--spacing-md); align-items: center; }
.bf-form { display: grid; gap: var(--spacing-sm); max-width: 44rem; }
.bf-campo { display: grid; gap: var(--spacing-xs); }
.bf-campo-rotulo { font-size: var(--fs-5); color: var(--color-muted); }
.bf-dl { display: grid; grid-template-columns: 12rem 1fr; gap: var(--spacing-xs) var(--spacing-md); margin: 0; }
.bf-dl dt { color: var(--color-muted); font-size: var(--fs-6); }
.bf-dl dd { margin: 0; }
.bf-mono, .bf-pre { font-family: var(--font-mono); font-size: var(--fs-5); }
.bf-pre { background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-4); padding: var(--spacing-sm); overflow: auto; max-height: 18rem; white-space: pre-wrap; }
.bf-prev { border: 1px solid var(--color-border); border-radius: var(--radius-5); background: var(--color-bg); padding: var(--spacing-md); min-height: 8rem; }
.bf-passos { display: flex; gap: var(--spacing-sm); list-style: none; padding: 0; margin: 0 0 var(--spacing-md); flex-wrap: wrap; }
.bf-passos li { border: 1px solid var(--color-border); border-radius: 999px; padding: 2px var(--spacing-md); font-size: var(--fs-5); color: var(--color-muted); }
.bf-passos li.current { border-color: var(--color-accent); color: var(--color-accent); }
.bf-tabela { width: 100%; border-collapse: collapse; font-size: var(--fs-6); }
.bf-tabela th, .bf-tabela td { text-align: left; padding: var(--spacing-xs) var(--spacing-sm); border-bottom: 1px solid var(--color-border); vertical-align: top; }
.bf-diff { font-family: var(--font-mono); font-size: var(--fs-5); }
.bf-abas { display: flex; gap: var(--spacing-sm); border-bottom: 1px solid var(--color-border); margin-bottom: var(--spacing-md); flex-wrap: wrap; }
.bf-aba { padding: var(--spacing-xs) var(--spacing-md); color: var(--color-muted); text-decoration: none; border-bottom: 2px solid transparent; font-size: var(--fs-5); }
.bf-aba.current { color: var(--color-accent); border-bottom-color: var(--color-accent); }
.bf-aba-ok { color: var(--color-success, var(--color-accent)); }
.bf-aba-n { border: 1px solid var(--color-highlight); border-radius: 999px; padding: 0 var(--spacing-xs); font-size: var(--fs-6); }
.bf-barra-assistente { position: fixed; bottom: 0; left: 0; right: auto; width: 100%; box-sizing: border-box; z-index: 80; display: flex; gap: var(--spacing-md); align-items: center; justify-content: space-between; flex-wrap: wrap; background: var(--color-surface); border-top: 1px solid var(--color-border); box-shadow: 0 -6px 18px rgba(0, 0, 0, .25); padding: var(--spacing-sm) var(--spacing-md); }
.bf-barra-assistente .bf-accoes { margin: 0; flex-wrap: nowrap; }
.bf-aba-corpo { padding-bottom: 6rem; }
.bf-porfazer { display: flex; gap: var(--spacing-sm); align-items: center; flex-wrap: wrap; font-size: var(--fs-6); }
.bf-porfazer-item { border: 1px solid var(--color-highlight); border-radius: 999px; padding: 0 var(--spacing-sm); text-decoration: none; color: inherit; }
.bf-porfazer-motivos { display: flex; gap: var(--spacing-xs); align-items: center; flex-wrap: wrap; margin-top: var(--spacing-sm); font-size: var(--fs-6); }
.bf-grupos { max-width: none; grid-template-columns: repeat(auto-fit, minmax(22rem, 1fr)); align-items: start; gap: var(--spacing-md); }
.bf-grupos .bf-grelha { grid-template-columns: 1fr; }
.bf-grupos .bf-grupo-dica { grid-column: 1 / -1; margin: 0; }
.bf-resumo { display: grid; grid-template-columns: 12rem 1fr; gap: var(--spacing-xs) var(--spacing-md); margin: 0 0 var(--spacing-md); max-width: 36rem; }
.bf-resumo dt { color: var(--color-muted); font-size: var(--fs-6); }
.bf-resumo dd { margin: 0; }
.bf-decisao { display: flex; gap: var(--spacing-sm); align-items: center; flex-wrap: wrap; padding: var(--spacing-xs) 0; }
.bf-reuse { border: 1px solid var(--color-highlight); border-radius: var(--radius-5); padding: var(--spacing-sm) var(--spacing-md); margin: var(--spacing-md) 0; display: flex; gap: var(--spacing-sm); align-items: center; }
.bf-retirados { display: inline-flex; gap: var(--spacing-xs); align-items: center; font-size: var(--fs-6); }
.bf-modal { position: fixed; inset: 0; background: rgba(3, 9, 15, .7); display: flex; align-items: center; justify-content: center; z-index: 1000; }
.bf-modal-caixa { background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-5); padding: var(--spacing-lg); width: min(34rem, 92vw); display: grid; gap: var(--spacing-sm); }
.bf-lista { padding: var(--spacing-xs) 0; display: flex; gap: var(--spacing-xs); flex-wrap: wrap; align-items: center; }
.bf-rotulos { display: flex; gap: var(--spacing-xs); margin-top: var(--spacing-xs); }
.admin-biblioteca .bf-cabeca { border-bottom: 1px solid var(--color-border); padding-bottom: var(--spacing-sm); }
/* Library v2 (L1): filter bar, drafts strip, cards grid, list table, empty state, three starts. */
.bf-barra { display: flex; justify-content: space-between; align-items: center; gap: var(--spacing-md); flex-wrap: nowrap; margin-bottom: var(--spacing-sm); }
.bf-barra-direita { display: flex; align-items: center; gap: var(--spacing-md); flex: 0 0 auto; white-space: nowrap; }
.bf-filtros { display: flex; gap: var(--spacing-sm); flex-wrap: nowrap; flex: 1 1 auto; min-width: 0; overflow-x: auto; }
.bf-filtro { display: inline-flex; align-items: center; gap: var(--spacing-xs); font-size: var(--fs-6); color: var(--color-muted); white-space: nowrap; }
@media (max-width: 900px) { .bf-barra { flex-wrap: wrap; } }
.bf-filtro select { min-width: 6.5rem; width: auto; }
.bf-filtro select.is-activo { border-color: var(--color-accent); color: var(--color-accent); }
.bf-vista { display: inline-flex; gap: var(--spacing-xs); }
.bf-vista [aria-pressed="true"] { border-color: var(--color-accent); color: var(--color-accent); }
.bf-contagem { margin: 0 0 var(--spacing-sm); }
.bf-faixa h2, .bf-vazia h2 { margin: 0 0 var(--spacing-sm); font-size: var(--fs-8); }
.bf-faixa-chips { display: flex; gap: var(--spacing-xs); flex-wrap: wrap; margin-bottom: var(--spacing-sm); }
.bf-faixa-chips .bf-chip { text-decoration: none; color: inherit; }
.bf-grelha-cartoes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--spacing-md); }
.bf-cartao { display: flex; flex-direction: column; gap: var(--spacing-sm); }
.bf-esqueleto { display: grid; gap: var(--spacing-xs); border: 1px dashed var(--color-border); border-radius: var(--radius-4); background: var(--color-bg); padding: var(--spacing-sm); min-height: 5rem; }
.bf-esqueleto span { display: block; height: .6rem; border-radius: 3px; background: var(--color-border); }
.bf-esqueleto span:nth-child(2) { width: 70%; }
.bf-esqueleto span:nth-child(3) { width: 45%; }
.bf-acoes-formulario { display: flex; gap: var(--spacing-xs); flex-wrap: wrap; margin-top: auto; }
.bf-vazia { text-align: center; padding: var(--spacing-xl) var(--spacing-md); border: 1px solid var(--color-border); border-radius: var(--radius-5); background: var(--color-surface); }
.bf-vazia-icone { display: inline-block; width: 3rem; height: 3rem; border-radius: 50%; border: 2px solid var(--color-border); margin-bottom: var(--spacing-sm); }
.bf-arranques { display: grid; gap: var(--spacing-md); }
.bf-arranques .bf-tres { margin-bottom: var(--spacing-sm); }
.bf-arranque h2 { margin: 0 0 var(--spacing-xs); font-size: var(--fs-7); }
.bf-arranque-campos { display: grid; gap: var(--spacing-sm); margin-top: var(--spacing-sm); }
.bf-arranque-corpo[hidden] { display: none; }
@media (max-width: 800px) { .bf-grelha, .bf-tres, .bf-f, .bf-grelha-cartoes { grid-template-columns: 1fr; } }

/* 3D scenes admin page (admin_cenas.js): library on the left, preview + controls on the right. Stays inside its box at 1440/1024. */
.admin-cenas { min-width: 0; }
.admin-cenas-corpo { display: grid; grid-template-columns: minmax(12rem, 16rem) minmax(0, 1fr); gap: var(--spacing-md); align-items: start; }
.admin-cenas-lista, .admin-cenas-editor { min-width: 0; }
.admin-cenas-itens { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--spacing-xs); }
.admin-cenas-item { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0.1rem var(--spacing-xs); text-align: left; padding: var(--spacing-xs) var(--spacing-sm); background: var(--color-panel-soft); color: var(--color-fg); border: 1px solid var(--color-border); border-radius: var(--radius-md); cursor: pointer; font: inherit; font-size: var(--fs-6); }
.admin-cenas-item:hover:not(:disabled) { border-color: var(--color-muted); }
.admin-cenas-item.ativa { border-color: var(--color-accent); box-shadow: inset 0 0 0 1px var(--color-accent); }
.admin-cenas-item:focus-visible, .admin-cenas-acento:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 1px; }
.admin-cenas-item-nome { overflow-wrap: anywhere; font-weight: 600; font-size: var(--fs-6); }
.admin-cenas-etiqueta { font-size: var(--fs-5); color: var(--color-muted); border: 1px solid var(--color-border); border-radius: 999px; padding: 0 0.45rem; align-self: start; white-space: nowrap; }
.admin-cenas-etiqueta.predefinida { color: var(--color-accent); border-color: var(--color-accent); }
.admin-cenas-uso { grid-column: 1 / -1; font-size: var(--fs-5); color: var(--color-muted); overflow-wrap: anywhere; }
.admin-cenas-previa { position: relative; width: 100%; aspect-ratio: 16 / 5; min-height: 10rem; overflow: hidden; border: 1px solid var(--color-border); border-radius: var(--radius-lg); background: var(--color-bg); }
.admin-cenas-previa > canvas, .admin-cenas-previa > .palco-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.admin-cenas-sem-webgl { position: absolute; inset: 0; margin: 0; display: grid; place-items: center; padding: var(--spacing-sm); text-align: center; }
.admin-cenas-controlos { display: grid; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); gap: var(--spacing-sm); margin-top: var(--spacing-sm); }
.admin-cenas-controlos > * { min-width: 0; }
.admin-cenas-nome, .admin-cenas-rotulos { grid-column: 1 / -1; }
.admin-cenas-grupo { margin: 0; padding: var(--spacing-xs) var(--spacing-sm) var(--spacing-sm); border: 1px solid var(--color-border); border-radius: var(--radius-md); display: grid; gap: var(--spacing-xs); align-content: start; min-width: 0; }
.admin-cenas-grupo legend { padding: 0 var(--spacing-xs); font-size: var(--fs-5); color: var(--color-muted); }
.admin-cenas-check { display: flex; align-items: center; gap: var(--spacing-xs); font-size: var(--fs-6); }
.admin-cenas-grupo .admin-cenas-campo { grid-template-columns: 5.5rem minmax(0, 1fr) 3rem; align-items: center; margin-bottom: 0; }
.admin-cenas-valor { font-variant-numeric: tabular-nums; text-align: right; color: var(--color-fg); }
.admin-cenas-campo input[type="text"], .admin-cenas-campo textarea { width: 100%; box-sizing: border-box; background: var(--color-panel-soft); color: var(--color-fg); border: 1px solid var(--color-border); border-radius: var(--radius-md); padding: var(--spacing-xs) var(--spacing-sm); font: inherit; font-size: var(--fs-6); resize: vertical; }
.admin-cenas-campo { display: grid; gap: var(--spacing-xs); font-size: var(--fs-5); color: var(--color-muted); min-width: 0; }
.admin-cenas-campo input[type="range"] { width: 100%; min-width: 0; accent-color: var(--color-accent); }
.admin-cenas-acentos { display: flex; gap: var(--spacing-xs); flex-wrap: wrap; }
.admin-cenas-acento { width: 1.9rem; height: 1.9rem; border-radius: 50%; border: 2px solid var(--color-border); background: var(--acento, var(--color-focus)); cursor: pointer; padding: 0; }
.admin-cenas-acento[aria-pressed="true"] { border-color: var(--color-fg); box-shadow: 0 0 0 2px var(--color-accent); }
.admin-cenas-acento:disabled { opacity: 0.35; cursor: not-allowed; }
.admin-cenas-accoes { display: flex; flex-wrap: wrap; gap: var(--spacing-xs); margin-top: var(--spacing-sm); }
.admin-cenas-onde { margin-top: var(--spacing-md); }
.admin-cenas-onde ul { margin: 0; padding-left: var(--spacing-md); font-size: var(--fs-6); overflow-wrap: anywhere; }
.admin-cenas-ok { padding: var(--spacing-xs) var(--spacing-sm); border-radius: var(--radius-md); background: var(--color-ok-bg); color: var(--color-ok-fg); margin: var(--spacing-xs) 0; overflow-wrap: anywhere; }
.admin-cenas .error { overflow-wrap: anywhere; margin: var(--spacing-xs) 0; }
@media (max-width: 1100px) { .admin-cenas-corpo { grid-template-columns: minmax(0, 1fr); } .admin-cenas-itens { grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr)); } }

/* KB health report (admin > Knowledge base > KB health) */
.admin-kbs-filtros { display: flex; gap: 0.75rem; flex-wrap: wrap; margin: 0.75rem 0; }
.admin-kbs-filtro { display: grid; gap: 0.2rem; font-size: var(--fs-base); }
.admin-kbs-totais { display: flex; gap: 1rem; flex-wrap: wrap; list-style: none; margin: 0.5rem 0; padding: 0; }
.admin-kbs-aviso { margin: 0.5rem 0; padding: 0.4rem 0.6rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.admin-kbs-rolagem { overflow-x: auto; }
.admin-kbs-tabela { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
.admin-kbs-tabela th, .admin-kbs-tabela td { text-align: left; padding: 0.3rem 0.5rem; border-bottom: 1px solid var(--color-border); vertical-align: top; overflow-wrap: anywhere; }
.admin-kbs-sev-error td:nth-child(3) { font-weight: 600; }
.admin-kbs-cliente { opacity: 0.7; }
.admin-kbs-prefixos textarea { width: min(100%, 28rem); font-family: var(--font-mono); }

/* Add to KB (AKB-R) */
.akb-pagina { max-width: 76rem; }
.akb-sec { margin: 1.25rem 0; }
.akb-muted, .akb-meta { opacity: 0.75; font-size: var(--fs-base); }
.akb-aviso { padding: 0.75rem 1rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
/* progress strip */
.akb-faixa { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 1px solid var(--color-border); border-radius: 10px; overflow: hidden; margin: 1rem 0 1.25rem; }
.akb-passo { display: flex; flex-direction: column; align-items: flex-start; gap: 0.1rem; padding: 0.7rem 1rem; border: 0; border-right: 1px solid var(--color-border); background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.akb-passo:last-child { border-right: 0; }
.akb-passo:hover, .akb-passo:focus-visible { background: var(--color-surface-2, rgba(128,128,128,.12)); }
.akb-passo-n { font-size: var(--fs-h2); font-weight: 700; line-height: 1.2; }
.akb-passo-l { font-size: var(--fs-base); opacity: 0.85; }
.akb-passo-quem { font-size: var(--fs-small); opacity: 0.65; }
.akb-passo.is-espera .akb-passo-n { color: var(--color-warn-fg); }
/* tabs */
.akb-separadores { display: flex; gap: 0.25rem; border-bottom: 1px solid var(--color-border); margin-bottom: 1.1rem; flex-wrap: wrap; }
.akb-aba { padding: 0.6rem 1rem; border: 0; background: none; color: inherit; opacity: 0.75; font: inherit; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.akb-aba.is-on { opacity: 1; font-weight: 600; border-bottom-color: var(--color-accent); }
.akb-aba:focus-visible { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.akb-cnt { display: inline-block; min-width: 1.4rem; padding: 0 0.45rem; margin-left: 0.4rem; border-radius: 999px; background: var(--color-surface-2, rgba(128,128,128,.15)); font-size: var(--fs-small); text-align: center; font-weight: 400; }
.akb-cnt.is-espera { background: var(--color-warn-bg); color: var(--color-warn-fg); font-weight: 600; }
/* upload tab */
.akb-grelha { display: grid; grid-template-columns: minmax(0, 1fr) 18rem; gap: 1.25rem; align-items: start; }
.akb-grelha.is-vazio { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 60rem) { .akb-grelha { grid-template-columns: minmax(0, 1fr); } }
.akb-lote { display: flex; gap: 1rem; align-items: end; flex-wrap: wrap; margin: 1rem 0 0.6rem; }
.akb-nota-cliente { padding: 0.4rem 0.7rem; border-radius: var(--radius-sm); background: var(--color-warn-bg); color: var(--color-warn-fg); font-size: var(--fs-base); }
.akb-rolagem { overflow-x: auto; width: 0; min-width: 100%; } /* never widens the page: the table scrolls inside */
.akb-tabela { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
.akb-tabela th { text-align: left; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.03em; opacity: 0.7; padding: 0.45rem 0.6rem; border-bottom: 1px solid var(--color-border); }
.akb-tabela td { padding: 0.5rem 0.6rem; border-bottom: 1px solid var(--color-border); vertical-align: middle; overflow-wrap: anywhere; }
.akb-minisel { max-width: 14rem; }
.akb-pista { display: block; font-size: var(--fs-small); opacity: 0.7; margin-top: 0.15rem; }
.akb-estado-envio progress { width: 7rem; vertical-align: middle; margin-right: 0.4rem; }
.akb-envio.is-error .akb-erro-linha { color: var(--color-danger-fg); opacity: 1; }
.akb-rodape { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 0.8rem; }
.akb-lado { border: 1px solid var(--color-border); border-radius: 12px; padding: 1rem 1.1rem; font-size: var(--fs-base); }
.akb-lado h3 { margin: 0 0 0.6rem; font-size: var(--fs-reading); }
.akb-lado ol { margin: 0; padding-left: 1.2rem; }
.akb-lado li { margin: 0 0 0.5rem; }
.akb-limites { margin-top: 0.75rem; border-top: 1px solid var(--color-border); padding-top: 0.6rem; display: flex; flex-wrap: wrap; gap: 0.3rem; align-items: center; }
.akb-limite { padding: 0.05rem 0.5rem; border-radius: 6px; background: var(--color-surface-2, rgba(128,128,128,.15)); font-size: var(--fs-compact); }
.akb-vazio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 1.1rem; }
@media (max-width: 50rem) { .akb-vazio { grid-template-columns: 1fr; } }
.akb-cartao { display: flex; flex-direction: column; gap: 0.35rem; border: 1px solid var(--color-border); border-radius: 12px; padding: 1rem; font-size: var(--fs-base); }
.akb-linha { display: flex; gap: 1rem; flex-wrap: wrap; margin: 0.75rem 0; }
.akb-campo { display: flex; flex-direction: column; gap: 0.25rem; font-size: var(--fs-base); }
.akb-envios, .akb-lista { list-style: none; padding: 0; margin: 0.75rem 0; }
.akb-item { padding: 0.75rem 0; border-bottom: 1px solid var(--color-border); }
.akb-item-topo { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; }
.akb-nome { overflow-wrap: anywhere; }
.akb-checks { display: flex; gap: 0.4rem; flex-wrap: wrap; margin: 0.4rem 0; }
.akb-chip { font-size: var(--fs-small); padding: 0.1rem 0.5rem; border-radius: 999px; background: var(--color-surface-2, rgba(128,128,128,.15)); }
.akb-chip.is-ok { background: var(--color-ok-bg); color: var(--color-ok-fg); }
.akb-chip.is-warn { background: var(--color-warn-bg); color: var(--color-warn-fg); }
.akb-chip.is-error { background: var(--color-danger-bg); color: var(--color-danger-fg); }
.akb-accoes { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.5rem; align-items: center; }
.akb-erro { color: var(--color-danger-fg); margin-top: 0.5rem; }
.akb-motivo, .akb-modelo { font-size: var(--fs-base); }
.akb-rascunho { border-top: 1px solid var(--color-border, rgba(128,128,128,.25)); margin-top: 0.5rem; padding-top: 0.5rem; }
.akb-editor { width: 100%; box-sizing: border-box; font-family: var(--font-mono); font-size: var(--fs-base); margin-top: 0.4rem; }
.akb-diff pre { max-height: 20rem; overflow: auto; font-size: var(--fs-compact); white-space: pre-wrap; }
/* my uploads */
.akb-filtros { display: flex; gap: 0.75rem; align-items: center; flex-wrap: wrap; margin-bottom: 0.75rem; }
.akb-procura { min-width: 16rem; padding: 0.4rem 0.7rem; border: 1px solid var(--color-border); border-radius: var(--radius-sm); background: transparent; color: inherit; font: inherit; font-size: var(--fs-base); }
@media (max-width: 40rem) {
  .akb-faixa { grid-template-columns: repeat(5, minmax(6.5rem, 1fr)); overflow-x: auto; width: 0; min-width: 100%; }
  .akb-passo { padding: 0.5rem 0.6rem; }
  .akb-tabela { min-width: 40rem; }
  .akb-procura { min-width: 0; width: 100%; }
  /* Upload tab: one stacked card per file instead of a table wider than the screen. */
  .akb-tabela.akb-ficheiros { min-width: 0; }
  .akb-ficheiros thead { display: none; }
  .akb-ficheiros, .akb-ficheiros tbody { display: block; }
  .akb-ficheiros tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "nome x" "tipo tipo" "cli cli" "estado estado"; gap: 0.35rem 0.5rem; padding: 0.6rem 0; border-bottom: 1px solid var(--color-border); }
  .akb-ficheiros td { display: block; min-width: 0; padding: 0; border-bottom: 0; }
  .akb-ficheiros td:nth-child(1) { grid-area: nome; }
  .akb-ficheiros td:nth-child(2) { grid-area: tipo; }
  .akb-ficheiros td:nth-child(3) { grid-area: cli; }
  .akb-ficheiros td:nth-child(4) { grid-area: estado; }
  .akb-ficheiros td:nth-child(5) { grid-area: x; }
  .akb-ficheiros .akb-minisel { max-width: 100%; width: 100%; }
}
.akb-chips { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.akb-chip-filtro { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.2rem 0.7rem; border: 1px solid var(--color-border); border-radius: 999px; background: none; color: inherit; font: inherit; font-size: var(--fs-base); cursor: pointer; }
.akb-chip-filtro.is-on { border-color: var(--color-accent); background: var(--color-info-bg); color: var(--color-info-fg); font-weight: 600; }
.akb-chip-n { opacity: 0.75; font-size: var(--fs-small); }
.akb-meu { cursor: pointer; }
.akb-meu:hover, .akb-meu:focus-visible { background: var(--color-surface-2, rgba(128,128,128,.08)); }
.akb-meu-detalhe td { background: var(--color-surface-2, rgba(128,128,128,.06)); }
.akb-detalhe { display: flex; flex-direction: column; gap: 0.4rem; font-size: var(--fs-base); }
.akb-proximo { font-weight: 600; }
.akb-cli { display: inline-block; padding: 0.05rem 0.55rem; border-radius: 999px; font-size: var(--fs-small); background: var(--color-surface-2, rgba(128,128,128,.15)); }
.akb-cli.is-cliente { background: var(--color-warn-bg); color: var(--color-warn-fg); font-weight: 600; }
.akb-segs { display: inline-flex; gap: 3px; vertical-align: middle; }
.akb-seg { display: block; width: 1.4rem; height: 6px; border-radius: 3px; background: var(--color-surface-2, rgba(128,128,128,.25)); overflow: hidden; position: relative; }
.akb-seg.is-d { background: var(--color-ok-fg); }
.akb-seg.is-c { background: var(--color-info-fg); }
.akb-seg.is-w { background: var(--color-warn-fg); }
.akb-seg.is-x { background: var(--color-danger-fg); }
.akb-seg.is-indeterminado { background: var(--color-info-bg); }
.akb-seg.is-indeterminado::after { content: ""; position: absolute; inset: 0; width: 40%; background: var(--color-info-fg); animation: akb-vai-vem 1.2s ease-in-out infinite; }
@keyframes akb-vai-vem { 0% { transform: translateX(-100%); } 100% { transform: translateX(250%); } }
@media (prefers-reduced-motion: reduce) { .akb-seg.is-indeterminado::after { animation: none; width: 100%; opacity: 0.6; } }
.akb-accao { white-space: nowrap; text-align: right; }
/* master-detail (to approve, drafts) */
.akb-md { display: grid; grid-template-columns: minmax(16rem, 22rem) minmax(0, 1fr); gap: 1.1rem; align-items: start; }
@media (max-width: 55rem) { .akb-md { grid-template-columns: minmax(0, 1fr); } }
.akb-md-lista { border: 1px solid var(--color-border); border-radius: 10px; overflow: hidden; }
.akb-md-detalhe { border: 1px solid var(--color-border); border-radius: 10px; padding: 1rem 1.2rem; min-width: 0; display: flex; flex-direction: column; gap: 0.75rem; }
.akb-entradas { list-style: none; margin: 0; padding: 0; max-height: 34rem; overflow: auto; }
.akb-entrada { display: flex; gap: 0.5rem; align-items: flex-start; padding: 0.55rem 0.7rem; border-bottom: 1px solid var(--color-border); }
.akb-entrada.is-on { background: var(--color-info-bg); }
.akb-entrada input { margin-top: 0.3rem; }
.akb-entrada-abrir { display: flex; flex-direction: column; gap: 0.2rem; flex: 1; min-width: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.akb-entrada-topo { display: flex; gap: 0.5rem; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.akb-md-rodape { display: flex; gap: 0.75rem; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 0.6rem 0.7rem; font-size: var(--fs-base); }
.akb-md-cab h3 { margin: 0 0 0.2rem; font-size: var(--fs-reading); }
.akb-campos { display: flex; gap: 1rem; flex-wrap: wrap; }
.akb-vai { display: flex; gap: 0.6rem; align-items: baseline; flex-wrap: wrap; font-size: var(--fs-base); }
.akb-vai-l { opacity: 0.7; }
.akb-previa { border: 1px solid var(--color-border); border-radius: 8px; overflow: hidden; }
.akb-previa-titulo { padding: 0.35rem 0.7rem; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.03em; opacity: 0.75; border-bottom: 1px solid var(--color-border); }
.akb-previa-corpo { padding: 0.6rem 0.7rem; font-size: var(--fs-base); }
.akb-previa-texto { margin: 0; max-height: 16rem; overflow: auto; white-space: pre-wrap; font-family: var(--font-mono); font-size: var(--fs-compact); }
.akb-previa-membros { margin: 0; padding-left: 1.1rem; max-height: 16rem; overflow: auto; font-family: var(--font-mono); font-size: var(--fs-compact); }
.akb-motivo-caixa { display: flex; flex-direction: column; gap: 0.4rem; padding: 0.75rem; border: 1px solid var(--color-danger-fg); border-radius: 8px; }
.akb-motivo-texto { width: 100%; box-sizing: border-box; }
.akb-aviso-linha { padding: 0.45rem 0.7rem; border-radius: var(--radius-sm); background: var(--color-ok-bg); color: var(--color-ok-fg); font-size: var(--fs-base); }
.akb-aviso-linha.is-error { background: var(--color-danger-bg); color: var(--color-danger-fg); }
/* drafts editor */
.akb-fonte { border-bottom: 1px solid var(--color-border); }
.akb-fonte-cab { display: flex; flex-direction: column; gap: 0.1rem; padding: 0.55rem 0.7rem 0.3rem; }
.akb-fonte-rascunhos { list-style: none; margin: 0; padding: 0 0 0.3rem; }
.akb-fonte-rascunhos .akb-entrada { border-bottom: 0; padding-left: 1.2rem; }
.akb-caminho { font-family: var(--font-mono); font-size: var(--fs-small); overflow-wrap: anywhere; }
.akb-editor-titulo { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; }
.akb-nao-gravado { padding: 0.05rem 0.5rem; border-radius: 999px; background: var(--color-warn-bg); color: var(--color-warn-fg); font-size: var(--fs-small); font-weight: 600; }
.akb-subseparadores { display: flex; gap: 0.2rem; border-bottom: 1px solid var(--color-border); }
.akb-subaba { padding: 0.4rem 0.8rem; border: 0; background: none; color: inherit; opacity: 0.75; font: inherit; font-size: var(--fs-base); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.akb-subaba.is-on { opacity: 1; font-weight: 600; border-bottom-color: var(--color-accent); }
.akb-subpainel { min-height: 12rem; }
.akb-subpainel .akb-editor { min-height: 24rem; resize: vertical; margin-top: 0; }
.akb-fm { font-family: var(--font-mono); font-size: var(--fs-small); margin-bottom: 0.6rem; overflow-wrap: anywhere; }
.akb-markdown { max-height: 36rem; overflow: auto; }
.akb-diff-linhas { margin: 0.4rem 0 0; max-height: 36rem; overflow: auto; font-family: var(--font-mono); font-size: var(--fs-compact); white-space: pre-wrap; }
.akb-diff-l { display: block; }
.akb-diff-l.is-mais { background: var(--color-ok-bg); color: var(--color-ok-fg); }
.akb-diff-l.is-menos { background: var(--color-danger-bg); color: var(--color-danger-fg); }
.akb-validacao { padding: 0.6rem 0.8rem; border-radius: 8px; font-size: var(--fs-base); }
.akb-validacao ul { margin: 0.3rem 0; padding-left: 1.2rem; }
.akb-validacao.is-erro { background: var(--color-danger-bg); color: var(--color-danger-fg); }
.akb-validacao.is-aviso { background: var(--color-warn-bg); color: var(--color-warn-fg); }

/* Files the assistant makes (Administration > Assistant) */
.admin-feitos-linha { display: flex; align-items: center; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.admin-feitos-texto { display: grid; gap: 0.15rem; max-width: 34rem; }
.admin-segmentado { display: inline-flex; border: 1px solid var(--color-border); border-radius: var(--radius-sm); overflow: hidden; }
.admin-segmentado-opcao { position: relative; padding: 0.35rem 0.7rem; cursor: pointer; font-size: var(--fs-base); border-left: 1px solid var(--color-border); }
.admin-segmentado-opcao:first-child { border-left: 0; }
.admin-segmentado-opcao input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.admin-segmentado-opcao:has(input:checked) { background: var(--color-accent); color: var(--color-on-accent); }
.admin-segmentado-opcao:has(input:focus-visible) { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.admin-feitos-espaco { display: flex; align-items: center; gap: 0.75rem; flex-wrap: wrap; border-top: 1px solid var(--color-border); padding-top: 0.75rem; }
.admin-feitos-espaco-texto { margin: 0; flex: 1 1 18rem; font-size: var(--fs-base); }

/* NAV-G: admin menu in the same visual language as the sidebar tree
   (icon + label + count + chevron on the right; pages as indented pill rows). */
.admin-sidebar { border-radius: 14px; }
.admin-menu-group h2 { text-transform: none; font-size: var(--fs-6); font-weight: 600; color: var(--color-fg); margin: 2px 0 0; }
.admin-menu-toggle { gap: 0.5rem; min-height: 36px; padding: 0.4rem 0.5rem; border-radius: 10px; }
.admin-menu-toggle .nav-glyph { color: var(--color-muted); }
.admin-menu-toggle:hover { background: var(--color-sidebar-hover); color: var(--color-fg); }
.admin-menu-toggle:hover .nav-glyph,
.admin-menu-toggle[aria-expanded="true"] .nav-glyph { color: var(--color-accent); }
.admin-menu-toggle:focus-visible,
.admin-menu-item:focus-visible { outline: 2px solid var(--color-accent); outline-offset: -2px; }
.admin-group-count { color: var(--color-muted); font-variant-numeric: tabular-nums; }
.admin-menu-toggle .collapsible-chevron { color: var(--color-muted); width: 16px; justify-content: center; }
.admin-menu-body { margin: 2px 0 4px 18px; padding-left: 6px; border-left: 1px solid var(--color-border-soft); }
.admin-menu-item { align-items: center; min-height: 36px; padding: 0.4rem 0.65rem; border-radius: 10px; }
.admin-menu-overview { justify-content: flex-start; gap: 0.5rem; margin-top: 0.5rem; }
.admin-menu-overview .nav-glyph { color: var(--color-muted); }
.admin-menu-item:hover { background: var(--color-sidebar-hover); color: var(--color-fg); }
.admin-menu-item.active { background: var(--color-accent-soft); color: var(--color-accent); box-shadow: none; }
.admin-menu-item.active .nav-glyph { color: var(--color-accent); }

/* Admin > Updates */
.admin-atualizacoes-barra { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 8px 0 4px; }
.admin-atualizacoes-barra select { width: auto; min-width: 0; height: 26px; padding: 0 8px; font-size: var(--fs-small); }
.admin-atualizacoes-barra label { margin: 0; }
.admin-atualizacoes-grupo { margin: 1.25rem 0 0.25rem; font-size: var(--fs-base); }
.admin-atualizacoes td:first-child { overflow-wrap: anywhere; }
.admin-atualizacoes-atrasada td:nth-child(4) { color: var(--color-warn-fg); }

/* Admin > KB news */
.admin-novidades-lote { border: 1px solid var(--color-border-soft); border-radius: var(--radius-md); padding: 6px 10px; margin: 8px 0; }
.admin-novidades-lote > summary { cursor: pointer; padding: 4px 0; }
.admin-novidades-lote h4 { margin: 12px 0 4px; font-size: var(--fs-compact); color: var(--color-title); }
.admin-novidades-acoes { display: flex; gap: 6px; margin: 6px 0; }
.admin-novidades-revertida td { opacity: .55; text-decoration: line-through; }
.admin-novidades-detalhe td { padding: 0; border: 0; }
.admin-novidades-proposta { margin: 6px 0 12px; }
.admin-novidades-estado { font-size: var(--fs-small); }
.admin-novidades-pendente { color: var(--color-warn-fg); }
.admin-novidades-aplicada { color: var(--color-ok-fg); }
.admin-novidades-rejeitada { color: var(--color-muted); }
/* drafts: bulk publish */
.akb-publicar-lote { border-bottom: 1px solid var(--color-border); }
.akb-fonte-topo { display: flex; align-items: flex-start; }
.akb-fonte-topo > input { margin: 0.7rem 0 0 0.7rem; }
.akb-accoes-item { display: inline-flex; gap: 0.4rem; }
