/* ============================================================
   Bloco de clima e economia da home.

   Só usa os tokens de style.css (--panel, --line, --ink…), então o
   tema claro vem de graça: [data-theme="light"] redefine os tokens e
   o bloco acompanha. As únicas exceções estão comentadas abaixo.

   Prefixo "ptv-" e nenhum "ad"/"widget"/"track" nos nomes: filtros
   cosméticos de ad-block escondem esses padrões e comeriam o bloco.
   ============================================================ */

.ptv-ce{
  max-width:1220px;
  margin:20px auto 0;
  padding:0 24px;
}

.ptv-ce__grid{
  display:flex;
  align-items:stretch;
  gap:0;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;
  overflow:hidden;
}

.ptv-ce__bloco{
  display:flex;
  align-items:center;
  gap:14px;
  padding:14px 18px;
  min-width:0;
}

/* ---------- clima ---------- */
.ptv-ce__clima{
  flex-shrink:0;
  border-right:1px solid var(--line);
}
.ptv-ce__ic{
  width:38px;
  height:38px;
  flex-shrink:0;
  color:var(--orange);
}
.ptv-ce__tx{
  display:grid;
  grid-template-columns:auto auto;
  align-items:baseline;
  gap:0 10px;
  min-width:0;
}
.ptv-ce__local{
  grid-column:1 / -1;
  font-family:var(--mono);
  font-size:.62rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-soft);
}
.ptv-ce__temp{
  font-size:1.7rem;
  font-weight:900;
  letter-spacing:-.03em;
  line-height:1.1;
  font-variant-numeric:tabular-nums;
}
.ptv-ce__cond{
  font-size:.8rem;
  color:var(--ink-soft);
  /* Descrições da OWM ("chuva leve", "nublado") variam muito de tamanho. */
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ptv-ce__extremos{
  grid-column:1 / -1;
  font-family:var(--mono);
  font-size:.66rem;
  color:var(--ink-mute);
  margin-top:2px;
}

/* ---------- moedas ---------- */
.ptv-ce__moedas{
  gap:28px;
  flex:1;
  overflow-x:auto;
  scrollbar-width:none;
}
.ptv-ce__moedas::-webkit-scrollbar{display:none;}

.ptv-ce__moeda{
  display:grid;
  grid-template-columns:auto auto;
  align-items:baseline;
  gap:0 8px;
  flex-shrink:0;
}
.ptv-ce__sigla{
  grid-column:1 / -1;
  font-family:var(--mono);
  font-size:.62rem;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--ink-soft);
}
.ptv-ce__valor{
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:-.01em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.ptv-ce__var{
  font-family:var(--mono);
  font-size:.7rem;
  font-weight:700;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
/* Verde sobe / laranja desce, a convenção de mercado, na paleta da marca.
   A seta ▲▼ carrega o mesmo sinal para quem não distingue as cores. */
.ptv-ce__var--sobe{color:var(--lime);}
.ptv-ce__var--desce{color:var(--orange);}
.ptv-ce__ref{
  grid-column:1 / -1;
  font-family:var(--mono);
  font-size:.62rem;
  color:var(--ink-mute);
  margin-top:2px;
  white-space:nowrap;
}

/* ---------- previsão (hoje + próximos dias) ---------- */
.ptv-ce__previsao{
  display:flex;
  list-style:none;
  margin:8px 0 0;
  padding:0;
  gap:0;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:12px;
  overflow-x:auto;
  scrollbar-width:none;
}
.ptv-ce__previsao::-webkit-scrollbar{display:none;}

.ptv-ce__dia{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 16px;
  flex:1;
  flex-shrink:0;
  min-width:82px;
  border-right:1px solid var(--line);
}
.ptv-ce__dia:last-child{border-right:none;}

.ptv-ce__dia .ptv-ce__ic{width:22px; height:22px;}

.ptv-ce__dia-nome{
  font-family:var(--mono);
  font-size:.66rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--ink-soft);
  min-width:2.6em;
}
.ptv-ce__dia-temps{
  display:flex;
  gap:6px;
  align-items:baseline;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.ptv-ce__dia-max{font-size:.86rem; font-weight:700;}
.ptv-ce__dia-min{font-size:.8rem; color:var(--ink-mute);}

@media (max-width:420px){
  .ptv-ce__dia{padding:9px 12px; min-width:72px; gap:6px;}
  .ptv-ce__dia .ptv-ce__ic{width:19px; height:19px;}
  .ptv-ce__dia-max{font-size:.8rem;}
  .ptv-ce__dia-min{font-size:.74rem;}
}

/* ---------- fonte e horário ---------- */
.ptv-ce__fonte{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:space-between;
  font-family:var(--mono);
  font-size:.62rem;
  color:var(--ink-mute);
  margin-top:7px;
  padding:0 4px;
}
.ptv-ce__fonte a{color:var(--ink-soft); text-decoration:underline; text-underline-offset:2px;}
.ptv-ce__fonte a:hover{color:var(--orange);}

/* Tema claro: a lima sobre fundo claro fica ilegível — style.css já troca os
   acentos em lima por azul pelo mesmo motivo. Aqui o azul não serve (perderia
   o sentido de "subiu"), então usa-se a lima escurecida, mesma família da marca. */
[data-theme="light"] .ptv-ce__var--sobe{color:#5F8A0B;}
[data-theme="light"] .ptv-ce__var--desce{color:var(--orange-deep);}

/* ---------- telas estreitas ---------- */
@media (max-width:860px){
  .ptv-ce{padding:0 14px;}
  .ptv-ce__grid{flex-direction:column;}
  .ptv-ce__clima{
    border-right:none;
    border-bottom:1px solid var(--line);
  }
  .ptv-ce__moedas{gap:22px;}
}

/* A 390px o bloco não pode estourar a linha: o câmbio rola na horizontal
   (como a faixa de cidades) em vez de empurrar a página para o lado. */
@media (max-width:420px){
  .ptv-ce__bloco{padding:12px 14px;}
  .ptv-ce__ic{width:32px; height:32px;}
  .ptv-ce__temp{font-size:1.5rem;}
  .ptv-ce__cond{font-size:.74rem;}
  .ptv-ce__moedas{gap:18px;}
  .ptv-ce__valor{font-size:.98rem;}
  .ptv-ce__fonte{font-size:.58rem;}
}
