/**
 * tema.css — Modo escuro do Portal Mamborê.
 *
 * POR QUE ESTE ARQUIVO EXISTE, E NÃO classes "dark:" espalhadas
 * ------------------------------------------------------------
 * O site usa Tailwind por CDN, com as cores escritas direto nas classes
 * (bg-white, text-slate-800...). O jeito idiomático seria acrescentar
 * "dark:bg-slate-900" ao lado de cada uma — só que elas aparecem 639 vezes
 * em 194 arquivos, e todo ajuste futuro exigiria lembrar de escrever a
 * versão escura junto. Um canto esquecido = área branca acesa no escuro.
 *
 * Aqui as ~20 classes claras que o site realmente usa são redefinidas uma
 * vez só, dentro de html.escuro. Uma página nova ganha o modo escuro de
 * graça, sem ninguém precisar lembrar de nada.
 *
 * COMO LIGAR NUMA PÁGINA
 *   <link rel="stylesheet" href="tema.css?v=AAAAMMDD">   (../tema.css em /noticias/)
 *   + o botão e o script de alternância (ver tema.js)
 *
 * O ?v= NÃO É ENFEITE. A hospedagem serve este arquivo com
 * "cache-control: max-age=604800" — sete dias. Sem trocar o ?v=, quem já
 * visitou o site continua com o CSS velho enquanto o HTML novo já chegou, e
 * qualquer componente que dependa de regra nova aparece cru na tela dele.
 * Ao mexer aqui, trocar o ?v= das páginas (a data de hoje serve):
 *   sed -i -E "s#tema[.]css[?]v=[0-9]+#tema.css?v=AAAAMMDD#" *.html noticias/*.html
 * (painel/pagina-empresa.php já faz isso sozinho, pelo filemtime.)
 *
 * REGRA DE OURO AO EDITAR O SITE
 * Se aparecer uma classe de cor CLARA nova (ex.: bg-slate-300), acrescente
 * a contraparte aqui. As classes que já vivem sobre fundo escuro
 * (text-white, bg-brand, border-white/10, text-blue-200) NÃO entram — elas
 * funcionam igual nos dois temas.
 */

:root {
    /* Paleta do escuro: grafite neutro, perto do preto.
       A primeira versão era azul-marinho (#0b1120 e parentes) e o site inteiro
       ficava azul — o azul agora sobrou só onde ele significa alguma coisa:
       links, ícones de marca e o banner do tempo. Superfície é cinza neutro. */
    --esc-fundo: #0b0b0d;      /* plano de fundo da página */
    --esc-fundo-topo: #17171c; /* topo do degradê do corpo */
    --esc-cartao: #141417;     /* superfície de cartão (era branco) */
    --esc-cartao-2: #1c1c21;   /* superfície um degrau acima (era slate-100) */
    --esc-barra: #101014;      /* cabeçalho e rodapé */
    --esc-borda: #26262c;
    --esc-borda-forte: #35353d;
    --esc-texto: #ececef;      /* texto principal */
    --esc-texto-2: #b8b9c0;    /* secundário */
    --esc-texto-3: #8a8b93;    /* apoio / legendas */
    /* O ACENTO É O AMARELO DO LOGO (#FCC300, tirado do próprio arquivo do "M").
       Antes era um azul clareado (#9ab4dd), que só existia porque a cor da
       marca no claro é azul-marinho — e azul-marinho clareado não vira nada,
       vira azul genérico. O amarelo do logo sobre grafite é a mesma dupla da
       marca, e o site passa a ter uma cor própria no escuro em vez de
       emprestada. Contraste sobre o cartão (#141417): ~11:1, folgado. */
    --esc-marca: #fcc300;      /* botões sólidos, links, ícones, barrinhas */
    --esc-marca-2: #ffd452;    /* o mesmo amarelo aceso, para o hover */
}

/* Sem transição na carga, senão a página "pisca" do claro pro escuro. */
html.escuro body,
html.escuro .bg-white,
html.escuro .bg-bglight {
    transition: background-color .18s ease, color .18s ease;
}

/* ───────── Fundos ───────── */

/* O degradê do corpo é de propósito quase imperceptível: clareia uns poucos
   pontos no topo e some antes da metade da tela. Serve pra tirar o aspecto de
   "preto chapado" sem virar um efeito. `fixed` pra ele não se repetir ao rolar. */
/* O degradê vai no <html>, não no <body>: `bg-bglight` mora na tag body e viria
   com !important do Tailwind por cima de qualquer fundo que eu pusesse lá. */
html.escuro {
    background-color: var(--esc-fundo);
    background-image: linear-gradient(180deg, var(--esc-fundo-topo) 0%, #0d0d10 38%, var(--esc-fundo) 100%);
    background-attachment: fixed;
}
html.escuro body            { color: var(--esc-texto); }
html.escuro .bg-bglight     { background-color: transparent !important; }

/* Cartões: mesma ideia, um degrau de luz de cima pra baixo (~3%). */
html.escuro .bg-white {
    background-color: var(--esc-cartao) !important;
    background-image: linear-gradient(165deg, #17171b 0%, var(--esc-cartao) 62%) !important;
}
html.escuro .bg-slate-50,
html.escuro .bg-blue-50     { background-color: var(--esc-cartao-2) !important; }
html.escuro .bg-slate-100   { background-color: var(--esc-cartao-2) !important; }
html.escuro .bg-slate-200   { background-color: var(--esc-borda) !important; }

/* Véus de branco sobre fundo escuro: já funcionam, só ficam sutis demais
   quando o fundo geral escurece. */
html.escuro .bg-white\/5    { background-color: rgba(255,255,255,.07) !important; }
html.escuro .bg-white\/10   { background-color: rgba(255,255,255,.10) !important; }

/* Selos e avisos coloridos claros (verde de "atualizado", âmbar de aviso,
   vermelho de alerta). Viram versões translúcidas da própria cor, que leem
   bem no escuro sem perder o significado. */
html.escuro .bg-emerald-50  { background-color: rgba(16,185,129,.14) !important; }
html.escuro .bg-red-50      { background-color: rgba(239,68,68,.14) !important; }
html.escuro .bg-orange-100  { background-color: rgba(249,115,22,.16) !important; }
html.escuro .text-emerald-700 { color: #6ee7b7 !important; }
html.escuro .text-yellow-900  { color: #713f12 !important; } /* fica sobre bg-yellow-400, que não muda */
html.escuro .border-emerald-200 { border-color: rgba(16,185,129,.35) !important; }

/* ───────── O azul-marinho da marca, no escuro ─────────
   `bg-brand` (#0F172A) é o azul-marinho do portal. No claro ele é a identidade;
   no escuro ele cobre cabeçalho, rodapé, chips e botões — e era metade do
   "azul demais". Aqui ele vira grafite, papel de cada elemento respeitado. */

/* Chip / selo: cinza visível sobre o cartão, texto branco continua legível. */
html.escuro .bg-brand       { background-color: var(--esc-borda-forte) !important; }

/* Algumas páginas escrevem o azul cru em vez de usar o apelido `brand`
   (tempo.html: cartão do tempo e cabeçalho da gaveta). São superfícies
   escuras — viram cartão. */
html.escuro .bg-\[\#0F172A\] {
    background-color: var(--esc-cartao) !important;
    background-image: linear-gradient(165deg, #17171b 0%, var(--esc-cartao) 62%) !important;
}

/* MENU LATERAL DO CELULAR. O painel inteiro é escrito com valores crus
   (#1E293B no painel, #0F172A no cabeçalho, #334155 no realce dos itens) —
   nenhum deles passa pelas regras de `brand` acima. Ele ganha o mesmo degradê
   vertical leve, e o cabeçalho fica transparente: quem separa é a linha, não
   um bloco de cor. */
html.escuro #mobile-menu,
html.escuro .bg-\[\#1E293B\] {
    background-color: #121216 !important;
    background-image: linear-gradient(180deg, #1a1a20 0%, #0f0f13 100%) !important;
}
html.escuro #mobile-menu .bg-\[\#0F172A\] {
    background-color: transparent !important;
    background-image: none !important;
}
/* Realce dos itens do menu (passar o dedo / segurar). */
html.escuro .bg-\[\#334155\],
html.escuro .hover\:bg-\[\#334155\]:hover      { background-color: #2b2b33 !important; }
html.escuro .active\:bg-\[\#334155\]\/80:active { background-color: rgba(43,43,51,.8) !important; }

/* Faixas grandes (o topo "Previsão do Tempo"): cinza-chip numa área dessas
   fica chapado e sem graça — recebem o mesmo degradê das barras. */
html.escuro section.bg-brand {
    background-color: var(--esc-barra) !important;
    background-image: linear-gradient(180deg, #1a1a20 0%, #0e0e12 100%) !important;
}

/* Cabeçalho e rodapé: a barra quase preta, com o mesmo degradê leve.
   (O cabeçalho é <nav>, não <header> — errar a tag deixa a barra cinza-chip.) */
html.escuro nav.bg-brand,
html.escuro header.bg-brand,
html.escuro .bg-slate-900 {
    background-color: var(--esc-barra) !important;
    background-image: linear-gradient(180deg, #17171c 0%, #0e0e12 100%) !important;
}
html.escuro .border-slate-800 { border-color: var(--esc-borda) !important; }

/* Barrinhas decorativas de seção (w-1 / w-1.5): em grafite sumiriam no cartão,
   então ficam no azul de acento — é o lugar onde a cor da marca faz falta. */
html.escuro .bg-brand.w-1,
html.escuro .bg-brand.w-1\.5 { background-color: var(--esc-marca) !important; }

/* Botões sólidos da marca: mesma regra dos botões brancos — continuam botões.
   O "Ler notícia completa" é um <span> dentro do <a>, por isso o
   `justify-center`: é o que separa botão (centralizado) de selo (px-3 py-1). */
html.escuro a.bg-brand,
html.escuro button.bg-brand,
html.escuro span.bg-brand.justify-center {
    background-color: var(--esc-marca) !important;
    color: #0b0b0d !important;
}
html.escuro a.bg-brand:hover,
html.escuro button.bg-brand:hover,
html.escuro a:hover > span.bg-brand.justify-center { background-color: var(--esc-marca-2) !important; }
html.escuro span.bg-brand.justify-center,
html.escuro span.bg-brand.justify-center i { color: #0b0b0d !important; }

/* Cartões com degradê da marca (bg-gradient-to-br from-brand to-accent). */
html.escuro .from-brand.to-accent {
    background-image: linear-gradient(to bottom right, #1d1d23 0%, #2c2c35 100%) !important;
}

/* ───────── Textos ───────── */
html.escuro .text-slate-900,
html.escuro .text-slate-800 { color: var(--esc-texto) !important; }
html.escuro .text-slate-700,
html.escuro .text-slate-600 { color: var(--esc-texto-2) !important; }
html.escuro .text-slate-500,
html.escuro .text-slate-400 { color: var(--esc-texto-3) !important; }
html.escuro .text-brand     { color: var(--esc-marca) !important; }
/* …menos nos TÍTULOS. Amarelo é acento: serve pra dizer "clique aqui" num
   link ou num ícone. Num <h1> ele deixa de destacar e passa a gritar, e o
   título perde a cara de título. Esses seguem na cor de texto normal. */
html.escuro h1.text-brand,
html.escuro h2.text-brand,
html.escuro h3.text-brand   { color: var(--esc-texto) !important; }

/* ───────── Bordas ───────── */
html.escuro .border-slate-100 { border-color: var(--esc-borda) !important; }
html.escuro .border-slate-200 { border-color: var(--esc-borda) !important; }
html.escuro .border-slate-300 { border-color: var(--esc-borda-forte) !important; }

/* ───────── Casos especiais ───────── */

/* ANÚNCIOS: ficam em cartão CLARO mesmo no escuro. As artes são feitas pelos
   clientes pra fundo branco — trocar o fundo por baixo delas mudaria o que
   foi aprovado. Decisão editorial, não descuido. */
html.escuro [id^="ad-container-"] .bg-white,
html.escuro [data-ad] .bg-white {
    background-color: #ffffff !important;
    background-image: none !important;   /* apaga o degradê de cartão escuro */
}
/* Mas o espaço VAZIO ("Espaço disponível para anúncio") não tem arte nenhuma
   pra proteger — no escuro ele era o maior brilho branco da página. Segue o
   tema normalmente, via bg-slate-50 + borda tracejada. */
html.escuro [id^="ad-container-"] img,
html.escuro [data-ad] img { background-color: #ffffff; }

/* Os slides do banner do topo têm degradê próprio. Eles continuam coloridos
   — ali a cor separa um slide do outro à primeira olhada —, mas num tom mais
   fundo e menos saturado, senão viram a única mancha viva da tela agora que o
   resto é grafite. */
html.escuro .banner-cotacoes {
    background-color: #101a13 !important;
    background-image: linear-gradient(160deg, #0d1a12 0%, #16301f 48%, #204628 100%) !important;
}

/* BOTÕES BRANCOS SÓLIDOS ("Anuncie", "Anunciar agora", "Entrar no grupo"…)
   Eles são bg-white + text-brand: escurecendo o fundo, viravam texto solto e
   perdiam a cara de botão. Continuam sólidos, agora em azul claro.
   O QUE SEPARA BOTÃO DE CARTÃO: o botão branco sempre declara a própria cor de
   texto (text-brand / text-[#0F172A]); o cartão não declara nenhuma. Sem isso,
   os cartões de "Leia também" (<a class="group block bg-white">) viravam três
   blocos azuis inteiros no fim da matéria. */
html.escuro a.bg-white.text-brand,
html.escuro a.bg-white.text-\[\#0F172A\],
html.escuro button.bg-white.text-brand,
html.escuro button.bg-white.text-\[\#0F172A\] {
    background-color: var(--esc-marca) !important;
    background-image: none !important;
    color: #0b0b0d !important;
}
/* Mesmo recorte para ícones e hover — no seletor amplo, passar o dedo sobre um
   cartão de "Leia também" o acendia de azul. */
html.escuro a.bg-white.text-brand i,
html.escuro a.bg-white.text-\[\#0F172A\] i,
html.escuro button.bg-white.text-brand i { color: #0b0b0d !important; }
html.escuro a.bg-white.text-brand:hover,
html.escuro a.bg-white.text-\[\#0F172A\]:hover,
html.escuro button.bg-white.text-brand:hover { background-color: var(--esc-marca-2) !important; }

/* …e exceto o botão do grupo de WhatsApp, que segue branco.
   Ele é o único que não fica sobre a página: fica sobre a FAIXA VERDE do
   WhatsApp, que não muda de cor no escuro — ali o verde é a marca do
   WhatsApp, não o tema. Escurecido pela regra de cima, ele virava uma
   pílula quase preta (#141417) com letra verde-escura (#075E54) em cima do
   verde: 2,4:1 de contraste, que é praticamente ilegível.
   Marcado por CLASSE, e não pela cor do texto, pelo mesmo motivo do
   .card-patrocinador: quem mexer no botão amanhã não some com a exceção
   sem perceber. */
html.escuro .btn-grupo-whats {
    background-color: #ffffff !important;
    background-image: none !important;
    color: #075E54 !important;
}
html.escuro .btn-grupo-whats i { color: #075E54 !important; }
/* O hover do Tailwind (hover:bg-emerald-50) é !important — sem esta linha, a
   pílula piscava de volta pro escuro ao passar o dedo. */
html.escuro .btn-grupo-whats:hover { background-color: #ECFDF5 !important; }

/* …exceto quando o botão branco é o próprio espaço de anúncio: ali o branco
   é proposital (a arte do cliente foi feita pra fundo claro). */
html.escuro [id^="ad-container-"] a.bg-white,
html.escuro [data-ad] a.bg-white {
    background-color: #ffffff !important;
    background-image: none !important;
    color: #0F172A !important;
}

/* LOGOS DE PATROCINADOR: mesmo caso dos anúncios. São arquivos dos clientes,
   feitos pra fundo claro — a da 3D Easy é azul-escura e sumia no escuro.
   O cartão continua branco; só a moldura acompanha o tema. */
html.escuro #patrocinadores-grid .bg-white,
html.escuro .card-patrocinador {
    background-color: #ffffff !important;
    background-image: none !important;
    border-color: var(--esc-borda-forte) !important;
}
html.escuro #patrocinadores-grid .text-slate-700,
html.escuro .card-patrocinador .text-slate-700 { color: #334155 !important; }

/* Conteúdo das matérias (o <style> do modelo pinta no claro). */
html.escuro #article-content,
html.escuro #article-content p,
html.escuro #article-content li  { color: var(--esc-texto-2) !important; }
html.escuro #article-content h2,
html.escuro #article-content h3,
html.escuro #article-content strong { color: var(--esc-texto) !important; }
html.escuro #article-content a   { color: var(--esc-marca) !important; }

/* ───────── CORES DE EDITORIA, NO ESCURO ─────────
   Cada editoria tem sua cor (Política azul, Policial vermelho, Saúde
   verde-água...). Elas são escritas INLINE pelo JS da home e pelo gerador das
   matérias — `style="color:#1E40AF"` —, e foram escolhidas para papel branco:
   sobre o cartão grafite o contraste caía para 1,5:1 a 3,5:1, abaixo do 4,5:1
   que se lê sem esforço. A etiqueta de categoria e o "LER MAIS" ficavam
   apagados.

   Aqui cada uma ganha a versão CLARA da mesma cor — o sistema continua de pé,
   só passa a ser legível (6,6:1 a 9,9:1). Regra de folha de estilo com
   !important vence estilo inline, que é o único jeito de alcançá-las.

   Três formas de escrita para cada cor, porque é assim que elas aparecem:
     color:#XXX              → o texto da etiqueta e o "LER MAIS"
     background:#XXX         → a barrinha de 3px ao lado da etiqueta
     --cat-cor:#XXX          → a barra lateral dos subtítulos, dentro da matéria

   O `:not(.text-white)` no fundo não é frescura: a barrinha de 3px é só cor,
   mas a ETIQUETA da manchete ("UTILIDADE PÚBLICA") usa a mesma cor como fundo
   com texto BRANCO em cima. Clarear o fundo dela deixaria branco no claro.
   Etiqueta assim já se lê bem escura — fica como está.

   AO CRIAR UMA EDITORIA NOVA: acrescente o trio dela aqui, senão ela nasce
   ilegível no escuro. As cores claras são as variantes 400 do Tailwind. */

/* Policial */
html.escuro [style*="color:#B91C1C"]      { color: #f87171 !important; }
html.escuro [style*="background:#B91C1C"]:not(.text-white) { background-color: #f87171 !important; }
html.escuro [style*="--cat-cor:#B91C1C"]  { --cat-cor: #f87171 !important; }
/* Eventos */
html.escuro [style*="color:#047857"]      { color: #34d399 !important; }
html.escuro [style*="background:#047857"]:not(.text-white) { background-color: #34d399 !important; }
html.escuro [style*="--cat-cor:#047857"]  { --cat-cor: #34d399 !important; }
/* Política */
html.escuro [style*="color:#1E40AF"]      { color: #60a5fa !important; }
html.escuro [style*="background:#1E40AF"]:not(.text-white) { background-color: #60a5fa !important; }
html.escuro [style*="--cat-cor:#1E40AF"]  { --cat-cor: #60a5fa !important; }
/* Esportes */
html.escuro [style*="color:#C2410C"]      { color: #fb923c !important; }
html.escuro [style*="background:#C2410C"]:not(.text-white) { background-color: #fb923c !important; }
html.escuro [style*="--cat-cor:#C2410C"]  { --cat-cor: #fb923c !important; }
/* Utilidade Pública */
html.escuro [style*="color:#11336B"]      { color: #93b4e8 !important; }
html.escuro [style*="background:#11336B"]:not(.text-white) { background-color: #93b4e8 !important; }
html.escuro [style*="--cat-cor:#11336B"]  { --cat-cor: #93b4e8 !important; }
/* Saúde */
html.escuro [style*="color:#0F766E"]      { color: #2dd4bf !important; }
html.escuro [style*="background:#0F766E"]:not(.text-white) { background-color: #2dd4bf !important; }
html.escuro [style*="--cat-cor:#0F766E"]  { --cat-cor: #2dd4bf !important; }
/* Educação */
html.escuro [style*="color:#6D28D9"]      { color: #a78bfa !important; }
html.escuro [style*="background:#6D28D9"]:not(.text-white) { background-color: #a78bfa !important; }
html.escuro [style*="--cat-cor:#6D28D9"]  { --cat-cor: #a78bfa !important; }
/* Geral */
html.escuro [style*="color:#475569"]      { color: #94a3b8 !important; }
html.escuro [style*="background:#475569"]:not(.text-white) { background-color: #94a3b8 !important; }
html.escuro [style*="--cat-cor:#475569"]  { --cat-cor: #94a3b8 !important; }

/* BARRA DE PROGRESSO DA LEITURA — ela é pintada com a cor da editoria por um
   <style> dentro da própria matéria, fora do alcance dos seletores acima. Cor
   escura sobre a barra quase preta do cabeçalho é barra invisível. No escuro
   ela vira o amarelo do acento: ali a cor não diz editoria, diz "você está
   nesta altura do texto". */
html.escuro #progresso-leitura > span { background: var(--esc-marca) !important; }

/* CONTROLES DO BANNER DO TOPO — o convite "espaço disponível" é um cartão
   CLARO no tema claro, e por isso ganha controles escuros (.topo-claro). No
   escuro esse mesmo cartão é grafite, e controles escuros somem nele: aqui a
   regra volta atrás e devolve os controles claros. */
html.escuro #banner-topo-palco.topo-claro #banner-topo-pontos button { background: rgba(255,255,255,.45); }
html.escuro #banner-topo-palco.topo-claro #banner-topo-pontos button.ativo { background: #fff; }
html.escuro #banner-topo-palco.topo-claro #banner-topo-progresso { background: rgba(255,255,255,.20); }
html.escuro #banner-topo-palco.topo-claro #banner-topo-progresso > span { background: rgba(255,255,255,.85); }

/* CAMPOS DE FORMULÁRIO — chegaram com o guia de empresas (empresas.html), o
   primeiro lugar do site com formulário. O `.bg-white` deles não serve: o
   cartão branco virou degradê no escuro, e degradê dentro de caixa de texto
   fica sujo. Daí a classe própria `campo-form`, que no claro não faz nada
   (quem pinta é o Tailwind) e no escuro assume o campo inteiro. */
html.escuro .campo-form {
    background-color: var(--esc-cartao-2) !important;
    background-image: none !important;
    border-color: var(--esc-borda-forte) !important;
    color: var(--esc-texto) !important;
}
html.escuro .campo-form::placeholder { color: var(--esc-texto-3) !important; }
/* O menu suspenso do <select> é desenhado pelo sistema, não pela página: sem
   isto, no Firefox ele abre branco com texto branco. */
html.escuro .campo-form option { background-color: #1c1c21; color: var(--esc-texto); }

/* ───────── POP-UP DE AVISO (popup.js) ─────────
   Mora aqui, e não no index.html, porque o tema.css é o CSS compartilhado do
   projeto: no dia em que o pop-up precisar aparecer em outra página, é só
   incluir o popup.js lá. */
#popup-aviso {
    position: fixed;
    inset: 0;
    z-index: 400;                      /* acima da gaveta do celular (201) */
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    background: rgba(2, 6, 23, .72);
    opacity: 0;
    transition: opacity .25s ease;
}
#popup-aviso.visivel { opacity: 1; }
#popup-aviso .popup-caixa {
    position: relative;
    width: 100%;
    border-radius: 1rem;
    overflow: hidden;
    box-shadow: 0 25px 50px -12px rgba(0, 0, 0, .55);
    transform: translateY(10px) scale(.98);
    transition: transform .25s ease;
}
#popup-aviso.visivel .popup-caixa { transform: none; }
#popup-aviso img { display: block; width: 100%; height: auto; }
/* O X fica FORA da arte, encostado no canto de cima: por cima da imagem ele
   taparia justamente onde costuma estar o título do anúncio. */
#popup-aviso .popup-fechar {
    position: absolute;
    top: .6rem; right: .6rem;
    z-index: 2;
    width: 2.25rem; height: 2.25rem;
    display: flex; align-items: center; justify-content: center;
    border: 0; border-radius: 9999px;
    background: rgba(15, 23, 42, .55);
    color: #fff; font-size: 1.1rem; cursor: pointer;
    backdrop-filter: blur(4px);
    transition: background-color .15s;
}
#popup-aviso .popup-fechar:hover { background: rgba(15, 23, 42, .85); }
#popup-aviso .popup-fechar:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }

/* Faixa do botão, abaixo da arte. Azul-marinho fixo nos dois temas: o pop-up
   é um cartão fechado, não uma parte da página. */
#popup-aviso .popup-rodape {
    background: #0F172A;
    padding: 1.15rem 1.5rem 1.35rem;
    text-align: center;
}
#popup-aviso .popup-botao {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    background: #FCC300;
    color: #0F172A;
    font-weight: 800;
    font-size: .98rem;
    padding: .85rem 1.9rem;
    border-radius: .75rem;
    text-decoration: none;
    box-shadow: 0 4px 14px rgba(252, 195, 0, .25);
    transition: filter .15s, transform .15s;
}
#popup-aviso .popup-botao:hover { filter: brightness(1.08); transform: translateY(-1px); }
#popup-aviso .popup-botao:active { transform: none; }
#popup-aviso .popup-botao:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
#popup-aviso .popup-apoio {
    margin: .6rem 0 0;
    color: #94A3B8;
    font-size: .78rem;
}

@media (prefers-reduced-motion: reduce) {
    #popup-aviso, #popup-aviso .popup-caixa, #popup-aviso .popup-botao { transition: none; }
}

/* Botão de alternar tema, no menu. */
.btn-tema {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 9999px;
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(255,255,255,.08);
    color: #fff;
    cursor: pointer;
    transition: background-color .15s, border-color .15s;
}
.btn-tema:hover { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.45); }
.btn-tema:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
/* O ícone certo aparece conforme o tema: sol no escuro (pra voltar ao claro). */
.btn-tema .icone-claro { display: none; }
html.escuro .btn-tema .icone-claro { display: inline; }
html.escuro .btn-tema .icone-escuro { display: none; }

/* Atalho do Guia de Empresas, ao lado do botão de tema — só no celular.
   No desktop "Empresas" já é uma aba fixa do menu; no celular ela morava
   só dentro da gaveta lateral (dois toques e uma varredura pra achar).
   O botão é irmão do .btn-tema de propósito: mesma altura, mesma moldura
   translúcida. O que ele tem a mais é a palavra — ícone de loja sozinho,
   no meio de uma barra azul, ninguém lê como "guia de empresas". */
.btn-atalho {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    height: 2.25rem;
    padding: 0 .5rem;
    border-radius: .625rem;
    border: 1px solid rgba(255,255,255,.25);
    background: rgba(255,255,255,.08);
    color: #fff;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    transition: background-color .15s, border-color .15s;
}
.btn-atalho i { font-size: .9375rem; }
.btn-atalho span { font-size: .625rem; font-weight: 700; letter-spacing: .02em; }
.btn-atalho:hover { background: rgba(255,255,255,.18); border-color: rgba(255,255,255,.45); }
.btn-atalho:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.btn-atalho:active { transform: scale(.96); }
/* Na própria página do guia o botão vira o "você está aqui". */
.btn-atalho[aria-current="page"] {
    background: #fff;
    border-color: #fff;
    color: #0F172A;
}
/* Abaixo de 360px (celular bem estreito) a palavra sai e sobra o ícone:
   com o rótulo, o logo do portal começaria a ser espremido. */
@media (max-width: 359px) {
    .btn-atalho { width: 2.25rem; padding: 0; border-radius: 9999px; }
    .btn-atalho span { display: none; }
}

/* Zebra da tabela de comparação dos planos. `bg-slate-50/60` é branco com
   transparência: no grafite ele vira uma faixa CLARA com texto escuro em
   cima — a linha inteira fica ilegível. No escuro a zebra tem que ser uma
   clareada de nada, não um branco a 60%. */
html.escuro .bg-slate-50\/60 { background-color: rgba(255,255,255,.045) !important; }
html.escuro .bg-slate-100     { background-color: var(--esc-cartao-2) !important; }
/* O "x" é cinza-claro DISCRETO no fundo branco. No grafite a mesma cor vira
   quase branco, e o "não tem" passa a gritar mais alto que o "tem" — a
   tabela inteira lida ao contrário. */
html.escuro .tabela-planos .fa-xmark { color: #55555e !important; }

/* Escolha de plano no cadastro. No claro a opção marcada ganha um fundo
   quase branco; no grafite esse mesmo fundo deixaria o texto claro em
   1,13:1 — invisível. No escuro a marcação é o contrário: uma clareada de
   nada, com a borda amarela da marca fazendo o destaque. */
html.escuro .opcao-plano {
    border-color: var(--esc-borda) !important;
    background: var(--esc-cartao) !important;
}
html.escuro .opcao-plano:hover { border-color: #55555e !important; }
html.escuro .opcao-plano:has(:checked) {
    border-color: var(--esc-marca) !important;
    box-shadow: 0 0 0 1px var(--esc-marca) !important;
    background: rgba(255,255,255,.05) !important;
}

/* ─────────────────────── VITRINE DE PRODUTOS ───────────────────────
   O verde do preço promocional (#047857) é escolhido para fundo branco.
   Sobre o grafite ele cai para 3,3:1 — contraste fraco justo no número que
   a pessoa veio ler. Mesmo tratamento que as cores das editorias levaram:
   clareia no escuro, continua verde. */
html.escuro .preco-promo { color: #34D399 !important; }

@media (prefers-reduced-motion: reduce) {
    html.escuro body, html.escuro .bg-white, html.escuro .bg-bglight { transition: none; }
}
