/* 
=====================================================
   SpeakPlus ? overlays m�nimos sobre Able Pro
   N�o reinventar cards/shadows do tema.
===================================================== 
*/

/* Tipografia padr�o ? Plus Jakarta Sans (substitui Inter var do Able) */
:root {
  --bs-font-sans-serif: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --bs-body-font-family: var(--bs-font-sans-serif);
  --cv-scroll-size: 11px;
  --cv-scroll-track: transparent;
  --cv-scroll-thumb: rgba(174, 185, 197, 0.5);
  --cv-scroll-thumb-hover: rgba(174, 185, 197, 0.8);
  color-scheme: light;
}

/* =====================================================================
 * Foco vis�vel ? WCAG 2.4.7 (AA)
 *
 * Medido em 2026-09-21 com o navegador, no fluxo de pedido: bot�o, input,
 * select, textarea e **radio** ficavam com `outline: none` e sombra
 * transparente ao receber foco. Ou seja: quem navega por teclado atravessava
 * o wizard de /pedir sem ver onde estava ? e o passo "Tipo" � escolhido por
 * radio. S� `a.nav-link` tinha anel.
 *
 * `:focus-visible` (e n�o `:focus`) de prop�sito: o anel aparece para teclado
 * e n�o aparece no clique de mouse, que � o que faz esse tipo de regra ser
 * removida por "feiura" e a acessibilidade voltar a quebrar.
 *
 * outline + offset em vez de box-shadow: n�o � engolido por `overflow:hidden`
 * de card e n�o desloca layout.
 * ===================================================================== */
:root {
  --cv-foco: #1B6FE8;          /* mesma fam�lia de --cv-voz-a */
  --cv-foco-contraste: #fff;   /* halo para contraste sobre fundo colorido */
}

/* Atalho de teclado: fica fora da tela at� o Tab. WCAG 2.4.1. */
.cv-skip {
  position: absolute;
  left: 0.75rem;
  top: 0;
  z-index: 2000;
  padding: 0.55rem 0.9rem;
  background: #fff;
  color: var(--cv-foco);
  font-weight: 650;
  border-radius: 0.55rem;
  box-shadow: 0 0.35rem 1rem rgba(19, 25, 32, 0.18);
  transform: translateY(-120%);
}
.cv-skip:focus {
  top: 0.75rem;
  transform: none;
}

.btn:focus-visible,
.nav-link:focus-visible,
.page-link:focus-visible,
.dropdown-item:focus-visible,
.form-check-input:focus-visible,
summary:focus-visible,
[tabindex]:not([tabindex="-1"]):focus-visible,
a:focus-visible {
  outline: 2px solid var(--cv-foco) !important;
  outline-offset: 2px !important;
  /* Halo branco: garante que o anel apare�a tamb�m sobre bot�o da cor da marca. */
  box-shadow: 0 0 0 4px rgba(255, 255, 255, .65) !important;
}
/* Campo de texto: o anel reto (outline + border-radius herdado do pai) virava
   um ret�ngulo e brigava com o raio do Able. O foco fica na pr�pria borda. */
.form-control:focus,
.form-control:focus-visible,
.form-select:focus,
.form-select:focus-visible,
textarea:focus,
textarea:focus-visible {
  outline: none !important;
  border-color: rgba(var(--bs-primary-rgb, 70, 128, 255), .55);
  box-shadow: 0 0 0 .2rem rgba(var(--bs-primary-rgb, 70, 128, 255), .16);
}

/* Radio e checkbox s�o pequenos: offset menor, sen�o o anel cobre o r�tulo. */
.form-check-input:focus-visible {
  outline-offset: 1px !important;
}

/* Cart?o clic?vel (modo/produto em /pedir): sem anel do Chrome no clique.
   O estado selecionado j? tem borda pr?pria (.is-on / :checked). */
.cv-tipo-card,
.cv-tipo-card:focus,
.cv-tipo-card:focus-within,
.cv-tipo-card:has(> input:focus),
.cv-tipo-card:has(> input:focus-visible),
.cv-modo-card,
.cv-modo-card:focus,
.cv-modo-card:focus-within,
.cv-modo-card:has(> input:focus),
.cv-modo-card:has(> input:focus-visible) {
  outline: none !important;
}
.cv-tipo-card > .cv-tipo-radio:focus,
.cv-tipo-card > .cv-tipo-radio:focus-visible,
.cv-modo-card > .js-modo-roteiro:focus,
.cv-modo-card > .js-modo-roteiro:focus-visible {
  outline: none !important;
  box-shadow: none !important;
}
.offer-check:has(input:focus-visible) {
  outline: 2px solid var(--cv-foco);
  outline-offset: 2px;
}

[data-pc-theme="dark"] :root,
[data-pc-theme="dark"] {
  --cv-foco: #6BA5FF;
  /* O Able s� troca --bs-body-bg/--bs-body-color no escuro. Os tokens
     "secund�rios" do Bootstrap continuam claros (#f8f9fa / rgba(33,37,41,.75)):
     qualquer regra nossa que os use ficava com fundo branco e texto ileg�vel.
     Redefinidos aqui uma vez para todo o painel. */
  --bs-secondary-color: rgba(231, 237, 244, 0.8);
  --bs-tertiary-color: rgba(231, 237, 244, 0.52);
  --bs-emphasis-color: #e7edf4;
  --bs-secondary-bg: #26313e;
  --bs-tertiary-bg: #202a35;
}
[data-pc-theme="dark"] .form-text {
  color: var(--bs-secondary-color);
}
[data-pc-theme="dark"] .btn:focus-visible,
[data-pc-theme="dark"] .form-check-input:focus-visible,
[data-pc-theme="dark"] a:focus-visible {
  box-shadow: 0 0 0 4px rgba(0, 0, 0, .55) !important;
}
[data-pc-theme="dark"] .form-control:focus,
[data-pc-theme="dark"] .form-control:focus-visible,
[data-pc-theme="dark"] .form-select:focus,
[data-pc-theme="dark"] .form-select:focus-visible,
[data-pc-theme="dark"] textarea:focus,
[data-pc-theme="dark"] textarea:focus-visible {
  box-shadow: 0 0 0 .2rem rgba(107, 165, 255, .22);
}

/* Quem clica com mouse n�o v� anel ? mas quem usa teclado n�o pode perder o
   foco dentro de conte�do que rola. */
@media (prefers-reduced-motion: no-preference) {
  :focus-visible { scroll-margin-block: 1.5rem; }
}

/* =====================================================================
 * Bot�o em processamento ? feedback de envio
 *
 * `comunicplus.js` j� marcava `data-kt-indicator="on"` em todo submit de
 * `.ajax` e desabilitava o bot�o ? mas **n�o existia CSS para esse atributo
 * em lugar nenhum** (� resqu�cio do tema Keen/Metronic). Resultado medido em
 * 2026-09-21: em TODO formul�rio do app, inclusive "Solicitar grava��o", o
 * clique deixava o bot�o apagado e sem nenhum sinal de que algo acontecia.
 * Em conex�o lenta, isso l� como "travou" e gera clique repetido.
 *
 * Agora o r�tulo d� lugar a um spinner, a largura � preservada (sem pulo de
 * layout) e o estado � anunciado por aria-busy no pr�prio bot�o.
 * ===================================================================== */
.btn[data-kt-indicator="on"] {
  position: relative;
  color: transparent !important;
  pointer-events: none;
  /* Mant�m a largura do r�tulo: o bot�o n�o encolhe ao virar spinner. */
  text-shadow: none;
}
.btn[data-kt-indicator="on"] > * {
  visibility: hidden;
}
.btn[data-kt-indicator="on"]::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 1.1em;
  height: 1.1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  /* currentColor � transparente acima; o spinner usa a cor do texto original */
  color: var(--bs-btn-color, #fff);
  animation: cv-girar .6s linear infinite;
}
/* Bot�o claro: spinner escuro, sen�o fica branco no branco. */
.btn-light[data-kt-indicator="on"]::after,
.btn-outline-primary[data-kt-indicator="on"]::after,
.btn-outline-secondary[data-kt-indicator="on"]::after,
.btn-link-primary[data-kt-indicator="on"]::after {
  color: var(--bs-primary, #4680ff);
}
@keyframes cv-girar { to { transform: rotate(360deg); } }

/* =====================================================================
 * �rea em carregamento ? desfoque, sem cortina escura
 *
 * `Loading()` em comunicplus.js bloqueia a �rea durante o AJAX de todo
 * formul�rio `.ajax`. Antes escurecia (blockUI usa fundo preto + opacity .3) e
 * a classe `.blur-loading` era adicionada **sem nenhum CSS** ? ou seja, o
 * desfoque nunca existiu, s� a cortina.
 *
 * Agora o retorno visual � s� o blur. Dois detalhes que fazem funcionar:
 *
 * 1. O blur vai nos FILHOS, n�o no elemento. O blockUI injeta o spinner
 *    DENTRO da �rea bloqueada; desfocar o container desfocaria o spinner
 *    junto. `:not(.blockUI)` preserva o que o blockUI insere.
 * 2. `filter` cria contexto de empilhamento ? por isso o spinner do blockUI
 *    (que � `position:absolute`) fica fora do elemento filtrado, n�o dentro.
 * ===================================================================== */
.blur-loading > *:not(.blockUI) {
  filter: blur(2.5px);
  transition: filter .18s ease-out;
  /* Deixa claro que a �rea est� inerte, sem precisar escurecer. */
  pointer-events: none;
  user-select: none;
}

/* O overlay do blockUI continua existindo para barrar clique, mas invis�vel. */
.blur-loading > .blockUI.blockOverlay {
  background: transparent !important;
  opacity: 0 !important;
}

/* Mensagem opcional ao lado do spinner: leg�vel sobre fundo claro. */
.blur-loading .cv-loading-msg {
  color: var(--bs-body-color, #131920);
  font-weight: 500;
  margin-left: .35rem;
}

/* Quem pediu menos movimento n�o recebe a transi��o do blur. */
@media (prefers-reduced-motion: reduce) {
  .blur-loading > *:not(.blockUI) { transition: none; }
}

/* Modal IA (voz-midia): blur s� no cart�o, acima do backdrop Bootstrap. */
.modal-content.blur-loading {
  position: relative;
}

.modal-content.blur-loading > .blockUI.blockOverlay {
  z-index: 5;
}

.modal-content.blur-loading > .blockUI.blockMsg {
  z-index: 6;
}


/* Quem pediu menos movimento recebe pulso de opacidade, n�o rota��o. */
@media (prefers-reduced-motion: reduce) {
  .btn[data-kt-indicator="on"]::after {
    animation: cv-pulsar 1s ease-in-out infinite;
    border-right-color: currentColor;
  }
  @keyframes cv-pulsar { 50% { opacity: .35; } }
}


/* -------------------------------------------------
   Utilit�rios ausentes no Bootstrap 5 / Able
   ------------------------------------------------- */
/* `min-w-0` � usado em 14 pontos (voz_card, vitrine, pedir, home, resumo,
   locutor, tags) para deixar o flex-child encolher e o text-truncate valer.
   O Bootstrap 5 N�O fornece essa classe e o Able tamb�m n�o ? sem ela o
   item usa min-width:auto, n�o encolhe, e o texto/badge vaza o card. */
.min-w-0 { min-width: 0 !important; }

/* data-pc-theme vive no body ? html:has cobre a barra da viewport */
html:has(body[data-pc-theme=dark]),
[data-pc-theme=dark] {
  --cv-scroll-track: transparent;
  --cv-scroll-thumb: rgba(174, 185, 197, 0.5);
  --cv-scroll-thumb-hover: rgba(174, 185, 197, 0.8);
  color-scheme: dark;
}
body,
.pc-container,
.pc-content,
.pc-header,
.pc-sidebar,
.modal,
.dropdown-menu,
.form-control,
.form-select,
.btn,
.table,
.nav,
.breadcrumb,
.page-header-title,
.notifier-container,
.daterangepicker,
h1, h2, h3, h4, h5, h6,
.card {
  font-family: var(--bs-body-font-family);
}

/* Filtro de vozes ? anima��o de mostrar/ocultar */
.voice-card-item {
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.voice-card-item.cv-visible {
  opacity: 1;
}
.voice-card-item.cv-hiding {
  opacity: 0;
  transform: scale(0.98);
}
.voice-card-item.cv-hidden {
  display: none !important;
}

/* Banco de Vozes ? chips de filtros ativos */
.cv-active-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.cv-chip-clear {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 999px;
  padding: 0.2rem 0.55rem;
  font-size: 0.75rem;
  background: transparent;
  color: var(--bs-body-color);
}
.cv-chip-clear:hover {
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}

/* List view ? file-card empilhado (Able file-manager), ver .cv-voz-view-list */
.cv-voices-more summary {
  list-style: none;
  cursor: pointer;
}
.cv-voices-more summary::-webkit-details-marker {
  display: none;
}

/* Contrast Able pinta o body de branco (mesmo tom do card) e some a separa��o.
   Mantemos a sombra do contrast e devolvemos o cinza do preset. */
body.cvoz-theme-contrast[data-pc-theme_contrast='true']:not([data-pc-theme='dark']) {
  --bs-body-bg: #f3f5f7;
  --bs-body-bg-rgb: 243, 245, 247;
}
/* color-header + contrast: style-preset zera --pc-sidebar-background (transparent).
   O azul do layout aparece atr�s do texto escuro do menu. Painel branco Able. */
[data-pc-layout='color-header'][data-pc-theme_contrast='true']:not([data-pc-theme='dark']) {
  --pc-sidebar-background: #fff;
}
/* Contrast reativa --pc-sidebar-shadow na faixa do logo. O demo color-header
   zera essa costura vertical; o canto 12px do .navbar-content fica no tema. */
[data-pc-layout='color-header'] {
  --pc-sidebar-shadow: none;
  --pc-sidebar-border: none;
}
[data-pc-layout='color-header'] .pc-sidebar,
[data-pc-layout='color-header'] .pc-header {
  border: none;
  box-shadow: none;
}
/* SimpleBar precisa overflow no .simplebar-content-wrapper ? clip/overflow no
   host (.navbar-content) trava a roda. O raio 12px continua no tema; o track
   opaco (abaixo) era o que quadrava o canto. */

/* Cards aninhados (tipos do pedido, vitrine) ? borda vis�vel no fundo do wizard */
.pc-content .card .file-card,
.pc-content .cv-locutor-tipo {
  border: 1px solid var(--bs-border-color);
}

/* Ficha locutor ? social-profile Able (fotos recortam no c�rculo / capa) */
.social-profile > .cv-locutor-cover {
  height: 140px;
  object-fit: cover;
}
.social-profile .img-profile-avtar {
  object-fit: cover;
}

/* -------------------------------------------------
   Page header � color-header (Able Pro)
   Able zera padding do .page-header neste layout;
   sem respiro o breadcrumb/t�tulo colam no pc-header
   e o 1� .card (sem .row) precisa de espa�amento.
   IMPORTANTE: em .card usar margin-top ? nunca padding-top
   (padding no card cria v�o acima do .card-header).
------------------------------------------------- */
[data-pc-layout='color-header'] .pc-container {
  padding-top: 168px;
}
[data-pc-layout='color-header'] .pc-container .page-header {
  margin-top: -168px;
  /* 10px = metade do respiro superior anterior (20px), ainda dentro da faixa azul */
  padding: 10px 0 28px;
}
/* Able (style.css) aplica padding-top:24px em .page-header + .row
   (20px abaixo de 1024px). Cadastros de Clientes n�o usa essa .row ?
   o card vem direto ? ent�o as outras p�ginas desciam o conte�do.
   O respiro can�nico fica s� no margin-bottom do header. */
.pc-container .page-header + .row {
  padding-top: 0;
}
@media (max-width: 1024px) {
  .pc-container .page-header {
    margin-left: 0;
    margin-right: 0;
  }
  /* Able soma 15px de padding horizontal nesta faixa e empurra o card
     para a direita do t�tulo. O respiro j� est� no .pc-content. */
  .pc-container .page-header + .row {
    padding-top: 0;
    padding-left: 0;
    padding-right: 0;
  }
}
/* Espa�o entre o header e o 1� conte�do: no PR�PRIO header (margin-bottom),
 * nunca em "+ .row" / "+ .card" ? essas duas regras cobrem s� 2 dos v�rios
 * elementos que de fato v�m depois do header nas ~47 p�ginas que o usam.
 * Auditoria (2026-09-09) achou .alert direto (adm_vozes_clones, faturas,
 * gravacao, producoes, creditos_adicionar) e <form> direto
 * (cadastros_vozes_nova) sem NENHUMA regra de espa�amento ? coladas no
 * header. Mesmo racioc�nio da corre��o do hero/.welcome-banner, mesmo dia.
 * Valores preservados: 24px fora do color-header, 8px dentro (era o
 * resultado combinado de "+.row/.card" antes). */
.pc-container .page-header {
  margin-bottom: 24px;
}
[data-pc-layout='color-header'] .pc-container .page-header {
  margin-bottom: 8px;
}
/* A faixa � a cor prim�ria do painel (#0a2364). Branco nela passa de 4.5:1.
   Bot�es da faixa continuam com fundo branco e tinta escura. */
[data-pc-layout='color-header'] .pc-container .page-header .breadcrumb,
[data-pc-layout='color-header'] .pc-container .page-header .breadcrumb .breadcrumb-item,
[data-pc-layout='color-header'] .pc-container .page-header .breadcrumb a {
  color: #fff;
}
[data-pc-layout='color-header'] .pc-container .page-header .breadcrumb {
  --bs-breadcrumb-divider-color: #fff;
}
[data-pc-layout='color-header'] .pc-container .page-header .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
  content: var(--bs-breadcrumb-divider, "/");
  color: #fff;
}
[data-pc-layout='color-header'] .page-header-title p,
[data-pc-layout='color-header'] .page-header-lead {
  color: #fff;
}
[data-pc-layout='color-header'] .page-header-actions .btn-outline-secondary,
[data-pc-layout='color-header'] .page-header-actions .btn-outline-primary {
  color: #131920 !important;
  background-color: #fff;
  border-color: #fff;
}
[data-pc-layout='color-header'] .page-header-actions .btn-outline-secondary:hover,
[data-pc-layout='color-header'] .page-header-actions .btn-outline-primary:hover {
  color: #131920 !important;
  background-color: #eef3ff;
  border-color: #eef3ff;
}
/* Prim�rio s�lido � o mesmo azul da faixa: o bot�o some e o texto fica em 3.6:1. */
[data-pc-layout='color-header'] .page-header-actions .btn-primary {
  color: #131920 !important;
  background-color: #fff;
  border-color: #fff;
}
[data-pc-layout='color-header'] .page-header-actions .btn-primary:hover,
[data-pc-layout='color-header'] .page-header-actions .btn-primary:focus {
  color: #131920 !important;
  background-color: #eef3ff;
  border-color: #eef3ff;
}
.page-header .page-block > .breadcrumb {
  margin-bottom: 6px;
}
/* T�tulo + linha de apoio (FAQ, termos, vitrine) ? ambos vinham com mb-0 e colavam */
.page-header-title h2 + p {
  margin-top: 0.5rem;
}
.cv-vitrine-bloco h5.mb-0 + p {
  margin-top: 0.25rem;
}
.list-group-item h6.mb-0 + p.mb-0 {
  margin-top: 0.2rem;
}

/* Login / cadastro ? logo Able (n�o 95% da largura colado no H4) */
.auth-main .auth-form .cv-auth-brand {
  margin-bottom: 1.25rem;
}
.auth-main .auth-form .cv-auth-logo {
  display: inline-block;
  max-height: 4.5rem;
  width: auto;
  max-width: 70%;
}
.cv-auth-logos {
  display: inline-grid;
  justify-items: center;
  width: 70%;
}
.auth-main .auth-form .cv-auth-logos .cv-auth-logo,
.cv-cadastro-intro .cv-auth-logos .cv-auth-logo {
  grid-area: 1 / 1;
  align-self: center;
  justify-self: center;
  width: auto;
  height: auto;
  max-width: 100%;
  max-height: 4.5rem;
}
.cv-cadastro-intro .cv-auth-logos {
  width: 82%;
  margin-bottom: 14px;
}
.cv-cadastro-intro .cv-auth-logos .cv-auth-logo {
  max-height: 4.6rem;
  margin-bottom: 0;
}
.auth-main .auth-form .cv-auth-logo--escuro,
.cv-cadastro-intro .cv-auth-logo--escuro {
  display: none;
}
[data-pc-theme="dark"] .auth-main .auth-form .cv-auth-logo--claro,
[data-pc-theme="dark"] .cv-cadastro-intro .cv-auth-logo--claro {
  display: none;
}
[data-pc-theme="dark"] .auth-main .auth-form .cv-auth-logo--escuro,
[data-pc-theme="dark"] .cv-cadastro-intro .cv-auth-logo--escuro {
  display: inline-block;
}

/* ConnectVoz na URL: ConnectVoz, depois "agora é", depois SpeakPlus */
.cv-legado {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  max-width: 100%;
}
.cv-legado-marca {
  display: grid;
  justify-items: center;
  width: min(100%, 230px);
}
.cv-legado-logo {
  grid-area: 1 / 1;
  display: block;
  width: 100%;
  height: auto;
  max-height: 4.2rem;
  object-fit: contain;
}
.cv-legado-logo--escuro { display: none; }
[data-pc-theme="dark"] .cv-legado-logo--claro { display: none; }
[data-pc-theme="dark"] .cv-legado-logo--escuro { display: block; }
.cv-legado-marca--antiga .cv-legado-logo {
  animation: cv-legado-antiga 0.55s cubic-bezier(0.22, 0.8, 0.28, 1) both;
}
.cv-legado-marca--nova {
  width: min(100%, 292px);
}
.cv-legado-marca--nova .cv-legado-logo {
  max-height: 5.35rem;
  animation: cv-legado-nova 0.7s cubic-bezier(0.22, 0.8, 0.28, 1) 0.95s both;
}
.auth-main .cv-auth-brand:has(.cv-legado) {
  margin-bottom: 2.15rem;
}
.cv-legado-ponte {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  min-height: 2.6rem;
}
.cv-legado-fio {
  display: block;
  width: 2px;
  height: 0;
  border-radius: 2px;
  background: linear-gradient(180deg, #0084ff, #00b7ff);
  animation: cv-legado-fio 0.4s ease 0.45s forwards;
}
.cv-legado-ponte .cv-legado-fio:last-child {
  animation-delay: 0.72s;
}
.cv-legado-agora {
  margin: 0;
  padding: 0.22rem 0.7rem;
  border-radius: 999px;
  background: rgba(0, 132, 255, 0.1);
  color: #3d4d63;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  line-height: 1.2;
  animation: cv-legado-frase 0.45s cubic-bezier(0.22, 0.8, 0.28, 1) 0.55s both;
}
[data-pc-theme="dark"] .cv-legado-agora {
  background: rgba(0, 180, 255, 0.16);
  color: #d5e4f5;
}
.cv-cadastro-intro .cv-legado {
  margin-bottom: 26px;
}
@keyframes cv-legado-antiga {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: none; }
}
@keyframes cv-legado-fio {
  to { height: 10px; }
}
@keyframes cv-legado-frase {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}
@keyframes cv-legado-nova {
  from { opacity: 0; transform: translateY(12px) scale(0.96); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cv-legado-logo,
  .cv-legado-fio,
  .cv-legado-agora {
    animation: none;
  }
  .cv-legado-fio {
    height: 10px;
  }
}
.cv-marca-texto {
  font-weight: 800;
  letter-spacing: -0.045em;
  font-size: 1.35rem;
  line-height: 1;
  color: inherit;
}
.cv-marca-texto--auth {
  display: inline-block;
  font-size: 1.85rem;
  color: #131920;
}

/* Termos: headings com respiro; o HTML legado usa texto solto ap�s o h5 */
.termos-conteudo h5 {
  margin-top: 1.75rem;
  margin-bottom: 0.75rem;
}
.termos-conteudo > p:first-child {
  margin-bottom: 0.25rem;
}

/* FAQ / termos p�blicos ? header sticky, conte�do com respiro (sem sidebar).
   O Able assume .pc-sidebar + margin-left:280px no header/container/footer.
   htmlPublic n�o tem sidebar; sem este reset fica a faixa azul vazia � esquerda. */
.cv-public-shell .pc-header {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1020;
}
.cv-public-shell .pc-container,
.cv-public-shell .pc-footer {
  margin-left: 0 !important;
}
.cv-public-shell .pc-header {
  left: 0 !important;
}
.cv-public-shell .page-header {
  left: 0 !important;
  right: 0;
}
/* No color-header o t�tulo sobe 168px para a faixa azul. Sem o mesmo
   padding no container, essa subida invade o logo. */
/* A faixa � a cor prim�ria do painel. Links ficam brancos direto nela.
   O bot�o preenchido continua branco, com tinta escura. */
.cv-public-shell[data-pc-layout='color-header'] .pc-header .b-brand,
.cv-public-shell[data-pc-layout='color-header'] .pc-header .pc-head-link {
  color: #fff !important;
}
.cv-public-shell[data-pc-layout='color-header'] .pc-header .pc-head-link:hover {
  color: #fff !important;
  background: rgba(255, 255, 255, 0.12);
}
.cv-public-shell[data-pc-layout='color-header'] .pc-header .btn-primary {
  color: var(--cvoz-primary, #0a2364) !important;
  background-color: #fff;
  border-color: #fff;
}
.cv-public-shell[data-pc-layout='color-header'] .pc-header .btn-primary:hover {
  color: var(--cvoz-primary, #0a2364) !important;
  background-color: #eef3ff;
  border-color: #eef3ff;
}
.cv-public-shell[data-pc-layout='color-header'] .pc-header .btn-outline-primary {
  color: #fff !important;
  background-color: transparent;
  border-color: rgba(255, 255, 255, 0.7);
}
.cv-public-shell[data-pc-layout='color-header'] .pc-header .btn-outline-primary:hover {
  color: #fff !important;
  background-color: rgba(255, 255, 255, 0.12);
  border-color: #fff;
}
.cv-public-shell .pc-container {
  padding-top: 1.5rem;
}
.cv-public-shell[data-pc-layout='color-header'] .pc-container {
  padding-top: 168px;
}

/* Card DataTables: nunca padding no card (s� header/body) */
.table-card.cv-dt-card {
  padding-top: 0;
  padding-bottom: 0;
}

/* --- Hero (welcome-banner) como substituto do page-header -------------
 * No color-header, o .pc-container tem padding-top:168px e o page-header
 * sobe com margin-top:-168px pra ocupar essa faixa (ver regra logo acima,
 * ~linha 151). O hero faz o mesmo pull-up.
 *
 * O espa�o ABAIXO do hero fica s� no pr�prio hero (margin-bottom), nunca
 * dependendo do que vem depois. Existiam DUAS vers�es desta regra
 * competindo pelo mesmo seletor (uma dizia padding-bottom:20px na row do
 * hero + margin-top:8px na ".row" seguinte; outra, escrita depois s�
 * olhando a home, dizia padding-bottom:8px + margin-top:0) ? a �ltima do
 * arquivo "ganhava" a cascata, e o efetivo virava ~8px S� quando o pr�ximo
 * elemento fosse mesmo uma ".row" direta.
 *
 * Em /pedir, /banco-vozes, /creditos, /jingles e /pedir-jingle o elemento
 * seguinte ao hero � um <form> ou <div class="card"> direto ? nunca uma
 * ".row" ? ent�o a regra "+ .row" nunca disparava ali, e a p�gina ficava
 * com o box de conte�do colado no hero. S� a home (onde o pr�ximo elemento
 * � uma .row com os KPIs) recebia o respiro por acidente.
 *
 * Valor: 8px ? o MESMO j� usado por ".page-header + .row/.card" (ver
 * ~linha 165), pra hero e page-header darem o mesmo respiro em qualquer
 * p�gina, seja qual for o tipo do elemento seguinte. */
.pc-content > .row:first-child:has(.welcome-banner) {
  padding-top: 0;
  margin-bottom: 8px;
}
[data-pc-layout='color-header'] .pc-container .pc-content > .row:first-child:has(.welcome-banner) {
  margin-top: -168px;
  padding-top: 20px;
  padding-bottom: 0;
}

/* Banner pausado/exclu�do: a .row do hero some (echoSlotRow). O primeiro
 * bloco real precisa do mesmo pull-up, sen�o sobra o padding azul de 168px. */
[data-pc-layout='color-header'] .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > .row:first-child,
[data-pc-layout='color-header'] .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > .card:first-child,
[data-pc-layout='color-header'] .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > form:first-child,
[data-pc-layout='color-header'] .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > .alert:first-child {
  margin-top: -168px;
  padding-top: 20px;
}

/* Painel estreito (sidebar vira gaveta): a faixa de 168px é do desktop.
   A barra fica sólida, com 74px, e o miolo começa imediatamente abaixo,
   na cor da página. O body deixa de ser azul, então não vaza faixa nem
   sobra colorida no fim da tela. O título sai do branco da faixa. */
@media (max-width: 1024px) {
  body.cvoz-theme-contrast[data-pc-layout='color-header']:not(.cv-public-shell) {
    background: var(--bs-body-bg);
    overflow-x: clip;
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-header {
    background: var(--bs-primary);
    left: 0;
    right: 0;
    width: auto;
    max-width: 100%;
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container {
    padding-top: 0;
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .pc-content {
    min-height: calc(100dvh - 74px);
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header {
    margin-top: 0;
    padding: 4px 0 0;
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header h2,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header .h2,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-title p,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-lead {
    color: var(--bs-heading-color, var(--bs-body-color));
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header .breadcrumb,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header .breadcrumb .breadcrumb-item,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header .breadcrumb a {
    color: var(--bs-secondary-color);
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header .breadcrumb {
    --bs-breadcrumb-divider-color: var(--bs-secondary-color);
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .page-header .breadcrumb .breadcrumb-item + .breadcrumb-item::before {
    color: var(--bs-secondary-color);
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .pc-content > .row:first-child:has(.welcome-banner),
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > .row:first-child,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > .card:first-child,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > form:first-child,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .pc-container .pc-content:not(:has(> .page-header)):not(:has(> .row:first-child .welcome-banner)) > .alert:first-child {
    margin-top: 0;
    padding-top: 0;
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-actions .btn-primary,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-actions .btn-primary:hover,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-actions .btn-primary:focus {
    color: #fff !important;
    background-color: var(--bs-primary) !important;
    border-color: var(--bs-primary) !important;
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-actions .btn-outline-primary,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-actions .btn-outline-primary:hover {
    color: var(--bs-primary) !important;
    background-color: transparent !important;
    border-color: var(--bs-primary) !important;
  }
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-actions .btn-outline-secondary,
  body[data-pc-layout='color-header']:not(.cv-public-shell) .page-header-actions .btn-outline-secondary:hover {
    color: var(--bs-body-color) !important;
    background-color: transparent !important;
    border-color: var(--bs-border-color) !important;
  }
  /* iOS amplia a página inteira ao focar campo com fonte abaixo de 16px. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="button"]):not([type="submit"]):not([type="reset"]):not([type="file"]):not([type="hidden"]),
  select,
  textarea,
  .choices__input {
    font-size: 16px;
  }
}

/* Offcanvas de novidades ? paridade Able (What's new announcement?) */
.pc-announcement-offcanvas {
  --bs-offcanvas-width: 474px;
}
.pc-announcement-offcanvas .offcanvas-title {
  font-size: 1.1rem;
  font-weight: 600;
}
.pc-announcement-offcanvas .text-span {
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  margin-bottom: 0.75rem;
}
.pc-announcement-offcanvas .card {
  border: 1px solid var(--bs-border-color);
  box-shadow: none;
}
.pc-announcement-offcanvas .card-body > h5 {
  color: var(--bs-heading-color, var(--bs-body-color));
  font-weight: 600;
}
.pc-announcement-offcanvas .card-body > .text-muted {
  margin-bottom: 1rem;
}
.pc-announcement-offcanvas .card-body img {
  border-radius: 8px;
  width: 100%;
}
.pc-announcement-offcanvas .d-grid .btn-outline-secondary {
  border-radius: 50rem;
}

/* Choices.js em form-floating
 *
 * Able Pro (style.css ~24587) aplica:
 *   .form-floating > .choices .choices__item { top: 7px; left: -2px; }
 * Isso empurra o valor selecionado E os itens do dropdown (seletor amplo demais).
 * Alinhamento correto = mesmo padding do .form-control floating no .choices__inner;
 * o offset do tema � anulado abaixo (n�o editar style.css).
 */
.form-floating > .choices {
  margin-bottom: 0;
}
.form-floating > .choices .choices__inner {
  min-height: calc(3.5rem + 2px);
  padding-top: 1.625rem;
  padding-bottom: 0.625rem;
}
.form-floating > select.form-select-sm + .choices .choices__inner,
.form-floating > .choices:has(select.form-select-sm) .choices__inner {
  min-height: calc(2.5rem + 2px);
  padding-top: 1.125rem;
  padding-bottom: 0.375rem;
  font-size: 0.875rem;
}
.form-floating > .choices .choices__list--single {
  padding-top: 0;
}
/* Anula hack Able s� no valor selecionado (n�o nos itens do dropdown) */
.form-floating > .choices .choices__list--single .choices__item {
  position: static;
  top: auto;
  left: auto;
}
.form-floating > .choices .choices__list--multiple .choices__item {
  position: static;
  top: auto;
  left: auto;
  margin-top: 0;
  margin-bottom: 0.15rem;
  vertical-align: middle;
}
.form-floating > .choices[data-type*="select-multiple"] .choices__inner,
.form-floating > .choices[data-type*="text"] .choices__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: center;
  gap: 0.2rem 0.25rem;
  padding-top: 1.45rem;
  padding-bottom: 0.4rem;
}
.form-floating > .choices[data-type*="select-multiple"] .choices__list--multiple,
.form-floating > .choices[data-type*="text"] .choices__list--multiple {
  display: contents;
}
.form-floating > .choices[data-type*="select-multiple"] .choices__input,
.form-floating > .choices[data-type*="text"] .choices__input {
  margin: 0;
  padding: 0;
  min-height: 1.45rem;
  line-height: 1.45rem;
}
.form-floating > .choices .choices__list--dropdown .choices__item {
  top: auto;
  left: auto;
}
.form-floating:has(.choices.is-open) {
  overflow: visible;
  z-index: 6;
}
.form-floating > .choices .choices__list--dropdown,
.form-floating > .choices .choices__list[aria-expanded] {
  position: absolute;
  z-index: 20;
}
/* modal-dialog-scrollable recorta o dropdown (caixa vazia). Liberar overflow s� com o select aberto. */
.modal-dialog-scrollable:has(.choices.is-open) {
  overflow: visible;
}
.modal-dialog-scrollable:has(.choices.is-open) .modal-content,
.modal-dialog-scrollable:has(.choices.is-open) .modal-body {
  overflow: visible;
}
.modal .choices__list--dropdown .choices__list {
  max-height: 12rem;
}
.form-floating > label {
  z-index: 5;
}
.form-floating > .choices.is-focused ~ label,
.form-floating > .choices.is-open ~ label,
.form-floating > .choices:not(.is-empty) ~ label,
.form-floating > .choices.choices-selected ~ label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.form-floating > .choices.is-focused .choices__inner,
.form-floating > .choices.is-open .choices__inner {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb, 70, 128, 255), 0.25);
}
#bancoFiltrosCard .form-floating > .choices .choices__inner {
  min-height: calc(3.5rem + 2px);
}
#bancoFiltrosCard .cv-filter-search {
  min-width: 12rem;
}
#bancoFiltrosCard .cv-filter-sort {
  flex: 0 0 15rem;
  width: 15rem;
  min-width: 15rem;
}
#bancoFiltrosCard .cv-filter-sort .choices {
  width: 100%;
  margin-bottom: 0;
}
#bancoFiltrosCard .cv-filter-sort .choices__list--dropdown,
#bancoFiltrosCard .cv-filter-sort .choices__list[aria-expanded] {
  width: 100%;
  min-width: 15rem;
}
#bancoFiltrosCard .cv-filter-sort .choices__list--dropdown .choices__item {
  white-space: nowrap;
}
#bancoFiltrosCard .cv-filter-tags {
  width: 100%;
  min-width: 0;
}
#bancoFiltrosCard .cv-filter-tags .choices {
  width: 100%;
  margin-bottom: 0;
}
#bancoFiltrosCard .cv-filter-tags .choices__inner {
  white-space: nowrap;
}
#bancoFiltrosCard .cv-filter-tags .choices__list--multiple {
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 0.25rem;
}
#bancoFiltrosCard .cv-filter-tags .choices__list--multiple .choices__item {
  white-space: nowrap;
  flex: 0 0 auto;
}
#bancoFiltrosCard .cv-filter-tags .choices__list--dropdown .choices__item {
  white-space: nowrap;
}
.cv-tags-livres .choices {
  margin-bottom: 0;
}
.cv-tags-livres .choices__inner {
  min-height: calc(3.5rem + 2px);
}
/* Filtros do banco: abas Able (sexo) + grupos rotulados (facetas) */
.cv-banco-facets {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.65rem 1.5rem;
}
.cv-banco-facet {
  flex: 0 1 auto;
  min-width: 0;
}
.cv-banco-facet.cv-banco-facet--tags {
  flex: 1 1 auto;
  min-width: 14rem;
  max-width: 100%;
}
.cv-banco-facet-chips {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.25rem;
  overflow-x: auto;
  scrollbar-width: thin;
  scrollbar-color: var(--cv-scroll-thumb) var(--cv-scroll-track);
}
.cv-banco-facet-label {
  font-size: 0.75rem;
  letter-spacing: 0.02em;
  font-weight: 600;
}
.cv-voz-view-toggle {
  flex-shrink: 0;
}
.checkout-tabs .nav-item .nav-link .avtar .pc-icon {
  width: 18px;
  height: 18px;
}
.cv-banco-facet .btn {
  padding: 0.2rem 0.7rem;
  flex: 0 0 auto;
  white-space: nowrap;
}
.cv-vitrine-destaques {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  margin-bottom: 1.25rem;
}
.cv-vitrine-bloco {
  margin-bottom: 1.1rem;
}
.cv-vitrine-recomendacao {
  padding: 0;
  background: transparent;
  border: 0;
}
.cv-voz-tile--rec .file-card {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
}
.cv-voz-tile--alta .file-card {
  border-color: rgba(var(--bs-warning-rgb), 0.45);
}
.cv-voz-cover-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  border-radius: var(--bs-card-inner-border-radius, 8px) var(--bs-card-inner-border-radius, 8px) 0 0;
}
.cv-voz-cover-wrap > .cv-locutor-avatar {
  width: 100%;
  height: 100%;
  aspect-ratio: 1 / 1;
}
.cv-voz-cover {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.cv-voz-cover--avatar {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cv-voz-cover--avatar img {
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
}
.cv-voz-cover-fav {
  position: absolute;
  top: 6px;
  right: 6px;
  left: auto;
  z-index: 6;
  width: 1.7rem;
  height: 1.7rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: transparent !important;
  color: #8b97a8;
  box-shadow: none;
}
.cv-voz-cover-fav:hover,
.cv-voz-cover-fav:focus {
  background: transparent !important;
  color: #e11d48;
}
[data-pc-theme="dark"] .cv-voz-cover-fav {
  color: #c5d0dc;
}
.cv-voz-cover-fav .cv-heart-fill {
  display: none;
}
.cv-voz-cover-fav[aria-pressed="true"] {
  color: #e11d48;
}
.cv-voz-cover-fav[aria-pressed="true"] .cv-heart-line {
  display: none;
}
.cv-voz-cover-fav[aria-pressed="true"] .cv-heart-fill {
  display: block;
}
.cv-voz-ico {
  width: 1.05rem;
  height: 1.05rem;
  display: block;
}
.cv-voz-pin-badge {
  position: absolute;
  top: 0.4rem;
  left: 0.4rem;
  z-index: 3;
  font-size: 0.62rem;
  font-weight: 600;
  padding: 0.18rem 0.42rem;
  line-height: 1.2;
  letter-spacing: 0.01em;
  pointer-events: none;
  box-shadow: 0 0.2rem 0.45rem rgba(19, 25, 32, 0.22);
}
.cv-voz-tile .file-card {
  position: relative;
}
.cv-vitrine-rail .cv-voz-cover-fav,
.cv-vitrine-restante .cv-voz-cover-fav {
  grid-column: 1 / -1;
  grid-row: 1;
  justify-self: end;
  align-self: start;
  margin: 0;
  top: 2px;
  right: -6px;
}
.file-card:has(> .form-check) .cv-voz-pin-badge {
  top: 2.15rem;
  left: 0.4rem;
}
.cv-voz-view-list .cv-voz-pin-badge {
  font-size: 0.55rem;
  padding: 0.12rem 0.32rem;
}
.cv-voz-cover-play {
  position: absolute;
  left: 0.4rem;
  bottom: 0.4rem;
  z-index: 2;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  box-shadow: 0 0.35rem 0.85rem rgba(19, 25, 32, 0.28);
}
.cv-voz-cover-play i,
.cv-voz-cover-play i::before {
  font-size: 1.05rem;
  line-height: 1;
  margin: 0;
  color: inherit;
}
.cv-voz-cover-wrap:hover .cv-voz-cover-play {
  transform: scale(1.08);
}
.cv-voz-view-list .cv-voz-cover-play {
  width: 2rem;
  height: 2rem;
}
.cv-voz-view-list .cv-voz-cover-play i {
  font-size: 0.95rem;
}
.cv-vitrine-rail-viewport {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
  scrollbar-color: var(--cv-scroll-thumb) var(--cv-scroll-track);
  padding: 0.1rem 0.1rem 0.35rem;
  -webkit-overflow-scrolling: touch;
}
.cv-vitrine-rail-viewport.is-looping {
  scroll-snap-type: none;
}
.cv-vitrine-rail-viewport::-webkit-scrollbar {
  height: var(--cv-scroll-size, 6px);
}
.cv-vitrine-rail-viewport::-webkit-scrollbar-track {
  background: transparent;
}
.cv-vitrine-rail-viewport::-webkit-scrollbar-thumb {
  background: rgba(174, 185, 197, 0.5);
  background-clip: padding-box;
  border: 2px solid transparent;
  border-radius: 7px;
}
.cv-vitrine-rail-track {
  display: flex;
  flex-wrap: nowrap;
  gap: 0.75rem;
  min-width: 100%;
}
.cv-voz-tile--rail {
  flex: 0 0 460px;
  width: 460px;
  min-width: 460px;
  max-width: 460px;
  scroll-snap-align: start;
}
.cv-voz-play-linha,
.cv-voz-card-selos,
.cv-voz-card-base {
  display: none;
}
.cv-vitrine-rail .cv-voz-tile--rail .file-card,
.cv-vitrine-restante .cv-voz-tile .file-card {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  padding: 4px 12px 4px 4px;
}
.cv-vitrine-rail .file-card > .form-check,
.cv-vitrine-restante .file-card > .form-check {
  grid-column: 1 / -1;
  grid-row: 1;
}
.cv-vitrine-rail .cv-voz-tile--rail[data-genero-class="info"] .file-card,
.cv-vitrine-restante .cv-voz-tile[data-genero-class="info"] .file-card {
  background: rgba(var(--bs-info-rgb), 0.1);
}
.cv-vitrine-rail .cv-voz-tile--rail[data-genero-class="danger"] .file-card,
.cv-vitrine-restante .cv-voz-tile[data-genero-class="danger"] .file-card {
  background: rgba(var(--bs-danger-rgb), 0.1);
}
.cv-vitrine-rail .cv-voz-tile--rail .cv-voz-cover-wrap,
.cv-vitrine-restante .cv-voz-tile .cv-voz-cover-wrap {
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  aspect-ratio: auto;
  border-radius: 16px;
}
.cv-vitrine-rail .cv-voz-tile--rail .cv-voz-cover-wrap,
.cv-vitrine-rail .cv-voz-tile--rail .cv-voz-cover {
  flex: 0 0 148px;
  width: 148px;
  height: 148px;
}
.cv-vitrine-restante .cv-voz-tile .cv-voz-cover-wrap,
.cv-vitrine-restante .cv-voz-tile .cv-voz-cover {
  flex: 0 0 124px;
  width: 124px;
  height: 124px;
}
.cv-vitrine-rail .cv-voz-cover,
.cv-vitrine-restante .cv-voz-cover {
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center center;
}
.cv-vitrine-rail .cv-voz-card-body,
.cv-vitrine-restante .cv-voz-card-body {
  grid-column: 2;
  grid-row: 1;
  justify-content: center;
  min-width: 0;
  padding: 0.35rem 2.4rem 0.35rem 0.7rem;
}
.cv-vitrine-rail .cv-voz-play-linha,
.cv-vitrine-restante .cv-voz-play-linha {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 32px;
  height: 32px;
  min-height: 0;
  margin-top: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #2f6bff;
  color: #fff;
  line-height: 1;
  box-shadow: none;
}
.cv-voz-play-linha:hover,
.cv-voz-play-linha:focus {
  background: #1f5bef;
  color: #fff;
}
.cv-voz-tile[data-genero-class="danger"] .cv-voz-play-linha {
  background: #ef3d86;
  color: #fff;
}
.cv-voz-tile[data-genero-class="danger"] .cv-voz-play-linha:hover,
.cv-voz-tile[data-genero-class="danger"] .cv-voz-play-linha:focus {
  background: #e12a74;
  color: #fff;
}
.cv-voz-play-linha .cv-voz-ico {
  width: 0.95rem;
  height: 0.95rem;
  margin-left: 1px;
}
.cv-vitrine-rail .cv-voz-card-nome {
  font-size: 1.05rem;
  line-height: 32px;
}
.cv-vitrine-restante .cv-voz-card-nome {
  font-size: 0.98rem;
  line-height: 32px;
}
.cv-vitrine-rail .cv-voz-card-selos,
.cv-vitrine-restante .cv-voz-card-selos,
.cv-vitrine-rail .cv-voz-card-base,
.cv-vitrine-restante .cv-voz-card-base {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}
.cv-vitrine-rail .cv-voz-card-selos,
.cv-vitrine-restante .cv-voz-card-selos {
  margin-top: 0.2rem;
  overflow: hidden;
}
.cv-vitrine-rail .cv-voz-card-desc,
.cv-vitrine-restante .cv-voz-card-desc {
  display: -webkit-box !important;
  height: 2.6em;
  margin-top: 0.35rem;
  overflow: hidden;
  line-height: 1.3;
  white-space: normal;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.cv-vitrine-rail .cv-voz-card-base .badge,
.cv-vitrine-restante .cv-voz-card-base .badge {
  background: rgba(255, 255, 255, 0.72);
  color: var(--bs-secondary-color);
}
.cv-voz-pedir {
  margin-left: auto;
  color: var(--bs-primary);
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
}
.cv-voz-pedir:hover {
  color: var(--bs-primary);
}
.cv-voz-seletor {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}
.js-pedir-voz-card {
  cursor: pointer;
}
.js-pedir-voz-card .file-card {
  transition: border-color .28s ease, box-shadow .28s ease;
}
#pedirVozGrid .js-pedir-voz-card.is-selected > .file-card {
  border-color: #2f6bff !important;
  box-shadow: 0 0 0 2px rgba(47, 107, 255, .5) !important;
}
#pedirVozGrid .js-pedir-voz-card.is-selected[data-genero-class="danger"] > .file-card {
  border-color: #ef3d86 !important;
  box-shadow: 0 0 0 2px rgba(239, 61, 134, .45) !important;
}
#pedirVozFoco,
#pedirVozFocoSlot {
  overflow: visible;
}
.js-pedir-voz-card.cv-voz-em-voo {
  z-index: 40;
}
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-estilos,
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-ficha,
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-card-copy > .d-flex.flex-wrap,
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-cover-play {
  display: none !important;
}
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo > .card.file-card {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  flex-direction: unset;
  padding: 12px;
  gap: 14px;
}
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-play-linha,
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-card-selos,
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-card-base {
  display: flex !important;
}
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-card-desc {
  display: -webkit-box !important;
  height: 2.6em;
  -webkit-line-clamp: 2;
}
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-cover-wrap,
#pedirVozFocoSlot .cv-voz-foco-card.cv-voz-em-voo .cv-voz-cover {
  flex: 0 0 148px;
  width: 148px;
  height: 148px;
}
#pedirVozFocoSlot .cv-voz-foco-card:not(.cv-voz-em-voo) .cv-voz-estilos {
  animation: cv-voz-revela .35s ease;
}
@keyframes cv-voz-revela {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; }
}
.cv-vitrine-rail .cv-voz-card-copy > .d-flex.flex-wrap,
.cv-vitrine-restante .cv-voz-card-copy > .d-flex.flex-wrap,
.cv-vitrine-rail .cv-voz-estilos,
.cv-vitrine-restante .cv-voz-estilos,
.cv-vitrine-rail .cv-voz-pin-badge,
.cv-vitrine-restante .cv-voz-pin-badge,
.cv-vitrine-rail .cv-voz-ficha,
.cv-vitrine-restante .cv-voz-ficha,
.cv-vitrine-rail .cv-voz-cover-play,
.cv-vitrine-restante .cv-voz-cover-play {
  display: none !important;
}
.cv-vitrine-restante .js-voz-grid-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
  gap: 0.75rem;
  margin-right: 0;
  margin-left: 0;
}
.cv-vitrine-restante .js-voz-grid-row > .cv-voz-tile {
  width: auto;
  max-width: none;
  padding: 0;
  flex: none;
}
.cv-voz-card-nome {
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.3;
}
.cv-voz-view-list .cv-voz-play-linha,
.cv-voz-view-list .cv-voz-card-selos,
.cv-voz-view-list .cv-voz-card-base {
  display: none !important;
}
.cv-voz-view-list .cv-voz-cover-play {
  display: inline-flex !important;
}
.cv-voz-view-list .cv-vitrine-rail .cv-voz-card-desc,
.cv-voz-view-list .cv-vitrine-restante .cv-voz-card-desc {
  display: block !important;
  height: auto;
  -webkit-line-clamp: unset;
}
.cv-voz-view-list .cv-vitrine-rail .cv-voz-tile--rail .cv-voz-card-copy > .d-flex.flex-wrap,
.cv-voz-view-list .cv-vitrine-restante .cv-voz-card-copy > .d-flex.flex-wrap,
.cv-voz-view-list .cv-vitrine-rail .cv-voz-tile--rail .cv-voz-estilos,
.cv-voz-view-list .cv-vitrine-restante .cv-voz-estilos,
.cv-voz-view-list .cv-vitrine-rail .cv-voz-tile--rail .cv-voz-ficha,
.cv-voz-view-list .cv-vitrine-restante .cv-voz-ficha {
  display: flex !important;
}
.cv-voz-view-list .cv-vitrine-restante .js-voz-grid-row {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.cv-voz-view-list .cv-vitrine-restante .js-voz-grid-row > .cv-voz-tile {
  width: 100%;
  max-width: 100%;
}
.cv-voz-view-list .cv-vitrine-rail .cv-voz-tile--rail .cv-voz-cover-wrap,
.cv-voz-view-list .cv-vitrine-rail .cv-voz-tile--rail .cv-voz-cover {
  flex-basis: 4.5rem;
  width: 4.5rem;
  height: 4.5rem;
}
.cv-voz-view-list .cv-vitrine-destaques {
  display: flex;
  flex-direction: column;
}
.cv-voz-view-list .cv-vitrine-rail-viewport {
  overflow: visible;
  scroll-snap-type: none;
}
.cv-voz-view-list .cv-vitrine-rail-track {
  flex-wrap: wrap;
  width: auto;
}
.cv-voz-view-list .cv-voz-tile--rail {
  flex: 1 1 100%;
  width: auto;
  min-width: 0;
  max-width: none;
}
.cv-voz-view-list .cv-voz-tile .file-card {
  display: flex;
  flex-direction: row;
  align-items: stretch;
}
.cv-voz-view-list .cv-voz-cover-wrap {
  flex: 0 0 4.5rem;
  width: 4.5rem;
  height: 4.5rem;
  aspect-ratio: 1 / 1;
  align-self: center;
  border-radius: var(--bs-card-inner-border-radius, 8px) 0 0 var(--bs-card-inner-border-radius, 8px);
}
.cv-voz-view-list .cv-voz-cover,
.cv-voz-view-list .cv-voz-tile--rail .cv-voz-cover {
  width: 4.5rem;
  height: 4.5rem;
  min-height: 0;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  object-position: center center;
}
.cv-voz-view-list .js-rail-shift {
  display: none;
}

/*
 * Choices no dark: Able grava .form-floating > .choices .choices__list { color:#131920 }
 * (igual ao --bs-body-bg dark) e o dropdown branco s� ganha fundo no preset ?
 * o texto continua preto. Precisa ganhar de 0,3,0.
 */
[data-pc-theme=dark] .form-floating > input,
[data-pc-theme=dark] .form-floating > .choices .choices__list,
[data-pc-theme=dark] .form-floating > .choices .choices__item,
[data-pc-theme=dark] .form-floating > .choices .choices__placeholder,
[data-pc-theme=dark] .form-floating > .choices .choices__input {
  color: var(--bs-body-color);
}
[data-pc-theme=dark] .choices__inner,
[data-pc-theme=dark] .form-floating > .choices .choices__inner,
[data-pc-theme=dark] .form-floating > .choices .choices__inner.bg-light,
[data-pc-theme=dark] .form-floating > .choices.bg-light .choices__inner {
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  border-color: rgba(255, 255, 255, 0.15);
}
/* Placeholder do Able (#bec8d0) fica em 1.7:1 no campo branco. */
body:not([data-pc-theme="dark"]) .form-control::placeholder,
body:not([data-pc-theme="dark"]) .datatable-input::placeholder,
body:not([data-pc-theme="dark"]) .custom-select::placeholder,
body:not([data-pc-theme="dark"]) .dataTable-selector::placeholder,
body:not([data-pc-theme="dark"]) .dataTable-input::placeholder,
body:not([data-pc-theme="dark"]) .choices__placeholder,
body:not([data-pc-theme="dark"]) .choices__input::placeholder {
  color: #5b6b79;
  opacity: 1;
}
/* No form-floating o r�tulo ocupa o campo vazio e sem foco.
   O placeholder do Able fica transparente; a regra acima n�o pode revel�-lo. */
body:not([data-pc-theme="dark"]) .form-floating > .form-control::placeholder,
body:not([data-pc-theme="dark"]) .form-floating > .datatable-input::placeholder,
body:not([data-pc-theme="dark"]) .form-floating > .custom-select::placeholder,
body:not([data-pc-theme="dark"]) .form-floating > .dataTable-selector::placeholder,
body:not([data-pc-theme="dark"]) .form-floating > .dataTable-input::placeholder,
body:not([data-pc-theme="dark"]) .form-floating > .form-control-plaintext::placeholder {
  color: transparent;
}
[data-pc-theme=dark] .choices__placeholder {
  color: var(--bs-secondary-color);
  opacity: 1;
}
[data-pc-theme=dark] .choices__input,
[data-pc-theme=dark] .choices[data-type*=select-one] .choices__input {
  background-color: transparent;
  color: var(--bs-body-color);
}
[data-pc-theme=dark] .choices__input::placeholder {
  color: var(--bs-secondary-color);
  opacity: 1;
}
[data-pc-theme=dark] .choices__list--dropdown,
[data-pc-theme=dark] .choices__list[aria-expanded],
[data-pc-theme=dark] .form-floating > .choices .choices__list--dropdown,
[data-pc-theme=dark] .form-floating > .choices .choices__list[aria-expanded] {
  background: var(--bs-body-bg);
  border-color: #303f50;
  color: var(--bs-body-color);
}
[data-pc-theme=dark] .choices__list--dropdown .choices__item,
[data-pc-theme=dark] .form-floating > .choices .choices__list--dropdown .choices__item,
[data-pc-theme=dark] .choices__list--dropdown .has-no-results,
[data-pc-theme=dark] .choices__list--dropdown .has-no-choices {
  color: var(--bs-body-color);
}
[data-pc-theme=dark] .choices__list--dropdown .choices__item--selectable.is-highlighted,
[data-pc-theme=dark] .form-floating > .choices .choices__list--dropdown .choices__item--selectable.is-highlighted {
  background-color: rgba(var(--bs-primary-rgb), 0.2);
  color: var(--bs-body-color);
}
[data-pc-theme=dark] .choices[data-type*=select-one]:after {
  border-color: var(--bs-body-color) transparent transparent transparent;
}
[data-pc-theme=dark] .choices__list--dropdown .choices__input--cloned {
  border-bottom: 1px solid #303f50;
  color: var(--bs-body-color);
  background: transparent;
}

/* Scroll do painel ? igual ao menu (SimpleBar Able: trilho transparente, thumb #aeb9c5). */
html,
body,
.modal-body,
.offcanvas-body,
.dropdown-menu,
.pc-container,
.pc-content,
.table-responsive,
.dataTables_scrollBody,
.pc-announcement-offcanvas .offcanvas-body,
.choices__list--dropdown .choices__list,
textarea.form-control,
.cv-vitrine-rail-viewport,
.cv-banco-facet-chips,
.cv-chat-log,
.cv-chat-panel {
  scrollbar-width: thin;
  scrollbar-color: var(--cv-scroll-thumb) var(--cv-scroll-track);
}
html::-webkit-scrollbar,
body::-webkit-scrollbar,
.modal-body::-webkit-scrollbar,
.offcanvas-body::-webkit-scrollbar,
.dropdown-menu::-webkit-scrollbar,
.pc-container::-webkit-scrollbar,
.pc-content::-webkit-scrollbar,
.table-responsive::-webkit-scrollbar,
.dataTables_scrollBody::-webkit-scrollbar,
.pc-announcement-offcanvas .offcanvas-body::-webkit-scrollbar,
.choices__list--dropdown .choices__list::-webkit-scrollbar,
textarea.form-control::-webkit-scrollbar,
.cv-vitrine-rail-viewport::-webkit-scrollbar,
.cv-banco-facet-chips::-webkit-scrollbar,
.cv-chat-log::-webkit-scrollbar,
.cv-chat-panel::-webkit-scrollbar {
  width: var(--cv-scroll-size);
  height: var(--cv-scroll-size);
}
html::-webkit-scrollbar-track,
body::-webkit-scrollbar-track,
.modal-body::-webkit-scrollbar-track,
.offcanvas-body::-webkit-scrollbar-track,
.dropdown-menu::-webkit-scrollbar-track,
.pc-container::-webkit-scrollbar-track,
.pc-content::-webkit-scrollbar-track,
.table-responsive::-webkit-scrollbar-track,
.dataTables_scrollBody::-webkit-scrollbar-track,
.pc-announcement-offcanvas .offcanvas-body::-webkit-scrollbar-track,
.choices__list--dropdown .choices__list::-webkit-scrollbar-track,
textarea.form-control::-webkit-scrollbar-track,
.cv-vitrine-rail-viewport::-webkit-scrollbar-track,
.cv-banco-facet-chips::-webkit-scrollbar-track,
.cv-chat-log::-webkit-scrollbar-track,
.cv-chat-panel::-webkit-scrollbar-track {
  background: var(--cv-scroll-track);
}
html::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb,
.modal-body::-webkit-scrollbar-thumb,
.offcanvas-body::-webkit-scrollbar-thumb,
.dropdown-menu::-webkit-scrollbar-thumb,
.pc-container::-webkit-scrollbar-thumb,
.pc-content::-webkit-scrollbar-thumb,
.table-responsive::-webkit-scrollbar-thumb,
.dataTables_scrollBody::-webkit-scrollbar-thumb,
.pc-announcement-offcanvas .offcanvas-body::-webkit-scrollbar-thumb,
.choices__list--dropdown .choices__list::-webkit-scrollbar-thumb,
textarea.form-control::-webkit-scrollbar-thumb,
.cv-vitrine-rail-viewport::-webkit-scrollbar-thumb,
.cv-banco-facet-chips::-webkit-scrollbar-thumb,
.cv-chat-log::-webkit-scrollbar-thumb,
.cv-chat-panel::-webkit-scrollbar-thumb {
  background: var(--cv-scroll-thumb);
  background-clip: padding-box;
  border: 2px solid transparent;
  border-radius: 7px;
}
html::-webkit-scrollbar-thumb:hover,
body::-webkit-scrollbar-thumb:hover,
.modal-body::-webkit-scrollbar-thumb:hover,
.offcanvas-body::-webkit-scrollbar-thumb:hover,
.dropdown-menu::-webkit-scrollbar-thumb:hover,
.pc-container::-webkit-scrollbar-thumb:hover,
.pc-content::-webkit-scrollbar-thumb:hover,
.table-responsive::-webkit-scrollbar-thumb:hover,
.dataTables_scrollBody::-webkit-scrollbar-thumb:hover,
.pc-announcement-offcanvas .offcanvas-body::-webkit-scrollbar-thumb:hover,
.choices__list--dropdown .choices__list::-webkit-scrollbar-thumb:hover,
textarea.form-control::-webkit-scrollbar-thumb:hover,
.cv-vitrine-rail-viewport::-webkit-scrollbar-thumb:hover,
.cv-banco-facet-chips::-webkit-scrollbar-thumb:hover,
.cv-chat-log::-webkit-scrollbar-thumb:hover,
.cv-chat-panel::-webkit-scrollbar-thumb:hover {
  background: var(--cv-scroll-thumb-hover);
}

/* SimpleBar ? Able: track transparente + thumb cinza #aeb9c5 (style.css).
   Fundo no track quadrava o canto 12px do color-header quando havia scroll. */
.pc-sidebar .simplebar-track {
  background: transparent;
}
[data-pc-layout='color-header'] .pc-sidebar .simplebar-track.simplebar-vertical {
  border-top-right-radius: 12px;
}

/* Textarea ? min ~4 linhas + auto-grow (sem scroll interno) */
textarea.form-control:not([data-no-autoheight]):not([data-chat-linha]) {
  min-height: calc(1.5em * 4 + 1.625rem + 0.625rem);
  overflow-y: hidden;
  resize: none;
  field-sizing: content; /* browsers que suportam; JS cobre o resto */
}
.form-floating > textarea.form-control:not([data-no-autoheight]):not([data-chat-linha]) {
  min-height: calc(1.5em * 4 + 1.625rem + 0.625rem + 0.5rem);
}
textarea.form-control[data-no-autoheight] {
  overflow-y: auto;
  resize: vertical;
}

/* Empty state simples */
.cvoz-empty {
  text-align: center;
  padding: 2.5rem 1.25rem;
  color: var(--bs-secondary-color, #6c757d);
}
.cvoz-empty .ti {
  font-size: 2rem;
  display: block;
  margin-bottom: 0.75rem;
  opacity: 0.7;
}

/* Apar�ncia ? pickers (classes pr�prias p/ n�o colidir com listeners Able) */
.cvoz-aparencia-picker .preset-btn {
  border: 2px solid var(--bs-border-color, #e7eaee);
  border-radius: 8px;
  min-height: 52px;
  background: var(--bs-body-bg, #fff);
}
.cvoz-aparencia-picker .preset-btn.active {
  border-color: var(--bs-primary, #4680ff);
  box-shadow: 0 0 0 1px var(--bs-primary, #4680ff);
}
.cvoz-aparencia-picker .cvoz-preset-color {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}
.cvoz-aparencia-picker .cvoz-preset-color > a {
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  max-width: 32px;
  min-width: 32px;
  margin: 0;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  border: 2px solid transparent;
  overflow: hidden;
  position: relative;
}
.cvoz-aparencia-picker .cvoz-preset-color > a i {
  font-size: 14px;
  transform: scale(0);
  transition: transform 0.15s ease;
}
.cvoz-aparencia-picker .cvoz-preset-color > a.active {
  border-color: #1d2630;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bs-primary, #4680ff);
}
.cvoz-aparencia-picker .cvoz-preset-color > a.active i {
  transform: scale(1);
}
.cvoz-aparencia-picker .cvoz-cor-livre {
  position: relative;
  flex: 0 0 32px;
  width: 32px;
  height: 32px;
  margin: 0;
  border-radius: 50%;
  overflow: hidden;
  border: 2px dashed #8a94a6;
  cursor: pointer;
}
.cvoz-aparencia-picker .cvoz-cor-livre input[type="color"] {
  position: absolute;
  inset: -4px;
  width: calc(100% + 8px);
  height: calc(100% + 8px);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.cvoz-aparencia-picker .cvoz-cor-livre i {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 16px;
  text-shadow: 0 0 2px rgba(0, 0, 0, 0.65);
  pointer-events: none;
}
.cvoz-aparencia-picker .cvoz-cor-livre.is-custom {
  border-style: solid;
  border-color: #1d2630;
  box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bs-primary, #4680ff);
}
.cvoz-aparencia-picker .cvoz-theme-main-layout > a {
  display: inline-block;
  border: 2px solid var(--bs-border-color, #e7eaee);
  border-radius: 8px;
  padding: 4px;
  max-width: 72px;
  flex: none;
}
.cvoz-aparencia-picker .cvoz-theme-main-layout > a.active {
  border-color: var(--bs-primary, #4680ff);
}
/* Caption / LTR / Largura ? compactos (Able offcanvas ~140px; na p�gina col-6 esticava demais) */
.cvoz-aparencia-picker .cvoz-pick-img-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}
.cvoz-aparencia-picker .cvoz-pick-img-row .preset-btn.btn-img {
  flex: 0 0 auto;
  width: 132px;
  max-width: 132px;
  min-height: 0;
  padding: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cvoz-aparencia-picker .cvoz-pick-img-row .preset-btn.btn-img img {
  display: block;
  width: 100%;
  max-height: 78px;
  height: auto;
  object-fit: contain;
  margin: 0;
}
@media (max-width: 575.98px) {
  .cvoz-aparencia-picker .cvoz-pick-img-row .preset-btn.btn-img {
    width: calc(50% - 0.25rem);
    max-width: none;
  }
}

body:not(.pc-sidebar) > .pc-header .pc-head-link {
  font-size: 0.875rem;
  padding: 0.5rem 0.75rem;
}

/* O .pc-head-link do Able � um bot�o de �cone 44�44 com overflow hidden.
   No shell p�blico o mesmo elemento carrega texto, ent�o precisa da largura do r�tulo. */
.cv-public-shell .pc-header .pc-head-link {
  width: auto;
  height: auto;
  min-height: 36px;
  padding: 0.35rem 0.7rem;
  overflow: visible;
  white-space: nowrap;
}
@media (max-width: 575.98px) {
  .cv-public-shell .pc-header .pc-h-item:has(> .pc-head-link) {
    display: none;
  }
}

/* Provedores TTS ? cola Able (file-card / sticky import) */
.cv-el-toolbar.sticky-top {
  top: 4.5rem;
  z-index: 1020;
}
.cv-el-toolbar .cv-bar-field {
  min-width: 12rem;
  flex: 1 1 12rem;
  max-width: 18rem;
}
.cv-el-toolbar .cv-bar-field .form-control,
.cv-el-toolbar .cv-bar-field .form-select,
.cv-el-toolbar .cv-bar-field .choices__inner {
  background-color: #fff;
}
.cv-el-toolbar .form-floating > .choices ~ label,
.cv-el-toolbar .form-floating > .form-select ~ label {
  opacity: 0.65;
  transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
}
.cv-el-voice-card .cv-voice-actions,
.cv-el-voice-card .btn,
.cv-el-voice-card a {
  position: relative;
  z-index: 5;
}

/* ??? DataTables Able (padr�o mail.html) ??????????????????????????????????? */
/* table-card Able: sem padding lateral no body ? respiro nas 1�/�ltima colunas + toolbar */
.table-card.cv-dt-card > .card-header {
  padding-top: calc(var(--bs-card-spacer-y) * 0.55);
  padding-bottom: calc(var(--bs-card-spacer-y) * 0.55);
}
.table-card.cv-dt-card > .card-body {
  /* topo mais apertado: header do card j� d� respiro visual */
  padding-top: calc(var(--bs-card-spacer-y) * 0.45);
  padding-bottom: var(--bs-card-spacer-y);
  padding-left: 0;
  padding-right: 0;
}
.table-card.cv-dt-card .cv-dt-toolbar-extra {
  padding-left: var(--bs-card-spacer-x);
  padding-right: var(--bs-card-spacer-x);
}
.cv-voz-filtros .choices__list--dropdown,
.cv-voz-filtros .choices__list[aria-expanded] {
  z-index: 30;
}
.table-card.cv-dt-card .cv-dt-toolbar,
.table-card.cv-dt-card .cv-dt-footer,
.table-card.cv-dt-card .dt-container > .row,
.table-card.cv-dt-card .dataTables_wrapper > .row {
  padding-left: var(--bs-card-spacer-x);
  padding-right: var(--bs-card-spacer-x);
}
.table-card.cv-dt-card > .card-body .table > :not(caption) > * > * {
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
/* 1�/�ltima coluna vis�vel = spacer do card (checkbox oculto via DT n�o conta) */
.table-card.cv-dt-card > .card-body .table tr td:first-child,
.table-card.cv-dt-card > .card-body .table tr th:first-child {
  padding-left: var(--bs-card-spacer-x);
}
.table-card.cv-dt-card > .card-body .cv-dt-wrap.cv-dt-select-off .table tr td:nth-child(2),
.table-card.cv-dt-card > .card-body .cv-dt-wrap.cv-dt-select-off .table tr th:nth-child(2) {
  padding-left: var(--bs-card-spacer-x);
}
.table-card.cv-dt-card > .card-body .table tr td:last-child,
.table-card.cv-dt-card > .card-body .table tr th:last-child {
  padding-right: var(--bs-card-spacer-x);
}

/* A��es de tabela: mesmo tamanho em todas as listagens */
.table td .btn,
table.dataTable td .btn,
.dataTables_wrapper td .btn,
.dt-container td .btn,
.cv-acoes > .btn,
.cv-acoes form .btn {
  --bs-btn-padding-y: 0.45rem;
  --bs-btn-padding-x: 0.85rem;
  --bs-btn-font-size: 0.875rem;
  --bs-btn-line-height: 1.2;
  --bs-btn-border-radius: 0.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 2.4rem;
  padding: 0.45rem 0.85rem;
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.2;
  border-radius: 0.5rem;
  white-space: nowrap;
}
.table td .btn i.ti,
table.dataTable td .btn i.ti,
.cv-acoes .btn i.ti {
  font-size: 1.15rem;
  line-height: 1;
}
.cv-acoes {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
}
.cv-acoes form {
  margin: 0;
}
.page-header-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
}
.page-header-actions form {
  margin: 0;
}

.cv-dt-wrap .cv-dt-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  margin-bottom: 0.75rem;
}
.cv-dt-wrap .cv-dt-toolbar .list-inline {
  margin-bottom: 0;
}
.cv-dt-wrap .cv-dt-toolbar .form-search {
  min-width: 220px;
  position: relative;
}
.cv-dt-wrap .cv-dt-toolbar .form-search > .ti,
.cv-dt-wrap .cv-dt-toolbar .form-search > i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  opacity: 0.55;
  pointer-events: none;
}
.cv-dt-wrap .cv-dt-toolbar .form-search .form-control {
  height: 38px;
  min-height: 38px;
  padding-top: 0;
  padding-bottom: 0;
  padding-left: 2.25rem;
  line-height: 38px;
}
.cv-dt-wrap .cv-dt-toolbar .avtar.btn-link-secondary.active,
.cv-dt-wrap .cv-dt-toolbar .btn.active {
  color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle, rgba(var(--bs-primary-rgb), 0.12));
}

/* Filtros lab ? chips em badge glass */
.cv-dt-filter-glass {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem;
  padding: 0.4rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.45);
  border: 1px solid rgba(255, 255, 255, 0.65);
  box-shadow: 0 4px 18px rgba(27, 46, 94, 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.cv-dt-card .card-header.bg-light-primary .cv-dt-filter-glass {
  background: color-mix(in srgb, #fff 55%, rgba(var(--bs-primary-rgb), 0.08));
  border-color: color-mix(in srgb, #fff 40%, rgba(var(--bs-primary-rgb), 0.18));
}
[data-pc-theme=dark] .cv-dt-filter-glass {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.12);
  box-shadow: none;
}
.cv-dt-filter-glass .cv-dt-filtro-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  border: 0;
  box-shadow: none;
  min-height: 2.375rem;
  padding: 0.5rem 1.05rem;
  font-size: 0.9rem;
  line-height: 1.25;
  font-weight: 500;
}
.cv-dt-filter-glass .cv-dt-filtro-status .ti {
  margin: 0 !important;
  font-size: 1.05em;
  line-height: 1;
  /* Tabler webfont: caixa �ptica ligeiramente alta ? corrige sem encolher o chip */
  position: relative;
  top: 0.06em;
}
.cv-dt-filter-glass .cv-dt-filtro-status.active,
.cv-dt-filter-glass .cv-dt-filtro-status:hover:not(.active),
.cv-dt-filter-glass .cv-dt-filtro-status:focus-visible:not(.active) {
  font-weight: 600;
}
/* Selecionado = cor cheia (o que antes era o hover). Hover = tom claro com anel. */
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-primary.cv-dt-filtro-status.active {
  background: #1440aa !important;
  border-color: #1440aa !important;
  color: #fff !important;
  box-shadow: none;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-primary.cv-dt-filtro-status:hover:not(.active),
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-primary.cv-dt-filtro-status:focus-visible:not(.active) {
  background: #edf2ff !important;
  border-color: #edf2ff !important;
  color: #1440aa !important;
  box-shadow: inset 0 0 0 2px currentColor;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-warning.cv-dt-filtro-status.active {
  background: #d4a017 !important;
  border-color: #d4a017 !important;
  color: #3d2e08 !important;
  box-shadow: none;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-warning.cv-dt-filtro-status:hover:not(.active),
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-warning.cv-dt-filtro-status:focus-visible:not(.active) {
  background: #f7f0c8 !important;
  border-color: #f7f0c8 !important;
  color: #7c6514 !important;
  box-shadow: inset 0 0 0 2px currentColor;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-success.cv-dt-filtro-status.active {
  background: #0f5a3e !important;
  border-color: #0f5a3e !important;
  color: #fff !important;
  box-shadow: none;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-success.cv-dt-filtro-status:hover:not(.active),
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-success.cv-dt-filtro-status:focus-visible:not(.active) {
  background: #eaf6f2 !important;
  border-color: #eaf6f2 !important;
  color: #0f5a3e !important;
  box-shadow: inset 0 0 0 2px currentColor;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-info.cv-dt-filtro-status.active {
  background: #0e505a !important;
  border-color: #0e505a !important;
  color: #fff !important;
  box-shadow: none;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-info.cv-dt-filtro-status:hover:not(.active),
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-info.cv-dt-filtro-status:focus-visible:not(.active) {
  background: #e7f6f8 !important;
  border-color: #e7f6f8 !important;
  color: #0e505a !important;
  box-shadow: inset 0 0 0 2px currentColor;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-danger.cv-dt-filtro-status.active {
  background: #9b1c1c !important;
  border-color: #9b1c1c !important;
  color: #fff !important;
  box-shadow: none;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-danger.cv-dt-filtro-status:hover:not(.active),
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-danger.cv-dt-filtro-status:focus-visible:not(.active) {
  background: #fde8e8 !important;
  border-color: #fde8e8 !important;
  color: #9b1c1c !important;
  box-shadow: inset 0 0 0 2px currentColor;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-secondary.cv-dt-filtro-status.active {
  background: #5b6b79 !important;
  border-color: #5b6b79 !important;
  color: #fff !important;
  box-shadow: none;
}
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-secondary.cv-dt-filtro-status:hover:not(.active),
body:not([data-pc-theme="dark"]) .cv-dt-filter-glass .btn-light-secondary.cv-dt-filtro-status:focus-visible:not(.active) {
  background: #eff0f2 !important;
  border-color: #eff0f2 !important;
  color: #3e4853 !important;
  box-shadow: inset 0 0 0 2px currentColor;
}
[data-pc-theme=dark] .cv-dt-filter-glass .cv-dt-filtro-status.active {
  box-shadow: none;
  color: #fff !important;
}
[data-pc-theme=dark] .cv-dt-filter-glass .cv-dt-filtro-status:hover:not(.active),
[data-pc-theme=dark] .cv-dt-filter-glass .cv-dt-filtro-status:focus-visible:not(.active) {
  box-shadow: inset 0 0 0 2px currentColor;
}

/* Densidade */
.cv-dt-wrap.cv-dt-density-normal .table > :not(caption) > * > * {
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.cv-dt-wrap.cv-dt-density-compact .table > :not(caption) > * > * {
  padding-top: 0.4rem;
  padding-bottom: 0.4rem;
}
.cv-dt-wrap.cv-dt-density-normal tbody td {
  height: 64px;
  vertical-align: middle;
}
.cv-dt-wrap.cv-dt-density-compact tbody td {
  height: 45px;
  vertical-align: middle;
  font-size: 0.925rem;
}

/* Header com cor distinta */
.cv-dt-wrap .table thead th {
  background: var(--bs-primary-bg-subtle, rgba(var(--bs-primary-rgb), 0.1));
  color: var(--bs-emphasis-color, inherit);
  border-bottom-color: rgba(var(--bs-primary-rgb), 0.2);
  font-weight: 600;
  white-space: nowrap;
}

/* Skin cl�ssica (�nica) */
.cv-dt-wrap .table {
  border-collapse: collapse;
  width: 100% !important;
}

/* Select opcional ? visibilidade via DataTables API; classe s� para padding */
.cv-dt-wrap .cv-dt-check-cell {
  width: 44px;
  text-align: center;
}
.cv-dt-wrap .cv-dt-check-cell .form-check {
  display: inline-flex;
  margin: 0;
  min-height: 0;
  padding-left: 1.4em;
}
.cv-dt-wrap .cv-dt-row-selected {
  background: color-mix(in srgb, var(--bs-primary) 6%, transparent) !important;
}

/* Footer: info alinhada � pagina��o + length Choices na toolbar */
.cv-dt-wrap .cv-dt-footer,
.table-card.cv-dt-card .cv-dt-footer {
  align-items: center !important;
}
.cv-dt-wrap .cv-dt-footer-start,
.cv-dt-wrap .dt-info,
.cv-dt-wrap .dataTables_info,
.table-card.cv-dt-card .dt-info,
.table-card.cv-dt-card .dataTables_info {
  display: flex;
  align-items: center;
  margin: 0;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  min-height: 2rem;
  line-height: 1.25;
}
.table-card.cv-dt-card .dt-container > .row,
.table-card.cv-dt-card .dataTables_wrapper > .row {
  align-items: center;
}
/* length: anula height:58px / padding:16px do Able .choices__inner */
.cv-dt-wrap .cv-dt-length {
  width: 5rem;
  min-width: 5rem;
  line-height: 1;
}
.cv-dt-wrap .cv-dt-length .choices {
  width: 100%;
  margin-bottom: 0;
  font-size: 0.875rem;
}
.cv-dt-wrap .cv-dt-length .choices[data-type*="select-one"] .choices__inner,
.cv-dt-wrap .cv-dt-length .choices__inner {
  display: block !important;
  box-sizing: border-box !important;
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  padding: 0 1.85rem 0 0.75rem !important;
  line-height: 36px !important;
  font-size: 0.875rem !important;
  overflow: hidden !important;
  white-space: nowrap !important;
}
.cv-dt-wrap .cv-dt-length .choices__list--single {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100%;
}
.cv-dt-wrap .cv-dt-length .choices__list--single .choices__item {
  display: block !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 36px !important;
  white-space: nowrap !important;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cv-dt-wrap .cv-dt-length .choices[data-type*="select-one"]::after {
  top: 50% !important;
  right: 0.7rem !important;
  margin-top: -2.5px !important;
  transform: none !important;
}
.cv-dt-wrap .cv-dt-length .choices[data-type*="select-one"].is-open::after {
  margin-top: -7.5px !important;
  transform: none !important;
}
.cv-dt-wrap .cv-dt-length .choices__list--dropdown,
.cv-dt-wrap .cv-dt-length .choices__list[aria-expanded] {
  min-width: 100%;
  width: max-content;
  max-width: 10rem;
  overflow-x: hidden !important;
  z-index: 1060;
}
.cv-dt-wrap .cv-dt-length .choices__list--dropdown .choices__list {
  overflow-x: hidden !important;
}
.cv-dt-wrap .cv-dt-length .choices__list--dropdown .choices__item {
  white-space: nowrap !important;
  padding: 0.45rem 0.75rem !important;
}
.cv-dt-wrap .cv-dt-toolbar .avtar.avtar-s {
  width: 38px;
  height: 38px;
}

/* Footer / pagina��o completa (first ? last) */
.cv-dt-wrap .dt-paging,
.cv-dt-wrap .dataTables_paginate,
.table-card.cv-dt-card .dt-paging,
.table-card.cv-dt-card .dataTables_paginate {
  overflow: visible;
}
.cv-dt-wrap .dt-paging .pagination,
.cv-dt-wrap .dataTables_paginate .pagination,
.table-card.cv-dt-card .pagination {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.15rem;
  margin-bottom: 0;
}
.cv-dt-wrap .dt-paging .page-link,
.cv-dt-wrap .dataTables_paginate .page-link,
.table-card.cv-dt-card .page-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  line-height: 1;
}
.cv-dt-wrap .dt-paging .page-link .ti,
.cv-dt-wrap .dataTables_paginate .page-link .ti,
.table-card.cv-dt-card .page-link .ti {
  font-size: 1rem;
}

/* Esconde search/length nativos quando chrome custom ativo */
.cv-dt-wrap.cv-dt-chrome-custom .dt-search,
.cv-dt-wrap.cv-dt-chrome-custom .dataTables_filter,
.cv-dt-wrap.cv-dt-chrome-custom .dt-length,
.cv-dt-wrap.cv-dt-chrome-custom .dataTables_length {
  display: none !important;
}

/* ??? Select in card ? s� o que o Able n�o cobre ??????????????????????????? */
/* Base: .offer-check-block / .offer-check / .color-checkbox (style.css Able)   */
.offer-check-block.offer-check-wrap {
  flex-wrap: wrap;
  overflow: visible;
}
.offer-check.offer-check-voice {
  width: 210px;
}
.offer-check.offer-check-voice .offer-voice-photo {
  width: 48px;
  height: 48px;
  object-fit: cover;
}
.offer-check.offer-check-wide {
  width: 220px;
}
/* Grid full-width: herda radio � direita + bg/borda active do Able */
.offer-check.offer-check-fill {
  width: 100%;
  margin: 0;
}
.cv-design-section {
  scroll-margin-top: 5.5rem;
}

/* ??? C�lulas / badges can�nicos (UiFormat) ????????????????????????????????? */
.cv-cell-id {
  display: inline-block;
  font-variant-numeric: tabular-nums;
  font-weight: 600;
  font-size: 0.8125rem;
  color: var(--bs-secondary-color);
  letter-spacing: 0.01em;
}
a.cv-cell-id-link:hover .cv-cell-id,
a.cv-cell-pessoa-link:hover,
a.cv-cell-titulo-link:hover b {
  color: var(--bs-primary);
  text-decoration: underline;
}
.cv-cell-money,
.cv-badge-money {
  display: inline-flex;
  align-items: center;
  font-variant-numeric: tabular-nums;
  font-weight: 700;
  white-space: nowrap;
  font-size: 0.8125rem;
  padding: 0.4em 0.75em;
}
.cv-cell-datetime {
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.25;
  gap: 0.05rem;
}
.cv-cell-datetime b {
  font-weight: 600;
  display: block;
}
.cv-cell-datetime small {
  display: block;
  font-size: 0.75rem;
}
.cv-cell-envios {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  line-height: 1.2;
  gap: 0.05rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.cv-cell-envios b {
  font-weight: 600;
  display: block;
}
.cv-cell-envios small {
  display: block;
  font-size: 0.75rem;
}
/* Home ? produtos (quick actions): Able product-card + m�dia pastel */
.cv-home-prod {
  transition: box-shadow 0.2s ease, transform 0.2s ease;
  color: inherit;
}
.cv-home-prod:hover {
  box-shadow: var(--pc-card-box-shadow, 0 0.5rem 1.25rem rgba(33, 37, 41, 0.08));
  transform: translateY(-2px);
}
.cv-home-prod-media {
  aspect-ratio: 16 / 10;
  display: flex;
  align-items: center;
  justify-content: center;
}
.cv-home-prod-media .ti {
  font-size: 2.75rem;
  line-height: 1;
}
[data-pc-theme=dark] .cv-home-prod:hover {
  box-shadow: 0 0.5rem 1.25rem rgba(0, 0, 0, 0.35);
}

.cv-badge-tipo,
.cv-badge-status {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 700;
  font-size: 0.8125rem;
  padding: 0.4em 0.75em;
  letter-spacing: 0.01em;
  border: 1px solid color-mix(in srgb, currentColor 32%, transparent);
}
.cv-badge-tipo .ti,
.cv-badge-status .ti {
  font-size: 1rem;
  line-height: 1;
}
body:not([data-pc-theme="dark"]) .cv-badge-status.bg-light-warning {
  background: #f7f0c8 !important;
  color: #7c6514 !important;
}
body:not([data-pc-theme="dark"]) .cv-badge-status.bg-light-success {
  background: #e3f6ec !important;
  color: #0f5a3e !important;
}
body:not([data-pc-theme="dark"]) .cv-badge-status.bg-light-info {
  background: #e7f4f8 !important;
  color: #0e505a !important;
}
body:not([data-pc-theme="dark"]) .cv-badge-status.bg-light-danger {
  background: #fde8e8 !important;
  color: #9b1c1c !important;
}
body:not([data-pc-theme="dark"]) .cv-badge-status.bg-light-primary {
  background: #edf2ff !important;
  color: #1440aa !important;
}
.cv-cell-pessoa {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  line-height: 1.3;
  min-width: 12rem;
}
.cv-cell-pessoa-nome {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.4rem;
  color: var(--bs-body-color);
  font-weight: 700;
}
.cv-cell-pessoa .cv-cell-id {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--bs-primary);
  background: color-mix(in srgb, var(--bs-primary) 14%, transparent);
  border-radius: 999px;
  padding: 0.08rem 0.45rem;
}
.cv-cell-titulo {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  line-height: 1.3;
}
.cv-cell-titulo b {
  font-weight: 700;
  color: var(--bs-body-color);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.cv-cell-titulo-voz {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}
.cv-cell-titulo-voz-body {
  min-width: 0;
  flex: 1 1 auto;
}
.cv-cell-voz-avatar,
.cv-cell-voz-avatar-fallback {
  width: 40px;
  height: 40px;
  object-fit: cover;
  flex: 0 0 auto;
}
.cv-cell-voz-btn {
  cursor: pointer;
  border-radius: 999px;
  line-height: 0;
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.cv-cell-voz-btn:hover {
  transform: scale(1.06);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--bs-primary) 28%, transparent);
}
.cv-cell-voz-btn:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: 2px;
}
body:not([data-pc-theme="dark"]) .cv-lista-pedidos.table-striped > tbody > tr:nth-of-type(odd) > * {
  --bs-table-accent-bg: #fbf8f2;
}
.cv-lista-pedidos.dataTable td,
.cv-lista-pedidos td {
  vertical-align: middle;
  white-space: normal;
}
.cv-lista-pedidos .cv-cell-id {
  color: var(--bs-primary);
  font-weight: 700;
}
.cv-lista-pedidos .cv-cell-money {
  font-size: 0.95rem;
  color: var(--bs-body-color);
}
.cv-lista-pedidos td.cv-col-acoes,
.cv-lista-pedidos th.cv-col-acoes,
.cv-lista-pedidos td:last-child {
  white-space: nowrap;
  width: 1%;
}
.cv-lista-pedidos td:last-child .cv-acoes {
  flex-wrap: nowrap;
  width: max-content;
  margin-left: auto;
  justify-content: flex-end;
}
.cv-lista-pedidos .cv-acoes > .btn,
.cv-lista-pedidos .cv-acoes form,
.cv-lista-pedidos .cv-acoes form .btn {
  flex: 0 0 auto;
}
.modal-footer:not(.flex-column) {
  justify-content: flex-start;
  gap: 0.5rem;
}
.avtar.cv-provedor-logo {
  overflow: hidden;
  background: #fff;
}
.avtar.cv-provedor-logo img {
  width: 70%;
  height: 70%;
  object-fit: contain;
}
[data-pc-theme=dark] .avtar.cv-provedor-logo {
  background: #fff;
}
.cv-studio-audio .plyr,
.cv-studio-audio audio.js-player {
  width: 100%;
}
.cv-studio-upload {
  width: 100%;
}
.cv-studio-drop {
  position: relative;
  min-height: 8.5rem;
  border: 1px dashed var(--cvd-chip-hover);
  border-radius: 12px;
  background-color: var(--cvd-caixa);
  color: var(--cvd-texto);
  transition: border-color 0.15s ease, background-color 0.15s ease;
}
.cv-studio-drop-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}
.cv-studio-drop-ui {
  pointer-events: none;
  position: relative;
  z-index: 1;
}
.cv-studio-drop:hover,
.cv-studio-drop.is-drag,
.cv-studio-drop:focus-within {
  border-color: var(--bs-primary) !important;
  background-color: rgba(var(--bs-primary-rgb), 0.06);
}
.cv-studio-drop:focus-within {
  outline: 2px solid var(--bs-primary);
  outline-offset: 2px;
}
.cv-studio-audio-row .plyr {
  min-width: 200px;
}
.cv-studio-estilo-pick {
  min-width: min(100%, 22rem);
  width: 22rem;
  max-width: 100%;
}
.cv-studio-voice-pick {
  min-width: min(100%, 18rem);
}
.cv-studio-clone-mode {
  min-width: 10rem;
  width: 11rem;
}
.cv-studio-estilo-pick .choices,
.cv-studio-voice-pick .choices {
  min-width: 100%;
}
.cv-studio-estilo-pick .choices__inner,
.cv-studio-voice-pick .choices__inner,
.cv-studio-estilo-pick .choices__list--dropdown,
.cv-studio-voice-pick .choices__list--dropdown,
.cv-studio-estilo-pick .choices__list[aria-expanded],
.cv-studio-voice-pick .choices__list[aria-expanded] {
  min-width: 100%;
}
.cv-studio-estilo-pick .choices__item,
.cv-studio-voice-pick .choices__item {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#demos .choices__list--dropdown .choices__item--choice {
  font-size: 0.875rem;
}

/* FAQ assistente ? chat grounded (p�gina e offcanvas) */
.cv-faq-chat,
.js-ia-chat {
  max-height: 280px;
  overflow-y: auto;
}
#cvAjudaChat .offcanvas-body {
  min-height: 0;
}
#cvAjudaChat .cv-faq-chat {
  min-height: 8rem;
  max-height: none;
}

/* Pedido: passos ainda n�o liberados no checkout */
.checkout-tabs .nav-link.disabled {
  opacity: 0.45;
  pointer-events: none;
}
/* Passo j� preenchido ? avtar verde (wizard glue; active continua primary do tema) */
.checkout-tabs .nav-link.done:not(.active) .avtar {
  background-color: var(--bs-success);
  color: #fff;
}

.cv-voz-foto-preview {
  width: 120px;
  height: 120px;
  object-fit: cover;
}
.cv-voz-estilo-foto {
  width: 48px;
  height: 48px;
  object-fit: cover;
}

/* Listagem de locutores ? file-card Able; lista = col 12 (rack) */
.cv-voz-view-list .cv-voz-tile {
  flex: 0 0 100%;
  max-width: 100%;
}
.cv-voz-tile .file-card {
  cursor: pointer;
  position: relative;
}
.cv-voz-tile .file-card > .form-check {
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: 6;
  min-height: 0;
  margin: 0;
  padding-left: 0;
}
.cv-voz-tile .file-card > .form-check .form-check-input {
  float: none;
  margin-left: 0;
}
.cv-voz-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 0.64rem 0.75rem;
}
.cv-voz-card-ident .avtar {
  width: 40px;
  height: 40px;
  object-fit: cover;
}
.cv-voz-tile--destaque .cv-voz-card-ident .avtar {
  width: 52px;
  height: 52px;
}
.cv-voz-view-grid .cv-voz-card-desc {
  display: none;
}
.cv-voz-view-list .cv-voz-card-body {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  flex-wrap: nowrap;
  padding: 0.6rem 1rem;
}
.cv-voz-view-list .cv-voz-card-ident {
  flex: 1 1 auto;
  min-width: 0;
}
.cv-voz-view-list .cv-voz-card-tags {
  flex-wrap: nowrap;
  overflow: hidden;
}
.cv-voz-view-grid .cv-voz-card-tags .cv-voz-chip-tag:nth-child(n+3) {
  display: none;
}
.cv-voz-view-list .cv-voz-card-desc {
  display: block;
  margin-bottom: 0.15rem;
}
@media (max-width: 575.98px) {
  .cv-voz-view-list .cv-voz-card-body {
    flex-wrap: wrap;
  }
}
.cv-locutor-cover {
  height: 140px;
  width: 100%;
  object-fit: cover;
  display: block;
}
.cv-locutor-tipo {
  transition: box-shadow 0.15s ease, transform 0.15s ease;
}
.cv-locutor-tipo h5,
.file-card .h5 {
  hyphens: none;
  flex: 1 1 auto;
  min-width: 7rem;
}
.cv-locutor-tipo:hover {
  box-shadow: 0px 8px 24px rgba(27, 46, 94, 0.08);
}
.cv-modal-voz-topo {
  border-bottom: 0;
}
.cv-modal-voz-palco {
  width: 112px;
  height: 112px;
  aspect-ratio: 1 / 1;
  margin: 0;
  flex: 0 0 112px;
  border-radius: 1rem;
  overflow: hidden;
  line-height: 0;
  background: var(--bs-tertiary-bg, #f4f7fb);
  border: 1px solid var(--bs-border-color);
}
.modal-body > .cv-modal-voz-palco {
  margin: 0 auto 1rem;
}
.cv-demo-lista {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.cv-demo-mini {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.85rem;
  padding: 0.7rem 0.85rem;
  border-radius: 0.9rem;
  background: var(--bs-tertiary-bg);
  border: 1px solid var(--bs-border-color);
}
.cv-demo-play {
  width: 2.75rem;
  height: 2.75rem;
  border: 0;
  border-radius: 999px;
  background: var(--bs-primary);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  line-height: 1;
}
.cv-demo-play:hover,
.cv-demo-play:focus-visible {
  filter: brightness(1.08);
}
.cv-demo-meio {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.cv-demo-nome {
  font-weight: 600;
  font-size: 0.92rem;
}
.cv-demo-tempo {
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  color: var(--bs-secondary-color);
}
.cv-demo-trilho {
  position: relative;
  display: block;
  width: 100%;
  height: 1.15rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.cv-demo-trilho::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 6px;
  transform: translateY(-50%);
  border-radius: 999px;
  background: var(--bs-border-color);
}
.cv-demo-trilho-fill {
  position: absolute;
  left: 0;
  top: 50%;
  height: 6px;
  width: 0;
  transform: translateY(-50%);
  border-radius: 999px;
  background: var(--bs-primary);
  pointer-events: none;
}
.cv-demo-mini > audio {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.cv-modal-voz-palco > img,
.cv-modal-voz-palco > .cv-locutor-avatar {
  width: 112px;
  height: 112px;
  max-width: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.cv-locutor-rosto {
  width: 140px;
  height: 140px;
  margin: 0 auto 1rem;
  border-radius: 1rem;
  overflow: hidden;
  display: block;
  object-fit: cover;
  object-position: center center;
  background: var(--bs-tertiary-bg, #f4f7fb);
}
.cv-locutor-rosto.cv-locutor-avatar,
.cv-locutor-rosto svg {
  width: 140px;
  height: 140px;
}
.cv-locutor-tipo-completa {
  border-width: 2px;
  border-color: rgba(var(--bs-warning-rgb), .7);
}
.cv-tipo-completa .cv-tipo-nome {
  font-size: 1.25rem;
}
.checkout-tabs {
  border-bottom: 1px solid var(--bs-border-color);
}

/* Logo no chrome Able: .m-header tem 74px; PNG grande n�o pode estourar o menu. */
.pc-sidebar .m-header {
  justify-content: space-between;
  gap: 8px;
}
.pc-sidebar .m-header .b-brand {
  display: flex;
  align-items: center;
  min-width: 0;
  flex: 1 1 auto;
  max-width: 100%;
  overflow: hidden;
}
.pc-sidebar .m-header .theme-version {
  flex: 0 0 auto;
  margin-left: auto;
}
.pc-sidebar .m-header .logo-lg,
.pc-header .navbar-brand .logo-lg,
.pc-header .m-header .logo-lg {
  max-height: 40px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
  display: block;
}
/* A faixa azul destas p�ginas � a cor prim�ria do painel. O wordmark claro
   fica direto nela, sem placa. */
.cv-public-shell .pc-header .cv-marca-escura {
  height: 32px;
  width: auto;
  max-width: min(168px, 46vw);
  display: block;
}

/* Pedido TTS em gera��o ? dentro do card do texto, palco transparente */
.cv-gravando-panel {
  width: 100%;
  margin: 0;
  padding-top: 1.25rem;
  border-top: 1px solid var(--bs-border-color);
  background: transparent;
  box-shadow: none;
}
.cv-gravando {
  width: 100%;
  min-height: 0;
  padding: 0 0 0.25rem;
}
.cv-gravando .spinner-border {
  width: 2.75rem;
  height: 2.75rem;
}
.cv-gravando-stage {
  position: relative;
  width: 100%;
  max-width: none;
  margin: 0 0 1rem;
  padding: 0;
}
.cv-gravando-stage .cv-mascote-stage--gravando {
  position: relative;
  z-index: 1;
}
.cv-gravando-mascote-status {
  font-size: 0.82rem;
  font-weight: 650;
  letter-spacing: 0.02em;
  margin-top: 0.5rem;
  color: var(--bs-primary);
}
[data-pc-theme="dark"] .cv-gravando-mascote-status {
  color: color-mix(in srgb, var(--bs-primary) 88%, #fff 12%);
}

/* Passo do texto: contagem no topo, assistente embaixo */
.cv-pedir-contagem-num {
  font-size: 1.35rem;
  font-weight: 700;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  color: var(--bs-heading-color, inherit);
}
.cv-pedir-contagem-lim {
  font-size: .95rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
}
#charCount.is-warn { color: var(--bs-warning); }
#charCount.is-hot { color: var(--bs-danger); }
.cv-pedir-texto-rodape {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: .85rem 1.25rem;
  margin-top: .85rem;
}
.cv-pedir-texto-rodape > .form-text {
  flex: 1 1 16rem;
  max-width: 36rem;
}
.cv-pedir-texto-acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
  margin-left: auto;
}
.cv-pedir-auto {
  display: flex;
  align-items: flex-start;
  gap: .65rem;
  margin: 0;
  max-width: 18rem;
  cursor: pointer;
}
.cv-pedir-auto input {
  width: 1.15rem;
  height: 1.15rem;
  margin-top: .15rem;
  flex: 0 0 auto;
  accent-color: var(--bs-primary);
}

/* Assistente de texto */
.cv-ia-modal {
  border: 0;
  border-radius: 1rem;
  overflow: hidden;
}
.cv-ia-modal-head {
  align-items: center;
  gap: .85rem;
  padding: 1.1rem 1.25rem .85rem;
  border-bottom: 0;
}
.cv-ia-modal-head .cv-ia-ico {
  width: 2.6rem;
  height: 2.6rem;
  border-radius: .75rem;
  background: rgba(var(--bs-primary-rgb, 70, 128, 255), .12);
  color: var(--bs-primary);
}
.cv-ia-stepper {
  display: flex;
  gap: .35rem;
  padding: 0 1.25rem .9rem;
  border-bottom: 1px solid var(--bs-border-color, #e6e8eb);
}
.cv-ia-stepper span {
  flex: 1 1 0;
  text-align: center;
  font-size: .75rem;
  font-weight: 650;
  letter-spacing: .01em;
  color: var(--bs-secondary-color);
  padding: .35rem .25rem;
  border-bottom: 2px solid transparent;
}
.cv-ia-stepper span.is-on {
  color: var(--bs-primary);
  border-bottom-color: var(--bs-primary);
}
.cv-ia-modal .modal-body {
  padding-top: 1.15rem;
}
/* ?? Rodap� de modal: a��es � ESQUERDA, a��o principal PRIMEIRO ?????????????
   O Able Pro vanilla 9.6.1 (dist/assets/css/style.css ~linha 5841) traz
   `.modal-footer { justify-content: flex-end }` ? o tema empilha as a��es �
   DIREITA. Isso � o oposto do padr�o do projeto (a��o principal como primeira
   a��o, � esquerda, e o Cancelar em seguida, � sua direita).

   Como o tema n�o pode ser editado, o override vive aqui. Vale para TODO
   `.modal-footer` da aplica��o, inclusive nos modais que j� traziam
   `justify-content-start` no markup: o flex-end do tema chegava depois no
   cascade por causa da especificidade da folha, e os bot�es sa�am � direita.

   Exce��o j� mapeada pelo pr�prio tema: rodap� com a��o destrutiva �
   esquerda usa `justify-content-between` + `<ul class="list-inline me-auto">`
   (ver dist/admins/invoice-*.html) ? essa classe continua valendo abaixo. */
.modal-footer {
  justify-content: flex-start;
}
/* Quando existe o bot�o de a��o destrutiva � esquerda, o grupo de a��es
   (Cancelar + principal) � que vai para a direita ? estrutura do tema. */
.modal-footer.justify-content-between {
  justify-content: space-between;
}

.cv-ia-modal .modal-footer {
  border-top: 1px solid var(--bs-border-color, #e6e8eb);
  padding: .85rem 1.25rem;
}
.js-ia-intent {
  cursor: pointer;
  border-radius: .9rem;
  border: 1px solid var(--bs-border-color, #e6e8eb);
  background: var(--bs-body-bg, #fff);
  transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.js-ia-intent .card-body {
  pointer-events: none;
  padding: 1.15rem 1.2rem;
  gap: .95rem;
}
.js-ia-intent .fw-semibold {
  font-size: 1rem;
  line-height: 1.3;
}
.js-ia-intent .f-12 {
  line-height: 1.45;
}
.cv-ia-ico {
  width: 3rem;
  height: 3rem;
  border-radius: .8rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-size: 1.45rem;
}
.cv-ia-ico .ti {
  font-size: 1.45rem;
  line-height: 1;
}
.js-ia-intent[data-intent="institucional"] .cv-ia-ico {
  background: #f3eefe;
  color: #6d2fe6;
}
.js-ia-intent[data-intent="corrigir"] .cv-ia-ico {
  background: #e7f6f2;
  color: #0b8f73;
}
.js-ia-intent[data-intent="encurtar"] .cv-ia-ico {
  background: #fff1e6;
  color: #c2620e;
}
.js-ia-intent[data-intent="tom"] .cv-ia-ico {
  background: #e8f1ff;
  color: #1b6fe8;
}
.js-ia-intent:hover,
.js-ia-intent:focus-visible,
.js-ia-intent.is-on {
  border-color: rgba(var(--bs-primary-rgb, 70, 128, 255), .55);
  box-shadow: 0 .4rem 1rem rgba(19, 25, 32, .07);
  transform: translateY(-1px);
  outline: none;
}
.js-ia-intent.is-on {
  background: rgba(var(--bs-primary-rgb, 70, 128, 255), .06);
}
[data-pc-theme="dark"] .js-ia-intent[data-intent="institucional"] .cv-ia-ico {
  background: rgba(109, 47, 230, .18);
  color: #c4a6ff;
}
[data-pc-theme="dark"] .js-ia-intent[data-intent="corrigir"] .cv-ia-ico {
  background: rgba(11, 143, 115, .18);
  color: #7ddec4;
}
[data-pc-theme="dark"] .js-ia-intent[data-intent="encurtar"] .cv-ia-ico {
  background: rgba(194, 98, 14, .18);
  color: #f0b27a;
}
[data-pc-theme="dark"] .js-ia-intent[data-intent="tom"] .cv-ia-ico {
  background: rgba(27, 111, 232, .18);
  color: #9ec5ff;
}





/* =====================================================================
   Sistema de cor expressivo ? SpeakPlus
   ---------------------------------------------------------------------
   Problema que isto resolve: os 5 heroes usavam a MESMA arte (foguete do
   demo Able) e o mesmo azul chapado, e os past�is de card eram escolhidos
   ad hoc por p�gina (bg-light-success aqui, bg-light-warning ali). Nada
   dizia "isto � �udio" nem separava as �reas do produto.

   Paleta derivada da marca (publico/images/logo-full.png): navy profundo
   -> azul brilhante, com o waveform como s�mbolo. N�o � cor inventada.
   ===================================================================== */
:root {
  /* Marca */
  --cv-brand-deep:   #141C8C;
  --cv-brand:        #1B6FE8;
  --cv-brand-bright: #0D8EF0;

  /* Accent sem�ntico por �rea ? use SEMPRE estes, n�o pastel avulso */
  --cv-voz-a:      #1B6FE8;  --cv-voz-b:      #0D8EF0;   /* grava��o / voz  */
  --cv-jingle-a:   #6D2FE6;  --cv-jingle-b:   #B838D6;   /* jingle / m�sica */
  --cv-credito-a:  #0B8F73;  --cv-credito-b:  #1FBE93;   /* cr�ditos / Pix  */
  --cv-catalogo-a: #0E63C8;  --cv-catalogo-b: #22A7F0;   /* banco de vozes  */
  --cv-conta-a:    #C2620E;  --cv-conta-b:    #F0912B;   /* conta / pessoas */
}

/* --- Hero -------------------------------------------------------------
   Substitui o welcome-banner do Able. Gradiente por �rea + waveform em
   SVG (data URI: sem asset novo, escala e herda opacidade).            */
.cv-hero {
  position: relative;
  overflow: hidden;
  border: 0;
  border-radius: var(--bs-border-radius-lg, .75rem);
  background-image: linear-gradient(115deg, var(--cv-hero-a, var(--cv-voz-a)) 0%, var(--cv-hero-b, var(--cv-voz-b)) 100%);
  color: #fff;
}
.cv-hero > .card-body { position: relative; z-index: 2; }
.cv-hero h2, .cv-hero p, .cv-hero .cv-hero-title { color: #fff; }
.cv-hero p { color: rgba(255,255,255,.86); }

/* Waveform: barras verticais � direita. M�scara em gradiente para o
   motivo sumir atr�s do texto em telas estreitas. */
.cv-hero::after {
  content: "";
  position: absolute;
  inset: 0 0 0 auto;
  width: min(46%, 30rem);
  z-index: 1;
  pointer-events: none;
  opacity: .5;
  background-repeat: no-repeat;
  background-position: right center;
  background-size: cover;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
          mask-image: linear-gradient(90deg, transparent 0%, #000 38%);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 240' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='%23ffffff'%3E%3Crect x='8'   y='96'  width='10' height='48'  rx='5'/%3E%3Crect x='34'  y='72'  width='10' height='96'  rx='5'/%3E%3Crect x='60'  y='40'  width='10' height='160' rx='5'/%3E%3Crect x='86'  y='84'  width='10' height='72'  rx='5'/%3E%3Crect x='112' y='16'  width='10' height='208' rx='5'/%3E%3Crect x='138' y='60'  width='10' height='120' rx='5'/%3E%3Crect x='164' y='100' width='10' height='40'  rx='5'/%3E%3Crect x='190' y='52'  width='10' height='136' rx='5'/%3E%3Crect x='216' y='28'  width='10' height='184' rx='5'/%3E%3Crect x='242' y='88'  width='10' height='64'  rx='5'/%3E%3Crect x='268' y='44'  width='10' height='152' rx='5'/%3E%3Crect x='294' y='104' width='10' height='32'  rx='5'/%3E%3Crect x='320' y='64'  width='10' height='112' rx='5'/%3E%3Crect x='346' y='24'  width='10' height='192' rx='5'/%3E%3Crect x='372' y='92'  width='10' height='56'  rx='5'/%3E%3Crect x='398' y='56'  width='10' height='128' rx='5'/%3E%3Crect x='424' y='108' width='10' height='24'  rx='5'/%3E%3Crect x='450' y='76'  width='10' height='88'  rx='5'/%3E%3C/g%3E%3C/svg%3E");
}

/* Variantes por �rea */
.cv-hero-voz      { --cv-hero-a: var(--cv-voz-a);      --cv-hero-b: var(--cv-voz-b); }
.cv-hero-jingle   { --cv-hero-a: var(--cv-jingle-a);   --cv-hero-b: var(--cv-jingle-b); }
.cv-hero-credito  { --cv-hero-a: var(--cv-credito-a);  --cv-hero-b: var(--cv-credito-b); }
.cv-hero-catalogo { --cv-hero-a: var(--cv-catalogo-a); --cv-hero-b: var(--cv-catalogo-b); }
.cv-hero-conta    { --cv-hero-a: var(--cv-conta-a);    --cv-hero-b: var(--cv-conta-b); }

/* Bot�o sobre o hero: o btn-outline-light do Able some no gradiente claro */
.cv-hero .btn-outline-light {
  border-color: rgba(255,255,255,.65);
  background: rgba(255,255,255,.10);
  backdrop-filter: blur(2px);
}
.cv-hero .btn-outline-light:hover,
.cv-hero .btn-outline-light:focus-visible {
  background: #fff;
  border-color: #fff;
  color: var(--cv-hero-a, var(--cv-voz-a));
}

/* Mobile: o banner antigo gastava ~400px de altura com a arte.
   Aqui o waveform vira faixa e o texto respira. */
@media (max-width: 767.98px) {
  .cv-hero::after {
    width: 100%;
    inset: auto 0 0 0;
    height: 4.5rem;
    opacity: .34;
    -webkit-mask-image: linear-gradient(0deg, #000 10%, transparent 100%);
            mask-image: linear-gradient(0deg, #000 10%, transparent 100%);
  }
  .cv-hero > .card-body { padding-bottom: 3.25rem; }
  .cv-hero h2 { font-size: 1.5rem; }
}

@media (prefers-reduced-motion: no-preference) {
  .cv-hero .btn-outline-light { transition: background-color .18s ease, color .18s ease, border-color .18s ease; }
}

/* --- Accent sem�ntico reutiliz�vel -------------------------------------
   Antes: cada p�gina escolhia bg-light-{primary,success,warning,danger,...}
   por conta pr�pria. "Adquirir cr�ditos" ficava VERMELHO (danger = erro)
   e "Pedir jingle" verde (success = conclu�do). Cor sem significado.
   Agora a cor vem da �REA do produto. */
.cv-accent-voz      { --cv-a: var(--cv-voz-a);      --cv-b: var(--cv-voz-b); }
.cv-accent-jingle   { --cv-a: var(--cv-jingle-a);   --cv-b: var(--cv-jingle-b); }
.cv-accent-credito  { --cv-a: var(--cv-credito-a);  --cv-b: var(--cv-credito-b); }
.cv-accent-catalogo { --cv-a: var(--cv-catalogo-a); --cv-b: var(--cv-catalogo-b); }
.cv-accent-conta    { --cv-a: var(--cv-conta-a);    --cv-b: var(--cv-conta-b); }

/* Tile de m�dia do card de produto ? tinta derivada do accent, n�o pastel fixo */
.cv-tile {
  background-image: linear-gradient(135deg,
      color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 14%, transparent) 0%,
      color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 20%, transparent) 100%);
  color: var(--cv-a, var(--cv-voz-a));
}
.cv-tile > i, .cv-tile .ti { color: var(--cv-a, var(--cv-voz-a)); }
[data-pc-theme=dark] .cv-tile {
  background-image: linear-gradient(135deg,
      color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 30%, transparent) 0%,
      color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 38%, transparent) 100%);
}
[data-pc-theme=dark] .cv-tile > i, [data-pc-theme=dark] .cv-tile .ti {
  color: color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 78%, #fff);
}

/* Card de produto: a cor da �rea aparece na borda ao focar/hover ? d�
   feedback e refor�a a sem�ntica sem pintar o card inteiro. */
.cv-prod-card { border: 1px solid var(--bs-border-color); }
.cv-prod-card:hover,
.cv-prod-card:focus-within {
  border-color: color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 55%, transparent);
  box-shadow: 0 .35rem 1.1rem color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 16%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  .cv-prod-card { transition: border-color .18s ease, box-shadow .18s ease; }
}


/* Seta do card de produto ? herda o accent da �rea */
.cv-prod-seta { color: var(--cv-a, var(--cv-voz-a)); opacity: .75; }
.cv-prod-card:hover .cv-prod-seta,
.cv-prod-card:focus-within .cv-prod-seta { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .cv-prod-seta { transition: opacity .18s ease, transform .18s ease; }
  .cv-prod-card:hover .cv-prod-seta { transform: translateX(2px); }
}
[data-pc-theme=dark] .cv-prod-seta { color: color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 76%, #fff); }

/* Saldo: � dinheiro em qualquer p�gina ? usa o accent de cr�dito, n�o o
   azul prim�rio (que na p�gina de cr�ditos brigava com o hero verde). */
.cv-balance {
  border: 0;
  background-image: linear-gradient(120deg, var(--cv-credito-a) 0%, var(--cv-credito-b) 100%);
}

/* --- Card de saldo em /pedir: saldo + aviso de insufici�ncia juntos -----
   Eram 3 elementos separados dizendo a mesma coisa: banner vermelho no topo
   da p�gina (toda carga, mesmo sem custo calculado ainda), o card azul de
   saldo na lateral, e um alerta escondido que s� aparecia depois ? tr�s
   lugares pra resolver um problema s�. Agora � um card �nico: a classe
   .is-insuficiente troca a fam�lia de cor (cr�dito ? �mbar, mesma de
   .cv-aviso-alerta na home) em vez de mostrar um elemento extra, e o aviso +
   CTA moram dentro dele. `pedir.js` alterna a classe a cada passo com o
   custo real calculado; o PHP j� decide o estado inicial (saldo < m�nimo da
   plataforma) pra n�o esperar o JS rodar. */
.cv-balance-pedir {
  transition: background-image .18s ease;
  /* --cv-credito-b (ponta clara do par global) da 2.37:1 pra texto branco ?
     falha o AA feio. Aqui a variacao fica DENTRO de --cv-credito-a (so muda
     a mistura com preto), o que mede 4.82~5.88:1 nas duas pontas. Medido no
     DOM com getComputedStyle + calculo de luminancia relativa, nao only
     "parece escuro o bastante". */
  background-image: linear-gradient(120deg,
      color-mix(in srgb, var(--cv-credito-a) 90%, black) 0%,
      color-mix(in srgb, var(--cv-credito-a) 80%, black) 100%);
}
.cv-balance-pedir .cv-balance-label {
  margin: 0 0 .15rem;
  color: rgba(255, 255, 255, .8);
  font-size: .8125rem;
}
.cv-balance-pedir .cv-balance-valor { color: #fff; font-weight: 700; }
.cv-balance-pedir .cv-balance-icone {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: grid;
  place-items: center;
  border-radius: .6rem;
  background: rgba(255, 255, 255, .18);
  color: #fff;
}
.cv-balance-pedir .cv-balance-icone i { font-size: 1.15rem; }
.cv-balance-pedir .cv-balance-aviso {
  display: flex;
  align-items: center;
  font-size: .8125rem;
  font-weight: 600;
  color: #fff;
}
.cv-balance-pedir .cv-balance-cta {
  display: block;
  width: 100%;
  background: rgba(255, 255, 255, .16);
  border: 1px solid rgba(255, 255, 255, .32);
  color: #fff;
  font-weight: 600;
}
.cv-balance-pedir .cv-balance-cta:hover,
.cv-balance-pedir .cv-balance-cta:focus-visible {
  background: #fff;
  /* --cv-credito-a puro sobre branco da 4.05:1 ? abaixo do AA (4.5). 10%
     de preto sobe pra 4.82:1, mesma tecnica do gradiente de fundo acima. */
  color: color-mix(in srgb, var(--cv-credito-a) 90%, black);
  border-color: #fff;
}
/* Insuficiente: a cor muda de familia (nao aparece um 2� elemento) e o CTA
   vira o ponto forte ? fundo solido em vez de contorno, porque agora a acao
   e urgente. */
.cv-balance-pedir.is-insuficiente {
  background-image: linear-gradient(120deg,
      color-mix(in srgb, var(--cv-conta-a) 90%, black) 0%,
      color-mix(in srgb, var(--cv-conta-a) 80%, black) 100%);
}
.cv-balance-pedir.is-insuficiente .cv-balance-cta {
  background: #fff;
  /* --cv-conta-a puro sobre branco da 4.16:1 ? abaixo do AA. Este e o
     estado PADRAO (nao so hover), entao a margem importa mais aqui. */
  color: color-mix(in srgb, var(--cv-conta-a) 90%, black);
  border-color: #fff;
}
.cv-balance-pedir.is-insuficiente .cv-balance-cta:hover,
.cv-balance-pedir.is-insuficiente .cv-balance-cta:focus-visible {
  background: rgba(255, 255, 255, .9);
}

/* --- Identidade da voz sem foto ---------------------------------------
   24 das 26 vozes p�blicas n�o t�m foto. Com uma cor por g�nero o cat�logo
   virava um mural de cards id�nticos e nenhuma voz era reconhec�vel.
   `--cv-voz-h` vem do PHP: matiz EST�VEL derivado do ID (a mesma voz tem
   sempre a mesma cor), dentro da fam�lia do g�nero. Inicial + waveform:
   d� identidade sem fingir uma foto que n�o existe. */
.cv-voz-ident {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background-image: linear-gradient(150deg,
    hsl(var(--cv-voz-h, 210) 72% 58%) 0%,
    hsl(calc(var(--cv-voz-h, 210) + 24) 68% 42%) 100%);
}
.cv-voz-ident-letra {
  position: relative;
  z-index: 1;
  font-size: clamp(2rem, 4.4vw, 3.25rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.03em;
  color: #fff;
  text-shadow: 0 2px 10px hsl(var(--cv-voz-h, 210) 60% 18% / .45);
  user-select: none;
}
/* Waveform: mesmo motivo do hero, amarrando cat�logo e banner */
.cv-voz-ident-onda {
  position: absolute;
  inset: auto 0 0 0;
  height: 46%;
  z-index: 0;
  opacity: .38;
  background-repeat: repeat-x;
  background-position: center bottom;
  background-size: auto 100%;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 120'%3E%3Cg fill='%23ffffff'%3E%3Crect x='6'   y='58' width='8' height='56' rx='4'/%3E%3Crect x='24'  y='34' width='8' height='80' rx='4'/%3E%3Crect x='42'  y='70' width='8' height='44' rx='4'/%3E%3Crect x='60'  y='16' width='8' height='98' rx='4'/%3E%3Crect x='78'  y='46' width='8' height='68' rx='4'/%3E%3Crect x='96'  y='78' width='8' height='36' rx='4'/%3E%3Crect x='114' y='28' width='8' height='86' rx='4'/%3E%3Crect x='132' y='62' width='8' height='52' rx='4'/%3E%3Crect x='150' y='38' width='8' height='76' rx='4'/%3E%3Crect x='168' y='82' width='8' height='32' rx='4'/%3E%3Crect x='186' y='50' width='8' height='64' rx='4'/%3E%3Crect x='204' y='24' width='8' height='90' rx='4'/%3E%3Crect x='222' y='68' width='8' height='46' rx='4'/%3E%3C/g%3E%3C/svg%3E");
  -webkit-mask-image: linear-gradient(0deg, #000 25%, transparent 100%);
          mask-image: linear-gradient(0deg, #000 25%, transparent 100%);
}
[data-pc-theme=dark] .cv-voz-ident {
  background-image: linear-gradient(150deg,
    hsl(var(--cv-voz-h, 210) 52% 38%) 0%,
    hsl(calc(var(--cv-voz-h, 210) + 24) 48% 26%) 100%);
}
/* Lista (view compacta): capa menor, inicial acompanha */
.cv-voz-view-list .cv-voz-ident-letra { font-size: 1.5rem; }
.cv-voz-view-list .cv-voz-ident-onda { height: 52%; opacity: .32; }

/* Link de a��o dentro de alerta n�o deve quebrar no meio ("Ir / para conta"
   no mobile). O texto ao redor continua quebrando normalmente. */
.alert .alert-link { white-space: nowrap; }

/* --- KPI compacto ------------------------------------------------------
   O KPI anterior empilhava r�tulo, valor com mb-3 e um link numa terceira
   linha: tr�s blocos de altura para um n�mero s�. Aqui o card inteiro � o
   link, valor e r�tulo ficam num bloco, e a cor da �rea entra como fundo
   tingido + ladrilho s�lido do �cone (era branco com um filete). */
.cv-kpi {
  position: relative;
  display: block;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 20%, transparent);
  background-image: linear-gradient(135deg,
      color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 9%, transparent) 0%,
      color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 5%, transparent) 100%);
  text-decoration: none;
}
a.cv-kpi:hover,
a.cv-kpi:focus-visible {
  border-color: color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 55%, transparent);
  box-shadow: 0 .4rem 1.15rem color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 18%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  a.cv-kpi { transition: border-color .18s ease, box-shadow .18s ease; }
}
.cv-kpi > .card-body { padding: 1rem 1.15rem; }

.cv-kpi-valor {
  font-size: clamp(1.35rem, 2vw, 1.75rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.02em;
  color: var(--cv-a, var(--cv-voz-a));
  margin: 0;
}
.cv-kpi-rotulo {
  margin: .15rem 0 0;
  font-size: .8125rem;
  line-height: 1.25;
  color: var(--bs-secondary-color);
}
/* Ladrilho do �cone: bloco s�lido da �rea ? � daqui que vem a cor do painel */
.cv-kpi-icone {
  flex: 0 0 auto;
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  place-items: center;
  border-radius: .65rem;
  color: #fff;
  background-image: linear-gradient(135deg, var(--cv-a, var(--cv-voz-a)) 0%, var(--cv-b, var(--cv-voz-b)) 100%);
  box-shadow: 0 .25rem .6rem color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 30%, transparent);
}
.cv-kpi-icone i { font-size: 1.25rem; line-height: 1; }

/* Linha de apoio opcional (delta, "3 na fila", etc.) */
.cv-kpi-sub {
  margin: .5rem 0 0;
  font-size: .75rem;
  line-height: 1.2;
  color: var(--bs-secondary-color);
}
.cv-kpi-sub .cv-kpi-forte { color: var(--cv-a, var(--cv-voz-a)); font-weight: 600; }

[data-pc-theme=dark] .cv-kpi {
  border-color: color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 28%, transparent);
  background-image: linear-gradient(135deg,
      color-mix(in srgb, var(--cv-a, var(--cv-voz-a)) 22%, transparent) 0%,
      color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 12%, transparent) 100%);
}
[data-pc-theme=dark] .cv-kpi-valor,
[data-pc-theme=dark] .cv-kpi-sub .cv-kpi-forte {
  color: color-mix(in srgb, var(--cv-b, var(--cv-voz-b)) 74%, #fff);
}

/* Cabe�alho de se��o: t�tulo + a��o, sem gastar um card inteiro */
.cv-secao {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
  margin: 0 0 .75rem;
}
.cv-secao h5 { margin: 0; }
.cv-secao .cv-secao-acao { font-size: .8125rem; white-space: nowrap; }

/* R�tulo/apoio do KPI no tema escuro.
   O Able NAO redefine --bs-secondary-color no dark: ele continua
   rgba(33,37,41,.75), ou seja quase preto. Sobre o card escuro isso dava
   1.03:1 de contraste (AA pede 4.5:1) ? o r�tulo sumia. Fixamos um tom
   claro expl�cito em vez de herdar o token do tema. */
[data-pc-theme=dark] .cv-kpi-rotulo,
[data-pc-theme=dark] .cv-kpi-sub {
  color: rgba(255, 255, 255, .72);
}

/* KPI no celular: em col-6 a 390px o ladrilho comia a largura e o valor
   truncava ("R$ 0..."). Valor monetario nao pode cortar. Ladrilho menor,
   fonte menor e o rotulo passa a quebrar em 2 linhas em vez de truncar. */
@media (max-width: 575.98px) {
  .cv-kpi > .card-body { padding: .8rem .85rem; }
  .cv-kpi-icone { width: 2.15rem; height: 2.15rem; border-radius: .5rem; }
  .cv-kpi-icone i { font-size: 1rem; }
  .cv-kpi-valor { font-size: 1.15rem; }
  .cv-kpi-rotulo,
  .cv-kpi-sub { font-size: .75rem; }
  /* anula o text-truncate do markup: melhor quebrar que esconder */
  .cv-kpi-rotulo.text-truncate {
    overflow: visible;
    white-space: normal;
    text-overflow: clip;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
  }
  .cv-kpi-sub.text-truncate { overflow: visible; white-space: normal; text-overflow: clip; }
}

/* --- Faixa "vendo como cliente" ---------------------------------------
   Fixa no rodape: impersonacao esquecida gera acao registrada no nome do
   cliente, entao o aviso precisa acompanhar o admin em toda pagina. */
.cv-impersonando {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1035; /* abaixo de modal (1055), acima do conteudo */
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .75rem;
  padding: .6rem 1rem;
  background-image: linear-gradient(90deg, var(--cv-conta-a) 0%, var(--cv-conta-b) 100%);
  color: #fff;
  box-shadow: 0 -.25rem .9rem rgba(0, 0, 0, .22);
  font-size: .875rem;
}
.cv-impersonando-txt {
  display: flex;
  align-items: center;
  gap: .5rem;
  min-width: 0;
}
.cv-impersonando-txt i { font-size: 1.1rem; flex-shrink: 0; }
.cv-impersonando strong { font-weight: 700; }
.cv-impersonando-form { margin: 0; flex-shrink: 0; }

/* O rodape fixo cobriria o fim da pagina; devolve o espaco.
   NAO usar .pc-container: ele e TRANSPARENTE e o body e AZUL no layout
   color-header ? padding ali abre uma faixa azul entre o conteudo e o rodape.
   O .pc-footer tem fundo claro proprio, entao o respiro fica invisivel. */
body:has(.cv-impersonando) .pc-footer { padding-bottom: 4.25rem; }

@media (max-width: 575.98px) {
  .cv-impersonando { font-size: .8125rem; padding: .5rem .75rem; }
  body:has(.cv-impersonando) .pc-footer { padding-bottom: 6rem; }
}

/* No celular a marca e os links dividiam a mesma linha e o �ltimo
   link ca�a sozinho. As duas colunas passam a ocupar a largura toda
   e os links empilham alinhados � marca. */
@media (max-width: 575.98px) {
  .pc-footer .row > .col,
  .pc-footer .row > .col-auto {
    flex: 0 0 100%;
    width: 100%;
    max-width: 100%;
  }
  .pc-footer .list-inline {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 0;
  }
  .pc-footer .list-inline-item { margin: 0; }
}

/* --- Dropdown do perfil (header) ---------------------------------------
   O Able entrega 16px/20px de padding e itens de 43px de altura; para um
   menu de 4 linhas isso deixava o painel com 404px de altura e muito ar.
   Sem o titulo "Perfil" (removido no _header.php) e com o respiro ajustado,
   fica compacto sem virar alvo pequeno demais para clicar. */
.dropdown-user-profile .dropdown-body {
  padding: 0.85rem 0.9rem;
}
.dropdown-user-profile .dropdown-item {
  padding: 0.5rem 0.6rem;
  border-radius: var(--bs-border-radius, .375rem);
}
.dropdown-user-profile hr {
  margin: 0.6rem 0;
}
/* separador do topo cola no card de identificacao */
.dropdown-user-profile .dropdown-body > .d-flex + hr {
  margin-top: 0.75rem;
}
.dropdown-user-profile .user-avtar.wid-35 {
  width: 35px;
  height: 35px;
  object-fit: cover;
}

/* --- Avisos da home ----------------------------------------------------
   Eram duas barras de largura total ACIMA dos KPIs (~130px so para dois
   recados). Agora dividem UMA linha abaixo dos numeros: cada um `flex: 1`,
   somando 100% da largura. Sem descricao (o CTA ja diz o que fazer) e mais
   baixos que um KPI ? sao aviso, nao indicador. */
.cv-avisos {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: .75rem;
  margin: -0.25rem 0 1.25rem;
}
.cv-aviso {
  flex: 1 1 0;              /* divide a linha em partes iguais = 100% */
  min-width: 0;
  display: flex;
  align-items: center;
  gap: .6rem;
  padding: .7rem .9rem;
  border: 1px solid color-mix(in srgb, var(--cv-aviso-cor) 30%, transparent);
  border-radius: var(--bs-border-radius, .375rem);
  background: color-mix(in srgb, var(--cv-aviso-cor) 10%, transparent);
  color: var(--bs-body-color);
  font-size: .875rem;
  line-height: 1.2;
  text-decoration: none;
}
/* Icone menor que o ladrilho do KPI: aqui e sinal, nao protagonista. */
.cv-aviso > i {
  flex-shrink: 0;
  width: 1.6rem;
  height: 1.6rem;
  display: grid;
  place-items: center;
  border-radius: .45rem;
  font-size: .95rem;
  color: #fff;
  background: var(--cv-aviso-cor);
}
.cv-aviso-txt {
  flex: 1 1 auto;
  min-width: 0;
  font-weight: 700;
  color: var(--cv-aviso-txt, var(--cv-aviso-cor));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cv-aviso-cta {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  flex-shrink: 0;
  color: var(--cv-aviso-txt, var(--cv-aviso-cor));
  font-weight: 600;
}
.cv-aviso-cta i { font-size: .9rem; }

/* Barra de progresso do perfil: leitura rapida do quanto falta */
.cv-aviso-barra {
  flex-shrink: 0;
  width: 4rem;
  height: .35rem;
  border-radius: 1rem;
  overflow: hidden;
  background: color-mix(in srgb, var(--cv-aviso-cor) 25%, transparent);
}
.cv-aviso-barra > span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--cv-aviso-cor);
}

.cv-aviso-alerta { --cv-aviso-cor: #C2620E; --cv-aviso-txt: #8F480A; }
.cv-aviso-info   { --cv-aviso-cor: var(--cv-catalogo-a); --cv-aviso-txt: #0B4E9E; }

.cv-aviso:hover,
.cv-aviso:focus-visible {
  background: color-mix(in srgb, var(--cv-aviso-cor) 18%, transparent);
  border-color: color-mix(in srgb, var(--cv-aviso-cor) 55%, transparent);
}
@media (prefers-reduced-motion: no-preference) {
  .cv-aviso { transition: background-color .16s ease, border-color .16s ease; }
  .cv-aviso:hover .cv-aviso-cta i { transform: translateX(2px); }
  .cv-aviso-cta i { transition: transform .16s ease; }
}

[data-pc-theme=dark] .cv-aviso {
  background: color-mix(in srgb, var(--cv-aviso-cor) 22%, transparent);
  border-color: color-mix(in srgb, var(--cv-aviso-cor) 42%, transparent);
}
/* No escuro o fundo do chip e escuro: clareia o texto em vez de escurecer.
   O icone fica fora daqui: ele e branco sobre o solido do tom. */
[data-pc-theme=dark] .cv-aviso-txt,
[data-pc-theme=dark] .cv-aviso-cta {
  color: color-mix(in srgb, var(--cv-aviso-cor) 55%, #fff);
}

/* No celular o chip ocupa a linha inteira: em 390px os dois lado a lado
   espremeriam o texto ate truncar. */
@media (max-width: 575.98px) {
  /* dois lado a lado a 390px espremeriam o rotulo ate o reticencias */
  .cv-aviso { flex: 1 1 100%; }
}

/* --- Cartao de tipo do pedido (/pedir passo 1) — paridade com cv-modo-* --- */
.cv-tipo-hint-badge { font-weight: 600; }
.cv-tipo-grid {
  --cv-tipo-mute: #9aa6b5;
  --cv-tipo-mute-2: #c5cdd8;
}
.cv-tipo-primary { --cv-tipo-cor: #4680ff; --cv-tipo-cor-2: #7c5cff; --cv-tipo-cor-rgb: 70, 128, 255; }
.cv-tipo-success { --cv-tipo-cor: #2ca87f; --cv-tipo-cor-2: #14b8a6; --cv-tipo-cor-rgb: 44, 168, 127; }
.cv-tipo-warning { --cv-tipo-cor: #e58a00; --cv-tipo-cor-2: #f59e0b; --cv-tipo-cor-rgb: 229, 138, 0; }
.cv-tipo-info    { --cv-tipo-cor: #3ec9d6; --cv-tipo-cor-2: #06b6d4; --cv-tipo-cor-rgb: 62, 201, 214; }

.cv-tipo-card {
  position: relative;
  display: block;
  cursor: pointer;
  border: 2px solid rgba(var(--cv-tipo-cor-rgb), .28);
  border-radius: 18px;
  padding: 1.1rem 1.15rem 1.15rem;
  height: 100%;
  overflow: hidden;
  background: linear-gradient(160deg, rgba(var(--cv-tipo-cor-rgb), .07) 0%, rgba(var(--cv-tipo-cor-rgb), .02) 55%, var(--bs-body-bg) 100%);
  box-shadow: 0 8px 20px rgba(var(--cv-tipo-cor-rgb), .08);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease, filter .2s ease, opacity .2s ease;
}
.cv-tipo-card::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .1;
  pointer-events: none;
  background: linear-gradient(135deg, var(--cv-tipo-cor) 0%, var(--cv-tipo-cor-2) 50%, transparent 72%);
  transition: opacity .2s ease;
}
.cv-tipo-glow {
  position: absolute;
  width: 9rem;
  height: 9rem;
  border-radius: 50%;
  top: -3.5rem;
  right: -2.5rem;
  opacity: .18;
  filter: blur(18px);
  pointer-events: none;
  background: radial-gradient(circle, var(--cv-tipo-cor-2) 0%, transparent 70%);
  transition: opacity .25s ease, transform .35s ease;
}
.cv-tipo-card:hover {
  transform: translateY(-2px);
  border-color: rgba(var(--cv-tipo-cor-rgb), .35);
  box-shadow: 0 10px 22px rgba(15, 23, 42, .08);
}
.cv-tipo-card:hover::before { opacity: .08; }
.cv-tipo-card:hover .cv-tipo-glow {
  opacity: .22;
  transform: scale(1.05);
}
.cv-tipo-card .cv-tipo-radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cv-tipo-card-body {
  position: relative;
  z-index: 1;
  display: flex;
  gap: .9rem;
  align-items: flex-start;
}
.cv-tipo-card-body-wide {
  align-items: stretch;
}
@media (min-width: 768px) {
  .cv-tipo-card-body-wide .cv-tipo-copy {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    grid-template-areas:
      "kicker kicker"
      "title title"
      "desc chips"
      "itens itens";
    column-gap: 1.25rem;
    row-gap: .35rem;
  }
  .cv-tipo-card-body-wide .cv-tipo-kicker { grid-area: kicker; }
  .cv-tipo-card-body-wide .cv-tipo-titulo-row { grid-area: title; }
  .cv-tipo-card-body-wide .cv-tipo-desc { grid-area: desc; margin-bottom: 0; }
  .cv-tipo-card-body-wide .cv-tipo-chips { grid-area: chips; align-self: start; }
  .cv-tipo-card-body-wide .cv-tipo-itens { grid-area: itens; margin-top: .35rem; }
}
.cv-tipo-icone {
  flex: 0 0 auto;
  width: 3rem;
  height: 3rem;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  color: #fff;
  background: linear-gradient(145deg, var(--cv-tipo-cor), var(--cv-tipo-cor-2));
  box-shadow: 0 6px 14px rgba(var(--cv-tipo-cor-rgb), .18);
  opacity: .72;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, opacity .2s ease;
}
.cv-tipo-card:hover .cv-tipo-icone {
  transform: scale(1.04);
}
.cv-tipo-copy {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding-right: 1.5rem;
  min-width: 0;
  flex: 1 1 auto;
}
.cv-tipo-kicker {
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cv-tipo-cor);
  opacity: .7;
  transition: color .2s ease, opacity .2s ease;
}
.cv-tipo-titulo-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .25rem .5rem;
}
.cv-tipo-nome {
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.15;
  color: var(--bs-heading-color, inherit);
}
.cv-tipo-hint {
  font-size: .75rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--bs-secondary-color);
}
.cv-tipo-desc {
  display: block;
  font-size: .82rem;
  line-height: 1.35;
  color: var(--bs-secondary-color);
  margin-bottom: .15rem;
}
.cv-tipo-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .35rem;
}
.cv-tipo-chip {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .2rem .55rem;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.2;
  background: rgba(var(--cv-tipo-cor-rgb), .1);
  color: var(--cv-tipo-cor);
  opacity: .85;
  transition: background .2s ease, color .2s ease, opacity .2s ease;
}
.cv-tipo-chip-emph {
  background: rgba(var(--cv-tipo-cor-rgb), .18);
  color: var(--cv-tipo-cor);
}
.cv-tipo-chip .ti { font-size: .85rem; }
.cv-tipo-itens {
  list-style: none;
  margin: .45rem 0 0;
  padding: 0;
  font-size: .8125rem;
  display: flex;
  flex-direction: column;
  gap: .2rem;
}
.cv-tipo-itens li {
  display: flex;
  align-items: flex-start;
  gap: .4rem;
  line-height: 1.35;
  color: var(--bs-secondary-color);
}
.cv-tipo-itens li i {
  flex-shrink: 0;
  margin-top: .1rem;
  color: var(--cv-tipo-cor);
  opacity: .55;
  font-weight: 700;
  transition: color .2s ease, opacity .2s ease;
}
.cv-tipo-check {
  position: absolute;
  top: .05rem;
  right: .05rem;
  font-size: 1.35rem;
  color: var(--cv-tipo-cor);
  opacity: 0;
  transform: scale(.7);
  transition: opacity .18s ease, transform .18s ease;
}

/* Com um produto selecionado, os outros ficam ainda mais apagados */
.cv-tipo-grid:has(.cv-tipo-card.is-on) .cv-tipo-card:not(.is-on):not(:has(.cv-tipo-radio:checked)),
.cv-tipo-grid:has(.cv-tipo-radio:checked) .cv-tipo-card:not(:has(.cv-tipo-radio:checked)) {
  opacity: .78;
  filter: saturate(.55);
}

.cv-tipo-card.is-on,
.cv-tipo-card:has(.cv-tipo-radio:checked) {
  opacity: 1;
  filter: none;
  transform: translateY(-2px);
  border-color: var(--cv-tipo-cor);
  background: linear-gradient(160deg, rgba(var(--cv-tipo-cor-rgb), .14) 0%, rgba(var(--cv-tipo-cor-rgb), .05) 45%, var(--bs-body-bg) 100%);
  box-shadow: 0 0 0 3px rgba(var(--cv-tipo-cor-rgb), .22), 0 16px 34px rgba(var(--cv-tipo-cor-rgb), .22);
}
.cv-tipo-card.is-on::before,
.cv-tipo-card:has(.cv-tipo-radio:checked)::before { opacity: .3; }
.cv-tipo-card.is-on .cv-tipo-glow,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-glow {
  opacity: .7;
  transform: scale(1.12);
}
.cv-tipo-card.is-on .cv-tipo-icone,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-icone {
  color: #fff;
  opacity: 1;
  background: linear-gradient(145deg, var(--cv-tipo-cor), var(--cv-tipo-cor-2));
  box-shadow: 0 10px 18px rgba(15, 23, 42, .14);
  animation: cv-modo-pulse .9s ease;
}
.cv-tipo-card.is-on .cv-tipo-kicker,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-kicker,
.cv-tipo-card.is-on .cv-tipo-chip,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-chip,
.cv-tipo-card.is-on .cv-tipo-itens li i,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-itens li i {
  opacity: 1;
}
.cv-tipo-card.is-on .cv-tipo-kicker,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-kicker {
  color: var(--cv-tipo-cor);
}
.cv-tipo-card.is-on .cv-tipo-chip,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-chip {
  background: rgba(var(--cv-tipo-cor-rgb), .12);
  color: var(--cv-tipo-cor);
}
.cv-tipo-card.is-on .cv-tipo-chip-emph,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-chip-emph {
  background: var(--cv-tipo-cor);
  color: #fff;
}
.cv-tipo-card.is-on .cv-tipo-itens li,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-itens li {
  color: var(--bs-body-color);
}
.cv-tipo-card.is-on .cv-tipo-itens li i,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-itens li i {
  color: var(--cv-tipo-cor);
}
.cv-tipo-card.is-on .cv-tipo-check,
.cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-check {
  opacity: 1;
  transform: scale(1);
}
[data-pc-theme=dark] .cv-tipo-card {
  background: rgba(255, 255, 255, .03);
}
[data-pc-theme=dark] .cv-tipo-card.is-on,
[data-pc-theme=dark] .cv-tipo-card:has(.cv-tipo-radio:checked) {
  background: linear-gradient(160deg, rgba(var(--cv-tipo-cor-rgb), .24) 0%, rgba(var(--cv-tipo-cor-rgb), .08) 45%, rgba(255, 255, 255, .03) 100%);
}
[data-pc-theme=dark] .cv-tipo-desc { color: rgba(255, 255, 255, .68); }
[data-pc-theme=dark] .cv-tipo-icone {
  color: rgba(255, 255, 255, .55);
  background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .06));
}
[data-pc-theme=dark] .cv-tipo-card.is-on .cv-tipo-icone,
[data-pc-theme=dark] .cv-tipo-card:has(.cv-tipo-radio:checked) .cv-tipo-icone {
  color: #fff;
  background: linear-gradient(145deg, var(--cv-tipo-cor), var(--cv-tipo-cor-2));
}

/* O form fica entre .modal-content e header/body/footer e quebra o flex do
   modal-dialog-scrollable: a grade cresce, o di�logo centralizado corta o
   t�tulo e esconde Salvar/Cancelar. */
#modalEstilo .modal-content > form,
#modalRegra .modal-content > form,
.modal-content > form.cv-modal-form {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  height: 100%;
  min-height: 0;
  max-height: 100%;
  overflow: hidden;
}
#modalEstilo .modal-content > form > .modal-header,
#modalEstilo .modal-content > form > .modal-footer,
#modalRegra .modal-content > form > .modal-header,
#modalRegra .modal-content > form > .modal-footer,
.modal-content > form.cv-modal-form > .modal-header,
.modal-content > form.cv-modal-form > .modal-footer {
  flex-shrink: 0;
}
#modalEstilo .modal-content > form > .modal-body,
#modalRegra .modal-content > form > .modal-body,
.modal-content > form.cv-modal-form > .modal-body {
  overflow-y: auto;
  min-height: 0;
}
/* A regra global solta overflow do modal enquanto o Choices est� aberto.
   Neste form o body deixa de ser o scroll e o foco da lista rola o <form>:
   o t�tulo some, Salvar sobe para o meio e a tela trava. */
.modal-dialog-scrollable:has(form.cv-modal-form .choices.is-open),
.modal-dialog-scrollable:has(form.cv-modal-form .choices.is-open) .modal-content {
  overflow: hidden;
}
.modal-dialog-scrollable:has(form.cv-modal-form .choices.is-open) form.cv-modal-form > .modal-body {
  overflow-x: hidden;
  overflow-y: auto;
}
.cv-mkt-thumb {
  display: block;
  max-height: 4.5rem;
  width: auto;
}
.cv-mkt-yt {
  position: relative;
  width: 100%;
  padding-top: 56.25%;
}
.cv-mkt-yt iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.modal .cv-mkt-yt + .carousel-control-prev,
.cv-mkt-carousel .carousel-indicators {
  margin-bottom: 0.35rem;
}
.modal .carousel-control-prev-icon,
.modal .carousel-control-next-icon {
  filter: invert(1) grayscale(1);
}
/* Grade de �cones Tabler no cadastro de estilos */
.cv-icon-pick {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(2.75rem, 1fr));
  gap: 0.35rem;
  max-height: min(16rem, 34vh);
  overflow: auto;
  padding: 0.15rem;
}
.cv-icon-pick-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1;
  border: 1px solid var(--bs-border-color, #dbe0e5);
  border-radius: 0.5rem;
  background: var(--bs-body-bg, #fff);
  color: var(--bs-body-color, #1d2630);
  padding: 0;
  font-size: 1.25rem;
  line-height: 1;
}
.cv-icon-pick-btn:hover {
  border-color: #0057ff;
  color: #0057ff;
}
.cv-icon-pick-btn.is-on {
  border-color: #0057ff;
  background: rgba(0, 87, 255, 0.12);
  color: #0057ff;
  box-shadow: 0 0 0 1px #0057ff inset;
}
.cv-tier-card {
  cursor: pointer;
  text-align: left;
  width: 100%;
  border: 1px solid var(--bs-border-color, #dbe0e5);
  transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
}
.cv-tier-card .card-body {
  padding: .7rem .9rem;
}
.cv-tier-marca {
  width: 2.35rem;
  height: 2.35rem;
  border-radius: .7rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  flex-shrink: 0;
}
.cv-tier-nome {
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.cv-tier-preco {
  margin-top: .1rem;
  font-size: .78rem;
  font-weight: 600;
  color: var(--bs-secondary-color, #5b6b79);
}
.cv-tier-qtd {
  font-size: .8rem;
  font-weight: 600;
  color: var(--bs-secondary-color, #5b6b79);
  white-space: nowrap;
}
.cv-tier-check {
  font-size: 1.15rem;
  opacity: 0;
  flex-shrink: 0;
}
.cv-tier-card.is-active .cv-tier-check {
  opacity: 1;
}
.cv-tier-card--premium .cv-tier-marca {
  background: #fff1cc;
  color: #9a7209;
}
.cv-tier-card--premium .cv-tier-nome,
.cv-tier-card--premium.is-active .cv-tier-check {
  color: #8a6408;
}
.cv-tier-card--premium.is-active {
  border-color: #e0a100;
  background: #fffaf0;
  box-shadow: 0 0 0 1px #e0a100;
}
.cv-tier-card--basica .cv-tier-marca {
  background: #e7f0ff;
  color: #2f6fed;
}
.cv-tier-card--basica .cv-tier-nome,
.cv-tier-card--basica.is-active .cv-tier-check {
  color: #2457c5;
}
.cv-tier-card--basica.is-active {
  border-color: #4680ff;
  background: #f3f7ff;
  box-shadow: 0 0 0 1px #4680ff;
}
[data-pc-theme="dark"] .cv-tier-card--premium .cv-tier-marca {
  background: rgba(224, 161, 0, .18);
  color: #f5c451;
}
[data-pc-theme="dark"] .cv-tier-card--premium .cv-tier-nome,
[data-pc-theme="dark"] .cv-tier-card--premium.is-active .cv-tier-check {
  color: #f5c451;
}
[data-pc-theme="dark"] .cv-tier-card--premium.is-active {
  background: rgba(224, 161, 0, .12);
}
[data-pc-theme="dark"] .cv-tier-card--basica .cv-tier-marca {
  background: rgba(70, 128, 255, .18);
  color: #8eb0ff;
}
[data-pc-theme="dark"] .cv-tier-card--basica .cv-tier-nome,
[data-pc-theme="dark"] .cv-tier-card--basica.is-active .cv-tier-check {
  color: #8eb0ff;
}
[data-pc-theme="dark"] .cv-tier-card--basica.is-active {
  background: rgba(70, 128, 255, .12);
}
.js-pedir-voz-card .cv-voz-estilos {
  display: none;
  margin-top: .85rem;
  padding-top: .85rem;
  border-top: 1px solid var(--bs-border-color, #e6e8eb);
}
#pedirVozFocoSlot .js-pedir-voz-card .cv-voz-estilos {
  display: block;
}
.cv-voz-estilos-rotulo {
  margin: 0 0 .45rem;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--bs-secondary-color, #5b6b79);
}
.cv-voz-estilos-opcoes {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem .65rem;
  align-items: flex-start;
}
.cv-estilo-chip {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  flex: 1 1 11rem;
  min-width: 0;
  max-width: 100%;
}
.cv-estilo-player {
  width: 100%;
  min-width: 0;
}
.cv-estilo-player .plyr {
  border-radius: 0.5rem;
  overflow: hidden;
}
.cv-estilo-player[data-cor="primary"] .plyr { --plyr-color-main: var(--bs-primary); }
.cv-estilo-player[data-cor="secondary"] .plyr { --plyr-color-main: var(--bs-secondary); }
.cv-estilo-player[data-cor="success"] .plyr { --plyr-color-main: var(--bs-success); }
.cv-estilo-player[data-cor="danger"] .plyr { --plyr-color-main: var(--bs-danger); }
.cv-estilo-player[data-cor="warning"] .plyr { --plyr-color-main: var(--bs-warning); }
.cv-estilo-player[data-cor="info"] .plyr { --plyr-color-main: var(--bs-info); }
.cv-estilo-player[data-cor="dark"] .plyr { --plyr-color-main: var(--bs-dark); }
.cv-estilo-play {
  appearance: none;
  width: 2.25rem;
  height: 2.25rem;
  border: 0;
  border-radius: 50%;
  background: var(--bs-primary, #4680ff);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
}
.cv-estilo-play:hover {
  filter: brightness(1.08);
}
.cv-voz-ficha {
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
#pedirAside.is-confirm {
  display: none;
}
.row:has(> #pedirAside.is-confirm) > .col-xl-8 {
  flex: 0 0 auto;
  width: 100%;
  max-width: 100%;
}
.cv-confirm-texto {
  font-family: var(--bs-body-font-family);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.65;
  letter-spacing: -0.011em;
  white-space: pre-wrap;
  word-break: break-word;
  color: var(--bs-body-color, #1d2630);
  background: #f7f9fc;
  border: 1px solid var(--bs-border-color, #e6e8eb);
  border-radius: .85rem;
  padding: 1.15rem 1.25rem;
  margin: 0 0 .35rem;
}
[data-pc-theme="dark"] .cv-confirm-texto {
  background: rgba(255, 255, 255, .04);
}
.cv-leitura {
  border: 1px solid rgba(70, 128, 255, .28);
  background: #f3f7ff;
  border-radius: .9rem;
  padding: 1rem 1.15rem;
}
.cv-leitura-item {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  padding: .65rem 0;
  border-top: 1px solid rgba(70, 128, 255, .16);
}
.cv-leitura-de {
  text-decoration: line-through;
  color: var(--bs-secondary-color, #5b6b7c);
}
.cv-leitura-para {
  font-weight: 650;
}
[data-pc-theme="dark"] .cv-leitura {
  background: rgba(70, 128, 255, .08);
}
.cv-confirm-voz {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.15rem;
  border-radius: .9rem;
  background: #f3f7ff;
  border: 1px solid rgba(70, 128, 255, .28);
}
.cv-confirm-voz.is-premium {
  background: #fffaf0;
  border-color: rgba(224, 161, 0, .45);
}
.cv-confirm-voz-kicker {
  margin: 0;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: #2457c5;
}
.cv-confirm-voz.is-premium .cv-confirm-voz-kicker {
  color: #8a6408;
}
.cv-confirm-voz-foto {
  width: 4.5rem;
  height: 4.5rem;
  border-radius: .9rem;
  object-fit: cover;
  flex-shrink: 0;
}
.card.cv-pedido-nav .profile-tabs {
  border-bottom: 0;
}
.card.cv-pedido-nav .profile-tabs .nav-link {
  padding-top: .85rem;
  padding-bottom: .85rem;
}
.card.cv-pedido-nav .profile-tabs .nav-link.active {
  font-weight: 600;
}
.cv-pedido-kpi-label {
  font-size: .72rem;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.card.cv-pedido-kpi .card-body {
  padding: 1rem 1.15rem;
}
.card.cv-pedido-produto {
  background: var(--bs-card-bg);
}
.card.cv-pedido-valor {
  background: linear-gradient(145deg, rgba(70, 128, 255, .06), rgba(70, 128, 255, .02));
  border-color: rgba(70, 128, 255, .22);
}
[data-pc-theme="dark"] .card.cv-pedido-valor {
  background: linear-gradient(145deg, rgba(70, 128, 255, .14), rgba(70, 128, 255, .05));
  border-color: rgba(70, 128, 255, .28);
}
.card.cv-pedido-voz {
  background: var(--bs-card-bg);
  border-color: var(--bs-border-color);
}
.cv-pedido-voz-body {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.15rem;
}
.cv-pedido-voz-kicker {
  margin: 0;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--bs-secondary-color);
}
.cv-pedido-voz-nome {
  min-width: 0;
}
.cv-pedido-voz-main .badge {
  font-weight: 600;
}
.cv-pedido-voz-main .badge .ti {
  font-size: .9em;
  margin-right: .3rem;
  vertical-align: -0.1em;
}
.cv-pedido-pilha > .card > .card-body,
.cv-pedido-coluna > .card > .card-body,
.cv-pedido-pilha > .file-card > .card-body,
.cv-pedido-coluna > .file-card > .card-body,
.cv-pedido-kpis > [class*="col"] > .card > .card-body {
  padding: 1rem;
}
.cv-pedido-pilha .cv-roteiro,
.cv-pedido-coluna .cv-roteiro {
  padding: 0.85rem 1rem;
}
.cv-pedido-voz-media {
  flex-shrink: 0;
}
.cv-pedido-voz-media .cv-pedido-voz-foto,
.cv-pedido-voz-media .cv-locutor-avatar,
.cv-pedido-voz-media .user-avtar.cv-locutor-avatar,
.cv-pedido-voz-media .avtar-xl {
  width: 5.25rem;
  height: 5.25rem;
  border-radius: .5rem;
  object-fit: cover;
  box-shadow: none;
  border: 0;
  overflow: hidden;
}
.cv-pedido-voz-media .cv-locutor-avatar canvas,
.cv-pedido-voz-media .cv-locutor-avatar img {
  border-radius: .5rem;
}
.cv-pedido-voz-foto {
  width: 5.25rem;
  height: 5.25rem;
  border-radius: .5rem;
  object-fit: cover;
  flex-shrink: 0;
}
.cv-pedido-coluna > .card,
.cv-pedido-coluna > .alert {
  margin-bottom: 1rem;
}
.cv-pedido-pilha > .card,
.cv-pedido-pilha > .alert,
.cv-pedido-pilha > .row,
.cv-pedido-pilha > .d-flex {
  margin-bottom: 0;
}
.cv-pedido-coluna details > summary {
  cursor: pointer;
}
.file-card a.avtar.btn-outline-danger {
  color: #dc2626;
  background: transparent;
  border-color: #dc2626;
}
.file-card a.avtar.btn-outline-danger:hover,
.file-card a.avtar.btn-outline-danger:focus {
  color: #fff;
  background: #dc2626;
  border-color: #dc2626;
}
.cv-pedido-off-rosto {
  width: 5.25rem;
  height: 5.25rem;
  border-radius: .5rem;
  overflow: hidden;
  flex-shrink: 0;
  position: relative;
}
.cv-pedido-off-rosto .cv-locutor-avatar,
.cv-pedido-off-rosto .user-avtar,
.cv-pedido-off-rosto .cv-pedido-voz-foto {
  width: 100%;
  height: 100%;
  margin: 0;
  border-radius: .5rem;
  overflow: hidden;
  box-shadow: none;
}
.cv-pedido-off-rosto canvas,
.cv-pedido-off-rosto img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.cv-roteiro {
  font-family: var(--bs-body-font-family);
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.75;
  letter-spacing: -0.012em;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-word;
  color: var(--bs-body-color, #1d2630);
  background: #fbf8f2;
  border: 1px solid #efe4cc;
  border-radius: 1rem;
  padding: 1.2rem 1.35rem 1.3rem;
  margin: 0;
}
.cv-roteiro--guia {
  background: #f3f8fb;
  border-color: #d5e6ee;
  font-size: 1rem;
  line-height: 1.65;
}
.cv-roteiro--anterior {
  background: #f6f7f9;
  border-color: #e4e7ec;
  color: #3e4853;
  font-size: 1rem;
  font-weight: 500;
}
.cv-roteiro--nota {
  background: #fff;
  border-color: #e6e8eb;
  border-left: 3px solid #d4a017;
  border-radius: 0.75rem;
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.55;
  padding: 0.85rem 1rem;
}
.cv-roteiro-marca {
  display: inline-block;
  font-size: 0.72em;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.4;
  color: #7c6514;
  background: #f7f0c8;
  border-radius: 999px;
  padding: 0.12em 0.5em;
  vertical-align: 0.08em;
  white-space: nowrap;
}
.cv-roteiro-meta {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--bs-secondary-color);
  background: var(--bs-tertiary-bg, #f4f6f8);
  border-radius: 999px;
  padding: 0.28rem 0.6rem;
}
textarea.form-control.cv-roteiro-campo {
  font-family: var(--bs-body-font-family);
  font-size: 1.0625rem;
  font-weight: 500;
  line-height: 1.7;
  letter-spacing: -0.011em;
  min-height: 14rem;
}
[data-pc-theme="dark"] .cv-roteiro {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}
[data-pc-theme="dark"] .cv-roteiro--guia {
  background: rgba(14, 80, 90, 0.22);
}
[data-pc-theme="dark"] .cv-roteiro--anterior {
  background: rgba(255, 255, 255, 0.03);
  color: rgba(255, 255, 255, 0.78);
}
[data-pc-theme="dark"] .cv-roteiro--nota {
  background: rgba(212, 160, 23, 0.08);
  border-color: rgba(255, 255, 255, 0.08);
}
[data-pc-theme="dark"] .cv-roteiro-marca {
  color: #f7f0c8;
  background: rgba(212, 160, 23, 0.22);
}
.cv-correcao-bloco + .cv-correcao-bloco {
  margin-top: 0.85rem;
}
.cv-correcao-kicker {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--bs-secondary-color);
}
.cv-locutor-avatar--adm {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  margin: 0 auto 1rem;
}
.user-avtar.cv-locutor-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  flex: none;
}
[data-pc-theme="dark"] .cv-confirm-voz {
  background: rgba(70, 128, 255, .12);
}
[data-pc-theme="dark"] .cv-confirm-voz.is-premium {
  background: rgba(224, 161, 0, .12);
}
.cv-voz-foco-linha {
  display: flex;
  align-items: stretch;
  gap: 12px;
}
#pedirVozFocoSlot {
  flex: 1 1 auto;
  min-width: 0;
}
.cv-voz-rever {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex: 0 0 158px;
  width: 158px;
  margin: 0;
  padding: 14px 12px;
  border: 1px solid #e1e5ea;
  border-radius: 16px;
  background: #eceff3;
  color: #4d5966;
  font-size: .95rem;
  font-weight: 650;
  line-height: 1.15;
  text-align: center;
  cursor: pointer;
  transition: opacity .4s ease, background .2s ease, border-color .2s ease;
}
.cv-voz-rever.is-chegando {
  opacity: 0;
}
.cv-voz-rever:hover {
  background: #e3e7ed;
  border-color: #cfd6df;
  color: #1d2630;
}
.cv-voz-rever-fotos {
  display: flex;
  align-items: center;
  justify-content: center;
}
.cv-voz-rever-foto {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  object-fit: cover;
  filter: grayscale(1);
  border: 2px solid #eceff3;
  margin-left: -8px;
  background: #d5dbe3;
}
.cv-voz-rever-foto:first-child {
  margin-left: 0;
}
.cv-voz-rever-rotulo {
  display: block;
}
[data-pc-theme="dark"] .cv-voz-rever {
  background: #1b232d;
  border-color: #2c3846;
  color: #c5d0dc;
}
[data-pc-theme="dark"] .cv-voz-rever:hover {
  background: #24303c;
  color: #fff;
}
[data-pc-theme="dark"] .cv-voz-rever-foto {
  border-color: #1b232d;
  filter: grayscale(1) brightness(.85);
}
#pedirVozFocoSlot .cv-voz-foco-card {
  width: 100%;
  max-width: 100%;
}
#pedirVozFocoSlot .cv-voz-cover-wrap {
  border-radius: 16px;
}
#pedirVozFocoSlot .cv-voz-foco-card > .card.file-card {
  display: flex;
  flex-direction: column;
  overflow: visible;
  padding: 12px;
  gap: 14px;
  border-color: #4680ff;
  box-shadow: 0 0 0 1px #4680ff;
  background: #f4f8ff;
}
#pedirVozFocoSlot .cv-voz-foco-card.is-tier-premium > .card.file-card {
  border-color: #e0a100;
  box-shadow: 0 0 0 1px #e0a100;
  background: #fffaf0;
}
#pedirVozFocoSlot .cv-voz-foco-card > .card > .form-check {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: 0;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
}
#pedirVozFocoSlot .cv-voz-card-body {
  min-width: 0;
  padding: 4px 4px 4px 0;
}
#pedirVozFocoSlot .cv-voz-card-desc {
  display: block !important;
  height: auto;
  -webkit-line-clamp: unset;
}
#pedirVozFocoSlot .cv-voz-card-copy > .d-flex.flex-wrap,
#pedirVozFocoSlot .cv-voz-estilos,
#pedirVozFocoSlot .cv-voz-ficha {
  display: flex !important;
}
#pedirVozFocoSlot .cv-voz-card-base,
#pedirVozFocoSlot .cv-voz-play-linha,
#pedirVozFocoSlot .cv-voz-card-selos {
  display: none !important;
}
#pedirVozFocoSlot .cv-voz-cover-play {
  display: inline-flex !important;
}
[data-pc-theme="dark"] #pedirVozFocoSlot .cv-voz-foco-card > .card.file-card {
  background: rgba(70, 128, 255, .12);
}
[data-pc-theme="dark"] #pedirVozFocoSlot .cv-voz-foco-card.is-tier-premium > .card.file-card {
  background: rgba(224, 161, 0, .12);
}
@media (min-width: 768px) {
  #pedirVozFocoSlot .cv-voz-foco-card > .card.file-card {
    flex-direction: row;
    align-items: stretch;
  }
  #pedirVozFocoSlot .cv-voz-cover-wrap {
    flex: 0 0 148px;
    width: 148px;
    height: 148px;
    aspect-ratio: 1 / 1;
    align-self: center;
    border-radius: 16px;
  }
  #pedirVozFocoSlot .cv-voz-cover {
    width: 148px;
    height: 148px;
    min-height: 0;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    object-position: center center;
  }
  #pedirVozFocoSlot .cv-voz-card-body {
    flex: 1;
  }
}
.cv-estilo-opcao {
  appearance: none;
  display: inline-flex;
  align-items: center;
  gap: .45rem;
  width: 100%;
  min-height: 2.5rem;
  padding: .4rem .85rem;
  border: 1px solid var(--bs-border-color, #dbe0e5);
  border-radius: 0.65rem;
  font-size: .9rem;
  font-weight: 650;
  line-height: 1.2;
  cursor: pointer;
  text-align: left;
  transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.cv-estilo-ico {
  flex-shrink: 0;
}
.cv-estilo-nome {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cv-estilo-opcao[data-cor="primary"]:not(.is-on) { border-color: color-mix(in srgb, var(--bs-primary) 38%, var(--bs-border-color)); }
.cv-estilo-opcao[data-cor="secondary"]:not(.is-on) { border-color: color-mix(in srgb, var(--bs-secondary) 38%, var(--bs-border-color)); }
.cv-estilo-opcao[data-cor="success"]:not(.is-on) { border-color: color-mix(in srgb, var(--bs-success) 38%, var(--bs-border-color)); }
.cv-estilo-opcao[data-cor="danger"]:not(.is-on) { border-color: color-mix(in srgb, var(--bs-danger) 38%, var(--bs-border-color)); }
.cv-estilo-opcao[data-cor="warning"]:not(.is-on) { border-color: color-mix(in srgb, var(--bs-warning) 42%, var(--bs-border-color)); }
.cv-estilo-opcao[data-cor="info"]:not(.is-on) { border-color: color-mix(in srgb, var(--bs-info) 38%, var(--bs-border-color)); }
.cv-estilo-opcao[data-cor="dark"]:not(.is-on) { border-color: color-mix(in srgb, var(--bs-dark) 32%, var(--bs-border-color)); }
.cv-estilo-opcao:hover:not(.is-on) {
  box-shadow: 0 0 0 1px color-mix(in srgb, currentColor 22%, transparent);
}
.cv-estilo-opcao.is-on[data-cor="primary"] { background: var(--bs-primary) !important; border-color: var(--bs-primary) !important; color: #fff !important; }
.cv-estilo-opcao.is-on[data-cor="secondary"] { background: var(--bs-secondary) !important; border-color: var(--bs-secondary) !important; color: #fff !important; }
.cv-estilo-opcao.is-on[data-cor="success"] { background: var(--bs-success) !important; border-color: var(--bs-success) !important; color: #fff !important; }
.cv-estilo-opcao.is-on[data-cor="danger"] { background: var(--bs-danger) !important; border-color: var(--bs-danger) !important; color: #fff !important; }
.cv-estilo-opcao.is-on[data-cor="warning"] { background: var(--bs-warning) !important; border-color: var(--bs-warning) !important; color: #1d2630 !important; }
.cv-estilo-opcao.is-on[data-cor="info"] { background: var(--bs-info) !important; border-color: var(--bs-info) !important; color: #fff !important; }
.cv-estilo-opcao.is-on[data-cor="dark"] { background: var(--bs-dark) !important; border-color: var(--bs-dark) !important; color: #fff !important; }
.cv-estilo-opcao.is-on .cv-estilo-ico {
  background: rgba(255, 255, 255, 0.28) !important;
  color: inherit !important;
}
.cv-estilo-opcao.is-on[data-cor="warning"] .cv-estilo-ico {
  background: rgba(0, 0, 0, 0.12) !important;
}
.cv-import-opt {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  min-height: calc(3.5rem + 2px);
  margin: 0;
  padding: 0.5rem 0.9rem;
  border: 1px solid var(--bs-border-color, #e6e8eb);
  border-radius: 0.5rem;
  background: var(--bs-body-bg, #fff);
  cursor: pointer;
}
.cv-import-opt .form-check-input {
  margin: 0;
  float: none;
  flex-shrink: 0;
}

/* alert-light-* n�o est� no CSS do Able: .alert nasce com fundo transparent.
   Na faixa azul do color-header o alerta, o badge e o bg-light vazam a cor
   de tr�s. Fundo sempre s�lido (no escuro, mistura opaca com o fundo da p�gina). */
.alert-light-primary { background-color: #edf2ff; }
.alert-light-secondary { background-color: #eff0f2; }
.alert-light-success { background-color: #eaf6f2; }
.alert-light-info { background-color: #ecfafb; }
.alert-light-warning { background-color: #f7f0c8; }
.alert-light-danger { background-color: #fce9e9; }
.alert-light-dark { background-color: #e9e9ea; }
.alert-light-primary,
.alert-light-secondary,
.alert-light-success,
.alert-light-info,
.alert-light-warning,
.alert-light-danger,
.alert-light-dark {
  color: var(--bs-body-color, #1d2630);
  background-clip: padding-box;
}
[data-pc-theme=dark] .alert-light-primary,
[data-pc-theme=dark] .badge.bg-light-primary,
[data-pc-theme=dark] .bg-light-primary,
[data-pc-theme=dark] .btn-light-primary:not(:hover) {
  background-color: color-mix(in srgb, #0d6efd 20%, var(--bs-body-bg)) !important;
  border-color: color-mix(in srgb, #0d6efd 20%, var(--bs-body-bg));
}
[data-pc-theme=dark] .alert-light-secondary,
[data-pc-theme=dark] .badge.bg-light-secondary,
[data-pc-theme=dark] .bg-light-secondary,
[data-pc-theme=dark] .btn-light-secondary:not(:hover) {
  background-color: color-mix(in srgb, #5b6b79 20%, var(--bs-body-bg)) !important;
  border-color: color-mix(in srgb, #5b6b79 20%, var(--bs-body-bg));
}
[data-pc-theme=dark] .alert-light-success,
[data-pc-theme=dark] .badge.bg-light-success,
[data-pc-theme=dark] .bg-light-success,
[data-pc-theme=dark] .btn-light-success:not(:hover) {
  background-color: color-mix(in srgb, #198754 20%, var(--bs-body-bg)) !important;
  border-color: color-mix(in srgb, #198754 20%, var(--bs-body-bg));
}
[data-pc-theme=dark] .alert-light-info,
[data-pc-theme=dark] .badge.bg-light-info,
[data-pc-theme=dark] .bg-light-info,
[data-pc-theme=dark] .btn-light-info:not(:hover) {
  background-color: color-mix(in srgb, #0dcaf0 20%, var(--bs-body-bg)) !important;
  border-color: color-mix(in srgb, #0dcaf0 20%, var(--bs-body-bg));
}
[data-pc-theme=dark] .alert-light-warning,
[data-pc-theme=dark] .badge.bg-light-warning,
[data-pc-theme=dark] .bg-light-warning,
[data-pc-theme=dark] .btn-light-warning:not(:hover) {
  background-color: color-mix(in srgb, #d4a017 20%, var(--bs-body-bg)) !important;
  border-color: color-mix(in srgb, #d4a017 20%, var(--bs-body-bg));
}
[data-pc-theme=dark] .alert-light-danger,
[data-pc-theme=dark] .badge.bg-light-danger,
[data-pc-theme=dark] .bg-light-danger,
[data-pc-theme=dark] .btn-light-danger:not(:hover) {
  background-color: color-mix(in srgb, #dc3545 20%, var(--bs-body-bg)) !important;
  border-color: color-mix(in srgb, #dc3545 20%, var(--bs-body-bg));
}
[data-pc-theme=dark] .alert-light-dark,
[data-pc-theme=dark] .badge.bg-light-dark,
[data-pc-theme=dark] .bg-light-dark,
[data-pc-theme=dark] .btn-light-dark:not(:hover) {
  background-color: color-mix(in srgb, #131920 20%, var(--bs-body-bg)) !important;
  border-color: color-mix(in srgb, #131920 20%, var(--bs-body-bg));
}

/* Texto colorido no escuro: o Able mant�m #113aa7 (prim�rio) e #dc2626 sobre
   o fundo escuro ? 1,65:1 e 3,28:1 de contraste (AA pede 4,5:1). Cada fam�lia
   ganha um tom claro pr�prio, aplicado em texto, badge e bot�o "light". */
[data-pc-theme=dark] {
  --cv-t-primary: #b3cdff;
  --cv-t-secondary: #c6d0da;
  --cv-t-success: #5fdba9;
  --cv-t-info: #72dfe9;
  --cv-t-warning: #ecca6a;
  --cv-t-danger: #ff9494;
  --bs-link-color: #9cbcff;
  --bs-link-color-rgb: 156, 188, 255;
  --bs-link-hover-color: #c3d6ff;
  --bs-link-hover-color-rgb: 195, 214, 255;
}
[data-pc-theme=dark] .text-primary,
[data-pc-theme=dark] .badge.bg-light-primary,
[data-pc-theme=dark] .btn-light-primary:not(:hover) { color: var(--cv-t-primary) !important; }
[data-pc-theme=dark] .text-secondary,
[data-pc-theme=dark] .badge.bg-light-secondary,
[data-pc-theme=dark] .btn-light-secondary:not(:hover) { color: var(--cv-t-secondary) !important; }
[data-pc-theme=dark] .text-success,
[data-pc-theme=dark] .badge.bg-light-success,
[data-pc-theme=dark] .btn-light-success:not(:hover) { color: var(--cv-t-success) !important; }
[data-pc-theme=dark] .text-info,
[data-pc-theme=dark] .badge.bg-light-info,
[data-pc-theme=dark] .btn-light-info:not(:hover) { color: var(--cv-t-info) !important; }
[data-pc-theme=dark] .text-warning,
[data-pc-theme=dark] .badge.bg-light-warning,
[data-pc-theme=dark] .btn-light-warning:not(:hover) { color: var(--cv-t-warning) !important; }
[data-pc-theme=dark] .text-danger,
[data-pc-theme=dark] .badge.bg-light-danger,
[data-pc-theme=dark] .btn-light-danger:not(:hover) { color: var(--cv-t-danger) !important; }
[data-pc-theme=dark] .text-muted { color: var(--bs-secondary-color) !important; }
[data-pc-theme=dark] .form-floating > label { color: var(--bs-secondary-color); }

/* Aviso: ouro (#d4a017 / #f7f0c8), no lugar do laranja avermelhado do Able (#e58a00). */
body[data-pc-preset] {
  --bs-warning: #d4a017;
  --bs-warning-rgb: 212, 160, 23;
}
body[data-pc-preset] .bg-light-warning,
body[data-pc-preset] .badge.bg-light-warning,
body[data-pc-preset] .alert-light-warning,
body[data-pc-preset] .btn-light-warning {
  background-color: #f7f0c8;
  color: #7c6514;
}
/* .text-* do Bootstrap � !important e clareia o selo at� 1.8:1 no fundo pastel.
   No escuro o fundo do selo escurece, ent�o a tinta clara continua l�. */
body:not([data-pc-theme="dark"]) .badge.bg-light-warning { color: #6b5408 !important; }
body:not([data-pc-theme="dark"]) .badge.bg-light-success,
body:not([data-pc-theme="dark"]) .btn-light-success:not(:hover):not(:focus) { color: #0f5a3e !important; }
body:not([data-pc-theme="dark"]) .badge.bg-light-danger,
body:not([data-pc-theme="dark"]) .btn-light-danger:not(:hover):not(:focus) { color: #9b1c1c !important; }
body:not([data-pc-theme="dark"]) .badge.bg-light-info,
body:not([data-pc-theme="dark"]) .btn-light-info:not(:hover):not(:focus) { color: #0e505a !important; }
body:not([data-pc-theme="dark"]) .badge.bg-light-primary,
body:not([data-pc-theme="dark"]) .btn-light-primary:not(:hover):not(:focus) { color: #1440aa !important; }
body:not([data-pc-theme="dark"]) .btn-light-success:hover,
body:not([data-pc-theme="dark"]) .btn-light-success:focus {
  background: #0f5a3e;
  border-color: #0f5a3e;
  color: #fff !important;
}
body:not([data-pc-theme="dark"]) .btn-light-danger:hover,
body:not([data-pc-theme="dark"]) .btn-light-danger:focus {
  background: #9b1c1c;
  border-color: #9b1c1c;
  color: #fff !important;
}
body:not([data-pc-theme="dark"]) .btn-light-info:hover,
body:not([data-pc-theme="dark"]) .btn-light-info:focus {
  background: #0e505a;
  border-color: #0e505a;
  color: #fff !important;
}
body:not([data-pc-theme="dark"]) .btn-light-primary:hover,
body:not([data-pc-theme="dark"]) .btn-light-primary:focus {
  background: #1440aa;
  border-color: #1440aa;
  color: #fff !important;
}
/* Able pinta .btn-warning de #e58a00 com texto branco (2.6:1). Ouro da marca com tinta escura. */
.btn-warning {
  color: #1a1200;
  background-color: #d4a017;
  border-color: #d4a017;
}
.btn-warning:hover,
.btn-warning:focus {
  color: #1a1200;
  background-color: #a87c0c;
  border-color: #a87c0c;
}
/* Prim�rio do Able (#4680ff) deixa texto branco em 3.6:1. O azul do site passa de 4.5:1. */
.btn-primary {
  background-color: #0066ff;
  border-color: #0066ff;
  color: #fff;
}
.btn-primary:hover,
.btn-primary:focus {
  background-color: #0047d6;
  border-color: #0047d6;
  color: #fff;
}
/* Texto prim�rio, sucesso, info e aviso do Able ficam abaixo de 4.5:1 no branco.
   A pergunta aberta do accordion herda o mesmo azul claro. */
body:not([data-pc-theme="dark"]) .accordion {
  --bs-accordion-active-color: #0057ff;
  --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230057ff'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
body:not([data-pc-theme="dark"]) .text-primary,
body:not([data-pc-theme="dark"]) .link-primary,
body:not([data-pc-theme="dark"]) .btn-link {
  color: #0057ff !important;
}
body:not([data-pc-theme="dark"]) .btn-link:hover,
body:not([data-pc-theme="dark"]) .btn-link:focus {
  color: #0047d6 !important;
}
body:not([data-pc-theme="dark"]) .text-success { color: #0f5a3e !important; }
body:not([data-pc-theme="dark"]) .text-info { color: #0e505a !important; }
body:not([data-pc-theme="dark"]) .text-warning { color: #6b5408 !important; }
body:not([data-pc-theme="dark"]) .btn-outline-primary {
  color: #0057ff !important;
  border-color: #0057ff;
}
body:not([data-pc-theme="dark"]) .btn-outline-primary:hover,
body:not([data-pc-theme="dark"]) .btn-outline-primary:focus {
  color: #fff !important;
  background-color: #0057ff;
  border-color: #0057ff;
}

/* Pr�via do wordmark do site p�blico em /config/site. Plus travado em #0089F4. */
.cv-site-wordmark {
  display: inline-flex;
  align-items: baseline;
  font-weight: 800;
  letter-spacing: -0.045em;
  font-size: 1.5rem;
  line-height: 1;
  color: #000;
}
.cv-site-wordmark .plus { color: #0089F4; }
[data-pc-theme="dark"] .cv-site-wordmark { color: #fff; }
.cv-site-logo-preview {
  max-height: 48px;
  width: auto;
  max-width: 100%;
  object-fit: contain;
}

/* Assistente ? painel flutuante no canto, no tom do Able */
.cv-mascote-admin-preview {
  min-height: 200px;
  background: var(--bs-body-bg);
}
.cv-chat {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 1030;
  font-size: 0.875rem;
}
.cv-chat-launcher {
  width: 56px;
  height: 56px;
  border: 0;
  border-radius: 50%;
  background: var(--bs-primary);
  color: #fff;
  box-shadow: 0 8px 24px rgba(var(--bs-primary-rgb), 0.35);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.cv-chat-launcher .ti { font-size: 1.5rem; }
.cv-chat-ico-fechar { display: none; }
.cv-chat.is-open .cv-chat-ico-abrir { display: none; }
.cv-chat.is-open .cv-chat-ico-fechar { display: inline; }
.cv-chat-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border-radius: 999px;
  background: var(--bs-danger);
  color: #fff;
  font-size: 11px;
  line-height: 18px;
  z-index: 2;
}
.cv-chat.is-atencao .cv-chat-launcher {
  animation: cv-chat-atencao 1.6s ease-out infinite;
}
.cv-chat.is-open .cv-chat-launcher {
  animation: none;
}
@keyframes cv-chat-atencao {
  0% { box-shadow: 0 0 0 0 rgba(var(--bs-danger-rgb), 0.55), 0 8px 24px rgba(var(--bs-primary-rgb), 0.35); }
  70% { box-shadow: 0 0 0 14px rgba(var(--bs-danger-rgb), 0), 0 8px 24px rgba(var(--bs-primary-rgb), 0.35); }
  100% { box-shadow: 0 0 0 0 rgba(var(--bs-danger-rgb), 0), 0 8px 24px rgba(var(--bs-primary-rgb), 0.35); }
}
.cv-chat.has-mascote .cv-chat-panel {
  bottom: calc(100% + 12px);
}
.cv-chat-panel {
  position: absolute;
  right: 0;
  bottom: 68px;
  width: 400px;
  max-width: calc(100vw - 32px);
  height: min(640px, calc(100vh - 120px));
  display: flex;
  flex-direction: column;
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  border: 1px solid var(--bs-border-color);
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.16);
  overflow: hidden;
}
.cv-chat-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: var(--bs-primary);
  color: #fff;
}
.cv-chat-head strong { display: block; line-height: 1.2; }
.cv-chat-estado { display: block; opacity: 0.85; font-size: 12px; }
.cv-chat-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.18);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  flex: 0 0 36px;
}
.cv-chat-avatar.is-pessoa .cv-mascote-host,
.cv-chat-avatar.is-pessoa > .ti { display: none; }
.cv-chat-avatar-foto {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cv-chat-avatar-foto[hidden],
.cv-chat-avatar-iniciais[hidden] { display: none !important; }
.cv-chat-avatar-iniciais {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.02em;
}
.cv-chat-mini-avatar {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  flex: 0 0 28px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-end;
  background: rgba(var(--bs-warning-rgb), 0.28);
  color: var(--bs-body-color);
  font-size: 11px;
  font-weight: 700;
}
.cv-chat-mini-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.cv-chat-iconbtn {
  margin-left: auto;
  border: 0;
  background: transparent;
  color: #fff;
  width: 32px;
  height: 32px;
}
.cv-chat-cards, .cv-chat-atalhos {
  display: flex;
  gap: 6px;
  flex-wrap: nowrap;
}
.cv-chat-card, .cv-chat-chip {
  border: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  border-radius: 999px;
  padding: 4px 10px;
  font-size: 12px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.cv-chat-log {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 12px;
  min-height: 0;
}
.cv-chat-saudacao { color: var(--bs-secondary-color); margin: 0; }
.cv-chat-row { display: flex; margin-bottom: 10px; }
.cv-chat-row.is-operador { align-items: flex-end; gap: 8px; }
.cv-chat-row.is-cliente { justify-content: flex-end; }
.cv-chat-bubble {
  max-width: 85%;
  border-radius: 14px;
  padding: 8px 12px;
  background: var(--bs-tertiary-bg, rgba(0, 0, 0, 0.04));
  border: 1px solid var(--bs-border-color);
}
.cv-chat-row.is-cliente .cv-chat-bubble {
  background: var(--bs-primary);
  color: #fff;
  border-color: transparent;
}
.cv-chat-row.is-operador .cv-chat-bubble { border-color: var(--bs-warning); }
.cv-chat-row.is-sistema { justify-content: center; }
.cv-chat-row.is-sistema .cv-chat-bubble {
  background: transparent;
  border: 0;
  color: var(--bs-secondary-color);
  font-size: 12px;
  text-align: center;
}
.cv-inbox-log {
  max-height: 420px;
  background: var(--bs-body-bg);
}
.cv-inbox-log .cv-chat-row.is-cliente,
.cv-inbox-log .cv-chat-row.is-assistente {
  justify-content: flex-start;
}
.cv-inbox-log .cv-chat-row.is-cliente .cv-chat-bubble,
.cv-inbox-log .cv-chat-row.is-assistente .cv-chat-bubble {
  background: var(--bs-tertiary-bg, rgba(0, 0, 0, 0.04));
  color: inherit;
  border-color: var(--bs-border-color);
}
.cv-inbox-log .cv-chat-row.is-operador { justify-content: flex-end; }
.cv-inbox-log .cv-chat-row.is-operador .cv-chat-bubble {
  background: var(--bs-primary);
  color: #fff;
  border-color: transparent;
}
.cv-chat-hora {
  display: block;
  margin-top: 4px;
  font-size: 11px;
  opacity: 0.75;
}
.cv-chat-abas {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 4px;
  margin: 0;
  padding: 8px 12px 10px;
  border-bottom: 1px solid var(--bs-border-color);
}
.cv-chat-aba {
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: transparent;
  color: var(--bs-secondary-color);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
  padding: 8px 4px;
  white-space: nowrap;
  transition: background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.cv-chat-aba .ti {
  font-size: 1rem;
  opacity: .85;
}
.cv-chat-aba:hover {
  color: var(--bs-body-color);
  background: rgba(var(--bs-primary-rgb), 0.06);
}
.cv-chat-aba.is-on {
  color: #fff;
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  font-weight: 600;
  box-shadow: 0 1px 0 rgba(var(--bs-primary-rgb), 0.08);
}
.cv-chat-aba.is-on .ti { opacity: 1; }
.cv-chat-aba { position: relative; }
.cv-chat-aba-ponto {
  position: absolute;
  top: 6px;
  right: 8px;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--bs-danger);
  display: block;
}
.cv-chat-aba-ponto[hidden] { display: none !important; }
.cv-chat-aba.is-on .cv-chat-aba-ponto { background: #fff; }
.cv-chat-biblioteca-wrap {
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.cv-chat-biblioteca-wrap[hidden] { display: none !important; }
.cv-chat-biblioteca-topo { padding: 12px 12px 0; }
.cv-chat-biblioteca {
  flex: 1 1 auto;
  overflow-y: auto;
  padding: 12px;
  min-height: 0;
}
.cv-chat-item {
  display: block;
  width: 100%;
  text-align: left;
  border: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 8px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.cv-chat-item.is-clicavel { cursor: pointer; }
.cv-chat-item.is-clicavel:hover {
  border-color: rgba(var(--bs-primary-rgb), 0.35);
  box-shadow: 0 2px 8px rgba(var(--bs-primary-rgb), 0.08);
}
.cv-chat-item small { display: block; color: var(--bs-secondary-color); margin-top: 6px; }
.cv-chat-item-topo {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
}
.cv-chat-item-quando {
  flex: 0 0 auto;
  font-size: 11px;
  color: var(--bs-secondary-color);
}
.cv-chat-item-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.cv-chat-chip-estado {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  background: rgba(var(--bs-secondary-rgb), 0.16);
  color: var(--bs-secondary-color);
}
.cv-chat-chip-estado.is-aberta { background: rgba(var(--bs-info-rgb), 0.18); color: var(--bs-info); }
.cv-chat-chip-estado.is-aguardando_humano { background: rgba(var(--bs-warning-rgb), 0.22); color: var(--bs-warning-text-emphasis, #997404); }
.cv-chat-chip-estado.is-em_atendimento { background: rgba(var(--bs-primary-rgb), 0.16); color: var(--bs-primary); }
.cv-chat-chip-estado.is-encerrada { background: rgba(var(--bs-secondary-rgb), 0.16); }
.cv-chat-chip-estado.is-pedido { background: rgba(var(--bs-primary-rgb), 0.16); color: var(--bs-primary); }
.cv-chat-chip-estado.is-jingle { background: rgba(var(--bs-success-rgb), 0.16); color: var(--bs-success); }
.cv-chat-item-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.cv-chat-roteiro {
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  border: 1px solid var(--bs-border-color);
  background: var(--bs-body-bg);
  color: var(--bs-body-color);
  cursor: pointer;
}
.cv-chat-roteiro-rotulo {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--bs-primary);
}
.cv-chat-roteiro-rotulo .ti { font-size: .95rem; }
.cv-chat-roteiro-corpo {
  margin: 6px 0 8px;
  white-space: pre-wrap;
  font-size: 13.5px;
  line-height: 1.45;
  max-height: 5.8em;
  overflow: hidden;
}
.cv-chat-roteiro-acoes, .cv-chat-como { margin-top: 6px; }
.cv-chat-roteiro-acoes { display: flex; flex-wrap: wrap; gap: 6px; }
.cv-chat-como {
  margin: 8px 0 0;
  padding-left: 18px;
  font-size: 12px;
}
.cv-chat-modal-preview {
  white-space: pre-wrap;
  font-size: 14px;
  line-height: 1.55;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid var(--bs-border-color);
  background: rgba(var(--bs-primary-rgb), 0.04);
  max-height: min(48vh, 420px);
  overflow-y: auto;
}
.cv-chat-modal-como.is-hidden { display: none !important; }
#cvChatTextoModal .modal-content {
  border: 0;
  border-radius: 16px;
  box-shadow: 0 16px 48px rgba(15, 23, 42, 0.18);
}
#cvChatTextoModal .modal-footer .btn .ti {
  font-size: 1rem;
  vertical-align: -2px;
}
@media (max-width: 420px) {
  .cv-chat-aba span { display: none; }
  .cv-chat-aba { padding: 8px 4px; }
}
.cv-chat-bubble p { margin: 0; white-space: pre-wrap; }
.cv-chat-bubble p.is-revelando::after {
  content: '';
  display: inline-block;
  width: 2px;
  height: 0.9em;
  margin-left: 2px;
  vertical-align: text-bottom;
  background: currentColor;
  animation: cvChatCaret 0.85s steps(1) infinite;
}
@keyframes cvChatCaret { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .cv-chat-bubble p.is-revelando::after { animation: none; }
}
.cv-chat-autor { display: block; font-size: 11px; margin-bottom: 2px; }
.cv-chat-typing {
  display: flex;
  gap: 4px;
  padding: 0 16px 8px;
}
.cv-chat-typing span {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--bs-primary);
  animation: cvChatDot 1s infinite ease-in-out;
}
.cv-chat-typing span:nth-child(2) { animation-delay: 0.15s; }
.cv-chat-typing span:nth-child(3) { animation-delay: 0.3s; }
@keyframes cvChatDot {
  0%, 80%, 100% { opacity: 0.25; }
  40% { opacity: 1; }
}
.cv-chat-wa-wrap {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
}
.cv-chat-wa-info {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: var(--bs-secondary-color);
  line-height: 1;
  cursor: pointer;
}
.cv-chat-wa-info:hover,
.cv-chat-wa-info:focus-visible {
  color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle);
}
.cv-chat-wa-popover {
  position: absolute;
  bottom: calc(100% + 8px);
  left: 0;
  z-index: 20;
  width: min(280px, calc(100vw - 48px));
  padding: 12px 14px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--bs-body-color);
  background: var(--bs-body-bg);
  border: 1px solid var(--bs-border-color);
  border-radius: 10px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, 0.14);
}
.cv-chat-wa-pop-status {
  margin: 0 0 6px;
  font-weight: 600;
  font-size: 13px;
}
.cv-chat-wa-pop-dica {
  margin: 0 0 10px;
  color: var(--bs-secondary-color);
}
.cv-chat-wa-pop-grade {
  list-style: none;
  margin: 0 0 8px;
  padding: 0;
}
.cv-chat-wa-pop-grade li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  border-bottom: 1px solid var(--bs-border-color-translucent);
}
.cv-chat-wa-pop-grade li:last-child { border-bottom: 0; }
.cv-chat-wa-pop-dia { font-weight: 500; }
.cv-chat-wa-pop-hora { color: var(--bs-secondary-color); text-align: right; }
.cv-chat-wa-pop-fuso {
  margin: 0;
  font-size: 11px;
  color: var(--bs-secondary-color);
}

.cv-btn-whatsapp {
  --bs-btn-color: #fff;
  --bs-btn-bg: #128c7e;
  --bs-btn-border-color: #0f7a6e;
  --bs-btn-hover-color: #fff;
  --bs-btn-hover-bg: #0f7a6e;
  --bs-btn-hover-border-color: #0c655c;
  --bs-btn-focus-shadow-rgb: 37, 211, 102;
  --bs-btn-active-bg: #0c655c;
  --bs-btn-active-border-color: #0a524b;
}
.cv-btn-whatsapp.is-aberto {
  --bs-btn-bg: #25d366;
  --bs-btn-border-color: #1ebe5d;
  --bs-btn-hover-bg: #1ebe5d;
  --bs-btn-hover-border-color: #1aab54;
  --bs-btn-active-bg: #1aab54;
}
.cv-btn-whatsapp.is-fora {
  --bs-btn-bg: #6b9f7a;
  --bs-btn-border-color: #5d8c6b;
  --bs-btn-hover-bg: #5d8c6b;
  --bs-btn-hover-border-color: #517a5e;
  --bs-btn-active-bg: #517a5e;
  opacity: 0.95;
}

.cv-chat-form { padding: 6px 12px 12px; border-top: 1px solid var(--bs-border-color); }
.cv-chat-form .form-floating > textarea.form-control {
  height: auto;
  min-height: calc(3.5rem + 2px);
  max-height: 7.5rem;
  overflow-x: hidden;
  overflow-y: hidden;
  resize: none;
  field-sizing: fixed;
  line-height: 1.35;
}
.cv-chat-sugestoes {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  margin: 0 0 10px;
  padding: 0;
  overflow: hidden;
}
.cv-chat-sugestoes.is-aberta { flex-wrap: wrap; overflow: visible; }
.cv-chat-mais { color: var(--bs-secondary-color); }
.cv-chat-sugestoes .cv-chat-cards,
.cv-chat-sugestoes .cv-chat-atalhos { display: contents; }
.cv-chat-sugestoes .cv-chat-card,
.cv-chat-sugestoes .cv-chat-chip {
  flex: 0 0 auto;
  white-space: nowrap;
  background: var(--bs-tertiary-bg);
  border-color: color-mix(in srgb, var(--bs-border-color) 55%, var(--bs-secondary-color));
  color: var(--bs-body-color);
}
.cv-chat-sugestoes .cv-chat-card:hover,
.cv-chat-sugestoes .cv-chat-chip:hover {
  background: color-mix(in srgb, var(--bs-primary) 10%, var(--bs-tertiary-bg));
  border-color: color-mix(in srgb, var(--bs-primary) 35%, var(--bs-border-color));
  color: var(--bs-body-color);
  text-decoration: none;
}
.cv-chat-form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.pc-head-link.border-0 { line-height: 1; }
@media (max-width: 576px) {
  .cv-chat { right: 12px; bottom: 12px; }
  .cv-chat-panel { width: calc(100vw - 24px); }
}

.cv-destaque {
  position: relative;
  z-index: 5;
  border-radius: 12px;
  outline: 3px solid var(--bs-primary);
  outline-offset: 4px;
  box-shadow: 0 0 0 8px rgba(var(--bs-primary-rgb), 0.18);
  animation: cvDestaque 1.1s ease 3;
}
@keyframes cvDestaque {
  0%, 100% { outline-offset: 4px; }
  50% { outline-offset: 10px; }
}

/* Controles de fala + STS: tokens no tema (body/html), N�O no componente.
   Redefinir --cvd-* em .cv-direcao-form ganhava do escuro quando o Able
   pintava form/card de branco, ou quando o seletor descendente falhava. */
:root {
  --cvd-ok: #1a7f4b;
  --cvd-aviso: #9a5b00;
  --cvd-erro: #c0352b;
  --cvd-painel: #d5deea;
  --cvd-caixa: #eef3f8;
  --cvd-borda: #8fa0b3;
  --cvd-texto: #15202b;
  --cvd-apoio: #3a4a5b;
  --cvd-chip-bg: #fff;
  --cvd-chip-borda: #8fa0b3;
  --cvd-chip-texto: #15202b;
  --cvd-chip-hover: #4a5c70;
  --cvd-chip-on-bg: #15202b;
  --cvd-chip-on-texto: #fff;
  --cvd-valor-bg: #fff;
  --cvd-valor-borda: #8fa0b3;
  --cvd-valor-cor: #1d4ed8;
  --cvd-trilho: #2c3d50;
  --cvd-barra: #9aabbc;
  --cvd-acento: #1554e0;
  --cvd-thumb: #fff;
}
html[data-pc-theme="dark"],
body[data-pc-theme="dark"],
html:has(body[data-pc-theme="dark"]) {
  --cvd-ok: #5fd39a;
  --cvd-aviso: #f2b45a;
  --cvd-erro: #ff8a80;
  --cvd-painel: #151c26;
  --cvd-caixa: #1c2532;
  --cvd-borda: #3d4b5c;
  --cvd-texto: #e8eef6;
  --cvd-apoio: #b7c3d2;
  --cvd-chip-bg: #243040;
  --cvd-chip-borda: #4a5a6c;
  --cvd-chip-texto: #e8eef6;
  --cvd-chip-hover: #8ea0b4;
  --cvd-chip-on-bg: #e8eef6;
  --cvd-chip-on-texto: #131920;
  --cvd-valor-bg: #10161e;
  --cvd-valor-borda: #4a5a6c;
  --cvd-valor-cor: #9cc0ff;
  --cvd-trilho: #3a4a5c;
  --cvd-barra: #2a3544;
  --cvd-acento: #5aa4ff;
  --cvd-thumb: #fff;
}
.cv-direcao {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.75rem;
  color: var(--cvd-texto);
}
.cv-direcao-presets,
.cv-direcao-switch,
.cv-direcao > p {
  grid-column: 1 / -1;
}
.cv-direcao-presets {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--cvd-borda);
  border-radius: 14px;
  background: var(--cvd-caixa) !important;
}
.cv-direcao-presets-lista,
.cv-direcao-escolha {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.cv-direcao-rotulo,
.cv-direcao label,
.cv-direcao .form-check-label {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  color: var(--cvd-texto);
}
.cv-direcao-chip {
  border: 2px solid var(--cvd-chip-borda);
  background: var(--cvd-chip-bg);
  color: var(--cvd-chip-texto);
  border-radius: 999px;
  padding: 0.42rem 0.9rem;
  font-size: 0.875rem;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
}
.cv-direcao-chip:hover {
  border-color: var(--cvd-chip-hover);
  color: var(--cvd-texto);
}
.cv-direcao-chip.is-on,
.cv-direcao-escolha .btn-check:checked + .cv-direcao-chip {
  background: var(--cvd-chip-on-bg);
  border-color: var(--cvd-chip-on-bg);
  color: var(--cvd-chip-on-texto);
}
.cv-direcao-item {
  margin: 0;
  padding: 0.75rem 0.85rem 0.65rem;
  border: 1px solid var(--cvd-borda);
  border-radius: 14px;
  background: var(--cvd-caixa) !important;
}
.cv-direcao .form-text,
.cv-direcao-item .form-text,
.cv-direcao-switch .form-text {
  margin-top: 0.25rem;
  margin-bottom: 0;
  font-size: 0.75rem;
  line-height: 1.35;
  color: var(--cvd-apoio);
}
.cv-direcao-valor {
  min-width: 3.6rem;
  padding: 0.18rem 0.55rem;
  border: 0;
  border-radius: 999px;
  background: var(--cvd-acento);
  color: #fff;
  font-variant-numeric: tabular-nums;
  font-size: 0.8125rem;
  font-weight: 800;
  text-align: center;
  line-height: 1.2;
}
.cv-direcao-extremos {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.2rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--cvd-apoio);
}
.cv-direcao input[type="range"],
.cv-direcao input[type="range"].form-range {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 32px;
  margin: 0.45rem 0 0;
  padding: 0;
  accent-color: var(--cvd-acento);
  background:
    linear-gradient(var(--cvd-acento), var(--cvd-acento)) 0 50% / var(--cv-range, 40%) 16px no-repeat,
    linear-gradient(var(--cvd-trilho), var(--cvd-trilho)) 0 50% / 100% 16px no-repeat !important;
  border-radius: 999px;
  outline: none;
  cursor: pointer;
}
.cv-direcao input[type="range"]::-webkit-slider-runnable-track,
.cv-direcao input[type="range"].form-range::-webkit-slider-runnable-track {
  width: 100%;
  height: 16px;
  border: 0;
  border-radius: 999px;
  background: transparent !important;
}
.cv-direcao input[type="range"]::-webkit-slider-thumb,
.cv-direcao input[type="range"].form-range::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 26px;
  height: 26px;
  margin-top: -5px;
  border: 4px solid #fff !important;
  border-radius: 50%;
  background-color: var(--cvd-acento) !important;
  box-shadow: 0 0 0 2px var(--cvd-trilho), 0 2px 10px rgba(19, 25, 32, 0.55);
}
.cv-direcao input[type="range"]:focus-visible::-webkit-slider-thumb,
.cv-direcao input[type="range"].form-range:focus-visible::-webkit-slider-thumb {
  box-shadow: 0 0 0 3px rgba(21, 84, 224, 0.45), 0 2px 8px rgba(19, 25, 32, 0.45);
}
.cv-direcao input[type="range"]::-moz-range-track,
.cv-direcao input[type="range"].form-range::-moz-range-track {
  height: 14px;
  border: 0;
  border-radius: 999px;
  background: var(--cvd-trilho) !important;
}
.cv-direcao input[type="range"]::-moz-range-progress,
.cv-direcao input[type="range"].form-range::-moz-range-progress {
  height: 14px;
  border-radius: 999px;
  background: var(--cvd-acento) !important;
}
.cv-direcao input[type="range"]::-moz-range-thumb,
.cv-direcao input[type="range"].form-range::-moz-range-thumb {
  width: 24px;
  height: 24px;
  border: 3px solid #fff;
  border-radius: 50%;
  background: var(--cvd-acento);
  box-shadow: 0 0 0 2px var(--cvd-trilho), 0 2px 8px rgba(19, 25, 32, 0.45);
}
.cv-direcao-switch {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  column-gap: 0.85rem;
  row-gap: 0.1rem;
  align-items: center;
  margin: 0;
  min-height: 0;
  padding: 0.85rem 1rem !important;
  border: 1px solid var(--cvd-borda);
  border-radius: 14px;
  background: var(--cvd-caixa) !important;
}
.cv-direcao-switch .form-check-input {
  float: none !important;
  position: static;
  grid-column: 1;
  grid-row: 1 / span 2;
  align-self: center;
  width: 2.6em;
  height: 1.4em;
  margin: 0 !important;
}
.cv-direcao-switch .form-check-label {
  grid-column: 2;
  grid-row: 1;
  margin: 0;
  padding: 0;
}
.cv-direcao-switch .form-text {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
}
.cv-direcao-form {
  padding: 0.85rem 1rem;
  border: 1px solid var(--cvd-borda);
  border-radius: 0.75rem;
  background: var(--cvd-painel) !important;
  color: var(--cvd-texto);
}
/* Dark: cores s�lidas, sem depender de heran�a de --cvd-* (Able pinta form/card de branco). */
html[data-pc-theme="dark"] .cv-direcao-form,
body[data-pc-theme="dark"] .cv-direcao-form,
[data-pc-theme="dark"] .cv-direcao-form {
  background: #151c26 !important;
  border-color: #4a5a6c !important;
  color: #e8eef6 !important;
}
html[data-pc-theme="dark"] .cv-direcao-item,
html[data-pc-theme="dark"] .cv-direcao-presets,
html[data-pc-theme="dark"] .cv-direcao-switch,
body[data-pc-theme="dark"] .cv-direcao-item,
body[data-pc-theme="dark"] .cv-direcao-presets,
body[data-pc-theme="dark"] .cv-direcao-switch,
[data-pc-theme="dark"] .cv-direcao-item,
[data-pc-theme="dark"] .cv-direcao-presets,
[data-pc-theme="dark"] .cv-direcao-switch {
  background: #1c2532 !important;
  border-color: #4a5a6c !important;
  color: #e8eef6 !important;
}
html[data-pc-theme="dark"] .cv-direcao-rotulo,
html[data-pc-theme="dark"] .cv-direcao label,
html[data-pc-theme="dark"] .cv-direcao .form-check-label,
html[data-pc-theme="dark"] .cv-direcao-form h6,
body[data-pc-theme="dark"] .cv-direcao-rotulo,
body[data-pc-theme="dark"] .cv-direcao label,
body[data-pc-theme="dark"] .cv-direcao .form-check-label,
body[data-pc-theme="dark"] .cv-direcao-form h6,
[data-pc-theme="dark"] .cv-direcao-rotulo,
[data-pc-theme="dark"] .cv-direcao label,
[data-pc-theme="dark"] .cv-direcao .form-check-label,
[data-pc-theme="dark"] .cv-direcao-form h6 {
  color: #e8eef6 !important;
}
html[data-pc-theme="dark"] .cv-direcao .form-text,
html[data-pc-theme="dark"] .cv-direcao-item .form-text,
html[data-pc-theme="dark"] .cv-sts-ajuda,
html[data-pc-theme="dark"] .cv-sts .form-text,
body[data-pc-theme="dark"] .cv-direcao .form-text,
body[data-pc-theme="dark"] .cv-direcao-item .form-text,
body[data-pc-theme="dark"] .cv-sts-ajuda,
[data-pc-theme="dark"] .cv-direcao .form-text,
[data-pc-theme="dark"] .cv-sts-ajuda {
  color: #b7c3d2 !important;
}
html[data-pc-theme="dark"] .cv-direcao-chip,
body[data-pc-theme="dark"] .cv-direcao-chip,
[data-pc-theme="dark"] .cv-direcao-chip {
  background: #243040 !important;
  border-color: #4a5a6c !important;
  color: #e8eef6 !important;
}
html[data-pc-theme="dark"] .cv-direcao-chip.is-on,
html[data-pc-theme="dark"] .cv-direcao-escolha .btn-check:checked + .cv-direcao-chip,
body[data-pc-theme="dark"] .cv-direcao-chip.is-on,
[data-pc-theme="dark"] .cv-direcao-chip.is-on,
[data-pc-theme="dark"] .cv-direcao-escolha .btn-check:checked + .cv-direcao-chip {
  background: #e8eef6 !important;
  border-color: #e8eef6 !important;
  color: #131920 !important;
}
html[data-pc-theme="dark"] .cv-direcao-valor,
body[data-pc-theme="dark"] .cv-direcao-valor,
[data-pc-theme="dark"] .cv-direcao-valor {
  background: #5aa4ff !important;
  color: #0b1220 !important;
}
html[data-pc-theme="dark"] .cv-direcao input[type="range"],
html[data-pc-theme="dark"] .cv-direcao input[type="range"].form-range,
body[data-pc-theme="dark"] .cv-direcao input[type="range"],
[data-pc-theme="dark"] .cv-direcao input[type="range"],
[data-pc-theme="dark"] .cv-direcao input[type="range"].form-range {
  background:
    linear-gradient(#5aa4ff, #5aa4ff) 0 50% / var(--cv-range, 40%) 16px no-repeat,
    linear-gradient(#3a4a5c, #3a4a5c) 0 50% / 100% 16px no-repeat !important;
}
html[data-pc-theme="dark"] .cv-direcao input[type="range"]::-webkit-slider-thumb,
html[data-pc-theme="dark"] .cv-direcao input[type="range"].form-range::-webkit-slider-thumb,
body[data-pc-theme="dark"] .cv-direcao input[type="range"]::-webkit-slider-thumb,
[data-pc-theme="dark"] .cv-direcao input[type="range"]::-webkit-slider-thumb,
[data-pc-theme="dark"] .cv-direcao input[type="range"].form-range::-webkit-slider-thumb {
  background-color: #5aa4ff !important;
  border: 4px solid #fff !important;
}
html[data-pc-theme="dark"] .cv-sts,
body[data-pc-theme="dark"] .cv-sts,
[data-pc-theme="dark"] .cv-sts {
  background: #151c26 !important;
  border-color: #4a5a6c !important;
  color: #e8eef6 !important;
}
html[data-pc-theme="dark"] .cv-sts-off,
html[data-pc-theme="dark"] .cv-sts-base,
html[data-pc-theme="dark"] .cv-sts-progresso,
html[data-pc-theme="dark"] .cv-sts-aviso,
body[data-pc-theme="dark"] .cv-sts-off,
[data-pc-theme="dark"] .cv-sts-off,
[data-pc-theme="dark"] .cv-sts-base,
[data-pc-theme="dark"] .cv-sts-aviso {
  background: #1c2532 !important;
  border-color: #4a5a6c !important;
  color: #e8eef6 !important;
}
.cv-direcao-form h6,
.cv-direcao-form .form-label {
  color: var(--cvd-texto);
}
.cv-direcao-pedido {
  margin-top: 0.75rem;
  border: 1px solid var(--cvd-borda);
  border-radius: 14px;
  background: var(--bs-body-bg);
  overflow: hidden;
}
.cv-direcao-pedido-toggle {
  width: 100%;
  border: 0;
  background: var(--cvd-caixa);
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.85rem 1rem;
  font-weight: 650;
  color: var(--cvd-texto);
  text-align: left;
}
.cv-direcao-pedido-toggle .ti-chevron-down { transition: transform 0.15s ease; }
.cv-direcao-pedido-toggle[aria-expanded="true"] .ti-chevron-down { transform: rotate(180deg); }
.cv-direcao-pedido-painel { padding: 0.85rem 1rem 1rem; }

/* Caixas do studio (off, produ��o, demos, envio de originais): borda leg�vel nos dois temas. */
.cv-studio-caixa,
.cv-studio-upload {
  border: 1px solid var(--cvd-borda);
  border-radius: 12px;
  background: var(--cvd-painel) !important;
  color: var(--cvd-texto);
}
.cv-studio-caixa h6,
.cv-studio-upload h6 { color: var(--cvd-texto); }
.cv-studio-caixa .text-muted,
.cv-studio-upload .text-muted { color: var(--cvd-apoio) !important; }
.pc-content code:not(pre code) { color: #c2185b; }
[data-pc-theme="dark"] .pc-content code:not(pre code) { color: #ff8fb9; }
.form-floating.cv-studio-estilo-pick > .form-select ~ label { opacity: 1; color: var(--bs-secondary-color); }
.cv-link-forte { color: #1e50c8; text-decoration: underline; text-underline-offset: 2px; }
.cv-link-forte:hover { color: #123a99; }
[data-pc-theme="dark"] .cv-link-forte { color: #a9c6ff; }
[data-pc-theme="dark"] .cv-link-forte:hover { color: #d3e2ff; }

/* Base de clone por STS (ElevenLabs) */
.cv-sts {
  border: 1px solid var(--cvd-borda);
  border-radius: 14px;
  background: var(--cvd-painel) !important;
  color: var(--cvd-texto);
}
.cv-sts-resumo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  width: 100%;
  margin: 0;
  padding: 0.85rem 1rem;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  font: inherit;
  font-weight: 650;
  color: var(--cvd-texto);
  text-align: left;
  cursor: pointer;
}
.cv-sts-resumo:not(.collapsed) {
  border-bottom-color: var(--cvd-borda);
}
.cv-sts-resumo.collapsed .cv-secao-chevron {
  transform: rotate(-90deg);
}
.cv-sts-corpo { padding: 1rem; }
.cv-sts-ajuda,
.cv-sts .form-text { color: var(--cvd-apoio); font-size: 0.8125rem; }
.cv-sts-passo {
  margin: 1.1rem 0 0.5rem;
  font-size: 0.8rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--cvd-apoio);
}
.cv-sts-lista { display: flex; flex-direction: column; gap: 0.5rem; }
.cv-sts-off {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.75rem;
  align-items: center;
  padding: 0.6rem 0.8rem;
  border: 1px solid var(--cvd-borda);
  border-radius: 12px;
  background: var(--cvd-caixa);
}
.cv-sts-off.is-on { border-color: var(--cvd-acento); }
.cv-sts-check { margin: 0; min-height: 0; }
.cv-sts-check .form-check-label {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.6rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--cvd-texto);
  cursor: pointer;
}
.cv-sts-check .form-check-input { border-color: var(--cvd-chip-hover); background-color: var(--cvd-chip-bg); }
.cv-sts-check .form-check-input:checked { border-color: var(--cvd-acento); background-color: var(--cvd-acento); }
.cv-sts-dur {
  font-size: 0.75rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--cvd-apoio);
}
.cv-sts-medidor { margin-top: 1rem; }
.cv-sts-trilho {
  position: relative;
  height: 14px;
  border-radius: 999px;
  background: var(--cvd-barra);
}
.cv-sts-fill {
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  border-radius: 999px;
  background: var(--cvd-acento);
  transition: width 0.25s ease, background-color 0.2s ease;
}
.cv-sts-medidor[data-estado="ok"] .cv-sts-fill { background: var(--cvd-ok); }
.cv-sts-medidor[data-estado="curto"] .cv-sts-fill { background: var(--cvd-aviso); }
.cv-sts-medidor[data-estado="excesso"] .cv-sts-fill { background: var(--cvd-erro); }
.cv-sts-marca {
  position: absolute;
  top: -3px;
  bottom: -3px;
  width: 2px;
  border-radius: 1px;
  background: var(--cvd-texto);
  opacity: 0.4;
}
.cv-sts-legenda {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.25rem 0.75rem;
  margin-top: 0.45rem;
  font-size: 0.75rem;
  font-variant-numeric: tabular-nums;
  color: var(--cvd-apoio);
}
.cv-sts-legenda strong { color: var(--cvd-texto); }
.cv-sts-dica { margin-top: 0.2rem; font-size: 0.75rem; font-weight: 600; color: var(--cvd-apoio); }
.cv-sts-medidor[data-estado="ok"] .cv-sts-dica { color: var(--cvd-ok); }
.cv-sts-medidor[data-estado="curto"] .cv-sts-dica { color: var(--cvd-aviso); }
.cv-sts-medidor[data-estado="excesso"] .cv-sts-dica { color: var(--cvd-erro); }
.cv-sts-base,
.cv-sts-progresso {
  margin-top: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--cvd-borda);
  border-radius: 12px;
  background: var(--cvd-caixa);
}
.cv-sts-base-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.65rem 0.85rem;
  margin-bottom: 0.85rem;
}
.cv-sts-base-id { max-width: min(100%, 220px); vertical-align: bottom; }
.cv-sts-amostras {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}
.cv-sts-amostra {
  grid-template-columns: minmax(0, 1fr) auto;
}
.cv-sts-amostra-meta {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}
.cv-sts-amostra-titulo {
  font-size: 0.875rem;
  font-weight: 650;
  color: var(--cvd-texto);
}
.cv-sts-play {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
  white-space: nowrap;
}
.cv-sts-play.is-playing {
  background: var(--bs-primary);
  border-color: var(--bs-primary);
  color: #fff;
}
.cv-sts-play.is-playing .ti { color: inherit; }
.cv-sts-audio-wrap {
  grid-column: 1 / -1;
  margin-top: 0.35rem;
}
.cv-sts-audio-wrap .plyr,
.cv-sts-audio-wrap audio {
  width: 100%;
}
.cv-sts-msg { margin-top: 0.55rem; font-size: 0.8125rem; font-weight: 600; color: var(--cvd-texto); }
.cv-sts-msg.is-erro { color: var(--cvd-erro); }
.cv-sts-falhas { margin: 0.4rem 0 0; padding-left: 1.1rem; font-size: 0.75rem; color: var(--cvd-erro); }
.cv-sts-aviso {
  margin-top: 1rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid var(--cvd-borda);
  border-left: 3px solid var(--cvd-aviso);
  border-radius: 10px;
  background: var(--cvd-caixa);
  font-size: 0.8125rem;
  color: var(--cvd-texto);
}
@media (max-width: 767px) {
  .cv-sts-off { grid-template-columns: 1fr; }
}
@media (max-width: 767px) {
  .cv-direcao { grid-template-columns: 1fr; }
  .cv-voz-foco-linha { flex-direction: column; }
  .cv-voz-rever {
    flex-direction: row;
    width: 100%;
    flex-basis: auto;
    min-height: 88px;
  }
}

/* Cria��o de conta ? cards centralizados, um acima do outro */
.auth-scene-body .auth-main .cv-cadastro-stack.auth-wrapper.v1 {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: safe center;
  width: 100%;
  max-width: none;
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  padding: 32px 16px;
  box-sizing: border-box;
  gap: 18px;
}
.auth-scene-body .auth-main .cv-cadastro-stack.auth-wrapper.v1 > .cv-cadastro-palco,
.auth-scene-body .auth-main .cv-cadastro-stack.auth-wrapper.v1 > .auth-form {
  width: min(480px, 100%);
  max-width: 480px;
  margin-inline: auto;
}
.auth-scene-body .auth-main .cv-cadastro-stack.auth-wrapper.v1 .auth-form {
  flex: 0 0 auto;
  align-self: center;
  min-height: 0;
  width: min(480px, 100%);
  max-width: 480px;
  padding: 0;
  background: none;
  display: flex;
  justify-content: flex-start;
}
.auth-scene-body .auth-form .card,
.auth-scene-body .cv-cadastro-palco .card {
  background: #fff;
  --bs-card-bg: #fff;
  --bs-card-color: #1d2630;
  color: #1d2630;
}
.auth-scene-body .cv-cadastro-stack .auth-form .card {
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}
.cv-cadastro-palco {
  width: 100%;
  color: inherit;
}
.auth-scene-body .cv-cadastro-palco .card {
  width: 100%;
  max-width: 480px;
  margin: 0;
  box-shadow: 0 28px 72px rgba(0, 0, 0, 0.42);
  border: 1px solid rgba(255, 255, 255, 0.12);
}
.auth-scene-body .cv-cadastro-palco .card-body {
  padding: 8px 10px 10px;
}
.cv-cadastro-intro {
  text-align: center;
  padding: 16px 14px 12px;
}
.cv-cadastro-conta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-bottom: 1.15rem;
}
.cv-cadastro-conta-texto {
  min-width: 0;
  text-align: left;
}
.cv-cadastro-mascote-btn {
  position: relative;
  flex: none;
  width: 74px;
  height: 86px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.cv-cadastro-mascote-btn .cv-mascote-host {
  position: absolute;
  left: 50%;
  top: 46%;
  width: 210px;
  height: 250px;
  transform: translate(-50%, -50%) scale(0.34);
  pointer-events: none;
}
.cv-cadastro-mascote-btn .cv-mascote-waves {
  display: none !important;
}
.auth-scene-body .auth-form .cv-cadastro-conta-titulo {
  margin: 0;
  font-family: "Plus Jakarta Sans", "Segoe UI", sans-serif;
  font-size: 1.42rem;
  font-weight: 700;
  letter-spacing: -0.045em;
  line-height: 1.15;
  color: #152033;
}
.cv-cadastro-intro .cv-auth-logo {
  display: inline-block;
  max-height: 4.6rem;
  width: auto;
  max-width: 82%;
  margin-bottom: 14px;
}
.cv-cadastro-intro h2 {
  margin: 0 0 8px;
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.2;
  color: #1d2630;
}
.cv-cadastro-intro p {
  margin: 0;
  color: #5b6b82;
  font-size: 15px;
  line-height: 1.4;
}
.cv-cadastro-intro p + p {
  margin-top: 3px;
}
.cv-cadastro-intro p:last-of-type {
  margin-bottom: 12px;
}
.cv-cadastro-fatos {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.cv-cadastro-fatos li {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px;
  border-radius: 999px;
  background: #f3f6fb;
  color: #314056;
  font-size: 12px;
  font-weight: 600;
}
.cv-cadastro-fatos .ti {
  font-size: 14px;
  color: #2f7bff;
}
.cv-cadastro-fatos .ti-brand-whatsapp {
  color: #1da851;
}
.cv-cadastro-intro + .cv-cadastro-linhas {
  border-top: 1px solid rgba(15, 23, 42, 0.06);
  margin-top: 12px;
  padding-top: 6px;
}
.cv-cadastro-palco .plyr,
.cv-cadastro-palco audio {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  border: 0 !important;
  pointer-events: none !important;
}
.cv-cadastro-linhas {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.cv-cadastro-linha {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  text-align: left;
  padding: 8px 10px;
  border-radius: 12px;
  border: 0;
  background: transparent;
  color: #1d2630;
  cursor: pointer;
}
.cv-cadastro-linha:hover {
  background: #f4f7fb;
}
.cv-cadastro-linha.is-ativa {
  background: #eef4ff;
}
.cv-cadastro-foto {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  flex: none;
}
.cv-voz-rosto {
  position: relative;
  overflow: hidden;
  line-height: 0;
}
.cv-voz-rosto > .cv-voz-rosto-still {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  display: block;
}
.cv-voz-rosto > .cv-voz-rosto-vivo {
  display: none;
  position: absolute;
  inset: 0;
  background: #0f172a;
}
.cv-voz-rosto.is-locutando > .cv-voz-rosto-still {
  visibility: hidden;
}
.cv-voz-rosto.is-locutando > .cv-voz-rosto-vivo {
  display: block;
}
.cv-voz-rosto > .cv-voz-rosto-vivo svg {
  width: 100%;
  height: 100%;
  display: block;
}
.cv-cadastro-linha-play {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  display: inline-grid;
  place-items: center;
  background: #2f7bff;
  color: #fff;
  font-size: 16px;
  flex: none;
}
.cv-cadastro-linha .ti-player-pause { display: none; }
.cv-cadastro-linha.is-tocando .ti-player-play { display: none; }
.cv-cadastro-linha.is-tocando .ti-player-pause { display: block; }
.cv-cadastro-linha-txt {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
.cv-cadastro-linha-txt strong {
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cv-cadastro-linha-txt small {
  color: #6b7a90;
  font-size: 12px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.cv-cadastro-linha-bar {
  display: block;
  flex: 1;
  height: 3px;
  border-radius: 99px;
  background: #e7edf5;
  overflow: hidden;
}
.cv-cadastro-linha-bar span {
  display: block;
  height: 100%;
  width: 0;
  background: #2f7bff;
}
@media (max-width: 991.98px) {
  .auth-scene-body .cv-cadastro-stack {
    padding-top: 16px;
  }
}
@media (max-width: 575.98px) {
  .auth-scene-body .cv-cadastro-palco .card-body {
    padding: 8px;
  }
}

/* =========================================================================
   JINGLES ? Cards de modo de alta fidelidade visual (estilo painel cl�ssico)
   ========================================================================= */
.cv-jingle-header-wrap {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.cv-jingle-autocorrecao-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: rgba(255, 255, 255, 0.9);
  padding: 4px 12px;
  border-radius: 30px;
  border: 1px solid rgba(0, 0, 0, 0.08);
  font-size: 13px;
  font-weight: 600;
  color: #334155;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.03);
}
.cv-jingle-pill-btn {
  border: none;
  background: transparent;
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  color: #64748b;
}
.cv-jingle-pill-btn.active.is-ativa {
  background: #2563eb;
  color: #fff;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.35);
}
.cv-jingle-pill-btn.active.is-inativa {
  background: #dc2626;
  color: #fff;
  box-shadow: 0 2px 8px rgba(220, 38, 38, 0.35);
}

.cv-jingle-card-modo {
  position: relative;
  display: flex;
  align-items: center;
  padding: 16px 18px;
  border-radius: 16px;
  border: 2px solid transparent;
  background: #fff;
  cursor: pointer;
  transition: all 0.28s cubic-bezier(0.16, 1, 0.3, 1);
  text-decoration: none;
  height: 100%;
}
.cv-jingle-card-modo:hover {
  transform: translateY(-3px);
  text-decoration: none;
}
.cv-jingle-card-modo .form-check-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cv-jingle-radio-custom {
  width: 20px;
  height: 20px;
  min-width: 20px;
  border-radius: 50%;
  border: 2px solid #cbd5e1;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 12px;
  transition: all 0.2s ease;
}
.cv-jingle-radio-custom::after {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: transparent;
  transition: all 0.2s ease;
}
.cv-jingle-card-modo.is-selected .cv-jingle-radio-custom {
  border-color: currentColor;
}
.cv-jingle-card-modo.is-selected .cv-jingle-radio-custom::after {
  background: currentColor;
}

.cv-jingle-icone-circulo {
  width: 60px;
  height: 60px;
  min-width: 60px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-right: 14px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
  border: 2px solid #fff;
  overflow: hidden;
  flex-shrink: 0;
}
.cv-jingle-modo-corpo {
  flex: 1;
  min-width: 0;
}
.cv-jingle-modo-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.cv-jingle-modo-titulo {
  font-size: 16px;
  font-weight: 700;
  color: #0f172a;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}
.cv-jingle-modo-badge {
  font-size: 11px;
  font-weight: 700;
  padding: 2px 8px;
  border-radius: 6px;
  letter-spacing: 0.3px;
}
.cv-jingle-modo-desc {
  font-size: 12.5px;
  line-height: 1.45;
  color: #334155;
  margin: 0;
  font-weight: 500;
}

/* Modos Tem�ticos */
.cv-jingle-card-modo--politico {
  background: #fefce8;
  border-color: #fef08a;
  color: #ca8a04;
}
.cv-jingle-card-modo--politico:hover {
  border-color: #eab308;
  box-shadow: 0 10px 24px rgba(234, 179, 8, 0.18);
}
.cv-jingle-card-modo--politico.is-selected {
  border-color: #ca8a04;
  background: #fef9c3;
  box-shadow: 0 10px 24px rgba(202, 138, 4, 0.22);
}
.cv-jingle-card-modo--politico .cv-jingle-modo-badge {
  background: #fef08a;
  color: #854d0e;
}

.cv-jingle-card-modo--comercial {
  background: #f0fdf4;
  border-color: #bbf7d0;
  color: #16a34a;
}
.cv-jingle-card-modo--comercial:hover {
  border-color: #22c55e;
  box-shadow: 0 10px 24px rgba(34, 197, 94, 0.18);
}
.cv-jingle-card-modo--comercial.is-selected {
  border-color: #16a34a;
  background: #dcfce7;
  box-shadow: 0 10px 24px rgba(22, 163, 74, 0.22);
}
.cv-jingle-card-modo--comercial .cv-jingle-modo-badge {
  background: #bbf7d0;
  color: #166534;
}

.cv-jingle-card-modo--letra {
  background: #fdf2f8;
  border-color: #fbcfe8;
  color: #db2777;
}
.cv-jingle-card-modo--letra:hover {
  border-color: #ec4899;
  box-shadow: 0 10px 24px rgba(236, 72, 153, 0.18);
}
.cv-jingle-card-modo--letra.is-selected {
  border-color: #db2777;
  background: #fce7f3;
  box-shadow: 0 10px 24px rgba(219, 39, 119, 0.22);
}
.cv-jingle-card-modo--letra .cv-jingle-modo-badge {
  background: #fbcfe8;
  color: #9d174d;
}

.cv-jingle-card-modo--musica {
  background: #f0f9ff;
  border-color: #bae6fd;
  color: #0284c7;
}
.cv-jingle-card-modo--musica:hover {
  border-color: #0ea5e9;
  box-shadow: 0 10px 24px rgba(14, 165, 233, 0.18);
}
.cv-jingle-card-modo--musica.is-selected {
  border-color: #0284c7;
  background: #e0f2fe;
  box-shadow: 0 10px 24px rgba(2, 132, 199, 0.22);
}
.cv-jingle-card-modo--musica .cv-jingle-modo-badge {
  background: #bae6fd;
  color: #0369a1;
}

/* Cards de Escolha de Voz (Passo 3) */
.cv-jingle-card-voz {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 24px 18px;
  border: 2px solid var(--bs-border-color);
  border-radius: 16px;
  background: var(--bs-body-bg);
  cursor: pointer;
  transition: all 0.22s ease;
  position: relative;
  height: 100%;
}

.cv-jingle-card-voz:hover {
  transform: translateY(-2px);
  border-color: var(--bs-primary);
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.06);
}

.cv-jingle-card-voz.is-selected {
  border-color: var(--bs-primary);
  background: rgba(var(--bs-primary-rgb), 0.05);
  box-shadow: 0 8px 20px rgba(var(--bs-primary-rgb), 0.15);
}

.cv-jingle-voz-icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  margin-bottom: 12px;
  transition: all 0.2s ease;
}

.cv-jingle-voz-icon--mf {
  background: #f1f5f9;
  color: #475569;
}
.cv-jingle-voz-icon--m {
  background: #e0f2fe;
  color: #0284c7;
}
.cv-jingle-voz-icon--f {
  background: #fce7f3;
  color: #db2777;
}

.cv-jingle-card-voz.is-selected .cv-jingle-voz-icon--mf {
  background: var(--bs-primary);
  color: #fff;
}
.cv-jingle-card-voz.is-selected .cv-jingle-voz-icon--m {
  background: #0284c7;
  color: #fff;
}
.cv-jingle-card-voz.is-selected .cv-jingle-voz-icon--f {
  background: #db2777;
  color: #fff;
}

.cv-jingle-voz-titulo {
  font-size: 15px;
  font-weight: 700;
  color: var(--bs-heading-color);
  margin-bottom: 4px;
}

.cv-jingle-voz-desc {
  font-size: 12.5px;
  color: var(--bs-secondary-color);
  line-height: 1.4;
}

.cv-secao-toggle {
  display: flex;
  align-items: center;
  gap: 0.7rem;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0.15rem 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
  box-shadow: none;
}
.cv-secao-toggle:hover,
.cv-secao-toggle:focus,
.cv-secao-toggle:focus-visible {
  color: inherit;
  background: transparent;
  box-shadow: none;
}
.cv-secao-toggle:focus-visible {
  outline: 2px solid var(--bs-primary);
  outline-offset: 3px;
  border-radius: 8px;
}
.card.cv-secao {
  width: 100%;
  max-width: none;
  align-items: stretch;
}
.card.cv-secao > .card-header,
.card.cv-secao > .collapse,
.card.cv-secao > .collapsing,
.card.cv-secao > .collapse > .card-body,
.card.cv-secao > .collapsing > .card-body {
  width: 100%;
  max-width: none;
  min-width: 0;
  align-self: stretch;
  box-sizing: border-box;
}
.card.cv-secao > .card-header {
  display: block;
}
.card.cv-secao > .collapse > .card-body {
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.card.cv-secao > .collapse > .card-body > * {
  width: 100%;
  max-width: 100%;
  align-self: stretch;
  box-sizing: border-box;
}
.card-header .d-flex > .cv-secao-toggle,
.cv-estilo-head > .cv-secao-toggle {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
}
.cv-estilo-head {
  display: flex;
  flex: 1 1 100%;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
}
.cv-estilo-head > .cv-secao-toggle {
  min-width: 12rem;
}
.cv-estilo-head .cv-secao-toggle > .d-flex {
  min-width: 0;
  flex: 1 1 auto;
}
.cv-estilo-head h5 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}
.cv-estilo-acoes {
  display: flex;
  flex: 1 1 auto;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.5rem;
  margin-left: auto;
}
.cv-estilo-pub {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.4fr) auto;
  gap: 0.75rem;
  align-items: end;
  width: 100%;
}
.cv-estilo-pub .btn { white-space: nowrap; }
@media (max-width: 991.98px) {
  .cv-estilo-pub { grid-template-columns: 1fr; }
}
.cv-secao-toggle h5,
.cv-secao-toggle small {
  margin-bottom: 0;
}
.cv-secao-chevron {
  flex: 0 0 auto;
  font-size: 1.15rem;
  line-height: 1;
  transition: transform 0.2s ease;
}
.cv-secao-toggle.collapsed .cv-secao-chevron {
  transform: rotate(-90deg);
}
.cv-estilo-bloco {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
  border: 1px solid var(--bs-border-color, #dbe0e5);
  border-radius: 0.75rem;
  padding: 0.85rem 1rem;
  background: var(--bs-body-bg, #fff);
}
.cv-estilo-bloco > summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
}
.cv-estilo-bloco > summary::-webkit-details-marker { display: none; }
.cv-estilo-bloco > summary::before {
  content: "";
  display: inline-block;
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(-45deg);
  vertical-align: 0.15rem;
}
.cv-estilo-bloco[open] > summary::before { transform: rotate(45deg); }
.cv-sts-off audio { grid-column: 1 / -1; }
.cv-sts-filtro {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin: 0.75rem 0;
}
.cv-sts-filtro .form-control { flex: 1 1 16rem; max-width: none; min-width: 12rem; }
.cv-sts { display: block; width: 100%; max-width: none; box-sizing: border-box; align-self: stretch; }
.cv-sts-demo {
  width: 100%;
  margin: 0 0 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid var(--cvd-borda);
  border-radius: 12px;
  box-sizing: border-box;
}
.cv-sts-off[hidden] { display: none !important; }
#pedirVozFocoSlot .cv-estilo-chip {
  flex: 1 1 12rem;
  max-width: min(100%, 320px);
}

/* Relat�rios admin ? containers ApexCharts */
.cv-relatorios-chart {
  min-height: 280px;
}
.cv-relatorios-chart--area {
  min-height: 240px;
}
.cv-relatorios-chart .apexcharts-canvas {
  margin: 0 auto;
}
.cv-relatorios-nav .profile-tabs {
  flex-wrap: wrap;
  border-bottom: 0;
}
.cv-relatorios-nav .profile-tabs .nav-link {
  border: 0;
  border-radius: 0;
  padding: .95rem 1.1rem;
  white-space: nowrap;
}
.cv-kpi-deltas {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .55rem;
}
.cv-kpi-delta {
  display: inline-flex;
  align-items: center;
  padding: .12rem .45rem;
  border-radius: 999px;
  font-size: .68rem;
  font-weight: 650;
  letter-spacing: .01em;
  background: rgba(108, 117, 125, .12);
  color: var(--bs-secondary-color);
}
.cv-kpi-delta.is-up { background: rgba(44, 168, 127, .16); color: #1f8f6b; }
.cv-kpi-delta.is-down { background: rgba(220, 53, 69, .14); color: #c43242; }
[data-pc-theme=dark] .cv-kpi-delta.is-up { color: #7dcea0; }
[data-pc-theme=dark] .cv-kpi-delta.is-down { color: #f5a3ab; }
.cv-compra {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .15rem;
}
.cv-compra-tags {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .35rem;
}
.badge.cv-compra-tag {
  display: inline-flex;
  align-items: center;
  width: auto;
  max-width: max-content;
  flex: 0 0 auto;
  font-size: .875rem;
  font-weight: 600;
  line-height: 1.25;
  padding: .4rem .65rem;
  text-decoration: none;
}
a.badge.cv-compra-tag:hover { color: inherit; }
.cv-compra-nome {
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.35;
}
.cv-compra-mail {
  color: var(--bs-secondary-color);
  font-size: .8125rem;
  line-height: 1.35;
}
.cv-compra-legenda {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem .75rem;
  color: var(--bs-secondary-color);
}
.cv-gw {
  display: inline-flex;
  width: 1.7rem;
  height: 1.7rem;
  align-items: center;
  justify-content: center;
}
.cv-gw svg { width: 1.7rem; height: 1.7rem; display: block; }
.cv-gw--pix {
  border-radius: .4rem;
  background: rgba(44, 168, 127, .15);
  color: #1f8f6b;
}
#cvFaturaModal .list-group-item,
.cv-fatura-painel .list-group-item {
  background: transparent;
  color: inherit;
}
.cv-rel-bar {
  height: .45rem;
  border-radius: 999px;
  background: rgba(70, 128, 255, .12);
  overflow: hidden;
}
.cv-rel-bar span {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: #4680ff;
}
.cv-rel-rosto,
.cv-rel-rosto.cv-locutor-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 52px;
  background: #0f172a;
  display: block;
}
.cv-rel-rosto img,
.cv-rel-rosto svg {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
}
.cv-rel-rosto-letra {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: #4680ff;
  background: rgba(70, 128, 255, .12);
}
.cv-rel-voz-metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .5rem;
  margin-bottom: .85rem;
}
.cv-rel-voz-metrics > div {
  min-width: 0;
  padding: .55rem .65rem;
  border-radius: .65rem;
  background: rgba(var(--bs-body-color-rgb, 15, 23, 42), .04);
}
.cv-rel-voz-metrics b {
  display: block;
  font-size: .95rem;
  font-weight: 700;
  line-height: 1.2;
}
.cv-rel-voz-metrics span {
  display: block;
  margin-top: .15rem;
  color: var(--bs-secondary-color);
  font-size: .75rem;
}
.cv-rel-custos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .65rem;
}
.cv-rel-custos > div {
  min-width: 0;
  padding-top: .45rem;
  border-top: 2px solid rgba(70, 128, 255, .45);
}
.cv-rel-custos > div.is-total { border-top-color: #2ca87f; }
.cv-rel-custos span,
.cv-rel-custos small {
  display: block;
  color: var(--bs-secondary-color);
  font-size: .75rem;
  line-height: 1.3;
}
.cv-rel-custos b {
  display: block;
  margin: .1rem 0;
  font-size: .95rem;
  font-weight: 700;
}
.cv-rel-locutor {
  margin-top: .85rem;
  padding-top: .75rem;
  border-top: 1px solid var(--bs-border-color);
  color: var(--bs-secondary-color);
  font-size: .8125rem;
}
.cv-rel-locutor .fw-semibold { color: var(--bs-body-color); }
a.cv-rel-voz:hover { border-color: rgba(70, 128, 255, .45); }
[data-pc-theme=dark] .cv-rel-voz-metrics > div {
  background: rgba(255, 255, 255, .04);
}
@media (max-width: 575.98px) {
  .cv-rel-voz-metrics,
  .cv-rel-custos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cv-rel-custos > div.is-total { grid-column: 1 / -1; }
}

.cv-avatar-editor .profile-tabs {
  flex-wrap: wrap;
  border-bottom: 1px solid var(--bs-border-color);
  gap: 0;
}
.cv-avatar-editor .profile-tabs .nav-link {
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  color: var(--bs-secondary-color);
  font-weight: 600;
  padding: .55rem .8rem;
  background: transparent;
}
.cv-avatar-editor .profile-tabs .nav-link.active {
  color: var(--bs-primary);
  border-bottom-color: var(--bs-primary);
  background: transparent;
}
.cv-avatar-editor .cv-avatar-stage {
  border-radius: 16px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, .16);
}
.cv-avatar-editor .cv-avatar-opt {
  border-radius: 999px;
}
.cv-avatar-editor--simples .card-header h5 {
  font-weight: 700;
}
[data-pc-theme=dark] .cv-avatar-editor .cv-avatar-stage {
  box-shadow: 0 16px 40px rgba(0, 0, 0, .35);
}


/* Pedido conversa — modo (cores distintas dos produtos) + idle apagado */
.cv-modo-grid {
  /* Violet / rose — longe do azul Off e do verde Spot */
  --cv-modo-unica: #7c3aed;
  --cv-modo-unica-2: #a855f7;
  --cv-modo-unica-rgb: 124, 58, 237;
  --cv-modo-conversa: #e11d48;
  --cv-modo-conversa-2: #fb7185;
  --cv-modo-conversa-rgb: 225, 29, 72;
  --cv-modo-mute: #9aa6b5;
  --cv-modo-mute-2: #c5cdd8;
}
.cv-modo-hint {
  font-weight: 600;
}
.cv-modo-card {
  position: relative;
  display: block;
  cursor: pointer;
  border: 2px solid var(--bs-border-color);
  border-radius: 18px;
  padding: 1.1rem 1.15rem 1.15rem;
  height: 100%;
  overflow: hidden;
  background: var(--bs-body-bg);
  box-shadow: 0 8px 18px rgba(15, 23, 42, .06);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease, filter .2s ease, opacity .2s ease;
}
.cv-modo-unica { border-color: rgba(var(--cv-modo-unica-rgb), .28); background: linear-gradient(160deg, rgba(var(--cv-modo-unica-rgb), .07) 0%, rgba(var(--cv-modo-unica-rgb), .02) 55%, var(--bs-body-bg) 100%); box-shadow: 0 8px 20px rgba(var(--cv-modo-unica-rgb), .08); }
.cv-modo-conversa { border-color: rgba(var(--cv-modo-conversa-rgb), .28); background: linear-gradient(160deg, rgba(var(--cv-modo-conversa-rgb), .07) 0%, rgba(var(--cv-modo-conversa-rgb), .02) 55%, var(--bs-body-bg) 100%); box-shadow: 0 8px 20px rgba(var(--cv-modo-conversa-rgb), .08); }
.cv-modo-card::before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .1;
  pointer-events: none;
  transition: opacity .2s ease;
}
.cv-modo-glow {
  position: absolute;
  width: 9rem;
  height: 9rem;
  border-radius: 50%;
  top: -3.5rem;
  right: -2.5rem;
  opacity: .18;
  filter: blur(18px);
  pointer-events: none;
  transition: opacity .25s ease, transform .35s ease;
}
.cv-modo-unica::before {
  background: linear-gradient(135deg, var(--cv-modo-unica) 0%, var(--cv-modo-unica-2) 50%, transparent 72%);
}
.cv-modo-unica .cv-modo-glow {
  background: radial-gradient(circle, rgba(var(--cv-modo-unica-rgb), .65) 0%, transparent 70%);
}
.cv-modo-conversa::before {
  background: linear-gradient(135deg, var(--cv-modo-conversa) 0%, var(--cv-modo-conversa-2) 50%, transparent 72%);
}
.cv-modo-conversa .cv-modo-glow {
  background: radial-gradient(circle, rgba(var(--cv-modo-conversa-rgb), .65) 0%, transparent 70%);
}
.cv-modo-card.is-soon {
  opacity: .72;
  cursor: not-allowed;
  filter: grayscale(.2);
}
.cv-modo-card.is-soon:hover {
  transform: none;
  box-shadow: none;
}
.cv-modo-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(15, 23, 42, .08);
}
.cv-modo-unica:hover { border-color: rgba(var(--cv-modo-unica-rgb), .35); }
.cv-modo-conversa:hover { border-color: rgba(var(--cv-modo-conversa-rgb), .35); }
.cv-modo-card:hover::before { opacity: .08; }
.cv-modo-card:hover .cv-modo-glow {
  opacity: .22;
  transform: scale(1.05);
}
.cv-modo-card .form-check-input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}
.cv-modo-card-body {
  position: relative;
  z-index: 1;
  display: flex;
  gap: .9rem;
  align-items: flex-start;
}
.cv-modo-icone {
  flex: 0 0 auto;
  width: 3rem;
  height: 3rem;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  color: #fff;
  opacity: .72;
  box-shadow: 0 6px 14px rgba(15, 23, 42, .12);
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, opacity .2s ease;
}
.cv-modo-unica .cv-modo-icone { background: linear-gradient(145deg, var(--cv-modo-unica), var(--cv-modo-unica-2)); }
.cv-modo-conversa .cv-modo-icone { background: linear-gradient(145deg, var(--cv-modo-conversa), var(--cv-modo-conversa-2)); }
.cv-modo-card:hover .cv-modo-icone {
  transform: scale(1.04);
}
.cv-modo-copy {
  display: flex;
  flex-direction: column;
  gap: .2rem;
  padding-right: 1.5rem;
}
.cv-modo-kicker {
  font-size: .7rem;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  opacity: .7;
  transition: color .2s ease, opacity .2s ease;
}
.cv-modo-unica .cv-modo-kicker { color: var(--cv-modo-unica); }
.cv-modo-conversa .cv-modo-kicker { color: var(--cv-modo-conversa); }
.cv-modo-titulo {
  font-size: 1.2rem;
  font-weight: 800;
  line-height: 1.15;
  color: var(--bs-heading-color, inherit);
}
.cv-modo-desc {
  font-size: .82rem;
  color: var(--bs-secondary-color);
  line-height: 1.35;
}
.cv-modo-chips {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
  margin-top: .45rem;
}
.cv-modo-chip {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
  padding: .2rem .55rem;
  border-radius: 999px;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1.2;
  opacity: .85;
  transition: background .2s ease, color .2s ease, opacity .2s ease;
}
.cv-modo-unica .cv-modo-chip { background: rgba(var(--cv-modo-unica-rgb), .12); color: var(--cv-modo-unica); }
.cv-modo-conversa .cv-modo-chip { background: rgba(var(--cv-modo-conversa-rgb), .12); color: var(--cv-modo-conversa); }
.cv-modo-chip .ti {
  font-size: .85rem;
}
.cv-modo-check {
  position: absolute;
  top: .05rem;
  right: .05rem;
  font-size: 1.35rem;
  opacity: 0;
  transform: scale(.7);
  transition: opacity .18s ease, transform .18s ease;
}
.cv-modo-unica .cv-modo-check { color: var(--cv-modo-unica); }
.cv-modo-conversa .cv-modo-check { color: var(--cv-modo-conversa); }

/* Irmãos apagados quando há seleção */
.cv-modo-grid:has(.cv-modo-card.is-on) .cv-modo-card:not(.is-on):not(:has(.js-modo-roteiro:checked)),
.cv-modo-grid:has(.js-modo-roteiro:checked) .cv-modo-card:not(:has(.js-modo-roteiro:checked)) {
  opacity: .78;
  filter: saturate(.55);
}

.cv-modo-card.is-on,
.cv-modo-card:has(.js-modo-roteiro:checked) {
  opacity: 1;
  filter: none;
  transform: translateY(-2px);
}
.cv-modo-unica.is-on,
.cv-modo-unica:has(.js-modo-roteiro:checked) {
  border-color: var(--cv-modo-unica);
  background: linear-gradient(160deg, rgba(var(--cv-modo-unica-rgb), .14) 0%, rgba(var(--cv-modo-unica-rgb), .05) 45%, var(--bs-body-bg) 100%);
  box-shadow: 0 0 0 3px rgba(var(--cv-modo-unica-rgb), .22), 0 16px 34px rgba(var(--cv-modo-unica-rgb), .22);
}
.cv-modo-conversa.is-on,
.cv-modo-conversa:has(.js-modo-roteiro:checked) {
  border-color: var(--cv-modo-conversa);
  background: linear-gradient(160deg, rgba(var(--cv-modo-conversa-rgb), .14) 0%, rgba(var(--cv-modo-conversa-rgb), .05) 45%, var(--bs-body-bg) 100%);
  box-shadow: 0 0 0 3px rgba(var(--cv-modo-conversa-rgb), .22), 0 16px 34px rgba(var(--cv-modo-conversa-rgb), .22);
}
.cv-modo-card.is-on::before,
.cv-modo-card:has(.js-modo-roteiro:checked)::before {
  opacity: .3;
}
.cv-modo-card.is-on .cv-modo-glow,
.cv-modo-card:has(.js-modo-roteiro:checked) .cv-modo-glow {
  opacity: .7;
  transform: scale(1.12);
}
.cv-modo-unica.is-on .cv-modo-icone,
.cv-modo-unica:has(.js-modo-roteiro:checked) .cv-modo-icone {
  color: #fff;
  opacity: 1;
  background: linear-gradient(145deg, var(--cv-modo-unica), var(--cv-modo-unica-2));
  box-shadow: 0 10px 18px rgba(15, 23, 42, .14);
  animation: cv-modo-pulse .9s ease;
}
.cv-modo-conversa.is-on .cv-modo-icone,
.cv-modo-conversa:has(.js-modo-roteiro:checked) .cv-modo-icone {
  color: #fff;
  opacity: 1;
  background: linear-gradient(145deg, var(--cv-modo-conversa), var(--cv-modo-conversa-2));
  box-shadow: 0 10px 18px rgba(15, 23, 42, .14);
  animation: cv-modo-pulse .9s ease;
}
.cv-modo-card.is-on .cv-modo-kicker,
.cv-modo-card:has(.js-modo-roteiro:checked) .cv-modo-kicker,
.cv-modo-card.is-on .cv-modo-chip,
.cv-modo-card:has(.js-modo-roteiro:checked) .cv-modo-chip {
  opacity: 1;
}
.cv-modo-unica.is-on .cv-modo-kicker,
.cv-modo-unica:has(.js-modo-roteiro:checked) .cv-modo-kicker { color: var(--cv-modo-unica); }
.cv-modo-conversa.is-on .cv-modo-kicker,
.cv-modo-conversa:has(.js-modo-roteiro:checked) .cv-modo-kicker { color: var(--cv-modo-conversa); }
.cv-modo-unica.is-on .cv-modo-chip,
.cv-modo-unica:has(.js-modo-roteiro:checked) .cv-modo-chip {
  background: rgba(var(--cv-modo-unica-rgb), .14);
  color: var(--cv-modo-unica);
}
.cv-modo-conversa.is-on .cv-modo-chip,
.cv-modo-conversa:has(.js-modo-roteiro:checked) .cv-modo-chip {
  background: rgba(var(--cv-modo-conversa-rgb), .14);
  color: var(--cv-modo-conversa);
}
.cv-modo-card.is-on .cv-modo-check,
.cv-modo-card:has(.js-modo-roteiro:checked) .cv-modo-check {
  opacity: 1;
  transform: scale(1);
}
@keyframes cv-modo-pulse {
  0% { transform: scale(.92); }
  55% { transform: scale(1.1); }
  100% { transform: scale(1); }
}
[data-pc-theme=dark] .cv-modo-card {
  background: rgba(255, 255, 255, .03);
}
[data-pc-theme=dark] .cv-modo-icone {
  color: rgba(255, 255, 255, .55);
  background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .06));
}
[data-pc-theme=dark] .cv-modo-unica.is-on,
[data-pc-theme=dark] .cv-modo-unica:has(.js-modo-roteiro:checked) {
  background: linear-gradient(160deg, rgba(var(--cv-modo-unica-rgb), .24) 0%, rgba(var(--cv-modo-unica-rgb), .08) 45%, rgba(255, 255, 255, .03) 100%);
}
[data-pc-theme=dark] .cv-modo-conversa.is-on,
[data-pc-theme=dark] .cv-modo-conversa:has(.js-modo-roteiro:checked) {
  background: linear-gradient(160deg, rgba(var(--cv-modo-conversa-rgb), .24) 0%, rgba(var(--cv-modo-conversa-rgb), .08) 45%, rgba(255, 255, 255, .03) 100%);
}
[data-pc-theme=dark] .cv-modo-unica.is-on .cv-modo-icone,
[data-pc-theme=dark] .cv-modo-unica:has(.js-modo-roteiro:checked) .cv-modo-icone,
[data-pc-theme=dark] .cv-modo-conversa.is-on .cv-modo-icone,
[data-pc-theme=dark] .cv-modo-conversa:has(.js-modo-roteiro:checked) .cv-modo-icone {
  color: #fff;
}
[data-pc-theme=dark] .cv-modo-chip {
  background: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .7);
}


.cv-elenco-card {
  display: block;
  cursor: pointer;
  border: 1px solid var(--bs-border-color);
  border-radius: 10px;
  padding: .55rem .65rem;
  height: 100%;
}
.cv-elenco-card .form-check-input {
  float: right;
  margin-top: .2rem;
}
.cv-elenco-card-body {
  display: flex;
  flex-direction: column;
  gap: .35rem;
  align-items: flex-start;
  padding-right: 1.25rem;
  min-width: 0;
}
.cv-elenco-nome {
  font-weight: 600;
  font-size: .9rem;
  max-width: 100%;
}
.cv-elenco-card.is-on,
.cv-elenco-card:has(.cv-elenco-check:checked) {
  border-color: var(--bs-primary);
  background: var(--bs-primary-bg-subtle, rgba(13,110,253,.06));
}
.cv-elenco-chip {
  font-weight: 600;
  padding: .45rem .7rem;
}
.cv-timeline {
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  padding: .75rem;
  overflow-x: auto;
  background: var(--bs-body-bg);
}
.cv-timeline-ruler {
  position: relative;
  height: 1.25rem;
  margin-left: 7rem;
  margin-bottom: .35rem;
  font-size: .7rem;
  color: var(--bs-secondary-color);
}
.cv-timeline-ruler span {
  position: absolute;
  transform: translateX(-50%);
}
.cv-timeline-lane {
  display: flex;
  align-items: stretch;
  gap: .5rem;
  margin-bottom: .45rem;
  min-height: 2.4rem;
}
.cv-timeline-lane-label {
  flex: 0 0 6.5rem;
  font-size: .78rem;
  font-weight: 700;
  padding-top: .45rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.cv-timeline-lane-track {
  position: relative;
  flex: 1 1 auto;
  min-height: 2.2rem;
  border-radius: 8px;
  background: var(--bs-tertiary-bg, rgba(0,0,0,.04));
}
.cv-timeline-block {
  position: absolute;
  top: .25rem;
  bottom: .25rem;
  border-radius: 6px;
  cursor: grab;
  opacity: .92;
  overflow: hidden;
  min-width: 8px;
  touch-action: none;
  user-select: none;
}
.cv-timeline-block.is-dragging {
  cursor: grabbing;
  opacity: 1;
  z-index: 2;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
}
.cv-timeline-block-label {
  display: block;
  padding: .2rem .4rem;
  font-size: .68rem;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.2;
}
.cv-trecho-card {
  border-left: 3px solid var(--bs-primary);
}
.cv-conversa-roteiro-item {
  border: 1px solid var(--bs-border-color);
  border-radius: 10px;
  padding: .85rem 1rem;
  margin-bottom: .65rem;
}
.cv-conversa-roteiro-meta {
  font-size: .78rem;
  color: var(--bs-secondary-color);
}

/* Aba Trilha do Spot ? cards segmentados */
.cv-trilha-card {
  border: 1px solid var(--bs-border-color);
  border-radius: 12px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.cv-trilha-card.is-on,
.cv-trilha-item.is-on .cv-trilha-card {
  border-color: var(--bs-success);
  box-shadow: 0 0 0 1px var(--bs-success);
}
.cv-trilha-card .f-12 {
  min-height: 2.4em;
}
.aura-log-corpo {
  white-space: pre-wrap;
  word-break: break-word;
  max-height: 28rem;
  overflow: auto;
}
.aura-escolha .form-check {
  padding: 0.75rem 0.75rem 0.75rem 2.25rem;
  border: 1px solid var(--bs-border-color);
  border-radius: 0.5rem;
  margin-bottom: 0.5rem;
}
.aura-escolha .form-check:last-child {
  margin-bottom: 0;
}
.pix-dialog {
  max-width: 420px;
}
.pix-qr-frame {
  display: inline-block;
  background: #fff;
  padding: 16px;
  border-radius: 16px;
  line-height: 0;
}
.pix-qr-frame img {
  width: 240px;
  height: 240px;
}
.pix-copia {
  margin: 0;
  padding: 12px;
  border-radius: 12px;
  background: var(--bs-tertiary-bg, rgba(0, 0, 0, 0.04));
  color: var(--bs-body-color);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.45;
  text-align: left;
  white-space: pre-wrap;
  word-break: break-all;
  max-height: 5.8em;
  overflow: auto;
  user-select: all;
}
