/* PostaAI Ofertas — estilo do site (CSS puro, sem build).
   Identidade (logo em static/img): marinho #12121f, amarelo #ffc61a, laranja #ff7a00, azul do "AI", azul Telegram.
   Títulos em Lilita One, texto em Inter. Ícones: Lucide (static/img/icones.svg, via {{ icone("nome") }}).
   Pensado primeiro para celular; animações desligadas para quem prefere movimento reduzido (fim do arquivo). */

:root {
  --marinho: #12121f;
  --marinho-2: #1a1a2c;
  --marinho-3: #232339;
  --marinho-4: #2d2d48;
  --amarelo: #ffc61a;
  --ambar: #ffa41b;
  --laranja: #ff7a00;
  --telegram: #229ed9;
  --azul-ai: #1f8fff;
  --texto: #f2f2f7;
  --suave: #a9a9bd;
  --linha: #ffffff17;
  --verde: #2ec27e;
  --vermelho: #ff6b6b;
  --raio: 16px;
  --sombra: 0 10px 30px #0000004d;
  --titulo: "Lilita One", Inter, system-ui, sans-serif;
  --mola: cubic-bezier(.2, .8, .2, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--marinho);
  color: var(--texto);
  font: 400 1rem/1.55 Inter, system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.app {
  background:
    radial-gradient(900px 500px at 100% -10%, #1f8fff1f, transparent 60%),
    radial-gradient(700px 500px at -10% 20%, #ff7a0014, transparent 60%),
    var(--marinho);
  background-attachment: fixed;
}
main { flex: 1; }

a { color: var(--telegram); }
h1, h2, h3 { line-height: 1.2; }
h1 { font-family: var(--titulo); font-weight: 400; color: var(--amarelo); font-size: clamp(1.8rem, 5vw, 2.4rem); margin: 0; }
h2 { font-size: 1.1rem; margin: 0 0 10px; }
code { background: #ffffff14; padding: 1px 6px; border-radius: 6px; font-size: 0.9em; }
img { max-width: 100%; }
hr { border: 0; border-top: 1px solid var(--linha); margin: 20px 0; }

/* Ícones Lucide: traço, cor do texto. */
.i { width: 1.15em; height: 1.15em; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -0.2em; }

/* "AI" no azul do logo (ciano → azul). */
.ai { color: var(--azul-ai); background: linear-gradient(180deg, #25d0ff, #1f6bff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.discreto { color: var(--suave); font-size: 0.9rem; }
.erro { color: var(--vermelho); }
.ok { color: #7ee2a8; }

/* ---------- cabeçalho, menu e rodapé ---------- */
.topo {
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 10px 20px; border-bottom: 1px solid var(--linha);
  position: sticky; top: 0; z-index: 20; background: color-mix(in srgb, var(--marinho) 85%, transparent);
  backdrop-filter: blur(10px);
}
.marca { display: flex; align-items: center; gap: 8px; font-family: var(--titulo); font-size: 1.35rem; color: var(--texto); text-decoration: none; white-space: nowrap; }
.marca img { width: 36px; height: 36px; transition: transform .3s var(--mola); }
.marca:hover img { transform: rotate(-8deg) scale(1.08); }
.menu { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.menu > a:not(.botao), .menu button.link {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border-radius: 10px;
  color: var(--suave); text-decoration: none; font-weight: 500; transition: background .2s, color .2s;
}
.menu > a:not(.botao):hover, .menu button.link:hover { background: #ffffff0f; color: var(--texto); }
.menu > a.ativo { background: #ffffff14; color: var(--texto); }
.menu > a.ativo .i { color: var(--amarelo); }
.menu form { margin: 0; }

.rodape { border-top: 1px solid var(--linha); padding: 24px 16px; color: var(--suave); font-size: 0.85rem; text-align: center; }
.rodape nav { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; margin-bottom: 8px; }
.rodape p { max-width: 640px; margin: 6px auto; }
.app-rodape { border: 0; padding: 16px; }
.app-rodape a { color: var(--suave); }

/* ---------- botões e formulários ---------- */
.botao {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  margin-top: 12px; padding: 11px 18px; border: 0; border-radius: 12px;
  background: linear-gradient(180deg, #ff8a1f, var(--laranja)); color: #fff; font: 600 0.98rem Inter, sans-serif;
  text-decoration: none; cursor: pointer; box-shadow: 0 6px 18px #ff7a0033, inset 0 1px 0 #ffffff33;
  transition: transform .15s var(--mola), box-shadow .2s, filter .2s;
}
.botao:hover { transform: translateY(-2px); box-shadow: 0 10px 24px #ff7a0055, inset 0 1px 0 #ffffff33; }
.botao:active { transform: translateY(0); }
.botao[disabled] { opacity: .7; cursor: progress; transform: none; }
.botao.telegram { background: linear-gradient(180deg, #33b1ea, var(--telegram)); box-shadow: 0 6px 18px #229ed933, inset 0 1px 0 #ffffff33; }
.botao.verde { background: linear-gradient(180deg, #3fd58f, var(--verde)); box-shadow: 0 6px 18px #2ec27e33; }
.botao.secundario { background: #ffffff12; box-shadow: inset 0 0 0 1px var(--linha); }
.botao.secundario:hover { background: #ffffff1c; box-shadow: inset 0 0 0 1px #ffffff2e; }
.botao.perigo { background: linear-gradient(180deg, #e0463c, #b3261e); box-shadow: 0 6px 18px #b3261e33; }
.botao.grande { padding: 14px 24px; font-size: 1.05rem; }
.botao.pequeno { padding: 7px 12px; margin: 0; font-size: 0.85rem; border-radius: 10px; }
.botao.largura-total { width: 100%; }
.botao.brilho { position: relative; overflow: hidden; }
.botao.brilho::after { content: ""; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, #ffffff55 50%, transparent 70%); transform: translateX(-100%); animation: brilho 2.8s ease-in-out infinite; }
/* Indicador de carregamento dentro dos botões (aparece durante a requisição do HTMX). */
.botao .girando { display: none; }
.botao.htmx-request .girando, form.htmx-request .botao .girando { display: inline-block; animation: girar .8s linear infinite; }
.gira { animation: girar .8s linear infinite; }
button.link { display: inline-flex; align-items: center; gap: 5px; background: none; border: 0; color: var(--telegram); font: inherit; cursor: pointer; padding: 0; }
button.link.perigo { color: var(--vermelho); }
.botoes { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.botoes .botao, .botoes form { margin: 0; }

input, textarea {
  width: 100%; margin: 6px 0 12px; padding: 11px 12px; border-radius: 10px; border: 1px solid #ffffff26;
  background: #0f0f1c; color: var(--texto); font: 1rem Inter, sans-serif; transition: border-color .2s, box-shadow .2s;
}
input:focus, textarea:focus, select:focus { outline: none; border-color: var(--telegram); box-shadow: 0 0 0 3px #229ed933; }
select { padding: 10px; border-radius: 10px; background: #0f0f1c; color: var(--texto); border: 1px solid #ffffff26; font: 1rem Inter, sans-serif; }
label { display: block; font-weight: 500; }
input.hora { width: auto; display: inline-block; margin: 0 6px; }
.hora-label { display: inline-flex; align-items: center; font-weight: 500; }
.linha { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.linha form { margin: 0; }
.linha > input { flex: 1; min-width: 200px; margin: 0; }
.linha .botao { margin-top: 0; }

.campo-com-botao { display: flex; gap: 8px; align-items: center; position: relative; margin: 14px 0 4px; flex-wrap: wrap; }
.campo-com-botao .campo-icone { position: absolute; left: 12px; top: 13px; color: var(--suave); pointer-events: none; }
.campo-com-botao input { flex: 1; min-width: 200px; margin: 0; padding-left: 40px; }
.campo-com-botao .botao { margin: 0; }

.duas-colunas { display: grid; gap: 16px; grid-template-columns: 1fr; }
.duas-colunas.compacta { gap: 8px 16px; }
/* Itens de grade podem encolher (senão textos sem quebra, como links longos, alargam a página). */
.duas-colunas > *, .stats > *, .grade-canais > *, .previa-layout > * { min-width: 0; }

/* Chips (checkbox e radio com cara de etiqueta). */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip input { position: absolute; opacity: 0; pointer-events: none; }
.chip span {
  display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 99px; cursor: pointer;
  background: #ffffff0d; border: 1px solid var(--linha); font-weight: 500; font-size: 0.92rem;
  transition: background .2s, border-color .2s, transform .15s var(--mola);
}
.chip span .i { display: none; }
.chip span:hover { border-color: #ffffff3a; transform: translateY(-1px); }
.chip input:checked + span { background: #ff7a0026; border-color: var(--laranja); color: #ffd9b3; }
.chip input:checked + span .i { display: inline-block; animation: pop .3s var(--mola); }
.chip input:focus-visible + span { box-shadow: 0 0 0 3px #229ed955; }

/* Interruptor (checkbox). */
.interruptor { display: flex; align-items: center; gap: 12px; cursor: pointer; font-weight: 400; }
.interruptor input { position: absolute; opacity: 0; }
.interruptor .trilho { flex-shrink: 0; width: 46px; height: 26px; border-radius: 99px; background: #ffffff26; position: relative; transition: background .25s; }
.interruptor .trilho::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px #0006; transition: transform .25s var(--mola); }
.interruptor input:checked + .trilho { background: var(--verde); }
.interruptor input:checked + .trilho::after { transform: translateX(20px); }
.interruptor input:focus-visible + .trilho { box-shadow: 0 0 0 3px #229ed955; }

.htmx-indicator { display: none; }
.htmx-request .htmx-indicator, .htmx-request.htmx-indicator { display: inline; }

/* ---------- estrutura das páginas do painel ---------- */
.pagina { width: 100%; max-width: 1080px; margin: 0 auto; padding: 28px 18px 48px; }
.pagina.estreita { max-width: 820px; }
.pagina.centro { display: grid; place-items: center; min-height: calc(100vh - 140px); }
section { margin: 0; }
.pagina > * + * { margin-top: 18px; }

.cabecalho { display: flex; align-items: center; gap: 14px; margin-bottom: 6px; }
.cabecalho p { margin: 2px 0 0; }
.cabecalho-icone, .login-icone {
  display: grid; place-items: center; width: 50px; height: 50px; border-radius: 14px; flex-shrink: 0;
  background: linear-gradient(135deg, var(--amarelo), var(--laranja)); color: var(--marinho); box-shadow: 0 8px 20px #ff7a0040;
}
.cabecalho-icone .i, .login-icone .i { width: 26px; height: 26px; stroke-width: 2.2; }

.painel-card {
  background: linear-gradient(180deg, #ffffff0a, #ffffff04); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 20px; box-shadow: var(--sombra);
}
.painel-card > h2, .card-titulo h2 { display: flex; align-items: center; gap: 9px; }
.painel-card > h2 .i, .card-titulo h2 .i { color: var(--amarelo); }
.card-titulo { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.card-titulo a { display: inline-flex; align-items: center; gap: 5px; text-decoration: none; font-size: 0.9rem; }

.voltar { display: inline-flex; align-items: center; gap: 6px; color: var(--suave); text-decoration: none; font-size: 0.9rem; }
.voltar:hover { color: var(--texto); }
.canal-topo-pagina { display: flex; align-items: center; gap: 14px; margin: 10px 0 4px; }
.canal-topo-pagina h1 { font-size: clamp(1.6rem, 5vw, 2.1rem); }
.canal-topo-pagina .linha { margin-top: 4px; }

/* Avatar com a inicial do canal/usuário. */
.avatar {
  display: inline-grid; place-items: center; flex-shrink: 0; width: 44px; height: 44px; border-radius: 14px;
  font: 400 1.3rem var(--titulo); color: #fff; box-shadow: inset 0 1px 0 #ffffff40;
}
.avatar.grande { width: 60px; height: 60px; border-radius: 18px; font-size: 1.8rem; }
.avatar.mini { width: 26px; height: 26px; border-radius: 8px; font-size: 0.85rem; }
.avatar.tom-0 { background: linear-gradient(135deg, #ff9a3d, #ff5e3a); }
.avatar.tom-1 { background: linear-gradient(135deg, #25d0ff, #1f6bff); }
.avatar.tom-2 { background: linear-gradient(135deg, #ffd23f, #ff9f1a); color: var(--marinho); }
.avatar.tom-3 { background: linear-gradient(135deg, #43e695, #1faa6b); }
.avatar.tom-4 { background: linear-gradient(135deg, #b18cff, #6c4bff); }

/* Status (pílula) com ponto pulsando quando ativo. */
.status {
  display: inline-flex; align-items: center; gap: 6px; font: 600 0.78rem Inter, sans-serif; padding: 4px 10px;
  border-radius: 99px; background: #ffffff14; color: var(--texto); white-space: nowrap;
}
.status .i { width: 14px; height: 14px; }
.status.active { background: #2ec27e24; color: #7ee2a8; }
.status.error { background: #ff6b6b24; color: #ffb0b0; }
.status.paused { background: #ffc61a24; color: #ffe08a; }
.status.pending { background: #229ed924; color: #8fd3f4; }
.pulso { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--verde); }
.pulso::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--verde); animation: ping 1.8s var(--mola) infinite; }

.etiqueta { display: inline-flex; align-items: center; gap: 5px; font-size: 0.8rem; font-weight: 600; padding: 3px 10px; border-radius: 99px; background: #ffffff12; color: var(--suave); }
.etiqueta.ok { background: #2ec27e24; color: #7ee2a8; }
.etiqueta.erro { background: #ff6b6b24; color: #ffb0b0; }
h2 .etiqueta { margin-left: 4px; }

/* Alertas em linha. */
.alerta { display: flex; align-items: flex-start; gap: 10px; padding: 11px 14px; border-radius: 12px; margin: 10px 0; font-size: 0.95rem; border: 1px solid transparent; }
.alerta .i { margin-top: 2px; }
.alerta.erro { background: #ff6b6b17; border-color: #ff6b6b40; color: #ffc9c9; }
.alerta.aviso { background: #ffc61a14; border-color: #ffc61a40; color: #ffe7a3; }
.alerta.ok { background: #2ec27e17; border-color: #2ec27e40; color: #bff0d6; }
.alerta.info { background: #229ed917; border-color: #229ed940; color: #bfe6fa; }

/* Números (stats). */
.stats { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
.stat {
  display: flex; align-items: center; gap: 14px; padding: 16px; border-radius: var(--raio);
  background: linear-gradient(180deg, #ffffff0b, #ffffff04); border: 1px solid var(--linha);
  transition: transform .25s var(--mola), border-color .25s;
}
.stat:hover { transform: translateY(-3px); border-color: #ffffff2e; }
.stats + * { margin-top: 18px; }
.stat b { display: block; font-size: 1.45rem; line-height: 1.15; }
.stat span:not(.stat-icone) { color: var(--suave); font-size: 0.82rem; }
.stat-icone { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0; }
.stat-icone .i { width: 22px; height: 22px; }
.cor-amarelo .stat-icone { background: #ffc61a24; color: var(--amarelo); }
.cor-azul .stat-icone { background: #1f8fff24; color: #6cb8ff; }
.cor-verde .stat-icone { background: #2ec27e24; color: #6ee0a6; }
.cor-laranja .stat-icone { background: #ff7a0024; color: #ffab66; }
.cor-cinza .stat-icone { background: #ffffff14; color: var(--suave); }

/* Cartões de canal no painel. */
.grade-canais { display: grid; gap: 16px; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); margin-top: 18px; }
.card-canal {
  display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: var(--raio);
  background: linear-gradient(180deg, #ffffff0b, #ffffff04); border: 1px solid var(--linha); box-shadow: var(--sombra);
  transition: transform .3s var(--mola), border-color .3s, box-shadow .3s;
}
.card-canal:hover { transform: translateY(-4px); border-color: #ffc61a55; box-shadow: 0 16px 40px #0006, 0 0 0 1px #ffc61a22; }
.card-canal-topo { display: flex; align-items: center; gap: 12px; }
.card-canal-nome { flex: 1; min-width: 0; }
.card-canal-nome b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.card-canal-nome span { font-size: 0.82rem; }
.card-canal-info { display: flex; align-items: center; gap: 7px; margin: 0; color: var(--suave); font-size: 0.93rem; }
.card-canal-info b { color: var(--texto); }
.card-canal .botao { margin-top: auto; align-self: flex-start; }
.card-canal .alerta { margin: 0; }

.card-conectar {
  display: flex; flex-direction: column; align-items: center; text-align: center; padding: 26px 20px;
  border: 1.5px dashed #ffffff2e; border-radius: var(--raio); background: #ffffff05;
}
.card-conectar h2 { margin: 14px 0 6px; }
.card-conectar .passos-numerados { text-align: left; }

/* "Radar": ícone com ondas, esperando o bot. */
.radar { position: relative; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: #229ed926; color: #8fd3f4; }
.radar .i { width: 28px; height: 28px; }
.radar::before, .radar::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid #229ed9; animation: onda 2.4s ease-out infinite; }
.radar::after { animation-delay: 1.2s; }

.passos-numerados { counter-reset: p; list-style: none; padding: 0; margin: 12px 0; }
.passos-numerados li { counter-increment: p; position: relative; padding: 6px 0 6px 38px; }
.passos-numerados li::before {
  content: counter(p); position: absolute; left: 0; top: 5px; width: 26px; height: 26px; border-radius: 50%;
  display: grid; place-items: center; font: 700 0.8rem Inter, sans-serif; background: #ffc61a24; color: var(--amarelo);
}
.aguardando { display: inline-flex; align-items: center; gap: 4px; margin: 6px 0 0; }
.pontinhos { display: inline-flex; gap: 3px; margin-left: 4px; }
.pontinhos i { width: 5px; height: 5px; border-radius: 50%; background: currentColor; animation: pulinho 1.2s ease-in-out infinite; }
.pontinhos i:nth-child(2) { animation-delay: .15s; }
.pontinhos i:nth-child(3) { animation-delay: .3s; }

/* Abas do canal. */
.abas { display: flex; gap: 6px; overflow-x: auto; padding: 4px; margin: 14px 0 4px; background: #ffffff08; border: 1px solid var(--linha); border-radius: 14px; scrollbar-width: none; }
.abas::-webkit-scrollbar { display: none; }
.abas a {
  display: inline-flex; align-items: center; gap: 7px; padding: 8px 14px; border-radius: 10px; white-space: nowrap;
  color: var(--suave); text-decoration: none; font-weight: 500; font-size: 0.92rem; transition: background .2s, color .2s;
}
.abas a:hover { color: var(--texto); background: #ffffff0d; }
.abas a.atual { background: var(--laranja); color: #fff; box-shadow: 0 4px 14px #ff7a0040; }

/* Passos do onboarding com barra de progresso. */
.stepper { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); margin: 20px 0 8px; }
.stepper-barra { position: absolute; left: 12.5%; right: 12.5%; top: 21px; height: 3px; border-radius: 3px; background: #ffffff1a; }
.stepper-barra span { display: block; height: 100%; width: var(--progresso); border-radius: 3px; background: linear-gradient(90deg, var(--verde), var(--laranja)); animation: progresso 1s var(--mola) both; }
.passo { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; text-decoration: none; color: var(--suave); font-size: 0.85rem; text-align: center; }
.passo .bolinha {
  display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%;
  background: var(--marinho-3); border: 2px solid #ffffff26; color: var(--suave); transition: all .3s var(--mola);
}
.passo:hover .bolinha { border-color: #ffffff55; }
.passo.feito .bolinha { background: var(--verde); border-color: var(--verde); color: #fff; }
.passo.atual { color: var(--texto); font-weight: 600; }
.passo.atual .bolinha { background: var(--laranja); border-color: #ffb066; color: #fff; box-shadow: 0 0 0 6px #ff7a0026; animation: pop .5s var(--mola); }

/* Listas de posts e eventos. */
.lista-posts, .lista-eventos { list-style: none; padding: 0; margin: 0; }
.lista-posts li { display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "o t p" "o q q"; gap: 2px 12px; align-items: center; padding: 11px 6px; border-bottom: 1px solid #ffffff0d; border-radius: 10px; transition: background .2s; }
.lista-posts li:hover { background: #ffffff08; }
.lista-posts .origem { grid-area: o; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; }
.origem-lista { background: #ffc61a24; color: var(--amarelo); }
.origem-destaques { background: #1f8fff24; color: #6cb8ff; }
.origem-manual { background: #2ec27e24; color: #6ee0a6; }
.lista-posts .titulo-post { grid-area: t; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.lista-posts .preco { grid-area: p; white-space: nowrap; }
.lista-posts .quando { grid-area: q; font-size: 0.8rem; }
.legenda-origens { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-top: 10px; }
.lista-eventos li { display: flex; gap: 10px; align-items: flex-start; padding: 9px 4px; border-bottom: 1px solid #ffffff0d; }
.lista-eventos li > span:not(.quando) { flex: 1; }
.lista-eventos .quando { font-size: 0.8rem; white-space: nowrap; }
.evento.error { color: #ffc9c9; }
.evento.error > .i { color: var(--vermelho); }
.evento.warning > .i { color: var(--amarelo); }
.evento.info > .i { color: var(--telegram); }
.paginacao { display: flex; gap: 8px; margin-top: 12px; }

.vazio { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; padding: 26px 10px; color: var(--suave); }
.vazio-icone { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 50%; background: #ffffff0d; margin-bottom: 4px; }
.vazio-icone .i { width: 28px; height: 28px; }
.vazio b { color: var(--texto); }
.vazio p { margin: 0; }

.copiar-caixa { display: flex; gap: 8px; align-items: center; background: #0f0f1c; border: 1px solid var(--linha); border-radius: 12px; padding: 8px 8px 8px 12px; }
.copiar-caixa code { flex: 1; background: none; padding: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.sanfona summary { display: flex; align-items: center; gap: 9px; cursor: pointer; font-weight: 600; list-style: none; }
.sanfona summary::-webkit-details-marker { display: none; }
.sanfona summary::after { content: "›"; margin-left: auto; font-size: 1.4rem; line-height: 1; transition: transform .25s; }
.sanfona[open] summary::after { transform: rotate(90deg); }
.sanfona[open] summary { margin-bottom: 12px; }
.sanfona.perigo { border-color: #ff6b6b33; }
.sanfona.perigo summary { color: #ffb0b0; }

.perfil { display: flex; gap: 16px; align-items: center; }
.perfil-nome { font-size: 1.2rem; }
.perfil p { margin: 2px 0 8px; }

/* Resultado do link de afiliado. */
.confirmar { padding: 16px; border: 1px solid #ffc61a66; border-radius: 14px; margin: 14px 0 0; background: #ffc61a0d; }
.confirmar-titulo { display: flex; align-items: center; gap: 8px; font-weight: 700; margin: 0 0 10px; color: var(--amarelo); }
.pares { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.pares div { background: #0f0f1c; border-radius: 10px; padding: 10px 12px; }
.pares span { display: block; font-size: 0.78rem; color: var(--suave); }
.pares code { background: none; padding: 0; font-size: 1rem; }

/* Gráfico de barras (admin). */
.grafico { display: flex; align-items: flex-end; gap: 10px; height: 180px; padding-top: 10px; }
.barra-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 6px; height: 100%; justify-content: flex-end; font-size: 0.78rem; color: var(--suave); }
.barra-col b { color: var(--texto); font-size: 0.85rem; }
.barra { width: 100%; max-width: 46px; height: var(--h); min-height: 3px; border-radius: 8px 8px 3px 3px; background: linear-gradient(180deg, var(--amarelo), var(--laranja)); transform-origin: bottom; animation: crescer .8s var(--mola) both; animation-delay: calc(var(--i, 0) * 70ms); }

.tabela { width: 100%; border-collapse: collapse; font-size: 0.9rem; display: block; overflow-x: auto; }
.tabela th { color: var(--suave); font-weight: 600; font-size: 0.8rem; text-transform: uppercase; letter-spacing: .04em; }
.tabela th, .tabela td { text-align: left; padding: 10px 10px; border-bottom: 1px solid #ffffff0f; vertical-align: middle; }
.tabela tbody tr { transition: background .2s; }
.tabela tbody tr:hover { background: #ffffff06; }
.tabela form { margin: 0; }
.admin .linha > input, .admin .linha > select { margin: 0; }
.admin section[id] { scroll-margin-top: 80px; }

/* ---------- login, convite e mensagens ---------- */
.login { width: 100%; max-width: 440px; text-align: center; padding: 28px 24px; }
.login .login-icone { margin: 0 auto 12px; width: 60px; height: 60px; border-radius: 18px; }
.login h1 { margin-bottom: 6px; }
.login .passos-numerados { text-align: left; }
.login form { text-align: left; }
.codigo { display: flex; justify-content: center; gap: 10px; margin: 8px 0 16px; }
.codigo span {
  display: grid; place-items: center; width: 52px; height: 62px; border-radius: 12px; font: 400 2.1rem var(--titulo);
  color: var(--amarelo); background: #0f0f1c; border: 1px solid #ffc61a40; animation: pop .5s var(--mola) both; animation-delay: calc(var(--i) * 90ms);
}
.campo-codigo { text-align: center; font-size: 1.4rem; letter-spacing: .25em; text-transform: uppercase; font-weight: 700; }
/* Login: QR em destaque (computador) ou botão primeiro (celular). */
.login-opcoes { display: flex; flex-direction: column; align-items: center; margin: 18px 0 8px; }
.qr-titulo { display: flex; align-items: center; justify-content: center; gap: 8px; margin: 0 0 12px; font-weight: 600; }
.qr-titulo .i { color: var(--amarelo); }
.qr-caixa { position: relative; display: inline-block; padding: 10px; border-radius: 18px; background: #fff; overflow: hidden; box-shadow: 0 0 0 4px #ffc61a33, 0 14px 40px #0007; }
.qr-caixa svg { display: block; width: 220px; height: 220px; }
/* Linha de "leitura" passando pelo QR. */
.qr-caixa::after { content: ""; position: absolute; left: 6px; right: 6px; height: 3px; top: 8px; border-radius: 3px; background: linear-gradient(90deg, transparent, #ff7a00, transparent); box-shadow: 0 0 12px #ff7a00; animation: escanear 2.6s ease-in-out infinite; }
.divisor-ou { display: flex; align-items: center; gap: 12px; width: 100%; margin: 18px 0 4px; color: var(--suave); font-size: 0.85rem; }
.divisor-ou::before, .divisor-ou::after { content: ""; flex: 1; height: 1px; background: var(--linha); }
.login-opcoes .botao { margin-top: 10px; }
@keyframes escanear { 0%, 100% { top: 8px; } 50% { top: calc(100% - 11px); } }
@media (max-width: 720px) {
  .login-opcoes .botao { order: -2; margin-top: 0; }
  .login-opcoes .divisor-ou { order: -1; }
  .qr-caixa svg { width: 160px; height: 160px; }
  .qr-titulo { font-size: 0.9rem; }
}
.qr { margin-top: 14px; }
.qr summary, .manual summary { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; color: var(--telegram); }
.qr svg { display: block; margin: 10px auto 0; border-radius: 12px; }

/* ---------- post como aparece no Telegram ---------- */
.post-telegram { max-width: 400px; background: #182533; border-radius: 16px; overflow: hidden; margin: 12px auto; box-shadow: 0 18px 50px #0008; text-align: left; }
.post-telegram img { width: 100%; display: block; background: #fff; }
.post-telegram .legenda { padding: 10px 12px; line-height: 1.45; font-size: 0.95rem; }
.post-telegram .legenda a { color: #64b5ef; }
.post-telegram .botao-post { text-align: center; padding: 9px; background: #ffffff14; color: #64b5ef; font-weight: 600; }
.post-telegram .canal-topo { display: flex; align-items: center; gap: 8px; padding: 10px 12px 8px; font-weight: 700; font-size: 0.9rem; color: #64b5ef; }
.post-telegram .canal-topo img { width: 26px; height: 26px; }
.foto-exemplo { aspect-ratio: 4 / 3; background: linear-gradient(135deg, #fff, #e9ecf2); display: grid; place-items: center; font-size: 4rem; }

/* ---------- notificações (toasts) ---------- */
#toasts { position: fixed; right: 18px; bottom: 18px; z-index: 50; display: flex; flex-direction: column; gap: 10px; pointer-events: none; }
.toast {
  display: flex; align-items: center; gap: 10px; padding: 12px 16px; border-radius: 12px; max-width: 360px;
  background: #1f2a24; border: 1px solid #2ec27e66; color: #d9f7e8; box-shadow: var(--sombra); font-weight: 500;
  animation: entrarDireita .45s var(--mola) both;
}
.toast .i { color: var(--verde); }
.toast.erro { background: #2c1f22; border-color: #ff6b6b66; color: #ffd6d6; }
.toast.erro .i { color: var(--vermelho); }
.toast.saindo { animation: sairDireita .35s ease-in both; }

/* ---------- animações ---------- */
.entra { animation: subir .55s var(--mola) both; animation-delay: calc(var(--i, 0) * 70ms); }
.surge { animation: surgir .35s var(--mola) both; }
.flutua { animation: flutuar 5s ease-in-out infinite; }

@keyframes subir { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes surgir { from { opacity: 0; transform: scale(.97); } to { opacity: 1; transform: none; } }
@keyframes girar { to { transform: rotate(360deg); } }
@keyframes ping { 0% { transform: scale(1); opacity: .7; } 80%, 100% { transform: scale(2.6); opacity: 0; } }
@keyframes onda { 0% { transform: scale(1); opacity: .6; } 100% { transform: scale(1.9); opacity: 0; } }
@keyframes pulinho { 0%, 80%, 100% { transform: translateY(0); opacity: .4; } 40% { transform: translateY(-4px); opacity: 1; } }
@keyframes pop { 0% { transform: scale(.6); opacity: 0; } 70% { transform: scale(1.08); } 100% { transform: scale(1); opacity: 1; } }
@keyframes progresso { from { width: 0; } }
@keyframes crescer { from { transform: scaleY(0); } }
@keyframes brilho { 0%, 60% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }
@keyframes flutuar { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes entrarDireita { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: none; } }
@keyframes sairDireita { to { opacity: 0; transform: translateX(30px); } }

/* ---------- landing ---------- */
.hero {
  text-align: center; padding: 56px 16px 64px;
  background:
    radial-gradient(circle at 50% 30%, rgba(255, 198, 26, .20) 0, rgba(255, 198, 26, 0) 45%),
    repeating-conic-gradient(from 0deg at 50% 30%, rgba(255, 198, 26, .06) 0deg 6deg, transparent 6deg 18deg),
    var(--marinho);
}
.hero h1 { margin: 0 0 8px; line-height: 0; }
.hero img.logo { width: min(300px, 78vw); height: auto; filter: drop-shadow(0 12px 28px #0008); animation: flutuar 6s ease-in-out infinite; }
.hero .slogan { font-size: clamp(1.1rem, 3.5vw, 1.45rem); font-weight: 700; margin: 0 0 12px; }
.hero .sub { max-width: 620px; margin: 0 auto 8px; color: var(--suave); font-size: 1.05rem; }
.hero .botoes { justify-content: center; }
.hero .botoes .botao { margin-top: 12px; }
.selo-fase { display: inline-block; font: 700 0.75rem Inter, sans-serif; letter-spacing: .15em; text-transform: uppercase; color: var(--marinho); background: var(--amarelo); padding: 5px 12px; border-radius: 99px; }

.bloco { max-width: 1040px; margin: 0 auto; padding: 48px 16px; }
.bloco > h2 { font-family: var(--titulo); font-weight: 400; color: var(--amarelo); font-size: clamp(1.6rem, 5vw, 2.2rem); text-align: center; margin: 0 0 8px; }
.bloco > .intro { text-align: center; color: var(--suave); max-width: 620px; margin: 0 auto 28px; }
.bloco.claro { background: var(--marinho-2); max-width: none; }
.bloco.claro > * { max-width: 1040px; margin-left: auto; margin-right: auto; }

.grade-3 { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.card { background: var(--marinho-3); border-radius: var(--raio); padding: 20px; border: 1px solid var(--linha); transition: transform .3s var(--mola), border-color .3s; }
.card:hover { transform: translateY(-4px); border-color: #ffc61a44; }
.card .num { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--amarelo); color: var(--marinho); font: 400 1.3rem var(--titulo); }
.card h3 { margin: 12px 0 6px; font-size: 1.1rem; }
.card p { margin: 0; color: var(--suave); }

.exemplo { display: grid; gap: 32px; align-items: center; grid-template-columns: 1fr; }
.exemplo .post-telegram { margin: 0 auto; }
.exemplo ul { list-style: none; padding: 0; margin: 0; }
.exemplo li { padding: 8px 0 8px 32px; position: relative; }
.exemplo li::before { content: "✓"; position: absolute; left: 0; top: 7px; width: 22px; height: 22px; border-radius: 50%; background: var(--verde); color: #fff; font-size: 0.8rem; display: grid; place-items: center; }

.faq details { background: var(--marinho-3); border-radius: 12px; padding: 14px 16px; margin: 10px auto; max-width: 760px; border: 1px solid var(--linha); }
.faq summary { cursor: pointer; font-weight: 600; }
.faq details p { color: var(--suave); margin: 10px 0 0; }

.cta-final { text-align: center; }
.cta-final p { color: var(--suave); }

/* ---------- textos legais ---------- */
.legal { max-width: 760px; margin: 32px auto; padding: 0 16px; }
.legal h2 { color: var(--amarelo); font-size: 1.1rem; margin-top: 1.6em; }
.legal p, .legal li { color: #dcdce6; }
.rascunho { background: #6b5a1a; color: #fff3c4; border-radius: 10px; padding: 10px 14px; font-weight: 600; }

/* ---------- telas maiores ---------- */
@media (min-width: 820px) {
  .exemplo { grid-template-columns: 1fr 1fr; }
  .hero { padding: 72px 16px 84px; }
  .duas-colunas { grid-template-columns: 1fr 1fr; align-items: start; }
  .previa-layout { grid-template-columns: 1fr 1fr; }
  .lista-posts li { grid-template-columns: auto 1fr auto auto; grid-template-areas: "o t p q"; }
  .lista-posts .quando { text-align: right; min-width: 90px; }
}

/* ---------- celular ---------- */
@media (max-width: 720px) {
  .marca > span { display: none; }
  /* Painel logado: o menu vira uma barra de abas fixa embaixo, como num app. */
  body.app { padding-bottom: 76px; }
  /* O desfoque do cabeçalho prenderia o menu fixo dentro dele: no celular, fundo sólido. */
  body.app .topo { backdrop-filter: none; background: var(--marinho); }
  body.app .menu {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; justify-content: space-around; gap: 0; flex-wrap: nowrap;
    padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--marinho) 92%, transparent);
    backdrop-filter: blur(12px); border-top: 1px solid var(--linha);
  }
  body.app .menu > a, body.app .menu button.link { flex-direction: column; gap: 2px; padding: 6px 10px; font-size: 0.72rem; }
  body.app .menu .i { width: 22px; height: 22px; }
  body.app .menu form { display: flex; }
  #toasts { left: 12px; right: 12px; bottom: 88px; }
  .toast { max-width: none; }
  .stepper .rotulo { font-size: 0.75rem; }
  .passo .bolinha { width: 38px; height: 38px; }
  .stepper-barra { top: 18px; }
  .stats { grid-template-columns: 1fr 1fr; }
  .stat { flex-direction: column; align-items: flex-start; gap: 8px; }
  .abas a span { display: inline; }
}

/* ---------- movimento reduzido ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
