.tb-titulo    { font-size: var(--fs-lg); font-weight: 800; letter-spacing: -0.2px; }
.tb-subtitulo { color: var(--texto-2); font-size: var(--fs-sm); margin-top: 3px; }

.tb-botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  height: 38px; padding: 0 16px;
  border: 1px solid transparent; border-radius: var(--r-sm);
  font-size: var(--fs-sm); font-weight: 700; white-space: nowrap;
  transition: background var(--t-rapido) var(--ease), border-color var(--t-rapido) var(--ease);
}
.tb-botao--principal { background: var(--marca); color: var(--marca-ink); }
.tb-botao--principal:hover { background: var(--marca-forte); }
.tb-botao--secundario { background: var(--superficie); color: var(--texto); border-color: var(--linha-2); }
.tb-botao--secundario:hover { background: var(--hover); }
.tb-botao--fantasma { background: transparent; color: var(--texto-2); }
.tb-botao--fantasma:hover { background: var(--hover); color: var(--texto); }
.tb-botao--perigo { background: transparent; color: var(--neg); border-color: var(--neg); }
.tb-botao--perigo:hover { background: var(--neg-fundo); }
.tb-botao:disabled { opacity: .45; cursor: not-allowed; }

.tb-icone {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border: 0; background: transparent;
  border-radius: 6px; color: var(--texto-3);
}
.tb-icone:hover { background: var(--hover-2); color: var(--texto); }
.tb-icone svg { width: 16px; height: 16px; stroke: currentColor; stroke-width: 1.9; fill: none; stroke-linecap: round; stroke-linejoin: round; }

.tb-cartao {
  background: var(--superficie);
  border: 1px solid var(--linha);
  border-radius: var(--r-md);
  box-shadow: var(--sombra-1);
  min-width: 0;
}
.tb-cartao__cabeca {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-4) var(--sp-3);
}
.tb-cartao__titulo { font-size: var(--fs-sm); font-weight: 800; }
.tb-cartao__nota { margin-left: auto; font-size: var(--fs-xs); color: var(--texto-3); }

.tb-chip {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 11.5px; font-weight: 700; white-space: nowrap;
  border-radius: var(--r-pill); padding: 3px 10px;
}
.tb-chip--ok      { background: var(--marca-fundo); color: var(--marca); }
.tb-chip--neutro  { background: var(--superficie-2); color: var(--texto-2); }
.tb-chip--info    { background: var(--info-fundo); color: var(--info); }
.tb-chip--alerta  { background: var(--alerta-fundo); color: var(--alerta); }
.tb-chip--erro    { background: var(--neg-fundo); color: var(--neg); }

.tb-tabela-rolagem { overflow-x: auto; min-width: 0; max-width: 100%; }
.tb-tabela { width: 100%; border-collapse: collapse; }
.tb-tabela th {
  font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase;
  color: var(--texto-2); text-align: left; white-space: nowrap;
  padding: 10px var(--sp-4); border-bottom: 1px solid var(--linha-2);
}
.tb-tabela td {
  padding: 12px var(--sp-4); border-bottom: 1px solid var(--linha);
  font-size: var(--fs-sm); vertical-align: middle;
}
.tb-tabela tbody tr:last-child td { border-bottom: 0; }
.tb-tabela tbody tr:hover { background: var(--hover); }
.tb-tabela__num { text-align: right; }
.tb-tabela__acoes { text-align: right; width: 1%; }
.tb-tabela tfoot td {
  background: var(--superficie-2); font-weight: 800; border-bottom: 0;
  border-top: 1px solid var(--linha-2);
}

.tb-vazio { padding: var(--sp-7) var(--sp-5); text-align: center; }
.tb-vazio__titulo { font-size: var(--fs-base); font-weight: 700; margin-bottom: 5px; }
.tb-vazio__texto { color: var(--texto-2); font-size: var(--fs-sm); margin-bottom: var(--sp-4); }

.tb-painel { position: fixed; inset: 0; z-index: var(--z-modal); }

.tb-painel__fundo { position: absolute; inset: 0; background: var(--cortina); }
.tb-painel__caixa {
  position: absolute; right: 0; top: 0; bottom: 0;
  width: min(430px, 100%);
  background: var(--superficie);
  border-left: 1px solid var(--linha);
  box-shadow: var(--sombra-2);
  display: flex; flex-direction: column;
}
.tb-painel__cabeca {
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-4) var(--sp-5); border-bottom: 1px solid var(--linha);
}
.tb-painel__cabeca h2 { font-size: var(--fs-md); font-weight: 800; }
.tb-painel__cabeca .tb-icone { margin-left: auto; }
.tb-painel__corpo {
  flex: 1; overflow-y: auto;
  padding: var(--sp-5);
  display: flex; flex-direction: column; gap: var(--sp-4);
}
.tb-painel__pe {
  display: flex; align-items: center; gap: var(--sp-2);
  padding: var(--sp-4) var(--sp-5); border-top: 1px solid var(--linha);
}
.tb-painel__espaco { flex: 1; }

.tb-eco {
  background: var(--marca-fundo); color: var(--texto);
  border-radius: var(--r-sm); padding: 11px 13px;
  font-size: var(--fs-sm); line-height: 1.45;
}
.tb-eco:empty { display: none; }
.tb-eco strong { font-family: var(--fonte-dado); }
.tb-eco__nota { color: var(--texto-2); }

.tb-barra { padding: 0 var(--sp-4) var(--sp-3); }
.tb-barra__topo { display: flex; justify-content: space-between; font-size: var(--fs-sm); margin-bottom: 5px; }
.tb-barra__trilho { height: 7px; background: var(--superficie-3); border-radius: 4px; overflow: hidden; }
.tb-barra__preenche { display: block; height: 100%; background: var(--marca); border-radius: 4px; }
.tb-barra__nota { font-size: var(--fs-xs); color: var(--texto-2); margin-top: 3px; }

@media (max-width: 640px) {
  .tb-painel__caixa { width: 100%; }
}

.tb-switch {
  flex-shrink: 0; width: 38px; height: 22px; padding: 0;
  background: var(--superficie-3); border: 0; border-radius: var(--r-pill);
  position: relative; transition: background var(--t-rapido) var(--ease);
}
.tb-switch i {
  position: absolute; top: 3px; left: 3px;
  width: 16px; height: 16px; border-radius: 50%;
  background: var(--superficie); box-shadow: var(--sombra-1);
  transition: transform var(--t-rapido) var(--ease);
}
.tb-switch[aria-checked="true"] { background: var(--marca); }
.tb-switch[aria-checked="true"] i { transform: translateX(16px); }
