/* A página inicial (/), no estilo limpo da proposta C, só em tema claro: o número grande, os quatro blocos do resumo e um trilho de cartões por
   assunto (deslizam na horizontal no celular e viram grade no computador). Os tokens e os componentes comuns (busca, botões, painel) estão
   em base.css. O molde dos cartões e das etiquetas mora aqui, porque a primeira tela já usa; os trilhos de baixo (B2 a B4) acrescentam o que é
   só deles em blocos.css, que só chega depois de a pessoa escolher o lugar.
   O primeiro bloco :root não pode ter chaves dentro: site/cartoes/gerar.mjs o copia inteiro para os cartões da bandeira. */
:root{
  --bd-verde:var(--bandeira-verde); --bd-amarela:var(--bandeira-amarela); --bd-vermelha_1:var(--bandeira-vermelha); --bd-vermelha_2:var(--bandeira-vermelha2); --bd-x:#6b7a90;
  --barra:#a8b3c6;
}

body{padding:0}
.pagina{max-width:1160px;margin:0 auto;padding:0 16px calc(112px + env(safe-area-inset-bottom))}
body.sem-lugar .pagina{padding-bottom:56px}
main{display:grid;gap:0}
.pular{position:absolute;left:12px;top:-60px;z-index:50;background:var(--botao);color:var(--sobre-botao);padding:10px 16px;border-radius:99px;font-weight:600}
.pular:focus{top:12px}
.ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
[tabindex="-1"]:focus{outline:none}   /* o foco que o JavaScript põe no destino de um toque (cartão, seção) não leva anel; o do teclado sim (:focus-visible) */
.cartao:focus-visible,.trilho:focus-visible{outline:2px solid var(--aqua-forte);outline-offset:3px}
.so-leitor{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- o topo e a barra de navegação ---------- */
.topo{display:flex;align-items:center;justify-content:space-between;gap:16px;height:68px}
.marca-site{display:inline-flex;align-items:center;gap:10px;color:var(--tinta);text-decoration:none}
.marca-site .logo{display:block;width:34px;height:34px}
.abas{position:fixed;z-index:30;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:440px;margin-inline:auto;display:grid;grid-template-columns:repeat(5,1fr);gap:2px;padding:6px;
  background:var(--vidro);-webkit-backdrop-filter:blur(16px) saturate(1.4);backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--linha-forte);border-radius:26px;box-shadow:var(--sombra)}
.abas a{display:grid;justify-items:center;gap:3px;padding:9px 2px 8px;border-radius:20px;color:var(--tinta-3);text-decoration:none;font:600 10.5px/1.1 var(--body);text-align:center}
.abas a .ic{width:21px;height:21px}
.abas a[aria-current="true"]{background:var(--aqua-suave);color:var(--aqua)}
.abas a.espera{opacity:.45}
.abas a.falhou{position:relative}
.abas a.falhou::after{content:"!";position:absolute;top:4px;left:calc(50% + 6px);width:15px;height:15px;border-radius:50%;background:var(--alta);color:#fff;font:700 10px/15px var(--body);text-align:center}
.aviso-barra{position:fixed;z-index:31;left:12px;right:12px;bottom:calc(88px + env(safe-area-inset-bottom));max-width:440px;margin-inline:auto;padding:11px 16px;border-radius:18px;background:var(--grafite);color:#fff;font:500 13.5px/1.4 var(--body);box-shadow:var(--sombra)}
.aviso-barra[hidden]{display:none}
body.sem-lugar .abas{display:none}

/* ---------- a primeira tela: a pergunta ---------- */
.pergunta{display:none;gap:10px;margin:8px 0 22px}
body.sem-lugar .pergunta{display:grid}
.pergunta h1{font-size:clamp(32px,9vw,52px);line-height:1.04;max-width:16ch}
.pergunta .lede{font-size:17px;color:var(--tinta-2);max-width:52ch}

/* ---------- a busca ---------- */
.busca{display:grid;gap:0;margin-top:2px}
.busca-lbl{display:none;font-weight:600;font-size:15px;margin:0 6px 8px}
body.sem-lugar .busca-lbl{display:block}
.busca-form{position:relative;display:flex;align-items:center;max-width:none}
.busca-form input{width:100%;height:56px;border-radius:99px;border:1px solid var(--linha-forte);background:var(--superficie);color:var(--tinta);font:500 16px var(--body);padding:0 92px 0 50px;-webkit-appearance:none;appearance:none}
.busca-form input:focus{outline:none;border-color:var(--aqua-forte);box-shadow:0 0 0 4px var(--aqua-suave)}
.busca-form input::-webkit-search-cancel-button{display:none}
.busca-ic{position:absolute;left:19px;color:var(--tinta-3);pointer-events:none}
.busca-form .btn{position:absolute;right:7px;height:42px;padding:0 20px}
body:not(.sem-lugar) .busca-form .btn,body:not(.sem-lugar) #ver-dica,body:not(.sem-lugar) .confianca{display:none}
body:not(.sem-lugar) .busca-form input{padding-right:20px}
#ver-dica,.confianca{margin:12px 8px 0}
.confianca{margin-top:6px}
.sugs{z-index:40}
.sugs .uf{font-family:var(--body)}
.busca-linha{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:12px 6px 0;font-size:13.5px;color:var(--tinta-2)}
.busca-linha b{color:var(--tinta);font-weight:600}
.busca-linha .sep{display:none}
.busca-linha #cl-dist{flex-basis:100%}
.busca-linha #kwh-lin{flex:1 1 auto}
.busca-linha .et{margin-left:2px}
.sep{width:4px;height:4px;border-radius:50%;background:var(--tinta-3)}
.link-botao{background:transparent;border:1px solid var(--linha-forte);color:var(--aqua);border-radius:99px;padding:4px 12px;font:600 12.5px var(--body);cursor:pointer}
.ctx{display:grid;gap:0}
.ctx-conv{margin:6px 6px 0}
.kwh-campo{margin:12px 0 0;padding:14px 16px;border-radius:22px;background:var(--superficie);border:1px solid var(--linha);display:grid;gap:8px}
.cl-kwh-rot{font-weight:600;font-size:13.5px}
.kwh-ctrl{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.kwh-in{display:inline-flex;align-items:center;gap:8px;color:var(--tinta-2);font-weight:600}
.kwh-in input{width:120px;height:44px;border-radius:14px;border:1px solid var(--linha-forte);background:var(--superficie-2);color:var(--tinta);font:600 18px var(--display);padding:0 12px}
.cl-erro{color:var(--alta);margin:0}
.aj-mais p{margin:6px 0 0}
.recebido{display:grid;gap:6px;margin:14px 0 0}
.recebido p{margin:0}
#cartao-sec,#nacional{scroll-margin-top:12px}
.hero-card:empty{min-height:380px}
.res{display:grid;gap:0}

/* ---------- etiquetas: o estado de um número, com palavra e forma (nunca só cor) ---------- */
.et{display:inline-flex;align-items:center;gap:6px;padding:3px 10px 3px 8px;border-radius:99px;vertical-align:middle;font:600 12px/1.35 var(--body);letter-spacing:.005em;max-width:100%;
  color:var(--tinta-2);background:var(--superficie-2);border:1px solid var(--linha-forte)}
.et::before{content:"";flex:none;width:8px;height:8px;box-sizing:border-box}
.et-semImposto::before{border-radius:50%;background:currentColor}
.et-estimativa{color:var(--violeta);background:var(--violeta-suave);border-color:color-mix(in srgb,var(--violeta) 45%,transparent)}
.et-estimativa::before{content:"≈";width:auto;height:auto;font-size:13px;font-weight:700;line-height:.8}
.et-prevista{color:var(--aqua);background:transparent;border:1.5px dashed color-mix(in srgb,var(--aqua) 65%,transparent)}
.et-prevista::before{border:1.5px solid currentColor;border-radius:50%}
.et-indefinido{background:transparent;border-style:dashed}
.et-indefinido::before{content:"?";width:auto;height:auto;font-weight:700;font-size:11px;line-height:1}
.et-conferir{border-style:dotted;border-width:1.5px;color:var(--tinta)}
.et-conferir::before{background:currentColor;transform:rotate(45deg) scale(.82)}
.et-cidade::before,.et-estado::before{border:1.5px solid currentColor;border-radius:2px}
.et-lei::before{content:"§";width:auto;height:auto;font-weight:700;font-size:11px;line-height:1}
.et-neutra::before{border:1.5px solid currentColor;border-radius:50%}

/* a bandeira: um selo com a cor e o nome (a cor nunca vai sozinha) */
.bd{--cor:var(--bd,var(--tinta-3));display:inline-flex;align-items:center;gap:7px;padding:4px 13px 4px 9px;border-radius:99px;font:600 12.5px/1.3 var(--body);color:var(--tinta);border:1.5px solid var(--cor);background:color-mix(in srgb,var(--cor) 16%,transparent);white-space:nowrap}
.bd i{width:10px;height:10px;border-radius:50%;background:var(--cor);flex:none}
.bd-verde{--bd:var(--bd-verde)} .bd-amarela{--bd:var(--bd-amarela)} .bd-vermelha_1{--bd:var(--bd-vermelha_1)} .bd-vermelha_2{--bd:var(--bd-vermelha_2)} .bd-x{--bd:var(--bd-x)}
.bd-amarela{border-color:#a97f00}
.bd-amarela i{box-shadow:0 0 0 1px #a97f00}

/* a variação: seta, palavra e valor ("a mais" em magenta, "a menos" em verde-água, "igual" neutro: a cor só reforça) */
.vr{display:inline-flex;align-items:center;gap:5px;padding:3px 11px 3px 7px;border-radius:99px;font:600 12.5px/1.3 var(--body)}
.vr .ic{width:14px;height:14px;stroke-width:2.3}
.vr-mais{color:var(--alta);background:var(--alta-suave)}
.vr-menos{color:var(--aqua);background:var(--aqua-suave)}
.vr-igual{color:var(--tinta-2);background:var(--superficie-2)}

/* barras: o número está sempre escrito ao lado; a barra só mostra o tamanho. Verde-água: este lugar, agora. Violeta: a referência */
.br{position:relative;display:block;height:10px;border-radius:99px;background:var(--superficie-3);min-width:0}
.br i{display:block;height:100%;border-radius:inherit;background:var(--violeta-forte)}
.br-marca i{background:var(--aqua-forte)}

/* ---------- o número grande ---------- */
.painel{display:grid;gap:14px;margin-top:20px;scroll-margin-top:12px}
.hero-card{
  --tinta:#f3f6fb; --tinta-2:#b4bfd0; --tinta-3:#8d9ab0; --aqua:#2ee6d6; --aqua-forte:#2ee6d6; --violeta:#a892ff; --violeta-forte:#a892ff;
  --superficie-2:#1a2130; --superficie-3:#263044; --linha-forte:rgba(255,255,255,.16); --violeta-suave:rgba(168,146,255,.16);
  position:relative;overflow:hidden;border-radius:30px;padding:22px 20px 20px;color:var(--tinta);
  background:radial-gradient(120% 75% at 100% -5%,rgba(46,230,214,.24),transparent 58%),radial-gradient(90% 70% at -5% 105%,rgba(168,146,255,.22),transparent 62%),var(--grafite);
  border:1px solid rgba(255,255,255,.1);box-shadow:var(--sombra)}
.olho{font:600 11.5px/1.3 var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--tinta-3)}
.hero-card h1{font:600 22px/1.15 var(--display);letter-spacing:-.015em;margin:8px 0 10px;text-wrap:balance}
.hero-num{font:700 clamp(58px,19.4vw,92px)/.95 var(--display);letter-spacing:-.045em;font-variant-numeric:tabular-nums;display:block;white-space:nowrap}
.hero-num-texto{font-size:clamp(34px,10vw,48px);letter-spacing:-.03em;white-space:normal}
.moeda{font-size:.42em;font-weight:600;letter-spacing:0;color:var(--tinta-2)}
.hero-num .moed.hero-un{margin-top:8px;font-size:14px;color:var(--tinta-2);display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center}
.composicao{margin-top:20px;display:grid;gap:12px}
.comp-barra{display:flex;gap:3px;height:16px}
.comp-barra i{display:block;border-radius:8px;min-width:6px}
.seg-energia{background:var(--aqua-forte)} .seg-impostos{background:var(--violeta-forte)} .seg-bandeira{background:var(--bd,var(--tinta-3))}
.seg-fora{flex:0 0 12%;border:1.5px dashed var(--tinta-3);background:repeating-linear-gradient(135deg,transparent 0 4px,rgba(255,255,255,.22) 4px 6px)}
.comp-lista{list-style:none;margin:0;padding:0;display:grid;gap:11px;font-size:14px}
.comp-lista li{display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:10px;align-items:start}
.comp-lista li > i{margin-top:4px}
.comp-lista li > span{color:var(--tinta-2);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.comp-lista li > span small{flex-basis:100%;margin-top:-2px;font-size:12px;line-height:1.4;color:var(--tinta-3)}
.comp-lista li > b{font:600 15px var(--display);font-variant-numeric:tabular-nums;white-space:nowrap}
.comp-lista li > b.fraco{color:var(--tinta-2);font:500 13px var(--body)}
.comp-lista li > b.palavra{font-size:14px;text-align:right}   /* "Não soma nada": a palavra no lugar do valor, quando a bandeira é verde */
.comp-lista li > i{width:12px;height:12px;border-radius:4px}
.d-energia{background:var(--aqua-forte)} .d-impostos{background:var(--violeta-forte)} .d-bandeira{background:var(--bd,var(--tinta-3))}
.comp-bandeira.comp-fora .d-bandeira{background:repeating-linear-gradient(135deg,transparent 0 3px,rgba(255,255,255,.22) 3px 4.5px);border:1.5px dashed var(--tinta-3)}
.comp-obs{margin:0;font-size:12.5px;line-height:1.45;color:var(--tinta-3)}
.hero-seg{margin-top:14px;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;font-size:13px;color:var(--tinta-2)}
.hero-nota{margin-top:16px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1);font-size:14px;color:var(--tinta-2)}
.hero-nota a{color:var(--aqua)}

/* os quatro blocos do resumo */
.rs,.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.rs-t{--acento:var(--bd,var(--aqua-forte));position:relative;overflow:hidden;display:flex;flex-direction:column;gap:4px;padding:16px 14px 13px;border-radius:22px;background:var(--superficie);border:1px solid var(--linha);color:var(--tinta);text-decoration:none}
.rs-t::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--acento)}
.rs-t.bd-x::before{background:repeating-linear-gradient(90deg,var(--tinta-3) 0 6px,transparent 6px 10px)}
.rs-t:hover{border-color:var(--aqua-forte)}
.rs-t:focus-visible{outline:2px solid var(--aqua-forte);outline-offset:2px}
.rs-rot{display:flex;gap:7px;align-items:flex-start;font:600 12px/1.25 var(--body);color:var(--tinta-2);min-height:30px}
.rs-rot .ic{width:16px;height:16px;margin-top:1px;color:var(--tinta-3)}
.rs-num{margin-top:4px;font:700 clamp(24px,7.4vw,30px)/1.05 var(--display);letter-spacing:-.035em;font-variant-numeric:tabular-nums;white-space:nowrap}
.rs-num .moeda{font-size:.5em;margin-right:.1em}
.rs-num-texto{font-size:clamp(20px,5.8vw,25px)}
.rs-num-frase{font-size:clamp(18px,5.3vw,21px);line-height:1.12;letter-spacing:-.02em;white-space:normal;text-wrap:balance}   /* "Sem cobrança extra": uma frase, em até duas linhas dentro do bloco */
.rs-num-longo{font-size:clamp(19px,5.6vw,25px)}   /* "+R$ 639,38": cabe no bloco de 140 px */
.rs-un{font-size:12.5px;line-height:1.35;color:var(--tinta-2)}
.rs-et{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:6px}
.nacional{display:grid;gap:12px;margin-top:20px}

/* ---------- os trilhos de cartões ---------- */
.trilho{margin-top:44px;scroll-margin-top:14px}
.trilho-cab{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;margin-bottom:16px}
.ic-tile{display:grid;place-items:center;width:42px;height:42px;border-radius:15px;background:var(--aqua-suave);color:var(--aqua);flex:none}
.trilho h2{font:600 23px/1.12 var(--display);letter-spacing:-.02em;text-wrap:balance;scroll-margin-top:12px}
.trilho-tt p{margin-top:3px;font-size:13.5px;line-height:1.4;color:var(--tinta-2)}
.cont{font-weight:600;font-size:13px;color:var(--tinta-3);font-variant-numeric:tabular-nums}
.cont b{color:var(--tinta)}
.faixa{display:flex;align-items:flex-start;gap:12px;overflow-x:auto;margin-inline:-16px;padding:2px 16px 12px;scroll-padding-inline:16px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.faixa::-webkit-scrollbar{display:none}
.faixa:focus-visible{outline-offset:-2px}
.cartoes-luz{display:contents}
.cartoes-luz > p{flex:0 0 100%}
.cartao{flex:0 0 min(302px,82vw);scroll-snap-align:start;display:flex;flex-direction:column;gap:11px;padding:18px 18px 20px;border-radius:26px;background:var(--superficie);border:1px solid var(--linha);scroll-margin-top:14px}
.cartao-cab{display:flex;align-items:center;gap:10px}
.cartao-cab .ic-tile{width:34px;height:34px;border-radius:12px}
.cartao-cab .ic{width:18px;height:18px}
.cartao-cab h3{font:600 15.5px/1.25 var(--display);letter-spacing:-.01em;text-wrap:balance}
.pontos{display:flex;justify-content:center;gap:6px;margin-top:2px;min-height:6px}
.pontos i{width:6px;height:6px;border-radius:99px;background:var(--superficie-3);transition:width .2s,background .2s}
.pontos i.on{width:20px;background:var(--aqua-forte)}
.fx-etq{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.fx-frase{font-size:15px;line-height:1.45}
.mini{font-size:12.5px;line-height:1.45;color:var(--tinta-3)}
.cl-valor{font-family:var(--display);font-weight:600;white-space:nowrap}
.cl-fonte{font-size:13.5px;color:var(--aqua);font-weight:600}

/* o número grande de um cartão */
.nm{display:grid;gap:2px;margin:2px 0 0}
.nm b{font:700 52px/1 var(--display);letter-spacing:-.045em;font-variant-numeric:tabular-nums;white-space:nowrap}
.nm b .moeda,.nm b .suf{font-size:.42em;letter-spacing:0;color:var(--tinta-2)}
.nm b .suf{margin-left:.2em;font-weight:600}
.nm span{font-size:13.5px;line-height:1.35;color:var(--tinta-2)}
.nm-texto b{font-size:40px}
.nm-frase b{font-size:32px;line-height:1.05;letter-spacing:-.03em;white-space:normal;text-wrap:balance}   /* "Sem cobrança extra": uma frase, em até duas linhas */

/* uma linha com ícone: rótulo, valor e etiquetas (a linha do tempo da próxima mudança) */
.tempo{display:grid;gap:0}
.ln{display:grid;grid-template-columns:20px minmax(0,1fr);gap:0 12px;align-items:start;padding:0 0 18px}
.ln:last-child{padding-bottom:0}
.ln > .ic{color:var(--aqua-forte);margin-top:3px}
.ln:last-child > .ic{color:var(--violeta-forte)}
.ln-c{display:grid;gap:4px;min-width:0;justify-items:start}
.ln-r{font-size:12.5px;font-weight:500;color:var(--tinta-2)}
.ln-v{font:700 22px/1.15 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.ln-v .vr{font-size:12.5px}
.ln-t{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}

/* os 12 meses da tarifa ao lado da inflação */
.cps{display:grid;gap:16px;margin-top:6px}
.cp{display:grid;gap:7px}
.cp-rot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 8px;font-size:13.5px;color:var(--tinta-2)}
.cp-barra{display:grid;gap:5px}
.cp-barra small{justify-self:end;font-size:12px;color:var(--tinta-3)}

/* a régua das quatro bandeiras (a do mês acesa) e o que cada uma soma */
.passos{list-style:none;margin:auto 0 0;padding:12px 0 0;display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.passo{display:grid;gap:7px;justify-items:start;font:500 10.5px/1.2 var(--body);color:var(--tinta-3)}
.passo i{display:block;width:100%;height:8px;border-radius:99px;background:var(--cor);opacity:.28}
.passo-verde{--cor:var(--bandeira-verde)} .passo-amarela{--cor:var(--bandeira-amarela)} .passo-vermelha_1{--cor:var(--bandeira-vermelha)} .passo-vermelha_2{--cor:var(--bandeira-vermelha2)}
.passo.on{color:var(--tinta);font-weight:700}
.passo.on i{opacity:1;box-shadow:0 0 0 3px color-mix(in srgb,var(--cor) 28%,transparent)}
.bloco{display:grid;gap:8px;padding:14px 0 2px;border-top:1px dashed var(--linha-forte)}
.bloco-t{font-size:12.5px;font-weight:600;color:var(--tinta-2);display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center}
.escala{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.esc{display:grid;gap:7px;padding:10px;border-radius:16px;background:var(--superficie-2);border:1px solid var(--linha);align-content:start}
.esc b{font:700 19px/1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.esc .bd{justify-self:start;padding:2px 10px 2px 7px;font-size:11.5px}

/* a bandeira da conta que chega agora e a do mês (cartão da bandeira): duas linhas com a faixa na cor da bandeira e o nome dela; a regra por dias embaixo */
.na-conta{gap:10px}
.dias{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.dia{--cor:var(--bd,var(--tinta-3));position:relative;overflow:hidden;display:grid;gap:5px;padding:10px 12px 10px 18px;border-radius:16px;background:var(--superficie-2);border:1px solid var(--linha)}
.dia::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--cor)}
.dia.bd-amarela::before{background:#e0a800}
.dia-q{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 8px;font-size:13.5px;line-height:1.35;color:var(--tinta)}
.dia-q small{font-size:12.5px;color:var(--tinta-2)}
.dia-b{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.dia-v{font:700 19px/1.1 var(--display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap}
.dia-palavra{font-size:15px;letter-spacing:-.01em;white-space:normal}
.dia-n{font-size:12.5px;line-height:1.35;color:var(--tinta-2)}
.na-conta-igual{margin:0;padding:12px 0 0;border-top:1px dashed var(--linha-forte);font-size:13.5px;line-height:1.45;color:var(--tinta-2)}
.rs-conta{margin-top:2px;padding-top:6px;border-top:1px dashed var(--linha-forte);color:var(--tinta);font-weight:500}

/* compartilhar */
.share-acoes{display:grid;gap:9px;margin-top:4px}
.ci-retorno{min-height:18px;font-size:13px;font-weight:600;color:var(--aqua);margin:0}
.ci-retorno textarea{display:block;width:100%;margin-top:6px;font:13px var(--body);border:1px solid var(--linha-forte);border-radius:12px;padding:8px}

/* "Ver detalhes e fontes": fechado; dentro, fontes, datas, leis e métodos */
.cx-det{margin-top:14px;border:1px solid var(--linha);border-radius:20px;background:var(--superficie)}
.cx-det > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;min-height:50px;cursor:pointer;list-style:none;font:600 14.5px var(--body);color:var(--aqua)}
.cx-det > summary::-webkit-details-marker{display:none}
.cx-det > summary::after,.rodape-det > summary::after{content:"";width:9px;height:9px;flex:none;margin-right:3px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.cx-det[open] > summary::after,.rodape-det[open] > summary::after{transform:rotate(-135deg) translate(-2px,-2px)}
.cx-det-corpo{padding:2px 18px 20px;display:grid;gap:18px}
.dt{display:grid;gap:8px;justify-items:start}
.dt h4{font:600 11.5px/1.3 var(--body);letter-spacing:.09em;text-transform:uppercase;color:var(--tinta-3);margin:0}
.dt .mini{font-size:13.5px;line-height:1.55;color:var(--tinta-2);max-width:70ch}
.nota-trilho{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;margin:14px 4px 0;font-size:13px;color:var(--tinta-2)}
.nota-trilho .ic{width:16px;height:16px;margin-top:2px;color:var(--tinta-3)}
.nota-trilho p{flex:1 1 200px}
.nota-trilho a{flex-basis:100%;padding-left:24px;font-weight:600}

/* links para o resto e o rodapé */
.atalhos{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.atalhos a{padding:9px 16px;border-radius:99px;border:1px solid var(--linha-forte);background:var(--superficie);color:var(--tinta);font-size:13.5px;font-weight:500;text-decoration:none}
.atalhos a:hover{border-color:var(--aqua-forte)}
.rodape{margin-top:56px;padding-top:24px;border-top:1px solid var(--linha);display:grid;gap:10px;font-size:13.5px;color:var(--tinta-2);max-width:none}
.rodape__autoria{color:var(--tinta)}
.rodape-det{margin-top:6px;border:1px solid var(--linha);border-radius:20px;background:var(--superficie)}
.rodape-det > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;font:600 14.5px var(--body);color:var(--aqua);cursor:pointer;list-style:none}
.rodape-det > summary::-webkit-details-marker{display:none}
.rodape-corpo{display:grid;gap:12px;padding:2px 18px 20px}
.rodape-corpo p{font-size:13.5px;line-height:1.55}
#gerado{color:var(--tinta-3);font-size:12.5px}

/* ---------- telas maiores: o painel vira grade, a barra de baixo vira abas no topo ---------- */
@media (min-width:640px){
  .busca-linha .sep{display:block}
  .busca-linha #cl-dist{flex-basis:auto}
  .busca-linha #kwh-lin{flex:0 1 auto}
  .cartao{flex-basis:320px}
  .hero-card{padding:28px 28px 24px}
}
@media (min-width:960px){
  .pagina{padding:0 32px 72px}
  .topo{height:88px}
  .marca-nome{font-size:20px}
  .abas{position:static;z-index:auto;display:flex;gap:4px;padding:5px;max-width:none;margin:0;background:var(--superficie);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;border-radius:99px}
  .abas a{display:flex;gap:8px;padding:9px 16px;font-size:13.5px}
  .abas a .ic{width:18px;height:18px}
  .abas a:hover{color:var(--tinta)}
  .abas a.falhou::after{position:static;align-self:center;flex:none}   /* ao lado do nome, não por cima dele */
  .aviso-barra{bottom:24px}
  .busca{max-width:640px}
  .busca-form input{height:60px;font-size:17px}
  .busca-form .btn{height:46px}
  .pergunta{margin-top:18px}
  .painel{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:18px;margin-top:28px;align-items:stretch}
  .hero-card{padding:40px 40px 34px;border-radius:36px}
  .hero-card h1{font-size:28px}
  .hero-num{font-size:clamp(96px,10.5vw,132px)}
  .tiles{gap:14px;grid-auto-rows:1fr}
  .rs-t{padding:22px 20px 18px;border-radius:26px}
  .rs-num{font-size:36px}
  .rs-num-texto{font-size:28px}
  .rs-num-frase{font-size:23px}
  .rs-num-longo{font-size:30px}
  .rs-rot{font-size:13px}
  #nacional .rs{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
  .trilho{margin-top:64px}
  .trilho h2{font-size:28px}
  .cont,.pontos{display:none}
  .faixa{display:grid;align-items:stretch;overflow:visible;margin-inline:0;padding:0;gap:16px;scroll-snap-type:none}
  .cartao{flex:none;min-width:0}
  .trilho-luz .faixa{grid-template-columns:repeat(6,minmax(0,1fr))}
  .c-bandeira,.c-proxima{grid-column:span 3}
  .c-tarifa,.c-mudanca,.c-comp{grid-column:span 2}
  .c-proxima .escala{grid-template-columns:repeat(4,minmax(0,1fr))}
  .trilho-subiu .faixa{grid-template-columns:repeat(3,minmax(0,1fr))}
  .trilho-conta .faixa{grid-template-columns:repeat(4,minmax(0,1fr))}
  .trilho-comb .faixa{grid-template-columns:repeat(6,minmax(0,1fr))}
  .trilho-comb .cartao:nth-child(-n+3){grid-column:span 2}
  .trilho-comb .cartao:nth-child(n+4){grid-column:span 3}
  .cx-det{margin-top:18px}
  .rodape{margin-top:80px;grid-template-columns:1fr 1fr;gap:12px 40px}
  .rodape-det{grid-column:1 / -1}
}
