/* Painel do Leilão KOC — tema escuro por padrão (cinza bem escuro, não preto puro), letra maior, bom contraste.
   Cores da marca: preto, dourado e vermelho. Cores por situação: as mesmas em todo o painel (ver .legenda). */
:root {
  --fundo: #17181c;
  --superficie: #1f2128;
  --superficie-2: #272a32;
  --borda: #363a45;
  --texto: #eeece6;
  --texto-2: #b9b6ad;
  --ouro: #dcb65c;
  --ouro-forte: #f0cd78;
  --ouro-texto: #17181c;
  --vermelho-marca: #e0473c;
  --foco: #f0cd78;
  --sombra: 0 8px 28px rgba(0, 0, 0, .35);

  /* situações */
  --s-aberto: #5b9cf0;
  --s-vendido: #45b884;
  --s-aguardando: #e8c84a;
  --s-atencao: #f08f45;
  --s-pago: #1fa463;
  --s-erro: #ec5a5f;
  --s-cinza: #8d929b;

  --raio: 12px;
  color-scheme: dark;
}
:root[data-tema="claro"] {
  --fundo: #f4f2ed;
  --superficie: #ffffff;
  --superficie-2: #f0ede6;
  --borda: #d9d4c9;
  --texto: #1c1c1f;
  --texto-2: #55524b;
  --ouro: #9a7420;
  --ouro-forte: #7d5d16;
  --ouro-texto: #ffffff;
  --vermelho-marca: #b3261e;
  --foco: #9a7420;
  --sombra: 0 8px 24px rgba(30, 25, 10, .12);
  --s-aberto: #2563c9;
  --s-vendido: #23885b;
  --s-aguardando: #a67c00;
  --s-atencao: #c25a0c;
  --s-pago: #12753f;
  --s-erro: #c4282f;
  --s-cinza: #6b7079;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { font-size: 17px; }
body {
  margin: 0;
  background: var(--fundo);
  color: var(--texto);
  font-family: "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--ouro-forte); }
:focus-visible { outline: 3px solid var(--foco); outline-offset: 2px; border-radius: 6px; }
h1, h2, h3 { line-height: 1.25; margin: 0 0 .5rem; }
.oculto { display: none !important; }

/* ---------- botões e campos ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: .45rem;
  min-height: 44px; padding: .55rem 1.1rem;
  border-radius: 10px; border: 1px solid var(--borda);
  background: var(--superficie-2); color: var(--texto);
  font: inherit; font-weight: 600; cursor: pointer;
}
.botao:hover { border-color: var(--ouro); }
.botao-principal { background: var(--ouro); border-color: var(--ouro); color: var(--ouro-texto); }
.botao-principal:hover { background: var(--ouro-forte); border-color: var(--ouro-forte); }
.botao-perigo { border-color: var(--s-erro); color: var(--s-erro); background: transparent; }
.botao-pequeno { min-height: 38px; padding: .35rem .8rem; font-size: .92rem; }
.campo { display: flex; flex-direction: column; gap: .35rem; margin-bottom: 1rem; }
.campo label { font-weight: 600; }
.campo input {
  min-height: 48px; padding: .6rem .8rem; font: inherit; font-size: 1.05rem;
  color: var(--texto); background: var(--fundo);
  border: 1px solid var(--borda); border-radius: 10px;
}
.campo input:focus { border-color: var(--ouro); }
.dica { color: var(--texto-2); font-size: .93rem; }
.erro {
  border: 1px solid var(--s-erro); color: var(--texto);
  background: color-mix(in srgb, var(--s-erro) 14%, transparent);
  padding: .7rem .9rem; border-radius: 10px; margin-bottom: 1rem;
}

/* ---------- login / código ---------- */
.tela-entrada { min-height: 100vh; display: grid; place-items: center; padding: 24px 16px; }
.cartao-entrada {
  width: 100%; max-width: 400px;
  background: var(--superficie); border: 1px solid var(--borda); border-radius: 16px;
  padding: 2rem 1.6rem; box-shadow: var(--sombra);
  border-top: 4px solid var(--ouro);
}
.cartao-entrada .marca { display: flex; flex-direction: column; align-items: center; gap: .4rem; margin-bottom: 1.4rem; }
.cartao-entrada .marca img { width: 120px; height: auto; }
.cartao-entrada h1 { font-size: 1.35rem; text-align: center; }
.cartao-entrada .botao { width: 100%; }
.cartao-entrada .rodape { margin-top: 1.2rem; text-align: center; }
.codigo-input { letter-spacing: .5em; text-align: center; font-size: 1.5rem !important; }

/* ---------- estrutura do painel ---------- */
.topo {
  position: sticky; top: 0; z-index: 10;
  display: flex; align-items: center; gap: .8rem; flex-wrap: wrap;
  padding: .6rem 16px;
  background: color-mix(in srgb, var(--superficie) 94%, transparent);
  border-bottom: 1px solid var(--borda);
  backdrop-filter: blur(6px);
}
.topo .marca { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--texto); }
.topo .marca img { width: 46px; height: auto; }
.topo .marca strong { font-size: 1.1rem; }
.topo .marca span { color: var(--ouro); }
.topo .espaco { flex: 1; }
.topo .acoes { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.selo-teste {
  font-size: .8rem; font-weight: 700; padding: .15rem .55rem; border-radius: 999px;
  border: 1px solid var(--s-aguardando); color: var(--s-aguardando);
}
/* topo (R8c): só a bolinha Online (verde) / Offline (vermelho) */
.selo-status {
  display: inline-flex; align-items: center; gap: .45rem; font-weight: 700; font-size: .92rem;
  padding: .2rem .75rem; border-radius: 999px; border: 1px solid var(--borda);
  background: var(--superficie-2); color: var(--cor-estado); --cor-estado: var(--s-pago);
}
.selo-status .bolinha { width: 10px; height: 10px; border-radius: 50%; background: var(--cor-estado); }
.selo-status.estado-offline { --cor-estado: var(--s-erro); border-color: var(--s-erro); }

.abas {
  display: flex; gap: .3rem; overflow-x: auto; scrollbar-width: thin;
  padding: .5rem 16px; border-bottom: 1px solid var(--borda); background: var(--superficie);
}
.abas a {
  flex: 0 0 auto; text-decoration: none; color: var(--texto-2); font-weight: 600;
  padding: .5rem .9rem; border-radius: 999px; border: 1px solid transparent; white-space: nowrap;
}
.abas a:hover { color: var(--texto); border-color: var(--borda); }
.abas a[aria-current="page"] {
  color: var(--ouro-texto); background: var(--ouro); border-color: var(--ouro);
}
/* v0.16: "Novo leilão" (1ª aba) em dourado com brilho lento; "Ao vivo" brilha vermelho (rolando) ou âmbar (agendado) */
.abas a.aba-novo { color: var(--ouro-forte); border: 2px solid var(--ouro); font-weight: 800;
  animation: brilho-aba 3.2s ease-in-out infinite; --brilho: rgba(220, 182, 92, .55); }
.abas a.aba-novo[aria-current="page"] { color: var(--ouro-texto); }
.abas a.brilho-vermelho { border-color: var(--vermelho-marca); animation: brilho-aba 2.4s ease-in-out infinite;
  --brilho: rgba(224, 71, 60, .6); }
.abas a.brilho-ambar { border-color: #e9a23b; animation: brilho-aba 3.2s ease-in-out infinite;
  --brilho: rgba(233, 162, 59, .55); }
@keyframes brilho-aba {
  0%, 100% { box-shadow: 0 0 0 0 transparent; }
  50% { box-shadow: 0 0 10px 2px var(--brilho); }
}
/* v0.20: letreiros de neon FORTES (letra clara com brilho colorido em camadas), pulsando devagar e sem piscar.
   - aba "Ao vivo" (contorno + letras) e o texto ao lado do robozinho pulsam juntos (mesma animação e duração):
     vermelho com leilão rolando, âmbar com leilão agendado; sem leilão, sem neon;
   - aba "Novo leilão": dourado/amarelo, contorno + letras.
   O brilho só existe dentro da animação: "Reduzir animações" (animation: none) desliga tudo. */
.abas a#aba-ao-vivo.brilho-vermelho, .abas a#aba-ao-vivo.brilho-ambar { background: #000; }
#aba-ao-vivo.brilho-vermelho, .selo-vivo.estado-aovivo #texto-vivo { --neon: 255, 46, 36; --letra: #fff0ec; }
#aba-ao-vivo.brilho-ambar, .selo-vivo.estado-proximo #texto-vivo { --neon: 255, 168, 40; --letra: #fff4e0; }
.abas a.aba-novo { --neon: 255, 205, 60; --letra: #fff6d6; }
#aba-ao-vivo.brilho-vermelho, #aba-ao-vivo.brilho-ambar, .abas a.aba-novo:not([aria-current="page"]) {
  color: var(--letra); border: 2px solid rgb(var(--neon)); animation: neon-forte 3s ease-in-out infinite; }
.abas a.aba-novo[aria-current="page"] { border: 2px solid rgb(var(--neon)); animation: neon-forte 3s ease-in-out infinite; }
.selo-vivo.estado-aovivo #texto-vivo, .selo-vivo.estado-proximo #texto-vivo {
  color: var(--letra); animation: neon-letras 3s ease-in-out infinite; }
.selo-vivo.estado-aovivo #texto-vivo { font-size: 1.35rem; font-weight: 800; letter-spacing: .08em; }
.selo-vivo.estado-proximo #texto-vivo .contagem-proximo { color: var(--letra); }
@keyframes neon-forte {
  0%, 100% {
    text-shadow: 0 0 2px rgba(var(--neon), 1), 0 0 7px rgba(var(--neon), .8), 0 0 14px rgba(var(--neon), .5);
    box-shadow: 0 0 6px 1px rgba(var(--neon), .6), inset 0 0 6px rgba(var(--neon), .35);
  }
  50% {
    text-shadow: 0 0 3px rgba(var(--neon), 1), 0 0 10px rgba(var(--neon), 1), 0 0 22px rgba(var(--neon), .8),
      0 0 38px rgba(var(--neon), .5);
    box-shadow: 0 0 20px 5px rgba(var(--neon), .85), inset 0 0 12px rgba(var(--neon), .5);
  }
}
@keyframes neon-letras {
  0%, 100% { text-shadow: 0 0 2px rgba(var(--neon), 1), 0 0 7px rgba(var(--neon), .8), 0 0 14px rgba(var(--neon), .5); }
  50% {
    text-shadow: 0 0 3px rgba(var(--neon), 1), 0 0 10px rgba(var(--neon), 1), 0 0 22px rgba(var(--neon), .8),
      0 0 38px rgba(var(--neon), .5);
  }
}

:root[data-animacoes="reduzidas"] *, :root[data-animacoes="reduzidas"] *::before,
:root[data-animacoes="reduzidas"] *::after { animation: none !important; transition: none !important; }

main { max-width: 1280px; margin: 0 auto; padding: 20px 16px 40px; }
.secao-titulo { display: flex; align-items: baseline; gap: .6rem; flex-wrap: wrap; margin-bottom: 1rem; }
.secao-titulo h2 { font-size: 1.45rem; }

.cartao {
  background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio);
  padding: 1.1rem 1.2rem;
}
.em-breve { border-style: dashed; color: var(--texto-2); }
.em-breve strong { color: var(--texto); }
.em-breve ul { margin: .5rem 0 0; padding-left: 1.2rem; }

/* ---------- legenda de cores por situação ---------- */
.legenda { display: flex; flex-wrap: wrap; gap: .4rem .9rem; margin-top: 1.4rem; font-size: .93rem; color: var(--texto-2); }
.legenda li { display: flex; align-items: center; gap: .4rem; list-style: none; }
.legenda ul { display: contents; }
.ponto { width: 12px; height: 12px; border-radius: 50%; flex: 0 0 12px; background: var(--s-cinza); }
.s-aberto { --cor: var(--s-aberto); }
.s-vendido { --cor: var(--s-vendido); }
.s-aguardando { --cor: var(--s-aguardando); }
.s-atencao { --cor: var(--s-atencao); }
.s-pago { --cor: var(--s-pago); }
.s-erro { --cor: var(--s-erro); }
.s-cinza { --cor: var(--s-cinza); }
.ponto[class*="s-"] { background: var(--cor); }
.selo-pago {
  font-size: .72rem; font-weight: 800; letter-spacing: .04em; padding: .05rem .4rem; border-radius: 6px;
  background: var(--s-pago); color: #fff;
}

/* ---------- janela "Minha conta" ---------- */
dialog {
  width: min(460px, calc(100vw - 32px)); padding: 1.4rem;
  color: var(--texto); background: var(--superficie);
  border: 1px solid var(--borda); border-radius: 14px; box-shadow: var(--sombra);
}
dialog::backdrop { background: rgba(0, 0, 0, .55); }
.linha-opcao { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .8rem 0;
  border-bottom: 1px solid var(--borda); }
.linha-opcao:last-of-type { border-bottom: 0; }
.dialog-acoes { display: flex; justify-content: flex-end; gap: .5rem; margin-top: 1rem; }
.mensagem { min-height: 1.4em; margin-top: .4rem; }

/* ---------- telas pequenas (janela no canto / celular) ---------- */
@media (max-width: 640px) {
  html { font-size: 16px; }
  .topo .marca strong { display: none; }
  .topo .acoes .texto-botao { display: none; }
  .selo-status { font-size: .85rem; }
  .selo-vivo img { width: 52px; height: 52px; }
  main { padding-top: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}

/* ---------- Fase 2: Ao vivo, Avisos, Registros técnicos ---------- */
.cartao h3 { font-size: 1.08rem; margin-bottom: .7rem; }
.contador {
  display: inline-block; min-width: 1.4em; padding: 0 .4em; margin-left: .2rem; border-radius: 999px;
  background: var(--vermelho-marca); color: #fff; font-size: .78rem; font-weight: 800; text-align: center;
}
/* robozinho ao lado do título "Ao vivo" (R8c): uma <img> por estado, só a do estado atual aparece */
.secao-titulo:has(.selo-vivo) { align-items: center; }
.selo-vivo {
  display: inline-flex; align-items: center; gap: .6rem; font-weight: 700; font-size: 1.05rem;
  color: var(--cor-estado); --cor-estado: var(--texto-2);
}
.selo-vivo img { width: 64px; height: 64px; display: block; flex: 0 0 auto; }
.selo-vivo img.oculto { display: none; }
.selo-vivo.estado-aovivo { --cor-estado: var(--vermelho-marca); letter-spacing: .06em; font-size: 1.2rem; }
.selo-vivo.estado-proximo { --cor-estado: var(--ouro-forte); }
.selo-vivo.estado-sem { --cor-estado: var(--texto); }
.selo-vivo .contagem-proximo { font-weight: 600; color: var(--texto-2); }

.grade-numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .8rem; margin-bottom: 1rem; }
.numero {
  display: flex; flex-direction: column; gap: .15rem; padding: .9rem 1rem; border-radius: var(--raio);
  background: var(--superficie); border: 1px solid var(--borda); border-left: 5px solid var(--cor, var(--borda));
}
.numero .rotulo { color: var(--texto-2); font-size: .9rem; font-weight: 600; }
.numero strong { font-size: 1.75rem; line-height: 1.15; }

.duas-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 1rem; margin-bottom: 1rem; }
.lista-lotes { display: flex; flex-direction: column; gap: .5rem; max-height: 460px; overflow-y: auto; }
.lote-aberto {
  display: flex; align-items: center; gap: .7rem; padding: .55rem .7rem; border-radius: 10px;
  background: var(--superficie-2);
}
.lote-info { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.lote-info strong { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.contagem { font-variant-numeric: tabular-nums; font-weight: 800; font-size: 1.1rem; color: var(--s-aberto); }
.contagem.urgente { color: var(--vermelho-marca); }

.feed { list-style: none; margin: 0; padding: 0; max-height: 460px; overflow-y: auto; }
.evento { display: flex; gap: .6rem; align-items: baseline; padding: .45rem 0; border-bottom: 1px solid var(--borda); }
.evento:last-child { border-bottom: 0; }
.evento .icone { flex: 0 0 1.4em; text-align: center; }
.evento .texto { flex: 1; }
.evento time { color: var(--texto-2); font-size: .88rem; font-variant-numeric: tabular-nums; white-space: nowrap; }

.lista-status { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.4rem; }
.lista-status li { display: flex; align-items: center; gap: .45rem; }

.lista-avisos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.lista-avisos li {
  display: flex; flex-direction: column; gap: .1rem; padding: .55rem .75rem; border-radius: 10px;
  background: var(--superficie-2); border-left: 4px solid var(--cor, var(--borda));
}
.lista-avisos li.dica { border-left: 0; background: none; padding: 0; }

.filtros { display: flex; flex-wrap: wrap; gap: .8rem; align-items: end; margin-bottom: 1rem; }
.filtros label { display: flex; flex-direction: column; gap: .25rem; font-weight: 600; font-size: .92rem; }
.filtros select, .filtros input {
  min-height: 40px; padding: .35rem .6rem; font: inherit; color: var(--texto); background: var(--superficie);
  border: 1px solid var(--borda); border-radius: 8px;
}
.registros {
  list-style: none; margin: 0; padding: .6rem; border-radius: var(--raio); background: var(--superficie);
  border: 1px solid var(--borda); font-family: Consolas, "Cascadia Mono", monospace; font-size: .88rem;
  max-height: 70vh; overflow: auto;
}
.registros li { display: grid; grid-template-columns: auto auto auto 1fr; gap: .2rem .8rem; padding: .2rem .2rem;
  border-bottom: 1px solid color-mix(in srgb, var(--borda) 50%, transparent); }
.registros .reg-texto { white-space: pre-wrap; word-break: break-word; }
.registros .reg-hora, .registros .reg-origem { color: var(--texto-2); }
.registros .nivel-warning .reg-nivel { color: var(--s-atencao); font-weight: 700; }
.registros .nivel-error .reg-nivel, .registros .nivel-critical .reg-nivel { color: var(--s-erro); font-weight: 700; }
.registros li.dica { display: block; }
@media (max-width: 640px) {
  .registros li { grid-template-columns: 1fr; }
  .duas-colunas { grid-template-columns: 1fr; }
}

/* ---------- Fase 4: Lotes ---------- */
:root { --vinicius: #3d7be0; --takeshi: #0b8a4a; }
:root[data-tema="claro"] { --vinicius: #1f5fc4; --takeshi: #006437; }
.s-agendado { --cor: var(--borda); }
.grade-lotes { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .7rem; }
.carta {
  position: relative; display: flex; flex-direction: column; text-align: left; padding: 0; overflow: hidden;
  background: var(--superficie); border: 2px solid var(--cor, var(--borda)); border-radius: var(--raio);
  color: var(--texto); font: inherit; cursor: pointer;
}
.carta:hover { box-shadow: var(--sombra); }
.carta .foto { aspect-ratio: 3 / 4; width: 100%; object-fit: cover; background: var(--superficie-2); display: block; }
.carta .sem-foto { aspect-ratio: 3 / 4; display: grid; place-items: center; color: var(--texto-2); background: var(--superficie-2); }
.carta .info { padding: .4rem .55rem .55rem; display: flex; flex-direction: column; gap: .05rem; }
.carta .codigo { font-weight: 800; }
.carta .nome { font-size: .9rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.carta .valor { font-weight: 700; }
.carta .faixa {
  position: absolute; top: 6px; left: 6px; padding: .05rem .45rem; border-radius: 6px; font-size: .75rem; font-weight: 800;
  background: var(--cor, var(--superficie-2)); color: #fff; text-shadow: 0 1px 2px rgba(0,0,0,.4);
}
.carta.s-agendado .faixa { color: var(--texto); background: var(--superficie-2); text-shadow: none; }
.chip-conduz { display: inline-block; padding: 0 .4rem; border-radius: 6px; font-size: .75rem; font-weight: 800; color: #fff; }
.chip-conduz.vinicius { background: var(--vinicius); }
.chip-conduz.takeshi { background: var(--takeshi); }
.carta .chip-conduz { position: absolute; top: 6px; right: 6px; }

.janela-lote { width: min(980px, calc(100vw - 24px)); max-height: calc(100vh - 24px); }
.lote-topo { display: flex; align-items: center; gap: .5rem; }
.lote-topo h2 { flex: 1; font-size: 1.2rem; margin: 0; }
.lote-corpo { display: grid; grid-template-columns: minmax(220px, 340px) 1fr; gap: 1.2rem; margin-top: .6rem; }
.lote-corpo .foto-grande { width: 100%; border-radius: 10px; background: var(--superficie-2); }
.lote-dados { display: flex; flex-direction: column; gap: .7rem; min-width: 0; }
.lote-dados .linha { display: flex; flex-wrap: wrap; gap: .4rem 1rem; align-items: center; }
.selo-situacao { display: inline-flex; align-items: center; gap: .4rem; font-weight: 800; }
.tabela { width: 100%; border-collapse: collapse; font-size: .95rem; }
.tabela th, .tabela td { text-align: left; padding: .35rem .4rem; border-bottom: 1px solid var(--borda); }
.tabela th { color: var(--texto-2); font-weight: 600; }
.tabela tr.primeiro td { font-weight: 800; }
.acoes-lote { display: flex; flex-wrap: wrap; gap: .5rem; }
.mini-form { display: flex; flex-wrap: wrap; gap: .5rem; align-items: end; }
.mini-form select {
  min-height: 38px; padding: .3rem .5rem; font: inherit; color: var(--texto); background: var(--superficie);
  border: 1px solid var(--borda); border-radius: 8px;
}
.mensagem.ok { color: var(--s-pago); }
.mensagem.falha { color: var(--s-erro); }
@media (max-width: 720px) { .lote-corpo { grid-template-columns: 1fr; } }

/* alerta repetido: "×5" ao lado do texto */
.lista-avisos .vezes { display: inline-block; margin-left: .4rem; padding: 0 .4rem; border-radius: 6px; font-size: .85rem;
  background: var(--superficie-2); color: var(--texto-2); }

/* ---------- R7: Configurações ---------- */
.cfg-grupos { display: block; }
.cfg-largo { grid-column: 1 / -1; }
/* v0.30: menu lateral + só a seção escolhida, busca, "?" de ajuda, salvar por seção, checklist e prévia */
.cfg-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 1rem; align-items: start; }
.cfg-menu { position: sticky; top: .5rem; display: flex; flex-direction: column; gap: .25rem; padding: .5rem;
  background: var(--superficie); border: 1px solid var(--borda); border-radius: 14px; }
.cfg-menu-item { display: flex; align-items: center; gap: .35rem; text-align: left; min-height: 40px; padding: .4rem .7rem;
  font: inherit; color: var(--texto); background: transparent; border: 0; border-radius: 10px; cursor: pointer; }
.cfg-menu-item:hover { background: var(--superficie-2); }
.cfg-menu-item[aria-current] { background: var(--ouro); color: var(--ouro-texto); font-weight: 700; }
.cfg-ponto-sujo { display: none; margin-left: auto; color: #f59e0b; font-size: .8rem; }
.cfg-menu-item.sujo .cfg-ponto-sujo { display: inline; }
.cfg-conteudo { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.cfg-conteudo > .cartao { margin: 0; }
.cfg-topo { margin: .5rem 0 .25rem; }
.cfg-busca { display: flex; align-items: center; gap: .5rem; max-width: 520px; }
.cfg-busca input { flex: 1; min-height: 42px; padding: .45rem .8rem; font: inherit; color: var(--texto);
  background: var(--fundo); border: 1px solid var(--borda); border-radius: 10px; }
.cfg-busca input:focus { border-color: var(--ouro); }
.cfg-cabeca { display: flex; align-items: center; flex-wrap: wrap; gap: .45rem; margin-bottom: .4rem; }
.cfg-cabeca label { font-weight: 600; }
.cfg-ajuda-caixa { position: relative; display: inline-flex; }
.cfg-ajuda { width: 22px; height: 22px; padding: 0; border-radius: 50%; font: 700 .8rem/1 inherit; cursor: help;
  color: var(--texto-2); background: var(--superficie-2); border: 1px solid var(--borda); }
.cfg-balao { display: none; position: absolute; left: 50%; top: calc(100% + 6px); transform: translateX(-50%); z-index: 50;
  width: max-content; max-width: min(320px, 80vw); padding: .55rem .7rem; font-size: .88rem; font-weight: 400;
  line-height: 1.4; color: var(--texto); background: var(--superficie); border: 1px solid var(--borda);
  border-radius: 10px; box-shadow: 0 6px 20px rgba(0, 0, 0, .25); white-space: normal; }
.cfg-ajuda-caixa:hover .cfg-balao, .cfg-ajuda-caixa:focus-within .cfg-balao, .cfg-ajuda-caixa.aberto .cfg-balao { display: block; }
.cfg-nao-salvo { display: none; font-size: .75rem; font-weight: 700; padding: .05rem .45rem; border-radius: 6px;
  color: #3b2300; background: #f59e0b; }
.cfg-campo.sujo .cfg-nao-salvo { display: inline; }
.cfg-erro { margin: .35rem 0 0; color: var(--perigo, #dc2626); font-weight: 600; }
.cfg-salvar { display: flex; align-items: center; justify-content: flex-end; gap: .75rem; flex-wrap: wrap;
  margin-top: .8rem; padding-top: .8rem; border-top: 1px solid var(--borda); }
.cfg-aviso-sujo { display: none; color: #b45309; font-weight: 700; }
.cfg-salvar.sujo .cfg-aviso-sujo { display: inline; }
.cfg-texto > summary { cursor: pointer; list-style: none; }
.cfg-texto > summary::-webkit-details-marker { display: none; }
.cfg-texto > summary .cfg-cabeca::before { content: "▸"; display: inline-block; width: 1em; transition: transform .15s; }
.cfg-texto[open] > summary .cfg-cabeca::before { transform: rotate(90deg); }
.cfg-texto > summary .cfg-cabeca { margin: 0; }
.cfg-texto-corpo { margin-top: .5rem; }
.cfg-pronto { margin: .5rem 0; border-left: 5px solid #f59e0b; }
.cfg-pronto.tudo-ok { border-left-color: #16a34a; }
.cfg-pronto-topo { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.cfg-pronto-topo h3 { margin: 0; }
.cfg-pronto-conta { font-weight: 700; }
.cfg-pronto-lista { list-style: none; margin: .6rem 0 0; padding: 0; display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: .5rem; }
.cfg-pronto-lista li { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .45rem; padding: .5rem .65rem;
  border-radius: 10px; border: 1px solid var(--borda); background: var(--superficie-2); }
.cfg-pronto-lista li.ok { border-color: #16a34a; background: rgba(22, 163, 74, .14); }
.cfg-pronto-lista li.ok > span:nth-child(2) { color: #15803d; font-weight: 700; }
[data-tema="escuro"] .cfg-pronto-lista li.ok > span:nth-child(2) { color: #4ade80; }
.cfg-pronto-lista li .botao { margin-left: auto; }
/* prévia "igual ao Telegram" (tema escuro do app) */
.tg-fundo { margin-top: .4rem; padding: 14px; border-radius: 12px; background: #0e1621; max-width: 520px; }
.tg-balao { position: relative; padding: 6px 10px 18px; border-radius: 12px 12px 12px 4px; background: #182533;
  color: #f5f5f5; font: 15px/1.38 -apple-system, "Segoe UI", Roboto, sans-serif; max-width: 100%; }
.tg-nome { color: #6ab3f3; font-weight: 600; font-size: 14px; margin-bottom: 2px; }
.tg-texto { white-space: pre-wrap; overflow-wrap: anywhere; }
.tg-link { color: #6ab3f3; }
.tg-hora { position: absolute; right: 10px; bottom: 4px; font-size: 12px; color: #6d7f8f; }
.tg-botoes { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; }
.tg-botao { display: block; padding: 8px; border-radius: 8px; text-align: center; color: #fff; font: 600 14px/1.2 -apple-system,
  "Segoe UI", Roboto, sans-serif; background: rgba(43, 82, 120, .55); }
@media (max-width: 760px) {
  .cfg-layout { grid-template-columns: 1fr; }
  .cfg-menu { position: static; flex-direction: row; flex-wrap: wrap; }
  .cfg-menu-item { min-height: 36px; padding: .3rem .6rem; }
}
.cfg-campo { padding: .8rem 0; border-bottom: 1px solid var(--borda); }
.cfg-campo:last-child { border-bottom: 0; }
.cfg-campo > label { display: flex; align-items: center; gap: .5rem; font-weight: 600; margin-bottom: .4rem; }
.cfg-alterado { font-size: .75rem; font-weight: 700; padding: .05rem .45rem; border-radius: 6px;
  color: var(--ouro-texto); background: var(--ouro); }
.cfg-linha, .cfg-botoes { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; }
.cfg-botoes { margin-top: .5rem; }
.cfg-campo input, .cfg-campo select, .cfg-campo textarea {
  min-height: 42px; padding: .45rem .7rem; font: inherit; color: var(--texto); background: var(--fundo);
  border: 1px solid var(--borda); border-radius: 10px; max-width: 100%;
}
.cfg-campo input { width: 14rem; }
.cfg-campo input[type="number"] { width: 7rem; }
#cfg-campo-link_grupo, #cfg-campo-chave_pix { width: 22rem; }
.cfg-campo textarea { width: 100%; resize: vertical; line-height: 1.45; }
.cfg-campo input:focus, .cfg-campo select:focus, .cfg-campo textarea:focus { border-color: var(--ouro); }
.cfg-reais { display: inline-flex; align-items: center; gap: .4rem; font-weight: 600; }
.cfg-reais input { width: 9rem; }
.cfg-campo .dica { margin: .35rem 0 0; }
.cfg-campo code { font-size: .88rem; padding: .05rem .35rem; margin: 0 .15rem; border-radius: 6px;
  background: var(--superficie-2); border: 1px solid var(--borda); }
.cfg-previa { margin: .6rem 0 0; }
.cfg-extras { margin-top: 1rem; }
.cfg-historico { margin-top: 1rem; }
.botao:disabled { opacity: .6; cursor: wait; }

/* ---------- R8: Vendas e Clientes ---------- */
.filtros-botoes { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .8rem; }
.filtro.ativo { background: var(--ouro); border-color: var(--ouro); color: var(--ouro-texto); }
.filtro .qtd { display: inline-block; min-width: 1.5em; padding: 0 .35em; border-radius: 999px; font-size: .8rem;
  background: color-mix(in srgb, var(--texto) 14%, transparent); text-align: center; }
.tabela-rolar { overflow-x: auto; background: var(--superficie); border: 1px solid var(--borda); border-radius: var(--raio);
  padding: .4rem .6rem; }
.tabela caption { text-align: left; padding: .3rem .4rem; caption-side: top; }
.tabela td.num, .tabela th.num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.tabela-vendas td, .tabela-clientes td { vertical-align: top; }
.tabela-vendas tr > td:first-child { border-left: 4px solid var(--cor, transparent); }
.tabela tr.clicavel { cursor: pointer; }
.tabela tr.clicavel:hover td, .tabela tr.clicavel:focus td { background: var(--superficie-2); }
.chip { display: inline-block; margin-left: .35rem; padding: 0 .4rem; border-radius: 6px; font-size: .75rem; font-weight: 800;
  background: var(--ouro); color: var(--ouro-texto); }
.chip.s-erro { background: var(--s-erro); color: #fff; }
.s-erro-texto { color: var(--s-erro); font-weight: 800; }
.grade-dados { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .6rem 1rem; margin: .6rem 0 1rem; }
.grade-dados .dado { display: flex; flex-direction: column; }
#janela-cliente h3 { margin-top: 1rem; }

/* ---------- R9: Pré-vendas e Compras ---------- */
.lista-prevendas { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 420px), 1fr)); gap: .8rem; }
.prevenda { display: grid; grid-template-columns: 96px 1fr; gap: .9rem; }
.prevenda.cancelada { opacity: .6; }
.prevenda .foto { width: 96px; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 8px; background: var(--superficie-2); }
.prevenda .sem-foto { display: grid; place-items: center; color: var(--texto-2); font-size: .85rem; }
.prevenda-dados { display: flex; flex-direction: column; gap: .25rem; min-width: 0; }
.prevenda-dados .linha { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem; }
.reservas { margin: .3rem 0 0; padding-left: 1.1rem; }
.chip-status { display: inline-block; padding: 0 .45rem; border-radius: 6px; font-size: .75rem; font-weight: 800;
  background: var(--superficie-2); color: var(--texto-2); border: 1px solid var(--borda); }
.chip-status.st-aberta { color: var(--s-aberto); border-color: var(--s-aberto); }
.chip-status.st-encerrada, .chip-status.st-aguardando { color: var(--s-aguardando); border-color: var(--s-aguardando); }
.chip-status.st-pago { background: var(--s-pago); border-color: var(--s-pago); color: #fff; }
.chip-status.st-cancelada { color: var(--s-cinza); }
.form-compra { margin-bottom: 1rem; }
.campos-compra { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .7rem 1rem; }
.campos-compra .largo { grid-column: 1 / -1; }
.campos-compra label { display: flex; flex-direction: column; gap: .25rem; font-weight: 600; font-size: .92rem; }
.campos-compra input, .campos-compra select, .tabela select {
  min-height: 40px; padding: .35rem .6rem; font: inherit; color: var(--texto); background: var(--fundo);
  border: 1px solid var(--borda); border-radius: 8px;
}
.campos-compra input:focus, .campos-compra select:focus { border-color: var(--ouro); }

/* ---------- R11: Financeiro ---------- */
.num.negativo { color: var(--s-erro); }
.num.vinicius { color: var(--vinicius); font-weight: 800; }
.num.takeshi { color: var(--takeshi); font-weight: 800; }
.fi-reinvestir { display: inline-flex; gap: .5rem; align-items: center; font-weight: 700; }
/* U7: Novo leilão */
.nv-passos { list-style: none; display: flex; gap: .4rem; padding: 0; margin: .2rem 0 1rem; flex-wrap: wrap; }
.nv-passos li { flex: 1 1 120px; }
.nv-passos button { width: 100%; padding: .55rem; border-radius: 10px; border: 1px solid var(--borda, #444);
  background: var(--superficie-2); color: inherit; font-weight: 700; cursor: pointer; }
.nv-passos button.feito { border-color: var(--ok, #2fae6c); }
.nv-passos button.atual { background: var(--ouro); color: #1a1a1a; border-color: var(--ouro); }
.nv-solta { display: block; border: 2px dashed var(--borda, #666); border-radius: 12px; padding: 1.6rem; text-align: center;
  cursor: pointer; margin-bottom: .8rem; }
.nv-solta.arrastando { border-color: var(--ouro); background: var(--superficie-2); }
.nv-solta input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.nv-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: .7rem; margin-bottom: 1rem; }
.nv-cartao { position: relative; border: 2px solid var(--borda, #444); border-radius: 10px; padding: .4rem; background: var(--superficie-2);
  cursor: pointer; display: flex; flex-direction: column; gap: .25rem; text-align: left; color: inherit; font: inherit; }
.nv-cartao.completa { border-color: var(--ok, #2fae6c); }
.nv-cartao.falta { border-color: var(--aviso, #e69138); }
.nv-cartao img { width: 100%; aspect-ratio: 63 / 88; object-fit: cover; border-radius: 6px; background: #0003; }
.nv-cartao .n { font-weight: 800; font-size: .85rem; }
.nv-cartao .nome { font-size: .85rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nv-cartao .tirar { position: absolute; top: .2rem; right: .2rem; border: 0; border-radius: 50%; width: 1.6rem; height: 1.6rem;
  background: #000a; color: #fff; cursor: pointer; }
.nv-carta-topo { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-bottom: .6rem; }
.nv-carta-topo h3 { margin: 0; text-align: center; flex: 1; }
.nv-carta { display: grid; grid-template-columns: minmax(180px, 320px) 1fr; gap: 1.2rem; }
@media (max-width: 700px) { .nv-carta { grid-template-columns: 1fr; } }
.nv-carta-foto img { width: 100%; border-radius: 10px; background: #0003; }
.nv-carta-campos { display: flex; flex-direction: column; gap: .55rem; }
.nv-carta-campos label, .nv-precos label { display: flex; flex-direction: column; gap: .25rem; font-weight: 600; font-size: .92rem; }
.nv-carta-campos input, .nv-carta-campos select { padding: .45rem .55rem; border-radius: 8px; border: 1px solid var(--borda, #555);
  background: var(--superficie-2); color: inherit; font: inherit; }
.nv-precos { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: .6rem; }
.nv-memoria { border-left: 4px solid var(--ouro); background: var(--superficie-2); border-radius: 8px; padding: .55rem .8rem;
  display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: space-between; font-weight: 700; }
.nv-resumo-num { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: .6rem; margin-bottom: .8rem; }
.nv-previa-caixa { display: flex; gap: 1rem; flex-wrap: wrap; align-items: flex-start; background: var(--superficie-2);
  border-radius: 10px; padding: .8rem; }
.nv-previa-caixa img { width: 160px; border-radius: 8px; }
.nv-previa-caixa pre { white-space: pre-wrap; font-family: inherit; margin: 0; flex: 1; min-width: 220px; }
.nv-catalogo { margin-top: 1.2rem; }
.nv-catalogo summary { cursor: pointer; font-weight: 700; }
.nv-cat-foto { width: 46px; border-radius: 4px; }
#cfg-precos { grid-column: 1 / -1; }
#cfg-precos-tabela td { white-space: nowrap; }
#cfg-precos-tabela input { width: 4.5rem; margin-left: .3rem; }
#cfg-precos-tabela select { width: auto; margin-right: .3rem; }
/* U6: Envios */
.en-remessa .filtros { align-items: flex-end; }
.en-mao summary { cursor: pointer; font-weight: 700; }
.en-mao[open] summary { margin-bottom: .6rem; }
.en-lista-titulo { margin: 1.2rem 0 .4rem; }
.item-a-mao { display: flex; gap: .3rem; align-items: center; }
.item-a-mao .tirar { background: none; border: 0; color: var(--erro, #e06666); cursor: pointer; font-size: 1rem; padding: 0 .2rem; }
.peso-envio { width: 6.5rem; }
/* U5: Financeiro em 4 blocos */
.fi-cartao { display: flex; flex-direction: column; gap: 1rem; }
.fi-bloco1 { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .7rem; }
.fi-num { background: var(--superficie-2); border-radius: 10px; padding: .7rem .9rem; display: flex; flex-direction: column; gap: .2rem; }
.fi-num .rotulo { font-size: .85rem; opacity: .8; }
.fi-num .valor { font-size: 1.35rem; font-weight: 800; }
.fi-lado { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: .8rem; }
.fi-socio { border-radius: 12px; padding: .8rem 1rem; border: 2px solid var(--cor-socio); background: var(--superficie-2);
  display: flex; flex-direction: column; gap: .45rem; }
.fi-socio h4 { margin: 0; color: var(--cor-socio-texto, var(--cor-socio)); font-size: 1.05rem; }
.fi-socio.vinicius { --cor-socio: #1F5FC4; --cor-socio-texto: #5b8fe6; }
.fi-socio.takeshi { --cor-socio: #006437; --cor-socio-texto: #2fae6c; }
.fi-socio .linha { display: flex; justify-content: space-between; gap: .5rem; }
.fi-socio .linha.total-socio { border-top: 1px solid var(--borda); padding-top: .35rem; margin-top: .2rem; font-weight: 700; }
.fi-socio .linha strong { white-space: nowrap; }
.fi-socio label { display: inline-flex; gap: .45rem; align-items: center; font-weight: 700; }
.fi-socio select { padding: .2rem .4rem; }
.fi-socio .so-dele { font-size: .8rem; opacity: .7; }
.fi-bloco4 { border-radius: 12px; padding: .8rem 1rem; background: var(--superficie-2); border-left: 4px solid var(--ouro);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: .4rem 1rem; align-items: baseline; }
.fi-bloco4 .valor { font-size: 1.4rem; font-weight: 800; }
.fi-ano-titulo { margin: 1.2rem 0 .5rem; }
#fi-tabela td:not(:first-child), #fi-tabela th:not(:first-child) { text-align: right; white-space: nowrap; }
#fi-tabela tr.atual td { background: var(--superficie-2); font-weight: 700; }
#fi-tabela tr.futuro td { opacity: .55; }
#fi-tabela tfoot td { font-weight: 800; border-top: 2px solid var(--borda, #555); }
.grade-dados .dado strong { white-space: pre-line; }

/* U1 (v0.15): versão ao lado do MODO TESTE */
.selo-versao { font-size: .75rem; color: var(--texto-2); opacity: .8; text-decoration: none; white-space: nowrap;
  border: 1px solid currentColor; border-radius: 999px; padding: .1rem .5rem; }
.selo-versao:hover { opacity: 1; }

/* U2 (v0.15): pagamento da venda */
.info-pagamento { font-size: .85rem; color: var(--texto-2); margin: .3rem 0; }
.acoes-venda .form-acao:not(:empty) { margin-top: .6rem; padding: .6rem; border: 1px solid var(--borda); border-radius: var(--raio);
  display: flex; flex-direction: column; gap: .4rem; background: var(--superficie-2); }
.acoes-venda .form-acao input:not([type="checkbox"]), .acoes-venda .form-acao select { max-width: 100%; }
.historico-venda li { display: block; }
.link-whats { white-space: nowrap; }
.codigo-cobranca { white-space: nowrap; font-variant-numeric: tabular-nums; }
.acoes-venda .form-acao label { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.acoes-venda .form-acao input:not([type="checkbox"]) { flex: 1; min-width: 12rem; }
.tabela-vendas td:last-child .botao { white-space: nowrap; }

/* U3 (v0.15): cartões do Ao vivo clicáveis */
button.numero.clicavel { font: inherit; color: inherit; text-align: left; cursor: pointer; }
button.numero.clicavel:hover { box-shadow: 0 0 0 1px var(--ouro); transform: translateY(-1px); }
button.numero.clicavel:focus-visible { outline: 2px solid var(--foco); outline-offset: 2px; }
#av-cartao-secao { margin-top: 1rem; }

/* v0.16: selo dos campos preenchidos pela leitura automática */
.nv-lido { display: inline-block; align-self: flex-start; width: fit-content; margin: .15rem 0 .1rem; padding: 0 .45rem; border-radius: 999px; font-size: .74rem;
  font-weight: 700; background: rgba(233, 162, 59, .18); color: #e9a23b; border: 1px solid rgba(233, 162, 59, .5); }
:root[data-tema="claro"] .nv-lido { color: #8a5a00; }
.nv-cartao .nv-lido-mini { position: absolute; top: .3rem; right: .3rem; font-size: .8rem; }

/* v0.17: limite de arremates na aba Clientes */
.chip.limite-sem { background: rgba(220, 182, 92, .2); color: var(--ouro-forte); }
.chip.limite-manual { background: rgba(90, 150, 230, .18); }

/* v0.17: 3 fotos por carta (Principal / Frente / Verso + extras) */
.nv-grade:has(.nv-cartao-3) { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); }
.nv-cartao-3 { display: flex; flex-direction: column; gap: .35rem; }
.nv-cartao-topo { display: flex; align-items: center; gap: .3rem; padding-right: 1.8rem; }
.nv-cartao-abrir { all: unset; cursor: pointer; display: flex; flex-direction: column; min-width: 0; flex: 1; }
.nv-cartao-abrir:focus-visible { outline: 2px solid var(--ouro-forte, #dcb65c); border-radius: 4px; }
.nv-espacos { display: grid; grid-template-columns: repeat(3, 1fr); gap: .3rem; }
.nv-espaco { position: relative; border: 1px dashed var(--borda, #555); border-radius: 6px; min-height: 90px;
  display: flex; align-items: center; justify-content: center; background: #0002; }
.nv-espaco.alvo { outline: 2px solid var(--ouro-forte, #dcb65c); background: rgba(220, 182, 92, .12); }
.nv-espaco.vazio { border-color: var(--aviso, #e69138); }
.nv-espaco img { width: 100%; aspect-ratio: 63 / 88; object-fit: cover; border-radius: 5px; cursor: grab; }
.nv-espaco .vazio-txt { font-size: .75rem; opacity: .7; }
.nv-espaco .rotulo-espaco { position: absolute; left: .2rem; bottom: .2rem; font-size: .68rem; font-weight: 700;
  background: #000b; color: #fff; padding: 0 .3rem; border-radius: 4px; }
.nv-espaco-botoes { position: absolute; top: .15rem; right: .15rem; display: flex; gap: .15rem; }
.nv-espaco-botoes button { border: 0; border-radius: 50%; width: 1.45rem; height: 1.45rem; background: #000b; color: #fff;
  cursor: pointer; font-size: .85rem; line-height: 1; }
.nv-fotos-aviso { border: 1px solid var(--aviso, #e69138); border-radius: 8px; padding: .5rem .7rem; margin: .5rem 0;
  background: rgba(230, 145, 56, .1); font-size: .9rem; }
.nv-abas-foto { display: flex; flex-wrap: wrap; gap: .25rem; margin-bottom: .35rem; }
.nv-abas-foto .atual { background: var(--ouro-forte, #dcb65c); color: #111; }
.s-aviso-texto { color: var(--aviso, #e69138); }

/* v0.17: revisão final */
.rv-tabela-caixa { overflow-x: auto; max-height: 55vh; }
.rv-tabela td { vertical-align: top; }
.rv-tabela tr.rv-vermelho { background: rgba(220, 60, 60, .12); }
.rv-tabela tr.rv-laranja { background: rgba(230, 145, 56, .10); }
.rv-fotos { white-space: nowrap; }
.rv-mini { width: 34px; height: 47px; object-fit: cover; border-radius: 3px; margin-right: 2px; cursor: zoom-in; display: inline-block;
  vertical-align: middle; }
.rv-mini.vazio { border: 1px dashed var(--aviso, #e69138); text-align: center; line-height: 47px; font-size: .7rem; cursor: default; }
.rv-alerta { font-size: .82rem; }
.rv-alerta.vermelho, .rv-chip.vermelho { color: #ff6b6b; }
.rv-alerta.laranja, .rv-chip.laranja { color: var(--aviso, #e69138); }
.rv-chip { font-weight: 800; }
.rv-rodape { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin-top: .8rem; }
.rv-conferi { display: flex; gap: .4rem; align-items: center; font-weight: 700; }
.rv-segunda { margin-top: .8rem; padding: .7rem; border: 2px solid #ff6b6b; border-radius: 8px; background: rgba(220, 60, 60, .12); }
.rv-segunda p { margin: 0 0 .5rem; font-weight: 700; }

/* v0.17: controles do leilão e da carta */
.lt-controles { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; margin: .4rem 0; }
.lt-controles:empty { display: none; }
.lt-controles-form:not(:empty), .lt-seguranca .form-acao:not(:empty) { display: flex; flex-wrap: wrap; gap: .4rem; align-items: center;
  border: 1px solid var(--borda, #444); border-radius: 8px; padding: .6rem; margin: .4rem 0; }
.lt-seguranca { margin-top: .6rem; border-top: 1px solid var(--borda, #444); padding-top: .5rem; }
.lt-historico { margin-top: .6rem; }

/* v0.19: seletor de raridade ao lado da identificação */
.nv-ident-linha { display: flex; gap: .35rem; }
.nv-ident-linha input { flex: 1; min-width: 0; }
.nv-ident-linha select { width: 6.5rem; }

/* v0.19: memória de cartas */
.nv-lido.da-memoria { background: rgba(90, 150, 230, .2); }
.nv-memoria-pergunta { border: 1px solid var(--aviso, #e69138); border-radius: 8px; padding: .5rem .7rem; margin: .4rem 0; }
.nv-memoria-pergunta p { margin: 0 0 .4rem; }

/* v0.19: pré-vendas no Novo leilão */
.nv-pv-lista { display: flex; flex-wrap: wrap; gap: .4rem; margin: .4rem 0 .6rem; }
.nv-pv-item { display: flex; gap: .2rem; }
.nv-pv-item.atual > .botao:first-child { outline: 2px solid var(--destaque, #f1c232); }
.nv-pv-nova { display: inline-block; margin-bottom: .6rem; cursor: pointer; }
.nv-pv-nova input { display: block; margin-top: .3rem; }
.chip-aguardando { background: #b45f06; color: #fff; border-radius: 999px; padding: .1rem .5rem; font-size: .85em; }
.pv-devolver { border: 2px solid #b45f06; border-radius: 10px; padding: .5rem .7rem; margin: .4rem 0; }
.pv-devolver li { margin: .3rem 0; }
.pv-devolver li.devolvida { opacity: .7; }
#rv-tabela-pv caption { text-align: left; font-weight: bold; padding: .6rem 0 .3rem; }
#nv-memoria-msg { margin: 0 0 0 .5rem; align-self: center; font-size: .85rem; }
/* v0.23: espaço vazio clicável (abre o seletor) e foto clicável (troca) */
.nv-espaco .vazio-txt { background: none; border: 0; color: inherit; cursor: pointer; width: 100%; height: 100%; font: inherit; font-size: .8rem; }
.nv-espaco .vazio-txt:hover, .nv-espaco .vazio-txt:focus-visible { opacity: 1; text-decoration: underline; }
.nv-espaco img { cursor: pointer; }

/* v0.23: Descartar em todas as etapas + prévia carta a carta (Principal | texto | Frente) */
.nv-descartar-linha { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: .3rem 0; }
.nv-descartar-pergunta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .4rem; padding: .3rem .6rem;
  border: 1px solid var(--erro, #d9534f); border-radius: 8px; font-size: .88rem; }
.nv-descartar-pergunta.oculto { display: none; }
.nv-previa-nav { display: inline-flex; align-items: center; gap: .3rem; margin-left: .5rem; font-weight: normal; font-size: .9rem; }
.nv-previa-caixa figure { margin: 0; }
.nv-previa-caixa figcaption { text-align: center; }
.nv-previa-frente img { max-width: 140px; opacity: .9; }

/* ===== v0.23: VISUAL (pensado pro tema claro também) =====
   Neon sempre em cima de FUNDO PRETO (nos dois temas): letra clara legível + brilho colorido em volta.
   No texto, o brilho é mais fino (não "apaga" a letra); o brilho forte fica na borda (box-shadow). */
.selo-status, .selo-status.estado-offline {
  background: #000; color: var(--letra); border: 2px solid rgb(var(--neon));
  animation: neon-selo 3s ease-in-out infinite; --cor-estado: rgb(var(--neon));
}
.selo-status { --neon: 40, 230, 110; --letra: #eafff1; }
.selo-status.estado-offline { --neon: 255, 46, 36; --letra: #fff0ec; }
.selo-status .bolinha { box-shadow: 0 0 6px 1px rgb(var(--neon)); }
@keyframes neon-selo {
  0%, 100% { text-shadow: 0 0 2px rgba(var(--neon), .9); box-shadow: 0 0 5px 1px rgba(var(--neon), .55); }
  50% { text-shadow: 0 0 3px rgba(var(--neon), 1), 0 0 7px rgba(var(--neon), .6); box-shadow: 0 0 16px 4px rgba(var(--neon), .8); }
}
/* abas com neon: fundo preto também no "Novo leilão" (antes só o Ao vivo tinha) e na aba aberta */
.abas a.aba-novo, .abas a.aba-novo[aria-current="page"],
.abas a#aba-ao-vivo.brilho-vermelho, .abas a#aba-ao-vivo.brilho-ambar { background: #000; color: var(--letra); }
.abas a.aba-novo[aria-current="page"] { box-shadow: inset 0 -3px 0 rgb(var(--neon)); }
/* "Próximo leilão: …" e "AO VIVO" ao lado do robozinho: num selo preto */
.selo-vivo.estado-aovivo #texto-vivo, .selo-vivo.estado-proximo #texto-vivo {
  background: #000; padding: .25rem .8rem; border-radius: 999px; border: 2px solid rgb(var(--neon));
}
/* letra mais firme: o brilho do texto fica fino e o forte vai pra borda */
@keyframes neon-forte {
  0%, 100% { text-shadow: 0 0 1px rgba(var(--neon), 1), 0 0 4px rgba(var(--neon), .7);
    box-shadow: 0 0 6px 1px rgba(var(--neon), .6), inset 0 0 6px rgba(var(--neon), .35); }
  50% { text-shadow: 0 0 2px rgba(var(--neon), 1), 0 0 7px rgba(var(--neon), .75);
    box-shadow: 0 0 20px 5px rgba(var(--neon), .85), inset 0 0 12px rgba(var(--neon), .5); }
}
@keyframes neon-letras {
  0%, 100% { text-shadow: 0 0 1px rgba(var(--neon), 1), 0 0 4px rgba(var(--neon), .7); box-shadow: 0 0 6px 1px rgba(var(--neon), .5); }
  50% { text-shadow: 0 0 2px rgba(var(--neon), 1), 0 0 7px rgba(var(--neon), .75); box-shadow: 0 0 18px 4px rgba(var(--neon), .8); }
}
/* "Sem leilão agora": letra branca com neon branco; no tema claro, contorno preto nas letras */
.selo-vivo.estado-sem #texto-vivo { color: #fff; --neon: 255, 255, 255; font-weight: 800;
  animation: neon-letras-sem 3s ease-in-out infinite; }
@keyframes neon-letras-sem {
  0%, 100% { text-shadow: 0 0 2px rgba(255, 255, 255, .9), 0 0 6px rgba(255, 255, 255, .5); }
  50% { text-shadow: 0 0 3px #fff, 0 0 10px rgba(255, 255, 255, .8); }
}
:root[data-tema="claro"] .selo-vivo.estado-sem #texto-vivo { -webkit-text-stroke: 1.2px #000; paint-order: stroke fill;
  animation-name: neon-letras-sem-claro; }
@keyframes neon-letras-sem-claro {
  0%, 100% { text-shadow: 0 0 2px #000, 0 0 5px rgba(0, 0, 0, .35); }
  50% { text-shadow: 0 0 2px #000, 0 0 9px rgba(0, 0, 0, .45); }
}
/* MODO TESTE e versão: mais contraste (fundo cheio) */
.selo-teste { background: #e69138; color: #1a1000; border-color: #e69138; }
.selo-versao { background: #000; color: #fff; border-color: #000; opacity: 1; font-weight: 700; }
:root[data-tema="claro"] .selo-versao:hover, .selo-versao:hover { background: #222; }

/* v0.23: "Enviar agora" (etapa 1) */
.nv-agora { display: flex; flex-direction: column; align-items: flex-start; gap: .15rem; margin: .6rem 0 .2rem; }
.nv-agora input { width: 1.2rem; height: 1.2rem; accent-color: var(--ouro); }
.nv-agora .dica { font-size: .82rem; }
label.travado { opacity: .5; }
label.travado input { background: var(--superficie-2); cursor: not-allowed; }
#nv-passos button:disabled { opacity: .4; cursor: not-allowed; }

/* v0.23: sons do painel e mini player */
.cfg-sons { margin-top: 16px; }
.som-linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 6px 0; }
.som-linha label { flex: 1 1 260px; }
.som-linha input[type="url"] { flex: 1 1 320px; min-width: 0; }
.som-linha input[type="range"] { flex: 0 1 200px; }
/* v0.30: JANELAS FLUTUANTES (janelas.js): Som, Relógio e Modo teste. Por cima das abas (900); a do Modo teste
   fica por cima das outras (950) e as outras saem da frente dela. */
.janela { position: fixed; right: 16px; bottom: 16px; z-index: 900; width: min(340px, calc(100vw - 32px));
  max-width: calc(100vw - 8px); display: flex; flex-direction: column; background: var(--superficie);
  border: 1px solid var(--borda, #333); color: var(--texto); border-radius: 12px; box-shadow: 0 6px 24px rgba(0, 0, 0, .45); }
.janela.oculto { display: none; }
.janela-titulo { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 4px 6px 4px 10px;
  font-size: 13px; font-weight: 700; cursor: move; user-select: none; touch-action: none; flex: 0 0 auto;
  border-radius: 11px 11px 0 0; white-space: nowrap; overflow: hidden; }
.janela-titulo span { overflow: hidden; text-overflow: ellipsis; }
.janela-min { background: none; border: 0; color: inherit; cursor: pointer; font-size: 14px; font-weight: 700;
  min-width: 32px; min-height: 28px; padding: 2px 6px; border-radius: 6px; flex: 0 0 auto; }
.janela-min:hover { background: rgba(127, 127, 127, .2); }
.janela-min:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; }
.janela-corpo { flex: 1 1 auto; min-height: 0; overflow: auto; padding: 8px 12px 12px; font-size: 13px;
  border-radius: 0 0 11px 11px; }
.janela.minimizada .janela-corpo { display: none; }
.janela.minimizada .janela-titulo { border-radius: 11px; }
.janela.mexendo, .janela.mexendo * { user-select: none; }
.janela.mexendo iframe { pointer-events: none; }
.jn-borda { position: absolute; z-index: 1; touch-action: none; }
.jn-n, .jn-s { left: 10px; right: 10px; height: 8px; cursor: ns-resize; }
.jn-n { top: -4px; } .jn-s { bottom: -4px; }
.jn-l, .jn-o { top: 10px; bottom: 10px; width: 8px; cursor: ew-resize; }
.jn-l { right: -4px; } .jn-o { left: -4px; }
.jn-nl, .jn-no, .jn-sl, .jn-so { width: 14px; height: 14px; }
.jn-nl { top: -5px; right: -5px; cursor: nesw-resize; } .jn-so { bottom: -5px; left: -5px; cursor: nesw-resize; }
.jn-no { top: -5px; left: -5px; cursor: nwse-resize; } .jn-sl { bottom: -5px; right: -5px; cursor: nwse-resize; }
.janela.minimizada .jn-borda { display: none; }

/* 🔊 Som: ajustes (abre/fecha) + link + player ocupando o resto */
.janela-som .janela-corpo { display: flex; flex-direction: column; gap: 4px; }
.janela-som.minimizada .janela-corpo { display: none; }
.som-ajustes summary { cursor: pointer; font-weight: 600; padding: 2px 0; }
.som-ajustes .som-linha label { flex: 1 1 200px; }
.som-ajustes input[type="time"] { width: 7.2em; }
.som-link input[type="url"] { flex: 1 1 160px; }
.som-player { flex: 1 1 auto; min-height: 80px; display: flex; flex-direction: column; }
.som-player iframe { display: block; width: 100%; flex: 1 1 auto; min-height: 80px; border: 0; border-radius: 10px; }

/* 🕒 Relógio: cápsula preta (o mesmo contraste nos dois temas), Japão em neon rosa sakura, Brasil em azul-ciano */
.janela-relogio { background: #000; color: #f4f4f4; border-color: #2a2a2a; }
.janela-relogio .janela-corpo { padding: 4px 8px 8px; overflow: hidden; }
.rl-capsula { background: #000; border-radius: 999px; padding: 6px 14px; display: grid; gap: 2px; }
.rl-linha { display: grid; grid-template-columns: auto 1.4em auto 1fr; align-items: baseline; gap: 6px; }
.rl-pais { font-size: 12px; color: #d8d8d8; white-space: nowrap; }
.rl-hora { font-size: 24px; font-weight: 800; font-variant-numeric: tabular-nums; letter-spacing: .5px; }
.rl-data { font-size: 12px; color: #d8d8d8; text-align: right; white-space: nowrap; }
.rl-jp .rl-hora, .nv-hora-japao strong { color: #ffd6e8;
  text-shadow: 0 0 2px #ff7eb6, 0 0 7px #ff7eb6, 0 0 14px rgba(255, 126, 182, .7); }
.rl-br .rl-hora, .nv-hora-brasil { color: #d6fbff;
  text-shadow: 0 0 2px #22e5ff, 0 0 7px #22e5ff, 0 0 14px rgba(34, 229, 255, .7); }
.rl-proximo { margin-top: 4px; font-size: 12px; text-align: center; color: #ffe9a8; }
.nv-hora-japao { margin: 2px 0 0; font-size: 13px; color: #ff9cc8; }
.nv-hora-japao strong { color: #ff9cc8; }
.nv-hora-brasil { font-weight: 700; }
:root[data-tema="claro"] .nv-hora-japao, :root[data-tema="claro"] .nv-hora-japao strong { color: #c2185b; text-shadow: none; }
:root[data-tema="claro"] label.nv-hora-brasil { color: #00838f; text-shadow: none; }

/* 🧪 Modo teste (v0.23): barra laranja, por cima das outras janelas */
.janela-teste { z-index: 950; border: 2px solid #ff9800; box-shadow: 0 10px 32px rgba(0, 0, 0, .5); }
.janela-teste .janela-titulo { background: #ff9800; color: #111; border-radius: 9px 9px 0 0; }
.janela-teste.minimizada .janela-titulo { border-radius: 9px; }
.janela-teste .janela-corpo h4 { margin: 10px 0 4px; font-size: 13px; }
.jt-linha { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0; }
.jt-linha select { max-width: 100%; }
.jt-clientes, .jt-caixa { list-style: none; margin: 0; padding: 0; }
.jt-clientes li { padding: 2px 0; border-bottom: 1px solid var(--borda); }
.jt-caixa { max-height: 220px; overflow-y: auto; }
.jt-item { padding: 4px 0; border-bottom: 1px solid var(--borda); white-space: pre-wrap; word-break: break-word; }
.jt-acao { opacity: .7; }
.jt-hora { opacity: .6; font-size: 11px; }
.jt-botao { display: inline-block; margin: 2px 4px 0 0; padding: 0 6px; border: 1px solid var(--borda);
  border-radius: 6px; font-size: 11px; }
.jt-msg { margin: 4px 0; min-height: 1em; }

/* v0.27: olhinho no campo de senha do login */
.senha-com-olho { position: relative; }
.senha-com-olho input { width: 100%; padding-right: 48px; }
.olhinho { position: absolute; top: 50%; right: 4px; transform: translateY(-50%); display: flex; align-items: center;
  justify-content: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 8px; background: none;
  color: var(--texto-2, var(--texto)); cursor: pointer; }
.olhinho:hover { color: var(--texto); }
.olhinho:focus-visible { outline: 2px solid var(--texto); outline-offset: -2px; }
.olhinho .oculto { display: none; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0; }
