/* aquacalc — COMPONENTES da direção «Linha d'água» (V-260, 29/09/2026)
   ============================================================================
   Os VALORES moram em tokens-site.css (gerado do JSON). Aqui mora só o que usa os valores: o
   topo com menu em painel, a busca, o rodapé, botões e os blocos da home. Nenhum hex aqui —
   a guarda `linha-dagua.test.js` reprova cor cravada nesta folha.

   Uma página está MIGRADA quando carrega esta folha e o tokens-site.css; a lista das migradas
   é declarada em `interno/build-layout.py` (MIGRADAS_LN), que injeta o topo e o rodapé novos só
   nelas. Todo seletor aqui começa por `.ln-` ou vive sob `.ln` (a classe do <body> da página
   migrada), para NUNCA vazar para as 1.600 páginas que ainda usam o estilo.css.
   ========================================================================= */

.ln{margin:0;background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-corpo)/1.55 var(--ln-fonte-texto);-webkit-font-smoothing:antialiased}
/* 07/10 (V-832): botão e campo não herdam a fonte por padrão do navegador (saíam em Arial no menu e nas buscas).
   :where() tem especificidade zero, então toda regra de botão que já define a fonte continua valendo. */
.ln :where(button),.ln :where(input),.ln :where(select),.ln :where(textarea){font-family:inherit}
.ln *,.ln *::before,.ln *::after{box-sizing:border-box}
.ln a{color:inherit;text-decoration:none}
.ln img{max-width:100%;display:block}
.ln :focus-visible{outline:2px solid var(--ln-foco);outline-offset:2px}
.ln-mono{font-family:var(--ln-fonte-mono);font-size:var(--ln-t-rotulo);font-weight:var(--ln-peso-normal);color:var(--ln-rotulo)}
.ln-in{max-width:var(--ln-col-pagina);margin:0 auto;padding-inline:var(--ln-e4)}
@media (min-width:1000px){.ln-in{padding-inline:2.5rem}}

/* ---- botões e links de ação --------------------------------------------------------------- */
.ln-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ln-e2);min-height:var(--ln-alvo-botao);padding:0 1.25rem;border-radius:var(--ln-r1);border:1px solid var(--ln-marca);background:var(--ln-marca);color:var(--ln-sobre-marca)!important;font:var(--ln-peso-medio) var(--ln-t-corpo)/1 var(--ln-fonte-texto);white-space:nowrap;cursor:pointer}
.ln-btn:hover{background:var(--ln-marca-hover);border-color:var(--ln-marca-hover)}
.ln-btn.ln-fantasma{background:transparent;color:var(--ln-tinta)!important;border-color:var(--ln-ctl)}
.ln-btn.ln-fantasma:hover{background:var(--ln-fundo)}
.ln-lnk{color:var(--ln-marca)!important;font-weight:var(--ln-peso-medio);text-decoration:underline!important;text-underline-offset:3px}

/* ---- o topo ------------------------------------------------------------------------------- */
.ln-pula{position:absolute;left:-9999px;top:0;z-index:100;background:var(--ln-noite);color:var(--ln-sobre-noite);padding:var(--ln-e3) var(--ln-e4)}
.ln-pula:focus{left:0}
.ln-topo{position:sticky;top:0;z-index:30;background:var(--ln-papel);border-bottom:1px solid var(--ln-linha)}
.ln-topo-in{max-width:var(--ln-col-pagina);margin:0 auto;padding:var(--ln-e2) var(--ln-e1) var(--ln-e2) var(--ln-e4);display:flex;flex-wrap:wrap;align-items:center;gap:0 var(--ln-e2)}
.ln-logo{display:inline-flex;align-items:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);line-height:1;margin-right:auto}
.ln-logo svg{width:26px;height:26px;flex:none}
/* V-909 (08/10): o logotipo do manual da marca é o ARQUIVO (site/marca/); a altura vem do atributo do <img>, o
   CSS só impede o encolhimento. 28 px de altura = 128 px de largura (o manual pede no mínimo 96);
   a assinatura Meu aquacalc em 26 px = 169 px — é o que cabe no topo a 320 px sem quebrar a linha dos ícones. O .ln-logo svg acima fica para as fichas do experimento (logo de antes até 07/11). */
.ln-logo{flex:none}
.ln-logo .ln-logo-img{display:block;height:28px;width:auto;max-width:none}
.ln-logo picture{display:block;flex:none}
.ln-logo .ln-logo-meu{height:26px}
.ln-marca-p{font-size:1.3rem;font-weight:var(--ln-peso-medio);letter-spacing:-.02em}
.ln-marca-p b{font-weight:var(--ln-peso-leve)}
.ln-icones{display:flex;align-items:center}
.ln-icones a,.ln-icones button{display:grid;place-items:center;width:var(--ln-alvo-toque);height:var(--ln-alvo-toque);border:0;background:none;color:var(--ln-tinta);border-radius:var(--ln-r1);cursor:pointer;padding:0}
.ln-icones svg{width:22px;height:22px}
.ln-nav{order:5;flex:1 0 100%}
.ln-nav>ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 var(--ln-e1)}
.ln-nav>ul>li{position:static;display:flex;align-items:center}
.ln-nav>ul>li>a{white-space:nowrap;display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3);border-radius:var(--ln-r1);font-size:.95rem}
.ln-nav>ul>li>a[aria-current="page"],.ln-nav>ul>li>a.ativo{font-weight:var(--ln-peso-medio);background:var(--ln-suave)}
.ln-abre{display:none}
.ln-painel{display:none}
.ln-fim{display:none;order:6;flex:1 0 100%;flex-wrap:wrap;align-items:center;gap:var(--ln-e2) var(--ln-e4);padding:var(--ln-e2) var(--ln-e3) var(--ln-e3)}
.ln-fim.aberto{display:flex}
.ln-fim a{min-height:var(--ln-alvo-toque);display:inline-flex;align-items:center}
.ln-busca{display:flex;align-items:center;gap:var(--ln-e3);flex:1 0 100%;border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3);background:var(--ln-papel)}
.ln-busca svg{width:18px;height:18px;flex:none}
.ln-busca input{flex:1;min-width:0;border:0;background:transparent;font:inherit;color:var(--ln-tinta);min-height:42px;outline:none}
.ln-busca input::placeholder{color:var(--ln-texto-2)}

@media (min-width:1000px){
  .ln-topo-in{flex-wrap:nowrap;gap:var(--ln-e4);padding:var(--ln-e3) 2.5rem}
  .ln-nav>ul{flex-wrap:nowrap}
  .ln-logo{margin-right:0}
  .ln-nav{order:0;flex:0 1 auto}
  /* V-563/V-564 (06/10): com o 7º item («Meu aquacalc») a linha passava da largura entre 1000 e 1043 px e
     entre 1200 e 1206 px (medido no Playwright, varredura de 2 em 2 px). Respiro das abas menor; a caixa
     de busca inteira entra a partir de 1280 px, com 17rem de largura FIXA (o flex-basis sozinho não conta
     no tamanho intrínseco do .ln-fim, e a caixa encolhia para 152 px) — o texto de exemplo mais o espaço
     que o navegador reserva ao botão de limpar do campo de busca cabem. Prova: interno/render/conferir-topo-largo.js. */
  .ln-nav>ul>li>a{padding:0 var(--ln-e1) 0 var(--ln-e2)}
  .ln-icones{display:none}
  .ln-fim{display:flex!important;order:0;flex:0 1 auto;margin-left:auto;padding:0;gap:var(--ln-e4);white-space:nowrap;font-size:.95rem;flex-wrap:nowrap}
  .ln-fim .ln-busca{flex:0 1 13rem;min-width:9rem}
  .ln-fim .ln-busca{display:none}
  .ln-abre{display:grid;place-items:center;width:28px;height:var(--ln-alvo-toque);border:0;background:none;color:var(--ln-tinta);cursor:pointer;padding:0;border-radius:var(--ln-r1)}
  .ln-abre svg{width:14px;height:14px;transition:transform .15s}
  .ln-abre[aria-expanded="true"] svg{transform:rotate(180deg)}
  .ln-painel{position:absolute;left:0;right:0;top:100%;background:var(--ln-papel);border-bottom:1px solid var(--ln-linha);border-top:1px solid var(--ln-linha);padding:var(--ln-e6) max(2.5rem,calc((100% - var(--ln-col-pagina))/2 + 2.5rem));grid-template-columns:repeat(4,minmax(0,1fr)) 17.5rem;gap:var(--ln-e6)}
  .ln-painel.ln-sem-foto{grid-template-columns:repeat(4,minmax(0,1fr))}
  /* V-433: com JS (.ln-js) quem abre e fecha é o linha-topo.js, com atraso de fechamento; o :hover puro
     fica só para quem não tem JS. A PONTE (::before) cobre o vão entre o pé da aba e o painel (o respiro
     de baixo do topo + a borda), para o mouse não sair da <li> a caminho das opções. */
  .ln-topo:not(.ln-js) .ln-tem-painel:hover>.ln-painel,.ln-painel.aberto{display:grid}
  .ln-topo:not(.ln-js) .ln-tem-painel:hover>a,.ln-tem-painel.ln-ativa>a{background:var(--ln-suave)}
  .ln-painel::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:calc(var(--ln-e3) + 4px)}
  .ln-painel h3{margin:0 0 var(--ln-e3);font:var(--ln-peso-normal) var(--ln-t-rotulo) var(--ln-fonte-mono);color:var(--ln-rotulo)}
  .ln-painel ul{list-style:none;margin:0;padding:0;display:grid;gap:var(--ln-e1)}
  .ln-painel li a{display:block;padding:6px 0;font-size:.95rem;line-height:1.35}
  .ln-painel li a:hover{text-decoration:underline;text-underline-offset:3px}
  .ln-painel .ln-lnk{display:inline-block;margin-top:var(--ln-e3)}
  .ln-vitrine{border-radius:var(--ln-r1);overflow:hidden;background:var(--ln-fundo);display:grid;align-content:start}
  .ln-vitrine img{width:100%;aspect-ratio:16/10;object-fit:cover}
  .ln-vitrine span{padding:var(--ln-e3) 14px;font-weight:var(--ln-peso-medio)}
  .ln-vitrine small{display:block;font:var(--ln-peso-normal) var(--ln-t-rotulo) var(--ln-fonte-mono);color:var(--ln-rotulo);margin-top:var(--ln-e1)}
  .ln-vitrine small.ln-vitrine-ia{font-family:inherit;margin-top:2px}
}
@media (min-width:1000px) and (max-width:1279px){.ln-topo-in{padding-inline:1.5rem}}
@media (min-width:1280px){.ln-fim .ln-busca{display:flex}.ln-fim .ln-so-lupa{display:none!important}.ln-topo-in,.ln-fim{gap:var(--ln-e3)}.ln-fim .ln-busca{flex:0 1 17rem;width:17rem}}
.ln-fim .ln-so-lupa{display:none;width:var(--ln-alvo-toque);justify-content:center}
@media (min-width:1000px) and (max-width:1279px){.ln-fim .ln-so-lupa{display:inline-flex}}
.ln-so-lupa svg{width:20px;height:20px}
@media (prefers-reduced-motion:reduce){.ln-abre svg{transition:none}}

/* ---- rodapé ------------------------------------------------------------------------------- */
.ln-rodape{text-align:left;padding:0;line-height:1.55;border-top:1px solid var(--ln-linha);background:var(--ln-papel);color:var(--ln-texto-2);font-size:var(--ln-t-menor);margin-top:var(--ln-e7)}
.ln-rodape-in{max-width:var(--ln-col-pagina);margin:0 auto;padding:var(--ln-e6) var(--ln-e4) var(--ln-e7);display:grid;gap:var(--ln-e5)}
.ln-rodape-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ln-e5)}
.ln-rodape h2{margin:0 0 var(--ln-e2);font:var(--ln-peso-normal) var(--ln-t-rotulo) var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-rodape ul{list-style:none;margin:0;padding:0;display:grid}
.ln-rodape li a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);color:var(--ln-tinta)}
.ln-rodape p{max-width:none;padding:0;margin:0}
.ln-rodape .ln-tese{margin:var(--ln-e3) 0 0;color:var(--ln-tinta)}
.ln-rodape-grade>div:first-child{grid-column:1/-1}
.ln-rodape .abrir-correcao{text-align:left;background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer;min-height:var(--ln-alvo-toque)}
@media (min-width:1000px){.ln-rodape-in{padding-inline:2.5rem}.ln-rodape-grade{grid-template-columns:1.4fr repeat(3,minmax(0,1fr))}.ln-rodape-grade>div:first-child{grid-column:auto}}
/* 30/10 (V-1464): o 44 px de altura por link é alvo de TOQUE; no computador
   com mouse o rodapé ficava com uma linha a cada 44 px. Com ponteiro fino, 32 px (acima dos 24 px do mínimo AA, SC 2.5.8).
   No celular e no tablet (ponteiro grosso) segue 44 px. Guarda: rodape-com-redes.test.js. */
@media (min-width:1000px) and (hover:hover) and (pointer:fine){.ln-rodape li a,.ln-rodape .abrir-correcao{min-height:2rem}}

/* ---- home: foto do topo ------------------------------------------------------------------- */
.ln-hero{position:relative;color:var(--ln-sobre-noite);background:var(--ln-noite);display:grid;align-items:end;overflow:hidden;min-height:22rem}
.ln-hero picture,.ln-hero>picture img{position:absolute;inset:0;width:100%;height:100%}
.ln-hero img{width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.ln-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,24,32,.88),rgba(8,24,32,.25) 75%,rgba(8,24,32,.1))}
.ln-hero-in{position:relative;z-index:1;padding:var(--ln-e7) var(--ln-e4) var(--ln-e5);display:grid;gap:var(--ln-e4);max-width:41rem}
.ln-hero h1{margin:0;font-weight:var(--ln-peso-normal);font-size:var(--ln-t-h1-celular);line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.ln-hero p{margin:0;font-size:var(--ln-t-corpo);color:var(--ln-sobre-noite);opacity:.9;max-width:44ch}
.ln-hero .ln-busca{border-color:var(--ln-sobre-noite);min-height:56px;background:var(--ln-papel);color:var(--ln-tinta);font-size:1.02rem}
.ln-hero .ln-busca button{border:0;background:var(--ln-marca);color:var(--ln-sobre-marca);font:var(--ln-peso-medio) var(--ln-t-menor)/1 var(--ln-fonte-texto);min-height:40px;padding:0 var(--ln-e4);border-radius:var(--ln-r1);cursor:pointer}
.ln-rapidos{display:flex;flex-wrap:wrap;gap:var(--ln-e1) var(--ln-e4);font-size:.95rem;align-items:center}
.ln-rapidos span{opacity:.8}
.ln-rapidos a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.55)}
@media (min-width:1000px){
  .ln-hero{min-height:40rem}
  .ln-hero::after{background:linear-gradient(90deg,rgba(8,24,32,.82),rgba(8,24,32,.4) 55%,rgba(8,24,32,0) 80%)}
  .ln-hero-in{padding:0 0 var(--ln-e7) max(2.5rem,calc((100vw - var(--ln-col-pagina))/2 + 2.5rem));gap:var(--ln-e5);max-width:none;width:min(100%,calc(41rem + max(2.5rem,(100vw - var(--ln-col-pagina))/2 + 2.5rem)))}
  .ln-hero h1{font-weight:var(--ln-peso-leve);font-size:var(--ln-t-hero);line-height:1.04;letter-spacing:-.03em}
  .ln-hero p{font-size:var(--ln-t-lead)}
}

/* ---- home: blocos ------------------------------------------------------------------------- */
.ln-sec{padding:var(--ln-e7) 0 0}
.ln-sec h2{margin:0 0 var(--ln-e2);font-weight:var(--ln-peso-normal);font-size:var(--ln-t-h2);letter-spacing:-.015em;line-height:1.2}
.ln-sec .ln-sub{margin:0 0 var(--ln-e5);color:var(--ln-texto-2);max-width:60ch}
.ln-entradas{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ln-e4) var(--ln-e3)}
.ln-entradas>li{display:grid}
.ln-entrada{display:grid;gap:var(--ln-e2);align-content:start}
.ln-entrada .ln-foto{border-radius:var(--ln-r1);overflow:hidden;aspect-ratio:4/3;background:var(--ln-fundo)}
.ln-entrada .ln-foto img{width:100%;height:100%;object-fit:cover}
.ln-entrada h3{margin:var(--ln-e1) 0 0;font-weight:var(--ln-peso-normal);font-size:1.08rem;letter-spacing:-.015em}
.ln-entrada p{display:none;margin:0;font-size:.95rem;color:var(--ln-texto-2);line-height:1.45}
@media (min-width:1000px){
  .ln-entradas{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ln-e5)}
  .ln-entrada h3{font-size:var(--ln-t-h3)}
  .ln-entrada p{display:block}
}
.ln-lista{display:grid;border-top:1px solid var(--ln-linha)}
.ln-lista a{display:grid;grid-template-columns:72px 1fr;gap:var(--ln-e3);align-items:center;padding:var(--ln-e3) 0;border-bottom:1px solid var(--ln-linha)}
.ln-lista img{width:72px;height:54px;object-fit:cover;border-radius:var(--ln-r1)}
.ln-lista h3{margin:0;font-size:var(--ln-t-corpo);font-weight:var(--ln-peso-medio);line-height:1.3}
.ln-lista .ln-mono{display:block;margin-top:2px}
.ln-lista.ln-sem-img a{grid-template-columns:1fr auto;min-height:var(--ln-alvo-toque)}
.ln-lista.ln-sem-img a::after{content:"→";color:var(--ln-marca)}
.ln-lista b{font-weight:var(--ln-peso-medio);line-height:1.3;display:block}
@media (min-width:1000px){.ln-lista{grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--ln-e5)}.ln-dois .ln-lista{grid-template-columns:1fr}}
.ln-ponte{margin-top:var(--ln-e7);padding:var(--ln-e5);background:var(--ln-fundo);border-radius:var(--ln-r1);display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e4) var(--ln-e5)}
.ln-ponte div{flex:1 1 20rem}
.ln-ponte h2{margin:0 0 var(--ln-e1);font-weight:var(--ln-peso-normal);font-size:var(--ln-t-h2);letter-spacing:-.015em}
.ln-ponte p{margin:0;color:var(--ln-texto-2)}
.ln-texto{max-width:var(--ln-col-texto)}
.ln-texto p{margin:0 0 var(--ln-e3)}
.ln-texto ul{margin:0 0 var(--ln-e3);padding-left:1.1em;display:grid;gap:var(--ln-e2)}
.ln-texto a:not(.ln-btn){color:var(--ln-marca);text-decoration:underline;text-underline-offset:3px}
.ln-texto h2,.ln-texto h3{margin:0 0 var(--ln-e3)}
.ln-texto h3{font-size:var(--ln-t-h3);font-weight:var(--ln-peso-normal)}
.ln-dois{display:grid;gap:var(--ln-e6)}
@media (min-width:1000px){.ln-dois{grid-template-columns:1fr 1fr}}
.ln-aviso-lojista{margin:0;font-size:var(--ln-t-menor)}

/* ---- a FERRAMENTA (calculadora) na Linha d'água — V-326, 01/10/2026 --------------------------
   O /calculadoras ainda estava no padrão antigo, e a migração foi pedida com prioridade. As 52
   calculadoras têm o mesmo esqueleto (container › migalha › h1 › intro › .calc com .campo e
   .resultado › FAQ em <details> › guias relacionados › fontes), escrito para o estilo.css. A troca
   não reescreve o HTML de cada uma: veste os MESMOS componentes, sob `.ln-ferramenta` (a classe que
   o migrar-para-linha.py põe no <body>), com especificidade maior que a do estilo.css e a dos
   <style> de cada página. Página que ainda não migrou não carrega esta folha — nada vaza. */
.ln-ferramenta main{display:block;padding-bottom:var(--ln-e6)}
.ln-ferramenta .container{max-width:calc(var(--ln-col-texto) + 2 * var(--ln-e4));margin:0 auto;padding:0 var(--ln-e4)}
.ln-ferramenta main a{color:var(--ln-marca);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.ln-ferramenta main a:hover{color:var(--ln-marca-hover)}
.ln-ferramenta main h1{font:var(--ln-peso-leve) var(--ln-t-h1-celular)/1.12 var(--ln-fonte-texto);letter-spacing:-.02em;color:var(--ln-tinta);margin:var(--ln-e3) 0 var(--ln-e3);text-wrap:balance}
.ln-ferramenta main h2{font:var(--ln-peso-normal) var(--ln-t-h2)/1.2 var(--ln-fonte-texto);letter-spacing:-.01em;color:var(--ln-tinta);margin:var(--ln-e7) 0 var(--ln-e3);text-wrap:balance}
.ln-ferramenta main h3{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-ferramenta main p,.ln-ferramenta main li{font-size:var(--ln-t-corpo);line-height:1.6;color:var(--ln-tinta)}
.ln-ferramenta .migalha{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);padding:var(--ln-e5) 0 0}
.ln-ferramenta .migalha a{color:var(--ln-rotulo);text-decoration:underline;text-underline-offset:2px}
.ln-ferramenta .intro{font-size:var(--ln-t-lead);line-height:1.55;color:var(--ln-texto-2);margin:0 0 var(--ln-e5);max-width:var(--ln-col-texto)}
/* o cartão da conta */
.ln-ferramenta .calc{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e5) var(--ln-e4);box-shadow:none}
.ln-ferramenta .calc .linha{display:flex;flex-wrap:wrap;gap:var(--ln-e4);margin-bottom:var(--ln-e4)}
.ln-ferramenta .campo{gap:var(--ln-e1)}
.ln-ferramenta .campo label,.ln-ferramenta .calc label{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);letter-spacing:0;text-transform:none}
.ln-ferramenta .campo input,.ln-ferramenta .campo select,.ln-ferramenta .calc input:not([type="checkbox"]):not([type="radio"]),.ln-ferramenta .calc select,.ln-ferramenta .calc textarea{min-height:var(--ln-alvo-toque);padding:var(--ln-e2) var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);box-shadow:none}
.ln-ferramenta .campo input:focus,.ln-ferramenta .campo select:focus,.ln-ferramenta .calc input:focus,.ln-ferramenta .calc select:focus{outline:2px solid var(--ln-foco);outline-offset:1px;border-color:var(--ln-foco);box-shadow:none}
.ln-ferramenta .campo input::placeholder{color:var(--ln-texto-2)}
.ln-ferramenta .calc input[type="checkbox"],.ln-ferramenta .calc input[type="radio"]{accent-color:var(--ln-marca);width:1.1rem;height:1.1rem}
.ln-ferramenta main .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ln-e2);min-height:var(--ln-alvo-botao);padding:0 1.25rem;border-radius:var(--ln-r1);border:1px solid var(--ln-marca);background:var(--ln-marca);color:var(--ln-sobre-marca)!important;font:var(--ln-peso-medio) var(--ln-t-corpo)/1 var(--ln-fonte-texto);box-shadow:none;text-decoration:none!important}
.ln-ferramenta main .btn:hover{background:var(--ln-marca-hover);border-color:var(--ln-marca-hover)}
/* todo botão do corpo é SECUNDÁRIO (contornado): salvar, compartilhar, alternar modo. Vários nascem com
   style="" do JS antigo — por isso o !important, que é o único jeito de a folha vencer o atributo. */
.ln-ferramenta main button:not(.abrir-correcao):not(.maq-lk):not(.chip):not(.tirar){display:inline-flex;align-items:center;justify-content:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);padding:var(--ln-e2) var(--ln-e4)!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-medio) var(--ln-t-menor)/1.2 var(--ln-fonte-texto)!important;box-shadow:none!important;cursor:pointer;text-align:center}
.ln-ferramenta main button:not(.abrir-correcao):not(.maq-lk):not(.chip):not(.tirar):hover{background:var(--ln-fundo)!important}
.ln-ferramenta main button.ativo:not(.abrir-correcao):not(.maq-lk):not(.chip):not(.tirar),.ln-ferramenta main button[aria-pressed="true"]:not(.abrir-correcao):not(.maq-lk):not(.chip):not(.tirar){box-shadow:inset 0 -3px 0 var(--ln-marca)!important;background:var(--ln-suave)!important;border-color:var(--ln-marca)!important}
.ln-ferramenta .compartilhar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e2);margin-top:var(--ln-e4)}
.ln-ferramenta .compartilhar>span{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
/* o «Meu aquário» que o meu-aquario.js pendura no topo da conta */
.ln-ferramenta .maq{background:var(--ln-suave);border:0;border-radius:var(--ln-r1);color:var(--ln-tinta);font-size:var(--ln-t-menor);padding:var(--ln-e3) var(--ln-e4)}
.ln-ferramenta .maq-lk{color:var(--ln-marca)!important;font:var(--ln-peso-medio) var(--ln-t-menor)/1.3 var(--ln-fonte-texto)!important;background:none!important;border:0!important;text-decoration:underline;text-underline-offset:3px;min-height:var(--ln-alvo-toque);padding:0!important;cursor:pointer}
/* o resultado: o bloco escuro fixo da direção, com o número grande e leve */
.ln-ferramenta .resultados{gap:var(--ln-e3)}
.ln-ferramenta .resultado,.ln-ferramenta .resultado.claro{background:var(--ln-noite);color:var(--ln-sobre-noite);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e4) var(--ln-e5);box-shadow:none}
.ln-ferramenta .resultado>b,.ln-ferramenta .calc .resultado>b{display:block;font:var(--ln-peso-leve) var(--ln-t-dado)/1.15 var(--ln-fonte-texto)!important;letter-spacing:-.01em;color:var(--ln-sobre-noite)}
.ln-ferramenta .resultado .detalhe,.ln-ferramenta .resultado .det{font-size:var(--ln-t-menor);line-height:1.5;color:var(--ln-sobre-noite);opacity:.88}
.ln-ferramenta .resultado a{color:var(--ln-destaque)}
.ln-ferramenta .resultado .n{color:var(--ln-destaque)}
/* notas, avisos e conselhos */
.ln-ferramenta .nota,.ln-ferramenta p.nota{background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-marca);border-radius:var(--ln-r1);color:var(--ln-texto-2);font-size:var(--ln-t-menor);line-height:1.55;padding:var(--ln-e3) var(--ln-e4)}
.ln-ferramenta .nota-fonte,.ln-ferramenta .fonte-ficha{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-ferramenta .aviso{border-radius:var(--ln-r1)}
.ln-ferramenta .conselho{border-radius:var(--ln-r1);font-size:var(--ln-t-menor)}
.ln-ferramenta .dica{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
/* perguntas frequentes */
.ln-ferramenta details{border:0;border-top:1px solid var(--ln-linha);border-radius:0;padding:var(--ln-e3) 0;margin:0;background:none}
.ln-ferramenta details:last-of-type{border-bottom:1px solid var(--ln-linha)}
.ln-ferramenta summary{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.4 var(--ln-fonte-texto);color:var(--ln-tinta);min-height:var(--ln-alvo-toque);display:flex;align-items:center;cursor:pointer}
.ln-ferramenta details p{font-size:var(--ln-t-corpo);color:var(--ln-tinta);margin:var(--ln-e2) 0 0}
/* guias relacionados e calculadoras relacionadas */
.ln-ferramenta .guias-rel{background:none;border:0;border-radius:0;padding:0;margin:var(--ln-e7) 0 0}
.ln-ferramenta main .guias-rel h2{margin:0 0 var(--ln-e3)}
.ln-ferramenta .guias-rel ul{list-style:none;padding:0;margin:0}
.ln-ferramenta .guias-rel li{border-top:1px solid var(--ln-linha);padding:var(--ln-e3) 0}
.ln-ferramenta .guias-rel li a{color:var(--ln-tinta);font-weight:var(--ln-peso-medio);font-size:var(--ln-t-corpo)}
.ln-ferramenta .guias-rel li span{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-ferramenta .guias-rel-todos{color:var(--ln-marca)!important;font-weight:var(--ln-peso-medio);font-size:var(--ln-t-menor);display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque)}
.ln-ferramenta .relacionadas{gap:var(--ln-e2)}
.ln-ferramenta .relacionadas a{background:var(--ln-papel);color:var(--ln-tinta)!important;border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);padding:0 var(--ln-e3);min-height:var(--ln-alvo-toque);display:inline-flex;align-items:center;text-decoration:none!important}
.ln-ferramenta .relacionadas a:hover{background:var(--ln-fundo)}
/* tabelas dentro do corpo */
.ln-ferramenta main table{font-size:var(--ln-t-menor);border-collapse:collapse}
.ln-ferramenta main th{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.3 var(--ln-fonte-mono);color:var(--ln-rotulo);text-align:left;border-bottom:1px solid var(--ln-linha)}
.ln-ferramenta main td{border-bottom:1px solid var(--ln-linha)}
@media (min-width:1000px){
  .ln-ferramenta main h1{font-size:var(--ln-t-h1)}
  .ln-ferramenta .calc{padding:var(--ln-e6)}
  .ln-ferramenta .container{padding:0 var(--ln-e4)}
}
/* ---- o que a revisão das 52 achou (01/10, quatro revisores, 76 achados) — por componente ---- */
/* título dentro do cartão: não herda o respiro de seção do artigo */
.ln-ferramenta main .calc h2,.ln-ferramenta main .calc h3{margin:var(--ln-e5) 0 var(--ln-e3);font-size:var(--ln-t-lead);font-weight:var(--ln-peso-medio)}
.ln-ferramenta main .calc>h2:first-child,.ln-ferramenta main .calc>h3:first-child,.ln-ferramenta main .calc>p:first-child{margin-top:0}
/* negrito da casa é o médio; caixa alta antiga sai (em fórmula química ela muda o sentido: Mg ≠ MG) */
.ln-ferramenta main b,.ln-ferramenta main strong{font-weight:var(--ln-peso-medio)}
.ln-ferramenta main th,.ln-ferramenta main .grupo,.ln-ferramenta main .grupo-tit,.ln-ferramenta main .calc-titulo,.ln-ferramenta main label,.ln-ferramenta main .rot{text-transform:none!important;letter-spacing:0!important}
.ln-ferramenta main .grupo,.ln-ferramenta main .grupo-tit,.ln-ferramenta main .calc-titulo{font:var(--ln-peso-medio) var(--ln-t-menor)/1.4 var(--ln-fonte-texto)!important;color:var(--ln-tinta)!important;margin:var(--ln-e4) 0 var(--ln-e2)!important}
/* cantos: a direção tem um só (4px); pílula e cartão redondo do estilo antigo viram retângulo */
.ln-ferramenta main div,.ln-ferramenta main section,.ln-ferramenta main aside,.ln-ferramenta main table,.ln-ferramenta main ul,.ln-ferramenta main ol,.ln-ferramenta main li,.ln-ferramenta main p,.ln-ferramenta main pre,.ln-ferramenta main span[class]{border-radius:var(--ln-r1)!important}
/* o conselho DENTRO do resultado: caixa clara com tinta escura, título no peso médio — a regra do número
   grande era a que deixava «Cobre, com folga.» branco sobre verde-claro */
.ln-ferramenta .conselho{background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-marca);color:var(--ln-tinta)}
.ln-ferramenta .conselho.atencao{border-left-color:var(--sev-atencao-borda,var(--ln-ctl))}
.ln-ferramenta .conselho.critico{border-left-color:var(--sev-critico-borda,var(--ln-ctl))}
.ln-ferramenta .conselho b,.ln-ferramenta .resultado .conselho b{display:inline;font:var(--ln-peso-medio) var(--ln-t-menor)/1.5 var(--ln-fonte-texto)!important;color:var(--ln-tinta)!important}
.ln-ferramenta .resultado .conselho,.ln-ferramenta .resultado .conselho *{color:var(--ln-tinta)}
/* caixas de aviso de página (naosei, fronteira, aviso, modelo-aviso, receita-prazo): a .nota da direção */
.ln-ferramenta .naosei,.ln-ferramenta .fronteira,.ln-ferramenta .aviso,.ln-ferramenta .modelo-aviso,.ln-ferramenta .receita-prazo,.ln-ferramenta .receita{background:var(--ln-papel)!important;border:1px solid var(--ln-linha)!important;border-left:3px solid var(--ln-ctl)!important;color:var(--ln-tinta)!important;font-size:var(--ln-t-menor)}
.ln-ferramenta .naosei *,.ln-ferramenta .fronteira *{color:inherit}
/* blocos escuros de página (gargalo, delta): o mesmo bloco do resultado, texto de apoio legível */
.ln-ferramenta .gargalo,.ln-ferramenta .delta{background:var(--ln-noite)!important;color:var(--ln-sobre-noite)!important;border:1px solid var(--ln-linha)}
.ln-ferramenta .gargalo *,.ln-ferramenta .delta *{color:var(--ln-sobre-noite)!important}
.ln-ferramenta .gargalo>b,.ln-ferramenta .delta>b{font:var(--ln-peso-leve) var(--ln-t-dado)/1.15 var(--ln-fonte-texto)!important}
.ln-ferramenta .gargalo .detalhe,.ln-ferramenta .delta .detalhe{opacity:.88}
/* faixa (o rótulo de estado dentro do resultado) */
.ln-ferramenta .faixa{font:var(--ln-peso-medio) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono)!important;padding:2px var(--ln-e2)!important}
/* cartões brancos aninhados no painel (cenário, combinação, modelo, insumo) */
.ln-ferramenta .cen,.ln-ferramenta .combo,.ln-ferramenta .modelo,.ln-ferramenta .insumos li{background:var(--ln-papel);border:1px solid var(--ln-linha);box-shadow:none}
.ln-ferramenta .insumos li b,.ln-ferramenta .modelo td a{color:var(--ln-tinta)!important;font-weight:var(--ln-peso-medio)!important}
/* tabelas: régua fina, sem grade; a tabela rola dentro da própria caixa e ocupa a largura */
.ln-ferramenta main table{display:table!important;width:100%;max-width:100%}
.ln-ferramenta main th,.ln-ferramenta main td{border:0!important;border-bottom:1px solid var(--ln-linha)!important;background:none!important;padding:var(--ln-e2) var(--ln-e3) var(--ln-e2) var(--ln-e2)!important;font-weight:var(--ln-peso-normal)!important;color:var(--ln-tinta)}
.ln-ferramenta main th{color:var(--ln-rotulo)!important;font-family:var(--ln-fonte-mono)!important}
.ln-ferramenta main tr[class] td{font-weight:var(--ln-peso-medio)!important}
.ln-ferramenta .cen table{table-layout:auto!important}
@media (max-width:999px){.ln-ferramenta main td,.ln-ferramenta main th{white-space:normal!important;overflow-wrap:break-word}.ln-ferramenta main td.n{white-space:normal!important}.ln-ferramenta .cen td.n{white-space:nowrap!important}}
.ln-ferramenta main td.n{font-family:var(--ln-fonte-mono)!important;font-weight:var(--ln-peso-normal)!important}
.ln-ferramenta main td input,.ln-ferramenta .calc td input{min-height:36px!important;padding:var(--ln-e1) var(--ln-e2)!important;font-size:var(--ln-t-menor)!important;width:4.5rem!important;min-width:0;display:inline-block}
/* o campo ocupa a coluna dele (largura fixa em px cortava o placeholder) */
.ln-ferramenta .campo input,.ln-ferramenta .campo select{width:100%!important;max-width:100%}
.ln-ferramenta .calc select{text-overflow:ellipsis}
/* rótulo de campo que a página escreveu à mão (campo-t) segue o rótulo da casa */
.ln-ferramenta .campo-t{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono)!important;color:var(--ln-rotulo)!important}
/* a lista de ações numeradas: título e texto na mesma linha */
.ln-ferramenta .acoes b{display:inline!important}
/* fórmula em mono: peso normal, alinhada à esquerda, quebra limpa */
.ln-ferramenta main pre,.ln-ferramenta main p[style*="JetBrains"],.ln-ferramenta .formula{font:var(--ln-peso-normal) var(--ln-t-menor)/1.6 var(--ln-fonte-mono)!important;background:var(--ln-fundo)!important;text-align:left!important;white-space:pre-wrap;overflow-wrap:anywhere}
/* parágrafos de seção sem classe dentro do cartão */
.ln-ferramenta .calc section p+p{margin-top:var(--ln-e3)}
/* FAQ: o resumo é linha da lista, com o marcador nativo; o «guia» no fim da FAQ fica igual às outras */
.ln-ferramenta main details>summary,.ln-ferramenta main details.ind-guia>summary{display:list-item;min-height:0;padding:var(--ln-e2) 0;font:var(--ln-peso-medio) var(--ln-t-corpo)/1.4 var(--ln-fonte-texto)!important;color:var(--ln-tinta)!important}
.ln-ferramenta main details.ind-guia>summary::after{content:none!important}
.ln-ferramenta main details.ind-guia{margin:0!important;padding:var(--ln-e3) 0!important;border:0!important;border-top:1px solid var(--ln-linha)!important;border-bottom:1px solid var(--ln-linha)!important;background:none!important}
/* link com cor cravada no HTML (o «aquacalc» do lojista, nomes de planta) segue o link da casa */
.ln-ferramenta main a[style]{color:var(--ln-marca)!important;font-weight:inherit!important}
/* os chips de espécie (compatibilidade, lotação): retângulo contornado, nome sobre o científico */
.ln-ferramenta main button.chip{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:var(--ln-alvo-toque);padding:var(--ln-e1) var(--ln-e3)!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-normal) var(--ln-t-menor)/1.25 var(--ln-fonte-texto)!important;text-align:left;white-space:normal;box-shadow:none!important;cursor:pointer}
.ln-ferramenta main button.chip i,.ln-ferramenta main button.chip span{font-size:var(--ln-t-rotulo);color:var(--ln-texto-2)}
.ln-ferramenta main button.chip.ativo,.ln-ferramenta main button.chip[aria-pressed="true"]{background:var(--ln-suave)!important;border-color:var(--ln-marca)!important}
/* ação principal de bloco (pri) é a verde */
.ln-ferramenta main button.pri:not(.abrir-correcao):not(.maq-lk):not(.chip):not(.tirar){background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important}
/* número de resultado que a página encolheu com <style> próprio volta ao tamanho do dado */
.ln-ferramenta .calc .resultado>b{font-size:var(--ln-t-dado)!important}
/* resultado ímpar na grade de dois: o último ocupa a linha */
.ln-ferramenta .resultados>.resultado:last-child:nth-child(odd){grid-column:1/-1}

/* ---- o HUB de ferramentas (/calculadoras) na Linha d'água — V-326, 01/10/2026 ----------------
   A página lista as ferramentas em cartões, com filtro por ambiente e o «Vim porque…». Mesma
   técnica da ferramenta: os componentes de sempre, vestidos sob `.ln-hub`. */
.ln-hub .container{max-width:var(--ln-col-pagina);margin:0 auto;padding:0 var(--ln-e4)}
.ln-hub main{padding:var(--ln-e6) 0 var(--ln-e7)}
.ln-hub main a{text-decoration:none}
/* filtro por ambiente: retângulo contornado, o ativo no tom suave */
.ln-hub .atalhos{display:flex;flex-wrap:wrap;gap:var(--ln-e2);margin:0 0 var(--ln-e5)}
.ln-hub .atalho{display:inline-flex;align-items:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);padding:0 var(--ln-e4);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-normal) var(--ln-t-menor)/1 var(--ln-fonte-texto)!important;text-decoration:none!important}
.ln-hub .atalho i{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);font-style:normal;color:var(--ln-rotulo)}
.ln-hub .atalho.ativo{background:var(--ln-suave)!important;border-color:var(--ln-marca)}
/* «Vim porque…» */
.ln-hub .vim-porque{background:var(--ln-fundo)!important;border:1px solid var(--ln-linha)!important;border-radius:var(--ln-r1)!important;padding:var(--ln-e5) var(--ln-e4)!important;margin:0 0 var(--ln-e6)!important}
.ln-hub .vim-porque h2{font:var(--ln-peso-normal) var(--ln-t-h2)/1.2 var(--ln-fonte-texto)!important;color:var(--ln-tinta)!important;margin:0 0 var(--ln-e2)!important}
.ln-hub .vim-porque-sub{color:var(--ln-texto-2)!important;font-size:var(--ln-t-corpo)!important}
.ln-hub .hub-nota{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:var(--ln-e6) 0 0}   /* V-410: o aviso de estimativa, curto e no pé */
.ln-hub .vim-porque-grupo h3{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono)!important;color:var(--ln-rotulo)!important;text-transform:none!important;letter-spacing:0!important;margin:var(--ln-e4) 0 var(--ln-e2)!important}
.ln-hub .vim-porque-grupo a{color:var(--ln-tinta)!important;text-decoration:underline!important;text-decoration-color:var(--ln-ctl)!important;text-underline-offset:3px;font-size:var(--ln-t-menor)!important;font-weight:var(--ln-peso-normal)!important}
.ln-hub .vim-porque-grupo li{padding:var(--ln-e1) 0}
/* V-410: «Vim porque…» recolhido; o resumo é o título, e o alvo do toque tem a altura do registro */
.ln-hub .vim-porque-dobra>summary{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--ln-e2);min-height:var(--ln-alvo-botao);cursor:pointer;list-style:none}
.ln-hub .vim-porque-dobra>summary::-webkit-details-marker{display:none}
.ln-hub .vim-porque-dobra>summary::after{content:"+";margin-left:auto;color:var(--ln-marca);font-weight:var(--ln-peso-medio)}
.ln-hub .vim-porque-dobra[open]>summary::after{content:"−"}
.ln-hub .vim-porque-dobra>summary h2{display:inline;margin:0}
/* os cartões */
.ln-hub .grade{display:grid;grid-template-columns:1fr;gap:var(--ln-e3)}
.ln-hub .card{display:grid;grid-template-columns:2.5rem 1fr;grid-template-rows:auto auto;column-gap:var(--ln-e3);align-items:center;background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e3) var(--ln-e4);transition:none;color:var(--ln-tinta)}
.ln-hub .card:hover{transform:none;box-shadow:none;border-color:var(--ln-ctl);background:var(--ln-fundo)}
.ln-hub .card .icone{grid-row:1/3;width:2.5rem;height:2.5rem;border-radius:var(--ln-r1);background:var(--ln-noite);margin:0}
.ln-hub .card .icone img{width:2.5rem;height:2.5rem;border-radius:var(--ln-r1)}
.ln-hub .card h2{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0 0 var(--ln-e1)}
.ln-hub .card p{font-size:var(--ln-t-menor);line-height:1.5;color:var(--ln-texto-2);margin:0}
.ln-hub .card .ir{margin-top:var(--ln-e2);color:var(--ln-marca);font:var(--ln-peso-medio) var(--ln-t-menor)/1.3 var(--ln-fonte-texto)}
.ln-hub .cta{background:var(--ln-noite);border-radius:var(--ln-r1);color:var(--ln-sobre-noite);text-align:left;padding:var(--ln-e6) var(--ln-e5)}
.ln-hub .cta h2{font:var(--ln-peso-leve) var(--ln-t-h2)/1.2 var(--ln-fonte-texto);color:var(--ln-sobre-noite)}
.ln-hub .cta .btn{display:inline-flex;align-items:center;min-height:var(--ln-alvo-botao);padding:0 1.25rem;border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta)!important;font:var(--ln-peso-medio) var(--ln-t-corpo)/1 var(--ln-fonte-texto);box-shadow:none}
@media (min-width:700px){.ln-hub .grade{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){
  .ln-hub .container{padding:0 2.5rem}
  .ln-hub .grade{grid-template-columns:repeat(3,minmax(0,1fr))}
  .ln-hub .vim-porque{padding:var(--ln-e6)!important}
}

/* rodada 2 da revisão (01/10) */
.ln-ferramenta main .conselho,.ln-ferramenta main .conselho.atencao,.ln-ferramenta main .conselho.critico{background:var(--ln-papel)!important;border:1px solid var(--ln-linha)!important;border-left:3px solid var(--ln-marca)!important;color:var(--ln-tinta)!important;font-size:var(--ln-t-menor)!important}
.ln-ferramenta main .conselho.atencao{border-left-color:var(--sev-atencao-borda,var(--ln-ctl))!important}
.ln-ferramenta main .conselho.critico{border-left-color:var(--sev-critico-borda,var(--ln-ctl))!important}
.ln-ferramenta main section p+p,.ln-ferramenta main article p+p{margin-top:var(--ln-e3)}
.ln-ferramenta main ul+p,.ln-ferramenta main ol+p{margin-top:var(--ln-e4)}
.ln-ferramenta main .calc-titulo{font-size:var(--ln-t-corpo)!important}
.ln-ferramenta main .calc>.grupo:first-child,.ln-ferramenta main .calc>.grupo-tit:first-child{margin-top:0!important}
.ln-ferramenta main .calc p+.campo,.ln-ferramenta main .calc p+.linha{margin-top:var(--ln-e3)}
.ln-ferramenta main code{font-family:var(--ln-fonte-mono);font-size:.92em}
.ln-ferramenta main details>summary{list-style:disclosure-closed outside!important;margin-left:1.1em}
.ln-ferramenta main details[open]>summary{list-style-type:disclosure-open!important}
/* lotação: o plano */
.ln-ferramenta main button.chip.no-plano{background:var(--ln-suave)!important;border-color:var(--ln-marca)!important;box-shadow:none!important}
.ln-ferramenta main button.chip .qtd{background:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;font:var(--ln-peso-medio) var(--ln-t-rotulo)/1.5 var(--ln-fonte-mono)!important;padding:0 var(--ln-e2)!important}
.ln-ferramenta .resumo-plano{background:var(--ln-papel)!important;border:1px solid var(--ln-linha)!important;color:var(--ln-tinta)!important}
.ln-ferramenta .plano-item{background:var(--ln-papel)!important;border-color:var(--ln-linha)!important}
.ln-ferramenta .combo .pct{font-weight:var(--ln-peso-medio)!important}
/* hub: botões de compartilhar contornados, contagem do filtro legível */
.ln-hub main button:not(.abrir-correcao){display:inline-flex;align-items:center;justify-content:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);padding:var(--ln-e2) var(--ln-e4)!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-medio) var(--ln-t-menor)/1.2 var(--ln-fonte-texto)!important;box-shadow:none!important;cursor:pointer;text-align:center}
.ln-hub main a.wpp,.ln-hub main .compartilhar a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:0 var(--ln-e4)!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-medio) var(--ln-t-menor)/1.2 var(--ln-fonte-texto)!important}
.ln-hub .atalho i,.ln-hub .atalho.ativo i{color:var(--ln-rotulo)!important}
.ln-ferramenta .cen td:first-child{min-width:5.5rem}
.ln-ferramenta .cen td input{width:3.6rem!important}
.ln-ferramenta .cen td.n{font-size:var(--ln-t-rotulo)!important;padding-left:var(--ln-e1)!important;padding-right:var(--ln-e1)!important}
.ln-ferramenta .cen{padding:var(--ln-e3)!important}.ln-ferramenta .cen td:first-child{padding-left:0!important;min-width:5rem}.ln-ferramenta .cen td input{width:3.2rem!important}
@media (max-width:999px){.ln-ferramenta main th,.ln-ferramenta main td{padding:var(--ln-e1) var(--ln-e2) var(--ln-e1) var(--ln-e1)!important;font-size:var(--ln-t-menor)}.ln-ferramenta main td input{width:3.2rem!important}.ln-ferramenta main table{font-size:var(--ln-t-menor)}}
@media (max-width:999px){.ln-ferramenta .calc{overflow-x:auto}.ln-ferramenta main th{white-space:normal!important}}
/* o veredito de faixa (acima/dentro/abaixo): a .nota com o filete na cor do estado */
.ln-ferramenta main .veredito{background:var(--ln-papel)!important;border:1px solid var(--ln-linha)!important;border-left:3px solid var(--ln-marca)!important;color:var(--ln-tinta)!important;padding:var(--ln-e3) var(--ln-e4)!important;font-size:var(--ln-t-menor)}
.ln-ferramenta main .veredito.acima,.ln-ferramenta main .veredito.abaixo{border-left-color:var(--sev-atencao-borda,var(--ln-ctl))!important}
.ln-ferramenta main .veredito *{color:inherit!important}

/* ==== V416-ESPECIES ==== */
/* 02/10 (V-416 + V-328): os hubs de espécie na Linha d'água — /especies, /peixes, /marinho, /plantas e
   /doencas. Tudo escopado a `body.ln-especies` (a casca é `ln ln-hub`, o corpo é o daqui). Vitrine:
   chamada curta, filtro e lista; a explicação mora em `details.entenda` (PADROES §5r). */
.ln-especies main{padding:var(--ln-e5) 0 var(--ln-e7)}
/* o recolhido: uma linha com «+», que abre o texto inteiro */
.ln-especies details.entenda{margin:0 0 var(--ln-e4);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel);padding:0 var(--ln-e4)}
.ln-especies details.entenda>summary{display:flex;align-items:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);cursor:pointer;list-style:none;font:var(--ln-peso-medio) var(--ln-t-menor)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-especies details.entenda>summary::-webkit-details-marker{display:none}
.ln-especies details.entenda>summary::after{content:"+";margin-left:auto;color:var(--ln-marca);font-weight:var(--ln-peso-medio)}
.ln-especies details.entenda[open]>summary::after{content:"−"}
.ln-especies details.entenda[open]{padding-bottom:var(--ln-e3)}
.ln-especies details.entenda p{font-size:var(--ln-t-menor);line-height:1.6;color:var(--ln-texto-2);margin:0 0 var(--ln-e2);text-align:left;max-width:none;background:none;border:0;padding:0}
.ln-especies details.entenda a{color:var(--ln-marca);text-decoration:underline;text-underline-offset:3px}
.ln-especies details.entenda summary h2{display:inline;margin:0;font:inherit;color:inherit;text-transform:none;letter-spacing:0}
.ln-especies dl.dicas{margin:0;display:grid;gap:var(--ln-e1) 0;font-size:var(--ln-t-menor);line-height:1.5}
.ln-especies dl.dicas dt{font-weight:var(--ln-peso-medio);margin-top:var(--ln-e2)}
.ln-especies dl.dicas dd{margin:0;color:var(--ln-texto-2);font-style:normal}
/* atalhos de ambiente e filtros */
.ln-especies .filtros{position:static;box-shadow:none;backdrop-filter:none;background:var(--ln-papel);border-radius:var(--ln-r1);border-color:var(--ln-linha)}
.ln-especies .filtros input,.ln-especies .filtros select,.ln-especies .f-linha input,.ln-especies .f-linha select,.ln-especies .esp-filtros input,.ln-especies .esp-filtros select{min-height:var(--ln-alvo-toque);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto)}
.ln-especies .contagem,.ln-especies .esp-conta{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
/* /marinho: o card é nome, científico e selos — sem o ícone da grade de calculadoras */
.ln-hub.ln-especies .grupo{margin:0 0 var(--ln-e6)}
.ln-hub.ln-especies .grupo h2{font:var(--ln-peso-normal) var(--ln-t-h3)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta);text-transform:none;letter-spacing:0;margin:0 0 var(--ln-e3)}
.ln-hub.ln-especies .grupo h2 i{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-hub.ln-especies .card{display:block;padding:var(--ln-e3) var(--ln-e4)}
.ln-hub.ln-especies .card h3{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0}
.ln-hub.ln-especies .card .sci{font-size:var(--ln-t-rotulo);font-style:italic;color:var(--ln-texto-2);margin:0 0 var(--ln-e2)}
.ln-hub.ln-especies .card .selos{margin:0;gap:var(--ln-e1)}
.ln-hub.ln-especies .card .min{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-hub.ln-especies .card[hidden]{display:none}
/* /peixes e /plantas: o cartão montado pelo JS */
.ln-especies .pcard{border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel);transition:none}
.ln-especies .pcard:hover{transform:none;box-shadow:none;border-color:var(--ln-ctl)}
.ln-especies .pcard .corpo{padding:var(--ln-e3) var(--ln-e4) var(--ln-e2)}
.ln-especies .pcard h2{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0}
.ln-especies .pcard h2 a{color:var(--ln-tinta);text-decoration:underline;text-decoration-color:var(--ln-ctl);text-underline-offset:3px}
.ln-especies .pcard .sci{font-size:var(--ln-t-rotulo);color:var(--ln-texto-2);margin:0 0 var(--ln-e2)}
.ln-especies .pcard .badges{margin:0 0 var(--ln-e3)}
.ln-especies .pcard details.entenda{border:0;border-top:1px solid var(--ln-linha);border-radius:0;padding:0;margin:var(--ln-e2) 0 0;background:none}
.ln-especies .pcard details.entenda>summary{font-size:var(--ln-t-rotulo);color:var(--ln-texto-2)}
.ln-especies .pcard .ficha-mini{margin-top:var(--ln-e2)}
.ln-especies .pcard details.entenda{margin-top:auto}
.ln-especies .filtros input[type=search]{flex:1 1 100%}
.ln-especies .indice-fichas{border-top:0;padding-top:0;margin:var(--ln-e5) auto 0}
/* /doencas: identificador por sintomas */
.ln-especies .card-doenca{border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel);padding:var(--ln-e3) var(--ln-e4)}
.ln-especies .card-doenca h3{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0 0 var(--ln-e2)}
.ln-especies .card-doenca p{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-especies .card-doenca .casa-n{color:var(--ln-marca)}
.ln-especies .aviso-vet{font-size:var(--ln-t-menor);color:var(--ln-tinta);border-left:3px solid var(--ln-marca);padding:var(--ln-e2) var(--ln-e3);background:var(--ln-fundo);margin:var(--ln-e4) 0 0}
/* /especies: a página única — sem foto no topo, o seletor de mundo é a porta */
.ln-especies main h1{font:var(--ln-peso-leve) var(--ln-t-h1-celular)/1.1 var(--ln-fonte-texto);letter-spacing:-.02em;color:var(--ln-tinta);margin:var(--ln-e2) 0 var(--ln-e2)}
@media (min-width:1000px){.ln-especies main h1{font-size:var(--ln-t-h1)}}
.ln-especies main .migalha{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-especies .esp-card{border-color:var(--ln-linha);border-radius:var(--ln-r1)}
.ln-especies .esp-card b{color:var(--ln-tinta)}
/* ==== fim V416-ESPECIES ==== */


/* ==== V416-GUIAS-BUSCA ==== */
/* 02/10 (V-416 /guias, V-328 /busca): as duas vitrines de índice na Linha d'água e com menos texto
   (PADROES §5r). Escopo: o acervo de guias (cards com data-mom, .trilhas, .grupo, .resumo-grupo,
   .ref-glossario) e a /busca (.sec-busca, #q, #perguntar). Nenhuma regra fora deste bloco mudou.
   Na junção das frentes (02/10), o bloco passou a valer só em body.ln-indice (guias e busca), por
   `:where(.ln-indice)` — mesma especificidade: `.ln-hub details.entenda` e afins vazavam para os hubs
   de espécie, o meu-aquacalc e o pulso (medido com retrato antes/depois da junção). */
/* --- /guias: o card do acervo = foto · título · uma linha --- */
.ln-hub:where(.ln-indice) a.card[data-mom]{display:flex;flex-direction:column;align-items:stretch;text-align:left;padding:0;overflow:hidden;gap:0;background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);color:var(--ln-tinta)!important}
.ln-hub:where(.ln-indice) a.card[data-mom] .mini{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;margin:0;border-radius:0}
.ln-hub:where(.ln-indice) a.card[data-mom] h3{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta);margin:var(--ln-e3) var(--ln-e4) var(--ln-e1);text-wrap:pretty}
.ln-hub:where(.ln-indice) a.card[data-mom] .linha-card{display:block;font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);margin:0 var(--ln-e4) var(--ln-e3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln-hub:where(.ln-indice) a.card[data-mom]:hover{border-color:var(--ln-ctl);background:var(--ln-fundo)}
@media (max-width:699px){
  /* no celular, 161 fotos de 16:9 empilhadas são uma rolagem sem fim: o card vira linha (miniatura à esquerda) */
  .ln-hub:where(.ln-indice) a.card[data-mom]{display:grid;grid-template-columns:6rem 1fr;grid-template-rows:auto auto;align-items:center;column-gap:var(--ln-e3);padding:var(--ln-e2)}
  .ln-hub:where(.ln-indice) a.card[data-mom] .mini{grid-row:1/3;width:6rem;aspect-ratio:4/3;border-radius:calc(var(--ln-r1) - 2px)}
  .ln-hub:where(.ln-indice) a.card[data-mom] h3{margin:0 0 var(--ln-e1);align-self:end}
  .ln-hub:where(.ln-indice) a.card[data-mom] .linha-card{margin:0;align-self:start;white-space:normal}
  .ln-hub:where(.ln-indice) a.card[data-mom]:not(:has(.mini)) h3,.ln-hub:where(.ln-indice) a.card[data-mom]:not(:has(.mini)) .linha-card{grid-column:1/3}
}
.ln-hub:where(.ln-indice) .grupo{margin:0 0 var(--ln-e7)}
.ln-hub:where(.ln-indice) .grupo>h2{font:var(--ln-peso-normal) var(--ln-t-h2)/1.2 var(--ln-fonte-texto);letter-spacing:-.01em;color:var(--ln-tinta);text-transform:none;margin:0 0 var(--ln-e1)}
.ln-hub:where(.ln-indice) .grupo-sub{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:0 0 var(--ln-e4);text-transform:none;letter-spacing:0}
/* as trilhas */
.ln-hub:where(.ln-indice) .trilhas{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e5) var(--ln-e4) var(--ln-e3);margin:0 0 var(--ln-e5)}
.ln-hub:where(.ln-indice) .trilhas h2{font:var(--ln-peso-normal) var(--ln-t-h2)/1.2 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0 0 var(--ln-e1);text-transform:none;letter-spacing:0}
.ln-hub:where(.ln-indice) .trilhas-sub{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:0 0 var(--ln-e3);line-height:1.5}
.ln-hub:where(.ln-indice) .trilhas-manual{margin:var(--ln-e3) 0 var(--ln-e1)}
.ln-hub:where(.ln-indice) .trilhas-manual a{color:var(--ln-marca)!important;font-weight:var(--ln-peso-medio)}
.ln-hub:where(.ln-indice) .trilha{border-top:1px solid var(--ln-linha)}
.ln-hub:where(.ln-indice) .trilha summary{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--ln-e1) var(--ln-e3);min-height:var(--ln-alvo-toque);padding:var(--ln-e3) 0;cursor:pointer;list-style:none;color:var(--ln-tinta);font-size:var(--ln-t-corpo)}
.ln-hub:where(.ln-indice) .trilha summary::-webkit-details-marker{display:none}
.ln-hub:where(.ln-indice) .trilha summary::before{content:"+";color:var(--ln-marca);font-weight:var(--ln-peso-medio);width:1ch}
.ln-hub:where(.ln-indice) .trilha[open] summary::before{content:"−";transform:none}
.ln-hub:where(.ln-indice) .trilha summary b{font-weight:var(--ln-peso-medio)}
.ln-hub:where(.ln-indice) .trilha summary span{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-hub:where(.ln-indice) .trilha ol{margin:0 0 var(--ln-e4) var(--ln-e5);padding:0;color:var(--ln-texto-2)}
.ln-hub:where(.ln-indice) .trilha li{margin:var(--ln-e2) 0;font-size:var(--ln-t-menor)}
.ln-hub:where(.ln-indice) .trilha li a{color:var(--ln-tinta)!important;font-weight:var(--ln-peso-normal);text-decoration:underline;text-decoration-color:var(--ln-ctl);text-underline-offset:3px}
.ln-hub:where(.ln-indice) .trilha li i{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);font-style:normal;color:var(--ln-rotulo)}
/* filtros do acervo */
.ln-hub:where(.ln-indice) #filtros{margin:0 0 var(--ln-e6)}
.ln-hub:where(.ln-indice) #filtros .f-linha{display:flex;flex-wrap:wrap;gap:var(--ln-e2)}
.ln-hub:where(.ln-indice) #filtros input,.ln-hub:where(.ln-indice) #filtros select,.ln-hub:where(.ln-indice) .filtros #q{min-height:var(--ln-alvo-toque);padding:var(--ln-e2) var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto)}
.ln-hub:where(.ln-indice) #filtros input{flex:1 1 18rem}
.ln-hub:where(.ln-indice) #filtros select{flex:1 1 9rem}
.ln-hub:where(.ln-indice) #filtros input:focus,.ln-hub:where(.ln-indice) #filtros select:focus,.ln-hub:where(.ln-indice) .filtros #q:focus{outline:2px solid var(--ln-foco);outline-offset:1px;border-color:var(--ln-foco)}
.ln-hub:where(.ln-indice) #filtros .contagem,.ln-hub:where(.ln-indice) .filtros .contagem{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);margin:var(--ln-e2) 0 0}
.ln-hub:where(.ln-indice) .vazio{color:var(--ln-texto-2);text-align:center;padding:var(--ln-e6) 0}
/* recolhidos: o resumo de cada grupo, o «como usar», o glossário e o «como funciona» da busca */
.ln-hub:where(.ln-indice) details.entenda{border-top:1px solid var(--ln-linha);margin:var(--ln-e4) 0 0}
.ln-hub:where(.ln-indice) details.entenda>summary{display:flex;align-items:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);cursor:pointer;list-style:none;color:var(--ln-marca);font:var(--ln-peso-medio) var(--ln-t-menor)/1.3 var(--ln-fonte-texto)}
.ln-hub:where(.ln-indice) details.entenda>summary::-webkit-details-marker{display:none}
.ln-hub:where(.ln-indice) details.entenda>summary::before{content:"+";width:1ch}
.ln-hub:where(.ln-indice) details.entenda[open]>summary::before{content:"−"}
.ln-hub:where(.ln-indice) details.entenda p{font-size:var(--ln-t-menor);line-height:1.6;color:var(--ln-texto-2);margin:0 0 var(--ln-e3);max-width:var(--ln-col-texto)}
.ln-hub:where(.ln-indice) .resumo-grupo dl{margin:0 0 var(--ln-e3);max-width:var(--ln-col-texto)}
.ln-hub:where(.ln-indice) .resumo-grupo dt{margin:var(--ln-e3) 0 0;font-size:var(--ln-t-menor)}
.ln-hub:where(.ln-indice) .resumo-grupo dt a,.ln-hub:where(.ln-indice) .resumo-grupo dd a{color:var(--ln-tinta)!important;font-weight:var(--ln-peso-medio);text-decoration:underline;text-decoration-color:var(--ln-ctl);text-underline-offset:3px}
.ln-hub:where(.ln-indice) .resumo-grupo dd{margin:var(--ln-e1) 0 0;font-size:var(--ln-t-menor);line-height:1.55;color:var(--ln-texto-2)}
.ln-hub:where(.ln-indice) .guias-entenda{margin-top:var(--ln-e6)}
.ln-hub:where(.ln-indice) .ref-glossario{border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel);padding:var(--ln-e3) var(--ln-e4);margin:var(--ln-e6) 0 var(--ln-e2)}
.ln-hub:where(.ln-indice) .ref-glossario>p{margin:0;font-size:var(--ln-t-corpo);color:var(--ln-tinta)}
.ln-hub:where(.ln-indice) .ref-glossario>p a{color:var(--ln-marca)!important;font-weight:var(--ln-peso-medio);margin-left:var(--ln-e1)}
.ln-hub:where(.ln-indice) .ref-glossario details.entenda{margin-top:var(--ln-e2)}
/* --- /busca: campo, ponte para o assistente, seções recolhidas --- */
.ln-hub:where(.ln-indice) .migalha{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);margin:0}
.ln-hub:where(.ln-indice) .migalha a{color:var(--ln-rotulo)!important;text-decoration:underline;text-underline-offset:2px}
.ln-hub:where(.ln-indice) main:has(#q) h1{font:var(--ln-peso-leve) var(--ln-t-h1-celular)/1.12 var(--ln-fonte-texto);letter-spacing:-.02em;color:var(--ln-tinta);margin:var(--ln-e3) 0 var(--ln-e2)}
.ln-hub:where(.ln-indice) main:has(#q) .intro{font-size:var(--ln-t-lead);line-height:1.5;color:var(--ln-texto-2);margin:0 0 var(--ln-e4)}
.ln-hub:where(.ln-indice) .filtros:has(#q){display:flex;flex-wrap:wrap;gap:var(--ln-e3);align-items:center;margin:0 0 var(--ln-e4)}
.ln-hub:where(.ln-indice) .filtros #q{flex:1 1 16rem;min-width:0}
.ln-hub:where(.ln-indice) #nada{color:var(--ln-texto-2);font-size:var(--ln-t-corpo)}
.ln-hub:where(.ln-indice) #perguntar{display:flex;align-items:center;gap:var(--ln-e3);margin:0 0 var(--ln-e4);padding:var(--ln-e3) var(--ln-e4);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-fundo);color:var(--ln-tinta)!important;text-decoration:none}
.ln-hub:where(.ln-indice) #perguntar[hidden]{display:none}
.ln-hub:where(.ln-indice) #perguntar:hover{border-color:var(--ln-ctl)}
.ln-hub:where(.ln-indice) #perguntar .bp-ic{flex:none;width:2.25rem;height:2.25rem;border-radius:var(--ln-r1);background:var(--ln-noite);color:var(--ln-sobre-noite);display:flex;align-items:center;justify-content:center}
.ln-hub:where(.ln-indice) #perguntar .bp-txt{flex:1;min-width:0;font-size:var(--ln-t-menor);line-height:1.45;color:var(--ln-texto-2)}
.ln-hub:where(.ln-indice) #perguntar .bp-txt b{display:block;font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-hub:where(.ln-indice) #perguntar .bp-seta{flex:none;color:var(--ln-marca)}
.ln-hub:where(.ln-indice) #perguntar.destaque{border-color:var(--ln-marca);background:var(--ln-suave)}
.ln-hub:where(.ln-indice) .indice-t{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);margin:var(--ln-e5) 0 var(--ln-e2)}
.ln-hub:where(.ln-indice) .sec-busca{border-top:1px solid var(--ln-linha)}
.ln-hub:where(.ln-indice) .sec-busca:last-of-type{border-bottom:1px solid var(--ln-linha)}
.ln-hub:where(.ln-indice) .sec-dobra>summary{display:flex;align-items:center;min-height:var(--ln-alvo-botao);cursor:pointer;list-style:none}
.ln-hub:where(.ln-indice) .sec-dobra>summary::-webkit-details-marker{display:none}
.ln-hub:where(.ln-indice) .sec-dobra>summary::after{content:"+";margin-left:auto;color:var(--ln-marca);font-weight:var(--ln-peso-medio)}
.ln-hub:where(.ln-indice) .sec-dobra[open]>summary::after{content:"−"}
.ln-hub:where(.ln-indice) .sec-dobra h2{display:flex;align-items:baseline;gap:var(--ln-e2);margin:0;font:var(--ln-peso-normal) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta);text-transform:none;letter-spacing:0;border:0;padding:0}
.ln-hub:where(.ln-indice) .sec-dobra h2 i{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);font-style:normal;color:var(--ln-rotulo)}
.ln-hub:where(.ln-indice) .sec-busca ul{list-style:none;margin:0 0 var(--ln-e4);padding:0;columns:1}
.ln-hub:where(.ln-indice) .sec-busca li{break-inside:avoid;margin:0;padding:var(--ln-e1) 0;min-width:0}
.ln-hub:where(.ln-indice) .sec-busca li a{color:var(--ln-tinta)!important;font-weight:var(--ln-peso-medio);font-size:var(--ln-t-menor);text-decoration:none}
.ln-hub:where(.ln-indice) .sec-busca li a:hover{text-decoration:underline}
/* a descrição longa fica no HTML (o buscador lê) e na tela ocupa UMA linha */
.ln-hub:where(.ln-indice) .sec-busca li span{display:block;font-size:var(--ln-t-rotulo);color:var(--ln-texto-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ln-hub:where(.ln-indice) main:has(#q) details.entenda{margin-top:var(--ln-e6)}
@media (min-width:700px){.ln-hub:where(.ln-indice) .sec-busca ul{columns:2;column-gap:var(--ln-e6)}}
@media (min-width:1000px){.ln-hub:where(.ln-indice) main:has(#q) h1{font-size:var(--ln-t-h1)}}
/* o estilo.css dá caixa a todo <details> (borda, raio, padding); aqui o recolhido é filete, não caixa */
.ln-hub:where(.ln-indice) .sec-busca details.sec-dobra,.ln-hub:where(.ln-indice) details.entenda,.ln-hub:where(.ln-indice) .trilhas details.trilha{border:0;border-radius:0;padding:0;margin-bottom:0;background:none}
.ln-hub:where(.ln-indice) .trilhas details.trilha{border-top:1px solid var(--ln-linha)}
.ln-hub:where(.ln-indice) details.entenda{border-top:1px solid var(--ln-linha)}
.ln-hub:where(.ln-indice) .ref-glossario details.entenda{border-top:0}
/* o destaque do diretório (aplicar-onde-comprar.py) mora fora do .container: no /guias ele ganha a
   largura da coluna e o bloco-noite da Linha d'água (o laranja e o degradê eram do visual velho) */
.ln-hub:where(.ln-indice) main:has(.trilhas) .onde-comprar{margin:var(--ln-e6) max(var(--ln-e4),calc((100% - var(--ln-col-pagina)) / 2 + var(--ln-e4))) 0;background:var(--ln-noite);border-radius:var(--ln-r1);padding:var(--ln-e6) var(--ln-e5);box-shadow:none;gap:var(--ln-e4);flex-wrap:wrap}
.ln-hub:where(.ln-indice) main:has(.trilhas) .onde-comprar h2{font:var(--ln-peso-leve) var(--ln-t-h2)/1.2 var(--ln-fonte-texto);letter-spacing:-.01em;color:var(--ln-sobre-noite)}
.ln-hub:where(.ln-indice) main:has(.trilhas) .onde-comprar p{font-size:var(--ln-t-corpo);color:var(--ln-sobre-noite);opacity:.85}
.ln-hub:where(.ln-indice) main:has(.trilhas) .onde-comprar .btn{display:inline-flex;align-items:center;min-height:var(--ln-alvo-botao);padding:0 1.25rem;border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta)!important;border:0;font:var(--ln-peso-medio) var(--ln-t-corpo)/1 var(--ln-fonte-texto);box-shadow:none}
@media (max-width:699px){.ln-hub:where(.ln-indice) main:has(.trilhas) .onde-comprar{padding:var(--ln-e5) var(--ln-e4)}}
@media (min-width:1000px){.ln-hub:where(.ln-indice) main:has(.trilhas) .onde-comprar{margin-left:max(2.5rem,calc((100% - var(--ln-col-pagina)) / 2 + 2.5rem));margin-right:max(2.5rem,calc((100% - var(--ln-col-pagina)) / 2 + 2.5rem))}}
/* ==== fim V416-GUIAS-BUSCA ==== */


/* ==== V416-VITRINES ==== */
/* V-416 (02/10): as vitrines e ferramentas do aquarista na Linha d'água — manual-aquarista, montar-kit,
   aquario-dos-sonhos, construtor, leitura do teste (.ln-ferramenta), meu-aquacalc e pulso (.ln-hub).
   Só o que o retrato mostrou quebrado ao trocar a casca; cada seletor nasce numa classe própria da página. */
/* manual do aquarista: o cartão de situação, os passos numerados e o «por que nesta ordem» recolhido */
.ln-ferramenta .ma-sit,.ln-ferramenta .ma-guardar{border:1px solid var(--ln-linha);background:var(--ln-papel);box-shadow:none}
.ln-ferramenta .ma-guardar{background:var(--ln-fundo)}
.ln-ferramenta main .ma-sit>h2,.ln-ferramenta main .ma-guardar>h2{margin:0 0 var(--ln-e2);font-size:var(--ln-t-lead);font-weight:var(--ln-peso-medio)}
.ln-ferramenta main .ma-sit>.quando{color:var(--ln-texto-2);font-size:var(--ln-t-menor);margin:0 0 var(--ln-e4)}
.ln-ferramenta .ma-passos>li::before{background:var(--ln-suave);color:var(--ln-tinta);font-weight:var(--ln-peso-medio);border-radius:var(--ln-r1)}
.ln-ferramenta .ma-passos a{border-bottom:0;font-weight:var(--ln-peso-medio);color:var(--ln-marca)}
.ln-ferramenta .ma-semconta{background:var(--ln-suave);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.5 var(--ln-fonte-mono)}
.ln-ferramenta main .ma-porque{margin:var(--ln-e2) 0 0;padding-left:1.4em;display:grid;gap:var(--ln-e2)}
.ln-ferramenta main .ma-porque li{font-size:var(--ln-t-menor);color:var(--ln-tinta)}
.ln-ferramenta main .ma-sit details .ma-leia{border-top:0;padding-top:0;color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-ferramenta main .ma-sit details.entenda{margin-top:var(--ln-e4)}
/* montar o kit: as ações do checklist são secundárias (contornadas), como os botões das calculadoras */
.ln-ferramenta main .kit-acoes a.btnk{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:var(--ln-e2) var(--ln-e4);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-medio) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);text-decoration:none}
.ln-ferramenta main .kit-acoes a.btnk:hover{background:var(--ln-fundo)}
.ln-ferramenta details.ind-det{border:0;padding:0}
/* aquário dos sonhos: o passo 3 é cartão claro (a regra .resultado da ferramenta o pintava de noite e
   apagava o título); o painel de instrumentos é escuro e a nota dele precisa da tinta clara */
.ln-ferramenta .sonho-pagina .passo.resultado{background:var(--ln-papel);color:var(--ln-tinta);border:1px solid var(--ln-linha)}
.ln-ferramenta .sonho-pagina .passo-cab h2{margin:2px 0 var(--ln-e1);font-size:var(--ln-t-h2)}
.ln-ferramenta .sonho-pagina .passo-cab p{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-ferramenta .sonho-pagina .painel p,.ln-ferramenta .sonho-pagina .painel .instr-nota{color:var(--ln-sobre-noite);opacity:.8}
.ln-ferramenta .sonho-pagina .painel label,.ln-ferramenta .sonho-pagina .painel .rot{color:var(--ln-sobre-noite)}
/* leitura do teste: o «retrato de hoje» é bloco escuro; o texto de dentro estava escuro sobre escuro */
.ln-ferramenta .segue{background:var(--ln-noite);color:var(--ln-sobre-noite);border-radius:var(--ln-r1)}
.ln-ferramenta .segue p{color:var(--ln-sobre-noite)}
.ln-ferramenta .segue p b{display:inline;font-size:inherit;margin:0}
.ln-ferramenta main .segue a.btn-claro{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);background:var(--ln-papel);color:var(--ln-tinta);border-radius:var(--ln-r1);text-decoration:none}
/* pulso: o recolhido das seis partes */
.ln-hub .pulso-det{margin:var(--ln-e4) 0 0}
.ln-hub .pulso-det>summary{cursor:pointer;min-height:var(--ln-alvo-toque);display:list-item;font-weight:var(--ln-peso-medio)}
.ln-hub .pulso-det p{margin:var(--ln-e2) 0 0;font-size:var(--ln-t-menor);line-height:1.6;color:var(--ln-tinta)}
/* construtor e montar o kit: o «Checklist de compras» e o CTA da indicação são a ação principal (verde);
   a regra de link do corpo os deixava verde sobre verde */
.ln-ferramenta main .projeto a.cta,.ln-ferramenta main #doProjeto~.indicacao-produto a.cta{display:inline-flex;align-items:center;min-height:var(--ln-alvo-botao);padding:0 1.25rem;background:var(--ln-marca);color:var(--ln-sobre-marca);border-radius:var(--ln-r1);font-weight:var(--ln-peso-medio);text-decoration:none}
.ln-ferramenta main .projeto a.cta:hover,.ln-ferramenta main #doProjeto~.indicacao-produto a.cta:hover{background:var(--ln-marca-hover);color:var(--ln-sobre-marca)}
/* leitura do teste: na caixa de confiança só o título é bloco; os negritos do meio da frase (o que ficou
   de fora, «não pode descartar») quebravam a frase em quatro linhas */
.ln-ferramenta .confianca b:not(:first-child){display:inline;margin:0}
/* meu aquacalc: o link dentro do texto do painel (os três primeiros passos) é link da casa — o .ln-hub
   tira o sublinhado e a cor, e o conferir-estouro o achou igual à prosa */
.ln-hub #painel p a:not([class]){color:var(--ln-marca);text-decoration:underline;text-underline-offset:3px;font-weight:var(--ln-peso-medio)}
/* pulso: sem o parágrafo, o cartão das seis partes vira linha — ícone ao lado do título */
.ln-hub .oque .item{flex-direction:row;flex-wrap:nowrap;align-items:center;gap:var(--ln-e3);padding:var(--ln-e3) var(--ln-e4);border-radius:var(--ln-r1)}
.ln-hub .oque .item .ico{margin:0}
.ln-hub .oque .item h3{margin:0;width:auto;flex:1}
/* ==== fim V416-VITRINES ==== */

/* ==== V417-INSTITUCIONAIS ==== */
/* 02/10 (V-417): glossário, 404, assistente, entrar, minha-lista, termos e privacidade na Linha d'água.
   Toda regra leva `.ln-inst`, a classe que só estas sete páginas têm no <body> — nada vaza para as
   calculadoras, que também são .ln-ferramenta. O `:not(#v417)` soma especificidade de id para vencer
   a regra geral «todo botão do corpo é secundário» (.ln-ferramenta main button:not(...)×4) sem mexer nela. */
/* glossário (conteúdo de referência, tudo aberto — decisão de 02/10): índice em fichas, verbetes em lista com filete, «Na prática» recuado */
.ln-inst.ln-ferramenta main .indice{display:flex;flex-wrap:wrap;gap:var(--ln-e2);margin:var(--ln-e4) 0 var(--ln-e5)}
.ln-inst.ln-ferramenta main .indice a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);text-decoration:none}
.ln-inst.ln-ferramenta main .indice a:hover{background:var(--ln-fundo);color:var(--ln-tinta)}
.ln-inst.ln-ferramenta main .grupo{margin:var(--ln-e6) 0 0;scroll-margin-top:6rem}
.ln-inst.ln-ferramenta main .grupo h2{margin:0 0 var(--ln-e1)}
.ln-inst.ln-ferramenta main .grupo>p.sub{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:0 0 var(--ln-e3)}
.ln-inst.ln-ferramenta main dl.termos{margin:0;border-bottom:1px solid var(--ln-linha)}
.ln-inst.ln-ferramenta main dl.termos>div{background:none;border:0;border-top:1px solid var(--ln-linha);border-radius:0;padding:var(--ln-e4) 0;margin:0;scroll-margin-top:6rem}
.ln-inst.ln-ferramenta main dl.termos>div:target{background:var(--ln-suave);box-shadow:calc(-1 * var(--ln-e3)) 0 0 var(--ln-suave),var(--ln-e3) 0 0 var(--ln-suave)}
.ln-inst.ln-ferramenta main dl.termos dt{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0 0 var(--ln-e1)}
.ln-inst.ln-ferramenta main dl.termos dt .sigla{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);color:var(--ln-marca);margin-left:var(--ln-e2)}
.ln-inst.ln-ferramenta main dl.termos dd{margin:0;font-size:var(--ln-t-corpo);line-height:1.55;color:var(--ln-tinta)}
.ln-inst.ln-ferramenta main dl.termos .pratica{display:block;font-size:var(--ln-t-menor);line-height:1.55;color:var(--ln-texto-2);margin:var(--ln-e2) 0 0;padding-left:var(--ln-e3);border-left:2px solid var(--ln-linha)}
.ln-inst.ln-ferramenta main dl.termos .pratica b{font-weight:var(--ln-peso-medio);color:var(--ln-tinta)}
/* 404: os caminhos de volta em fichas contornadas, sem sublinhado; o brinde no papel suave */
.ln-inst.ln-ferramenta .erro404{padding:var(--ln-e6) var(--ln-e4) var(--ln-e7)}
.ln-inst.ln-ferramenta .erro404 .cubo{font:var(--ln-peso-leve) var(--ln-t-hero)/1 var(--ln-fonte-mono);color:var(--ln-rotulo);opacity:.35}
.ln-inst.ln-ferramenta main .erro404 p{color:var(--ln-texto-2)}
.ln-inst.ln-ferramenta main .erro404 .links{gap:var(--ln-e2)}
.ln-inst.ln-ferramenta main .erro404 .links a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:0 var(--ln-e4);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-medio) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);text-decoration:none}
.ln-inst.ln-ferramenta main .erro404 .links a:first-child{background:var(--ln-marca);border-color:var(--ln-marca);color:var(--ln-sobre-marca)}
.ln-inst.ln-ferramenta main .erro404 .links a:hover{background:var(--ln-fundo)}
.ln-inst.ln-ferramenta main .erro404 .links a:first-child:hover{background:var(--ln-marca-hover)}
.ln-inst.ln-ferramenta .erro404 .brinde{background:var(--ln-suave);border-radius:var(--ln-r1);margin-top:var(--ln-e6)}
.ln-inst.ln-ferramenta main .erro404 .brinde h2{font:var(--ln-peso-medio) var(--ln-t-h3)/1.3 var(--ln-fonte-texto);margin:0 0 var(--ln-e1)}
.ln-inst.ln-ferramenta main .erro404 .brinde blockquote{border-left-color:var(--ln-marca);color:var(--ln-tinta)}
/* assistente: «Perguntar» é a ação principal; exemplos em fichas; a nota de veterinário fica aberta */
.ln-inst.ln-ferramenta .as-intro{font-size:var(--ln-t-lead);color:var(--ln-texto-2);margin:0 0 var(--ln-e4)}
.ln-inst.ln-ferramenta .as-exemplos{gap:var(--ln-e2)}
.ln-inst.ln-ferramenta main .as-exemplos button:not(#v417){min-height:var(--ln-alvo-toque);border-radius:var(--ln-r1)!important;font-weight:var(--ln-peso-normal)!important;text-align:left}
.ln-inst.ln-ferramenta .as-caixa{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e4)}
.ln-inst.ln-ferramenta .as-caixa textarea{border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta)}
.ln-inst.ln-ferramenta .as-caixa textarea:focus{outline:2px solid var(--ln-foco);border-color:var(--ln-foco)}
.ln-inst.ln-ferramenta main button.as-enviar:not(#v417){background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;min-height:var(--ln-alvo-botao)}
.ln-inst.ln-ferramenta main button.as-enviar:not(#v417):hover{background:var(--ln-marca-hover)!important}
.ln-inst.ln-ferramenta main button.as-enviar:not(#v417)[disabled]{opacity:.55}
.ln-inst.ln-ferramenta .as-dica{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-inst.ln-ferramenta main .as-rodape-nota{font-size:var(--ln-t-menor);color:var(--ln-texto-2);border-top:1px solid var(--ln-linha);padding-top:var(--ln-e3);margin:var(--ln-e6) 0 0}
.ln-inst.ln-ferramenta .as-perg{background:var(--ln-suave);color:var(--ln-tinta)}
.ln-inst.ln-ferramenta .as-resp,.ln-inst.ln-ferramenta .as-resp p,.ln-inst.ln-ferramenta .as-resp li{color:var(--ln-tinta)}
.ln-inst.ln-ferramenta .as-resp strong{color:var(--ln-tinta)}
.ln-inst.ln-ferramenta .as-fontes{border-top-color:var(--ln-linha);color:var(--ln-texto-2)}
.ln-inst.ln-ferramenta .as-ctx{background:var(--ln-suave);color:var(--ln-tinta)}
/* entrar */
.ln-inst.ln-ferramenta .entrar{padding:var(--ln-e7) var(--ln-e4)}
.ln-inst.ln-ferramenta main .entrar h1{margin:0 0 var(--ln-e3)}
.ln-inst.ln-ferramenta main .entrar p{color:var(--ln-texto-2)}
.ln-inst.ln-ferramenta main .entrar button.abrir:not(#v417){background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;min-height:var(--ln-alvo-botao)}
/* minha-lista: o item numa linha (nome em cima no celular), controles de 44 px, «limpar tudo» como link */
.ln-inst.ln-ferramenta main .sub{color:var(--ln-texto-2)}
.ln-inst.ln-ferramenta .barra{gap:var(--ln-e2)}
.ln-inst.ln-ferramenta .barra .cont{color:var(--ln-tinta);font-weight:var(--ln-peso-medio)}
.ln-inst.ln-ferramenta .barra .imp,.ln-inst.ln-ferramenta .barra .zap{margin:0!important}
.ln-inst.ln-ferramenta .barra .imp{margin-left:auto!important}
.ln-inst.ln-ferramenta main button.limpar:not(#v417){border:0!important;background:none!important;padding:0 var(--ln-e2)!important;color:var(--ln-marca)!important;text-decoration:underline;text-underline-offset:3px;font-weight:var(--ln-peso-normal)!important}
.ln-inst.ln-ferramenta main .grupo .gsub{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:0 0 var(--ln-e2)}
.ln-inst.ln-ferramenta .li{background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);align-items:center;gap:var(--ln-e2);padding:var(--ln-e3)}
.ln-inst.ln-ferramenta .li>div:first-child{flex:1 1 10rem;min-width:0}
.ln-inst.ln-ferramenta .li .n{color:var(--ln-tinta);font-weight:var(--ln-peso-medio)}
.ln-inst.ln-ferramenta .li .m{color:var(--ln-texto-2);font-size:var(--ln-t-rotulo)}
.ln-inst.ln-ferramenta .li .qtd{gap:var(--ln-e1)}
.ln-inst.ln-ferramenta main .li button.qb:not(#v417){width:var(--ln-alvo-toque);height:var(--ln-alvo-toque);padding:0!important;font-size:var(--ln-t-corpo)!important}
.ln-inst.ln-ferramenta main .li button.qb:not(#v417):disabled{opacity:.35}
.ln-inst.ln-ferramenta .li .qi{width:3.25rem;height:var(--ln-alvo-toque);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font-size:var(--ln-t-corpo)}
.ln-inst.ln-ferramenta main .li button.orc:not(#v417){padding:0 var(--ln-e3)!important;font-size:var(--ln-t-menor)!important}
.ln-inst.ln-ferramenta main .li button.rm:not(#v417){width:var(--ln-alvo-toque);padding:0!important;border-color:transparent!important;background:none!important;font-size:1.25rem!important;color:var(--ln-texto-2)!important}
.ln-inst.ln-ferramenta main .li button.rm:not(#v417):hover{color:var(--ln-tinta)!important;background:var(--ln-fundo)!important}
@media (max-width:520px){.ln-inst.ln-ferramenta .li>div:first-child{flex-basis:100%}.ln-inst.ln-ferramenta .li .qtd{margin-left:0}.ln-inst.ln-ferramenta main .li button.rm:not(#v417){margin-left:auto}}
/* «Espécies que você quer ter» (bloco do tokens.css, desenhado no padrão antigo): mesmos controles de 44 px */
.ln-inst.ln-ferramenta .eq-bloco .eq-item{background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e3)}
.ln-inst.ln-ferramenta main .eq-nome{color:var(--ln-tinta);font-weight:var(--ln-peso-medio)}
.ln-inst.ln-ferramenta .eq-acoes,.ln-inst.ln-ferramenta .eq-qtd{gap:var(--ln-e1)}
.ln-inst.ln-ferramenta main button.eq-qb:not(#v417){width:var(--ln-alvo-toque);height:var(--ln-alvo-toque);padding:0!important;font-size:var(--ln-t-corpo)!important}
.ln-inst.ln-ferramenta .eq-qn{display:inline-block;min-width:2rem;text-align:center;color:var(--ln-tinta);font-size:var(--ln-t-corpo)}
.ln-inst.ln-ferramenta main button.eq-orc:not(#v417){padding:0 var(--ln-e3)!important;font-size:var(--ln-t-menor)!important}
.ln-inst.ln-ferramenta main button.eq-rm:not(#v417){width:var(--ln-alvo-toque);padding:0!important;border-color:transparent!important;background:none!important;font-size:1.25rem!important;color:var(--ln-texto-2)!important}
@media (max-width:520px){.ln-inst.ln-ferramenta .eq-bloco .eq-nome{flex-basis:100%}}
.ln-inst.ln-ferramenta .vazio{background:var(--ln-suave);border:0;border-radius:var(--ln-r1);color:var(--ln-tinta)}
.ln-inst.ln-ferramenta .projeto{background:var(--ln-suave);border:0;border-radius:var(--ln-r1);color:var(--ln-tinta)}
.ln-inst.ln-ferramenta .solicitar .box{background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1)}
.ln-inst.ln-ferramenta main .solicitar h3{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-inst.ln-ferramenta main .solicitar p.d{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-inst.ln-ferramenta .solicitar input[type=email],.ln-inst.ln-ferramenta .solicitar select,.ln-inst.ln-ferramenta .ql-box input[type=text]{min-height:var(--ln-alvo-toque);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta)}
.ln-inst.ln-ferramenta main .solicitar button.btn-enviar:not(#v417){background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;min-height:var(--ln-alvo-botao)}
.ln-inst.ln-ferramenta main .solicitar button.btn-enviar:not(#v417):hover{background:var(--ln-marca-hover)!important}
.ln-inst.ln-ferramenta main .solicitar button.btn-enviar:not(#v417):disabled{opacity:.5}
/* a lista impressa é o que vai ao balcão: o topo novo e o recolhido saem do papel, como o topo velho saía */
@media print{.ln-inst.ln-ferramenta .ln-topo,.ln-inst.ln-ferramenta .ln-rodape,.ln-inst.ln-ferramenta main .sub+details.entenda{display:none!important}}
/* ==== fim V417-INSTITUCIONAIS ==== */

/* ==== V327-GUIAS ==== */
/* 02/10 (V-327, etapa guia): os 162 guias na Linha d'água. A casca é `ln ln-ferramenta ln-guia` — o guia
   veste os componentes que já tem em comum com a calculadora (migalha, h1, h2, FAQ, tabela, relacionadas,
   compartilhar) — e aqui mora SÓ o que é do guia: a linha de data, a capa, o resumo, os passos numerados,
   o erro comum, as caixas de aviso, o diagnóstico em pares, o widget SOS e o «Leve este guia».
   O texto do guia não muda (decisão de 02/10: os textos dos guias não mudam,
   só o design). Toda regra leva `.ln-guia`; o `:not(#v327)` soma especificidade de id
   para vencer a regra «todo botão do corpo é secundário» sem mexer nela. */
.ln-guia main .container>p.meta,.ln-guia main p.meta{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);margin:0 0 var(--ln-e4)}
.ln-guia main .guia-capa{width:100%;height:auto;border-radius:var(--ln-r1);margin:0 0 var(--ln-e5)}
.ln-guia main .selo-ia{line-height:1.3;color:var(--ln-texto-2);font-size:var(--ln-t-menor);margin:calc(-1 * var(--ln-e5) + 6px) 0 var(--ln-e5)}
.ln-guia main .container>p:not([class]){font-size:var(--ln-t-lead);line-height:1.55;color:var(--ln-texto-2);margin:0 0 var(--ln-e3)}
/* o resumo: a caixa de leitura rápida, no fundo da direção, com o rótulo em mono */
.ln-guia main .resumo{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-marca);border-radius:var(--ln-r1);padding:var(--ln-e4) var(--ln-e4);margin:var(--ln-e5) 0 var(--ln-e6);box-shadow:none}
.ln-guia main .resumo>b:first-child{display:block;font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);text-transform:none;letter-spacing:0;margin:0 0 var(--ln-e2)}
.ln-guia main .resumo p{font-size:var(--ln-t-corpo);line-height:1.6;color:var(--ln-tinta);margin:0}
.ln-guia main .resumo p+p{margin-top:var(--ln-e2)}
/* o artigo: h2 com o respiro de seção; h3 no peso médio; parágrafo seguido de parágrafo respira */
.ln-guia main article>h2:first-child{margin-top:var(--ln-e5)}
.ln-guia main article h3{font:var(--ln-peso-medio) var(--ln-t-lead)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta);margin:var(--ln-e5) 0 var(--ln-e2)}
.ln-guia main article p{margin:0 0 var(--ln-e3)}
.ln-guia main article ul,.ln-guia main article ol:not(.passos-lista):not(.protocolo){padding-left:1.4em;margin:0 0 var(--ln-e4)}
.ln-guia main article li{margin:0 0 var(--ln-e2)}
.ln-guia main article li::marker{color:var(--ln-rotulo)}
.ln-guia main i,.ln-guia main em{font-style:italic}
/* passos numerados (passos-lista) e o protocolo: o número num quadro suave, a régua fina ligando os passos */
.ln-guia main .passos-lista{list-style:none;padding:0;margin:var(--ln-e4) 0 var(--ln-e5);counter-reset:passo}
.ln-guia main .passos-lista li{counter-increment:passo;position:relative;margin:0 0 0 1.125rem;padding:0 0 var(--ln-e5) 2.25rem;border-left:1px solid var(--ln-linha)}
.ln-guia main .passos-lista li:last-child{border-left-color:transparent;padding-bottom:0}
.ln-guia main .passos-lista li::before{content:counter(passo);position:absolute;left:-1.125rem;top:0;width:2.25rem;height:2.25rem;border-radius:var(--ln-r1);background:var(--ln-suave);color:var(--ln-tinta);font:var(--ln-peso-medio) var(--ln-t-menor)/2.25rem var(--ln-fonte-mono);text-align:center;display:block}
.ln-guia main .passos-lista h3{margin:0 0 var(--ln-e2);padding-top:.4rem;font-size:var(--ln-t-corpo);line-height:1.4}
.ln-guia main ol.protocolo{list-style:none;padding:0;margin:var(--ln-e4) 0 var(--ln-e5);counter-reset:prot}
.ln-guia main ol.protocolo>li{counter-increment:prot;position:relative;padding:0 0 0 3rem;margin:0 0 var(--ln-e4);min-height:2.25rem}
.ln-guia main ol.protocolo>li::before{content:counter(prot);position:absolute;left:0;top:0;width:2.25rem;height:2.25rem;border-radius:var(--ln-r1);background:var(--ln-suave);color:var(--ln-tinta);font:var(--ln-peso-medio) var(--ln-t-menor)/2.25rem var(--ln-fonte-mono);text-align:center;display:block}
.ln-guia main ol.protocolo>li b{display:inline;font-size:inherit;margin:0;color:var(--ln-tinta)}
.ln-guia main ol.protocolo>li>b:first-child{display:block;font-weight:var(--ln-peso-medio);margin:.4rem 0 var(--ln-e1)}
/* erro comum: a nota da direção com o filete do estado crítico; o rótulo em mono */
.ln-guia main .erro{background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--sev-critico-borda,var(--ln-ctl));border-radius:var(--ln-r1);color:var(--ln-tinta);font-size:var(--ln-t-menor);line-height:1.6;padding:var(--ln-e3) var(--ln-e4);margin:var(--ln-e4) 0}
.ln-guia main .erro>b:first-child{display:block;font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--sev-critico-tinta,var(--ln-rotulo));text-transform:none;letter-spacing:0;margin:0 0 var(--ln-e1)}
.ln-guia main .erro a{color:var(--ln-marca)}
/* caixas de apoio do texto: a ponte para a ferramenta, nota, dica, alerta e atenção — todas a .nota da direção */
.ln-guia main .ferramenta,.ln-guia main .nota,.ln-guia main .dica-box,.ln-guia main .alerta,.ln-guia main .atencao{background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-marca);border-radius:var(--ln-r1);color:var(--ln-tinta);font-size:var(--ln-t-menor);line-height:1.6;padding:var(--ln-e3) var(--ln-e4);margin:var(--ln-e4) 0}
.ln-guia main .alerta,.ln-guia main .atencao{border-left-color:var(--sev-atencao-borda,var(--ln-ctl))}
.ln-guia main .ferramenta{background:var(--ln-fundo)}
.ln-guia main .ferramenta a,.ln-guia main .nota a,.ln-guia main .dica-box a,.ln-guia main .alerta a,.ln-guia main .atencao a{font-weight:var(--ln-peso-medio)}
.ln-guia main .nota p,.ln-guia main .dica-box p,.ln-guia main .alerta p,.ln-guia main .atencao p{font-size:inherit;margin:0}
.ln-guia main .resposta-direta{background:var(--ln-fundo)!important;border:1px solid var(--ln-linha)!important;border-left:3px solid var(--ln-marca)!important;border-radius:var(--ln-r1)!important;font-size:var(--ln-t-corpo)!important;color:var(--ln-tinta)}
/* diagnóstico em pares (o que você vê → o que é): cartões claros com o filete da marca */
.ln-guia main .diag{display:grid;grid-template-columns:1fr;gap:var(--ln-e2);margin:var(--ln-e4) 0}
@media (min-width:700px){.ln-guia main .diag{grid-template-columns:1fr 1fr}}
.ln-guia main .diag-item{background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-marca);border-radius:var(--ln-r1);padding:var(--ln-e3) var(--ln-e4)}
.ln-guia main .diag-ver{font:var(--ln-peso-medio) var(--ln-t-menor)/1.45 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0 0 var(--ln-e2)}
.ln-guia main .diag-diag{font-size:var(--ln-t-menor);line-height:1.5;color:var(--ln-texto-2);border-top:1px solid var(--ln-linha);padding-top:var(--ln-e2);margin:0}
.ln-guia main .dgn-legenda{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
/* figura do artigo */
.ln-guia main figure{margin:var(--ln-e4) 0}
.ln-guia main figure svg{max-width:100%;height:auto}
.ln-guia main figcaption{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin-top:var(--ln-e2)}
/* o widget SOS (sos-widget.js) e o diagnóstico: o cartão da calculadora, sem degradê; a ação é a verde */
.ln-guia main .sosw{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);box-shadow:none;margin:var(--ln-e5) 0}
.ln-guia main .sosw-top{background:none;color:var(--ln-tinta);padding:var(--ln-e4) var(--ln-e4) 0}
.ln-guia main .sosw-top b{font:var(--ln-peso-medio) var(--ln-t-lead)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-guia main .sosw-top span{font-size:var(--ln-t-menor);color:var(--ln-texto-2);opacity:1}
.ln-guia main .sosw-corpo{padding:var(--ln-e4)}
.ln-guia main .sosw-campo label{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-guia main .sosw-campo input,.ln-guia main .sosw select{min-height:var(--ln-alvo-toque);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto)}
.ln-guia main button.sosw-btn:not(#v327){width:100%;min-height:var(--ln-alvo-botao);background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;font-size:var(--ln-t-corpo)!important}
.ln-guia main button.sosw-btn:not(#v327):hover{background:var(--ln-marca-hover)!important}
.ln-guia main .sosw-res{border-radius:var(--ln-r1);background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-ctl)}
.ln-guia main .sosw-res.ok{border-left-color:var(--sev-ok-borda,var(--ln-marca))}
.ln-guia main .sosw-res.alerta{border-left-color:var(--sev-atencao-borda,var(--ln-ctl))}
.ln-guia main .sosw-res.perigo{border-left-color:var(--sev-critico-borda,var(--ln-ctl))}
.ln-guia main .sosw-res .nivel{font:var(--ln-peso-medio) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);text-transform:none;letter-spacing:0}
.ln-guia main .sosw-res .valor,.ln-guia main .sosw-res .valor b{color:var(--ln-tinta)}
.ln-guia main a.sosw-cta{display:flex;align-items:center;justify-content:center;min-height:var(--ln-alvo-botao);background:var(--ln-noite);color:var(--ln-sobre-noite);border-radius:var(--ln-r1);text-decoration:none;font-weight:var(--ln-peso-medio)}
.ln-guia main .sosw-nota{font-size:var(--ln-t-rotulo);color:var(--ln-texto-2)}
/* o diagnóstico guiado (diagnostico.js): o mesmo cartão do widget SOS; as opções são linhas da lista, à esquerda */
.ln-guia main .dgn{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);box-shadow:none;margin:var(--ln-e5) 0}
.ln-guia main .dgn-top{background:none;color:var(--ln-tinta);padding:var(--ln-e4) var(--ln-e4) 0}
.ln-guia main .dgn-top b,.ln-guia main .dgn-top strong{font:var(--ln-peso-medio) var(--ln-t-lead)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-guia main .dgn-top span,.ln-guia main .dgn-top p{font-size:var(--ln-t-menor);color:var(--ln-texto-2);opacity:1}
.ln-guia main .dgn-corpo{padding:var(--ln-e4)}
.ln-guia main .dgn-pergunta{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.4 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-guia main .dgn-dica{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-guia main button.dgn-opc:not(#v327){display:flex!important;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:var(--ln-e1) var(--ln-e3);width:100%;text-align:left!important;padding:var(--ln-e3) var(--ln-e4)!important;font-weight:var(--ln-peso-normal)!important}
.ln-guia main button.dgn-opc:not(#v327) b{font-weight:var(--ln-peso-medio);color:var(--ln-tinta)}
.ln-guia main button.dgn-opc:not(#v327) span,.ln-guia main button.dgn-opc:not(#v327) i{font-size:var(--ln-t-rotulo);color:var(--ln-texto-2);font-style:normal}
.ln-guia main .dgn-res{border-radius:var(--ln-r1);background:var(--ln-papel);border:1px solid var(--ln-linha)}
.ln-guia main .dgn-tag{font:var(--ln-peso-medio) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);text-transform:none;letter-spacing:0}
.ln-guia main .dgn-nome{font:var(--ln-peso-medio) var(--ln-t-lead)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-guia main .dgn-erro{background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--sev-critico-borda,var(--ln-ctl));border-radius:var(--ln-r1);color:var(--ln-tinta)}
.ln-guia main a.dgn-cta{display:flex;align-items:center;justify-content:center;min-height:var(--ln-alvo-botao);background:var(--ln-noite);color:var(--ln-sobre-noite);border-radius:var(--ln-r1);text-decoration:none;font-weight:var(--ln-peso-medio)}
.ln-guia main button.dgn-link:not(#v327){border:0!important;background:none!important;padding:0!important;min-height:var(--ln-alvo-toque);color:var(--ln-marca)!important;text-decoration:underline;text-underline-offset:3px}
/* o plano de corte do vidro (corte-vidro.js): o mesmo cartão; os números em cartões claros, a tabela da casa */
.ln-guia main .cvz{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);box-shadow:none;margin:var(--ln-e5) 0}
.ln-guia main .cvz-top{background:none;color:var(--ln-tinta);padding:var(--ln-e4) var(--ln-e4) 0}
.ln-guia main .cvz-top b{font:var(--ln-peso-medio) var(--ln-t-lead)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-guia main .cvz-top span{font-size:var(--ln-t-menor);color:var(--ln-texto-2);opacity:1}
.ln-guia main .cvz-corpo{padding:var(--ln-e4)}
.ln-guia main .cvz-campo label{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-guia main .cvz-campo input,.ln-guia main .cvz-campo select{min-height:var(--ln-alvo-toque);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto)}
.ln-guia main .cvz-opts{color:var(--ln-tinta);font-size:var(--ln-t-menor)}
.ln-guia main .cvz-opts input{accent-color:var(--ln-marca)}
.ln-guia main .cvz-card{background:var(--ln-papel);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-marca);border-radius:var(--ln-r1)}
.ln-guia main .cvz-card .k,.ln-guia main .cvz-secao{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);text-transform:none;letter-spacing:0}
.ln-guia main .cvz-card .v{font:var(--ln-peso-leve) var(--ln-t-dado)/1.15 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-guia main .cvz-card .n,.ln-guia main .cvz-tot,.ln-guia main .cvz-desc{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-guia main .cvz-plano{background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1)}
.ln-guia main .cvz-desc{background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1)}
.ln-guia main .cvz-aviso{background:var(--ln-papel)!important;border:1px solid var(--ln-linha)!important;border-left:3px solid var(--sev-atencao-borda,var(--ln-ctl))!important;color:var(--ln-tinta)!important;border-radius:var(--ln-r1)}
.ln-guia main .cvz-aviso.cuidado{border-left-color:var(--sev-critico-borda,var(--ln-ctl))!important}
.ln-guia main a.cvz-cta{display:flex;align-items:center;justify-content:center;min-height:var(--ln-alvo-botao);background:var(--ln-noite);color:var(--ln-sobre-noite);border-radius:var(--ln-r1);text-decoration:none;font-weight:var(--ln-peso-medio)}
.ln-guia main .cvz-nota,.ln-guia main p.cvz-nota{font-size:var(--ln-t-rotulo);line-height:1.5;color:var(--ln-texto-2)}
/* «Leve este guia com você»: o bloco do PDF — a porta de cadastro do site; o botão é a ação principal (verde) */
.ln-guia main .acd-cta{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e4);margin:var(--ln-e6) 0 var(--ln-e4);box-shadow:none;color:var(--ln-tinta)}
.ln-guia main .acd-cta p{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:0}
.ln-guia main .acd-cta p b{display:block;font:var(--ln-peso-medio) var(--ln-t-corpo)/1.4 var(--ln-fonte-texto);color:var(--ln-tinta);margin:0 0 var(--ln-e1)}
.ln-guia main .acd-cta button:not(#v327){min-height:var(--ln-alvo-botao);padding:0 1.25rem!important;background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;font-size:var(--ln-t-corpo)!important;white-space:nowrap}
.ln-guia main .acd-cta button:not(#v327):hover{background:var(--ln-marca-hover)!important}
/* tabela larga no celular (sete colunas no plantado para iniciantes): a régua da casa não cabe em 414 px e a
   página deslizava (conferir-estouro, 02/10). Sem mexer no HTML do guia, a tabela vira a própria caixa de
   rolagem — quem desliza é ela, não a página — e as células apertam o respiro. Só a de quatro colunas ou mais:
   a de duas ou três cabe, e continua ocupando a largura */
@media (max-width:640px){
  .ln-guia main table{font-size:var(--ln-t-rotulo)}
  .ln-guia main table:has(tr>:nth-child(4)){display:block!important;overflow-x:auto;max-width:100%}
  .ln-guia main th,.ln-guia main td{padding:var(--ln-e1) var(--ln-e2) var(--ln-e1) var(--ln-e1)!important}
  .ln-guia main th{font-family:var(--ln-fonte-texto)!important;font-size:var(--ln-t-rotulo)}
}
/* fontes no fim do guia */
.ln-guia main .fonte-ficha{border-top:1px solid var(--ln-linha);padding-top:var(--ln-e3);margin-top:var(--ln-e6);overflow-wrap:anywhere}
.ln-guia main .fonte-ficha a{color:var(--ln-texto-2)}
/* ==== fim V327-GUIAS ==== */
/* V-1238: a linha de IA por bloco (grade do /guias, lista da home, foto do topo do Para lojas) */
.ln .selo-ia-bloco{font-size:var(--ln-t-menor);line-height:1.4;color:var(--ln-texto-2);margin:var(--ln-e2) 0 var(--ln-e3)}

/* ==== V436-CONTA ==== */
/* V-436 (02/10): o LUGAR da conta no topo. O encaixe [data-conta] mora no grupo de ícones do celular
   (lupa · conta · ☰); no computador o grupo some e só o encaixe fica, depois do secundário. Antes do JS
   ele diz «Entrar»; o menu e a bolinha se vestem no conta.js (o mesmo componente vai ao painel, que não
   carrega esta folha). «Para lojas» some do topo de quem já é lojista (a classe vem do conta.js). */
.ln-topo .ln-icones .ln-conta{display:flex;align-items:center}
.ln-topo .ln-icones .ln-conta a.ln-entrar{width:auto;height:auto;display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:0 10px;font-weight:var(--ln-peso-medio);color:var(--ln-marca);text-decoration:underline;text-underline-offset:3px}
.ln-topo .ln-icones .ln-conta .ln-conta-bt{border-radius:50%}
.ln-topo.ln-tem-loja .ln-para-lojas{display:none}
/* V-546 (E2): quem já é lojista vê «Painel da loja» no lugar de «Para lojas» — a classe ln-lojista
   no <html> vem do conta.js, pelo vínculo lido no banco (plataforma.js, lerLojas). */
.ln-so-lojista{display:none!important}
.ln-lojista .ln-nao-lojista{display:none!important}
.ln-lojista a.ln-so-lojista{display:inline-flex!important}
.ln-lojista li.ln-so-lojista{display:list-item!important}
.ln-lojista .util.ln-so-lojista{display:block!important}
@media (min-width:1000px){
  .ln-topo .ln-icones{display:flex;order:1}
  .ln-topo .ln-icones>:not(.ln-conta){display:none}
  .ln-topo .ln-icones .ln-conta a.ln-entrar{min-height:40px;padding:0 1.25rem;border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);color:var(--ln-tinta);text-decoration:none}
  .ln-topo .ln-icones .ln-conta a.ln-entrar:hover{background:var(--ln-fundo)}
}
/* ==== fim V436-CONTA ==== */

/* ==== V448-FILTRO ==== */
/* V-448 (02/10, aprovado): a peça única de busca e filtro dos hubs — site/filtro-hub.js desenha,
   este bloco veste. Tudo escopado a `.fh` (a raiz que a peça marca) e às caixas de resposta dela; nenhuma regra
   fora deste bloco mudou. O `:not(#fh)` sobe a especificidade acima da regra geral «todo botão do corpo do hub é
   secundário» (.ln-hub main button…!important) sem mexer nela. Anatomia: rótulo · campo (16 px, 48 px) ·
   faceta principal em chips · «Mais filtros» · a linha do que está ligado · respostas e vazio. */
.ln .fh{display:block;margin:0 0 var(--ln-e5);--fh-aviso:var(--sev-atencao-tinta);--fh-aviso-fundo:color-mix(in srgb,var(--sev-atencao-tinta) 8%,var(--ln-papel))}
.ln .fh[hidden]{display:none}
.ln .fh .fh-rot{display:block;margin:0 0 var(--ln-e2);font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln .fh .fh-campo{position:relative;display:flex;align-items:center}
.ln .fh .fh-campo>svg{position:absolute;left:14px;width:20px;height:20px;color:var(--ln-rotulo);pointer-events:none}
/* 16 px de letra no campo: abaixo disso o Safari do iPhone dá zoom no foco (defeito 6 do desenho V-448) */
.ln .fh .fh-campo input:not(#fh){flex:1 1 auto;width:100%;min-width:0;min-height:var(--ln-alvo-botao);margin:0;padding:0 5.5rem 0 2.75rem!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-normal) 16px/1.2 var(--ln-fonte-texto)!important;box-shadow:none!important;-webkit-appearance:none;appearance:none}
.ln .fh .fh-campo input:not(#fh):focus{outline:2px solid var(--ln-foco);outline-offset:1px;border-color:var(--ln-foco)!important}
.ln .fh .fh-campo input::-webkit-search-cancel-button{display:none}
.ln .fh .fh-campo input::placeholder{color:var(--ln-texto-2)}
.ln .fh button.fh-limpar:not(#fh){position:absolute;right:2px;min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3)!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--ln-marca)!important;font:var(--ln-peso-medio) var(--ln-t-menor)/1 var(--ln-fonte-texto)!important}
.ln .fh [hidden]{display:none!important}
.ln .fh .fh-ex{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e2);margin:var(--ln-e2) 0 0;font:var(--ln-peso-normal) var(--ln-t-menor)/1.3 var(--ln-fonte-texto);color:var(--ln-texto-2)}
.ln .fh button.fh-exb:not(#fh){min-height:36px;padding:0 var(--ln-e3)!important;border:1px dashed var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-normal) var(--ln-t-menor)/1 var(--ln-fonte-texto)!important}
/* a faceta principal (o <nav class="atalhos"> adotado, ou chips-botão) e o «Mais filtros» na mesma linha */
.ln .fh .fh-linha{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e2);margin:var(--ln-e3) 0 0}
.ln .fh .fh-linha:not(:has(.atalho)):not(:has(.fh-mais)){display:none}
.ln .fh .fh-principal{display:contents}
.ln .fh .fh-chips{display:flex;flex-wrap:wrap;gap:var(--ln-e2);margin:0}
.ln .fh .fh-chips .atalho{min-height:var(--ln-alvo-toque)}
.ln .fh .fh-chips .atalho.ativo,.ln .fh .fh-chips .atalho[aria-current="true"]{box-shadow:inset 0 -3px 0 var(--ln-marca)}
.ln .fh button.fh-mais:not(#fh){min-height:var(--ln-alvo-toque);padding:0 var(--ln-e4)!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-medio) var(--ln-t-menor)/1 var(--ln-fonte-texto)!important}
.ln .fh button.fh-mais:not(#fh)::after{content:"+";margin-left:var(--ln-e2);color:var(--ln-marca)}
.ln .fh button.fh-mais[aria-expanded="true"]:not(#fh)::after{content:"−"}
.ln .fh .fh-painel{display:grid;gap:var(--ln-e3);margin:var(--ln-e3) 0 0;padding:var(--ln-e4);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-fundo)}
.ln .fh .fh-faceta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e2);margin:0;padding:0;border:0;min-width:0}
.ln .fh .fh-faceta legend{float:left;width:100%;margin:0 0 var(--ln-e1);padding:0;font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln .fh button.fh-chip:not(#fh){min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3)!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-normal) var(--ln-t-menor)/1 var(--ln-fonte-texto)!important;box-shadow:none!important}
.ln .fh button.fh-chip:not(#fh) i{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);font-style:normal;color:var(--ln-rotulo)}
.ln .fh button.fh-chip[aria-pressed="true"]:not(#fh){background:var(--ln-suave)!important;border-color:var(--ln-marca)!important;box-shadow:inset 0 -3px 0 var(--ln-marca)!important}
/* a linha do que está ligado: contador em mono, um chip com × por filtro, «Limpar tudo» */
.ln .fh .fh-estado{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e2) var(--ln-e3);margin:var(--ln-e3) 0 0}
.ln .fh .fh-conta{margin:0;font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln .fh .fh-ligados{display:flex;flex-wrap:wrap;gap:var(--ln-e2);list-style:none;margin:0;padding:0}
.ln .fh .fh-ligados li{margin:0}
.ln .fh button.fh-tirar:not(#fh){min-height:36px;padding:0 var(--ln-e3)!important;border:1px solid var(--ln-marca)!important;border-radius:var(--ln-r1)!important;background:var(--ln-suave)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-normal) var(--ln-t-menor)/1 var(--ln-fonte-texto)!important;box-shadow:none!important}
.ln .fh button.fh-tirar:not(#fh) span{margin-left:var(--ln-e1);color:var(--ln-marca)}
.ln .fh button.fh-tudo:not(#fh){min-height:36px;padding:0 var(--ln-e2)!important;border:0!important;background:none!important;box-shadow:none!important;color:var(--ln-marca)!important;text-decoration:underline;text-underline-offset:3px;font:var(--ln-peso-medio) var(--ln-t-menor)/1 var(--ln-fonte-texto)!important}
/* respostas: o vazio que aponta a saída, e as caixas do motor próprio (lacuna, espécie, grupo) */
.ln .fh .fh-resp{margin:var(--ln-e4) 0 0}
.ln .fh .fh-vazio,.ln .fh .fh-caixa{border:1px solid var(--ln-linha);border-left:4px solid var(--ln-marca);border-radius:var(--ln-r1);background:var(--ln-fundo);padding:var(--ln-e4);margin:0 0 var(--ln-e3);max-width:var(--ln-col-texto)}
.ln .fh .fh-caixa.lacuna{border-left-color:var(--fh-aviso);background:var(--fh-aviso-fundo)}
.ln .fh .fh-caixa h3{margin:0 0 var(--ln-e2);font:var(--ln-peso-medio) var(--ln-t-corpo)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln .fh .fh-vazio p,.ln .fh .fh-caixa p{margin:0 0 var(--ln-e2);font:var(--ln-peso-normal) var(--ln-t-menor)/1.5 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln .fh .fh-vazio p b{font-weight:var(--ln-peso-medio)}
.ln .fh .fh-caixa ul,.ln .fh .fh-acoes{display:flex;flex-wrap:wrap;gap:var(--ln-e2);list-style:none;margin:var(--ln-e2) 0 0;padding:0}
.ln .fh .fh-caixa li,.ln .fh .fh-acoes li{margin:0;max-width:100%}
.ln .fh .fh-caixa li a,.ln .fh .fh-acoes a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta)!important;text-decoration:none;font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto)}
.ln .fh .fh-acoes a{color:var(--ln-marca)!important;font-weight:var(--ln-peso-medio)}
.ln .fh .fh-caixa li a small{margin-left:6px;font:var(--ln-peso-normal) var(--ln-t-rotulo)/1 var(--ln-fonte-mono);color:var(--ln-rotulo)}
/* a espécie com o trecho da ficha: nome-link em cima, a frase da ficha embaixo (é o que responde «posso ter dois machos?») */
.ln .fh .fh-especies{display:grid!important;gap:var(--ln-e2)!important}
.ln .fh .fh-especies li a{display:block;min-height:0;padding:var(--ln-e3);border-color:var(--ln-linha)}
.ln .fh .fh-especies li a b{display:block;font-weight:var(--ln-peso-medio);color:var(--ln-tinta)}
.ln .fh .fh-especies li a span{display:block;margin-top:var(--ln-e1);color:var(--ln-texto-2);line-height:1.45}
.ln .fh .fh-especies li a em{font-style:normal;color:var(--ln-marca);font-weight:var(--ln-peso-medio)}
.ln .fh .fh-sub{margin:var(--ln-e3) 0 var(--ln-e2);font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
/* onde os itens moram enquanto há texto (o /calculadoras usa a grade #resultadosCalc; o /guias, #resultados) */
.ln-hub #resultadosCalc{margin-bottom:var(--ln-e5)}
.ln-hub #resultadosCalc[hidden]{display:none}
@media (max-width:699px){
  /* no celular os chips quebram linha (cinco valores cabem em duas); rolagem lateral escondida é filtro que ninguém vê */
  .ln .fh .fh-chips .atalho{padding:0 var(--ln-e3)!important}
}
/* ==== fim V448-FILTRO ==== */

/* ==== V267-FICHAS ==== */
/* 02/10 (V-267, piloto): as 50 fichas de espécie do piloto (interno/PILOTO-FICHAS-LN.json) na Linha d'água.
   A casca é `ln ln-ferramenta ln-ficha`: a ficha veste os componentes que já tem em comum com a calculadora
   e o guia (migalha, h1, h2, FAQ, guias relacionados, compartilhar) e aqui mora SÓ o que é da ficha: o nome
   científico, os selos, o quadro de parâmetros, as caixas (resumo, «o que mais mata», reef, atenção), a
   indicação de produto, o nome e o sexo da espécie, as fotos, «Quero ter» e o convite de foto, as fontes.
   O TEXTO não muda (V-418 descartado, 02/10): só o visual. A ficha traz um <style> próprio que
   chega DEPOIS desta folha; toda regra leva `.ln-ficha main` para vencer pela especificidade, sem !important
   nas cores. O `:not(#v267)` soma especificidade de id para vencer «todo botão do corpo é secundário». */
.ln-ficha main article>h1{margin-bottom:var(--ln-e1)}
.ln-ficha main .sci-nome{font:italic var(--ln-peso-normal) var(--ln-t-corpo)/1.4 var(--ln-fonte-texto);color:var(--ln-texto-2);margin:0 0 var(--ln-e4)}
/* selos: rótulo mono em caixa reta; o estado (temperamento, dificuldade, reef) leva o filete do severo */
.ln-ficha main .badges{display:flex;flex-wrap:wrap;gap:var(--ln-e2);margin:0 0 var(--ln-e5)}
.ln-ficha main .badge{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.3 var(--ln-fonte-mono);letter-spacing:0;padding:var(--ln-e1) var(--ln-e2);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);border:1px solid var(--ln-linha);white-space:nowrap}
.ln-ficha main .badge[class*="luz-"],.ln-ficha main .badge[class*="co2-"]{background:var(--ln-papel);color:var(--ln-tinta)}
.ln-ficha main .badge.tmp-pacifico,.ln-ficha main .badge.dif-facil,.ln-ficha main .badge.reef-sim{background:var(--sev-ok-fundo,var(--ln-papel));color:var(--sev-ok-tinta,var(--ln-tinta));border-color:var(--sev-ok-borda,var(--ln-linha))}
.ln-ficha main .badge.tmp-ressalvas,.ln-ficha main .badge.dif-medio,.ln-ficha main .badge.reef-ressalva{background:var(--sev-atencao-fundo,var(--ln-papel));color:var(--sev-atencao-tinta,var(--ln-tinta));border-color:var(--sev-atencao-borda,var(--ln-linha))}
.ln-ficha main .badge.tmp-agressivo,.ln-ficha main .badge.dif-dificil,.ln-ficha main .badge.reef-nao{background:var(--sev-critico-fundo,var(--ln-papel));color:var(--sev-critico-tinta,var(--ln-tinta));border-color:var(--sev-critico-borda,var(--ln-linha))}
/* o texto de manejo */
.ln-ficha main article>p{margin:0 0 var(--ln-e3)}
.ln-ficha main article>h2{margin:var(--ln-e7) 0 var(--ln-e3)}
/* o quadro de parâmetros: a régua de dados da direção — rótulo mono em cima, número no corpo, filetes entre as células */
.ln-ficha main .ficha-tec{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:var(--ln-e5) 0;padding:0;background:none;border:0;border-bottom:1px solid var(--ln-linha);border-radius:0}
@media (min-width:700px){.ln-ficha main .ficha-tec{grid-template-columns:repeat(4,minmax(0,1fr))}}
.ln-ficha main .ficha-tec .par{display:flex;flex-direction:column;gap:var(--ln-e1);padding:var(--ln-e3) var(--ln-e3) var(--ln-e3) 0;border-top:1px solid var(--ln-linha)}
.ln-ficha main .ficha-tec .par span{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.3 var(--ln-fonte-mono);color:var(--ln-rotulo);letter-spacing:0;text-transform:none}
.ln-ficha main .ficha-tec .par b{font:var(--ln-peso-medio) var(--ln-t-corpo)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta);font-variant-numeric:tabular-nums}
/* as caixas: resumo / o que mais mata (filete da marca), atenção (filete de atenção), alerta (filete crítico) */
.ln-ficha main .dica-box,.ln-ficha main .atencao,.ln-ficha main .alerta{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-left:3px solid var(--ln-marca);border-radius:var(--ln-r1);color:var(--ln-tinta);font-size:var(--ln-t-corpo);line-height:1.6;padding:var(--ln-e3) var(--ln-e4);margin:var(--ln-e4) 0}
.ln-ficha main .atencao{background:var(--ln-papel);border-left-color:var(--sev-atencao-borda,var(--ln-ctl))}
.ln-ficha main .alerta{background:var(--ln-papel);border-left-color:var(--sev-critico-borda,var(--ln-ctl))}
.ln-ficha main .dica-box>b:first-child,.ln-ficha main .atencao>b:first-child,.ln-ficha main .alerta>b:first-child{font-weight:var(--ln-peso-medio)}
.ln-ficha main .alerta>b:first-child{color:var(--sev-critico-tinta,var(--ln-tinta))}
.ln-ficha main .atencao>b:first-child{color:var(--sev-atencao-tinta,var(--ln-tinta))}
/* indicação de produto (recolhida) */
.ln-ficha main .ind-guia .ind-previa{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
/* «De onde vem o nome» e «Macho ou fêmea?»: seção de leitura com filete, sem caixa colorida */
.ln-ficha main .curiosidade,.ln-ficha main .dimorfismo{background:none;border:0;border-top:1px solid var(--ln-linha);border-radius:0;padding:var(--ln-e5) 0 0;margin:var(--ln-e7) 0 0}
.ln-ficha main .curiosidade h2,.ln-ficha main .dimorfismo h2{margin:0 0 var(--ln-e3)}
.ln-ficha main .curiosidade h3{font:var(--ln-peso-medio) var(--ln-t-lead)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta);margin:var(--ln-e5) 0 var(--ln-e2)}
.ln-ficha main .curiosidade p,.ln-ficha main .dimorfismo p{margin:0 0 var(--ln-e3)}
.ln-ficha main .curiosidade-aut,.ln-ficha main .curiosidade-fontes,.ln-ficha main .curiosidade-fontes-lista{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-ficha main .curiosidade-fontes{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-ficha main .curiosidade-fontes-lista{padding-left:1.2em}
.ln-ficha main .curiosidade-fontes-lista a{color:var(--ln-texto-2)}
/* fotos aprovadas */
.ln-ficha main .fe-foto{margin:var(--ln-e4) 0}
.ln-ficha main .fe-foto img{width:100%;height:auto;border-radius:var(--ln-r1);display:block}
.ln-ficha main .fe-foto figcaption{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);margin-top:var(--ln-e2)}
/* «Quero ter» (colecao.js): a ação do aquarista na ficha é a verde; marcado, vira o estado suave */
.ln-ficha main .quero-ter{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e2) var(--ln-e3);margin:var(--ln-e7) 0 var(--ln-e3);padding:var(--ln-e4);background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1)}
.ln-ficha main .quero-ter button.qt-bt:not(#v267){min-height:var(--ln-alvo-botao);padding:0 1.25rem!important;background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;font-size:var(--ln-t-corpo)!important}
.ln-ficha main .quero-ter button.qt-bt:not(#v267):hover{background:var(--ln-marca-hover)!important}
.ln-ficha main .quero-ter button.qt-bt.qt-on:not(#v267){background:var(--ln-suave)!important;border-color:var(--ln-marca)!important;color:var(--ln-tinta)!important}
.ln-ficha main .qt-nota{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-ficha main .qt-estado{font-size:var(--ln-t-menor);color:var(--ln-tinta)}
/* convite de foto (foto-especie.js): uma linha de texto com link, não um segundo botão */
.ln-ficha main .fe-convite{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:0 0 var(--ln-e4)}
.ln-ficha main .fe-convite button.fe-abrir:not(#v267){display:inline;min-height:0;padding:0!important;border:0!important;background:none!important;color:var(--ln-marca)!important;font:inherit!important;font-weight:var(--ln-peso-medio)!important;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ln-ficha main .fe-cx{background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1)}
/* fontes no fim da ficha */
.ln-ficha main .fonte-ficha{border-top:1px solid var(--ln-linha);padding-top:var(--ln-e3);margin-top:var(--ln-e5);font-size:var(--ln-t-menor);color:var(--ln-texto-2);overflow-wrap:anywhere}
.ln-ficha main .fonte-ficha+.fonte-ficha{border-top:0;padding-top:0;margin-top:var(--ln-e2)}
.ln-ficha main .fonte-ficha a{color:var(--ln-texto-2)}
/* ==== fim V267-FICHAS ==== */

/* ==== V448-ESPECIES ==== */
/* V-448, levas 2 a 4 (02/10): a peça única de busca e filtro nos cinco hubs de espécie (/marinho, /peixes,
   /plantas, /doencas, /especies). O bloco V448-FILTRO acima veste a peça e não foi tocado; este acrescenta
   só o que os modos novos desenham: o campo de número (litros, pH, temperatura), a nota da palavra que
   ficou de fora da busca, o painel de sintomas do /doencas e as ABAS de catálogo (doce · marinho), que
   trocam de página e por isso não podem ter o desenho do chip que filtra (defeito 8 do desenho V-448). */
.ln .fh .fh-linha:has(.fh-num){display:flex}
/* a faceta principal desenhada pela peça (/peixes, /plantas, /especies) é rádio: o ligado se marca igual ao link adotado */
.ln .fh .fh-chips .atalho[aria-checked="true"]{background:var(--ln-suave)!important;border-color:var(--ln-marca);box-shadow:inset 0 -3px 0 var(--ln-marca)}
.ln .fh .fh-num{display:inline-flex;align-items:center;gap:var(--ln-e2);margin:0;font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln .fh .fh-num span{white-space:nowrap}
.ln .fh .fh-num .fh-un{color:var(--ln-texto-2)}
.ln .fh .fh-so-leitor{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* 16 px também no número: o mesmo zoom do iPhone vale para todo campo que ganha foco */
.ln .fh .fh-num input:not(#fh){width:7.5rem;min-height:var(--ln-alvo-toque);margin:0;padding:0 var(--ln-e3)!important;border:1px solid var(--ln-ctl)!important;border-radius:var(--ln-r1)!important;background:var(--ln-papel)!important;color:var(--ln-tinta)!important;font:var(--ln-peso-normal) 16px/1.2 var(--ln-fonte-texto)!important;box-shadow:none!important}
.ln .fh .fh-num input:not(#fh):focus{outline:2px solid var(--ln-foco);outline-offset:1px;border-color:var(--ln-foco)!important}
.ln .fh .fh-faceta .fh-num{flex-wrap:wrap}
.ln .fh .fh-nota{margin:0 0 var(--ln-e3);font:var(--ln-peso-normal) var(--ln-t-menor)/1.5 var(--ln-fonte-texto);color:var(--ln-texto-2)}
/* o identificador de sintomas: chips de várias linhas de texto, um por linha no celular */
.ln .fh .fh-ordena button.fh-chip:not(#fh){min-height:var(--ln-alvo-toque);height:auto;padding:var(--ln-e2) var(--ln-e3)!important;text-align:left;line-height:1.3!important;white-space:normal}
.ln .fh .fh-ordena button.fh-chip[aria-pressed="true"]:not(#fh)::before{content:"✓ ";color:var(--ln-marca)}
/* abas de catálogo: navegação entre páginas, com o desenho de aba (linha embaixo), não de chip */
.ln-hub nav.abas-catalogo{display:flex;flex-wrap:nowrap;gap:0;margin:0 0 var(--ln-e5);border-bottom:1px solid var(--ln-linha)}
.ln-hub nav.abas-catalogo .atalho{min-height:var(--ln-alvo-toque);margin:0 0 -1px;padding:0 var(--ln-e4)!important;border:0!important;border-bottom:3px solid transparent!important;border-radius:0!important;background:none!important;color:var(--ln-texto-2)!important;font:var(--ln-peso-medio) var(--ln-t-corpo)/1 var(--ln-fonte-texto)!important}
.ln-hub nav.abas-catalogo .atalho:hover{color:var(--ln-tinta)!important}
.ln-hub nav.abas-catalogo .atalho.ativo,.ln-hub nav.abas-catalogo .atalho[aria-current="page"]{border-bottom-color:var(--ln-marca)!important;color:var(--ln-tinta)!important}
/* no /especies o campo da peça mora entre os mundos e a grade */
.ln-especies #filtros.fh{margin-top:var(--ln-e4)}
@media (max-width:699px){
  .ln .fh .fh-linha .fh-num{flex:1 1 100%}
  .ln .fh .fh-linha .fh-num input:not(#fh){width:8rem}
  .ln-hub nav.abas-catalogo .atalho{flex:1 1 0;justify-content:center}
}
/* ==== fim V448-ESPECIES ==== */

/* ==== V420-PULSO ==== */
/* V-420 (02/10): as quatro telas do app Pulso (pulso-cadastro, -registrar, -diario, -diagnostico) na Linha
   d'água. O topo é o do site, com a bolinha da conta (V-436) — o arranjo aprovado para o painel
   da loja; o que é do app fica logo abaixo: o seletor do aquário e as quatro abas. Este bloco veste o CORPO
   inteiro (campos, botões, cartões, abas, avisos, linhas do diário). Tudo sob .ln-pulso, e com `.pl` (o
   elemento main da tela) para vencer a folha própria de cada página, que vem depois desta e foi escopada a `.pl`.
   As cores antigas das telas viram tokens da Linha d'água aqui, no <body>: quem usa var(--acao) veste o verde
   da marca sem reescrever as quatro folhas. Nenhum hex: a guarda linha-dagua reprova cor cravada. */
.ln-pulso{background:var(--ln-papel);color:var(--ln-tinta);
  --azul:var(--ln-marca);--azul-esc:var(--ln-tinta);--acao:var(--ln-marca);--acao-esc:var(--ln-marca-hover);
  --agua:var(--ln-fundo);--agua2:var(--ln-fundo);--cinza:var(--ln-texto-2);--borda:var(--ln-linha);
  --fundo:var(--ln-papel);--verde:var(--ln-marca)}
.ln-pulso .pl{display:block;max-width:calc(56rem + 2 * var(--ln-e4));margin:0 auto;padding:var(--ln-e4) var(--ln-e4) var(--ln-e6);font-size:var(--ln-t-corpo);line-height:1.55;color:var(--ln-tinta)}
.ln-pulso .pl a:not(.btn):not(.btn-sec):not([data-aba]){color:var(--ln-marca);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
/* ---- o app dentro do site: aquário e abas ---- */
.ln-pulso .pl .ctx{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e2) var(--ln-e4);margin:0 0 var(--ln-e2)}
.ln-pulso .pl .ctx a.voltar2{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);text-decoration:underline;text-underline-offset:3px}
.ln-pulso .pl .ctx select{flex:1 1 14rem;max-width:24rem;min-width:0;width:auto}
.ln-pulso .pl .abas{display:flex;flex-wrap:nowrap;align-items:stretch;gap:0;margin:0 0 var(--ln-e5);border-bottom:1px solid var(--ln-linha);overflow-x:auto;scrollbar-width:none}
.ln-pulso .pl .abas::-webkit-scrollbar{display:none}
.ln-pulso .pl .abas a{flex:none;display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3);border:0;font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);color:var(--ln-texto-2);text-decoration:none;white-space:nowrap}
.ln-pulso .pl .abas a:hover{color:var(--ln-tinta);background:var(--ln-fundo)}
.ln-pulso .pl .abas a.on{color:var(--ln-tinta);font-weight:var(--ln-peso-medio);box-shadow:inset 0 -2px 0 var(--ln-marca)}
/* o sino de avisos mora na linha do aquário, não nas abas: dentro da faixa rolável das abas o painel dele
   era cortado e, a 414 px, o próprio botão saía da tela */
.ln-pulso .pl .ctx .voltar2{order:1}
.ln-pulso .pl .ctx select{order:2}
.ln-pulso .pl .ctx .sino{order:3;margin-left:auto;flex:none}
.ln-pulso .pl .sino-bt{display:inline-flex;align-items:center;gap:var(--ln-e1);min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-medio) var(--ln-t-menor)/1 var(--ln-fonte-texto);cursor:pointer}
.ln-pulso .pl .sino-bt:hover{background:var(--ln-fundo)}
.ln-pulso .pl .sino-bt[aria-pressed="true"]{background:var(--ln-noite);border-color:var(--ln-noite);color:var(--ln-sobre-noite)}
.ln-pulso .pl .sino-n{margin-left:var(--ln-e1);border-radius:var(--ln-r1);background:var(--ln-suave);color:var(--ln-tinta);font:var(--ln-peso-medio) var(--ln-t-rotulo)/1.5 var(--ln-fonte-mono)}
.ln-pulso .pl .sino-n.sino-atraso{background:var(--sev-critico-tinta);color:var(--ln-papel)}
.ln-pulso .pl .sino-painel{border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel);box-shadow:0 8px 24px color-mix(in srgb,var(--ln-tinta) 14%,transparent);padding:var(--ln-e2) var(--ln-e3)}
.ln-pulso .pl .sino-lista{font-size:var(--ln-t-menor)}
.ln-pulso .pl .sino-lista li{padding:var(--ln-e2) 0;border-bottom:1px solid var(--ln-linha)}
.ln-pulso .pl .sino-lista li:last-child{border-bottom:0}
.ln-pulso .pl .sino-quando,.ln-pulso .pl .sino-vazio{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
@media (max-width:600px){
  .ln-pulso .pl .ctx select{order:4;flex:1 1 100%;max-width:none}
  .ln-pulso .pl .abas a{padding:0 var(--ln-e2)}
}
/* «Está vendo algum problema?»: cada sintoma é uma escolha, como os filtros do diário */
.ln-pulso .pl #listaSintomas{display:flex;flex-wrap:wrap;gap:var(--ln-e2)}
.ln-pulso .pl #listaSintomas button{display:inline-flex;align-items:center;gap:var(--ln-e1);min-height:var(--ln-alvo-toque);padding:var(--ln-e1) var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-menor)/1.3 var(--ln-fonte-texto);text-align:left;cursor:pointer}
.ln-pulso .pl #listaSintomas button:hover{background:var(--ln-fundo)}
.ln-pulso .pl #listaSintomas button.on{border-color:var(--ln-marca);background:var(--ln-suave);font-weight:var(--ln-peso-medio);box-shadow:inset 0 -3px 0 var(--ln-marca)}
/* V-452 (03/10): no celular, um sintoma por linha e na largura inteira — escolha com o polegar, sem caçar o chip */
@media (max-width:600px){.ln-pulso .pl #listaSintomas button{flex:1 1 100%}}
/* ---- títulos e texto ---- */
.ln-pulso .pl h1{font:var(--ln-peso-leve) var(--ln-t-h1-celular)/1.15 var(--ln-fonte-texto);letter-spacing:-.02em;color:var(--ln-tinta);margin:0 0 var(--ln-e1)}
.ln-pulso .pl h2{font:var(--ln-peso-medio) var(--ln-t-lead)/1.3 var(--ln-fonte-texto);letter-spacing:-.01em;color:var(--ln-tinta);margin:0 0 var(--ln-e1)}
.ln-pulso .pl .sub{font-size:var(--ln-t-corpo);line-height:1.5;color:var(--ln-texto-2);margin:0 0 var(--ln-e4)}
.ln-pulso .pl .ajuda{font-size:var(--ln-t-menor);line-height:1.5;color:var(--ln-texto-2);margin:0 0 var(--ln-e3)}
.ln-pulso .pl .meta,.ln-pulso .pl .vazio{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-pulso .pl .previa{border-radius:var(--ln-r1);font-size:var(--ln-t-menor)}
/* «Por quê» (§5r): a dica do formulário fica em uma linha; o texto inteiro, um toque abaixo */
.ln-pulso .pl details.dica-mais{margin:0 0 var(--ln-e1);font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-pulso .pl details.dica-mais>summary{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);cursor:pointer;color:var(--ln-marca);font-weight:var(--ln-peso-medio);text-decoration:underline;text-underline-offset:3px}
.ln-pulso .pl details.dica-mais>p,.ln-pulso .pl details.dica-mais>div{margin:0 0 var(--ln-e2);padding-left:var(--ln-e3);border-left:2px solid var(--ln-linha);line-height:1.55}
.ln-pulso .pl .ajuda+details.dica-mais{margin-top:calc(-1 * var(--ln-e3))}
.ln-pulso .pl .sub+details.dica-mais{margin-top:calc(-1 * var(--ln-e4));margin-bottom:var(--ln-e4)}
/* a conta conectada mora na bolinha do topo (V-436); a linha da sessão só fala quando há o que dizer */
.ln-pulso .pl .sessao{font-size:var(--ln-t-menor);color:var(--ln-texto-2);margin:0 0 var(--ln-e4)}
.ln-pulso .pl .sessao:has(.dot.on){display:none}
/* ---- cartões ---- */
.ln-pulso .pl section{background:var(--ln-papel);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);padding:var(--ln-e5) var(--ln-e4);margin:0 0 var(--ln-e4);box-shadow:none}
.ln-pulso .pl section.oculto{display:none}
/* ---- campos ---- */
.ln-pulso .pl label,.ln-pulso .pl .rotulo-secao{display:block;font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);margin:var(--ln-e3) 0 var(--ln-e1);letter-spacing:0;text-transform:none}
.ln-pulso .pl input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),.ln-pulso .pl select,.ln-pulso .pl textarea{width:100%;min-height:var(--ln-alvo-toque);padding:var(--ln-e2) var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);box-shadow:none}
.ln-pulso .pl input:focus,.ln-pulso .pl select:focus,.ln-pulso .pl textarea:focus{outline:2px solid var(--ln-foco);outline-offset:1px;border-color:var(--ln-foco)}
.ln-pulso .pl input::placeholder,.ln-pulso .pl textarea::placeholder{color:var(--ln-texto-2)}
.ln-pulso .pl input[type="checkbox"],.ln-pulso .pl input[type="radio"]{accent-color:var(--ln-marca);width:1.1rem;height:1.1rem}
.ln-pulso .pl .ctx select,.ln-pulso .pl .item select{width:auto}
.ln-pulso .pl .grid-par{gap:var(--ln-e1) var(--ln-e3)}
.ln-pulso .pl .linha,.ln-pulso .pl .linha3{gap:var(--ln-e2) var(--ln-e3)}
.ln-pulso .pl #modoAq{margin-top:var(--ln-e3)}
/* ---- botões ---- */
.ln-pulso .pl .btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ln-e2);min-height:var(--ln-alvo-botao);padding:0 1.25rem;border:1px solid var(--ln-marca);border-radius:var(--ln-r1);background:var(--ln-marca);color:var(--ln-sobre-marca);font:var(--ln-peso-medio) var(--ln-t-corpo)/1 var(--ln-fonte-texto);text-decoration:none;cursor:pointer}
.ln-pulso .pl .btn:hover{background:var(--ln-marca-hover);border-color:var(--ln-marca-hover);color:var(--ln-sobre-marca)}
.ln-pulso .pl .btn[disabled]{opacity:.5;cursor:not-allowed}
.ln-pulso .pl .btn-sec,.ln-pulso .pl .btn-mini,.ln-pulso .pl .btn-motivo{display:inline-flex;align-items:center;justify-content:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);padding:var(--ln-e1) var(--ln-e4);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-medio) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);text-decoration:none;cursor:pointer}
.ln-pulso .pl .btn-motivo{flex-direction:column;align-items:flex-start}
.ln-pulso .pl .btn-mini{padding:var(--ln-e1) var(--ln-e3)}
.ln-pulso .pl .btn-sec:hover,.ln-pulso .pl .btn-mini:hover,.ln-pulso .pl .btn-motivo:hover{background:var(--ln-fundo);color:var(--ln-tinta)}
.ln-pulso .pl .btn-mini.ok{border-color:var(--sev-ok-borda);color:var(--sev-ok-tinta)}
.ln-pulso .pl .btn-mini.nao,.ln-pulso .pl .btn-mini.del{border-color:var(--sev-critico-borda);color:var(--sev-critico-tinta)}
.ln-pulso .pl .btn-lixo{min-height:var(--ln-alvo-toque);padding:0 var(--ln-e2);color:var(--sev-critico-tinta);font-size:var(--ln-t-menor)}
.ln-pulso .pl .add-lista{min-height:2.25rem;border-radius:var(--ln-r1);background:var(--ln-marca);font:var(--ln-peso-medio) var(--ln-t-rotulo)/1 var(--ln-fonte-texto)}
.ln-pulso .pl .acoes{gap:var(--ln-e3);margin-top:var(--ln-e4)}
/* escolhas em linha: tipo de lançamento, passos do cadastro, filtros do diário, situação da tarefa */
.ln-pulso .pl .tipos{gap:var(--ln-e3);margin:0 0 var(--ln-e4)}
.ln-pulso .pl .tipo-btn{border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);padding:var(--ln-e3) var(--ln-e4);font-family:var(--ln-fonte-texto);color:var(--ln-tinta);box-shadow:none}
.ln-pulso .pl .tipo-btn:hover{background:var(--ln-fundo)}
.ln-pulso .pl .tipo-btn.on{border-color:var(--ln-marca);background:var(--ln-suave);box-shadow:inset 0 -3px 0 var(--ln-marca)}
.ln-pulso .pl .tipo-btn b{font-weight:var(--ln-peso-medio);font-size:var(--ln-t-corpo);color:var(--ln-tinta)}
.ln-pulso .pl .tipo-btn span{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln-pulso .pl .passos,.ln-pulso .pl .filtros{gap:var(--ln-e2)}
.ln-pulso .pl .passos button,.ln-pulso .pl .filtros button{min-height:var(--ln-alvo-toque);padding:0 var(--ln-e3);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto)}
.ln-pulso .pl .passos button.on,.ln-pulso .pl .filtros button.on{border-color:var(--ln-marca);background:var(--ln-suave);font-weight:var(--ln-peso-medio);box-shadow:inset 0 -3px 0 var(--ln-marca)}
.ln-pulso .pl .sit{border:1px solid var(--ln-ctl);border-radius:var(--ln-r1)}
.ln-pulso .pl .sit button{min-height:var(--ln-alvo-toque);font:var(--ln-peso-normal) var(--ln-t-menor)/1.2 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-pulso .pl .sit button.on{background:var(--ln-noite);color:var(--ln-sobre-noite)}
.ln-pulso .pl .sit button.on.feita{background:var(--ln-marca)}
.ln-pulso .pl .stepper{border-color:var(--ln-ctl);border-radius:var(--ln-r1)}
.ln-pulso .pl .stepper button{width:var(--ln-alvo-toque);height:var(--ln-alvo-toque);background:var(--ln-fundo);color:var(--ln-tinta);font-weight:var(--ln-peso-normal)}
.ln-pulso .pl .stepper input[type=number]{min-height:var(--ln-alvo-toque);border-radius:0;border-top:0;border-bottom:0}
/* ---- avisos e selos ---- */
.ln-pulso .pl .aviso{border-radius:var(--ln-r1);font-size:var(--ln-t-menor);line-height:1.5;padding:var(--ln-e3) var(--ln-e4)}
.ln-pulso .pl .aviso.info{background:var(--ln-fundo);border:1px solid var(--ln-linha);color:var(--ln-tinta)}
.ln-pulso .pl .aviso:not(.ok):not(.critico):not(.atencao):not(.erro):not(.info):not(.evite):not(.faca){background:var(--ln-fundo);border:1px solid var(--ln-linha);color:var(--ln-tinta)}
.ln-pulso .pl .aviso.evite{background:var(--ln-fundo);border:1px solid var(--ln-linha);color:var(--ln-tinta)}
.ln-pulso .pl .aviso.faca{background:var(--ln-suave);border:1px solid var(--ln-linha);color:var(--ln-tinta)}
.ln-pulso .pl .aviso .btn-sec{margin-top:var(--ln-e2)}
.ln-pulso .pl .aviso~.btn-sec,.ln-pulso .pl .aviso+a.btn-sec{margin-top:var(--ln-e1)}
.ln-pulso .pl .chip,.ln-pulso .pl .val{border-radius:var(--ln-r1);font-size:var(--ln-t-rotulo);border-color:var(--ln-linha);background:var(--ln-fundo);color:var(--ln-tinta)}
.ln-pulso .pl .selo,.ln-pulso .pl .selo-estado{border-radius:var(--ln-r1);font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);letter-spacing:0;text-transform:none}
.ln-pulso .pl .bloco-titulo,.ln-pulso .pl .dia-grupo,.ln-pulso .pl .sit-rot{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo);letter-spacing:0;text-transform:none}
/* ---- listas do app: itens do cadastro, tarefas, linhas do diário ---- */
.ln-pulso .pl .item{border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel)}
.ln-pulso .pl .item .nome{font-weight:var(--ln-peso-medio)}
.ln-pulso .pl .busca-res{border-color:var(--ln-ctl);border-radius:var(--ln-r1)}
.ln-pulso .pl .busca-res button{min-height:var(--ln-alvo-toque);font-size:var(--ln-t-menor)}
.ln-pulso .pl .desfazer,.ln-pulso .pl .por-que-saiu{border-radius:var(--ln-r1);font-size:var(--ln-t-menor)}
.ln-pulso .pl .secao-diario{font:var(--ln-peso-medio) var(--ln-t-lead)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta);border-bottom-color:var(--ln-linha)}
.ln-pulso .pl .lin{border:1px solid var(--ln-linha);border-radius:var(--ln-r1);box-shadow:none}
.ln-pulso .pl .lin.aberta{border-color:var(--ln-ctl)}
.ln-pulso .pl .lin-topo{min-height:var(--ln-alvo-toque)}
.ln-pulso .pl .lin-tit{font-weight:var(--ln-peso-medio);color:var(--ln-tinta);font-size:var(--ln-t-corpo)}
.ln-pulso .pl .lin-data{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-pulso .pl .lin-res{font-size:var(--ln-t-menor)}
.ln-pulso .pl .lin-det{background:var(--ln-fundo);border-top-color:var(--ln-linha)}
.ln-pulso .pl .ico{border-radius:var(--ln-r1);background:var(--ln-fundo);color:var(--ln-tinta)}
.ln-pulso .pl .ico.teste,.ln-pulso .pl .ico.manutencao{background:var(--ln-suave);color:var(--ln-marca)}
.ln-pulso .pl table.ideais th{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.3 var(--ln-fonte-mono);color:var(--ln-rotulo);text-transform:none;letter-spacing:0;border-bottom:1px solid var(--ln-linha)}
.ln-pulso .pl table.ideais td{font-size:var(--ln-t-menor);border-bottom:1px solid var(--ln-linha)}
.ln-pulso .pl .oferta-importar{background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1)}
.ln-pulso .pl .oferta-importar p{color:var(--ln-tinta)}
.ln-pulso .pl .foto-tile{border-radius:var(--ln-r1)}
@media (min-width:1000px){
  .ln-pulso .pl{padding-top:var(--ln-e5)}
  .ln-pulso .pl h1{font-size:var(--ln-t-h1)}
  .ln-pulso .pl section{padding:var(--ln-e5) var(--ln-e6)}
}
/* ==== fim V420-PULSO ==== */

/* ==== V846-PORTA ==== */
/* 07/10 (V-845/V-846): o herói das PORTAS DE SEÇÃO — um componente só. Antes eram cinco (hub-hero,
   mhero, capa de guia, header.topo do /lojas e nenhum no /especies) e a altura de cada porta era a do
   texto dela: de 146 a 391 px a 1280. Parecia uma colcha de retalhos. Três níveis, e cada um
   igual dentro de si: a home (.ln-hero, maior), as portas (este bloco) e as páginas de conteúdo (sem
   banner, título na coluna). A altura mínima é a mesma em todas as portas e cabe a anatomia inteira
   (trilha, título, até dois elementos de apoio) sem crescer, e o título começa no mesmo ponto em todas; a guarda heroi-um-por-nivel mede no
   render e recusa porta fora da altura. `.ln .hub-hero` vence as regras que sobraram nas páginas (`.hub-hero h1` e afins) pela especificidade. */
.ln .hub-hero{position:relative;overflow:hidden;display:grid;align-items:start;min-height:var(--ln-porta-alt);margin:0;padding:0;text-align:left;background:var(--ln-noite);color:var(--ln-sobre-noite)}
.ln .hub-hero .hero-bg{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;border-radius:0;object-fit:cover;object-position:center;z-index:0}
.ln .hub-hero::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(8,24,32,.9),rgba(8,24,32,.62) 70%,rgba(8,24,32,.4))}
.ln .hub-hero .hero-inner{position:relative;z-index:2;box-sizing:border-box;width:100%;max-width:var(--ln-col-pagina);margin:0 auto;padding:var(--ln-e6) var(--ln-e4)}
.ln .hub-hero .migalha{font:var(--ln-peso-normal) var(--ln-t-menor)/1.4 var(--ln-fonte-texto);color:var(--ln-sobre-noite);opacity:.8;margin:0 0 var(--ln-e3);padding:0}
.ln .hub-hero .migalha a{color:var(--ln-sobre-noite)!important;font-weight:var(--ln-peso-normal)!important;text-decoration:underline;text-underline-offset:2px}
.ln .hub-hero h1{font:var(--ln-peso-leve) var(--ln-t-h1-celular)/1.1 var(--ln-fonte-texto);letter-spacing:-.02em;color:var(--ln-sobre-noite);max-width:38rem;margin:0 0 var(--ln-e3);text-wrap:balance;text-shadow:none}
.ln .hub-hero p{font-size:var(--ln-t-corpo);line-height:1.5;color:var(--ln-sobre-noite)!important;opacity:.92;margin:0 0 var(--ln-e3);max-width:40rem;text-shadow:none}
.ln .hub-hero .hero-inner>:last-child{margin-bottom:0}
.ln .hub-hero p b{color:inherit}
.ln .hub-hero a{color:var(--ln-destaque)!important;font-weight:var(--ln-peso-medio)!important}
.ln .hub-hero .acoes-topo{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--ln-e2) var(--ln-e4);margin:var(--ln-e4) 0 0}
.ln .hub-hero .acoes-topo a.ln-btn{color:var(--ln-sobre-marca)!important}
.ln.ln-ferramenta main .acoes-nota{text-align:left;margin:var(--ln-e5) 0 var(--ln-e4);font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
/* o que saiu do herói do Meu aquacalc: a faixa de quem está conectado, no papel */
.ln .sessao-faixa{margin:var(--ln-e5) 0 0;font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
.ln .sessao-faixa:empty{display:none}
.ln .sessao-faixa a{color:var(--ln-marca)}
/* o recolhido do Meu aquacalc saiu do escuro do herói para o papel: o link dele ganha o sublinhado (PADROES §2bc) */
.ln-hub main details.sub-explica a{text-decoration:underline;text-underline-offset:2px}
.ln{--ln-porta-alt:20rem}
@media (min-width:1000px){
  .ln{--ln-porta-alt:22rem}
  .ln .hub-hero::after{background:linear-gradient(90deg,rgba(8,24,32,.88),rgba(8,24,32,.55) 55%,rgba(8,24,32,.15) 90%)}
  .ln .hub-hero .hero-inner{padding:var(--ln-e7) 2.5rem}
  .ln .hub-hero h1{font-size:var(--ln-t-h1)}
}
/* ==== fim V846-PORTA ==== */
/* ==== V-898 ==== as abas de mundo agora são três nos três catálogos: «Água doce» quebrava em duas linhas a 414 px */
.ln-hub nav.abas-catalogo .atalho{white-space:nowrap}
@media (max-width:480px){.ln-hub nav.abas-catalogo .atalho{padding:0 var(--ln-e3)!important}}
/* abaixo de 400 px as três não cabem com a contagem (medido: 349 px numa faixa de 288 a 320 px): a contagem sai,
   o nome do mundo fica — a contagem continua no «Buscar em N» logo abaixo */
@media (max-width:400px){.ln-hub nav.abas-catalogo .atalho{padding:0 var(--ln-e2)!important;flex:1 1 auto;justify-content:center}.ln-hub nav.abas-catalogo .atalho i{display:none}}
/* ==== fim V-898 ==== */
/* ==== V-899 ==== o aviso de situação legal também no guia de espécie de água doce sem ficha (betta, guppy, oscar)
   e no guia marinho (que já o trazia sem estilo); a cor é a do alerta da Linha d'água, pelos tokens */
.ln .situacao-legal{background:var(--ln-suave);border-left:3px solid var(--ln-tinta);color:var(--ln-tinta);padding:var(--ln-e3) var(--ln-e4);margin:var(--ln-e4) 0;font-size:var(--ln-t-corpo);border-radius:0 var(--ln-r1) var(--ln-r1) 0}
.ln .situacao-legal small{color:var(--ln-texto-2)}
/* ==== fim V-899 ==== */
/* ==== V-905 ==== a Hanken está declarada de 300 a 500 (três pesos da Linha d'água). Peso pedido acima disso
   saía com negrito INVENTADO pelo navegador (letra engrossada) — o botão do /pulso, o do aviso de cookies,
   o «pular para o conteúdo». Sem síntese, tudo acima de 500 sai no 500 de verdade. As fichas do piloto
   (.ln-ficha) ficam de fora até a leitura do experimento em 07/11 (V-480). */
.ln{font-synthesis-weight:none}
/* ==== fim V-905 ==== */
/* ==== V-906 ==== as páginas da casca nova ainda carregam o tokens.css antigo, onde --fonte-texto é a Bricolage
   (que elas nem baixam — o texto caía na letra do sistema). Na Linha d'água as duas variáveis antigas apontam
   para a letra da marca. Fichas do piloto fora até 07/11 (V-480). */
.ln{--fonte-texto:var(--ln-fonte-texto);--fonte-mono:var(--ln-fonte-mono)}
/* o estilo.css antigo crava a Bricolage em h1 e h2 (medido: o h2 do índice de espécies nos três catálogos e no Meu aquacalc) */
.ln h1,.ln h2{font-family:var(--ln-fonte-texto)}
/* ==== fim V-906 ==== */
/* ==== V-907 ==== o manual da marca v1.0 (08/10) tem UMA cor de texto, dois verdes e muita água — sem o azul
   #14557f, o verde-água #1e9e94 e o coral #e85d3a da identidade antiga. As páginas da casca nova ainda carregam o
   estilo.css antigo, que pinta link, título e botão com essas variáveis (medido: o azul em 160 páginas, o petróleo
   antigo em 134). Aqui elas passam a apontar para os tokens da marca; e o cinza de texto e de borda que o estilo.css,
   o tokens.css e o indicacao-produto.js escreviam em hex (#4c565c no texto do corpo em 150 páginas) virou
   var(--casca-*, hex antigo): só a casca nova define a variável, fora dela a cor de sempre volta pelo fallback. Fichas do piloto fora até 07/11 (V-480). */
.ln{--petrol:var(--ln-marca);--petrol-esc:var(--ln-tinta);--petrol-claro:var(--ln-marca);--petrol-botao:var(--ln-marca);--verde:var(--ln-marca);--verde-esc:var(--ln-marca-hover);--texto:var(--ln-tinta);--agua:var(--ln-fundo);--agua2:var(--ln-fundo);--cinza:var(--ln-texto-2);--coral:var(--ln-marca);--coral-esc:var(--ln-marca-hover);--coral-btn:var(--ln-marca);--coral-botao:var(--ln-marca);--casca-texto:var(--ln-tinta);--casca-texto-2:var(--ln-texto-2);--casca-linha:var(--ln-linha);--casca-fundo:var(--ln-fundo);--casca-rotulo:var(--ln-rotulo);--casca-destaque:var(--ln-destaque)}
/* a ênfase curta do manual (700) no <b>/<strong> — a face "Hanken Grotesk Enfase" do tokens-site.css */
.ln b,.ln strong{font-family:"Hanken Grotesk Enfase",var(--ln-fonte-texto)}
/* ==== fim V-907 ==== */
/* ==== V-1158b ==== /lembretes (V-1173, 18/10): «Parar os lembretes» saía branco com borda — a regra geral «todo botão do
   corpo é secundário» (.ln-ferramenta main button:not(...)×4, com !important) vencia o .botao da página. O primário
   da página volta ao verde da marca; o .sec continua secundário. Mesmo padrão do as-enviar (V-417). */
.ln-inst.ln-ferramenta main .lembretes button.botao:not(.sec):not(#v417){background:var(--ln-marca)!important;border-color:var(--ln-marca)!important;color:var(--ln-sobre-marca)!important;min-height:var(--ln-alvo-botao)}
.ln-inst.ln-ferramenta main .lembretes button.botao:not(.sec):not(#v417):hover{background:var(--ln-marca-hover)!important}
.ln-inst.ln-ferramenta main .lembretes button.botao:not(#v417)[disabled]{opacity:.55}
/* ==== fim V-1158b ==== */
/* ==== V-1178 ==== a tabela larga do guia (quatro colunas) rola dentro da caixa a 414 px e cortava a última coluna
   sem aviso (rodada de leitura de 18/10, guia-triade-reef). A frase «deslize» só aparece onde a tabela não cabe. */
.ln-guia main .tabela-dica{font-size:var(--ln-t-rotulo);color:var(--ln-texto-2);margin:0 0 var(--ln-e1)}
@media (min-width:641px){.ln-guia main .tabela-dica{display:none}}
/* ==== fim V-1178 ==== */
/* ==== V-1303 ==== as redes do aquacalc no rodapé da Linha d'água (27/10): Instagram, TikTok e YouTube em UMA linha, sob a
   assinatura. O `.ln-rodape ul` é grade de uma coluna (as colunas do rodapé); o `ul.ln-redes` vira linha que quebra. O alvo de
   toque é de 44×44: a altura vem do `.ln-rodape li a`; a largura — «TikTok» ficava em 41 px — é do `min-width` abaixo.
   Só o rodapé novo tem `.ln-redes`; o antigo tem `.rodape-redes` (tokens.css). Sem `:where`: o `.ln-rodape ul` (0,1,1) é a regra que
   esta precisa vencer, e o linha-dagua.test.js cobra que todo seletor desta folha comece por `.ln`. */
.ln-rodape ul.ln-redes{display:flex;flex-wrap:wrap;gap:0 var(--ln-e4);margin-top:var(--ln-e2)}
.ln-rodape ul.ln-redes a{min-width:var(--ln-alvo-toque);justify-content:center}
/* ==== fim V-1303 ==== */
/* ==== V-1310 ==== a faixa da trilha em cada passo (piloto «Meu primeiro aquário», 27/10/2026): dois <nav class="trilha-passo">
   por página, escritos pelo interno/aplicar-trilha.py — o do topo (uma linha de 46 px a 414 px, antes do h1) e o do fim
   (antes dos chips). Padrão Linha d'água: fundo claro, borda fina, texto de 14 px, as marcas são pontos de 12 px — sem barra
   de progresso. Seletores com `.ln-ferramenta` de propósito e não `:where()`: a folha geral da ferramenta (`.ln-ferramenta
   main a`, `main p`, `main button:not(…)` com !important) tem especificidade maior que zero, e a faixa perderia para ela;
   a guarda linha-dagua.test.js também exige que todo seletor comece por `.ln`. Só tokens, nenhuma cor própria. O nome da
   trilha é LINK e fica com a cor de link da faixa (`.trilha-passo a`): com a cor da tinta ele era um link igual à prosa, e a
   5ª sonda da varredura de celular (conferir-estouro.js, §2bc) reprovou as 12 páginas — medido em 27/10, numa cópia. */
.ln-ferramenta .trilha-passo{position:relative;box-sizing:border-box;background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);color:var(--ln-tinta);font:var(--ln-peso-normal) var(--ln-t-menor)/1.3 var(--ln-fonte-texto)}
.ln-ferramenta .trilha-passo [hidden]{display:none!important}
.ln-ferramenta .trilha-passo a{color:var(--ln-marca);text-decoration:none}
.ln-ferramenta .trilha-passo a:hover{color:var(--ln-marca-hover)}
.ln-ferramenta .trilha-passo b{font-weight:var(--ln-peso-medio)}
/* só o leitor de tela lê (o prefixo «Passo anterior:» e, no celular, o nome do passo vizinho) */
.ln-ferramenta .trilha-passo .trilha-vh,.ln-ferramenta .trilha-topo .trilha-rot{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* o do topo: ← | nome e posição | → */
.ln-ferramenta .trilha-topo{display:grid;grid-template-columns:var(--ln-alvo-toque) minmax(0,1fr) var(--ln-alvo-toque);align-items:stretch;margin:var(--ln-e3) 0 0}
.ln-ferramenta .trilha-topo .trilha-ant,.ln-ferramenta .trilha-topo .trilha-prox{display:flex;align-items:center;justify-content:center;min-height:var(--ln-alvo-toque);font-size:var(--ln-t-lead)}
.ln-ferramenta .trilha-topo .trilha-nome{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:var(--ln-alvo-toque);padding:var(--ln-e1) var(--ln-e2);text-align:center}
.ln-ferramenta .trilha-topo .trilha-nome:hover{text-decoration:underline;text-underline-offset:3px}
.ln-ferramenta .trilha-topo .trilha-nome b,.ln-ferramenta .trilha-topo .trilha-pos{display:block;line-height:1.25;overflow-wrap:anywhere;text-wrap:balance}
.ln-ferramenta .trilha-topo .trilha-pos{color:var(--ln-texto-2)}
.ln-ferramenta .trilha-topo .trilha-mom{display:none}
.ln-ferramenta .trilha-passo .trilha-feito{color:var(--ln-marca);font-weight:var(--ln-peso-medio)}
/* o do fim: nome, posição, marcas, contagem, anterior/próximo e guardar */
.ln-ferramenta .trilha-fim{display:grid;gap:var(--ln-e3);padding:var(--ln-e4);margin:var(--ln-e6) 0 var(--ln-e4)}
.ln-ferramenta .trilha-fim .trilha-cab{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 var(--ln-e3);margin:0;font-size:var(--ln-t-menor);line-height:1.3}
.ln-ferramenta .trilha-fim .trilha-nome{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque)}
.ln-ferramenta .trilha-fim .trilha-pos{color:var(--ln-texto-2)}
.ln-ferramenta .trilha-fim .trilha-feitos{margin:0;font-size:var(--ln-t-menor);line-height:1.3;color:var(--ln-texto-2)}
.ln-ferramenta .trilha-marcas{display:flex;flex-wrap:wrap;gap:var(--ln-e2);margin:0;padding:0}
.ln-ferramenta .trilha-marcas span{display:block;box-sizing:border-box;width:.75rem;height:.75rem;border:1px solid var(--ln-ctl);border-radius:var(--ln-r1);background:var(--ln-papel)}
.ln-ferramenta .trilha-marcas span.feito{background:var(--ln-marca);border-color:var(--ln-marca)}
.ln-ferramenta .trilha-marcas span.atual{box-shadow:0 0 0 2px var(--ln-fundo),0 0 0 3px var(--ln-tinta)}
.ln-ferramenta .trilha-fim .trilha-vai{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--ln-e2)}
.ln-ferramenta .trilha-fim .trilha-vai a{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;min-height:3.5rem;padding:var(--ln-e2) var(--ln-e3);background:var(--ln-papel);border:1px solid var(--ln-ctl);border-radius:var(--ln-r1)}
.ln-ferramenta .trilha-fim .trilha-vai a:hover{background:var(--ln-fundo)}
.ln-ferramenta .trilha-fim .trilha-vai a>span{font-weight:var(--ln-peso-medio);overflow-wrap:anywhere}
.ln-ferramenta .trilha-fim .trilha-vai small{font:var(--ln-peso-normal) var(--ln-t-rotulo)/1.3 var(--ln-fonte-mono);color:var(--ln-rotulo)}
.ln-ferramenta .trilha-fim .trilha-prox{text-align:right;align-items:flex-end}
.ln-ferramenta .trilha-fim .trilha-guardar{justify-self:start}
@media (min-width:760px){
  .ln-ferramenta .trilha-topo{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}
  .ln-ferramenta .trilha-topo .trilha-rot{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto;white-space:normal;line-height:1.2;min-width:0}
  .ln-ferramenta .trilha-topo .trilha-ant .trilha-rot{text-align:left}
  .ln-ferramenta .trilha-topo .trilha-prox .trilha-rot{text-align:right}
  .ln-ferramenta .trilha-topo .trilha-ant,.ln-ferramenta .trilha-topo .trilha-prox{gap:var(--ln-e2);padding:0 var(--ln-e3);font-size:var(--ln-t-menor);min-width:0}
  .ln-ferramenta .trilha-topo .trilha-ant{justify-content:flex-start}
  .ln-ferramenta .trilha-topo .trilha-prox{justify-content:flex-end}
  .ln-ferramenta .trilha-topo .trilha-seta{font-size:var(--ln-t-lead)}
  .ln-ferramenta .trilha-topo .trilha-nome{padding:var(--ln-e1) var(--ln-e3)}
  .ln-ferramenta .trilha-topo .trilha-mom{display:inline}
  .ln-ferramenta .trilha-fim{padding:var(--ln-e5)}
}
/* a âncora /guias#trilha-… (o nome da trilha na faixa): o resumo não fica escondido sob o cabeçalho fixo, que mede 149 px
   até 767 px de largura, 105 px de 768 a 999 e 69 px daí em diante (medido em 27/10) */
.ln-hub:where(.ln-indice) .trilhas summary[id]{scroll-margin-top:10.5rem}
@media (min-width:768px){.ln-hub:where(.ln-indice) .trilhas summary[id]{scroll-margin-top:8rem}}
@media (min-width:1000px){.ln-hub:where(.ln-indice) .trilhas summary[id]{scroll-margin-top:6rem}}
@media print{.ln-ferramenta .trilha-passo{display:none}}
/* ==== fim V-1310 ==== */
/* ==== V-1306 ==== */
/* /para-lojas em cinco blocos (desenho: interno/desenhos/V-1306.md). As classes pl-* só existem nessa página;
   medidas e cores vêm dos tokens da Linha d'água, que já trocam no tema escuro (nenhuma cor escrita à mão).
   Escopo `.ln-ferramenta main .pl-…`, o idioma das regras vizinhas: a guarda linha-dagua.test.js (5) exige que todo seletor comece por `.ln`. */
.ln-ferramenta main .pl-bloco{margin:var(--ln-e7) 0 0}
.ln-ferramenta main .selo-ia-bloco+.pl-bloco{margin-top:var(--ln-e5)}
.ln-ferramenta main .pl-bloco>h2{margin:0 0 var(--ln-e4)}
.ln-ferramenta main .pl-bloco>p{margin:var(--ln-e3) 0 0}
.ln-ferramenta main .pl-bloco>ul+p{margin-top:var(--ln-e4)}
.ln-ferramenta main .pl-bloco>p.pl-mais{font-size:var(--ln-t-menor)}
/* o link que fica sozinho na linha é alvo de toque (44 px, como os links do rodapé); o de dentro de frase corrida segue inline */
.ln-ferramenta main .pl-bloco>p.pl-mais a,.ln-ferramenta main .pl-bloco .alternativa a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque)}
/* o ícone das cartas é claro (o ladrilho é sempre noite, nos dois temas) */
.ln-ferramenta main .pl-ico{display:inline-flex;align-items:center;justify-content:center;flex:none;width:44px;height:44px;background:var(--ln-noite)}
/* os três ganhos e o cartão de sigilo: ladrilho à esquerda, título e frase à direita */
.ln-ferramenta main .pl-ganhos{list-style:none;margin:0;padding:0;display:grid;gap:var(--ln-e3)}
.ln-ferramenta main .pl-ganhos>li,.ln-ferramenta main .pl-sigilo{display:grid;grid-template-columns:44px 1fr;column-gap:var(--ln-e3);align-items:start;align-content:start;margin:0;padding:var(--ln-e4);background:var(--ln-fundo);border:1px solid var(--ln-linha)}
.ln-ferramenta main .pl-sigilo{margin-top:var(--ln-e5)}
.ln-ferramenta main .pl-ganhos .pl-ico,.ln-ferramenta main .pl-sigilo .pl-ico{grid-row:1/3}
.ln-ferramenta main .pl-ganhos h3,.ln-ferramenta main .pl-sigilo h3{margin:0;font-size:var(--ln-t-corpo);line-height:1.35}
.ln-ferramenta main .pl-ganhos p,.ln-ferramenta main .pl-sigilo p{margin:var(--ln-e1) 0 0;font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
/* o bloco escuro «Como começar» (a regra do botão claro sobre --ln-noite mora no <style> da página) */
.ln-ferramenta main .pl-bloco .cta-grande{margin:0;padding:var(--ln-e5) var(--ln-e4)}
.ln-ferramenta main .pl-bloco .cta-grande h2{margin:0 0 var(--ln-e3);color:var(--ln-sobre-noite)}
.ln-ferramenta main .pl-passos{margin:0;padding-left:var(--ln-e5)}
.ln-ferramenta main .pl-passos li{margin:0 0 var(--ln-e2);padding-left:var(--ln-e1);color:var(--ln-sobre-noite)}
.ln-ferramenta main .pl-passos li::marker{color:var(--ln-destaque);font-weight:var(--ln-peso-medio)}
.ln-ferramenta main .cta-grande>p{margin:var(--ln-e4) 0}
/* os planos: nome e preço (o texto é de planos.js; a tabela de comparação fica recolhida) */
.ln-ferramenta main .pl-planos{list-style:none;margin:0;padding:0;display:grid;gap:var(--ln-e3)}
.ln-ferramenta main .pl-planos>li{display:flex;flex-direction:column;gap:var(--ln-e1);margin:0;padding:var(--ln-e4);background:var(--ln-papel);border:1px solid var(--ln-linha)}
.ln-ferramenta main .pl-planos b{font-size:var(--ln-t-lead);line-height:1.2}
.ln-ferramenta main .pl-planos span{font-size:var(--ln-t-menor);color:var(--ln-texto-2);text-wrap:balance}
.ln-ferramenta main .pl-comparar{margin:var(--ln-e4) 0 0}
.ln-ferramenta main .pl-tabela{overflow-x:auto}
/* a ação sozinha no fim do bloco */
.ln-ferramenta main .pl-acao{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ln-e3);margin:var(--ln-e4) 0 0}
/* «Avise-me»: o único bloco em painel, para quem ainda não tem loja */
.ln-ferramenta main .pl-avise{padding:var(--ln-e5) var(--ln-e4);background:var(--ln-fundo);border:1px solid var(--ln-linha)}
@media (max-width:560px){
  .ln-ferramenta main .pl-acao>a.ln-btn{width:100%}
}
@media (min-width:720px){
  .ln-ferramenta main .pl-ganhos,.ln-ferramenta main .pl-planos{grid-template-columns:repeat(3,1fr)}
  .ln-ferramenta main .pl-ganhos>li{grid-template-columns:1fr;row-gap:var(--ln-e2)}
  .ln-ferramenta main .pl-ganhos .pl-ico{grid-row:auto}
}
/* ==== fim V-1306 ==== */

/* ==== V-1304 ==== a apresentação do Meu aquacalc no topo do hub (a antiga vitrine /pulso). Só o hub (body.ln-hub com #apresentacao). */
.ln-hub #apresentacao{margin:0 0 var(--ln-e4);padding:var(--ln-e5) 0 var(--ln-e2)}
.ln-hub #apresentacao[hidden]{display:none}
.ln-hub #apresentacao h2{margin:0 0 var(--ln-e3);font:var(--ln-peso-leve) var(--ln-t-h2)/1.15 var(--ln-fonte-texto);letter-spacing:-.015em;color:var(--ln-tinta);text-wrap:balance}
.ln-hub #apresentacao h2 .em{color:var(--ln-marca-hover)}
.ln-hub #apresentacao .hub-apres-lead{margin:0 0 var(--ln-e4);font-size:var(--ln-t-lead);line-height:1.55;color:var(--ln-texto-2);max-width:34em}
.ln-hub #apresentacao .hub-apres-cta{display:flex;flex-wrap:wrap;gap:var(--ln-e3)}
.ln-hub #apresentacao .hub-apres-cta .ln-btn{text-decoration:none}
.ln-hub #apresentacao + #sessaoBar{margin-top:var(--ln-e2)}
/* «Como funciona» e as seis funções: seção aberta para quem chega vazio, recolhida (sem `open`) para quem tem aquário */
.ln-hub details.hub-funciona{margin:var(--ln-e6) 0 0;border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel);padding:0 var(--ln-e4)}
.ln-hub details.hub-funciona>summary{display:flex;align-items:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);cursor:pointer;list-style:none;font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-hub details.hub-funciona>summary::-webkit-details-marker{display:none}
.ln-hub details.hub-funciona>summary::after{content:"+";margin-left:auto;color:var(--ln-marca);font-weight:var(--ln-peso-medio)}
.ln-hub details.hub-funciona[open]>summary::after{content:"−"}
.ln-hub details.hub-funciona[open]{padding-bottom:var(--ln-e4)}
.ln-hub .hub-funciona-intro{margin:var(--ln-e1) 0 var(--ln-e4);font-size:var(--ln-t-menor);line-height:1.6;color:var(--ln-texto-2);max-width:64ch}
.ln-hub .hub-passos,.ln-hub .hub-funcoes{list-style:none;margin:0;padding:0;display:grid;gap:var(--ln-e3)}
.ln-hub .hub-passo,.ln-hub .hub-funcoes>li{display:grid;grid-template-columns:2.25rem 1fr;column-gap:var(--ln-e3);align-items:start;margin:0;padding:var(--ln-e3);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-fundo)}
.ln-hub .hub-passo img,.ln-hub .hub-funcoes>li img{grid-row:1/3;width:2.25rem;height:2.25rem;padding:.4rem;box-sizing:border-box;border-radius:var(--ln-r1);background:var(--ln-noite)}
.ln-hub .hub-passo h4,.ln-hub .hub-funcoes h4{margin:0;font:var(--ln-peso-medio) var(--ln-t-corpo)/1.3 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-hub .hub-passo p,.ln-hub .hub-funcoes p{margin:var(--ln-e1) 0 0;font-size:var(--ln-t-menor);line-height:1.55;color:var(--ln-texto-2)}
.ln-hub .hub-passo .hub-n{display:none}
.ln-hub details.hub-funciona h3{margin:var(--ln-e5) 0 var(--ln-e3);font:var(--ln-peso-medio) var(--ln-t-rotulo)/1.4 var(--ln-fonte-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ln-rotulo)}
.ln-hub .hub-funciona-fecho{margin:var(--ln-e4) 0 0;font-size:var(--ln-t-menor);line-height:1.6;color:var(--ln-texto-2)}
.ln-hub .hub-funciona-fecho a{color:var(--ln-marca);text-decoration:underline;text-underline-offset:3px}
@media (min-width:720px){
  .ln-hub .hub-passos{grid-template-columns:repeat(3,1fr)}
  .ln-hub .hub-funcoes{grid-template-columns:repeat(2,1fr)}
  .ln-hub #apresentacao h2{font-size:var(--ln-t-h1)}
}
/* as cinco perguntas, no fim do hub */
.ln-hub .hub-faq{margin:var(--ln-e7) 0 0}
.ln-hub .hub-faq h2{margin:0 0 var(--ln-e3);font:var(--ln-peso-normal) var(--ln-t-h2)/1.2 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-hub .hub-faq details{margin:0 0 var(--ln-e2);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);background:var(--ln-papel);padding:0 var(--ln-e4)}
.ln-hub .hub-faq summary{display:flex;align-items:center;gap:var(--ln-e2);min-height:var(--ln-alvo-toque);cursor:pointer;list-style:none;font:var(--ln-peso-medio) var(--ln-t-corpo)/1.35 var(--ln-fonte-texto);color:var(--ln-tinta)}
.ln-hub .hub-faq summary::-webkit-details-marker{display:none}
.ln-hub .hub-faq summary::after{content:"+";margin-left:auto;color:var(--ln-marca);font-weight:var(--ln-peso-medio)}
.ln-hub .hub-faq details[open]>summary::after{content:"−"}
.ln-hub .hub-faq details>p{margin:0 0 var(--ln-e4);font-size:var(--ln-t-menor);line-height:1.65;color:var(--ln-texto-2);max-width:68ch}
/* ==== fim V-1304 ==== */
/* ==== V-1331 ==== */
/* a saída da home para a trilha «Meu primeiro aquário», abaixo da busca e dos atalhos */
.ln-hero .ln-trilha-saida{font-size:.95rem}
.ln-hero .ln-trilha-saida a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(255,255,255,.55)}
/* ==== fim V-1331 ==== */
/* ==== V-1334 ==== */
/* «Sua trilha» no Meu aquacalc: o cartão que aparece quando a pessoa chega por «Guardar meu progresso» (?trilha=) */
.ln-hub .trilha-guardada{margin:var(--ln-e4) 0;padding:var(--ln-e4);background:var(--ln-fundo);border:1px solid var(--ln-linha);border-radius:var(--ln-r1);display:grid;gap:var(--ln-e2)}
.ln-hub .trilha-guardada p{margin:0}
.ln-hub .trilha-guardada-p{color:var(--ln-texto-2);font-size:var(--ln-t-menor)}
.ln-hub .trilha-guardada a.acao{justify-self:start;display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque)}
/* ==== fim V-1334 ==== */

/* ==== V-1311 ==== */
/* V-1311 (29/10, itens 1 e 2 do desenho, autorizados): a 414 px o topo fixo tinha 149 px porque o menu de seções
   quebrava em duas linhas ao lado do ☰. Abaixo de 720 px (o menu cabe numa linha só a partir de 620 px — medido; os 100 px a
   mais cobrem o celular deitado, onde a altura é o que falta) o menu sai do topo e mora DENTRO do ☰ (a mesma <nav>, mostrada
   por .ln-menu-aberto, que o linha-topo.js põe ao abrir o ☰). O topo fica com a linha do logo (~61 px) e some ao rolar para
   baixo, volta ao rolar para cima (.ln-topo-some, também do linha-topo.js). Sem JavaScript o ☰ não abre: `scripting:none`
   devolve o menu à vista, como era. Desktop (≥ 720 px) não muda. Guarda: interno/testes/topo-encolhe-no-celular.test.js
   e a seção «celular» do interno/render/conferir-menu.js. */
@media (max-width:719px){
  .ln-topo .ln-nav{display:none}
  .ln-topo.ln-menu-aberto .ln-nav{display:block}
  .ln-topo.ln-menu-aberto{max-height:100vh;max-height:100dvh;overflow-y:auto}
  .ln-topo{transition:transform .2s ease}
  .ln-topo.ln-topo-some{transform:translateY(-100%)}
  .ln-ferramenta #resumoPlano{top:68px}
}
@media (max-width:719px) and (scripting:none){.ln-topo .ln-nav{display:block}}
@media (max-width:719px) and (prefers-reduced-motion:reduce){.ln-topo{transition:none}}
.ln-ferramenta .calc[data-maq="depois"]+.maq{margin:var(--ln-e5) 0 0}   /* lotação: o perfil vem depois do cartão */
/* ==== fim V-1311 ==== */

/* ==== V-1023 ==== */
/* /para-lojas: o orçamento de exemplo (quatro documentos) e o link de teste no topo. Só a página /para-lojas usa pl-*. */
.ln .acoes-topo a.pl-testar{color:var(--ln-sobre-marca)!important;text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque)}
.ln-ferramenta main .pl-exemplo-orc{margin:var(--ln-e5) 0 0}
.ln-ferramenta main .pl-exemplo-orc h3{margin:0 0 var(--ln-e3);font-size:var(--ln-t-corpo)}
.ln-ferramenta main .pl-exemplo{display:inline-block;vertical-align:middle;margin-left:var(--ln-e2);padding:2px var(--ln-e2);border:1px solid var(--ln-linha);background:var(--ln-fundo);font-size:var(--ln-t-menor);font-weight:600}
.ln-ferramenta main .pl-docs{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--ln-e3)}
.ln-ferramenta main .pl-docs>li{margin:0;display:grid;gap:var(--ln-e2);align-content:start}
.ln-ferramenta main .pl-docs a{display:block;border:1px solid var(--ln-linha);background:var(--ln-papel)}
.ln-ferramenta main .pl-docs img{display:block;width:100%;height:auto;aspect-ratio:4/3}
.ln-ferramenta main .pl-docs span{font-size:var(--ln-t-menor);color:var(--ln-texto-2)}
@media (min-width:720px){
  .ln-ferramenta main .pl-docs{grid-template-columns:repeat(4,1fr)}
}
/* no celular o link divide a linha com o botão: o herói das portas tem altura única (heroi-um-por-nivel) e não cresce por uma linha a mais */
@media (max-width:560px){
  .ln .acoes-topo{flex-direction:row;align-items:center;gap:var(--ln-e2) var(--ln-e4)}
  .ln .acoes-topo a.pl-testar{flex:1 1 9rem;line-height:1.3}
}
/* ==== fim V-1023 ==== */
/* ==== V-913 ==== paleta de estado (ok, atenção, alerta): adendo ao manual da marca. Os valores moram no
   interno/tokens-site.tokens.json (--ln-est-*, claro e escuro, pares de contraste conferidos pela tokens-site.test.js).
   O interno/aplicar-cores-da-marca.py troca os 36 tons antigos por --est-*; nas páginas antigas e nas fichas do experimento
   o fallback do var() devolve o tom de antes, e os --sev-* do tokens.css passam a apontar para cá na casca nova.
   Guarda: interno/testes/cores-de-estado.test.js. */
.ln{--est-ok-texto:var(--ln-est-ok-texto);--est-ok-fundo:var(--ln-est-ok-fundo);--est-ok-borda:var(--ln-est-ok-borda);--est-atencao-texto:var(--ln-est-atencao-texto);--est-atencao-fundo:var(--ln-est-atencao-fundo);--est-atencao-borda:var(--ln-est-atencao-borda);--est-alerta-texto:var(--ln-est-alerta-texto);--est-alerta-fundo:var(--ln-est-alerta-fundo);--est-alerta-borda:var(--ln-est-alerta-borda);--sev-ok-fundo:var(--est-ok-fundo);--sev-ok-borda:var(--est-ok-borda);--sev-ok-tinta:var(--est-ok-texto);--sev-atencao-fundo:var(--est-atencao-fundo);--sev-atencao-borda:var(--est-atencao-borda);--sev-atencao-tinta:var(--est-atencao-texto);--sev-critico-fundo:var(--est-alerta-fundo);--sev-critico-borda:var(--est-alerta-borda);--sev-critico-tinta:var(--est-alerta-texto)}
/* ==== fim V-913 ==== */

/* ==== V-831 ==== */
/* V-831 (07/11): Peixes · Marinho · Plantas viraram a entrada única «Espécies», com painel (build-layout.py, PAINEL_ESPECIES).
   No computador o painel abre como os de Guias e Calculadoras. No celular (< 720 px) o menu mora dentro do ☰ (V-1311) e os
   painéis não abrem; para os três mundos não ficarem a dois toques, o ☰ aberto mostra os links de Água doce e Água salgada
   do painel logo abaixo de «Espécies», em linha (sem títulos, sem a busca — o ☰ já tem a dele). Guarda:
   interno/testes/menu-especies.test.js e a seção «celular» do interno/render/conferir-menu.js. */
@media (max-width:719px){
  .ln-topo.ln-menu-aberto .ln-nav>ul>li.ln-tem-painel:has(>#ln-p-esp){flex:1 0 100%;flex-wrap:wrap}
  .ln-topo.ln-menu-aberto #ln-p-esp{display:flex;flex-wrap:wrap;flex:1 0 100%;gap:0 var(--ln-e4);padding:0 0 var(--ln-e2) var(--ln-e5)}
  .ln-topo.ln-menu-aberto #ln-p-esp h3,.ln-topo.ln-menu-aberto #ln-p-esp>div:nth-child(n+3){display:none}
  .ln-topo.ln-menu-aberto #ln-p-esp ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0 var(--ln-e4)}
  .ln-topo.ln-menu-aberto #ln-p-esp li a{display:inline-flex;align-items:center;min-height:var(--ln-alvo-toque);font-size:.9rem;color:var(--ln-texto-2)}
}
/* ==== fim V-831 ==== */
