@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700&family=Sora:wght@300;400;500;600&display=swap');
/* AJ — componentes. Só tokens; nenhum valor de cor solto. Marca plana: sem vidro, sem gradiente em superfície. */
.aj { font-family: Manrope, system-ui, sans-serif; color: var(--texto); background: var(--fundo); -webkit-font-smoothing: antialiased; }
.aj *, .aj *::before, .aj *::after { box-sizing: border-box; }
.aj :focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }

/* Título de página: frase leve, UMA palavra em peso (a assinatura da voz) */
.aj-titulo { font-family: Sora, system-ui, sans-serif; font-weight: 300; letter-spacing: -0.03em; font-size: 36px; line-height: 42px; margin: 0; color: var(--texto); text-wrap: balance; }
.aj-titulo b, .aj-titulo strong { font-weight: 600; }
.aj-titulo--display { font-size: 56px; line-height: 60px; letter-spacing: -0.035em; }
.aj-titulo--secao { font-size: 26px; line-height: 32px; letter-spacing: -0.025em; }
.aj-subtitulo { font-size: 16px; line-height: 24px; color: var(--texto-2); margin: 0; max-width: 62ch; }
.aj-rotulo { font: 500 12px/16px Sora, system-ui, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--texto-2); }

/* Símbolo e as duas luzes */
.aj-simbolo { display: block; fill: var(--simbolo); }
.aj-brilho { filter: drop-shadow(0 0 1px rgba(255,255,255,0.25)) drop-shadow(0 0 14px var(--brilho)) drop-shadow(0 0 36px rgba(91,43,224,0.35)); }
.aj-halo { position: relative; isolation: isolate; overflow: hidden; }
.aj-halo::before { content: ""; position: absolute; inset: -25%; z-index: -1; pointer-events: none;
  background: radial-gradient(38% 42% at 72% 30%, var(--halo-1), rgba(0,0,0,0) 70%), radial-gradient(34% 38% at 24% 86%, var(--halo-2), rgba(0,0,0,0) 70%); filter: blur(14px); }
.aj-halo--respira::before { animation: aj-respira 7s var(--curva-dobra) infinite; }
@keyframes aj-respira { 50% { opacity: .6; transform: scale(1.05); } }

/* Botão */
.aj-botao { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 16px; border-radius: var(--raio-md);
  font: 600 14px/20px Manrope, system-ui, sans-serif; border: 1px solid transparent; cursor: pointer; white-space: nowrap; text-decoration: none;
  transition: background-color var(--tempo-rapido) var(--curva-dobra), color var(--tempo-rapido) var(--curva-dobra), border-color var(--tempo-rapido) var(--curva-dobra); }
.aj-botao--principal { background: var(--acao); color: var(--sobre-acao); }
.aj-botao--principal:hover { background: var(--acao-hover); }
.aj-botao--secundario { background: var(--realce); color: var(--sobre-realce); }
.aj-botao--secundario:hover { background: var(--superficie-2); }
.aj-botao--contorno { background: var(--superficie); color: var(--texto); border-color: var(--borda-controle); }
.aj-botao--contorno:hover { background: var(--superficie-2); }
.aj-botao--fantasma { background: transparent; color: var(--texto-2); }
.aj-botao--fantasma:hover { background: var(--superficie-2); color: var(--texto); }
.aj-botao--perigo { background: var(--critico); color: #FFFFFF; }
[data-theme="escuro"] .aj-botao--perigo, .aj-botao--perigo[data-theme="escuro"] { color: var(--noite); }
.aj-botao--sm { height: 32px; padding: 0 12px; font-size: 13px; }
.aj-botao--lg { height: 48px; padding: 0 22px; font-size: 15px; border-radius: 14px; }
.aj-botao:disabled, .aj-botao[aria-disabled="true"] { opacity: .45; cursor: not-allowed; }
.aj-botao svg { width: 16px; height: 16px; flex: none; }

/* Campo */
.aj-campo { display: grid; gap: 6px; }
.aj-campo label { font: 600 13px/18px Manrope, system-ui, sans-serif; color: var(--texto); }
.aj-entrada { height: 40px; width: 100%; padding: 0 12px; border-radius: var(--raio-md); border: 1px solid var(--borda-controle); background: var(--superficie);
  color: var(--texto); font: 400 14px/20px Manrope, system-ui, sans-serif; transition: border-color var(--tempo-rapido) var(--curva-dobra); }
.aj-entrada::placeholder { color: var(--texto-3); }
.aj-entrada:hover { border-color: var(--texto-2); }
.aj-entrada:focus-visible { outline: 2px solid var(--foco); outline-offset: 1px; border-color: var(--acao); }
select.aj-entrada { appearance: none; padding-right: 36px; background-image: linear-gradient(45deg, rgba(0,0,0,0) 50%, var(--texto-2) 50%), linear-gradient(135deg, var(--texto-2) 50%, rgba(0,0,0,0) 50%);
  background-position: calc(100% - 18px) 18px, calc(100% - 13px) 18px; background-size: 5px 5px; background-repeat: no-repeat; }
textarea.aj-entrada { height: auto; min-height: 88px; padding: 10px 12px; resize: vertical; }
.aj-ajuda { font: 500 12px/16px Manrope, system-ui, sans-serif; color: var(--texto-3); }
.aj-campo--erro .aj-entrada { border-color: var(--critico); background: var(--critico-fundo); }
.aj-campo--erro .aj-ajuda { color: var(--critico); }

/* Cartão */
.aj-cartao { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); box-shadow: var(--sombra-1); padding: 24px; }
.aj-cartao__titulo { font: 500 18px/24px Sora, system-ui, sans-serif; letter-spacing: -0.015em; margin: 0; }

/* Indicador (número) */
.aj-indicador { display: grid; gap: 6px; }
.aj-indicador__valor { font: 400 32px/36px Sora, system-ui, sans-serif; letter-spacing: -0.03em; font-variant-numeric: tabular-nums; color: var(--texto); }
.aj-indicador__variacao { font: 600 12px/16px Manrope, system-ui, sans-serif; font-variant-numeric: tabular-nums; }
.aj-indicador__variacao--sobe { color: var(--sucesso); } .aj-indicador__variacao--desce { color: var(--critico); }

/* Etiqueta de status: sempre ponto + palavra */
.aj-etiqueta { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px 0 8px; border-radius: var(--raio-sm);
  font: 600 12px/16px Manrope, system-ui, sans-serif; background: var(--superficie-2); color: var(--texto-2); white-space: nowrap; }
.aj-etiqueta::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.aj-etiqueta--sucesso { background: var(--sucesso-fundo); color: var(--sucesso); }
.aj-etiqueta--atencao { background: var(--atencao-fundo); color: var(--atencao); }
.aj-etiqueta--critico { background: var(--critico-fundo); color: var(--critico); }
.aj-etiqueta--marca { background: var(--realce); color: var(--sobre-realce); }

/* Tabela */
.aj-tabela-caixa { background: var(--superficie); border: 1px solid var(--linha); border-radius: var(--raio-lg); overflow-x: auto; }
.aj-tabela { width: 100%; border-collapse: collapse; font: 400 14px/20px Manrope, system-ui, sans-serif; }
.aj-tabela th { text-align: left; font: 500 12px/16px Sora, system-ui, sans-serif; letter-spacing: 0.06em; text-transform: uppercase; color: var(--texto-2);
  background: var(--superficie-2); padding: 12px 16px; white-space: nowrap; }
.aj-tabela td { padding: 14px 16px; border-top: 1px solid var(--linha); color: var(--texto); vertical-align: middle; }
.aj-tabela tbody tr { transition: background-color var(--tempo-rapido) var(--curva-dobra); }
.aj-tabela tbody tr:hover { background: var(--superficie-2); }
.aj-tabela .num { text-align: right; font-variant-numeric: tabular-nums; }
.aj-tabela .fraco { color: var(--texto-2); }

/* Aviso (toast) */
.aj-aviso { display: flex; gap: 12px; align-items: flex-start; width: min(380px, 100%); padding: 14px 16px; border-radius: var(--raio-lg);
  background: var(--superficie); border: 1px solid var(--linha); box-shadow: var(--sombra-2); }
.aj-aviso__icone { flex: none; width: 20px; height: 20px; margin-top: 1px; }
.aj-aviso__titulo { font: 600 14px/20px Manrope, system-ui, sans-serif; margin: 0; color: var(--texto); }
.aj-aviso__texto { font: 400 13px/18px Manrope, system-ui, sans-serif; margin: 2px 0 0; color: var(--texto-2); }
.aj-aviso--sucesso .aj-aviso__icone { color: var(--sucesso); } .aj-aviso--critico .aj-aviso__icone { color: var(--critico); } .aj-aviso--marca .aj-aviso__icone { color: var(--acao); }

/* Estado vazio: halo + símbolo + frase + uma ação */
.aj-vazio { display: grid; justify-items: center; text-align: center; gap: 14px; padding: 48px 24px; border-radius: var(--raio-lg); border: 1px dashed var(--linha); }
.aj-vazio .aj-simbolo { width: 44px; height: 44px; }
.aj-vazio__titulo { font: 300 22px/28px Sora, system-ui, sans-serif; letter-spacing: -0.025em; margin: 0; }
.aj-vazio__titulo b { font-weight: 600; }
.aj-vazio__texto { font: 400 14px/20px Manrope, system-ui, sans-serif; color: var(--texto-2); margin: 0; max-width: 42ch; }

/* Carregando: a dobra se fecha */
.aj-carregando { width: 48px; height: 48px; overflow: visible; }
.aj-carregando path { fill: var(--simbolo); animation: aj-dobra 1.6s var(--curva-dobra) infinite; }
.aj-carregando path:first-child { --dx: -9px; --dy: -9px; } .aj-carregando path:last-child { --dx: 9px; --dy: 9px; }
@keyframes aj-dobra { 0% { transform: translate(var(--dx), var(--dy)); opacity: 0; } 15% { opacity: 1; } 55%, 85% { transform: none; opacity: 1; } 100% { transform: none; opacity: 0; } }

/* Navegação lateral */
.aj-nav { display: flex; flex-direction: column; gap: 4px; width: 248px; padding: 16px 12px; background: var(--superficie); border-right: 1px solid var(--linha); }
.aj-nav__marca { display: flex; align-items: center; gap: 10px; padding: 6px 10px 18px; font: 600 15px/20px Sora, system-ui, sans-serif; letter-spacing: -0.02em; color: var(--texto); }
.aj-nav__marca .aj-simbolo { width: 26px; height: 26px; }
.aj-nav__grupo { font: 500 11px/16px Sora, system-ui, sans-serif; letter-spacing: 0.08em; text-transform: uppercase; color: var(--texto-3); padding: 14px 10px 6px; }
.aj-nav__item { display: flex; align-items: center; gap: 10px; height: 38px; padding: 0 10px; border-radius: var(--raio-md); color: var(--texto-2);
  font: 500 14px/20px Manrope, system-ui, sans-serif; text-decoration: none; transition: background-color var(--tempo-rapido) var(--curva-dobra), color var(--tempo-rapido) var(--curva-dobra); }
.aj-nav__item svg { width: 18px; height: 18px; flex: none; stroke: currentColor; fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.aj-nav__item:hover { background: var(--superficie-2); color: var(--texto); }
.aj-nav__item[aria-current="page"] { background: var(--realce); color: var(--sobre-realce); font-weight: 600; }
.aj-nav__contador { margin-left: auto; font: 600 11px/16px Manrope, system-ui, sans-serif; font-variant-numeric: tabular-nums; padding: 1px 7px; border-radius: 999px; background: var(--superficie-2); color: var(--texto-2); }

@media (prefers-reduced-motion: reduce) { .aj-halo--respira::before, .aj-carregando path { animation: none; } .aj * { transition: none !important; } }
