/* ============================================================
   CARRINHO CERTO · app do cliente
   ============================================================ */
:root {
  /* Paleta "Fofinha" (padrão): rosa, lilás e amarelo marca-texto, feita para adolescentes */
  --marca: #e0306f; --marca-2: #ff7aa8; --marca-escura: #9b5cf6; --marca-clara: #ffe4ef;
  --acento: #fff27a; --acento-tinta: #3a1d2b;
  --oferta: #ff3d7f; --oferta-escuro: #e0306f; --oferta-clara: #ffe4ef;
  --azul: #7c5cf0; --azul-claro: #efe9ff; --amarelo: #ffc93c; --amarelo-claro: #fff6cc; --amarelo-tinta: #7a5200;
  --tinta: #3a1d2b; --tinta-2: #6b4a5a; --cinza: #8a7380; --cinza-2: #b9a6b0;
  --linha: #f5dce6; --papel: #fff4f8; --papel-2: #fffafc; --cartao: #fff; --noite: #2a1220;
  --pastel-1: #ffe4ef; --pastel-2: #efe9ff; --pastel-3: #dcf7ea; --pastel-4: #fff1d6; --pastel-5: #ddf1ff; --pastel-6: #fff6cc;
  --raio: 24px; --abas: 68px;
  --sombra: 0 1px 2px color-mix(in srgb, var(--tinta) 6%, transparent), 0 12px 28px -14px color-mix(in srgb, var(--marca) 30%, transparent);
  color-scheme: light;
}
/* Outras paletas: coloque data-tema="noite" (ou esmeralda, vinho, oceano) na tag <html> */
:root[data-tema="noite"] {
  --marca: #1b2b5e; --marca-2: #2e46a0; --marca-escura: #0e1838; --marca-clara: #e9edfa;
  --acento: #ffc145; --acento-tinta: #2a1b00;
  --oferta: #f2542d; --oferta-escuro: #d63a14; --oferta-clara: #fdece6;
  --azul: #2a6fdb; --azul-claro: #e8f0fc; --amarelo: #f2b705; --amarelo-claro: #fff5d6; --amarelo-tinta: #7a5600;
  --tinta: #131a2c; --tinta-2: #3a4257; --cinza: #646c80; --cinza-2: #9aa0b2;
  --linha: #e4e7ef; --papel: #f4f5f9; --papel-2: #fafbfd; --noite: #0a0f1e;
}
:root[data-tema="esmeralda"] {
  --marca: #0b5d3b; --marca-2: #12824f; --marca-escura: #073d27; --marca-clara: #e5f2ea;
  --acento: #c8f169; --acento-tinta: #073d27;
  --oferta: #ff5a3c; --oferta-escuro: #e0401f; --oferta-clara: #ffece7;
  --azul: #2a6fdb; --azul-claro: #e8f0fc;
  --tinta: #10201a; --tinta-2: #3c4741; --cinza: #66706a; --cinza-2: #9aa29d;
  --linha: #e8e4d9; --papel: #f5f3ec; --papel-2: #fcfbf8; --noite: #050c09;
}
:root[data-tema="vinho"] {
  --marca: #6a1b3d; --marca-2: #9c2c5a; --marca-escura: #3e0e23; --marca-clara: #f8e9ef;
  --acento: #f7c873; --acento-tinta: #3a2400;
  --oferta: #e8572b; --oferta-escuro: #c9401a; --oferta-clara: #fdede6;
  --azul: #2a6fdb; --azul-claro: #e8f0fc;
  --tinta: #23151b; --tinta-2: #4a3a41; --cinza: #74656b; --cinza-2: #a898a0;
  --linha: #ece4e0; --papel: #f8f5f3; --papel-2: #fcfaf9; --noite: #14080d;
}
:root[data-tema="oceano"] {
  --marca: #0b57a4; --marca-2: #1c7fd6; --marca-escura: #062f5c; --marca-clara: #e6f1fc;
  --acento: #ffd43b; --acento-tinta: #2b2300;
  --oferta: #f04438; --oferta-escuro: #d92d20; --oferta-clara: #feeceb;
  --azul: #2a6fdb; --azul-claro: #e8f0fc;
  --tinta: #0f1c2b; --tinta-2: #364556; --cinza: #5f6e7f; --cinza-2: #97a3b0;
  --linha: #e1e8f0; --papel: #f3f6fa; --papel-2: #f9fbfd; --noite: #050d18;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { font-family: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: 16px;
  color: var(--tinta); background: radial-gradient(circle at 1px 1px, color-mix(in srgb, var(--marca) 12%, transparent) 1.2px, transparent 1.6px) 0 0 / 22px 22px, var(--papel); -webkit-tap-highlight-color: transparent; -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
button { font: inherit; cursor: pointer; color: inherit; }
a { color: var(--marca-2); }
svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.tela { max-width: 600px; margin: 0 auto; min-height: 100vh; padding-bottom: calc(var(--abas) + 28px + env(safe-area-inset-bottom)); }

/* ---------- botões ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 16px;
  padding: 14px 18px; font-weight: 700; font-size: 16px; text-decoration: none; transition: transform .12s, filter .15s, background .15s; }
.btn:active { transform: scale(.97); }
.btn-bloco { display: flex; width: 100%; }
.btn-primario { background: var(--marca); color: #fff; box-shadow: 0 8px 20px -10px color-mix(in srgb, var(--marca) 70%, transparent); }
.btn-lima { background: var(--acento); color: var(--acento-tinta); }
.btn-coral { background: var(--oferta); color: #fff; }
.btn-claro { background: var(--marca-clara); color: var(--marca); }
.btn-contorno { background: #fff; color: var(--tinta); border: 1.5px solid var(--linha); }
.btn-vidro { background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.25); }
.btn-texto { background: none; border: 0; padding: 10px; font-weight: 700; color: var(--marca-2); }
.btn-texto.perigo { color: var(--oferta-escuro); }
.btn-icone { width: 42px; height: 42px; border-radius: 14px; border: 0; background: #fff; display: grid; place-items: center; box-shadow: var(--sombra); }
.btn-icone.claro { background: rgba(255,255,255,.12); color: #fff; box-shadow: none; }

/* ---------- logo e avatar ---------- */
.logo-ic { width: 40px; height: 40px; border-radius: 13px; flex: none; background: var(--acento); position: relative; }
.logo-ic::after { content: ""; position: absolute; inset: 0; background: var(--acento-tinta);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.4 11h10.2L20 8H7'/%3E%3Ccircle cx='10' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3Cpath d='m10 10.5 1.8 1.8 3.4-3.4'/%3E%3C/svg%3E") center/62% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2l2.4 11h10.2L20 8H7'/%3E%3Ccircle cx='10' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3Cpath d='m10 10.5 1.8 1.8 3.4-3.4'/%3E%3C/svg%3E") center/62% no-repeat; }
.logo-ic.grande { display: block; width: 64px; height: 64px; border-radius: 20px; }
.avatar { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--marca-clara);
  color: var(--marca); font-weight: 800; font-size: 15px; }
.avatar.grande { width: 64px; height: 64px; font-size: 24px; background: var(--acento); color: var(--acento-tinta); flex: none; }
.avatar-btn { border: 0; background: none; padding: 0; }

/* ---------- topo ---------- */
.topo-app { display: flex; align-items: center; justify-content: space-between; padding: 16px 16px 8px; }
.topo-app .marca { display: flex; align-items: center; gap: 10px; }
.topo-app .marca small { display: block; color: var(--cinza); font-size: 13px; font-weight: 600; }
.topo-app .marca strong { font-size: 18px; letter-spacing: -.02em; }
.topo-app.simples h1 { margin: 0; font-size: 28px; letter-spacing: -.03em; }
.subtitulo { margin: 0 16px 14px; color: var(--cinza); line-height: 1.5; }

/* ---------- ofertas ---------- */
.destaque-ofertas { margin: 8px 12px 0; border-radius: 26px; padding: 22px 18px 18px; color: #fff; position: relative; overflow: hidden;
  background: radial-gradient(420px 220px at 110% -10%, color-mix(in srgb, var(--acento) 35%, transparent), transparent 60%),
              radial-gradient(300px 200px at -20% 120%, color-mix(in srgb, var(--oferta) 35%, transparent), transparent 60%),
              linear-gradient(150deg, var(--marca-2), var(--marca-escura)); }
.destaque-ofertas::after { content: "%"; position: absolute; right: -6px; top: -26px; font-size: 150px; font-weight: 800; color: rgba(255,255,255,.06); line-height: 1; }
.sobretitulo { font-size: 13px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--acento); }
.destaque-ofertas h1 { margin: 6px 0 16px; font-size: 25px; line-height: 1.15; letter-spacing: -.03em; max-width: 92%; }
.btn-gps { width: 100%; position: relative; z-index: 1; }
.gps-status { margin: 10px 0 0; font-size: 14px; opacity: .9; text-align: center; }

.categorias { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 14px 12px 2px; }
.categorias::-webkit-scrollbar { display: none; }
.categorias button { flex: none; width: 74px; border: 0; background: none; padding: 0; display: grid; justify-items: center; gap: 6px;
  font-size: 12px; font-weight: 700; color: var(--tinta-2); text-align: center; line-height: 1.2; }
.categorias button span { width: 58px; height: 58px; border-radius: 20px; display: grid; place-items: center; font-size: 28px;
  background: var(--cartao); box-shadow: var(--sombra); transition: transform .15s, background .15s; }
.categorias button[aria-selected="true"] { color: var(--marca); }
.categorias button[aria-selected="true"] span { background: var(--acento); transform: translateY(-2px); box-shadow: 0 0 0 2px var(--marca) inset, var(--sombra); }
#tela-mercados .categorias { padding-top: 0; padding-bottom: 12px; }
.ferramentas { padding: 14px 12px 4px; display: grid; gap: 10px; }
.busca { display: flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid var(--linha); border-radius: 16px; padding: 0 14px; }
.busca:focus-within { border-color: var(--marca-2); box-shadow: 0 0 0 4px var(--marca-clara); }
.busca svg { color: var(--cinza-2); }
.busca input { border: 0; outline: 0; font: inherit; padding: 13px 0; width: 100%; background: none; }
.chips { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 -12px; padding: 0 12px; }
.chips::-webkit-scrollbar { display: none; }
.chip { flex: none; border: 1.5px solid var(--linha); background: #fff; border-radius: 99px; padding: 8px 14px; font-weight: 700; font-size: 14px; }
.chip.ativo { border-color: var(--tinta); background: var(--tinta); color: #fff; }
.alternar { display: flex; background: var(--linha); border-radius: 14px; padding: 4px; }
.alternar button { flex: 1; border: 0; background: none; padding: 9px; border-radius: 11px; font-weight: 700; color: var(--cinza); }
.alternar button.ativo { background: #fff; color: var(--tinta); box-shadow: 0 1px 3px rgba(0,0,0,.1); }

.lista-promos { padding: 8px 12px 0; display: grid; gap: 12px; }
.promo-card { background: var(--cartao); border-radius: var(--raio); box-shadow: var(--sombra); overflow: hidden; animation: subir .35s both; }
@keyframes subir { from { opacity: 0; transform: translateY(10px); } }
.promo-topo { display: flex; gap: 14px; padding: 14px 14px 10px; }
.promo-foto { width: 92px; height: 92px; flex: none; border-radius: 16px; background: linear-gradient(135deg, var(--oferta-clara), color-mix(in srgb, var(--oferta) 22%, white));
  display: grid; place-items: center; font-size: 38px; overflow: hidden; position: relative; }
.promo-foto img { width: 100%; height: 100%; object-fit: cover; }
.promo-foto .desc { position: absolute; left: 6px; top: 6px; }
.promo-info { flex: 1; min-width: 0; display: grid; align-content: start; gap: 5px; }
.promo-info h3 { margin: 0; font-size: 17px; line-height: 1.25; letter-spacing: -.01em; }
.selo { justify-self: start; font-size: 12px; font-weight: 800; border-radius: 99px; padding: 3px 9px; }
.selo.vencimento { background: var(--amarelo-claro); color: var(--amarelo-tinta); }
.selo.oferta { background: var(--oferta-clara); color: var(--oferta-escuro); }
.selo.estoque { background: var(--azul-claro); color: var(--azul); }
.precos { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; margin-top: 2px; }
.precos s { color: var(--cinza-2); font-size: 14px; }
.precos strong { color: var(--oferta-escuro); font-size: 27px; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.desc { background: var(--oferta); color: #fff; font-weight: 800; font-size: 13px; border-radius: 9px; padding: 3px 7px; }
.promo-detalhes { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 14px 12px; }
.promo-detalhes span { background: var(--papel); border-radius: 9px; padding: 4px 9px; font-size: 13px; font-weight: 700; color: var(--tinta-2); }
.promo-mercado { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-top: 1px solid var(--linha); background: var(--papel-2); }
.mini-logo { width: 36px; height: 36px; border-radius: 11px; flex: none; background: var(--marca-clara); display: grid; place-items: center; font-size: 18px; overflow: hidden; }
.mini-logo img { width: 100%; height: 100%; object-fit: cover; }
.promo-mercado .nome { flex: 1; min-width: 0; display: grid; }
.promo-mercado .nome strong { font-size: 15px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.promo-mercado .nome small { color: var(--cinza); font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dist { flex: none; background: var(--azul-claro); color: var(--azul); font-weight: 800; border-radius: 99px; padding: 5px 10px; font-size: 13px; }
.promo-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 14px 14px; background: var(--papel-2); }
.promo-acoes .btn { padding: 12px 8px; font-size: 15px; border-radius: 14px; }
.lista-promos.compacta .promo-detalhes, .lista-promos.compacta .promo-acoes { display: none; }

.mapa { height: 52vh; min-height: 300px; margin: 6px 12px 12px; border-radius: var(--raio); overflow: hidden; box-shadow: var(--sombra); position: relative; z-index: 0; }
.pino { background: none; border: 0; }
.pino span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--oferta);
  border: 3px solid #fff; box-shadow: 0 3px 8px rgba(0,0,0,.3); color: #fff; font-weight: 800; font-size: 15px; font-family: inherit; }
.pop-lista { padding-left: 18px; margin: 6px 0; }

.esqueleto { height: 170px; border-radius: var(--raio); background: linear-gradient(90deg, var(--linha) 25%, var(--papel-2) 50%, var(--linha) 75%); background-size: 200% 100%; animation: brilho 1.2s infinite; }
@keyframes brilho { to { background-position: -200% 0; } }
.vazio { text-align: center; color: var(--cinza); padding: 34px 20px; line-height: 1.55; }

/* ---------- mercados ---------- */
.lista-mercados { padding: 0 12px; display: grid; gap: 12px; }
.mercado-card { background: var(--cartao); border-radius: var(--raio); box-shadow: var(--sombra); padding: 14px; display: grid; gap: 12px; animation: subir .35s both; }
.mercado-cab { display: flex; gap: 12px; align-items: center; }
.mercado-logo { width: 58px; height: 58px; border-radius: 17px; flex: none; background: var(--marca-clara); display: grid; place-items: center; font-size: 28px; overflow: hidden; }
.mercado-logo img { width: 100%; height: 100%; object-fit: cover; }
.mercado-nome { flex: 1; min-width: 0; }
.mercado-nome strong { display: block; font-size: 17px; letter-spacing: -.01em; }
.mercado-nome small { color: var(--cinza); font-size: 14px; display: block; }
.seguir { border: 1.5px solid var(--linha); background: #fff; border-radius: 99px; padding: 8px 13px; font-weight: 800; font-size: 14px; flex: none; }
.seguir.sim { background: var(--marca); border-color: var(--marca); color: #fff; }
.mercado-desc { margin: 0; color: var(--tinta-2); font-size: 15px; line-height: 1.45; }
.mercado-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.mercado-tags span { background: var(--papel); border-radius: 9px; padding: 4px 9px; font-size: 13px; font-weight: 700; }
.mercado-tags .quente { background: var(--oferta-clara); color: var(--oferta-escuro); }
.mercado-tags .perto { background: var(--azul-claro); color: var(--azul); }
.mercado-acoes { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 8px; }
.mercado-acoes .btn { padding: 12px 8px; font-size: 15px; border-radius: 14px; }
.banner-mercado { display: flex; align-items: center; gap: 12px; margin: 18px 12px 0; padding: 18px; border-radius: var(--raio); text-decoration: none;
  color: #fff; background: linear-gradient(120deg, var(--noite), var(--marca)); }
.banner-mercado div { flex: 1; display: grid; gap: 3px; } .banner-mercado b { color: var(--acento); font-size: 17px; }
.banner-mercado span { opacity: .85; font-size: 14px; } .banner-mercado i { font-style: normal; font-size: 24px; color: var(--acento); }

/* ---------- carrinho ---------- */
.tela-carrinho { padding-bottom: calc(var(--abas) + 110px + env(safe-area-inset-bottom)); }
.topo-carrinho { position: sticky; top: 0; z-index: 5; display: flex; align-items: center; gap: 12px; padding: 12px; background: color-mix(in srgb, var(--papel) 92%, transparent);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.topo-carrinho div { flex: 1; min-width: 0; } .topo-carrinho small { color: var(--cinza); font-size: 13px; font-weight: 600; display: block; }
.topo-carrinho strong { font-size: 17px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.painel-total { margin: 4px 12px 12px; border-radius: 26px; padding: 20px; color: #fff; background: linear-gradient(150deg, var(--marca-2), var(--marca-escura)); box-shadow: var(--sombra); }
.linha-total { display: flex; justify-content: space-between; align-items: flex-end; gap: 10px; }
.linha-total span { display: block; font-weight: 700; opacity: .85; } .linha-total small { opacity: .7; font-size: 14px; }
.linha-total strong { font-size: 40px; letter-spacing: -.04em; font-variant-numeric: tabular-nums; line-height: 1; }
.linha-economia { margin-top: 12px; background: color-mix(in srgb, var(--acento) 16%, transparent); color: var(--acento); border-radius: 12px; padding: 8px 12px; font-size: 14px; font-weight: 600; }
.orcamento { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.14); }
.orcamento label { font-weight: 700; }
.campo-dinheiro { display: flex; align-items: center; border: 1.5px solid var(--linha); border-radius: 14px; padding: 0 12px; background: #fff; color: var(--tinta); }
.campo-dinheiro:focus-within { border-color: var(--marca-2); box-shadow: 0 0 0 4px var(--marca-clara); }
.campo-dinheiro span { color: var(--cinza); font-weight: 700; }
.campo-dinheiro input { border: 0; outline: 0; font: inherit; font-size: 19px; font-weight: 700; padding: 10px 6px; width: 120px; background: transparent; color: inherit; }
.painel-total .campo-dinheiro { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.2); color: #fff; }
.painel-total .campo-dinheiro span { color: rgba(255,255,255,.7); }
.painel-total .campo-dinheiro input::placeholder { color: rgba(255,255,255,.5); }
.painel-total .campo-dinheiro:focus-within { box-shadow: 0 0 0 4px color-mix(in srgb, var(--acento) 30%, transparent); border-color: var(--acento); }
.barra-progresso { height: 12px; background: rgba(255,255,255,.15); border-radius: 99px; overflow: hidden; margin-top: 14px; }
#progresso { height: 100%; width: 0; border-radius: 99px; transition: width .35s, background .3s; }
#progresso.verde { background: var(--acento); } #progresso.amarelo { background: var(--amarelo); } #progresso.vermelho { background: var(--oferta); }
.situacao { margin-top: 10px; padding: 10px 12px; border-radius: 12px; font-weight: 700; text-align: center; font-size: 15px; }
.situacao.verde { background: color-mix(in srgb, var(--acento) 16%, transparent); color: var(--acento); }
.situacao.amarelo { background: color-mix(in srgb, var(--amarelo) 18%, transparent); color: var(--amarelo); }
.situacao.vermelho { background: var(--oferta); color: #fff; }

.lista-itens { list-style: none; margin: 0 12px; padding: 0; display: grid; gap: 10px; }
.item { background: var(--cartao); border-radius: 18px; padding: 14px; display: grid; gap: 10px; box-shadow: var(--sombra); animation: subir .25s both; }
.item-info strong { display: block; font-size: 16px; }
.item-info small { color: var(--cinza); font-size: 14px; }
.item-info s { color: var(--cinza-2); }
.etiqueta { background: var(--amarelo-claro); color: var(--amarelo-tinta); border-radius: 7px; padding: 1px 7px; font-size: 12px; font-weight: 800; }
.etiqueta.promo { background: var(--oferta-clara); color: var(--oferta-escuro); }
.item-acoes { display: flex; justify-content: space-between; align-items: center; }
.subtotal { font-size: 19px; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.quantidade { display: flex; align-items: center; justify-content: center; gap: 18px; }
.quantidade span { font-size: 24px; font-weight: 800; min-width: 32px; text-align: center; }
.quantidade.pequena { gap: 10px; background: var(--papel); border-radius: 99px; padding: 4px; }
.quantidade.pequena span { font-size: 17px; min-width: 22px; }
.btn-redondo { width: 48px; height: 48px; border-radius: 50%; border: 0; background: var(--marca-clara); color: var(--marca); font-size: 24px; font-weight: 700; line-height: 1; }
.quantidade.pequena .btn-redondo { width: 38px; height: 38px; font-size: 20px; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.vazio-carrinho { text-align: center; color: var(--cinza); padding: 26px 24px; line-height: 1.55; }
.scan-ilustra { width: 120px; height: 84px; margin: 0 auto 14px; border-radius: 6px; position: relative;
  background: repeating-linear-gradient(90deg, var(--tinta) 0 3px, transparent 3px 6px, var(--tinta) 6px 8px, transparent 8px 12px); opacity: .85; }
.scan-ilustra span { position: absolute; left: -8px; right: -8px; height: 3px; background: var(--oferta); box-shadow: 0 0 12px var(--oferta); top: 10%; animation: varrer 1.6s ease-in-out infinite alternate; }
@keyframes varrer { to { top: 88%; } }
.terminar { margin: 14px 12px 0; width: calc(100% - 24px); }
.rodape-acoes { position: fixed; left: 0; right: 0; bottom: calc(var(--abas) + env(safe-area-inset-bottom)); z-index: 6; padding: 14px 16px 12px;
  background: linear-gradient(transparent, var(--papel) 35%); }
.rodape-acoes .btn { max-width: 568px; margin: 0 auto; font-size: 18px; padding: 17px; }
.vazio-grande { text-align: center; padding: 80px 28px; }
.vazio-ic { width: 92px; height: 92px; border-radius: 30px; background: var(--marca-clara); display: grid; place-items: center; font-size: 44px; margin: 0 auto 18px; }
.vazio-grande h2 { margin: 0 0 8px; letter-spacing: -.02em; } .vazio-grande p { color: var(--cinza); margin: 0 0 22px; }

/* ---------- perfil ---------- */
.auth-topo { text-align: center; padding: 38px 24px 18px; }
.auth-topo .logo-ic { margin: 0 auto 16px; }
.auth-topo h1 { margin: 0 0 8px; font-size: 27px; letter-spacing: -.03em; }
.auth-topo p { margin: 0 auto; color: var(--cinza); line-height: 1.5; max-width: 380px; }
.cartao { background: var(--cartao); border-radius: 24px; box-shadow: var(--sombra); margin: 0 12px; padding: 18px; }
.segmento { display: flex; background: var(--papel); border-radius: 14px; padding: 4px; margin-bottom: 16px; }
.segmento button { flex: 1; border: 0; background: none; padding: 10px; border-radius: 11px; font-weight: 800; color: var(--cinza); }
.segmento button.ativo { background: #fff; color: var(--tinta); box-shadow: 0 1px 3px rgba(0,0,0,.1); }
#form-auth label { display: grid; gap: 6px; font-weight: 700; font-size: 14px; margin-bottom: 14px; }
#form-auth label small { color: var(--cinza-2); font-weight: 600; }
#form-auth input { font: inherit; font-size: 16px; padding: 13px 14px; border: 1.5px solid var(--linha); border-radius: 14px; outline: 0; width: 100%; background: #fff; }
#form-auth input:focus { border-color: var(--marca-2); box-shadow: 0 0 0 4px var(--marca-clara); }
.campo-senha { position: relative; } .campo-senha input { padding-right: 48px !important; }
.ver-senha { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: none; font-size: 18px; padding: 8px; opacity: .6; }
.erro-form { background: var(--oferta-clara); color: var(--oferta-escuro); border-radius: 12px; padding: 10px 12px; font-weight: 700; margin: 0 0 14px; font-size: 14px; }
.link-painel { text-align: center; font-size: 14px; }

.perfil-heroi { margin: 14px 12px 0; border-radius: 28px; padding: 22px 20px; color: #fff; position: relative; overflow: hidden;
  background: radial-gradient(400px 240px at 110% 0%, color-mix(in srgb, var(--acento) 30%, transparent), transparent 60%), linear-gradient(150deg, var(--marca-2), var(--marca-escura)); }
.perfil-id { display: flex; align-items: center; gap: 14px; }
.perfil-id h1 { margin: 0; font-size: 22px; letter-spacing: -.02em; } .perfil-id small { opacity: .75; }
.economia-total { margin-top: 22px; display: grid; gap: 2px; }
.economia-total span { font-weight: 700; opacity: .85; }
.economia-total strong { font-size: 46px; letter-spacing: -.045em; color: var(--acento); line-height: 1.05; font-variant-numeric: tabular-nums; }
.economia-total small { opacity: .75; font-size: 14px; line-height: 1.45; }
.numeros { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 12px 12px 0; }
.numeros div { background: var(--cartao); border-radius: 18px; padding: 14px 10px; text-align: center; box-shadow: var(--sombra); }
.numeros b { display: block; font-size: 20px; letter-spacing: -.02em; } .numeros span { color: var(--cinza); font-size: 12px; font-weight: 700; }
.titulo-secao { font-size: 17px; margin: 24px 16px 10px; letter-spacing: -.01em; }
.seguindo-lista { display: flex; gap: 8px; overflow-x: auto; padding: 2px 12px 8px; scrollbar-width: none; }
.seguindo-lista .chip-mercado { flex: none; display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 99px; padding: 6px 14px 6px 6px; font-weight: 700; font-size: 14px; box-shadow: var(--sombra); border: 0; }
.seguindo-lista .chip-mercado .mini-logo { width: 30px; height: 30px; border-radius: 50%; font-size: 15px; }
.historico { list-style: none; margin: 0 12px; padding: 0; background: #fff; border-radius: var(--raio); box-shadow: var(--sombra); overflow: hidden; }
.historico li { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 13px 16px; border-bottom: 1px solid var(--linha); }
.historico li:last-child { border-bottom: 0; }
.historico div { display: grid; } .historico small { color: var(--cinza); font-size: 13px; }
.historico .valores { text-align: right; } .historico .valores small { color: var(--marca-2); font-weight: 700; }
.perfil-acoes { display: grid; gap: 10px; padding: 22px 12px 0; }
.vazio-pequeno { color: var(--cinza); padding: 4px 16px; font-size: 15px; margin: 0; }

/* ---------- boas-vindas: caderninho de lista de compras ---------- */
.boas-vindas {
  --bv-rosa: #ffd9e6; --bv-rosa-2: #ffc2d6; --bv-pink: #ff4f8b; --bv-pink-escuro: #e0306f; --bv-lilas: #e8dcff;
  --bv-tinta: #1d1418; --bv-tinta-2: #5b4a52; --bv-papel: #fffdf6; --bv-pauta: #cfe1f3; --bv-margem: #ff9db4;
  --bv-marca-texto: #fff27a; --bv-lapis: #2b3a8f;
  position: fixed; inset: 0; z-index: 50; overflow-y: auto; color: var(--bv-tinta); display: flex; flex-direction: column;
  background:
    radial-gradient(circle at 1px 1px, rgba(29,20,24,.08) 1.2px, transparent 1.6px) 0 0 / 22px 22px,
    radial-gradient(520px 300px at 110% -5%, var(--bv-lilas), transparent 65%),
    radial-gradient(420px 300px at -10% 55%, #fff1c9, transparent 65%),
    var(--bv-rosa);
}
.bv-palco { position: relative; flex: none; height: 380px; display: grid; place-items: center; margin-top: 12px; }
.bv-brilho { position: absolute; color: var(--bv-pink); font-size: 22px; animation: piscar 2.4s ease-in-out infinite; }
.bv-brilho.b1 { top: 22px; left: calc(50% - 150px); }
.bv-brilho.b2 { top: 60px; right: calc(50% - 160px); font-size: 28px; animation-delay: -.8s; color: #9b7bff; }
.bv-brilho.b3 { bottom: 30px; right: calc(50% - 140px); font-size: 16px; animation-delay: -1.6s; }
@keyframes piscar { 50% { opacity: .25; transform: scale(.8) rotate(20deg); } }

.bv-caderno { position: relative; width: 256px; transform: rotate(-4deg); animation: entrarCaderno .7s cubic-bezier(.2,.9,.3,1.2) both; }
@keyframes entrarCaderno { from { opacity: 0; transform: rotate(-12deg) translateY(30px) scale(.92); } }
.bv-espiral { position: absolute; top: -12px; left: 18px; right: 18px; height: 26px; z-index: 2;
  background: radial-gradient(circle at 50% 70%, #b9b3c4 0 5px, transparent 5.5px) 0 0 / 22px 26px repeat-x,
              radial-gradient(ellipse 4px 11px at 50% 40%, transparent 0 2px, #8d8698 2.5px 3.6px, transparent 4px) 0 0 / 22px 26px repeat-x; }
.bv-folha { position: relative; background: var(--bv-papel); border-radius: 6px 6px 14px 14px; padding: 26px 18px 18px 38px;
  box-shadow: 0 2px 0 #f0e9da, 0 4px 0 #e9e1cf, 0 26px 50px -22px rgba(120,40,70,.45);
  background-image: linear-gradient(90deg, transparent 27px, var(--bv-margem) 27px 29px, transparent 29px),
                    repeating-linear-gradient(transparent 0 25px, var(--bv-pauta) 25px 26px);
  background-position: 0 0, 0 14px; font-family: "Caveat", "Segoe Print", "Comic Sans MS", cursive; color: var(--bv-lapis); }
.bv-data { margin: 0; font-size: 16px; white-space: nowrap; color: var(--bv-tinta-2); line-height: 26px; }
.bv-titulo { margin: 0 0 2px; font-size: 32px; line-height: 34px; font-weight: 700; color: var(--bv-tinta); white-space: nowrap; }
.bv-titulo span { color: var(--bv-pink); }
.bv-itens { list-style: none; margin: 0; padding: 0; }
.bv-itens li { display: flex; align-items: center; gap: 8px; height: 26px; font-size: 21px; position: relative; }
.bv-itens .caixa { width: 15px; height: 15px; border: 2px solid var(--bv-lapis); border-radius: 4px; flex: none; position: relative; }
.bv-itens .nome { flex: 1; min-width: 0; position: relative; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bv-itens .preco { font-weight: 700; color: var(--bv-tinta); }
.bv-itens li.feito .caixa::after { content: ""; position: absolute; left: 2px; top: -6px; width: 6px; height: 13px; border: solid var(--bv-pink);
  border-width: 0 3px 3px 0; transform: rotate(40deg) scale(0); transform-origin: bottom; animation: marcar .3s ease-out forwards;
  animation-delay: calc(.9s + var(--i) * .45s); }
@keyframes marcar { to { transform: rotate(40deg) scale(1); } }
.bv-itens li.feito .nome::after { content: ""; position: absolute; left: 0; top: 54%; height: 2px; width: 0; background: var(--bv-lapis); opacity: .7;
  border-radius: 2px; animation: riscar .35s ease-out forwards; animation-delay: calc(1.05s + var(--i) * .45s); }
@keyframes riscar { to { width: 100%; } }
.bv-soma { display: flex; justify-content: space-between; align-items: baseline; margin-top: 4px; padding-top: 2px; border-top: 2px dashed rgba(43,58,143,.35); font-size: 21px; }
.bv-soma b { font-size: 28px; color: var(--bv-tinta); background: linear-gradient(transparent 55%, var(--bv-marca-texto) 55% 90%, transparent 90%); padding: 0 4px; }
.bv-nota { margin: 6px 0 0; font-size: 22px; color: var(--bv-pink-escuro); font-weight: 700; transform: rotate(-3deg); }

.bv-fita { position: absolute; z-index: 3; width: 74px; height: 22px; opacity: .9; border-radius: 2px;
  background: repeating-linear-gradient(45deg, rgba(255,255,255,.45) 0 6px, transparent 6px 12px), #ffb3cb; box-shadow: 0 2px 4px rgba(0,0,0,.08); }
.bv-fita.f1 { top: 18px; right: -26px; transform: rotate(38deg); }
.bv-fita.f2 { bottom: 34px; left: -28px; transform: rotate(-30deg); background: repeating-linear-gradient(45deg, rgba(255,255,255,.45) 0 6px, transparent 6px 12px), #c9b8ff; }
.bv-adesivo { position: absolute; z-index: 4; display: grid; place-items: center; text-align: center; font-weight: 800; box-shadow: 0 10px 20px -10px rgba(80,20,40,.5);
  animation: colar .45s cubic-bezier(.2,.9,.3,1.4) both; }
@keyframes colar { from { opacity: 0; transform: scale(.4) rotate(-30deg); } }
.bv-adesivo.a1 { width: 84px; height: 84px; top: -18px; left: -44px; color: #fff; background: var(--bv-pink); line-height: 1; transform: rotate(-12deg);
  clip-path: polygon(50% 0, 61% 12%, 77% 6%, 80% 22%, 96% 26%, 89% 41%, 100% 54%, 86% 63%, 89% 80%, 72% 80%, 64% 95%, 50% 86%, 36% 95%, 28% 80%, 11% 80%, 14% 63%, 0 54%, 11% 41%, 4% 26%, 20% 22%, 23% 6%, 39% 12%);
  animation-delay: .5s; }
.bv-adesivo.a1 b { font-size: 21px; } .bv-adesivo.a1 small { font-size: 11px; font-weight: 700; display: block; margin-top: 2px; }
.bv-adesivo.a2 { left: 34px; bottom: -16px; background: #fff; color: var(--bv-lapis); border-radius: 99px; padding: 8px 12px; font-size: 14px; transform: rotate(-6deg); border: 2px solid var(--bv-tinta); animation-delay: .7s; }
.bv-adesivo.a3 { right: -16px; bottom: -14px; width: 46px; height: 46px; border-radius: 50%; background: var(--bv-marca-texto); color: var(--bv-pink); font-size: 26px; transform: rotate(14deg); border: 2px solid var(--bv-tinta); animation-delay: .9s; }

.bv-texto { padding: 6px 22px calc(26px + env(safe-area-inset-bottom)); max-width: 520px; width: 100%; margin: auto auto 0; }
.bv-texto h1 { font-size: 33px; line-height: 1.05; letter-spacing: -.04em; margin: 0 0 16px; text-wrap: balance; }
.bv-texto h1 em { font-style: normal; font-family: "Caveat", cursive; font-size: 1.32em; font-weight: 700; color: var(--bv-pink-escuro); letter-spacing: 0; line-height: .8; }
.bv-lista { list-style: none; padding: 0; margin: 0 0 20px; display: grid; gap: 8px; }
.bv-lista li { display: flex; gap: 12px; align-items: center; font-weight: 600; color: var(--bv-tinta-2); }
.bv-lista i { font-style: normal; width: 34px; height: 34px; border-radius: 11px; background: rgba(255,255,255,.7); border: 1.5px solid rgba(29,20,24,.08); display: grid; place-items: center; flex: none; }
.bv-btn-principal { background: var(--bv-tinta); color: #fff; border-radius: 99px; padding: 16px; font-size: 17px; box-shadow: 0 6px 0 var(--bv-pink), 0 18px 30px -14px rgba(224,48,111,.6); }
.bv-btn-principal:active { transform: translateY(3px); box-shadow: 0 3px 0 var(--bv-pink); }
.bv-duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; }
.bv-btn-leve { background: rgba(255,255,255,.75); color: var(--bv-tinta); border: 1.5px solid rgba(29,20,24,.12); border-radius: 99px; font-size: 15px; padding: 12px 8px; }
.bv-pular { display: block; margin: 12px auto 0; border: 0; background: none; color: var(--bv-tinta-2); font-weight: 700; padding: 8px; text-decoration: underline; text-underline-offset: 3px; }

/* ---------- apresentação: arrastar para o lado ---------- */
.boas-vindas { overflow: hidden; }
.ap-topo { position: absolute; top: 0; left: 0; right: 0; z-index: 3; display: flex; align-items: center; justify-content: space-between;
  padding: calc(14px + env(safe-area-inset-top)) 16px 0; pointer-events: none; }
.ap-topo > * { pointer-events: auto; }
.ap-pontos { display: flex; gap: 6px; }
.ap-pontos button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 99px; background: rgba(29,20,24,.18); transition: width .3s, background .3s; }
.ap-pontos button.ativo { width: 24px; background: var(--bv-pink); }
.ap-pular { border: 0; background: rgba(255,255,255,.7); color: var(--bv-tinta-2); font-weight: 800; font-size: 14px; padding: 7px 14px; border-radius: 99px; }
.ap-trilho { flex: 1; min-height: 0; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth;
  scrollbar-width: none; overscroll-behavior-x: contain; }
.ap-trilho::-webkit-scrollbar { display: none; }
.ap-slide { flex: 0 0 100%; scroll-snap-align: center; scroll-snap-stop: always; overflow-y: auto; display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: calc(56px + env(safe-area-inset-top)) 24px 16px; position: relative; }
.ap-slide[data-cor="rosa"] { --ap-fundo: #ffd9e6; --ap-forte: #ff4f8b; }
.ap-slide[data-cor="amarelo"] { --ap-fundo: #fff3c4; --ap-forte: #f59e0b; }
.ap-slide[data-cor="menta"] { --ap-fundo: #d7f7ea; --ap-forte: #10b981; }
.ap-slide[data-cor="lilas"] { --ap-fundo: #ece2ff; --ap-forte: #9b5cf6; }
.ap-slide[data-cor="pessego"] { --ap-fundo: #ffe2d3; --ap-forte: #fb7185; }
.ap-slide { background: radial-gradient(circle at 1px 1px, rgba(29,20,24,.07) 1.2px, transparent 1.6px) 0 0 / 22px 22px,
  radial-gradient(360px 260px at 50% 22%, rgba(255,255,255,.75), transparent 70%), var(--ap-fundo); }
.ap-arte { position: relative; width: 100%; max-width: 340px; height: min(300px, 40vh); flex: none; display: grid; place-items: center; margin-bottom: 10px; }
.ap-slide:first-child .ap-arte, .ap-slide.final .ap-arte { height: min(190px, 26vh); }
.ap-eyebrow { margin: 0 0 4px; font-family: "Caveat", cursive; font-size: 24px; font-weight: 700; color: var(--ap-forte); transform: rotate(-2deg); }
.ap-titulo { margin: 0 0 10px; font-size: clamp(28px, 8vw, 36px); line-height: 1.05; letter-spacing: -.04em; color: var(--bv-tinta); text-wrap: balance; }
.ap-texto { margin: 0 auto; max-width: 340px; color: var(--bv-tinta-2); font-size: 16px; line-height: 1.45; font-weight: 500; text-wrap: pretty; }
.ap-titulo em { font-style: normal; font-family: "Caveat", cursive; font-size: 1.3em; color: var(--bv-pink-escuro); letter-spacing: 0; background: linear-gradient(transparent 62%, var(--bv-marca-texto) 62% 88%, transparent 88%); padding: 0 4px; }
.ap-slide.visto .ap-arte > * { animation: pular .6s cubic-bezier(.2,.9,.3,1.4) both; }
@keyframes pular { from { opacity: 0; transform: scale(.6) translateY(20px); } }

.ap-adesivo { position: absolute; font-size: 32px; animation: flutuar 3.2s ease-in-out infinite; filter: drop-shadow(0 6px 8px rgba(80,20,40,.18)); }
.ap-adesivo.r1 { top: 6%; left: 8%; } .ap-adesivo.r2 { top: 14%; right: 6%; animation-delay: -1s; font-size: 38px; } .ap-adesivo.r3 { bottom: 8%; left: 16%; animation-delay: -2s; }
@keyframes flutuar { 50% { transform: translateY(-10px) rotate(8deg); } }
.ap-coroa { font-size: 96px; animation: flutuar 3s ease-in-out infinite; filter: drop-shadow(0 12px 16px rgba(224,48,111,.3)); }
.ap-coroa.grande { font-size: 110px; }

.ap-opcoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 20px; max-width: 360px; }
.ap-opcoes button { border: 2px solid var(--bv-tinta); background: #fff; color: var(--bv-tinta); font-weight: 800; font-size: 15px; padding: 10px 14px; border-radius: 99px;
  box-shadow: 0 3px 0 var(--bv-tinta); transition: transform .1s; }
.ap-opcoes button:nth-child(odd) { transform: rotate(-1.5deg); } .ap-opcoes button:nth-child(even) { transform: rotate(1.5deg); }
.ap-opcoes button:active { transform: translateY(3px); box-shadow: none; background: var(--bv-rosa-2); }

/* listinha */
.ap-lista { position: relative; width: 280px; transform: rotate(-3deg); background: var(--bv-papel); border-radius: 8px 8px 16px 16px; padding: 18px 16px 14px 34px; text-align: left;
  font-family: "Caveat", cursive; color: var(--bv-lapis); box-shadow: 0 2px 0 #f0e9da, 0 4px 0 #e9e1cf, 0 24px 40px -20px rgba(120,60,20,.45);
  background-image: linear-gradient(90deg, transparent 23px, var(--bv-margem) 23px 25px, transparent 25px), repeating-linear-gradient(transparent 0 31px, var(--bv-pauta) 31px 32px);
  background-position: 0 0, 0 12px; }
.ap-lista-titulo { margin: 0; font-size: 26px; font-weight: 700; color: var(--bv-tinta); line-height: 32px; }
.ap-item { display: flex; align-items: center; gap: 8px; width: 100%; height: 32px; border: 0; background: none; padding: 0; font: inherit; font-size: 21px; white-space: nowrap; color: inherit; text-align: left; }
.ap-item i { width: 16px; height: 16px; border: 2px solid var(--bv-lapis); border-radius: 4px; flex: none; position: relative; }
.ap-item b { margin-left: auto; color: var(--bv-tinta); }
.ap-item.feito { text-decoration: line-through; text-decoration-color: var(--bv-pink); text-decoration-thickness: 2px; }
.ap-item.feito i::after { content: ""; position: absolute; left: 3px; top: -7px; width: 6px; height: 14px; border: solid var(--bv-pink); border-width: 0 3px 3px 0; transform: rotate(40deg); animation: marcar2 .25s ease-out; }
@keyframes marcar2 { from { transform: rotate(40deg) scale(0); } }
.ap-soma { display: flex; justify-content: space-between; align-items: baseline; border-top: 2px dashed rgba(43,58,143,.35); margin-top: 4px; font-size: 22px; }
.ap-soma b { font-size: 30px; color: var(--bv-tinta); background: linear-gradient(transparent 55%, var(--bv-marca-texto) 55% 90%, transparent 90%); padding: 0 4px; }
.ap-soma b.pulo { animation: pulo .35s; }
@keyframes pulo { 50% { transform: scale(1.25); } }

/* dodói */
.ap-dodoi { position: relative; width: 170px; height: 170px; border-radius: 50%; border: 4px solid #fff; background: radial-gradient(circle at 35% 30%, #fff, #bff0dc);
  box-shadow: 0 20px 40px -18px rgba(16,120,90,.55); display: grid; place-items: center; transition: transform .15s; }
.ap-dodoi:active { transform: scale(.94); }
.ap-rosto { font-size: 92px; line-height: 1; }
.ap-curativo { position: absolute; top: 22px; right: 26px; font-size: 34px; transform: rotate(20deg); transition: opacity .3s; }
.ap-dodoi.curada .ap-curativo { opacity: 0; }
.ap-coracao { position: absolute; font-size: 26px; pointer-events: none; animation: subirCoracao 1.1s ease-out forwards; }
@keyframes subirCoracao { to { transform: translateY(-120px) scale(1.4); opacity: 0; } }

/* mapa */
.ap-mapa { position: relative; width: 250px; height: 210px; border-radius: 28px; border: 4px solid #fff; transform: rotate(2deg);
  background: linear-gradient(90deg, transparent 46%, #fff 46% 54%, transparent 54%), linear-gradient(transparent 58%, #fff 58% 65%, transparent 65%),
  linear-gradient(35deg, transparent 30%, rgba(255,255,255,.8) 30% 34%, transparent 34%), #d9ccff; box-shadow: 0 22px 40px -20px rgba(90,50,180,.55); }
.ap-pino { position: absolute; font-size: 34px; animation: quicar 1.6s ease-in-out infinite; }
.ap-pino.p1 { top: 14%; left: 14%; } .ap-pino.p2 { top: 24%; right: 12%; animation-delay: -.5s; } .ap-pino.p3 { bottom: 10%; left: 56%; animation-delay: -1s; }
@keyframes quicar { 50% { transform: translateY(-8px); } }
.ap-voce { position: absolute; left: calc(50% - 22px); top: calc(61% - 22px); width: 44px; height: 44px; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 24px;
  box-shadow: 0 0 0 8px rgba(155,92,246,.25); animation: radar 1.8s ease-out infinite; }
@keyframes radar { 50% { box-shadow: 0 0 0 16px rgba(155,92,246,.08); } }
.ap-selo { position: absolute; top: 6%; right: 8%; width: 76px; height: 76px; display: grid; place-items: center; font-weight: 900; font-size: 20px; color: #fff; background: var(--bv-pink);
  transform: rotate(12deg); clip-path: polygon(50% 0, 61% 12%, 77% 6%, 80% 22%, 96% 26%, 89% 41%, 100% 54%, 86% 63%, 89% 80%, 72% 80%, 64% 95%, 50% 86%, 36% 95%, 28% 80%, 11% 80%, 14% 63%, 0 54%, 11% 41%, 4% 26%, 20% 22%, 23% 6%, 39% 12%); }

/* agenda */
.ap-agenda { width: 270px; background: #fff; border-radius: 24px; padding: 18px 16px; box-shadow: 0 22px 40px -20px rgba(200,70,90,.5); transform: rotate(-2deg); }
.ap-agenda > p:first-child { margin: 0 0 12px; font-weight: 800; color: var(--bv-tinta); }
.ap-horas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.ap-horas button { border: 2px solid #ffc7b0; background: #fff6f1; color: var(--bv-tinta); font-weight: 800; font-size: 17px; padding: 12px 0; border-radius: 14px; transition: transform .15s; }
.ap-horas button.sel { background: var(--bv-pink); border-color: var(--bv-pink); color: #fff; transform: scale(1.06) rotate(-2deg); }
.ap-marcado { margin: 12px 0 0; font-family: "Caveat", cursive; font-size: 28px; font-weight: 700; color: var(--bv-pink-escuro); animation: pular .5s cubic-bezier(.2,.9,.3,1.4); }

/* barriga */
.ap-barriga { width: 190px; height: 190px; border-radius: 50%; border: 4px solid #fff; background: radial-gradient(circle at 40% 35%, #fff4f8, #ffb8cf);
  box-shadow: 0 22px 40px -18px rgba(224,48,111,.5); display: grid; place-items: center; align-content: center; gap: 2px; transition: transform .15s; }
.ap-barriga:active { transform: scale(.94); }
.ap-fruta { font-size: 64px; line-height: 1; display: inline-block; transition: font-size .3s; }
.ap-fruta.troca { animation: pular .45s cubic-bezier(.2,.9,.3,1.4); }
.ap-barriga small { font-weight: 800; color: var(--bv-pink-escuro); font-size: 15px; }

/* menstruação */
.ap-anel { position: relative; width: 176px; height: 176px; padding: 0; border: 4px solid #fff; border-radius: 50%; display: grid; place-items: center; --ap-giro: 0deg;
  background: conic-gradient(#ff4f8b 0 18%, #ffc2d6 18% 39%, #9b5cf6 39% 57%, #d9c7ff 57% 82%, #ffb3cb 82% 100%); box-shadow: 0 22px 40px -18px rgba(120,60,200,.5); margin-top: -34px; }
.ap-anel:active { transform: scale(.95); }
.ap-ponteiro { position: absolute; inset: -12px; transform: rotate(var(--ap-giro)); transition: transform .45s cubic-bezier(.2,.9,.3,1.2); pointer-events: none; }
.ap-ponteiro::before { content: "💗"; position: absolute; top: -6px; left: calc(50% - 13px); font-size: 22px; }
.ap-anel > div { width: 122px; height: 122px; border-radius: 50%; background: #fff; display: grid; place-content: center; transition: background .3s; }
.ap-anel.menstruada > div { background: #fff0f5; }
.ap-anel b { font-size: 46px; line-height: 1; color: var(--bv-tinta); } .ap-anel small { color: var(--bv-tinta-2); font-weight: 700; font-size: 13px; }
.ap-fase { position: absolute; bottom: 0; left: 0; right: 0; margin: 0; display: grid; gap: 2px; }
.ap-fase b { justify-self: center; background: #fff; border-radius: 99px; padding: 6px 14px; font-size: 16px; color: var(--bv-pink-escuro); box-shadow: 0 6px 14px -8px rgba(120,60,200,.5); }
.ap-fase small { font-family: "Caveat", cursive; font-size: 21px; font-weight: 700; color: var(--bv-tinta-2); }

/* amigas */
.ap-amigas { display: flex; }
.ap-amigas span { width: 74px; height: 74px; margin-left: -16px; border-radius: 50%; border: 4px solid #fff; display: grid; place-items: center; font-size: 36px;
  box-shadow: 0 12px 20px -12px rgba(0,0,0,.35); animation: flutuar 3s ease-in-out infinite; }
.ap-amigas span:nth-child(1) { background: #ffd9e6; margin-left: 0; } .ap-amigas span:nth-child(2) { background: #fff3c4; animation-delay: -.7s; }
.ap-amigas span:nth-child(3) { background: #ece2ff; animation-delay: -1.4s; } .ap-amigas span:nth-child(4) { background: #ffe2d3; animation-delay: -2.1s; }
.ap-codigo { position: absolute; bottom: 14%; background: #fff; border: 2px dashed var(--bv-tinta); border-radius: 14px; padding: 8px 18px; font-weight: 900; letter-spacing: .2em; font-size: 22px; transform: rotate(-3deg); }

.ap-botoes { width: 100%; max-width: 360px; margin-top: 20px; }
.ap-rodape { flex: none; display: flex; gap: 10px; align-items: center; padding: 10px 20px calc(16px + env(safe-area-inset-bottom)); background: transparent;
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; justify-content: center; }
.ap-rodape .ap-proximo { flex: 1; max-width: 320px; }
.ap-voltar { width: 54px; height: 54px; flex: none; border-radius: 50%; border: 2px solid var(--bv-tinta); background: #fff; color: var(--bv-tinta); font-size: 28px; font-weight: 800; line-height: 1; }
.ap-voltar[disabled] { visibility: hidden; }
.ap-rodape.some { display: none; }
.ap-slide:not(.final) { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
@media (prefers-reduced-motion: reduce) { .ap-trilho { scroll-behavior: auto; } .ap-slide *, .ap-slide { animation: none !important; } }

/* ---------- bloquinho de anotações ---------- */
[data-papel="rosa"] { --papel-nota: #ffe3ee; --papel-linha: #ffc2d6; }
[data-papel="amarelo"] { --papel-nota: #fff6c9; --papel-linha: #f5e08a; }
[data-papel="lilas"] { --papel-nota: #efe6ff; --papel-linha: #d6c4ff; }
[data-papel="menta"] { --papel-nota: #ddf8ec; --papel-linha: #b4ebd3; }
[data-papel="pessego"] { --papel-nota: #ffe7da; --papel-linha: #ffc9ad; }
.notas-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 0 16px 12px; }
.notas-topo h2 { margin: 0; font-family: "Caveat", cursive; font-size: 32px; color: var(--marca); line-height: 1; }
.notas-topo p { margin: 4px 0 0; color: var(--cinza); font-size: 14px; }
.notas-topo .btn { flex: none; border-radius: 99px; padding: 10px 18px; }
.notas-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 12px; padding: 6px 16px 20px; align-items: start; }
.nota-card { position: relative; min-height: 130px; padding: 16px 12px 10px; border-radius: 4px 4px 14px 4px; transform: rotate(var(--giro)); cursor: pointer;
  background: repeating-linear-gradient(transparent 0 23px, var(--papel-linha) 23px 24px) 0 38px / 100% calc(100% - 52px) no-repeat, var(--papel-nota);
  box-shadow: 0 1px 0 rgba(0,0,0,.04), 0 14px 22px -14px rgba(120,40,70,.45); font-family: "Caveat", cursive; color: #3b2a33; transition: transform .15s; }
.nota-card:active { transform: rotate(0) scale(.97); }
.nota-card .bv-fita.f1 { top: -8px; right: auto; left: calc(50% - 37px); transform: rotate(-4deg); width: 74px; }
.nota-card h3 { margin: 0 0 2px; font-size: 24px; line-height: 1.1; color: var(--marca-escura); overflow-wrap: anywhere; }
.nota-linhas { font-size: 20px; line-height: 24px; max-height: 192px; overflow: hidden; overflow-wrap: anywhere; }
.nota-linhas .nl { display: block; }
.nota-linhas .item { display: flex; gap: 6px; align-items: center; width: 100%; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; }
.nota-linhas .item i { width: 14px; height: 14px; flex: none; border: 2px solid currentColor; border-radius: 4px; position: relative; }
.nota-linhas .item.feito { text-decoration: line-through; text-decoration-color: var(--marca); opacity: .65; }
.nota-linhas .item.feito i::after { content: ""; position: absolute; left: 3px; top: -6px; width: 5px; height: 12px; border: solid var(--marca); border-width: 0 3px 3px 0; transform: rotate(40deg); }
.nota-card small { display: block; text-align: right; font-size: 16px; color: rgba(59,42,51,.55); margin-top: 4px; }
.nota-adesivo { position: absolute; right: -8px; top: -12px; font-size: 30px; transform: rotate(14deg); filter: drop-shadow(0 4px 4px rgba(0,0,0,.15)); }
.notas-vazio { padding: 10px 24px 30px; text-align: center; color: var(--cinza); }
.nota-exemplo { position: relative; width: 210px; margin: 14px auto 18px; padding: 18px 16px 12px; text-align: left; transform: rotate(-3deg); border-radius: 4px 4px 14px 4px;
  background: repeating-linear-gradient(transparent 0 25px, #f5e08a 25px 26px) 0 40px / 100% 100% no-repeat, #fff6c9; font-family: "Caveat", cursive; color: #3b2a33;
  box-shadow: 0 16px 24px -14px rgba(120,80,20,.45); }
.nota-exemplo b { font-size: 26px; color: var(--marca); } .nota-exemplo p { margin: 0; font-size: 21px; line-height: 26px; }

.janela-nota { position: fixed; inset: 0; z-index: 60; background: rgba(40,10,25,.45); display: grid; place-items: end center; padding: 12px 12px calc(12px + env(safe-area-inset-bottom));
  animation: aparecer .2s; backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.nota-folha { position: relative; width: 100%; max-width: 460px; max-height: calc(100dvh - 40px); overflow-y: auto; border-radius: 10px 10px 22px 22px; padding: 30px 16px 14px;
  background: var(--papel-nota); box-shadow: 0 30px 60px -20px rgba(80,20,40,.6); animation: subirFolha .3s cubic-bezier(.2,.9,.3,1.1); transition: background .25s; }
.nota-espiral { position: absolute; top: 6px; left: 20px; right: 20px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #fff 0 4px, rgba(0,0,0,.18) 4.5px 5.5px, transparent 6px) 0 0 / 22px 16px repeat-x; }
.nota-titulo { width: 100%; border: 0; background: none; font-family: "Caveat", cursive; font-size: 30px; font-weight: 700; color: var(--marca-escura); padding: 4px 2px; outline: none; }
.nota-texto { width: 100%; min-height: 230px; resize: vertical; border: 0; outline: none; padding: 0 2px; font-family: "Caveat", cursive; font-size: 23px; line-height: 30px; color: #3b2a33;
  background: repeating-linear-gradient(transparent 0 29px, var(--papel-linha) 29px 30px); background-attachment: local; }
.nota-titulo::placeholder, .nota-texto::placeholder { color: rgba(59,42,51,.38); }
.nota-ferramentas { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: 10px; }
.nota-papeis { display: flex; gap: 8px; }
.nota-papeis button { width: 30px; height: 30px; border-radius: 50%; border: 2px solid rgba(0,0,0,.12); background: var(--papel-nota); padding: 0; }
.nota-papeis button[data-papel="rosa"] { --papel-nota: #ffc2d6; } .nota-papeis button[data-papel="amarelo"] { --papel-nota: #ffe680; }
.nota-papeis button[data-papel="lilas"] { --papel-nota: #d6c4ff; } .nota-papeis button[data-papel="menta"] { --papel-nota: #a9ebce; } .nota-papeis button[data-papel="pessego"] { --papel-nota: #ffc4a6; }
.nota-papeis button.sel { border: 3px solid var(--tinta); transform: scale(1.12); }
.nota-mini { border: 1.5px solid rgba(0,0,0,.15); background: rgba(255,255,255,.7); border-radius: 99px; padding: 7px 12px; font-weight: 800; color: var(--tinta); }
.nota-adesivos { display: flex; gap: 4px; flex-wrap: wrap; margin-top: 10px; }
.nota-adesivos button { width: 38px; height: 38px; border: 0; border-radius: 12px; background: rgba(255,255,255,.55); font-size: 20px; padding: 0; }
.nota-adesivos button.sel { background: #fff; box-shadow: 0 0 0 2px var(--marca); transform: scale(1.1) rotate(-6deg); }
.nota-acoes { display: flex; gap: 8px; align-items: center; margin-top: 14px; }
.nota-acoes .btn-texto { margin-right: auto; }
.nota-acoes .btn { border-radius: 99px; padding: 11px 18px; }

/* apresentação: papeizinhos */
.ap-notas { position: relative; width: 300px; height: 250px; }
.ap-nota { position: absolute; width: 150px; min-height: 130px; border: 0; padding: 16px 12px; text-align: left; font-family: "Caveat", cursive; color: #3b2a33; border-radius: 4px 4px 14px 4px;
  box-shadow: 0 16px 24px -14px rgba(120,60,30,.5); transition: transform .3s cubic-bezier(.2,.9,.3,1.4); }
.ap-nota b { display: block; font-size: 24px; color: var(--bv-pink-escuro); } .ap-nota small { font-size: 19px; line-height: 1.2; display: block; }
.ap-nota.n1 { left: 6px; top: 20px; background: #ffe3ee; transform: rotate(-7deg); }
.ap-nota.n2 { right: 4px; top: 0; background: #efe6ff; transform: rotate(6deg); }
.ap-nota.n3 { left: 76px; bottom: 0; background: #ddf8ec; transform: rotate(-2deg); z-index: 1; }
.ap-nota .bv-fita.f1 { top: -10px; right: auto; left: 38px; transform: rotate(-6deg); }
.ap-nota.pra-cima { transform: translateY(-16px) rotate(0) scale(1.08); z-index: 2; }

/* ---------- pontinhos e prêmios ---------- */
.faixa-pontos { display: flex; align-items: center; gap: 12px; width: calc(100% - 24px); margin: 0 12px 12px; padding: 12px 14px; text-align: left;
  border: 2px dashed var(--marca-2); border-radius: 18px; background: linear-gradient(120deg, #fff6c9, #ffe3ee); color: var(--tinta); font: inherit; cursor: pointer; }
.faixa-pontos .fp-ic { font-size: 30px; transform: rotate(-8deg); animation: flutuar 3s ease-in-out infinite; }
.faixa-pontos div { flex: 1; min-width: 0; } .faixa-pontos b { display: block; font-size: 15px; } .faixa-pontos small { color: var(--cinza); font-weight: 600; }
.faixa-pontos i { font-style: normal; font-size: 26px; color: var(--marca); font-weight: 800; }
#perfil-fora .faixa-pontos { width: 100%; margin: 0 0 12px; }
.pontos-resumo { display: block; width: calc(100% - 24px); margin: 0 12px 6px; text-align: left; font: inherit; color: var(--tinta); cursor: pointer;
  background: linear-gradient(135deg, #fff, #fff0f6); border: 2px solid var(--pastel-1, #ffd9e6); }
.pr-topo { display: flex; align-items: center; gap: 12px; }
.pr-topo div { flex: 1; } .pr-topo small { color: var(--marca); font-weight: 800; } .pr-topo b { display: block; font-size: 22px; letter-spacing: -.02em; }
.pr-topo i { font-style: normal; font-size: 26px; color: var(--marca); font-weight: 800; }
.pr-emoji { width: 48px; height: 48px; border-radius: 16px; background: var(--acento); display: grid; place-items: center; font-size: 26px; transform: rotate(-6deg); }
.pr-barra, .pt-barra, .ap-meta { height: 10px; border-radius: 99px; background: #f6e4ec; overflow: hidden; margin: 12px 0 6px; }
.pr-barra i, .pt-barra i, .ap-meta i { display: block; height: 100%; width: 0; border-radius: inherit; background: linear-gradient(90deg, var(--marca-2), var(--marca)); transition: width .5s cubic-bezier(.2,.9,.3,1.1); }
.pontos-resumo > small { color: var(--cinza); font-weight: 600; }

.folha.pontos { max-height: 92dvh; overflow-y: auto; position: relative; padding-bottom: calc(26px + env(safe-area-inset-bottom)); }
.pt-fechar { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--papel); font-size: 16px; font-weight: 800; color: var(--tinta); z-index: 2; }
.pt-heroi { position: relative; text-align: center; padding: 18px 12px 16px; margin: 4px 0 12px; border-radius: 24px; overflow: hidden;
  background: radial-gradient(circle at 1px 1px, rgba(29,20,24,.07) 1.2px, transparent 1.6px) 0 0 / 20px 20px, linear-gradient(160deg, #ffd9e6, #ece2ff); }
.pt-heroi small { font-weight: 800; color: var(--marca-escura); background: #fff; padding: 5px 12px; border-radius: 99px; }
.pt-saldo { margin: 10px 0 2px; } .pt-saldo b { display: block; font-size: 64px; line-height: 1; letter-spacing: -.05em; color: var(--marca); }
.pt-saldo span { font-family: "Caveat", cursive; font-size: 26px; font-weight: 700; color: var(--tinta); }
.pt-heroi p { margin: 6px 0 0; font-weight: 700; color: var(--tinta); font-size: 15px; }
.pt-brilho { position: absolute; font-size: 22px; animation: flutuar 3s ease-in-out infinite; }
.pt-brilho.b1 { top: 14px; left: 18px; } .pt-brilho.b2 { top: 26px; right: 22px; animation-delay: -1s; } .pt-brilho.b3 { bottom: 16px; left: 30px; animation-delay: -2s; }
.pt-fora { text-align: center; } .pt-fora p { font-weight: 600; }
.pt-inaug { background: #fff6c9; border: 2px dashed #f5c84b; border-radius: 18px; padding: 12px 14px; margin-bottom: 12px; transform: rotate(-.6deg); }
.pt-inaug b { display: block; font-size: 16px; } .pt-inaug span { display: block; font-weight: 800; color: var(--marca); margin-top: 2px; } .pt-inaug p { margin: 4px 0 0; color: var(--tinta-2, #5b4a52); }
.pt-acoes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pt-acoes .btn { padding: 14px 8px; font-size: 15px; border-radius: 16px; }
.pt-pend { margin: 10px 0 0; text-align: center; font-weight: 700; color: var(--marca-escura); background: var(--marca-clara); border-radius: 12px; padding: 8px; }
.pt-como { margin-top: 14px; padding: 14px 16px 14px 34px; border-radius: 6px 6px 16px 16px; position: relative; font-family: "Caveat", cursive; color: #2b3a8f;
  background: linear-gradient(90deg, transparent 22px, #ff9db4 22px 24px, transparent 24px), repeating-linear-gradient(transparent 0 27px, #cfe1f3 27px 28px), #fffdf6;
  box-shadow: 0 14px 24px -16px rgba(120,40,70,.45); transform: rotate(.6deg); }
.pt-como h4 { margin: 0; font-size: 26px; color: var(--marca); line-height: 28px; }
.pt-como ol { margin: 0; padding-left: 18px; font-size: 21px; line-height: 28px; } .pt-como b { color: #1d1418; }
.pt-titulo { margin: 22px 0 10px; font-size: 18px; }
.pt-premios { display: grid; gap: 10px; }
.pt-premio { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 18px; background: var(--papel); border: 2px solid transparent; }
.pt-premio.pode { background: #fff6c9; border-color: #f5c84b; }
.pt-premio.esgotado { opacity: .5; }
.pt-premio-ic { width: 52px; height: 52px; flex: none; border-radius: 16px; background: #fff; display: grid; place-items: center; font-size: 28px; box-shadow: 0 6px 12px -8px rgba(0,0,0,.3); }
.pt-premio div { flex: 1; min-width: 0; } .pt-premio b { display: block; } .pt-premio small { color: var(--cinza); font-weight: 600; }
.pt-premio .pt-barra { margin: 6px 0 0; height: 7px; }
.pt-premio em { font-style: normal; font-weight: 900; color: var(--marca); font-size: 18px; }
.pt-regras, .pt-ranking, .pt-historico { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.pt-regras li, .pt-historico li { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border-radius: 14px; background: var(--papel); }
.pt-regras li > span { font-size: 22px; } .pt-regras div, .pt-historico div { flex: 1; min-width: 0; }
.pt-regras b, .pt-historico b { display: block; font-size: 14px; } .pt-regras small, .pt-historico small { color: var(--cinza); font-size: 12px; font-weight: 600; }
.pt-regras em, .pt-historico em { font-style: normal; font-weight: 900; color: var(--marca); }
.pt-historico em.neg { color: var(--cinza); }
.pt-ranking li { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: 14px; background: var(--papel); }
.pt-ranking li.eu { background: var(--marca-clara); box-shadow: 0 0 0 2px var(--marca) inset; }
.pt-ranking .pos { width: 28px; text-align: center; font-weight: 900; } .pt-ranking .av { font-size: 22px; } .pt-ranking b { flex: 1; } .pt-ranking em { font-style: normal; font-weight: 900; color: var(--marca); }

.folha.nota-foto h3 { text-align: center; margin: 6px 0 4px; }
.nf-foto { display: grid; place-items: center; min-height: 150px; margin: 10px 0 12px; border: 2px dashed var(--marca-2); border-radius: 18px; background: #fff6fa;
  color: var(--marca); font-weight: 800; cursor: pointer; overflow: hidden; position: relative; }
.nf-foto input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.nf-foto img { width: 100%; max-height: 260px; object-fit: contain; }

.festa-pontos { position: fixed; left: 50%; top: 42%; z-index: 90; transform: translate(-50%, -50%); text-align: center; pointer-events: none; animation: festa 1.9s ease-out forwards; }
.festa-pontos b { display: block; font-size: 72px; font-weight: 900; color: #fff; -webkit-text-stroke: 3px var(--marca); text-shadow: 0 8px 0 var(--marca), 0 20px 30px rgba(224,48,111,.4); letter-spacing: -.04em; }
.festa-pontos small { font-family: "Caveat", cursive; font-size: 32px; font-weight: 700; color: var(--marca); background: #fff; padding: 0 12px; border-radius: 99px; }
.festa-pontos i { position: absolute; left: 50%; top: 40%; font-style: normal; font-size: 24px; animation: estourar 1.2s ease-out var(--d) both; }
@keyframes festa { 0% { opacity: 0; transform: translate(-50%, -50%) scale(.4); } 15% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 25% { transform: translate(-50%, -50%) scale(1); } 80% { opacity: 1; } 100% { opacity: 0; transform: translate(-50%, -80%) scale(1); } }
@keyframes estourar { from { transform: rotate(var(--a)) translateY(0) scale(.4); opacity: 1; } to { transform: rotate(var(--a)) translateY(-130px) scale(1.1); opacity: 0; } }

/* apresentação: pontinhos */
.ap-pontos-arte { position: relative; width: 280px; height: 250px; }
.ap-cupom { position: absolute; left: 10px; top: 10px; width: 120px; padding: 14px 10px 18px; background: #fff; transform: rotate(-8deg); text-align: center;
  box-shadow: 0 16px 24px -14px rgba(120,60,30,.5); clip-path: polygon(0 0, 100% 0, 100% 94%, 90% 100%, 80% 94%, 70% 100%, 60% 94%, 50% 100%, 40% 94%, 30% 100%, 20% 94%, 10% 100%, 0 94%); }
.ap-cupom span { font-size: 30px; display: block; } .ap-cupom small { font-weight: 900; font-size: 10px; letter-spacing: .1em; color: var(--bv-tinta-2); }
.ap-qr { display: block; width: 58px; height: 58px; margin: 8px auto 0; background:
  conic-gradient(from 90deg at 30% 30%, #1d1418 25%, transparent 0) 0 0 / 12px 12px, repeating-linear-gradient(45deg, #1d1418 0 3px, transparent 3px 7px); border: 4px solid #1d1418; border-radius: 4px; }
.ap-presente { position: absolute; right: 18px; top: 34px; width: 120px; height: 120px; border-radius: 50%; border: 4px solid #fff; font-size: 64px;
  background: radial-gradient(circle at 40% 35%, #fff, #ffd0b8); box-shadow: 0 20px 34px -16px rgba(200,70,90,.6); animation: flutuar 3s ease-in-out infinite; }
.ap-presente.pulo { animation: pulo .35s; }
.ap-placar { position: absolute; left: 0; right: 0; bottom: 34px; text-align: center; font-family: "Caveat", cursive; font-size: 26px; font-weight: 700; color: var(--bv-tinta); }
.ap-placar b { font-family: "Plus Jakarta Sans", sans-serif; font-size: 34px; color: var(--bv-pink); }
.ap-meta { position: absolute; left: 30px; right: 30px; bottom: 10px; background: rgba(255,255,255,.8); }

/* ---------- abas ---------- */
.abas { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10; display: flex; justify-content: center; background: rgba(255,255,255,.94);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 1px solid var(--linha); padding-bottom: env(safe-area-inset-bottom); }
.abas button { flex: 1; max-width: 150px; height: var(--abas); border: 0; background: none; color: var(--cinza-2); font-size: 12px; font-weight: 700;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; position: relative; }
.abas button svg { width: 24px; height: 24px; transition: transform .2s; }
.abas button.ativo { color: var(--marca); }
.abas button.ativo svg { transform: translateY(-1px); stroke-width: 2.3; }
.abas button.ativo::before { content: ""; position: absolute; top: 0; width: 28px; height: 3px; border-radius: 0 0 3px 3px; background: var(--marca); }
.badge { position: absolute; top: 9px; left: calc(50% + 6px); min-width: 19px; height: 19px; border-radius: 99px; background: var(--oferta); color: #fff;
  font-style: normal; font-size: 11px; font-weight: 800; display: grid; place-items: center; padding: 0 5px; border: 2px solid #fff; }

/* ---------- scanner e folhas ---------- */
.sobreposicao { position: fixed; inset: 0; z-index: 30; background: color-mix(in srgb, var(--tinta) 55%, transparent); backdrop-filter: blur(3px); display: flex; align-items: flex-end; justify-content: center; animation: aparecer .2s; }
@keyframes aparecer { from { opacity: 0; } }
.sobreposicao.escura { background: var(--noite); flex-direction: column; justify-content: flex-start; align-items: stretch; }
.scanner-topo { display: flex; justify-content: space-between; align-items: center; color: #fff; padding: 14px 16px; }
#leitor { width: 100%; max-width: 600px; margin: 0 auto; } #leitor video { border-radius: 14px; }
.scanner-erro { color: #fff; background: color-mix(in srgb, var(--oferta) 35%, black); margin: 16px; padding: 14px; border-radius: 14px; line-height: 1.45; }
.digitar { display: flex; gap: 8px; padding: 16px; max-width: 600px; margin: auto auto 0; width: 100%; padding-bottom: calc(16px + env(safe-area-inset-bottom)); }
.digitar input { flex: 1; min-width: 0; font: inherit; font-size: 19px; padding: 14px; border-radius: 14px; border: 0; }
.folha { background: #fff; width: 100%; max-width: 600px; border-radius: 28px 28px 0 0; padding: 10px 18px calc(18px + env(safe-area-inset-bottom));
  display: grid; gap: 14px; max-height: 92vh; overflow: auto; animation: subirFolha .28s cubic-bezier(.2,.8,.2,1); }
@keyframes subirFolha { from { transform: translateY(40px); opacity: .4; } }
.alca { width: 44px; height: 5px; border-radius: 99px; background: var(--linha); margin: 0 auto 4px; }
.folha h3 { margin: 0; font-size: 21px; text-align: center; letter-spacing: -.02em; }
.folha label { display: grid; gap: 6px; font-weight: 700; font-size: 14px; }
.folha label > input { font: inherit; font-size: 18px; padding: 12px 14px; border: 1.5px solid var(--linha); border-radius: 14px; outline: 0; }
.folha label > input:focus { border-color: var(--marca-2); box-shadow: 0 0 0 4px var(--marca-clara); }
.folha .campo-dinheiro input { width: 100%; }
.foto-produto { text-align: center; } .foto-produto img { max-height: 130px; max-width: 100%; border-radius: 14px; }
.preco-grande { font-size: 42px; font-weight: 800; text-align: center; color: var(--marca); letter-spacing: -.04em; }
.preco-antes { text-align: center; font-weight: 800; color: var(--oferta-escuro); margin-bottom: -12px; }
.aviso-amarelo { background: var(--amarelo-claro); color: var(--amarelo-tinta); padding: 12px 14px; border-radius: 14px; margin: 0; line-height: 1.45; font-size: 15px; }
.previa { text-align: center; color: var(--cinza); font-weight: 700; min-height: 1.2em; font-size: 15px; }
.previa.vermelho { color: var(--oferta-escuro); }
.fim { text-align: center; }
.fim-ic { font-size: 54px; margin-top: 4px; }
.fim-numeros { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fim-numeros div { background: var(--papel); border-radius: 18px; padding: 14px; display: grid; gap: 2px; }
.fim-numeros span { color: var(--cinza); font-weight: 700; font-size: 14px; } .fim-numeros b { font-size: 24px; letter-spacing: -.03em; }
.fim-numeros .verde { background: var(--marca-clara); } .fim-numeros .verde b { color: var(--marca); }
.dica-centro { color: var(--cinza); margin: 0; line-height: 1.5; }

.toast { position: fixed; left: 50%; bottom: calc(var(--abas) + 96px + env(safe-area-inset-bottom)); transform: translateX(-50%); z-index: 60;
  background: var(--tinta); color: #fff; padding: 12px 18px; border-radius: 16px; font-weight: 700; max-width: 90vw; text-align: center;
  box-shadow: 0 14px 30px -12px rgba(0,0,0,.5); }

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation: none !important; transition: none !important; } }

/* ---------- toques fofinhos ---------- */
.mao { font-family: "Caveat", "Segoe Print", cursive; font-weight: 700; letter-spacing: 0; }
.topo-app.simples h1 { font-family: "Caveat", "Segoe Print", cursive; font-size: 40px; letter-spacing: 0; color: var(--marca); }
.sobretitulo { font-family: "Caveat", "Segoe Print", cursive; text-transform: none; letter-spacing: 0; font-size: 22px; font-weight: 700; }
.economia-total span { font-family: "Caveat", "Segoe Print", cursive; font-size: 22px; }
.titulo-secao { font-family: "Caveat", "Segoe Print", cursive; font-size: 26px; color: var(--marca); }
.categorias button span { border-radius: 22px; }
.categorias button:nth-child(6n+1) span { background: var(--pastel-1); }
.categorias button:nth-child(6n+2) span { background: var(--pastel-2); }
.categorias button:nth-child(6n+3) span { background: var(--pastel-3); }
.categorias button:nth-child(6n+4) span { background: var(--pastel-4); }
.categorias button:nth-child(6n+5) span { background: var(--pastel-5); }
.categorias button:nth-child(6n+6) span { background: var(--pastel-6); }
.categorias button[aria-selected="true"] span { background: var(--acento); }
.mercado-logo, .mini-logo { background: var(--pastel-2); }
.promo-foto { background: linear-gradient(135deg, var(--pastel-1), var(--pastel-2)); }
.btn-primario { box-shadow: 0 5px 0 color-mix(in srgb, var(--marca) 55%, black), 0 14px 26px -14px var(--marca); }
.btn-primario:active { transform: translateY(2px); box-shadow: 0 3px 0 color-mix(in srgb, var(--marca) 55%, black); }
.chip.ativo { background: var(--marca); border-color: var(--marca); }
.promo-card, .mercado-card, .item { border: 1.5px solid var(--linha); }
.destaque-ofertas::after { content: "♡"; font-size: 170px; top: -40px; color: rgba(255,255,255,.12); }

/* ---------- compromissos no carrinho ---------- */
.compromissos { padding: 4px 0 6px; }
.compromissos .titulo-secao { margin-top: 14px; }
.lista-compromissos { display: grid; gap: 10px; padding: 0 12px; }
.compromisso { display: flex; gap: 12px; background: var(--cartao); border: 1.5px dashed color-mix(in srgb, var(--marca) 45%, transparent);
  border-radius: 22px; padding: 12px; box-shadow: var(--sombra); animation: subir .3s both; }
.comp-data { flex: none; width: 62px; border-radius: 16px; background: var(--pastel-1); color: var(--marca); display: grid; justify-items: center; align-content: center; padding: 8px 0; line-height: 1.05; }
.comp-data b { font-size: 26px; } .comp-data span { font-weight: 800; font-size: 13px; text-transform: uppercase; } .comp-data small { font-size: 12px; color: var(--tinta-2); }
.comp-info { flex: 1; min-width: 0; display: grid; gap: 2px; }
.comp-info strong { font-size: 16px; } .comp-info small { color: var(--cinza); font-size: 14px; }
.comp-acoes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.mini-btn { border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 99px; padding: 6px 12px; font-size: 13px; font-weight: 800; color: var(--tinta); text-decoration: none; }
.mini-btn.rosa { background: var(--marca); border-color: var(--marca); color: #fff; }
.agenda-tag { background: var(--pastel-2) !important; color: var(--azul); }

/* ---------- folha de agendamento ---------- */
.folha.agenda { gap: 10px; }
.agenda-topo { display: flex; align-items: center; gap: 12px; }
.agenda-topo small { color: var(--cinza); font-weight: 700; } .agenda-topo h3 { text-align: left; margin: 0; }
.ag-passo { display: flex; align-items: center; gap: 8px; font-weight: 800; margin-top: 6px; }
.ag-passo span { width: 24px; height: 24px; border-radius: 50%; background: var(--marca); color: #fff; display: grid; place-items: center; font-size: 13px; }
.ag-servicos { display: grid; gap: 8px; }
.ag-servico { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; text-align: left; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 16px; padding: 12px 14px; }
.ag-servico strong { font-size: 16px; } .ag-servico span { grid-column: 1; color: var(--cinza); font-size: 13px; }
.ag-servico b { grid-row: 1 / span 2; grid-column: 2; align-self: center; color: var(--marca); font-size: 17px; }
.ag-servico[aria-pressed="true"], .ag-dia[aria-pressed="true"], .ag-hora[aria-pressed="true"] { border-color: var(--marca); background: var(--pastel-1); box-shadow: 0 0 0 2px var(--marca) inset; }
.ag-dias { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.ag-dia { flex: none; width: 62px; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 16px; padding: 8px 0; display: grid; justify-items: center; line-height: 1.15; }
.ag-dia b { font-size: 20px; } .ag-dia small { font-size: 12px; color: var(--cinza); font-weight: 700; }
.ag-dia:disabled { opacity: .35; text-decoration: line-through; }
.ag-horas { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; }
.ag-horas .dica-centro { grid-column: 1 / -1; }
.ag-hora { border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 12px; padding: 10px 0; font-weight: 800; font-size: 15px; }
.ag-resumo { background: var(--acento); color: var(--acento-tinta); border-radius: 14px; padding: 12px 14px; line-height: 1.45; font-size: 15px; }

/* ---------- cartão para o story (9:16, pronto para print) ---------- */
.story { position: fixed; inset: 0; z-index: 80; background: #1d0f17; display: grid; place-items: center; animation: aparecer .25s; }
.story-cartao { position: relative; overflow: hidden; width: min(100vw, calc(100vh * 9 / 16)); height: min(100vh, calc(100vw * 16 / 9));
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4vh; padding: 6vh 7%;
  background: radial-gradient(circle at 1px 1px, rgba(58,29,43,.12) 1.3px, transparent 1.8px) 0 0 / 20px 20px,
              radial-gradient(60% 40% at 100% 0%, #e7dbff, transparent 70%), radial-gradient(60% 40% at 0% 100%, #fff1c9, transparent 70%), #ffd3e4;
  color: #3a1d2b; text-align: center; }
.story-cartao.economia { background: radial-gradient(circle at 1px 1px, rgba(58,29,43,.12) 1.3px, transparent 1.8px) 0 0 / 20px 20px,
  radial-gradient(60% 40% at 100% 0%, #d7f7e8, transparent 70%), radial-gradient(60% 40% at 0% 100%, #ffd3e4, transparent 70%), #fff4b8; }
.st-topo { font-family: "Caveat", "Segoe Print", cursive; font-weight: 700; font-size: clamp(30px, 5.6vh, 52px); margin: 0; color: #e0306f; transform: rotate(-3deg); }
.st-papel { position: relative; width: 100%; background: #fffdf6; border-radius: 10px 10px 22px 22px; padding: 6vh 8% 5vh; transform: rotate(-2deg);
  box-shadow: 0 3px 0 #f0e9da, 0 6px 0 #e9e1cf, 0 30px 50px -24px rgba(120,40,70,.5);
  background-image: repeating-linear-gradient(transparent 0 30px, #d7e6f5 30px 31px); font-family: "Caveat", "Segoe Print", cursive; color: #2b3a8f; }
.st-fita { position: absolute; top: -14px; left: 50%; width: 110px; height: 28px; margin-left: -55px; transform: rotate(-4deg);
  background: repeating-linear-gradient(45deg, rgba(255,255,255,.5) 0 7px, transparent 7px 14px), #ffb3cb; }
.story-cartao.gravidez .st-emoji { font-size: clamp(44px, 8vh, 80px); }
.st-emoji { font-size: clamp(54px, 10vh, 96px); line-height: 1; font-family: initial; }
.st-titulo { font-size: clamp(38px, 7vh, 66px); line-height: 1; margin: 1vh 0; color: #3a1d2b; text-wrap: balance; }
.st-quando { font-size: clamp(26px, 4.4vh, 40px); line-height: 1.1; margin: 1vh 0 0; }
.st-quando b { color: #e0306f; background: linear-gradient(transparent 55%, #fff27a 55% 92%, transparent 92%); padding: 0 6px; }
.st-onde { font-size: clamp(22px, 3.6vh, 32px); margin: 1.5vh 0 0; color: #6b4a5a; }
.st-valor { font-size: clamp(56px, 11vh, 104px); line-height: 1; margin: 1vh 0; color: #e0306f; background: linear-gradient(transparent 60%, #fff27a 60% 92%, transparent 92%); display: inline-block; padding: 0 8px; }
.st-total { font-size: clamp(20px, 3.2vh, 28px); margin: 1vh 0 0; color: #6b4a5a; }
.st-adesivo { background: #3a1d2b; color: #fff; border-radius: 99px; padding: 1.2vh 5%; font-weight: 800; font-size: clamp(15px, 2.4vh, 22px); transform: rotate(4deg);
  box-shadow: 0 5px 0 #ff4f8b; }
.st-rodape { margin: 0; font-size: clamp(13px, 2vh, 18px); color: #6b4a5a; }
.st-brilho { position: absolute; font-size: clamp(22px, 4vh, 40px); color: #ff4f8b; animation: piscar 2.4s ease-in-out infinite; }
.st-brilho.s1 { top: 6%; left: 9%; } .st-brilho.s2 { top: 13%; right: 10%; color: #9b5cf6; animation-delay: -.8s; } .st-brilho.s3 { bottom: 10%; left: 12%; animation-delay: -1.6s; }
.story-fechar { position: fixed; top: calc(10px + env(safe-area-inset-top, 0px)); right: 10px; width: 34px; height: 34px; border-radius: 50%; border: 0;
  background: rgba(0,0,0,.25); color: #fff; font-size: 16px; z-index: 2; opacity: .55; }
.story-dica { position: fixed; bottom: calc(18px + env(safe-area-inset-bottom, 0px)); left: 50%; transform: translateX(-50%); margin: 0; z-index: 2;
  background: rgba(29,15,23,.85); color: #fff; padding: 10px 16px; border-radius: 99px; font-weight: 700; white-space: nowrap; font-size: 14px; }

/* ---------- aba Cuidar ---------- */
.cuidar-seg { margin: 0 12px 12px; background: var(--cartao); border: 1.5px solid var(--linha); }
.cuidar-seg button.ativo { background: var(--pastel-1); color: var(--marca); box-shadow: 0 0 0 2px var(--marca) inset; }
.cuidar-seg button { padding: 10px 4px; font-size: 14px; white-space: nowrap; }
.cuidar-inicio { text-align: center; display: grid; gap: 12px; }
.cuidar-inicio h2 { margin: 0; font-family: "Caveat", "Segoe Print", cursive; font-size: 32px; color: var(--marca); }
.cuidar-inicio p { margin: 0; color: var(--tinta-2); line-height: 1.5; }
.cuidar-inicio label, .meu-perfil label { display: grid; gap: 6px; font-weight: 700; font-size: 14px; text-align: left; }
.cuidar-inicio input, .cuidar-inicio select, .meu-perfil input, .add-amiga input {
  font: inherit; font-size: 16px; padding: 12px 14px; border: 1.5px solid var(--linha); border-radius: 14px; background: #fff; color: var(--tinta); width: 100%; outline: 0; }
.cuidar-inicio input:focus, .meu-perfil input:focus, .add-amiga input:focus { border-color: var(--marca-2); box-shadow: 0 0 0 4px var(--marca-clara); }
.cuidar-ilustra { width: 96px; height: 96px; margin: 0 auto; border-radius: 32px; background: var(--pastel-1); display: grid; place-items: center; font-size: 52px; }
.aviso-saude { color: var(--cinza) !important; font-size: 13px; line-height: 1.5; text-align: center; margin: 12px 16px 0; }
.cuidar-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 12px 12px; }
.cuidar-inicio .cuidar-grade { margin: 0; }
.cartao.mini { margin: 0; padding: 14px; display: grid; gap: 4px; }
.cartao.mini small { color: var(--cinza); font-weight: 700; font-size: 13px; } .cartao.mini b { font-size: 16px; }
.cuidar-acoes { display: grid; gap: 10px; padding: 16px 12px 0; }
#tela-cuidar .cartao { margin-bottom: 12px; }

.gest-heroi { margin: 0 12px 12px; border-radius: 28px; padding: 20px; color: #fff; position: relative; overflow: hidden;
  background: radial-gradient(260px 160px at 110% 0%, rgba(255,242,122,.35), transparent 60%), linear-gradient(150deg, var(--marca-2), var(--marca-escura)); }
.gest-heroi .sobretitulo { color: var(--acento); }
.gest-semanas { display: flex; align-items: center; gap: 12px; }
.gest-semanas b { font-size: 84px; line-height: .9; letter-spacing: -.05em; }
.gest-semanas span { font-size: 22px; font-weight: 800; line-height: 1.1; } .gest-semanas small { font-size: 15px; font-weight: 600; opacity: .85; }
.gest-chips { display: flex; gap: 6px; margin: 12px 0 14px; }
.gest-chips span { background: rgba(255,255,255,.2); border-radius: 99px; padding: 5px 11px; font-weight: 800; font-size: 13px; }
.gest-barra { height: 14px; border-radius: 99px; background: rgba(255,255,255,.22); overflow: hidden; }
.gest-barra i { display: block; height: 100%; border-radius: 99px; background: var(--acento); box-shadow: 0 0 12px rgba(255,242,122,.7); }
.gest-marcos { display: grid; grid-template-columns: 13fr 14fr 12fr 1fr; font-size: 11px; font-weight: 800; opacity: .8; margin-top: 6px; }
.bebe-tamanho { display: flex; align-items: center; gap: 14px; margin: 0 12px 12px; }
.bebe-emoji { width: 86px; height: 86px; flex: none; border-radius: 28px; background: var(--pastel-3); display: grid; place-items: center; font-size: 50px; animation: flutuar2 4s ease-in-out infinite; }
.bebe-tamanho small { color: var(--cinza); font-weight: 700; }
.bebe-tamanho h3 { margin: 2px 0; font-family: "Caveat", "Segoe Print", cursive; font-size: 30px; color: var(--marca); line-height: 1; }
.bebe-tamanho span { font-weight: 700; color: var(--tinta-2); font-size: 14px; }
.dica-gest { margin: 0 12px 12px; background: var(--pastel-2); border: 0; }
.dica-gest b { color: var(--azul); } .dica-gest p { margin: 6px 0 0; line-height: 1.5; color: var(--tinta-2); }
.alerta-saude { margin: 0 12px 12px; background: var(--amarelo-claro); border: 0; color: var(--amarelo-tinta); line-height: 1.5; font-size: 14px; }

.ciclo-heroi { display: flex; align-items: center; gap: 16px; margin: 0 12px 12px; background: var(--cartao); border-radius: 28px; padding: 18px; box-shadow: var(--sombra); border: 1.5px solid var(--linha); }
.ciclo-anel { --p: 10%; width: 120px; height: 120px; flex: none; border-radius: 50%; display: grid; place-items: center;
  background: conic-gradient(var(--marca) var(--p), var(--pastel-1) 0); }
.ciclo-anel > div { width: 92px; height: 92px; border-radius: 50%; background: var(--cartao); display: grid; place-items: center; align-content: center; line-height: 1; }
.ciclo-anel b { font-size: 38px; color: var(--marca); } .ciclo-anel small { font-size: 12px; color: var(--cinza); font-weight: 700; }
.ciclo-fase { display: grid; gap: 2px; } .ciclo-fase span { font-size: 30px; }
.ciclo-fase b { font-family: "Caveat", "Segoe Print", cursive; font-size: 28px; color: var(--marca); line-height: 1; }
.ciclo-fase p { margin: 4px 0 0; color: var(--tinta-2); font-size: 14px; line-height: 1.45; }
.calendario { margin: 0 12px 12px; }
.cal-topo { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.cal-topo b { font-size: 17px; } .cal-topo .btn-icone { font-size: 22px; font-weight: 800; }
.cal-semana, .cal-dias { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.cal-semana span { font-size: 12px; font-weight: 800; color: var(--cinza-2); }
.cal-dias span { aspect-ratio: 1; display: grid; place-items: center; border-radius: 50%; font-weight: 700; font-size: 14px; max-width: 100%; }
.cal-dias .mens { background: var(--marca); color: #fff; }
.cal-dias .prev { background: var(--pastel-1); color: var(--marca); border: 1.5px dashed var(--marca); }
.cal-dias .fertil { background: var(--pastel-2); color: var(--azul); }
.cal-dias .ovul { background: var(--azul); color: #fff; }
.cal-dias .hoje { outline: 2.5px solid var(--tinta); outline-offset: 1px; }
.cal-legenda { display: flex; flex-wrap: wrap; gap: 6px 12px; margin-top: 12px; font-size: 12px; font-weight: 700; color: var(--tinta-2); }
.cal-legenda i { display: inline-block; width: 12px; height: 12px; border-radius: 50%; margin-right: 4px; vertical-align: -1px; }
.l-mens { background: var(--marca); } .l-prev { background: var(--pastel-1); border: 1.5px dashed var(--marca); } .l-fertil { background: var(--pastel-2); } .l-ovul { background: var(--azul); }
.veio { margin: 0 12px 12px; width: calc(100% - 24px); }
.historico-ciclo ul { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 4px; color: var(--tinta-2); }
.story-cartao.gravidez { background: radial-gradient(circle at 1px 1px, rgba(58,29,43,.12) 1.3px, transparent 1.8px) 0 0 / 20px 20px,
  radial-gradient(60% 40% at 100% 0%, #fff1c9, transparent 70%), radial-gradient(60% 40% at 0% 100%, #e7dbff, transparent 70%), #ffd9e8; }

/* ---------- perfil fofo e amigas ---------- */
.meu-perfil { display: grid; gap: 12px; }
.perfil-preview { display: flex; align-items: center; gap: 12px; padding: 12px; border-radius: 18px; background: var(--pastel-1); }
.perfil-preview div { display: grid; min-width: 0; } .perfil-preview small { color: var(--tinta-2); }
.avatar-fofo { width: 54px; height: 54px; flex: none; border-radius: 50%; background: #fff; display: grid; place-items: center; font-size: 30px; box-shadow: 0 0 0 3px var(--marca-2); }
.avatar-fofo.peq { width: 38px; height: 38px; font-size: 20px; }
.pf-avatares { display: grid; grid-template-columns: repeat(8, 1fr); gap: 6px; }
.pf-avatares button { aspect-ratio: 1; border: 1.5px solid var(--linha); background: #fff; border-radius: 14px; font-size: 22px; padding: 0; }
.pf-avatares button[aria-checked="true"] { border-color: var(--marca); background: var(--pastel-1); box-shadow: 0 0 0 2px var(--marca) inset; }
.pf-compartilhar { display: grid; gap: 10px; background: var(--papel-2); border: 1.5px dashed var(--linha); border-radius: 16px; padding: 12px; }
.pf-compartilhar small { color: var(--cinza); }
.troca { display: flex !important; align-items: center; gap: 10px; font-weight: 600 !important; cursor: pointer; }
.troca input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.troca span { flex: none; width: 46px; height: 28px; border-radius: 99px; background: var(--linha); position: relative; transition: background .2s; }
.troca span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.2); transition: transform .2s; }
.troca input:checked + span { background: var(--marca); }
.troca input:checked + span::after { transform: translateX(18px); }
.troca input:focus-visible + span { outline: 3px solid var(--azul); outline-offset: 2px; }
.amigas-convite { display: grid; gap: 8px; }
.amigas-convite small, .amigas-convite p { color: var(--tinta-2); margin: 0; }
.meu-codigo { display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--acento); border-radius: 16px; padding: 10px 14px; }
.meu-codigo b { font-size: 26px; letter-spacing: .18em; color: var(--acento-tinta); }
.add-amiga { display: flex; gap: 8px; } .add-amiga input { flex: 1; min-width: 0; text-transform: uppercase; letter-spacing: .1em; }
.amiga-msg { margin: 0; font-weight: 700; font-size: 14px; } .amiga-msg.ok { color: var(--marca); } .amiga-msg.erro { color: var(--oferta-escuro); }
.pedidos { display: grid; gap: 8px; margin: 12px 12px 0; }
.pedido { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; background: var(--pastel-2); border-radius: 18px; padding: 10px 12px; font-size: 14px; }
.pedido div { display: flex; gap: 6px; margin-left: auto; }
.lista-amigas { display: grid; gap: 10px; margin: 12px 12px 0; }
.amiga { display: flex; gap: 12px; align-items: flex-start; background: var(--cartao); border: 1.5px solid var(--linha); border-radius: 22px; padding: 12px; box-shadow: var(--sombra); position: relative; }
.amiga-info { flex: 1; min-width: 0; display: grid; gap: 2px; } .amiga-info small { color: var(--cinza); }
.amiga-status { display: grid; gap: 4px; margin-top: 6px; }
.amiga-status span { font-size: 13px; font-weight: 700; border-radius: 10px; padding: 5px 9px; background: var(--papel-2); }
.amiga-status .st-gest { background: var(--pastel-3); } .amiga-status .st-ciclo { background: var(--pastel-1); color: var(--marca); } .amiga-status .st-mae { background: var(--pastel-4); }
.amiga-tirar { border: 0; background: none; color: var(--cinza-2); font-size: 14px; padding: 4px; }

@media (max-width: 380px) { .abas button { font-size: 11px; } .gest-semanas b { font-size: 70px; } .ciclo-anel { width: 104px; height: 104px; } .ciclo-anel > div { width: 80px; height: 80px; } }

/* ============================================================
   ACABAMENTO PROFISSIONAL
   O caderninho fica só onde é conteúdo (listinha, bloquinho, story);
   a "moldura" do app fica limpa: títulos em sans, sombras macias,
   botões sem degrau, toques que respondem.
   ============================================================ */
:root {
  --tinta: #2a1420; --tinta-2: #5e4252;
  --linha: #f3dfe8;
  --sombra: 0 1px 2px rgba(80, 20, 45, .06), 0 10px 26px -14px rgba(120, 30, 70, .22);
  --sombra-alta: 0 2px 6px rgba(80, 20, 45, .08), 0 24px 48px -20px rgba(120, 30, 70, .35);
  --anel: 0 0 0 4px color-mix(in srgb, var(--marca) 18%, transparent);
}
body { background: radial-gradient(900px 420px at 100% -10%, color-mix(in srgb, var(--marca-2) 14%, transparent), transparent 70%), var(--papel-2); }

/* títulos: limpos e firmes; a letra de mão vira detalhe */
.topo-app.simples h1 { font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 30px; font-weight: 800; letter-spacing: -.035em; color: var(--tinta); }
.titulo-secao { font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 19px; font-weight: 800; letter-spacing: -.02em; color: var(--tinta); }
.cuidar-inicio h2 { font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 26px; font-weight: 800; letter-spacing: -.03em; color: var(--tinta); }
.notas-topo h2 { font-family: "Plus Jakarta Sans", system-ui, sans-serif; font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--tinta); }

/* botões: sem degrau de brinquedo; brilho suave e resposta ao toque */
.btn { transition: transform .12s ease, box-shadow .2s ease, filter .2s ease; }
.btn-primario, .btn-primario:active {
  background: linear-gradient(180deg, color-mix(in srgb, var(--marca) 88%, white), var(--marca));
  box-shadow: 0 1px 0 rgba(255,255,255,.35) inset, 0 10px 22px -10px color-mix(in srgb, var(--marca) 75%, transparent);
}
.btn-primario:active { transform: scale(.97); filter: brightness(.96); }
.bv-btn-principal, .bv-btn-principal:active { background: var(--tinta); box-shadow: 0 12px 26px -12px rgba(42, 20, 32, .6); }
.bv-btn-principal:active { transform: scale(.97); }
.btn:focus-visible, button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: none; box-shadow: var(--anel); }
input:focus, select:focus, textarea:focus { border-color: var(--marca-2); box-shadow: var(--anel); }

/* cartões: borda fina e sombra em camadas */
.cartao { box-shadow: var(--sombra); border: 1px solid var(--linha); }
.promo-card, .mercado-card, .item { border: 1px solid var(--linha); box-shadow: var(--sombra); }
.folha { box-shadow: 0 -10px 40px -10px rgba(80, 20, 45, .25); }

/* barra de abas: pílula no item ativo */
.abas { background: rgba(255, 255, 255, .9); border-top: 1px solid var(--linha); box-shadow: 0 -8px 24px -18px rgba(80, 20, 45, .3); }
.abas button.ativo::before { content: ""; top: 8px; width: 56px; height: 32px; border-radius: 99px; background: var(--marca-clara); z-index: -1; }
.abas button { isolation: isolate; }
.abas button.ativo svg { transform: none; }
.abas button:active svg { transform: scale(.88); }

/* apresentação: escolhas como cartõezinhos limpos */
.ap-opcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; width: 100%; max-width: 360px; }
.ap-opcoes button, .ap-opcoes button:nth-child(odd), .ap-opcoes button:nth-child(even) {
  transform: none; border: 1px solid rgba(42, 20, 32, .08); background: rgba(255,255,255,.9); box-shadow: 0 6px 16px -10px rgba(120, 30, 70, .35);
  border-radius: 16px; padding: 12px 10px; font-size: 15px; text-align: left; display: flex; align-items: center; gap: 8px; }
.ap-opcoes button:last-child:nth-child(odd) { grid-column: 1 / -1; justify-content: center; }
.ap-opcoes button:active { transform: scale(.96); background: #fff; box-shadow: var(--anel); }
.ap-pular { box-shadow: 0 4px 12px -6px rgba(80,20,45,.3); }
.ap-voltar { border: 1px solid rgba(42, 20, 32, .12); box-shadow: 0 8px 18px -10px rgba(80,20,45,.4); }
.ap-titulo { letter-spacing: -.045em; }
.ap-eyebrow { transform: none; }

/* botão de som */
.btn-som { width: 38px; height: 38px; border-radius: 50%; border: 0; display: grid; place-items: center; background: rgba(255,255,255,.75);
  box-shadow: 0 4px 12px -6px rgba(80,20,45,.3); font-size: 17px; padding: 0; }
.ap-topo-dir { display: flex; gap: 8px; align-items: center; }
.perfil-som { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 14px 12px 0; padding: 14px 16px; }
.perfil-som b { display: block; } .perfil-som small { color: var(--cinza); }
.perfil-acoes .perfil-som { margin: 0; }

/* ---------- preços das clientes ---------- */
.atalhos { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 12px 14px; }
.atalho { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; text-align: left;
  padding: 12px; border-radius: 18px; border: 1px solid var(--linha); background: var(--cartao); box-shadow: var(--sombra); color: var(--tinta); }
.atalho span { grid-row: 1 / 3; width: 42px; height: 42px; border-radius: 14px; display: grid; place-items: center; font-size: 22px; background: var(--acento); }
.atalho:nth-child(2) span { background: var(--pastel-1); }
.atalho b { font-size: 14px; line-height: 1.15; } .atalho small { color: var(--marca); font-weight: 800; font-size: 12px; }
.atalho:active { transform: scale(.97); }
.faixa-pontos { display: none; }
#perfil-fora .faixa-pontos { display: flex; }

.precos-busca { padding: 0 12px 6px; }
.precos-busca .titulo-secao { margin: 6px 4px 10px; }
.pb-card { background: var(--cartao); border: 1px solid var(--linha); border-radius: 20px; box-shadow: var(--sombra); margin-bottom: 12px; overflow: hidden; }
.pb-card header { padding: 14px 16px 8px; } .pb-card header b { display: block; font-size: 17px; letter-spacing: -.01em; }
.pb-card header small { color: var(--cinza); font-weight: 700; }
.pb-card ul { list-style: none; margin: 0; padding: 0 8px 4px; }
.pb-card li { display: flex; align-items: center; gap: 10px; padding: 10px 8px; border-radius: 14px; cursor: pointer; }
.pb-card li + li { border-top: 1px solid var(--linha); }
.pb-card li.barato { background: color-mix(in srgb, var(--acento) 45%, white); border-top-color: transparent; }
.pb-card li.barato + li { border-top-color: transparent; }
.pb-ic { width: 34px; height: 34px; flex: none; border-radius: 11px; background: var(--pastel-2); display: grid; place-items: center; font-size: 17px; }
.pb-card li div { flex: 1; min-width: 0; } .pb-card li div b { display: block; font-size: 14px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pb-card li div small { color: var(--cinza); font-size: 12px; font-weight: 600; }
.pb-card li em { font-style: normal; font-weight: 900; font-size: 18px; text-align: right; color: var(--tinta); white-space: nowrap; }
.pb-card li em s { display: block; font-size: 11px; color: var(--cinza); font-weight: 600; }
.pb-card li em i { display: block; font-style: normal; font-size: 10px; font-weight: 800; color: var(--marca); }
.pb-informar { width: 100%; border: 0; border-top: 1px dashed var(--linha); background: none; padding: 12px; font-weight: 800; color: var(--marca); font-size: 13px; }
.pb-vazio { display: grid; gap: 8px; justify-items: center; text-align: center; padding: 18px; margin-bottom: 12px; border-radius: 20px; border: 2px dashed var(--linha); background: var(--cartao); }
.pb-vazio span { color: var(--cinza); font-size: 14px; }

.link-diferente { display: block; margin: 10px auto 0; border: 0; background: none; color: var(--marca); font-weight: 800; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
.pt-informar { grid-column: 1 / -1; }

.folha.informar { max-height: 92dvh; overflow-y: auto; }
.inf-topo { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 4px 0 10px; }
.inf-topo h3 { margin: 0; font-size: 20px; letter-spacing: -.02em; }
.inf-placar { background: var(--acento); color: var(--acento-tinta); font-weight: 800; font-size: 13px; padding: 6px 10px; border-radius: 99px; }
.inf-loja { display: grid; gap: 8px; padding: 12px; border-radius: 18px; background: var(--papel); margin-bottom: 14px; }
.inf-loja .link-diferente { margin: 0; font-size: 13px; justify-self: start; }
.inf-gps { margin: 0; font-weight: 700; font-size: 14px; color: var(--tinta-2); }
.inf-gps.ok { color: #0f8a5f; } .inf-gps.aviso { color: #a35a00; }
.inf-cadastro-loja { display: grid; gap: 10px; padding: 14px; border-radius: 18px; border: 2px dashed var(--marca-2); margin-bottom: 14px; }
.inf-cadastro-loja p { margin: 0; font-size: 14px; color: var(--tinta-2); }
.inf-passo { display: grid; gap: 10px; }
.inf-escanear { padding: 18px; font-size: 17px; }
.inf-ou { display: flex; gap: 8px; } .inf-ou input { flex: 1; min-width: 0; }
.inf-produto b { display: block; font-size: 18px; letter-spacing: -.01em; } .inf-produto small { color: var(--cinza); font-weight: 600; }
.inf-atual { text-align: center; padding: 16px; border-radius: 20px; background: linear-gradient(160deg, var(--pastel-1), var(--pastel-2)); }
.inf-atual small { display: block; color: var(--tinta-2); font-weight: 700; } .inf-atual b { display: block; font-size: 40px; letter-spacing: -.04em; line-height: 1.1; }
.inf-atual span { display: block; color: var(--tinta-2); font-size: 13px; font-weight: 600; }
.inf-atual p { margin: 10px 0 8px; font-weight: 700; }
.inf-escolha { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.inf-escolha .btn { padding: 14px 8px; }
.inf-loja select, .inf-ou input, .folha label > select, .nota-foto label > input {
  font: inherit; font-size: 16px; font-weight: 600; padding: 12px 14px; border: 1.5px solid var(--linha); border-radius: 14px; background: #fff; color: var(--tinta); width: 100%; outline: 0; }
.campo-dinheiro input { border: 0; outline: 0; background: none; font: inherit; font-size: 22px; font-weight: 800; padding: 12px 8px; width: 100%; min-width: 0; }
.campo-dinheiro:focus-within, .folha label > input:focus { box-shadow: var(--anel); }

.pb-add { width: 40px; height: 40px; flex: none; border-radius: 14px; border: 0; background: var(--marca); color: #fff; font-size: 24px; font-weight: 700; line-height: 1;
  box-shadow: 0 8px 16px -8px color-mix(in srgb, var(--marca) 80%, transparent); transition: transform .12s, background .2s; }
.pb-add:active { transform: scale(.9); }
.pb-add.ok { background: #16a36b; font-size: 20px; }
.pb-card li { cursor: default; }

.aviso-app { margin: 0 12px 12px; padding: 12px 14px; border-radius: 16px; background: var(--tinta); color: #fff; font-weight: 700; font-size: 14px; line-height: 1.4;
  box-shadow: var(--sombra); }

.sem-loja-acoes { display: grid; gap: 8px; width: 100%; max-width: 320px; margin: 0 auto; }

/* ============================================================
   MINHA LISTA (cesta, 3 caminhos, fazer caber no dinheiro)
   ============================================================ */
.seg-carrinho { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin: 14px 16px 4px; padding: 4px; border-radius: 99px; background: var(--cartao); border: 1px solid var(--linha); box-shadow: var(--sombra); }
.seg-carrinho button { border: 0; background: none; border-radius: 99px; padding: 11px 8px; font-weight: 800; font-size: 15px; color: var(--cinza); }
.seg-carrinho button.ativo { background: var(--marca); color: #fff; }
.ls-topo { padding: 10px 18px 4px; }
.ls-topo h1 { margin: 0; font-size: 26px; letter-spacing: -.03em; }
.ls-topo p { margin: 4px 0 0; color: var(--cinza); font-size: 14px; line-height: 1.4; }
.ls-add { padding: 10px 16px 0; position: relative; }
.ls-add .busca { margin: 0; }
.ls-sugestoes { position: absolute; left: 16px; right: 16px; z-index: 30; margin-top: 6px; background: var(--cartao); border: 1px solid var(--linha); border-radius: 18px; box-shadow: 0 18px 40px -16px rgba(0,0,0,.35); overflow: hidden; }
.ls-sugestoes button { display: flex; align-items: center; gap: 10px; width: 100%; text-align: left; border: 0; background: none; padding: 11px 14px; color: var(--tinta); }
.ls-sugestoes button + button { border-top: 1px solid var(--linha); }
.ls-sugestoes button:first-child { background: var(--marca-clara); }
.ls-sugestoes span { font-size: 18px; width: 26px; text-align: center; flex: none; }
.ls-sugestoes div { min-width: 0; } .ls-sugestoes b { display: block; font-size: 15px; }
.ls-sugestoes small { color: var(--cinza); font-size: 12px; font-weight: 600; }
.ls-sugestoes p { margin: 0; padding: 10px 14px 12px; color: var(--cinza); font-size: 13px; }
.ls-rapidos { display: flex; gap: 8px; margin: 10px 0 2px; overflow-x: auto; scrollbar-width: none; }
.ls-itens { list-style: none; margin: 12px 16px 0; padding: 4px 0; background: var(--cartao); border: 1px solid var(--linha); border-radius: 20px; box-shadow: var(--sombra); }
.ls-itens:empty { display: none; }
.ls-itens li { display: flex; align-items: center; gap: 10px; padding: 10px 12px 10px 16px; }
.ls-itens li + li { border-top: 1px solid var(--linha); }
.ls-nome { flex: 1; min-width: 0; } .ls-nome b { display: block; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ls-nome small { color: var(--cinza); font-size: 12px; font-weight: 600; } .ls-nome small b { display: inline; color: var(--tinta); font-size: 12px; }
.ls-nome small.sem { color: var(--amarelo-tinta); } .ls-nome small.carregando { opacity: .7; }
.ls-vazia { display: grid; justify-items: center; gap: 4px; text-align: center; margin: 16px; padding: 26px 18px; border: 2px dashed var(--linha); border-radius: 22px; background: var(--cartao); }
.ls-vazia div { font-size: 40px; } .ls-vazia span { color: var(--cinza); font-size: 14px; line-height: 1.45; }
.ls-dinheiro { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 14px 16px 0; padding: 12px 14px; border-radius: 18px; background: var(--acento); color: var(--acento-tinta); }
.ls-dinheiro label { font-weight: 800; font-size: 15px; }
.ls-dinheiro .campo-dinheiro { max-width: 150px; background: #fff; }
.ls-caminhos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin: 14px 16px 0; }
.ls-caminhos button { display: grid; justify-items: center; gap: 2px; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 16px; padding: 10px 4px; font-weight: 800; font-size: 13px; color: var(--tinta-2); }
.ls-caminhos button span { font-size: 20px; }
.ls-caminhos button.ativo { border-color: var(--marca); background: var(--marca-clara); color: var(--marca); }
.ls-plano { margin: 12px 16px 0; }
.ls-total { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 16px; border-radius: 20px; background: var(--noite); color: #fff; }
.ls-total span { display: block; font-weight: 800; font-size: 15px; } .ls-total small { opacity: .75; font-size: 12px; font-weight: 600; }
.ls-total strong { font-size: 28px; letter-spacing: -.03em; white-space: nowrap; }
.ls-compara { margin: 10px 2px 0; font-size: 14px; color: var(--tinta-2); line-height: 1.45; }
.ls-lojas { display: grid; gap: 6px; margin-top: 10px; }
.ls-loja { display: grid; grid-template-columns: 1fr auto; align-items: center; text-align: left; gap: 0 10px; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 14px; padding: 9px 12px; color: var(--tinta); }
.ls-loja b { font-size: 14px; } .ls-loja small { grid-column: 1; color: var(--cinza); font-size: 12px; font-weight: 600; }
.ls-loja em { grid-row: 1 / span 2; grid-column: 2; font-style: normal; font-weight: 900; font-size: 16px; }
.ls-loja.ativo { border-color: var(--marca); box-shadow: 0 0 0 2px var(--marca-clara); }
.ls-grupo { margin-top: 10px; background: var(--cartao); border: 1px solid var(--linha); border-radius: 18px; box-shadow: var(--sombra); overflow: hidden; }
.ls-grupo header { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--papel); }
.ls-grupo header div { flex: 1; min-width: 0; } .ls-grupo header b { display: block; font-size: 15px; }
.ls-grupo header small { color: var(--cinza); font-size: 12px; font-weight: 600; }
.ls-grupo header em { font-style: normal; font-weight: 900; font-size: 16px; }
.ls-grupo ul { list-style: none; margin: 0; padding: 2px 0; }
.ls-grupo li { display: flex; align-items: center; gap: 10px; padding: 9px 14px; }
.ls-grupo li + li { border-top: 1px solid var(--linha); }
.ls-grupo li > span { font-weight: 800; color: var(--marca); min-width: 26px; }
.ls-grupo li div { flex: 1; min-width: 0; } .ls-grupo li div b { display: block; font-size: 14px; }
.ls-grupo li div small { color: var(--cinza); font-size: 12px; font-weight: 600; }
.ls-grupo li em { font-style: normal; font-weight: 800; font-size: 15px; white-space: nowrap; }
.ls-faltou { margin: 10px 16px 0; padding: 12px 14px; border-radius: 16px; background: var(--amarelo-claro); color: var(--amarelo-tinta); font-size: 14px; line-height: 1.45; }
.ls-faltou span { display: block; } .ls-faltou .btn-texto { padding: 6px 0 0; color: var(--marca); }
.ls-sem-preco { display: grid; gap: 8px; justify-items: center; text-align: center; padding: 18px; border-radius: 20px; border: 2px dashed var(--linha); background: var(--cartao); }
.ls-sem-preco span { color: var(--cinza); font-size: 14px; }
.ls-erro { text-align: center; color: var(--cinza); }
.ls-caber { margin: 12px 16px 0; padding: 14px; border-radius: 18px; display: grid; gap: 8px; }
.ls-caber > b { font-size: 16px; } .ls-caber > span { font-size: 14px; }
.ls-caber.cabe { background: var(--pastel-3); color: #0d5c3a; }
.ls-caber.passa { background: var(--oferta-clara); color: var(--tinta); border: 1.5px solid color-mix(in srgb, var(--oferta) 35%, transparent); }
.ls-caber ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.ls-caber li { display: flex; align-items: center; gap: 10px; background: var(--cartao); border-radius: 14px; padding: 10px 12px; }
.ls-caber li div { flex: 1; min-width: 0; } .ls-caber li b { display: block; font-size: 14px; } .ls-caber li small { color: var(--cinza); font-size: 12px; font-weight: 600; }
.ls-caber li button { flex: none; border: 0; border-radius: 99px; padding: 9px 12px; background: var(--marca); color: #fff; font-weight: 800; font-size: 14px; }
.ls-acoes { display: grid; gap: 8px; margin: 16px 16px 0; }
.ls-nota { margin: 10px 18px 0; text-align: center; color: var(--cinza); font-size: 12px; }
.roteiro { display: flex; align-items: center; gap: 6px; margin: 10px 16px 0; overflow-x: auto; scrollbar-width: none; }
.roteiro span { flex: none; font-size: 12px; font-weight: 800; color: var(--cinza); text-transform: uppercase; letter-spacing: .05em; }
.roteiro button { flex: none; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 99px; padding: 7px 12px; font-weight: 800; font-size: 13px; color: var(--tinta); }
.roteiro button i { font-style: normal; background: var(--marca-clara); color: var(--marca); border-radius: 99px; padding: 0 7px; margin-left: 4px; }
.roteiro button.ativo { background: var(--marca); border-color: var(--marca); color: #fff; } .roteiro button.ativo i { background: #fff; }
.pb-card header { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.pb-lista { flex: none; border: 0; border-radius: 99px; padding: 7px 11px; background: var(--marca-clara); color: var(--marca); font-weight: 800; font-size: 12px; }
.pb-lista.ok { background: var(--pastel-3); color: #0d5c3a; }
.faixa-lista { display: flex; align-items: center; gap: 12px; width: calc(100% - 32px); margin: 10px 16px 0; text-align: left; border: 0; border-radius: 20px; padding: 14px 16px;
  background: linear-gradient(120deg, var(--pastel-2), var(--pastel-1)); color: var(--tinta); box-shadow: var(--sombra); }
.faixa-lista > span { font-size: 28px; } .faixa-lista div { flex: 1; } .faixa-lista b { display: block; font-size: 16px; }
.faixa-lista small { color: var(--tinta-2); font-size: 13px; } .faixa-lista i { font-style: normal; font-size: 24px; color: var(--marca); }

/* listas prontinhas */
.ls-prontas { margin: 14px 2px 6px; font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--cinza); }
.ls-rapidos { margin: 0; padding-bottom: 4px; }
.pacote { flex: none; display: grid; justify-items: center; gap: 4px; width: 84px; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 18px; padding: 10px 4px; font-weight: 800; font-size: 12px; color: var(--tinta); box-shadow: var(--sombra); transition: transform .15s; }
.pacote span { font-size: 26px; line-height: 1; }
.pacote:active { transform: scale(.94); }
.pacote.pulou { animation: pulinho .45s ease; border-color: var(--marca); }
@keyframes pulinho { 30% { transform: scale(1.12) rotate(-3deg); } 60% { transform: scale(.96); } }
.ls-limpar { display: block; margin: 8px 0 0 auto; border: 0; background: none; color: var(--cinza); font-weight: 700; font-size: 13px; }
.ls-ajudar { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.ls-sem-preco .btn { width: 100%; }

/* cartão "escaneie a notinha" nas ofertas */
.ajude { margin: 12px 16px 0; padding: 16px; border-radius: 24px; background: linear-gradient(135deg, var(--marca-clara), var(--pastel-2)); border: 1.5px solid color-mix(in srgb, var(--marca) 20%, transparent); box-shadow: var(--sombra); display: grid; gap: 12px; }
.ajude-topo { display: flex; gap: 12px; align-items: flex-start; }
.ajude-topo > span { font-size: 34px; line-height: 1; animation: balancar 2.4s ease-in-out infinite; }
@keyframes balancar { 0%, 100% { transform: rotate(-6deg); } 50% { transform: rotate(8deg) scale(1.06); } }
.ajude-topo b { display: block; font-size: 18px; letter-spacing: -.02em; }
.ajude-topo small { display: block; margin-top: 3px; color: var(--tinta-2); font-size: 14px; line-height: 1.4; }
.ajude-topo small b { display: inline; font-size: 14px; color: var(--marca); }
.ajude-passos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ajude-passos li { background: var(--cartao); border-radius: 14px; padding: 8px 6px; font-size: 12px; font-weight: 700; text-align: center; line-height: 1.3; color: var(--tinta-2); }
.ajude-passos i { display: grid; place-items: center; width: 22px; height: 22px; margin: 0 auto 4px; border-radius: 50%; background: var(--marca); color: #fff; font-style: normal; font-weight: 900; font-size: 12px; }
.ajude .btn-texto { justify-self: center; padding: 0; color: var(--marca); }

/* chuva de confete */
.confete { position: fixed; inset: 0; pointer-events: none; z-index: 95; overflow: hidden; }
.confete i { position: absolute; top: -40px; font-style: normal; font-size: 22px; animation: cair var(--t) cubic-bezier(.3,.6,.5,1) var(--d) forwards; }
@keyframes cair { to { transform: translateY(110vh) rotate(var(--r)); opacity: .2; } }
@media (prefers-reduced-motion: reduce) { .confete { display: none; } .ajude-topo > span { animation: none; } }

/* ============================================================
   TUDO PRA VOCÊ (categorias de profissionais e lojas)
   ============================================================ */
.hub { margin: 18px 0 0; }
.hub-titulo { margin: 0 18px 4px; font-size: 22px; letter-spacing: -.03em; }
.hub-bloco { margin-top: 12px; }
.hub-cab { padding: 0 18px 8px; } .hub-cab b { display: block; font-size: 16px; } .hub-cab small { color: var(--cinza); font-size: 13px; }
.hub-grade { display: grid; grid-auto-flow: column; grid-template-rows: repeat(2, auto); grid-auto-columns: 78px; gap: 8px; overflow-x: auto; padding: 2px 16px 6px; scrollbar-width: none; }
.hub-grade::-webkit-scrollbar { display: none; }
.hub-item { position: relative; display: grid; justify-items: center; gap: 4px; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 18px; padding: 10px 2px 8px; color: var(--tinta); box-shadow: var(--sombra); transition: transform .15s; }
.hub-item:active { transform: scale(.93); }
.hub-item span { font-size: 26px; line-height: 1.1; }
.hub-item b { font-size: 11.5px; font-weight: 800; line-height: 1.15; text-align: center; }
.hub-item i { position: absolute; top: -5px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 99px; background: var(--marca); color: #fff; font-style: normal; font-size: 11px; font-weight: 900; display: grid; place-items: center; }
.hub-item.vazio { opacity: .55; box-shadow: none; background: var(--papel); }
.hub-folha { text-align: center; display: grid; gap: 10px; }

/* Cuidar: abas que rolam de lado */
.cuidar-seg { overflow-x: auto; scrollbar-width: none; justify-content: flex-start; gap: 2px; }
.cuidar-seg::-webkit-scrollbar { display: none; }
.cuidar-seg button { flex: none; padding: 10px 12px; }

/* coisas a fazer */
#cuidar-tarefas, #cuidar-autocuidado, #cuidar-seguranca { padding: 0 16px; }
.tf-topo, .ac-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 4px 2px 12px; }
.tf-topo h2, .ac-topo h2 { margin: 0; font-size: 22px; letter-spacing: -.03em; } .tf-topo p, .ac-topo p { margin: 2px 0 0; color: var(--cinza); font-size: 14px; }
.tf-anel { position: relative; width: 62px; height: 62px; flex: none; }
.tf-anel svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.tf-anel circle { fill: none; stroke: var(--linha); stroke-width: 4; } .tf-anel circle + circle { stroke: var(--marca); stroke-linecap: round; transition: stroke-dasharray .5s; }
.tf-anel b { position: absolute; inset: 0; display: grid; place-items: center; font-size: 14px; font-weight: 900; color: var(--marca); }
.tf-form { display: flex; gap: 8px; }
.tf-form input { flex: 1; min-width: 0; border: 1.5px solid var(--linha); border-radius: 16px; padding: 13px 14px; font: inherit; font-size: 16px; background: var(--cartao); color: var(--tinta); }
.tf-form input:focus { outline: 0; border-color: var(--marca-2); box-shadow: 0 0 0 4px var(--marca-clara); }
.tf-form .btn { width: 52px; padding: 0; font-size: 26px; }
.tf-cats { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; margin: 10px 0 6px; }
.tf-cats button { flex: none; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 99px; padding: 7px 11px; font-weight: 700; font-size: 13px; color: var(--tinta-2); }
.tf-cats button.ativo { background: var(--marca); border-color: var(--marca); color: #fff; }
.tf-quando { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: var(--cinza); margin-bottom: 10px; }
.tf-quando input { border: 1.5px solid var(--linha); border-radius: 12px; padding: 6px 8px; font: inherit; background: var(--cartao); color: var(--tinta); }
.tf-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.tf-lista li { display: flex; align-items: center; gap: 12px; background: var(--cartao); border: 1px solid var(--linha); border-radius: 18px; padding: 12px 12px 12px 14px; box-shadow: var(--sombra); }
.tf-lista li div { flex: 1; min-width: 0; } .tf-lista li b { display: block; font-size: 15px; transition: color .3s; }
.tf-lista li small { color: var(--cinza); font-size: 12px; font-weight: 600; }
.tf-lista li em { font-style: normal; font-weight: 800; color: var(--tinta-2); } .tf-lista li em.hoje { color: var(--marca); } .tf-lista li em.atraso { color: #c0392b; }
.tf-check { flex: none; width: 30px; height: 30px; border-radius: 50%; border: 2.5px solid var(--marca-2); background: none; color: #fff; font-weight: 900; font-size: 16px; display: grid; place-items: center; }
.tf-lista li.feito { opacity: .6; box-shadow: none; } .tf-lista li.feito b { text-decoration: line-through; color: var(--cinza); }
.tf-lista li.feito .tf-check, .tf-lista li.riscou .tf-check { background: var(--marca); border-color: var(--marca); }
.tf-lista li.riscou { animation: riscou .38s ease; }
@keyframes riscou { 40% { transform: scale(1.04); background: var(--marca-clara); } }
.tf-apagar { flex: none; border: 0; background: none; color: var(--cinza-2); font-size: 22px; padding: 0 4px; }
.tf-vazio { display: grid; justify-items: center; gap: 4px; text-align: center; padding: 28px 18px; border: 2px dashed var(--linha); border-radius: 22px; background: var(--cartao); }
.tf-vazio div { font-size: 38px; } .tf-vazio span { color: var(--cinza); font-size: 14px; }
#tf-limpar { display: block; margin: 10px auto 0; }

/* autocuidado */
.ac-fogo { flex: none; text-align: center; background: linear-gradient(160deg, #ffb36b, var(--marca-2)); color: #fff; border-radius: 18px; padding: 8px 12px; min-width: 74px; box-shadow: var(--sombra); }
.ac-fogo b { display: block; font-size: 26px; line-height: 1; } .ac-fogo small { font-size: 10.5px; font-weight: 800; }
.ac-bloco { margin-bottom: 12px; } .ac-bloco h3 { margin: 0 0 10px; font-size: 16px; display: flex; justify-content: space-between; align-items: baseline; }
.ac-bloco h3 small { color: var(--cinza); font-size: 13px; }
.ac-humor { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.ac-humor button { display: grid; justify-items: center; gap: 2px; border: 1.5px solid var(--linha); background: var(--papel-2); border-radius: 14px; padding: 8px 2px; font-size: 11.5px; font-weight: 700; color: var(--tinta-2); }
.ac-humor button span { font-size: 24px; } .ac-humor button.ativo { border-color: var(--marca); background: var(--marca-clara); color: var(--marca); transform: scale(1.04); }
.ac-copos { display: grid; grid-template-columns: repeat(8, 1fr); gap: 4px; }
.ac-copos button { aspect-ratio: 3 / 4; border: 2px solid #b9dcf5; border-radius: 6px 6px 12px 12px; background: #fff; font-size: 14px; filter: grayscale(1); opacity: .5; transition: all .2s; }
.ac-copos button.cheio { filter: none; opacity: 1; background: linear-gradient(to top, #8fd0ff 70%, #fff 70%); border-color: #5bb5f0; }
.ac-rotina { display: grid; gap: 6px; }
.ac-rotina button { display: flex; align-items: center; gap: 10px; text-align: left; border: 1.5px solid var(--linha); background: var(--papel-2); border-radius: 14px; padding: 10px 12px; font-weight: 700; font-size: 14px; color: var(--tinta); }
.ac-rotina button i { flex: none; width: 22px; height: 22px; border-radius: 7px; border: 2px solid var(--marca-2); display: grid; place-items: center; font-style: normal; color: #fff; font-size: 13px; }
.ac-rotina button.feito { background: var(--marca-clara); border-color: transparent; } .ac-rotina button.feito i { background: var(--marca); border-color: var(--marca); }

/* segurança */
.sg-heroi { background: linear-gradient(150deg, #efe4ff, #ffe4ef); border: 0; }
.sg-heroi h2 { margin: 0 0 6px; } .sg-heroi p, .sg-bloco p { color: var(--tinta-2); font-size: 14px; line-height: 1.5; margin: 0 0 12px; }
.sg-180 { background: #6b2fc9; color: #fff; font-size: 17px; padding: 15px; }
.sg-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.sg-grade .btn { flex-direction: column; gap: 0; line-height: 1.2; } .sg-grade small { font-size: 12px; color: var(--cinza); }
.sg-bloco { margin-top: 12px; display: grid; gap: 8px; } .sg-bloco h3 { margin: 0; } .sg-bloco p { margin: 0; }
.sg-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sg-campos input { min-width: 0; border: 1.5px solid var(--linha); border-radius: 14px; padding: 12px; font: inherit; background: var(--cartao); color: var(--tinta); }

/* ============================================================
   VISUAL 2026 — "Pink Pop"
   Rosa choque + violeta elétrico, letra de título moderna (Bricolage Grotesque),
   tudo o mais branco e limpo. O brilho fica só no que importa: topo, botão principal e aba ativa.
   ============================================================ */
:root {
  --marca: #ff2e93; --marca-2: #ff5fb0; --marca-escura: #8b3dff; --marca-clara: #ffe1f0;
  --acento: #ffe45e; --acento-tinta: #1e0a1a;
  --oferta: #ff2e93; --oferta-escuro: #e0157a; --oferta-clara: #ffe1f0;
  --azul: #8b3dff; --azul-claro: #f0e7ff;
  --tinta: #1e0a1a; --tinta-2: #57405a; --cinza: #8a768a; --cinza-2: #b9a7b8;
  --linha: #f6dcea; --papel: #fff8fc; --papel-2: #fffafd; --cartao: #fff; --noite: #1e0a1a;
  --pastel-1: #ffe1f0; --pastel-2: #efe6ff; --pastel-3: #d9f8ea; --pastel-4: #fff0d6; --pastel-5: #dff1ff; --pastel-6: #fff7c2;
  --grad: linear-gradient(120deg, #ff2e93 0%, #c23cff 55%, #8b3dff 100%);
  --grad-suave: linear-gradient(120deg, #ffe1f0, #f0e7ff);
  --display: "Bricolage Grotesque", "Plus Jakarta Sans", system-ui, sans-serif;
  --sombra: 0 1px 2px rgba(30, 10, 26, .05), 0 12px 30px -16px rgba(139, 61, 255, .28);
  --sombra-alta: 0 2px 6px rgba(30, 10, 26, .06), 0 26px 50px -22px rgba(255, 46, 147, .45);
  --bv-pink: #ff2e93; --bv-pink-escuro: #e0157a; --bv-marca-texto: #ffe45e; --bv-tinta: #1e0a1a;
}
body { background: radial-gradient(700px 380px at 105% -8%, rgba(255, 46, 147, .13), transparent 70%),
                   radial-gradient(600px 360px at -10% 30%, rgba(139, 61, 255, .07), transparent 70%), var(--papel); }

/* letra de título: moderna, firme, apertadinha */
h1, h2, h3, .titulo-secao, .topo-app.simples h1, .topo-app .marca strong, .hub-titulo, .ls-topo h1, .tf-topo h2, .ac-topo h2,
.cuidar-inicio h2, .notas-topo h2, .sobretitulo, .mao, .economia-total span, .bebe-tamanho h3, .ciclo-fase b, .pt-saldo span,
.festa-pontos small, .ap-eyebrow, .ap-marcado, .ap-fase small, .ap-placar, .st-topo {
  font-family: var(--display); letter-spacing: -.035em;
}
.topo-app.simples h1 { font-size: 32px; font-weight: 800; color: var(--tinta); }
.titulo-secao, .hub-titulo { font-size: 21px; font-weight: 800; color: var(--tinta); }
.sobretitulo { font-size: 15px; font-weight: 700; letter-spacing: -.01em; text-transform: none; color: rgba(255,255,255,.85); }
.ap-eyebrow, .ap-marcado, .ap-fase small, .ap-placar { transform: none; font-weight: 800; }
.st-topo { transform: none; font-weight: 800; }
.festa-pontos small { font-size: 24px; font-weight: 800; letter-spacing: -.02em; }
.cuidar-inicio h2, .bebe-tamanho h3 { color: var(--tinta); }

/* marca do topo */
.logo-ic { background: var(--grad) !important; box-shadow: 0 8px 18px -8px rgba(255, 46, 147, .7); }
.topo-app .marca strong { font-size: 20px; font-weight: 800; }

/* cartão de destaque (topo das ofertas): o único lugar com gradiente forte */
.destaque-ofertas { border-radius: 28px; background:
  radial-gradient(260px 180px at 100% 0%, rgba(255, 228, 94, .45), transparent 65%),
  radial-gradient(320px 220px at 0% 110%, rgba(255, 255, 255, .22), transparent 60%), var(--grad);
  box-shadow: 0 24px 50px -24px rgba(194, 60, 255, .7); }
.destaque-ofertas::after { content: none; }
.destaque-ofertas h1 { font-family: var(--display); font-size: 30px; font-weight: 800; line-height: 1.02; letter-spacing: -.04em; }

/* botões */
.btn { border-radius: 18px; font-weight: 800; letter-spacing: -.01em; }
.btn-primario, .btn-primario:active { background: var(--grad); box-shadow: 0 1px 0 rgba(255,255,255,.35) inset, 0 12px 26px -12px rgba(255, 46, 147, .8); }
.btn-lima { background: var(--acento); color: var(--acento-tinta); box-shadow: 0 10px 22px -14px rgba(200, 160, 0, .8); }
.btn-claro { background: var(--marca-clara); color: #d4127a; }
.btn-contorno { border-color: var(--linha); }
.chip.ativo, .tf-cats button.ativo, .seg-carrinho button.ativo, .roteiro button.ativo { background: var(--tinta); border-color: var(--tinta); color: #fff; }

/* barra de abas: pílula flutuante de vidro */
.abas { left: 12px; right: 12px; bottom: calc(10px + env(safe-area-inset-bottom)); border: 1px solid rgba(255,255,255,.7); border-radius: 26px;
  background: rgba(255, 255, 255, .82); backdrop-filter: blur(18px) saturate(1.6); -webkit-backdrop-filter: blur(18px) saturate(1.6);
  box-shadow: 0 18px 40px -18px rgba(30, 10, 26, .35); padding-bottom: 0; max-width: 576px; margin: 0 auto; }
.abas button { color: var(--cinza); }
.abas button.ativo { color: var(--marca); }
.abas button.ativo::before { content: ""; position: absolute; top: 8px; width: 46px; height: 32px; border-radius: 14px; background: var(--marca-clara); z-index: -1; }
.abas button.ativo svg { stroke: var(--marca); }
.tela { padding-bottom: calc(var(--abas) + 46px + env(safe-area-inset-bottom)); }
.tela-carrinho { padding-bottom: calc(var(--abas) + 130px + env(safe-area-inset-bottom)); }
.badge { background: var(--tinta); }

/* cartões: brancos, quietos, borda rosada fina */
.mercado-card, .promo-card, .pb-card, .ls-itens, .ls-grupo, .cartao, .tf-lista li, .hub-item, .pacote { border-color: var(--linha); box-shadow: var(--sombra); }
.hub-item, .pacote { border-radius: 20px; }
.hub-item i { background: var(--grad); }
.ls-total { background: var(--tinta); border-radius: 22px; }
.ls-total strong { font-family: var(--display); font-size: 32px; letter-spacing: -.04em; }
.ls-caminhos button.ativo { border-color: var(--marca); background: var(--marca-clara); color: #d4127a; }
.ajude { background: var(--grad-suave); border-color: rgba(255, 46, 147, .18); }
.faixa-lista { background: var(--grad-suave); }
.pb-card li.barato { background: linear-gradient(90deg, rgba(255, 228, 94, .55), rgba(255, 228, 94, .15)); }
.painel-total { background: var(--grad) !important; }
.ac-fogo { background: var(--grad); }
.sg-180 { background: linear-gradient(120deg, #8b3dff, #5b21d6); }

/* números grandes com a letra de título */
#total, .pt-saldo b, .gest-semanas b, .st-valor, .fim-numeros b, .total-grande b, .ac-fogo b, .tf-anel b { font-family: var(--display); letter-spacing: -.04em; }
/* boas-vindas e apresentação: destaque em gradiente, sem letra de mão */
.bv-texto h1, .ap-titulo { font-family: var(--display); letter-spacing: -.04em; font-weight: 800; }
.bv-texto h1 em, .ap-titulo em { font-family: var(--display); font-size: 1em; font-weight: 800; letter-spacing: -.04em; line-height: 1;
  background: var(--grad); -webkit-background-clip: text; background-clip: text; color: transparent; padding: 0 2px; }
.boas-vindas { background: radial-gradient(520px 360px at 110% -5%, rgba(255, 46, 147, .22), transparent 65%),
  radial-gradient(480px 360px at -15% 100%, rgba(139, 61, 255, .16), transparent 65%), #fff8fc !important; }
.bv-btn-principal, .bv-btn-principal:active { background: var(--grad); box-shadow: 0 16px 30px -14px rgba(255, 46, 147, .8); }
/* cadastro: sou cliente ou vendedora */
.quem-sou { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 16px 12px; }
.quem-sou > * { display: grid; gap: 2px; text-align: center; padding: 12px 8px; border-radius: 18px; border: 2px solid var(--linha); background: #fff;
  font-weight: 800; font-size: 15px; color: var(--tinta); text-decoration: none; }
.quem-sou small { font-weight: 600; font-size: 11.5px; color: var(--cinza); }
.quem-sou .ativo { border-color: var(--marca); background: var(--marca-clara); color: #d4127a; }
.ja-vendo { margin: -4px 16px 12px; text-align: center; font-size: 13px; color: var(--cinza); }
.ja-vendo a { color: #d4127a; font-weight: 800; }
.mercado-card.destacada { box-shadow: 0 0 0 3px var(--marca), var(--sombra-alta); }

/* ============================================================
   ESCOLHA "SOU MULHER / SOU HOMEM"
   ============================================================ */
.ap-quem-tit { margin-bottom: 8px !important; font-weight: 700; }
.ap-quem, .sou-quem { display: flex; gap: 8px; justify-content: center; margin: 0 auto 14px; }
.ap-quem button, .sou-quem button { flex: 1; max-width: 170px; padding: 12px 10px; border-radius: 18px; border: 2px solid var(--linha);
  background: #fff; font: inherit; font-weight: 800; font-size: 15px; color: var(--tinta); cursor: pointer; transition: transform .15s; }
.ap-quem button:active, .sou-quem button:active { transform: scale(.96); }
.ap-quem button.ativo, .sou-quem button.ativo { border-color: transparent; background: var(--grad); color: #fff;
  box-shadow: 0 10px 22px -12px color-mix(in srgb, var(--marca) 80%, transparent); }
.sou-quem { margin: 0 16px 12px; align-items: center; flex-wrap: wrap; }
.sou-quem b { width: 100%; text-align: center; font-size: 13px; color: var(--cinza); }
.sou-quem.cartao { padding: 12px; margin: 0 0 14px; }

/* no modo homem, some o que é só dela (gravidez, ciclo, 180) */
:root[data-publico="ele"] [data-so-ela] { display: none !important; }

/* ============================================================
   VISUAL MASCULINO — "Azul Turbo"
   Azul elétrico + verde-água, detalhe em verde-limão, fundo frio e limpo.
   ============================================================ */
:root[data-publico="ele"] {
  --marca: #1f6bff; --marca-2: #4d8dff; --marca-escura: #0a2a6b; --marca-clara: #e3edff;
  --acento: #c6ff3d; --acento-tinta: #0b1424;
  --oferta: #ff5a1f; --oferta-escuro: #e04408; --oferta-clara: #ffece3;
  --azul: #1f6bff; --azul-claro: #e3edff;
  --tinta: #0b1424; --tinta-2: #3d4a60; --cinza: #6b778c; --cinza-2: #a3adbf;
  --linha: #dfe6f2; --papel: #f4f7fc; --papel-2: #fafcff; --cartao: #fff; --noite: #0b1424;
  --pastel-1: #e3edff; --pastel-2: #dff7f4; --pastel-3: #e6f9d9; --pastel-4: #fff0d6; --pastel-5: #dff1ff; --pastel-6: #f1ffd1;
  --grad: linear-gradient(120deg, #1f6bff 0%, #0fa3c9 55%, #10c48a 100%);
  --grad-suave: linear-gradient(120deg, #e3edff, #dff7f4);
  --sombra: 0 1px 2px rgba(11, 20, 36, .05), 0 12px 30px -16px rgba(31, 107, 255, .28);
  --sombra-alta: 0 2px 6px rgba(11, 20, 36, .06), 0 26px 50px -22px rgba(31, 107, 255, .45);
  --bv-pink: #1f6bff; --bv-pink-escuro: #0a4fd6; --bv-marca-texto: #c6ff3d; --bv-tinta: #0b1424;
  --bv-rosa: #dbe8ff; --bv-rosa-2: #c4d9ff; --bv-lilas: #dff7f4; --bv-margem: #8fb4ff;
}
:root[data-publico="ele"] body { background: radial-gradient(700px 380px at 105% -8%, rgba(31, 107, 255, .13), transparent 70%),
  radial-gradient(600px 360px at -10% 30%, rgba(16, 196, 138, .08), transparent 70%), var(--papel); }
:root[data-publico="ele"] .boas-vindas { background: radial-gradient(520px 360px at 110% -5%, rgba(31, 107, 255, .22), transparent 65%),
  radial-gradient(480px 360px at -15% 100%, rgba(16, 196, 138, .16), transparent 65%), #f4f7fc !important; }
:root[data-publico="ele"] .ap-slide[data-cor="rosa"] { --ap-fundo: #dbe8ff; --ap-forte: #1f6bff; }
:root[data-publico="ele"] .ap-slide[data-cor="amarelo"] { --ap-fundo: #f1ffd1; --ap-forte: #65a30d; }
:root[data-publico="ele"] .ap-slide[data-cor="menta"] { --ap-fundo: #d7f5ef; --ap-forte: #0d9488; }
:root[data-publico="ele"] .ap-slide[data-cor="lilas"] { --ap-fundo: #e2e8f5; --ap-forte: #334155; }
:root[data-publico="ele"] .ap-slide[data-cor="pessego"] { --ap-fundo: #ffe7da; --ap-forte: #ea580c; }
:root[data-publico="ele"] .logo-ic { box-shadow: 0 8px 18px -8px rgba(31, 107, 255, .7); }
:root[data-publico="ele"] .destaque-ofertas { box-shadow: 0 24px 50px -24px rgba(15, 163, 201, .7);
  background: radial-gradient(260px 180px at 100% 0%, rgba(198, 255, 61, .4), transparent 65%),
  radial-gradient(320px 220px at 0% 110%, rgba(255, 255, 255, .2), transparent 60%), var(--grad); }
:root[data-publico="ele"] .btn-primario, :root[data-publico="ele"] .btn-primario:active,
:root[data-publico="ele"] .bv-btn-principal, :root[data-publico="ele"] .bv-btn-principal:active {
  box-shadow: 0 1px 0 rgba(255,255,255,.3) inset, 0 12px 26px -12px rgba(31, 107, 255, .8); }
:root[data-publico="ele"] .btn-lima { box-shadow: 0 10px 22px -14px rgba(100, 160, 0, .8); }
:root[data-publico="ele"] .btn-claro, :root[data-publico="ele"] .ls-caminhos button.ativo,
:root[data-publico="ele"] .quem-sou .ativo, :root[data-publico="ele"] .ja-vendo a { color: #0a4fd6; }
:root[data-publico="ele"] .ajude { border-color: rgba(31, 107, 255, .18); }
:root[data-publico="ele"] .hub-item i, :root[data-publico="ele"] .ac-fogo { background: var(--grad); }
:root[data-publico="ele"] .sg-180 { background: linear-gradient(120deg, #1f6bff, #0a2a6b); }
:root[data-publico="ele"] .boas-vindas { --bv-rosa: #dbe8ff; --bv-rosa-2: #c4d9ff; --bv-pink: #1f6bff; --bv-pink-escuro: #0a4fd6; --bv-lilas: #dff7f4;
  --bv-margem: #8fb4ff; --bv-marca-texto: #c6ff3d; }
:root[data-publico="ele"] .st-topo, :root[data-publico="ele"] .st-quando b, :root[data-publico="ele"] .st-valor { color: #0a4fd6; }
:root[data-publico="ele"] .st-quando b, :root[data-publico="ele"] .st-valor { background: linear-gradient(transparent 58%, #c6ff3d 58% 92%, transparent 92%); }
:root[data-publico="ele"] .st-brilho { color: #10c48a; }
:root[data-publico="ele"] .st-adesivo { background: #0b1424; box-shadow: 0 5px 0 #1f6bff; }

/* redes sociais (do app e das lojas) */
.redes-app { margin: 16px 0; background: #fff; border: 1px solid var(--linha, #f3dfe8); border-radius: 20px; padding: 14px; }
.redes-app > b { display: block; margin-bottom: 10px; }
.redes-bts, .loja-redes { display: flex; flex-wrap: wrap; gap: 8px; }
.loja-redes { margin-top: 10px; }
.rede-bt { display: inline-flex; align-items: center; gap: 6px; padding: 9px 13px; border-radius: 99px; font-weight: 800; font-size: 13.5px; text-decoration: none; color: #fff !important; background: #555; }
.rede-instagram { background: linear-gradient(45deg, #f9a825, #e1306c, #833ab4); } .rede-whatsapp { background: #25d366; } .rede-facebook { background: #1877f2; }
.rede-tiktok { background: #111; } .rede-youtube { background: #ff0000; } .rede-site { background: #475569; }

/* agenda: ocupados, fotos, descrição e situação do pedido */
.ag-hora.ocupado { display: grid; place-items: center; line-height: 1.1; color: #9aa0a6; background: #f1f2f4; border-color: #e3e5e8; text-decoration: line-through; cursor: not-allowed; }
.ag-hora.ocupado small { font-size: 10.5px; font-weight: 700; text-decoration: none; }
.ag-servico.com-foto { grid-template-columns: 64px 1fr auto; }
.ag-servico.com-foto img { grid-row: 1 / span 2; width: 64px; height: 64px; object-fit: cover; border-radius: 12px; }
.ag-servico.com-foto strong, .ag-servico.com-foto span { grid-column: 2; }
.ag-servico.com-foto b { grid-column: 3; }
.ag-desc { grid-column: 1 / -1; margin: 6px 0 0; color: var(--cinza); font-size: 13.5px; line-height: 1.4; white-space: pre-line; }
.ag-modo { background: #fffbea; border: 1px solid #f3dc8a; color: #7a5200; border-radius: 14px; padding: 10px 12px; font-size: 14px; font-weight: 600; }
.ag-sit { display: inline-block; margin-top: 4px; padding: 3px 9px; border-radius: 99px; font-size: 12px; font-weight: 800; }
.ag-sit.ok { background: #e6f9ef; color: #0f8a5f; } .ag-sit.esperando { background: #fff6cc; color: #7a5200; } .ag-sit.recusado { background: #ffe4e4; color: #b42318; }
.compromisso.recusado { opacity: .9; border-color: #f5b5b5; }

/* pedido online */
.btn-pedido { width: 100%; margin-top: 10px; background: linear-gradient(120deg, #10b981, #0ea5e9); color: #fff; border: 0; font-weight: 800; }
#pd-busca { margin: 4px 0 8px; }
.pd-cats { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; }
.pd-cats button { flex: none; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 99px; padding: 7px 13px; font-weight: 700; font-size: 14px; }
.pd-cats button[aria-pressed="true"] { border-color: var(--marca); background: var(--pastel-1); color: var(--marca); }
.pd-itens { display: grid; gap: 8px; padding-bottom: 8px; }
.pd-cat { margin: 10px 0 0; font-size: 15px; color: var(--cinza); text-transform: uppercase; letter-spacing: .04em; }
.pd-item { display: flex; gap: 10px; align-items: center; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 16px; padding: 10px 12px; }
.pd-item img { width: 58px; height: 58px; object-fit: cover; border-radius: 12px; flex: none; }
.pd-txt { flex: 1; min-width: 0; display: grid; gap: 2px; }
.pd-txt small { color: var(--cinza); font-size: 13px; line-height: 1.3; }
.pd-txt b { color: var(--marca); }
.pd-meio { justify-self: start; margin-top: 4px; border: 1px dashed var(--marca); color: var(--marca); background: transparent; border-radius: 99px; padding: 3px 10px; font-size: 12.5px; font-weight: 700; }
.pd-qtd { display: flex; align-items: center; gap: 8px; }
.pd-qtd button { width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--marca); color: #fff; font-size: 20px; font-weight: 800; line-height: 1; }
.pd-qtd span { min-width: 18px; text-align: center; font-weight: 800; }
.pd-barra { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: var(--cartao); padding: 12px 0 4px; border-top: 1px solid var(--linha); }
.pd-barra small { display: block; color: var(--cinza); } .pd-barra b { font-size: 20px; }
.pd-barra .btn { flex: none; }
.pd-resumo { background: var(--pastel-1); border-radius: 14px; padding: 10px 12px; margin-bottom: 10px; }
.pd-resumo p { margin: 4px 0; display: flex; justify-content: space-between; gap: 8px; } .pd-resumo .tot { font-size: 17px; border-top: 1px dashed var(--linha); padding-top: 6px; }
#pd-modo { margin-bottom: 10px; }
.pd-pag { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 10px; }
.pd-pag button { border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 12px; padding: 12px 0; font-weight: 800; }
.pd-pag button[aria-pressed="true"] { border-color: var(--marca); background: var(--pastel-1); box-shadow: 0 0 0 2px var(--marca) inset; }
#pd-busca { width: 100%; font: inherit; padding: 11px 14px; border: 1.5px solid var(--linha); border-radius: 14px; background: var(--cartao); }

/* ============================================================
   APRESENTAÇÃO (primeira página do paipeviews.com) — neutra, pros dois públicos
   ============================================================ */
.en { position: fixed; inset: 0; z-index: 90; overflow-y: auto; overflow-x: hidden; background: #0d0a1a; color: #fff;
  font-family: "Plus Jakarta Sans", system-ui, sans-serif; -webkit-overflow-scrolling: touch; }
.en::before { content: ""; position: absolute; inset: -20% -40% auto; height: 760px; pointer-events: none;
  background: radial-gradient(420px 360px at 15% 25%, rgba(255, 46, 147, .55), transparent 70%),
              radial-gradient(420px 380px at 85% 30%, rgba(31, 107, 255, .55), transparent 70%),
              radial-gradient(360px 300px at 50% 75%, rgba(155, 92, 246, .45), transparent 70%); filter: blur(10px); animation: en-luz 12s ease-in-out infinite alternate; }
@keyframes en-luz { to { transform: translate3d(0, 40px, 0) scale(1.08); } }
.en > * { position: relative; }
.en-topo { display: flex; align-items: center; justify-content: space-between; padding: max(16px, env(safe-area-inset-top)) 18px 0; max-width: 560px; margin: 0 auto; }
.en-marca { display: flex; align-items: center; gap: 10px; font-family: "Bricolage Grotesque", sans-serif; font-size: 18px; letter-spacing: -.02em; }
.en-marca i { font-style: normal; opacity: .7; font-weight: 600; }
.en-pin { width: 30px; height: 30px; border-radius: 10px; background: linear-gradient(135deg, #ff2e93, #8b3dff 55%, #1f6bff); position: relative; box-shadow: 0 6px 18px -6px rgba(255, 46, 147, .8); }
.en-pin::after { content: ""; position: absolute; inset: 7px 8px 6px; background: #fff27a;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 30'%3E%3Cpath d='M12 0C5.4 0 0 5.2 0 11.7 0 20.4 12 30 12 30s12-9.6 12-18.3C24 5.2 18.6 0 12 0zm0 16a4.5 4.5 0 110-9 4.5 4.5 0 010 9z'/%3E%3C/svg%3E") center/contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 30'%3E%3Cpath d='M12 0C5.4 0 0 5.2 0 11.7 0 20.4 12 30 12 30s12-9.6 12-18.3C24 5.2 18.6 0 12 0zm0 16a4.5 4.5 0 110-9 4.5 4.5 0 010 9z'/%3E%3C/svg%3E") center/contain no-repeat; }
.en-entrar { border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .08); color: #fff; border-radius: 99px; padding: 8px 16px; font: 700 14px inherit; font-family: inherit; backdrop-filter: blur(6px); }
.en-heroi { max-width: 560px; margin: 0 auto; padding: 34px 20px 10px; }
.en-selo { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 18px; padding: 7px 14px; border-radius: 99px; background: rgba(255, 255, 255, .09);
  border: 1px solid rgba(255, 255, 255, .14); font-size: 13.5px; font-weight: 700; }
.en-ponto { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 0 rgba(52, 211, 153, .7); animation: en-pulso 1.8s infinite; }
@keyframes en-pulso { 70% { box-shadow: 0 0 0 9px rgba(52, 211, 153, 0); } 100% { box-shadow: 0 0 0 0 rgba(52, 211, 153, 0); } }
.en-titulo { font-family: "Bricolage Grotesque", sans-serif; font-weight: 800; font-size: clamp(40px, 11vw, 60px); line-height: .98; letter-spacing: -.045em; margin: 0 0 16px; }
.en-titulo span { background: linear-gradient(100deg, #ff6bb5, #c084fc 45%, #60a5fa); -webkit-background-clip: text; background-clip: text; color: transparent; }
.en-sub { font-size: 17px; line-height: 1.5; color: rgba(255, 255, 255, .78); margin: 0 0 24px; max-width: 30em; }
.en-sub b { color: #fff27a; }
.en-ctas { display: grid; gap: 10px; }
.en-btn { border: 0; border-radius: 18px; padding: 17px 20px; font-family: inherit; font-weight: 800; font-size: 17px; cursor: pointer; transition: transform .12s; }
.en-btn:active { transform: scale(.97); }
.en-btn-principal { background: #fff27a; color: #1a1030; box-shadow: 0 16px 34px -14px rgba(255, 242, 122, .75); }
.en-btn-principal span { display: inline-block; transition: transform .2s; } .en-btn-principal:hover span { transform: translateX(4px); }
.en-btn-principal:disabled { opacity: .45; box-shadow: none; }
.en-btn-vidro { background: rgba(255, 255, 255, .08); color: #fff; border: 1px solid rgba(255, 255, 255, .2); }
.en-palco { position: relative; height: 330px; margin: 34px 0 6px; }
.en-card { position: absolute; display: flex; gap: 12px; align-items: center; padding: 12px 16px 12px 12px; border-radius: 20px; background: rgba(255, 255, 255, .96); color: #1a1030;
  box-shadow: 0 24px 40px -22px rgba(0, 0, 0, .8); width: min(300px, 82%); animation: en-flutua 6s ease-in-out infinite; }
.en-card > span { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; font-size: 24px; background: #f4efff; flex: none; }
.en-card b { display: block; font-size: 14.5px; } .en-card small { color: #6b6280; font-weight: 600; font-size: 12.5px; }
.en-card.c1 { top: 0; left: 0; transform: rotate(-3deg); }
.en-card.c2 { top: 82px; right: 0; animation-delay: -1.5s; transform: rotate(2deg); }
.en-card.c3 { top: 164px; left: 4%; animation-delay: -3s; transform: rotate(-1deg); }
.en-card.c4 { top: 246px; right: 3%; animation-delay: -4.5s; transform: rotate(3deg); }
@keyframes en-flutua { 50% { translate: 0 -8px; } }
.en-faixa { overflow: hidden; padding: 14px 0; border-block: 1px solid rgba(255, 255, 255, .1); background: rgba(255, 255, 255, .04); margin-top: 18px; }
.en-faixa-trilho { display: flex; gap: 10px; width: max-content; animation: en-rolar 40s linear infinite; }
.en-faixa-trilho span { white-space: nowrap; padding: 8px 14px; border-radius: 99px; background: rgba(255, 255, 255, .08); font-weight: 700; font-size: 14px; }
@keyframes en-rolar { to { transform: translateX(-50%); } }
.en-corpo { max-width: 560px; margin: 0 auto; padding: 26px 20px max(30px, env(safe-area-inset-bottom)); }
.en-recursos { display: grid; gap: 12px; }
.en-recursos article { padding: 18px; border-radius: 22px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); }
.en-recursos span { font-size: 30px; } .en-recursos h3 { margin: 8px 0 6px; font-family: "Bricolage Grotesque", sans-serif; font-size: 21px; letter-spacing: -.02em; }
.en-recursos p { margin: 0; color: rgba(255, 255, 255, .72); line-height: 1.5; font-size: 15px; }
.en-lojista { margin-top: 18px; padding: 22px 20px; border-radius: 26px; background: linear-gradient(135deg, #ff2e93, #8b3dff 55%, #1f6bff); display: grid; gap: 16px; }
.en-lojista h3 { margin: 4px 0 10px; font-family: "Bricolage Grotesque", sans-serif; font-size: 25px; line-height: 1.05; letter-spacing: -.03em; }
.en-lojista ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-weight: 700; font-size: 15px; }
.en-mini { margin: 0; text-transform: uppercase; letter-spacing: .12em; font-size: 11.5px; font-weight: 800; opacity: .8; }
.en-rodape { text-align: center; color: rgba(255, 255, 255, .55); font-size: 14px; margin: 26px 0 0; }
.en-rodape a { color: #fff; }
/* folha "deixa com a sua cara" */
#en-cara { z-index: 95; }
.en-folha { text-align: left; }
.en-folha .en-mini { color: var(--marca); opacity: 1; }
.en-folha-tit { font-family: "Bricolage Grotesque", sans-serif; font-size: 27px; letter-spacing: -.03em; margin: 6px 0 12px; }
.en-folha-sub { font-weight: 800; margin: 14px 0 8px; } .en-folha-sub small { font-weight: 600; color: var(--cinza); }
.en-quem { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.en-quem button { position: relative; overflow: hidden; display: grid; place-items: center; gap: 4px; padding: 18px 8px; border-radius: 20px; border: 2px solid var(--linha); background: var(--cartao); font-family: inherit; }
.en-quem button span { font-size: 34px; } .en-quem button b { font-size: 16px; }
.en-quem button i { position: absolute; inset: auto 0 0; height: 6px; }
.en-quem [data-en-pub="ela"] i { background: linear-gradient(90deg, #ff2e93, #c23cff); } .en-quem [data-en-pub="ele"] i { background: linear-gradient(90deg, #1f6bff, #10c48a); }
.en-quem button[aria-pressed="true"] { border-color: var(--marca); box-shadow: 0 0 0 3px var(--marca-clara); }
.en-ints { display: flex; flex-wrap: wrap; gap: 8px; }
.en-ints button { border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 99px; padding: 9px 13px; font: 700 14px inherit; font-family: inherit; }
.en-ints button[aria-pressed="true"] { border-color: var(--marca); background: var(--marca-clara); color: var(--marca); }
.en-largo { width: 100%; margin-top: 18px; }
.en-folha .en-btn-principal { background: var(--marca); color: #fff; box-shadow: none; }
.en-aviso { text-align: center; color: var(--cinza); font-size: 13px; margin: 4px 0 0; }
@media (min-width: 720px) { .en-ctas { grid-template-columns: auto auto; justify-content: start; } .en-recursos { grid-template-columns: repeat(3, 1fr); } }
@media (prefers-reduced-motion: reduce) { .en::before, .en-card, .en-faixa-trilho, .en-ponto { animation: none; } }

/* ---- melhor compra: catálogo, preço x qualidade, compensa ---- */
.ls-caminhos.quatro { grid-template-columns: repeat(4, 1fr); gap: 6px; }
.ls-caminhos.quatro button { font-size: 11.5px; padding: 9px 2px; }
.ls-catalogo { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin: 6px 16px 4px; }
.ls-cat { display: grid; justify-items: center; gap: 1px; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 14px; padding: 8px 2px; font: inherit; color: var(--tinta); }
.ls-cat span { font-size: 22px; } .ls-cat b { font-size: 12px; text-align: center; line-height: 1.1; }
.ls-cat small { font-size: 10px; color: var(--tinta-2); text-align: center; }
.ls-cat.ok { border-color: #16a34a; background: #ecfdf3; } .ls-cat.ok small { color: #15803d; font-weight: 800; }
.ls-marca { display: inline-block; margin-top: 4px; border: 0; border-radius: 999px; padding: 3px 9px; font: inherit; font-size: 11.5px; font-weight: 800; background: #ecfdf3; color: #15803d; }
.ls-marca.q { background: #fff7d6; color: #a16207; }
.ls-transporte { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 14px 16px 0; font-size: 13px; font-weight: 700; color: var(--tinta-2); }
.ls-transporte button { border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 999px; padding: 6px 10px; font: inherit; font-weight: 800; color: var(--tinta-2); }
.ls-transporte button.ativo { border-color: var(--marca); background: var(--marca-clara); color: var(--marca); }
.ls-transporte label { display: flex; align-items: center; gap: 3px; }
.ls-transporte input { width: 62px; border: 1.5px solid var(--linha); border-radius: 10px; padding: 6px; font: inherit; }
.ls-ops { display: grid; gap: 6px; margin: 10px 0; }
.ls-op { display: flex; justify-content: space-between; align-items: center; gap: 10px; border: 1.5px solid var(--linha); border-radius: 14px; padding: 10px 12px; background: var(--cartao); }
.ls-op span { display: block; font-size: 11.5px; font-weight: 800; color: var(--tinta-2); } .ls-op b { display: block; font-size: 14px; }
.ls-op small { font-size: 12px; color: var(--tinta-2); } .ls-op em { font-style: normal; font-weight: 900; font-size: 16px; white-space: nowrap; }
.ls-op.top { border-color: #16a34a; background: #ecfdf3; } .ls-op.top em { color: #15803d; }
.mc-lista { display: grid; gap: 6px; max-height: 55vh; overflow: auto; }
.mc-op { display: flex; gap: 10px; align-items: center; text-align: left; border: 1.5px solid var(--linha); background: var(--cartao); border-radius: 14px; padding: 10px; font: inherit; color: var(--tinta); }
.mc-op span { font-size: 22px; } .mc-op b { display: block; font-size: 14px; } .mc-op small { color: var(--tinta-2); font-size: 12px; }
.mc-op.ativo { border-color: var(--marca); background: var(--marca-clara); }
.ls-cat-mais { grid-column: 1 / -1; border: 0; background: none; font: inherit; font-weight: 800; font-size: 13px; color: var(--marca); padding: 6px; }

/* ===== COMPARADOR (tela inicial) ===== */
.cp { margin: 6px 16px 18px; padding: 18px 16px 16px; border-radius: 26px; background: #0f1a14; color: #fff; position: relative; overflow: hidden; }
.cp::before { content: ''; position: absolute; inset: -40% -30% auto auto; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle, rgba(52,211,153,.35), transparent 70%); pointer-events: none; }
.cp-selo { display: flex; align-items: center; gap: 8px; margin: 0 0 8px; font-size: 12.5px; color: #a7f3d0; }
.cp-selo span { width: 8px; height: 8px; border-radius: 50%; background: #34d399; box-shadow: 0 0 0 4px rgba(52,211,153,.2); animation: cpPulso 2s infinite; }
@keyframes cpPulso { 50% { box-shadow: 0 0 0 8px rgba(52,211,153,0); } }
.cp-tit { margin: 0 0 14px; font-size: 27px; line-height: 1.1; letter-spacing: -.02em; color: #fff; }
.cp-tit em { font-style: normal; color: #4ade80; }
.cp-busca { display: flex; align-items: center; gap: 8px; background: #fff; border-radius: 18px; padding: 6px 6px 6px 14px; position: relative; }
.cp-busca svg { width: 20px; height: 20px; fill: none; stroke: #64748b; stroke-width: 2.2; stroke-linecap: round; flex: none; }
.cp-busca input { flex: 1; min-width: 0; border: 0; outline: 0; font: inherit; font-size: 16px; color: #0f172a; background: none; padding: 8px 0; }
.cp-busca button { border: 0; border-radius: 13px; background: #16a34a; color: #fff; font: inherit; font-weight: 800; font-size: 14px; padding: 11px 14px; }
.cp-chips { display: flex; gap: 6px; overflow-x: auto; margin: 10px -16px 2px; padding: 0 16px 4px; scrollbar-width: none; }
.cp-chips::-webkit-scrollbar { display: none; }
.cp-chips button { flex: none; border: 1px solid rgba(255,255,255,.18); background: rgba(255,255,255,.08); color: #fff; border-radius: 999px; padding: 7px 12px; font: inherit; font-size: 13px; font-weight: 700; }
.cp-res:empty { display: none; }
.cp-res { margin-top: 12px; display: grid; gap: 10px; }
.cp-res .esqueleto { height: 140px; border-radius: 18px; background: rgba(255,255,255,.08); }
.cp-geral { background: rgba(74,222,128,.14); border: 1px solid rgba(74,222,128,.35); border-radius: 14px; padding: 10px 12px; font-size: 13.5px; color: #dcfce7; }
.cp-geral span { color: #a7f3d0; }
.cp-prod { background: #fff; color: #0f172a; border-radius: 18px; padding: 12px; }
.cp-prod header { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.cp-prod header b { font-size: 15px; } .cp-prod header small { color: #64748b; font-size: 12px; white-space: nowrap; }
.cp-linha { position: relative; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 12px; margin-bottom: 5px; z-index: 0; }
.cp-linha i { position: absolute; inset: 0 auto 0 0; width: var(--w); background: #f1f5f9; border-radius: 12px; z-index: -1; }
.cp-linha.top i { background: #dcfce7; }
.cp-linha b { display: block; font-size: 13.5px; } .cp-linha small { display: block; color: #64748b; font-size: 11.5px; }
.cp-linha em { font-style: normal; font-weight: 900; font-size: 15px; white-space: nowrap; text-align: right; }
.cp-linha.top em { color: #15803d; }
.cp-linha u { display: block; text-decoration: none; font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; color: #16a34a; }
.cp-prod footer { display: flex; justify-content: space-between; align-items: center; gap: 8px; margin-top: 8px; font-size: 12.5px; color: #334155; }
.cp-prod footer b { color: #15803d; }
.btn-pill { flex: none; border: 0; border-radius: 999px; background: #0f172a; color: #fff; font: inherit; font-weight: 800; font-size: 12.5px; padding: 8px 12px; }
.btn-pill.ok { background: #16a34a; }
.cp-mais { margin: 4px 0 0; font-size: 12px; color: #64748b; text-align: center; }
.cp-res > .cp-mais { color: #a7f3d0; }
.cp-vazio { display: grid; gap: 8px; background: #fff; color: #0f172a; border-radius: 18px; padding: 14px; text-align: center; }
.cp-vazio span { font-size: 13px; color: #475569; }
.cp-lista { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 12px; border: 0; border-radius: 18px; background: #4ade80; color: #052e16; padding: 13px 14px; text-align: left; font: inherit; }
.cp-lista > span { font-size: 28px; } .cp-lista b { display: block; font-size: 15.5px; } .cp-lista small { font-size: 12.5px; color: #14532d; }
.cp-lista i { margin-left: auto; font-style: normal; font-size: 24px; font-weight: 900; }
.cp-ajudar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 8px; }
.cp-ajudar button { display: grid; justify-items: start; gap: 1px; border: 1px solid rgba(255,255,255,.16); background: rgba(255,255,255,.07); color: #fff; border-radius: 16px; padding: 10px 12px; font: inherit; text-align: left; }
.cp-ajudar span { font-size: 20px; } .cp-ajudar b { font-size: 14px; } .cp-ajudar small { color: #fde68a; font-weight: 800; font-size: 12px; }
.cp-num { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 12px; text-align: center; }
.cp-num div { background: rgba(255,255,255,.06); border-radius: 14px; padding: 8px 4px; }
.cp-num b { display: block; font-size: 20px; color: #4ade80; } .cp-num small { font-size: 11px; color: #cbd5e1; }
.cp-num p { grid-column: 1 / -1; margin: 0; font-size: 13px; color: #d1fae5; text-align: left; background: rgba(255,255,255,.06); border-radius: 14px; padding: 10px 12px; }
.cp-feed { margin-top: 14px; }
.cp-feed h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 13px; color: #a7f3d0; text-transform: uppercase; letter-spacing: .05em; }
.cp-feed h3 span { width: 7px; height: 7px; border-radius: 50%; background: #f87171; animation: cpPulso 2s infinite; }
.cp-feed button { display: flex; width: 100%; justify-content: space-between; align-items: center; gap: 10px; border: 0; border-top: 1px solid rgba(255,255,255,.08); background: none; color: #fff; padding: 9px 2px; font: inherit; text-align: left; }
.cp-feed b { display: block; font-size: 13.5px; } .cp-feed small { color: #94a3b8; font-size: 11.5px; }
.cp-feed em { font-style: normal; font-weight: 900; color: #4ade80; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) { .cp-selo span, .cp-feed h3 span { animation: none; } }

/* ===== landing: comparação ===== */
.en-comp { position: relative; margin: 48px auto 70px; max-width: 360px; padding: 14px; border-radius: 24px; background: rgba(255,255,255,.97); color: #0f172a; box-shadow: 0 30px 60px -20px rgba(0,0,0,.45); transform: rotate(-1.5deg); }
.en-comp-topo { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; }
.en-comp-topo > span { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; font-size: 24px; background: #f1f5f9; }
.en-comp-topo b { display: block; font-size: 15px; } .en-comp-topo small { color: #64748b; font-size: 12px; }
.en-comp-linha { position: relative; display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; margin-bottom: 6px; z-index: 0; font-size: 14px; }
.en-comp-linha i { position: absolute; inset: 0 auto 0 0; width: 0; background: #f1f5f9; border-radius: 12px; z-index: -1; animation: enBarra 1.2s .4s cubic-bezier(.2,.8,.2,1) forwards; }
.en-comp-linha.top i { background: #bbf7d0; }
.en-comp-linha:nth-child(3) i { animation-delay: .6s; } .en-comp-linha:nth-child(4) i { animation-delay: .8s; }
@keyframes enBarra { to { width: var(--w); } }
.en-comp-linha em { margin-left: auto; font-style: normal; font-weight: 900; }
.en-comp-linha.top em { color: #15803d; }
.en-comp-linha u { text-decoration: none; font-size: 10px; font-weight: 800; text-transform: uppercase; color: #fff; background: #16a34a; border-radius: 999px; padding: 3px 7px; }
.en-comp-eco { margin: 8px 0 16px; font-size: 13.5px; text-align: center; color: #166534; }
.en-card.c-mini { padding: 8px 12px 8px 8px; border-radius: 16px; }
.en-card.c-mini > span { width: 34px; height: 34px; font-size: 18px; border-radius: 10px; }
.en-card.c-mini b { font-size: 13px; } .en-card.c-mini small { font-size: 11.5px; }
.en-comp .en-card.c1 { top: -26px; right: -14px; left: auto; transform: rotate(4deg); }
.en-comp .en-card.c2 { top: auto; bottom: -50px; left: -12px; right: auto; transform: rotate(-3deg); }
.en-centro { text-align: center; margin-top: 18px; }
.en-passos { grid-template-columns: 1fr; }
@media (min-width: 720px) { .en-passos { grid-template-columns: repeat(4, 1fr); } }
.en-passos article p b { color: inherit; }
.en-tambem { text-align: center; font-size: 14px; opacity: .8; margin: 14px 0 22px; }
@media (prefers-reduced-motion: reduce) { .en-comp-linha i { animation: none; width: var(--w); } }
/* preço: o mais barato verde, os outros vermelhos */
.cp-linha em, .en-comp-linha em { color: #dc2626; }
.cp-linha.top em, .en-comp-linha.top em { color: #16a34a; }
.cp-linha u.caro { color: #dc2626; }
.ls-op em { color: #dc2626; } .ls-op.top em { color: #16a34a; }
.pv { color: #16a34a; font-weight: 800; } .pr { color: #dc2626; font-weight: 800; }
/* + e − ao lado do produto */
.mm { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.mm-b { width: 36px; height: 36px; border-radius: 50%; border: 0; font: inherit; font-size: 22px; font-weight: 900; line-height: 1; display: grid; place-items: center; padding: 0; }
.mm-b.mais { background: #16a34a; color: #fff; }
.mm-b.menos { background: #fee2e2; color: #dc2626; }
.mm b { min-width: 18px; text-align: center; font-size: 15px; }
.ls-cat .mm { margin-top: 5px; gap: 4px; }
.ls-cat .mm-b { width: 30px; height: 30px; font-size: 19px; }
.ls-cat .mm b { font-size: 13px; min-width: 14px; }
.ls-catalogo { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ls-cat .mm-b { width: 27px; height: 27px; font-size: 18px; }
.ls-cat .mm { gap: 3px; }

/* ============================================================
   IDENTIDADE "FEIRA" — uma cor só (verde), papel claro, etiqueta amarela.
   Vale pra todo mundo (ela e ele). Vermelho e verde ficam pros preços.
   ============================================================ */
:root, :root[data-publico="ela"], :root[data-publico="ele"] {
  --marca: #0e7a43; --marca-2: #129b52; --marca-escura: #0b4f33; --marca-clara: #e3f4e9;
  --acento: #ffd83d; --acento-tinta: #13241b;
  --oferta: #d7372b; --oferta-escuro: #b42318; --oferta-clara: #fdeceA;
  --azul: #0e7a43; --azul-claro: #e3f4e9; --amarelo: #ffd83d; --amarelo-claro: #fff7d1; --amarelo-tinta: #6b4e00;
  --tinta: #13241b; --tinta-2: #3e4f45; --cinza: #6b7a71; --cinza-2: #a3afa8;
  --linha: #e2e8e3; --papel: #f3f5f1; --papel-2: #fafbf9; --cartao: #fff; --noite: #0b2618;
  --pastel-1: #e3f4e9; --pastel-2: #eef2ee; --pastel-3: #e3f4e9; --pastel-4: #fff7d1; --pastel-5: #eef2ee; --pastel-6: #fff7d1;
  --grad: linear-gradient(135deg, #0b4f33, #0e7a43); --grad-suave: linear-gradient(135deg, #e3f4e9, #f3f5f1);
  --sombra: 0 1px 2px rgba(19, 36, 27, .06), 0 10px 24px -16px rgba(19, 36, 27, .28);
  --sombra-alta: 0 2px 6px rgba(19, 36, 27, .07), 0 22px 44px -22px rgba(19, 36, 27, .4);
  --bv-pink: #0e7a43; --bv-pink-escuro: #0b4f33; --bv-marca-texto: #ffd83d; --bv-tinta: #13241b;
  --preco-bom: #12923f; --preco-caro: #d7372b;
}
body, :root[data-publico="ele"] body { background: var(--papel); }
.preco, .cp-linha em, .cp-num b, .cp-feed em, .ls-op em, .en-comp-linha em, .ls-total b, .cp-prod footer b { font-family: "Bricolage Grotesque", sans-serif; font-variant-numeric: tabular-nums; letter-spacing: -.01em; }

/* topo e abas */
.topo-app .marca strong { font-family: "Bricolage Grotesque", sans-serif; font-weight: 800; letter-spacing: -.03em; }
.logo-ic, :root[data-publico="ele"] .logo-ic { box-shadow: none; }
.abas { border-top: 1px solid var(--linha); }

/* promoções: bloco verde sóbrio, sem brilho */
.destaque-ofertas, :root[data-publico="ele"] .destaque-ofertas { background: var(--marca-escura); box-shadow: none; }
.sobretitulo { text-transform: none; letter-spacing: 0; font-size: 14px; }

/* comparador: a peça principal */
.cp { background: var(--marca-escura); border-radius: 28px; padding: 20px 16px 16px; }
.cp::before { display: none; }
.cp-selo { color: #bfe6cd; font-weight: 600; }
.cp-selo span { background: var(--acento); box-shadow: 0 0 0 4px rgba(255, 216, 61, .18); }
.cp-tit { font-family: "Bricolage Grotesque", sans-serif; font-weight: 800; font-size: 32px; letter-spacing: -.035em; line-height: 1.02; }
.cp-tit em { color: inherit; }
.cp-busca { border-radius: 16px; box-shadow: 0 10px 30px -14px rgba(0, 0, 0, .5); }
.cp-busca button { background: var(--acento); color: var(--acento-tinta); border-radius: 12px; }
.cp-chips button { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .14); font-weight: 600; }
.cp-geral { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .14); color: #fff; }
.cp-geral span { color: #bfe6cd; }
.cp-prod { border-radius: 20px; padding: 14px; }
.cp-prod header b { font-family: "Bricolage Grotesque", sans-serif; font-size: 17px; letter-spacing: -.02em; }
.cp-linha { border-radius: 10px; }
.cp-linha i { background: #f1f3f0; border-radius: 10px; }
.cp-linha.top i { background: #e3f4e9; }
.cp-linha em { font-size: 17px; color: var(--preco-caro); }
.cp-linha.top em { color: var(--preco-bom); }
.cp-linha u { text-transform: none; letter-spacing: 0; font-size: 11px; font-family: "Plus Jakarta Sans", sans-serif; color: var(--preco-bom); }
.cp-linha u.caro { color: var(--preco-caro); }
.cp-lista { background: #fff; color: var(--tinta); border-radius: 18px; }
.cp-lista small { color: var(--cinza); } .cp-lista i { color: var(--marca); }
.cp-ajudar button { border-radius: 16px; }
.cp-ajudar small { color: var(--acento); }
.cp-num div { background: rgba(255, 255, 255, .06); }
.cp-num b { color: #fff; font-size: 24px; } .cp-num small { color: #bfe6cd; }
.cp-feed h3 { text-transform: none; letter-spacing: 0; font-size: 15px; color: #fff; font-family: "Bricolage Grotesque", sans-serif; }
.cp-feed h3 span { background: var(--acento); }
.cp-feed small { color: #9fc4ad; } .cp-feed em { color: #fff; font-size: 16px; }
.mm-b.mais { background: var(--marca-2); }
.mm-b.menos { background: #fdeceA; color: var(--preco-caro); }
.ls-prontas { text-transform: none; letter-spacing: 0; font-size: 15px; color: var(--tinta); font-family: "Bricolage Grotesque", sans-serif; }
.ls-prontas small { font-family: "Plus Jakarta Sans", sans-serif; font-size: 12px; color: var(--cinza); font-weight: 600; margin-left: 4px; }

/* entrada: verde-mata, sem roxo nem rosa */
.en { background: #0b2618; }
.en::before { background: radial-gradient(closest-side, rgba(18, 155, 82, .35), transparent) !important; }
.en-pin { background: var(--acento); box-shadow: none; }
.en-pin::after { background: #0b4f33; }
.en-titulo span { background: none; color: #fff; -webkit-text-fill-color: #fff; }
.en-sub b { color: var(--acento); }
.en-btn-principal { background: var(--acento); color: var(--acento-tinta); box-shadow: 0 14px 30px -14px rgba(255, 216, 61, .6); }
.en-mini { text-transform: none; letter-spacing: 0; font-size: 15px; font-weight: 700; opacity: .75; }
.en-recursos article { background: rgba(255, 255, 255, .05); border-color: rgba(255, 255, 255, .09); }
.en-lojista { background: #0e7a43; }
.en-comp-linha u { text-transform: none; background: var(--preco-bom); font-size: 11px; }
.en-comp-linha.top i { background: #d6f0df; }
.en-comp-linha em { color: var(--preco-caro); font-size: 16px; }
.en-comp-linha.top em { color: var(--preco-bom); }
.en-card > span { background: #eef2ee; }
.ajude, :root[data-publico="ele"] .ajude { background: #fff; border-color: var(--linha); }
.btn-primario, .btn-primario:active, .bv-btn-principal, .bv-btn-principal:active,
:root[data-publico="ele"] .btn-primario, :root[data-publico="ele"] .bv-btn-principal { background: var(--marca); box-shadow: 0 10px 22px -14px rgba(14, 122, 67, .9); }
.logo-ic, :root[data-publico="ele"] .logo-ic { background: var(--marca) !important; }
.boas-vindas, :root[data-publico="ele"] .boas-vindas { background: var(--papel) !important; }
.sg-heroi { background: var(--marca-clara); }
.btn-lima, :root[data-publico="ele"] .btn-lima { box-shadow: none; }

/* ============================================================
   PAIPE · "PREGÃO" — a bolsa de preços
   Painel escuro de cotação, verde = melhor preço/rendimento, vermelho = mais caro.
   ============================================================ */
:root {
  --pg: #0b1324; --pg-2: #111c31; --pg-3: #17243d; --pg-linha: #22314d; --pg-txt: #e9eef7; --pg-mut: #8d9bb4;
  --alta: #20c262; --queda: #f0443a; --ouro: #f5c242;
  --marca: #0b1324; --marca-2: #20c262; --marca-escura: #0b1324; --marca-clara: #e7f8ee;
  --acento: #f5c242; --acento-tinta: #0b1324;
  --preco-bom: #12a150; --preco-caro: #e0362c;
}
:root[data-publico="ela"], :root[data-publico="ele"] { --marca: #0b1324; --marca-2: #20c262; --marca-escura: #0b1324; --marca-clara: #e7f8ee; --acento: #f5c242; --acento-tinta: #0b1324; }
.num, .cp-prod header b, .cp-linha em, .cp-geral em, .tk em, .cp-num b, .cp-feed em, .ls-rende b, .en-cota b, .en-livro em, .ls-total strong {
  font-family: "IBM Plex Mono", ui-monospace, monospace; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }

/* fita de cotações */
.tk { overflow: hidden; background: #070d19; border-bottom: 1px solid var(--pg-linha); }
.tk-trilho, .tk .en-faixa-trilho { display: flex; width: max-content; animation: en-rolar 50s linear infinite; gap: 0; }
.tk button, .tk span { display: inline-flex; align-items: baseline; gap: 7px; padding: 9px 14px; border: 0; border-right: 1px solid var(--pg-linha); background: none; color: var(--pg-txt); font-size: 12.5px; white-space: nowrap; border-radius: 0; font-weight: 400; }
.tk b { font-weight: 700; letter-spacing: .02em; color: #c7d2e5; font-size: 11.5px; }
.tk em { font-style: normal; font-weight: 600; }
.tk i { font-style: normal; font-weight: 600; color: var(--pg-mut); font-size: 11.5px; }
.tk i.baixa { color: var(--alta); }
@media (prefers-reduced-motion: reduce) { .tk-trilho, .tk .en-faixa-trilho { animation: none; } }

/* painel do pregão na tela inicial */
.cp { background: var(--pg); padding: 0; border-radius: 22px; overflow: hidden; border: 1px solid var(--pg-linha); margin-top: 4px; }
.cp-corpo { padding: 16px 14px 14px; }
.cp-selo { color: var(--pg-mut); font-weight: 600; font-size: 12px; margin-bottom: 4px; }
.cp-selo span { background: var(--alta); box-shadow: 0 0 0 4px rgba(32, 194, 98, .16); }
.cp-selo b { font-weight: 600; }
.cp-tit { font-size: 26px; margin-bottom: 12px; color: var(--pg-txt); }
.cp-busca { background: var(--pg-2); border: 1px solid var(--pg-linha); box-shadow: none; border-radius: 12px; padding: 5px 5px 5px 12px; }
.cp-busca input { color: var(--pg-txt); }
.cp-busca input::placeholder { color: #6c7a93; }
.cp-busca svg { stroke: var(--pg-mut); }
.cp-busca button { background: var(--alta); color: #04130a; border-radius: 9px; padding: 10px 16px; }
.cp-chips button { background: transparent; border: 1px solid var(--pg-linha); border-radius: 8px; color: #c7d2e5; font-size: 12.5px; }
.cp-geral { display: grid; grid-template-columns: 1fr auto; gap: 2px 10px; background: var(--pg-2); border: 1px solid var(--pg-linha); border-radius: 12px; padding: 10px 12px; }
.cp-geral span { grid-column: 1 / -1; font-size: 11.5px; color: var(--pg-mut); }
.cp-geral b { font-size: 14px; color: var(--pg-txt); }
.cp-geral em { font-style: normal; font-weight: 700; color: var(--alta); font-size: 16px; grid-row: 2 / 4; grid-column: 2; align-self: center; }
.cp-geral small { color: var(--pg-mut); font-size: 12px; }

/* card de cotação */
.cp-prod { background: var(--pg-2); color: var(--pg-txt); border: 1px solid var(--pg-linha); border-radius: 14px; padding: 14px; }
.cp-prod header { align-items: flex-start; margin-bottom: 10px; }
.cp-prod header small { display: block; color: var(--pg-mut); font-size: 12.5px; font-weight: 600; margin-bottom: 2px; }
.cp-prod header b { display: block; font-size: 28px; font-weight: 700; color: var(--pg-txt); }
.baixa, .neutro { flex: none; font-size: 12px; font-weight: 700; padding: 5px 8px; border-radius: 6px; white-space: nowrap; }
.baixa { color: var(--alta); background: rgba(32, 194, 98, .12); }
.neutro { color: var(--pg-mut); background: rgba(255, 255, 255, .05); }
.cp-faixa { margin: 4px 0 12px; }
.cp-faixa-barra { position: relative; height: 6px; border-radius: 3px; background: linear-gradient(90deg, var(--alta), #c9a227 50%, var(--queda)); }
.cp-faixa-barra i { position: absolute; top: -4px; width: 2px; height: 14px; background: var(--pg-txt); transform: translateX(-1px); }
.cp-faixa-rot { display: flex; justify-content: space-between; margin-top: 6px; font-size: 11px; color: var(--pg-mut); font-family: "IBM Plex Mono", monospace; }
.cp-livro { border-top: 1px solid var(--pg-linha); }
.cp-linha { padding: 9px 0; margin: 0; border-radius: 0; border-bottom: 1px solid var(--pg-linha); }
.cp-linha i { display: none; }
.cp-linha b { color: var(--pg-txt); font-size: 13.5px; font-weight: 600; }
.cp-linha small { color: var(--pg-mut); }
.cp-linha em { color: var(--queda); font-size: 15px; font-weight: 600; }
.cp-linha.top em { color: var(--alta); }
.cp-linha u, .cp-linha u.caro { font-family: "IBM Plex Mono", monospace; font-size: 11px; font-weight: 600; }
.cp-linha u { color: var(--alta); } .cp-linha u.caro { color: var(--queda); }
.cp-prod footer { color: var(--pg-mut); margin-top: 12px; }
.cp-prod footer b { color: var(--alta); font-family: "IBM Plex Mono", monospace; }
.cp-mais { color: var(--pg-mut); }
.cp-vazio { background: var(--pg-2); color: var(--pg-txt); border: 1px solid var(--pg-linha); }
.cp-vazio span { color: var(--pg-mut); }
.mm b { color: var(--pg-txt); }
.ls-cat .mm b { color: var(--tinta); }
.mm-b.mais { background: var(--alta); color: #04130a; }
.mm-b.menos { background: rgba(240, 68, 58, .14); color: var(--queda); }

.cp-lista { background: var(--pg-2); color: var(--pg-txt); border: 1px solid var(--pg-linha); border-radius: 14px; }
.cp-lista small { color: var(--pg-mut); } .cp-lista i { color: var(--alta); }
.cp-ajudar button { background: transparent; border: 1px solid var(--pg-linha); border-radius: 12px; }
.cp-ajudar small { color: var(--ouro); }
.cp-num div { background: var(--pg-2); border: 1px solid var(--pg-linha); border-radius: 12px; }
.cp-num b { font-size: 22px; color: var(--pg-txt); } .cp-num small { color: var(--pg-mut); }
.cp-num p { background: var(--pg-2); border: 1px solid var(--pg-linha); color: #c7d2e5; }
.cp-feed h3 { color: var(--pg-txt); font-size: 14px; }
.cp-feed h3 span { background: var(--alta); }
.cp-feed button { border-top-color: var(--pg-linha); }
.cp-feed small { color: var(--pg-mut); } .cp-feed em { color: var(--pg-txt); font-size: 15px; }

/* rendimento da carteira (lista) */
.ls-rende { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 10px; margin: 10px 0; padding: 14px; border-radius: 14px; background: var(--pg); color: var(--pg-txt); }
.ls-rende small { display: block; color: var(--pg-mut); font-size: 12px; font-weight: 600; }
.ls-rende b { font-size: 26px; color: var(--alta); }
.ls-rende p { grid-column: 1 / -1; margin: 0; font-size: 12px; color: var(--pg-mut); }
.ls-total { background: var(--pg) !important; color: var(--pg-txt); }

/* abas e topo */
.abas button.ativo { color: var(--pg); }
.abas button.ativo::before { background: var(--alta); }
.topo-app .marca strong { font-size: 22px; }
.logo-ic, :root[data-publico="ele"] .logo-ic { background: var(--pg) !important; }
.logo-ic::after { background: var(--alta) !important; }
.destaque-ofertas, :root[data-publico="ele"] .destaque-ofertas { background: var(--pg-2); }
.btn-primario, .btn-primario:active, .bv-btn-principal, .bv-btn-principal:active,
:root[data-publico="ele"] .btn-primario, :root[data-publico="ele"] .bv-btn-principal { background: var(--pg); box-shadow: none; }

/* entrada */
.en { background: var(--pg); }
.en::before { background: radial-gradient(closest-side, rgba(32, 194, 98, .18), transparent) !important; }
.en-pin { background: var(--alta); border-radius: 8px; }
.en-pin::after { background: var(--pg); }
.en-marca b { font-size: 20px; letter-spacing: -.02em; }
.en-titulo { font-size: clamp(46px, 14vw, 72px); letter-spacing: -.05em; }
.en-sub b { color: var(--alta); }
.en-btn-principal { background: var(--alta); color: #04130a; box-shadow: 0 14px 30px -16px rgba(32, 194, 98, .8); }
.en-btn-vidro { border-radius: 14px; }
.en-cota { margin: 30px 0 8px; background: var(--pg-2); border: 1px solid var(--pg-linha); border-radius: 16px; padding: 16px; }
.en-cota-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; }
.en-cota-topo small { display: block; color: var(--pg-mut); font-size: 13px; font-weight: 600; }
.en-cota-topo b { display: block; font-size: 32px; font-weight: 700; color: var(--pg-txt); }
.en-graf { display: block; width: 100%; height: 80px; margin: 10px 0 12px; overflow: visible; }
.en-graf polyline { fill: none; stroke: var(--alta); stroke-width: 2.2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.en-graf polyline.area { fill: rgba(32, 194, 98, .1); stroke: none; }
.en-livro div { display: grid; grid-template-columns: 1fr auto 74px; gap: 10px; align-items: baseline; padding: 9px 0; border-top: 1px solid var(--pg-linha); font-size: 14px; }
.en-livro span { color: #c7d2e5; }
.en-livro em { font-style: normal; font-weight: 600; color: var(--queda); }
.en-livro i { font-style: normal; text-align: right; font-size: 12px; color: var(--queda); font-family: "IBM Plex Mono", monospace; }
.en-livro .top em, .en-livro .top i { color: var(--alta); }
.en-faixa.tk { margin-top: 26px; border-top: 1px solid var(--pg-linha); background: #070d19; padding: 0; }
.en-h2 { font-family: "Bricolage Grotesque", sans-serif; font-size: 28px; line-height: 1.05; letter-spacing: -.03em; margin: 30px 0 16px; }
.en-passos article > span { display: block; width: auto; height: auto; background: none; font-family: "IBM Plex Mono", monospace; font-size: 13px; font-weight: 600; color: var(--alta); margin-bottom: 8px; }
.en-recursos article { background: var(--pg-2); border-color: var(--pg-linha); border-radius: 14px; }
.en-recursos article h3 { font-family: "Bricolage Grotesque", sans-serif; letter-spacing: -.02em; }
.en-lojista { background: var(--pg-2); border: 1px solid var(--pg-linha); border-radius: 16px; }
.en-lojista .en-btn-principal { background: var(--pg-txt); color: var(--pg); box-shadow: none; }
.cp, .cp-corpo, .cp-res, .cp-res > *, .cp-prod header > div { min-width: 0; }
.cp-prod header .baixa, .cp-prod header .neutro { white-space: normal; text-align: right; max-width: 46%; line-height: 1.25; }
.en-cota-topo > div { min-width: 0; }
.en-cota-topo b { white-space: nowrap; font-size: 30px; }
.en-cota-topo .baixa { white-space: normal; text-align: right; max-width: 48%; }
.en-livro div { grid-template-columns: 1fr auto 86px; }
.en-livro i { font-size: 11px; }
/* histórico, variação, alertas, unidade */
.alta { flex: none; font-size: 12px; font-weight: 700; padding: 5px 8px; border-radius: 6px; white-space: nowrap; color: var(--queda); background: rgba(240, 68, 58, .12); }
.cp-tags { display: grid; justify-items: end; gap: 5px; max-width: 50%; }
.cp-tags span { white-space: normal; text-align: right; line-height: 1.25; }
.cp-prod header .cp-tags .baixa, .cp-prod header .cp-tags .neutro { max-width: none; }
.cp-un { display: block; margin-top: 2px; font-family: "IBM Plex Mono", monospace; font-size: 12px !important; color: var(--pg-mut) !important; font-weight: 600; }
.cp-graf { display: block; width: 100%; height: 60px; margin: 2px 0 10px; overflow: visible; }
.cp-graf polyline { fill: none; stroke-width: 2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.cp-graf polyline.area { stroke: none; }
.cp-graf.desce polyline { stroke: var(--alta); } .cp-graf.desce polyline.area { fill: rgba(32, 194, 98, .1); }
.cp-graf.sobe polyline { stroke: var(--queda); } .cp-graf.sobe polyline.area { fill: rgba(240, 68, 58, .1); }
.cp-acoes { display: inline-flex; align-items: center; gap: 8px; flex: none; }
.cp-sino { width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--pg-linha); background: transparent; font-size: 16px; display: grid; place-items: center; padding: 0; }
.cp-alertas { margin-top: 14px; }
.cp-alertas h3, .cp-mov h3 { margin: 0 0 6px; font-size: 14px; color: var(--pg-txt); font-family: "Bricolage Grotesque", sans-serif; }
.cp-al { display: flex; align-items: center; gap: 8px; padding: 9px 0; border-top: 1px solid var(--pg-linha); }
.cp-al > div { flex: 1; min-width: 0; } .cp-al b { display: block; font-size: 13.5px; color: var(--pg-txt); } .cp-al small { color: var(--pg-mut); font-size: 11.5px; font-family: "IBM Plex Mono", monospace; }
.cp-al button { border: 0; background: none; color: var(--pg-mut); font-size: 20px; padding: 0 4px; }
.cp-al.ok b { color: var(--alta); }
.cp-mov { margin-top: 16px; }
.cp-mov-abas { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.cp-mov-abas button { border: 1px solid var(--pg-linha); background: transparent; color: var(--pg-mut); border-radius: 8px; padding: 7px 11px; font-size: 13px; font-weight: 700; }
.cp-mov-abas button.ativo { background: var(--pg-txt); color: var(--pg); border-color: var(--pg-txt); }
.cp-mov-abas small { margin-left: auto; color: var(--pg-mut); font-size: 11.5px; }
#cp-mov-lista button { display: grid; grid-template-columns: 1fr auto auto; align-items: center; gap: 10px; width: 100%; border: 0; border-top: 1px solid var(--pg-linha); background: none; color: var(--pg-txt); padding: 9px 0; text-align: left; }
#cp-mov-lista b { display: block; font-size: 13.5px; font-weight: 600; } #cp-mov-lista small { color: var(--pg-mut); font-size: 11.5px; font-family: "IBM Plex Mono", monospace; }
#cp-mov-lista em { font-style: normal; font-family: "IBM Plex Mono", monospace; font-weight: 600; }
.cp-mov-vazio { color: var(--pg-mut); font-size: 13px; margin: 8px 0; }
.perfil-legal { text-align: center; margin: 14px 0 0; font-size: 13px; } .perfil-legal a { color: var(--cinza); }
.en-rodape a { color: inherit; }
/* análise completa */
.cp-analisar { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 12px; border: 1px solid rgba(245, 194, 66, .45); background: rgba(245, 194, 66, .08); color: var(--pg-txt); border-radius: 14px; padding: 12px 14px; text-align: left; }
.cp-analisar > span { font-size: 26px; } .cp-analisar b { display: block; font-size: 15px; } .cp-analisar small { color: var(--pg-mut); font-size: 12.5px; }
.cp-analisar i { margin-left: auto; font-style: normal; font-size: 22px; color: var(--ouro); }
.an-folha { max-height: 92vh; overflow-y: auto; }
.an-form h3 { margin: 4px 0 2px; font-size: 22px; font-family: "Bricolage Grotesque", sans-serif; letter-spacing: -.02em; }
.an-sub { margin: 0 0 12px; color: var(--cinza); font-size: 14px; }
.an-form .campo { display: grid; gap: 4px; margin-bottom: 10px; font-weight: 700; font-size: 13.5px; }
.an-form .campo small { font-weight: 500; color: var(--cinza); }
.an-form input { width: 100%; border: 1.5px solid var(--linha); border-radius: 12px; padding: 12px; font: inherit; font-size: 16px; }
.an-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.an-res { color: var(--tinta); }
.an-topo small { display: block; color: var(--cinza); font-size: 12.5px; font-weight: 700; }
.an-topo b { font-size: 21px; font-family: "Bricolage Grotesque", sans-serif; letter-spacing: -.02em; }
.an-cota { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin: 12px 0 6px; padding: 14px; border-radius: 14px; background: var(--pg); color: var(--pg-txt); }
.an-cota small { display: block; color: var(--pg-mut); font-size: 11.5px; font-weight: 600; }
.an-cota b { font-family: "IBM Plex Mono", monospace; font-size: 17px; font-variant-numeric: tabular-nums; }
.an-cota b.an-mais { color: var(--queda); }
.an-seta { color: var(--pg-mut); font-size: 20px; }
.an-alerta { margin: 0 0 8px; font-size: 13.5px; color: #b42318; }
.an-resumo { margin: 0 0 12px; font-size: 15px; line-height: 1.5; }
.an-bloco { border-top: 1px solid var(--linha); padding: 10px 0 4px; }
.an-bloco h4 { margin: 0 0 6px; font-size: 15px; font-family: "Bricolage Grotesque", sans-serif; }
.an-bloco p { margin: 0 0 6px; font-size: 14px; }
.an-mut { color: var(--cinza); font-size: 12.5px !important; }
.an-tab { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.an-tab td { padding: 7px 0; border-bottom: 1px dashed var(--linha); vertical-align: top; }
.an-tab td:last-child { text-align: right; white-space: nowrap; padding-left: 10px; font-family: "IBM Plex Mono", monospace; font-weight: 600; font-variant-numeric: tabular-nums; }
.an-tab td small { display: block; color: var(--cinza); font-size: 12px; font-weight: 500; }
.an-perg-txt { font-style: normal; color: #a16207; font-family: "Plus Jakarta Sans", sans-serif; }
.an-perg { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.an-perg li { position: relative; padding: 8px 10px 8px 34px; border: 1px solid var(--linha); border-radius: 10px; font-size: 14px; cursor: pointer; }
.an-perg li::before { content: ""; position: absolute; left: 10px; top: 10px; width: 16px; height: 16px; border-radius: 5px; border: 1.5px solid var(--cinza-2); }
.an-perg li.ok { color: var(--cinza); text-decoration: line-through; }
.an-perg li.ok::before { background: var(--alta); border-color: var(--alta); }
.an-dicas { margin: 0; padding-left: 18px; font-size: 14px; display: grid; gap: 5px; }
.an-nota { margin-top: 10px !important; }
.an-acoes { display: grid; gap: 6px; margin-top: 10px; }

/* ============================================================
   SIMPLES: entrada de 1 tela, lista em 2 passos, aba Comparar enxuta
   ============================================================ */
/* entrada sem rolagem */
.en { overflow: hidden; display: flex; flex-direction: column; }
.en-topo { flex: none; }
.en-tela { flex: 1; display: flex; flex-direction: column; justify-content: center; gap: 26px; max-width: 520px; width: 100%; margin: 0 auto; padding: 10px 22px max(22px, env(safe-area-inset-bottom)); min-height: 0; }
.en-tela .en-titulo { font-size: clamp(34px, 9.5vw, 52px); line-height: 1.02; margin: 0; }
.en-3 { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.en-3 li { display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 14px; background: var(--pg-2); border: 1px solid var(--pg-linha); }
.en-3 li > span { font-size: 26px; width: 34px; text-align: center; }
.en-3 b { display: block; font-size: 16px; } .en-3 small { color: var(--pg-mut); font-size: 13px; }
.en-baixo { display: grid; gap: 14px; margin-top: auto; }
.en-baixo .en-btn { width: 100%; font-size: 18px; padding: 18px; }
.en-links { display: flex; justify-content: center; align-items: center; gap: 8px; font-size: 14px; color: var(--pg-mut); }
.en-links button, .en-links a { border: 0; background: none; color: #c7d2e5; font: inherit; text-decoration: none; padding: 4px; }
.en-topo .en-entrar { display: none; }

/* lista: tela 1 */
.ls-topo h1 { font-family: "Bricolage Grotesque", sans-serif; letter-spacing: -.03em; }
.ls-h2 { margin: 18px 16px 4px; font-size: 16px; font-family: "Bricolage Grotesque", sans-serif; }
.ls-barra { position: fixed; left: 0; right: 0; bottom: calc(var(--abas) + 14px + env(safe-area-inset-bottom)); z-index: 9; padding: 0 16px; max-width: 600px; margin: 0 auto; }
.ls-barra .btn { display: grid; gap: 2px; padding: 14px 16px; border-radius: 16px; font-size: 17px; background: var(--alta) !important; color: #04130a; box-shadow: 0 14px 30px -12px rgba(11, 19, 36, .55); }
.ls-barra small { font-size: 12.5px; font-weight: 600; opacity: .8; }
#painel-lista { padding-bottom: 96px; }
.ls-limpar { margin-top: 8px; }
/* lista: tela 2 */
.ls-topo2 { padding: 14px 16px 4px; }
.ls-topo2 h1 { margin: 6px 0 0; font-size: 26px; font-family: "Bricolage Grotesque", sans-serif; letter-spacing: -.03em; line-height: 1.05; }
.ls-voltar { border: 0; background: none; font: inherit; font-weight: 700; color: var(--cinza); padding: 4px 0; font-size: 15px; }
#ls-resultado { padding: 0 16px; }
.ls-ajustes { margin: 14px 0; border: 1px solid var(--linha); border-radius: 14px; padding: 10px 12px; background: #fff; }
.ls-ajustes summary { font-weight: 700; cursor: pointer; }
.ls-ajustes .ls-transporte, .ls-ajustes .ls-caminhos { margin-left: 0; margin-right: 0; }

/* aba Comparar: só o comparador */
#tela-ofertas > :not(.topo-app):not(#comparador) { display: none !important; }
#comparador #cp-num, #comparador #cp-feed, #comparador .cp-lista { display: none !important; }
.ls-add .ls-itens { margin: 6px 0 4px; }
.ls-marca { background: none !important; padding: 2px 0 !important; margin-top: 2px; color: var(--cinza) !important; font-weight: 600 !important; text-decoration: underline; text-underline-offset: 3px; }
.ls-marca.q { color: #a16207 !important; }
.ls-itens li .ls-nome small { display: block; }
.ls-itens:empty { display: none; }

/* ============================================================
   PAIPE "TERMINAL" — app inteiro no escuro, como app de corretora:
   superfícies planas, linhas finas, números em fonte de cotação,
   verde = melhor preço / economia, vermelho = mais caro.
   ============================================================ */
:root, :root[data-publico="ela"], :root[data-publico="ele"] {
  --papel: #0b1324; --papel-2: #0e172b; --cartao: #111c31; --linha: #1f2c44;
  --tinta: #e9eef7; --tinta-2: #c7d2e5; --cinza: #8d9bb4; --cinza-2: #5d6b85; --noite: #070d19;
  --marca: #20c262; --marca-2: #20c262; --marca-escura: #0b1324; --marca-clara: rgba(32, 194, 98, .12);
  --sombra: none; --sombra-alta: none; color-scheme: dark;
}
html, body, :root[data-publico="ele"] body { background: var(--papel) !important; color: var(--tinta); }
.num-cota, .ls-nome small b, .ls-cat small, .ls-grupo em, .ls-grupo li em, .ls-total strong, .ls-op em, .ls-rende b, .ls-barra small { font-family: "IBM Plex Mono", ui-monospace, monospace; font-variant-numeric: tabular-nums; }

/* barra de abas: escura, encostada embaixo, sem bolha */
.abas, :root[data-publico="ele"] .abas { left: 0; right: 0; bottom: 0; border-radius: 0; border: 0; border-top: 1px solid var(--linha); background: rgba(7, 13, 25, .96) !important; box-shadow: none; backdrop-filter: blur(10px); }
.abas button { color: var(--cinza-2); font-weight: 600; }
.abas button.ativo { color: var(--tinta) !important; background: none !important; }
.abas button.ativo svg { stroke: var(--alta); }
.abas button.ativo::before { display: none; }
.abas button::after, .abas button.ativo span { background: none !important; }

/* folhas (janelas de baixo) */
.folha { background: var(--cartao) !important; color: var(--tinta); border-top: 1px solid var(--linha); box-shadow: none !important; }
.sobreposicao { background: rgba(3, 7, 15, .72); }
.folha input, .folha select, .folha textarea, .an-form input { background: var(--papel); color: var(--tinta); border-color: var(--linha) !important; }

/* botões */
.btn-primario, .btn-primario:active, :root[data-publico="ele"] .btn-primario { background: var(--alta) !important; color: #04130a !important; box-shadow: none !important; }
.btn-contorno { background: transparent; color: var(--tinta); border: 1px solid var(--linha); box-shadow: none; }
.btn-claro { background: var(--cartao); color: var(--tinta); border: 1px solid var(--linha); box-shadow: none; }
.btn-texto { color: var(--tinta-2); }

/* ---------- MINHA LISTA (a "carteira") ---------- */
.ls-topo { padding: 18px 16px 6px !important; }
.ls-topo h1 { font-size: 30px; margin: 0; color: var(--tinta); }
.ls-topo p { color: var(--cinza); margin: 4px 0 0; }
.busca { background: var(--cartao) !important; border: 1px solid var(--linha) !important; box-shadow: none !important; border-radius: 12px !important; }
.busca input { color: var(--tinta); background: transparent; }
.busca svg { stroke: var(--cinza); }
.ls-sugestoes { background: var(--cartao); border: 1px solid var(--linha); border-radius: 12px; }
.ls-sugestoes button { color: var(--tinta); border-color: var(--linha); }
.ls-h2, .ls-prontas { color: var(--cinza) !important; font-family: "Plus Jakarta Sans", sans-serif !important; font-size: 12.5px !important; font-weight: 700 !important; letter-spacing: .02em; margin: 18px 0 6px !important; }

/* itens da lista: linhas planas, como uma lista de ativos */
.ls-itens, .ls-add .ls-itens { background: none; border: 0; border-top: 1px solid var(--linha); border-radius: 0; box-shadow: none; padding: 0; margin: 0 !important; }
.ls-itens li { padding: 12px 0; border-bottom: 1px solid var(--linha); }
.ls-itens li + li { border-top: 0; }
.ls-nome b { color: var(--tinta); font-size: 15.5px; font-weight: 700; }
.ls-nome small { color: var(--cinza); font-size: 12.5px; font-weight: 500; }
.ls-nome small b { color: var(--alta) !important; font-size: 13px; font-weight: 600; }
.ls-marca { color: var(--cinza-2) !important; font-size: 12px !important; text-decoration: none; }
.ls-marca.q { color: var(--ouro) !important; }
.quantidade.pequena { background: transparent; border: 1px solid var(--linha); border-radius: 10px; padding: 2px; gap: 4px; }
.quantidade.pequena .btn-redondo { width: 32px; height: 32px; border-radius: 8px; background: transparent; box-shadow: none; color: var(--tinta); font-size: 18px; }
.quantidade.pequena span { font-family: "IBM Plex Mono", monospace; font-size: 15px; color: var(--tinta); }

/* catálogo: lista de cotações, sem emoji */
.ls-catalogo { display: block !important; margin: 0 !important; border-top: 1px solid var(--linha); }
.ls-cat { display: grid !important; grid-template-columns: 1fr auto auto; align-items: center; justify-items: stretch !important; gap: 12px !important; padding: 11px 0 !important;
  border: 0 !important; border-bottom: 1px solid var(--linha) !important; border-radius: 0 !important; background: none !important; text-align: left; }
.ls-cat > span:first-child { display: none; }
.ls-cat b { font-size: 15px !important; text-align: left !important; color: var(--tinta); font-weight: 600; }
.ls-cat small { font-size: 13px !important; color: var(--tinta-2) !important; text-align: right !important; font-weight: 500 !important; }
.ls-cat.ok b { color: var(--alta); }
.ls-cat .mm { margin: 0 !important; }
.mm-b { width: 32px !important; height: 32px !important; border-radius: 8px !important; font-size: 18px !important; }
.mm-b.mais { background: transparent !important; border: 1px solid var(--alta) !important; color: var(--alta) !important; }
.mm-b.menos { background: transparent !important; border: 1px solid var(--linha) !important; color: var(--tinta-2) !important; }
.mm b { color: var(--tinta) !important; font-family: "IBM Plex Mono", monospace; }
.ls-cat-mais { color: var(--tinta-2) !important; font-weight: 600 !important; text-align: left !important; padding: 12px 0 !important; }
.ls-add, #painel-lista > [data-passo-lista] { padding-left: 16px; padding-right: 16px; }
.ls-add { padding: 0 16px !important; margin: 0 !important; background: none !important; }
.ls-limpar { color: var(--cinza) !important; background: none !important; }

/* botão fixo "ver onde fica mais barato" */
.ls-barra { bottom: calc(var(--abas) + 10px + env(safe-area-inset-bottom)); }
.ls-barra .btn { border-radius: 12px; text-align: left; grid-template-columns: 1fr; padding: 13px 16px; }
.ls-barra .btn span::after { content: " →"; }

/* ---------- RESULTADO (resumo da carteira) ---------- */
.ls-topo2 h1 { color: var(--tinta); }
.ls-voltar { color: var(--alta) !important; }
.ls-total { background: none !important; border: 0; border-bottom: 1px solid var(--linha); border-radius: 0; padding: 14px 0 16px !important; display: grid !important; grid-template-columns: 1fr; gap: 4px; }
.ls-total span { color: var(--cinza); font-size: 13px !important; font-weight: 600 !important; }
.ls-total small { color: var(--cinza-2); opacity: 1; }
.ls-total strong { font-size: 40px !important; color: var(--tinta); order: -1; font-weight: 700; letter-spacing: -.03em; }
.ls-rende { background: none !important; border-bottom: 1px solid var(--linha); border-radius: 0; padding: 14px 0 !important; margin: 0 !important; }
.ls-rende b { font-size: 24px !important; }
.ls-ops { margin: 12px 0 !important; gap: 0 !important; border-top: 1px solid var(--linha); }
.ls-op { background: none !important; border: 0 !important; border-bottom: 1px solid var(--linha) !important; border-radius: 0 !important; padding: 12px 0 !important; }
.ls-op span { color: var(--cinza) !important; } .ls-op b { color: var(--tinta); } .ls-op small { color: var(--cinza) !important; }
.ls-op.top span { color: var(--alta) !important; }
.ls-compara { color: var(--tinta-2); background: none; border: 0; padding: 0; }
.ls-grupo { background: none !important; border: 0 !important; border-top: 1px solid var(--linha) !important; border-radius: 0 !important; margin-top: 16px !important; }
.ls-grupo header { background: none !important; padding: 12px 0 !important; }
.ls-grupo header > span:first-child, .ls-grupo header .mercado-logo { display: none; }
.ls-grupo header b { color: var(--tinta); font-size: 16px; }
.ls-grupo li { padding: 9px 0 !important; border-top: 1px solid var(--linha); color: var(--tinta-2); }
.ls-grupo li b { color: var(--tinta); }
.ls-ajustes { background: var(--cartao) !important; border-color: var(--linha) !important; color: var(--tinta); }
.ls-transporte button, .ls-caminhos button { background: transparent !important; border: 1px solid var(--linha) !important; color: var(--tinta-2) !important; border-radius: 8px !important; }
.ls-transporte button.ativo, .ls-caminhos button.ativo { border-color: var(--alta) !important; color: var(--alta) !important; }
.ls-transporte input, .campo-dinheiro, .campo-dinheiro input { background: var(--papel) !important; color: var(--tinta) !important; border-color: var(--linha) !important; }
.ls-nota { color: var(--cinza-2); }
.ls-sem-preco { background: var(--cartao); border: 1px solid var(--linha); color: var(--tinta); border-radius: 12px; }
[data-ls-gps] { font-size: 14px !important; color: var(--tinta-2) !important; }

/* aba Comparar: o painel já é escuro, só tira a moldura */
#comparador { border: 0; border-radius: 0; margin: 0; background: none; }
.topo-app .marca strong { color: var(--tinta); } .topo-app .marca small { color: var(--cinza); }
.avatar-btn .avatar { background: var(--cartao); color: var(--tinta); }

/* análise */
.an-res, .an-tab td, .an-bloco p, .an-dicas { color: var(--tinta); }
.an-perg li { border-color: var(--linha); }
.an-bloco { border-top-color: var(--linha); }

/* entrada combina com o app */
.en { background: var(--papel) !important; }
.en::before { opacity: .5; }
.ls-catalogo::before { content: "Produto"; display: none; }
.ls-cat small { min-width: 78px; }
.toast { background: #e9eef7 !important; color: #0b1324 !important; border: 0 !important; box-shadow: 0 10px 30px -10px rgba(0,0,0,.6) !important; }
.ls-grupo li > b:first-child, .ls-grupo li .qtd { color: var(--alta); font-family: "IBM Plex Mono", monospace; }
/* carteira da lista */
.cart { margin: 6px 0 4px; padding: 4px 0 12px; border-bottom: 1px solid var(--linha); }
.cart > small { color: var(--cinza); font-size: 12.5px; font-weight: 600; }
.cart-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.cart-topo b { font-family: "IBM Plex Mono", monospace; font-variant-numeric: tabular-nums; font-size: 34px; font-weight: 700; letter-spacing: -.03em; color: var(--tinta); }
.cart-topo span .baixa, .cart-topo span .alta, .cart-topo span .neutro { font-family: "IBM Plex Mono", monospace; }
.cart-graf .cp-graf.grande { height: 110px; margin: 10px 0 6px; }
.cart-per { display: flex; align-items: center; gap: 6px; }
.cart-per button { border: 0; background: none; color: var(--cinza); font: inherit; font-size: 13px; font-weight: 700; padding: 5px 10px; border-radius: 6px; }
.cart-per button.ativo { background: var(--cartao); color: var(--tinta); }
.cart-per small { margin-left: auto; color: var(--cinza); font-size: 11.5px; text-align: right; max-width: 60%; }
/* variação 7d e mini gráfico em cada item */
.ls-nome small i { font-style: normal; font-family: "IBM Plex Mono", monospace; font-size: 12px; color: var(--cinza); }
.ls-nome small i.v-b { color: var(--alta); } .ls-nome small i.v-a { color: var(--queda); }
.ls-mini { flex: none; width: 54px; }
.ls-mini .cp-graf.mini { height: 26px; margin: 0; }
/* estreias (IPO) */
.ipo { margin-top: 6px; }
.ipo .ls-h2 small { color: var(--cinza-2); font-weight: 500; margin-left: 6px; }
#ls-ipo-lista { border-top: 1px solid var(--linha); }
.ipo-l { display: flex; align-items: center; gap: 10px; padding: 11px 0; border-bottom: 1px solid var(--linha); }
.ipo-l > div:first-child { flex: 1; min-width: 0; }
.ipo-l b { display: block; font-size: 14.5px; color: var(--tinta); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ipo-l small { color: var(--cinza); font-size: 12px; }
.ipo-p { display: grid; justify-items: end; gap: 3px; }
.ipo-p em { font-style: normal; font-family: "IBM Plex Mono", monospace; font-weight: 600; color: var(--tinta); }
.ipo-p span { padding: 2px 6px; font-size: 11px; }
.ipo-tag { font-size: 10.5px; font-weight: 800; letter-spacing: .06em; color: var(--ouro); border: 1px solid rgba(245, 194, 66, .45); border-radius: 5px; padding: 3px 6px; }
/* terminal: o que ainda era branco */
.btn-contorno, .btn-icone, .chip, .alternar button.ativo, .seguir, .segmento button.ativo, #form-auth input, .seguindo-lista .chip-mercado, .historico,
.avatar-fofo, .pf-avatares button, .quem-sou > *, .redes-app, .ap-opcoes button, .cartao, .perfil-som, .tipo-conta button, .conta-tipo button {
  background: var(--cartao) !important; color: var(--tinta) !important; border-color: var(--linha) !important; box-shadow: none !important; }
.quem-sou .ativo, .quem-sou > .ativo, .alternar button.ativo, .segmento button.ativo { border-color: var(--alta) !important; color: var(--alta) !important; background: rgba(32, 194, 98, .1) !important; }
#form-auth input { border: 1px solid var(--linha) !important; }
#tela-perfil a:not(.btn) { color: var(--alta) !important; }
#tela-perfil h1, #tela-perfil h2, #tela-perfil b { color: var(--tinta); }
.alternar, .segmento { background: var(--papel-2) !important; border: 1px solid var(--linha); }
.chip.ativo, .chips .ativo { background: rgba(32, 194, 98, .12) !important; color: var(--alta) !important; border-color: var(--alta) !important; }
.titulo-secao { color: var(--tinta); }
.cartao-mercado, .mercado-card, .loja-card, .card-loja { background: var(--cartao) !important; border-color: var(--linha) !important; box-shadow: none !important; color: var(--tinta); }
[data-publico-btn] { background: var(--cartao) !important; color: var(--tinta) !important; border: 1px solid var(--linha) !important; box-shadow: none !important; }
[data-publico-btn][aria-pressed="true"], [data-publico-btn].ativo { border-color: var(--alta) !important; color: var(--alta) !important; }

/* ============================================================
   NÍVEL "APP BOLSA": preto puro, fonte do sistema, linhas com
   mini gráfico + linha de base tracejada, preço e pílula colorida.
   ============================================================ */
:root, :root[data-publico="ela"], :root[data-publico="ele"] {
  --papel: #000; --papel-2: #0a0a0a; --cartao: #1c1c1e; --linha: #2c2c2e; --tinta: #fff; --tinta-2: #ebebf5; --cinza: #8e8e93; --cinza-2: #636366;
  --alta: #30d158; --queda: #ff453a; --pg: #000; --pg-2: #1c1c1e; --pg-3: #2c2c2e; --pg-linha: #2c2c2e; --pg-txt: #fff; --pg-mut: #8e8e93;
}
html, body, :root[data-publico="ele"] body, .en { background: #000 !important; }
body, button, input, select, textarea { font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif !important; }
.ls-topo h1, .ls-topo2 h1, .cp-tit, .en-titulo, .topo-app .marca strong, h1, h2 { font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Inter Display", "Inter", "Segoe UI", Roboto, sans-serif !important; letter-spacing: -.02em; }
.num-cota, .ls-total strong, .ls-rende b, .ls-op em, .ls-grupo em, .ls-grupo li em, .cart-topo b, .cp-prod header b, .cp-linha em, .cp-geral em, .tk em, .cp-num b, .cp-feed em, .ipo-p em, .ls-barra small, .an-cota b, .an-tab td:last-child, .cp-faixa-rot, .cp-un, .cp-linha u, .ls-nome small b, .ls-cat small, #cp-mov-lista em, #cp-mov-lista small, .cp-al small {
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Inter", "Segoe UI", Roboto, sans-serif !important; font-variant-numeric: tabular-nums; letter-spacing: 0; }

/* cabeçalho grande com a data, como no app Bolsa */
.ls-topo { padding: 22px 20px 4px !important; }
.ls-topo h1 { font-size: 32px !important; font-weight: 800 !important; line-height: 1.05; margin: 0 !important; }
.ls-data { margin: 0 !important; font-size: 32px; font-weight: 800; color: #8e8e93 !important; line-height: 1.05; letter-spacing: -.02em; text-transform: lowercase; }
.ls-add { padding: 0 20px !important; }
.busca { background: #1c1c1e !important; border: 0 !important; border-radius: 10px !important; margin-top: 14px; }
.busca input::placeholder { color: #8e8e93; }

/* linha de cotação */
.tk-row { display: grid; grid-template-columns: minmax(0, 1fr) 96px 104px; align-items: center; gap: 12px; padding: 13px 0; border-bottom: 1px solid #2c2c2e; cursor: pointer; list-style: none; -webkit-tap-highlight-color: transparent; }
.tk-row:active { background: rgba(255, 255, 255, .03); }
.tk-nome { min-width: 0; }
.tk-nome b { display: flex; align-items: center; gap: 8px; font-size: 18px; font-weight: 700; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tk-nome small { display: block; margin-top: 3px; font-size: 14px; color: #8e8e93; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tk-add { flex: none; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid #30d158; color: #30d158; display: grid; place-items: center; font-style: normal; font-size: 14px; font-weight: 700; line-height: 1; }
.tk-row.ok .tk-add { background: #30d158; color: #000; }
.tk-sp { width: 96px; height: 40px; overflow: visible; }
.tk-sp polyline { fill: none; stroke-width: 1.6; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.tk-sp .bs { stroke-width: 1; stroke-dasharray: 3 3; vector-effect: non-scaling-stroke; opacity: .7; }
.tk-sp.b polyline, .tk-sp.b .bs { stroke: #30d158; } .tk-sp.b .ar { fill: rgba(48, 209, 88, .16); }
.tk-sp.a polyline, .tk-sp.a .bs { stroke: #ff453a; } .tk-sp.a .ar { fill: rgba(255, 69, 58, .16); }
.tk-sp.n polyline, .tk-sp.n .bs { stroke: #8e8e93; } .tk-sp.n .ar { fill: rgba(142, 142, 147, .1); }
.tk-sp.vazio { opacity: 0; }
.tk-preco { display: grid; justify-items: end; gap: 5px; }
.tk-preco b { font-size: 18px; font-weight: 600; color: #fff; font-variant-numeric: tabular-nums; }
.pl { min-width: 80px; text-align: right; padding: 4px 8px; border-radius: 6px; font-size: 15px; font-weight: 600; color: #fff; font-variant-numeric: tabular-nums; }
.pl.b { background: #30d158; } .pl.a { background: #ff453a; } .pl.n { background: #3a3a3c; }
.ls-itens, .ls-add .ls-itens, #ls-catalogo { border-top: 1px solid #2c2c2e !important; }
.ls-itens li.tk-row { padding: 13px 0 !important; border-bottom: 1px solid #2c2c2e !important; display: grid !important; }
.ls-h2, .ls-prontas { color: #8e8e93 !important; font-size: 13px !important; font-weight: 600 !important; text-transform: uppercase; letter-spacing: .03em !important; margin: 22px 0 6px !important; }
.ls-cat-mais { color: #30d158 !important; font-size: 15px !important; }
#painel-lista .ls-cat { display: none !important; }

/* carteira no topo da lista */
.cart { border-bottom: 1px solid #2c2c2e; }
.cart-topo b { font-size: 36px !important; font-weight: 700; }
.cart-per button.ativo { background: #2c2c2e; }

/* barra "ver onde fica mais barato" como a folha do app Bolsa */
.ls-barra { left: 8px; right: 8px; padding: 0 !important; }
.ls-barra .btn { background: rgba(28, 28, 30, .92) !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .08) !important; border-radius: 22px !important; padding: 18px 18px 16px !important;
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); box-shadow: 0 -10px 40px rgba(0, 0, 0, .6) !important; position: relative; }
.ls-barra .btn::before { content: ""; position: absolute; top: 6px; left: 50%; width: 36px; height: 5px; margin-left: -18px; border-radius: 3px; background: #48484a; }
.ls-barra .btn span { font-size: 20px; font-weight: 700; }
.ls-barra .btn span::after { content: ""; }
.ls-barra small { color: #8e8e93 !important; opacity: 1 !important; font-size: 14px !important; }

/* ficha do item */
.it-folha { background: #1c1c1e !important; }
.it-topo { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin: 8px 0 10px; }
.it-topo b { display: block; font-size: 24px; font-weight: 800; color: #fff; } .it-topo small { color: #8e8e93; font-size: 13.5px; }
.it-p { text-align: right; } .it-p b { font-variant-numeric: tabular-nums; }
.it-graf .tk-sp { width: 100%; height: 110px; margin: 4px 0 12px; }
.it-lojas div { display: flex; justify-content: space-between; padding: 10px 0; border-top: 1px solid #2c2c2e; font-size: 15px; color: #ebebf5; }
.it-lojas em { font-style: normal; font-weight: 600; font-variant-numeric: tabular-nums; } .it-lojas em.b { color: #30d158; } .it-lojas em.a { color: #ff453a; }
.it-qtd { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid #2c2c2e; border-bottom: 1px solid #2c2c2e; margin-bottom: 14px; color: #fff; font-weight: 600; }
.it-qtd div { display: flex; align-items: center; gap: 16px; }
.it-qtd button { width: 38px; height: 38px; border-radius: 10px; border: 0; background: #2c2c2e; color: #fff; font-size: 22px; }
.it-qtd b { font-size: 20px; min-width: 24px; text-align: center; font-variant-numeric: tabular-nums; }
.it-tirar { color: #ff453a !important; }

/* resultado e comparar no mesmo nível */
.ls-total strong { font-size: 44px !important; }
.ls-grupo li, .ls-op, .cp-linha, #cp-mov-lista button, .cp-feed button, .ipo-l { border-color: #2c2c2e !important; }
.cp-prod, .cp-geral, .cp-busca, .cp-lista, .cp-analisar, .cp-ajudar button, .cp-num div, .en-3 li, .en-cota, .ls-ajustes, .ls-sem-preco { background: #1c1c1e !important; border-color: #2c2c2e !important; }
.abas, :root[data-publico="ele"] .abas { background: rgba(0, 0, 0, .9) !important; border-top-color: #1c1c1e; }
.abas button { color: #636366; } .abas button.ativo { color: #fff !important; }
.abas button.ativo svg { stroke: #30d158; }
.folha { background: #1c1c1e !important; }
.btn-primario, .btn-primario:active, :root[data-publico="ele"] .btn-primario, .en-btn-principal { background: #30d158 !important; color: #000 !important; }
.baixa { color: #30d158; background: rgba(48, 209, 88, .14); } .alta { color: #ff453a; background: rgba(255, 69, 58, .14); }
.tk-sp polygon, .tk-sp .ar { stroke: none !important; }
.cp-graf polyline.area, .en-graf polyline.area { stroke: none !important; }
#tela-ofertas .topo-app { padding: 22px 20px 6px; }
#tela-ofertas .topo-app .marca strong { display: block; font-size: 32px; font-weight: 800; line-height: 1.05; }
.topo-data { display: block !important; font-size: 32px !important; font-weight: 800 !important; color: #8e8e93 !important; line-height: 1.05; letter-spacing: -.02em; }
#cp-mov-lista { border-top: 1px solid #2c2c2e; }
#cp-mov-lista .tk-row { width: auto; }
.cp-corpo { padding: 12px 20px 16px !important; }
.cp-tit { display: none; }
#ls-data { font-size: 32px !important; font-weight: 800 !important; color: #8e8e93 !important; }
.cart-topo .baixa, .cart-topo .alta, .cart-topo .neutro { font-family: -apple-system, BlinkMacSystemFont, "Inter", sans-serif !important; font-size: 14px; }
.cp-analisar > span:first-child, .cp-ajudar button > span:first-child, .cp-chips button { font-size: inherit; }
.cp-analisar > span:first-child, .cp-ajudar button > span:first-child { display: none; }
#ls-resultado { padding: 0 20px !important; } .ls-plano { margin: 0 !important; padding: 0 !important; }
.ls-topo2 { padding: 16px 20px 4px !important; }
/* entrada no nível do app Bolsa */
.en { background: #000 !important; }
.en::before { display: none !important; }
.en-topo { justify-content: center !important; padding-top: max(18px, env(safe-area-inset-top)) !important; }
.en-marca { display: flex; align-items: center; gap: 9px; }
.en-logo { width: 30px; height: 30px; border-radius: 8px; }
.en-marca b { font-size: 19px !important; font-weight: 700; color: #fff; }
.en-pin { display: none; }
.en-tela { justify-content: flex-start !important; gap: 20px !important; padding-top: 18px !important; }
.en-tela .en-titulo { font-size: clamp(34px, 9.6vw, 50px) !important; font-weight: 800; letter-spacing: -.035em; line-height: 1.02; color: #fff; }
.en-tela .en-titulo span { color: #8e8e93; background: none !important; -webkit-text-fill-color: #8e8e93; }
.en-sub2 { margin: 12px 0 0; color: #8e8e93; font-size: 16px; line-height: 1.45; max-width: 30em; }
.en-watch { border-top: 1px solid #2c2c2e; }
.en-watch-cab { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 0 4px; }
.en-watch-cab b { color: #fff; font-size: 15px; } .en-watch-cab small { color: #636366; font-size: 12px; }
.en-watch .tk-row { cursor: default; padding: 10px 0; }
.en-watch .tk-nome b { font-size: 17px; } .en-watch .tk-nome small { font-size: 13px; }
.en-watch .tk-preco b { font-size: 17px; } .en-watch .pl { font-size: 14px; min-width: 70px; padding: 3px 7px; }
.en-watch .tk-row { grid-template-columns: minmax(0, 1fr) 84px 92px; }
.en-watch .tk-sp { width: 84px; height: 34px; }
.en-baixo .en-btn { border-radius: 14px !important; font-weight: 700; }
.en-links button, .en-links a { color: #8e8e93 !important; }
@media (max-height: 700px) { .en-watch .tk-row:nth-child(n+5) { display: none; } .en-sub2 { display: none; } }
/* lista x produtos para adicionar: bem diferentes */
.ls-itens { background: #1c1c1e !important; border: 0 !important; border-radius: 14px !important; padding: 0 14px !important; margin: 4px 0 0 !important; overflow: hidden; }
.ls-itens li.tk-row { border-bottom: 1px solid #2c2c2e !important; }
.ls-itens li.tk-row:last-child { border-bottom: 0 !important; }
.tk-qtd { flex: none; font-style: normal; font-size: 13px; font-weight: 700; color: #000; background: #30d158; border-radius: 6px; padding: 2px 6px; }
.tk-row.na.novo { animation: tkNovo 1.4s ease-out; }
@keyframes tkNovo { 0% { background: rgba(48, 209, 88, .35); } 100% { background: transparent; } }
.ls-vazia2 { border: 1.5px dashed #3a3a3c; border-radius: 14px; padding: 18px 16px; text-align: center; color: #8e8e93; font-size: 15px; line-height: 1.5; margin-top: 4px; }
.ls-vazia2 b { color: #30d158; }
.tk-row.cat { grid-template-columns: minmax(0, 1fr) 70px auto; }
.tk-row.cat .tk-sp { width: 70px; height: 30px; opacity: .8; }
.tk-row.cat .tk-nome b { font-size: 17px; font-weight: 600; }
.tk-addbtn { justify-self: end; white-space: nowrap; border: 1.5px solid #30d158; color: #30d158; border-radius: 999px; padding: 7px 12px; font-size: 14px; font-weight: 700; }
.tk-row.cat:active .tk-addbtn { background: #30d158; color: #000; }
.tk-sp.sem polyline, .tk-sp.sem .bs { stroke: #48484a !important; } .tk-sp.sem .ar { display: none; }
.ls-h2 { color: #fff !important; font-size: 20px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: -.01em !important; margin: 22px 0 8px !important; }
.ls-prontas { color: #fff !important; font-size: 20px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: -.01em !important; margin: 26px 0 4px !important; }
.toast { top: calc(env(safe-area-inset-top) + 12px) !important; bottom: auto !important; }
/* ===== SUA LISTA com cara de lista de supermercado (bloquinho de papel) ===== */
.ls-itens { background: #fbf8ef !important; border-radius: 6px 6px 14px 14px !important; padding: 6px 12px 4px 40px !important; position: relative; box-shadow: 0 10px 30px -12px rgba(0,0,0,.8); color: #1c1c1e; }
.ls-itens::before { content: ""; position: absolute; left: 30px; top: 0; bottom: 0; width: 1.5px; background: #e8a3a3; }
.ls-itens:empty::before { display: none; }
li.sl { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto 76px; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid #dfe7f2; list-style: none; margin-left: -32px; padding-left: 4px; }
li.sl:last-of-type { border-bottom: 1px solid #dfe7f2; }
.sl-check { width: 24px; height: 24px; border-radius: 6px; border: 2px solid #9aa3ad; background: #fff; color: #fff; font-size: 15px; font-weight: 900; line-height: 1; padding: 0; display: grid; place-items: center; }
li.sl.feito .sl-check { background: #1f9d55; border-color: #1f9d55; }
.sl-nome { min-width: 0; cursor: pointer; padding-left: 6px; }
.sl-nome b { display: block; font-size: 17px; font-weight: 700; color: #1c1c1e; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sl-nome small { display: block; font-size: 12.5px; color: #6b7280; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
li.sl.feito .sl-nome b { text-decoration: line-through; color: #9ca3af; }
li.sl.feito .sl-tot { color: #9ca3af; }
.sl-qtd { display: flex; align-items: center; gap: 2px; border: 1px solid #d6d3c9; border-radius: 8px; background: #fff; }
.sl-qtd button { width: 28px; height: 30px; border: 0; background: none; color: #1c1c1e; font-size: 18px; font-weight: 700; padding: 0; }
.sl-qtd span { min-width: 18px; text-align: center; font-weight: 700; color: #1c1c1e; font-variant-numeric: tabular-nums; }
.sl-tot { text-align: right; font-size: 15.5px; font-weight: 700; color: #1c1c1e; font-variant-numeric: tabular-nums; }
li.sl-soma { list-style: none; display: flex; justify-content: space-between; align-items: baseline; padding: 12px 0 10px; margin-left: -32px; padding-left: 4px; color: #1c1c1e; }
li.sl-soma span { font-weight: 800; font-size: 17px; } li.sl-soma small { font-weight: 500; color: #6b7280; font-size: 12.5px; }
li.sl-soma b { font-size: 22px; font-weight: 800; font-variant-numeric: tabular-nums; }
li.sl.novo { animation: slNovo 1.4s ease-out; }
@keyframes slNovo { 0% { background: rgba(31, 157, 85, .25); } 100% { background: transparent; } }
.ls-itens li.tk-row { display: none !important; }
/* a carteira (bolsa) fica só para o que é cotação; esconde em cima da lista */
#ls-carteira { display: none !important; }

/* ===== JOGADAS ===== */
.jg-corpo { padding: 0 20px 110px; }
.jg-intro { color: #8e8e93; font-size: 15px; margin: 8px 0 14px; }
.jg-minha { display: grid; grid-template-columns: 1fr auto; width: 100%; text-align: left; border: 0; background: #1c1c1e; color: #fff; border-radius: 14px; padding: 14px 16px; gap: 2px 10px; }
.jg-minha b { font-size: 16px; } .jg-minha small { color: #8e8e93; font-size: 13px; grid-column: 1; } .jg-minha i { grid-row: 1 / 3; grid-column: 2; align-self: center; font-style: normal; color: #30d158; font-size: 22px; }
#jg-lista { border-top: 1px solid #2c2c2e; }
.tk-row.jg { grid-template-columns: minmax(0, 1fr) auto; }
.tk-row.jg .tk-preco b { color: #30d158; }
.tk-row.jg .tk-nome small { white-space: normal; }
.jg-nota { color: #636366; font-size: 12.5px; margin: 14px 0; }
.jg-cab b { display: block; font-size: 24px; font-weight: 800; color: #fff; margin-top: 6px; } .jg-cab small { color: #8e8e93; font-size: 13.5px; }
.jg-lucro { margin: 14px 0 10px; } .jg-lucro small { display: block; color: #8e8e93; font-size: 13px; }
.jg-lucro b { display: block; font-size: 38px; font-weight: 800; color: #fff; font-variant-numeric: tabular-nums; } .jg-lucro b.b { color: #30d158; } .jg-lucro b.a { color: #ff453a; }
.jg-lucro .pl { display: inline-block; margin-top: 6px; min-width: 0; font-size: 13px; }
.jg-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.jg-campos .campo { display: grid; gap: 4px; font-size: 12.5px; color: #8e8e93; font-weight: 600; }
.jg-campos .campo:first-child { grid-column: 1 / -1; }
.jg-campos input { background: #000 !important; color: #fff !important; border: 1px solid #2c2c2e !important; border-radius: 10px; padding: 11px; font-size: 17px; width: 100%; }
.jg-tab { margin-top: 12px; }
.jg-tab div { display: flex; justify-content: space-between; gap: 10px; padding: 10px 0; border-top: 1px solid #2c2c2e; font-size: 14.5px; color: #ebebf5; }
.jg-tab b { color: #fff; font-variant-numeric: tabular-nums; text-align: right; }
.jg-ruim { color: #ff453a; font-size: 14px; }
.jg-dica { color: #ebebf5; background: #2c2c2e; border-radius: 12px; padding: 12px; font-size: 14px; margin: 12px 0 4px; }
.ls-itens::before { left: 50px !important; }
li.sl-soma { padding-left: 54px !important; }
li.sl:last-of-type, li.sl-soma { border-bottom: 0 !important; }

.jg-filtro { display: flex; gap: 8px; overflow-x: auto; margin: 18px 0 6px; scrollbar-width: none; }
.jg-filtro::-webkit-scrollbar { display: none; }
.jg-filtro button { flex: none; border: 0; background: #1c1c1e; color: #ebebf5; border-radius: 999px; padding: 8px 14px; font-size: 14px; font-weight: 600; }
.jg-filtro button.on { background: #fff; color: #000; }
.jg-tag { font-style: normal; color: #30d158; font-weight: 600; }

/* ---------- suporte: esqueci a senha, ajuda, sem internet ---------- */
.btn-texto.esqueci { display: block; margin: 10px auto 0; color: #30d158; font-weight: 600; }
.sug-email { margin: -4px 0 10px; font-size: 14px; color: #ebebf5; }
.sug-email button { border: 0; background: none; color: #30d158; font-weight: 700; padding: 0; text-decoration: underline; font-size: 14px; }
.perfil-menu { background: #1c1c1e; border-radius: 14px; overflow: hidden; margin: 6px 0 12px; }
.perfil-menu button { display: flex; align-items: center; gap: 12px; width: 100%; background: none; border: 0; color: #fff; text-align: left; padding: 14px 16px; font-size: 16px; }
.perfil-menu button + button { border-top: 1px solid #2c2c2e; }
.perfil-menu i { margin-left: auto; font-style: normal; color: #636366; font-size: 20px; }
.folha.ajuda { max-height: 88vh; overflow-y: auto; }
.faq details { border-top: 1px solid #2c2c2e; }
.faq details:last-child { border-bottom: 1px solid #2c2c2e; }
.faq summary { list-style: none; padding: 14px 24px 14px 0; font-weight: 600; color: #fff; position: relative; cursor: pointer; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: '+'; position: absolute; right: 4px; color: #8e8e93; font-size: 20px; top: 10px; }
.faq details[open] summary::after { content: '−'; }
.faq details p { margin: 0 0 14px; color: #ebebf5; font-size: 14.5px; line-height: 1.45; }
.ajuda-contato { display: grid; gap: 8px; margin-bottom: 8px; }
.aj-versao { color: #636366; font-size: 12px; text-align: center; margin: 10px 0 0; }
.faixa-offline, .faixa-nova { position: fixed; left: 0; right: 0; top: 0; z-index: 9999; text-align: center; font-size: 13.5px; font-weight: 600; padding: calc(env(safe-area-inset-top, 0px) + 6px) 12px 6px; }
.faixa-offline { background: #ff9f0a; color: #000; }
.faixa-nova { background: #30d158; color: #000; display: flex; justify-content: center; align-items: center; gap: 12px; }
.faixa-nova[hidden], .faixa-offline[hidden] { display: none; }
.faixa-nova button { border: 0; background: #000; color: #fff; border-radius: 999px; padding: 5px 12px; font-weight: 700; }
#janela-esqueci .campo, #janela-senha .campo { display: grid; gap: 4px; margin-bottom: 10px; color: #8e8e93; font-size: 13px; font-weight: 600; }
#janela-esqueci input, #janela-senha input { background: #000 !important; color: #fff !important; border: 1px solid #2c2c2e !important; border-radius: 10px; padding: 12px; font-size: 17px; width: 100%; }
#es-codigo { letter-spacing: 6px; font-variant-numeric: tabular-nums; font-size: 22px !important; text-align: center; }

/* ---------- acesso: tempo de uso, planos e funil ---------- */
.chip-tempo { display: inline-flex; align-items: center; gap: 4px; margin-top: 8px; border: 0; border-radius: 999px; padding: 7px 12px; font-size: 13px; font-weight: 600; background: #1c1c1e; color: #ebebf5; }
.chip-tempo b { color: #30d158; }
.chip-tempo.pouco { background: #3a2a00; color: #ffd60a; } .chip-tempo.pouco b { color: #ffd60a; }
.chip-tempo.fim { background: #3a0f0c; color: #ff453a; } .chip-tempo.fim b { color: #fff; }
.chip-tempo[hidden] { display: none; }
body.sem-rolar { overflow: hidden; }
.funil { position: fixed; inset: 0; z-index: 9000; background: rgba(0,0,0,.72); display: flex; align-items: flex-end; justify-content: center; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.funil[hidden] { display: none; }
.funil-caixa { position: relative; width: 100%; max-width: 480px; max-height: 92vh; overflow-y: auto; background: #1c1c1e; border-radius: 22px 22px 0 0; padding: 22px 18px calc(env(safe-area-inset-bottom, 0px) + 22px); color: #fff; animation: fn-sobe .28s ease-out; }
@keyframes fn-sobe { from { transform: translateY(40px); opacity: 0; } }
.funil-x { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border-radius: 50%; border: 0; background: #2c2c2e; color: #8e8e93; font-size: 15px; }
.fn-topo { text-align: center; padding: 6px 10px 14px; }
.fn-ic { display: inline-grid; place-items: center; width: 56px; height: 56px; border-radius: 16px; background: #2c2c2e; font-size: 28px; }
.fn-topo h2 { margin: 12px 0 6px; font-size: 24px; font-weight: 800; letter-spacing: -.4px; }
.fn-topo p { margin: 0; color: #8e8e93; font-size: 15px; line-height: 1.4; }
.fn-topo p b { color: #fff; }
.fn-caminhos, .fn-planos, .fn-ganhos { display: grid; gap: 10px; margin: 6px 0 12px; }
.fn-caminho { position: relative; display: grid; text-align: left; gap: 3px; border: 1px solid #2c2c2e; background: #000; color: #fff; border-radius: 16px; padding: 16px 40px 16px 16px; }
.fn-caminho b { font-size: 17px; } .fn-caminho small { color: #8e8e93; font-size: 13.5px; }
.fn-caminho i { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); font-style: normal; color: #636366; font-size: 22px; }
.fn-caminho.forte { border-color: #30d158; background: linear-gradient(180deg, rgba(48,209,88,.14), rgba(48,209,88,.04)); }
.fn-caminho.forte i { color: #30d158; }
.fn-tag { position: absolute; top: -9px; left: 14px; background: #30d158; color: #000; font-size: 11px; font-weight: 800; padding: 2px 8px; border-radius: 999px; text-transform: uppercase; letter-spacing: .4px; }
.fn-plano { display: flex; justify-content: space-between; align-items: center; gap: 12px; text-align: left; border: 1px solid #2c2c2e; background: #000; color: #fff; border-radius: 16px; padding: 16px; }
.fn-plano span { display: grid; gap: 2px; min-width: 0; } .fn-plano small { color: #8e8e93; font-size: 13px; }
.fn-plano b { font-size: 17px; } .fn-preco { text-align: right; flex: none; } .fn-preco b { color: #30d158; font-variant-numeric: tabular-nums; }
.fn-plano.destaque { border-color: #30d158; box-shadow: 0 0 0 1px #30d158 inset; }
.fn-oferta { text-align: center; margin: 4px 0 16px; }
.fn-oferta s { display: block; color: #ff453a; font-size: 17px; }
.fn-oferta b { display: block; font-size: 44px; font-weight: 800; color: #30d158; letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.fn-oferta small { color: #8e8e93; }
.fn-nao { display: block; width: 100%; margin-top: 12px; border: 0; background: none; color: #8e8e93; font-size: 14.5px; text-decoration: underline; padding: 8px; }
.fn-link { display: block; text-align: center; color: #30d158; font-weight: 600; font-size: 14.5px; margin: 6px 0; text-decoration: none; }
.fn-mini { color: #8e8e93; font-size: 13.5px; text-align: center; margin: 10px 0 0; line-height: 1.4; } .fn-mini b { color: #fff; }
.fn-ganhos button { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: 4px 10px; text-align: left; border: 1px solid #2c2c2e; background: #000; color: #fff; border-radius: 14px; padding: 12px 14px; }
.fn-ganhos span { font-size: 24px; } .fn-ganhos b { font-size: 15.5px; } .fn-ganhos small { color: #30d158; font-weight: 800; font-size: 15px; }
.fn-qr { width: 200px; margin: 0 auto 14px; background: #fff; border-radius: 14px; padding: 8px; }
.fn-qr svg { display: block; width: 100%; height: auto; }
.funil-caixa .btn + .btn { margin-top: 10px; }
.aviso-geral { position: fixed; left: 12px; right: 12px; bottom: calc(env(safe-area-inset-bottom, 0px) + 78px); z-index: 800; display: flex; gap: 10px; align-items: flex-start; background: #0a84ff; color: #fff; border-radius: 14px; padding: 12px 14px; font-size: 14.5px; font-weight: 600; box-shadow: 0 8px 30px rgba(0,0,0,.5); }
.aviso-geral[hidden] { display: none; }
.aviso-geral span { flex: 1; } .aviso-geral button { border: 0; background: none; color: #fff; font-size: 15px; }
.manutencao { position: fixed; inset: 0; z-index: 9500; background: #000; display: grid; place-items: center; padding: 24px; text-align: center; color: #fff; }
.manutencao[hidden] { display: none; }
.manutencao b { font-size: 22px; } .manutencao p { color: #8e8e93; }
.fn-qr img { display: block; width: 100%; height: auto; image-rendering: pixelated; }
.fn-auto { display: flex; align-items: center; justify-content: center; gap: 8px; color: #30d158; font-size: 13.5px; font-weight: 600; margin: 10px 0 12px; }
.fn-auto i { width: 8px; height: 8px; border-radius: 50%; background: #30d158; animation: fn-pulsa 1.2s ease-in-out infinite; }
@keyframes fn-pulsa { 50% { opacity: .25; transform: scale(.7); } }

/* ---------- jogadas 2: estudo, jogada do dia e histórias ---------- */
.jg-seg { display: grid; grid-template-columns: 1fr 1fr; background: #1c1c1e; border-radius: 12px; padding: 3px; margin: 6px 0 14px; }
.jg-seg button { border: 0; background: none; color: #8e8e93; font-weight: 700; font-size: 14.5px; padding: 9px 6px; border-radius: 9px; }
.jg-seg button.on { background: #3a3a3c; color: #fff; }
.jg-prog { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; }
.jg-prog div { flex: 1; } .jg-prog b { display: block; font-size: 14.5px; } .jg-prog small { color: #8e8e93; font-size: 12.5px; }
.jg-barra { flex: none; width: 90px; height: 8px; border-radius: 4px; background: #2c2c2e; overflow: hidden; } .jg-barra i { display: block; height: 100%; background: #30d158; border-radius: 4px; }
.jg-destaque { display: grid; gap: 4px; width: 100%; text-align: left; border: 1px solid #30d158; border-radius: 18px; padding: 16px; margin-bottom: 12px; color: #fff; background: linear-gradient(160deg, rgba(48,209,88,.18), rgba(48,209,88,.03)); }
.jg-destaque small { color: #30d158; font-weight: 800; font-size: 12px; text-transform: uppercase; letter-spacing: .5px; }
.jg-destaque b { font-size: 21px; letter-spacing: -.3px; } .jg-destaque span { color: #ebebf5; font-size: 14px; line-height: 1.4; }
.jg-destaque em { font-style: normal; color: #8e8e93; font-size: 13px; } .jg-destaque strong { color: #30d158; }
.jg-filtro { margin-top: 14px; }
.tk-row.jg.feita .tk-nome b { color: #8e8e93; }
.jg-ok { font-style: normal; color: #30d158; margin-right: 6px; }
.jg-nv { font-weight: 700; } .jg-nv.b { color: #30d158; } .jg-nv.m { color: #ffd60a; } .jg-nv.a { color: #ff453a; }
.jg-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 2px; }
.jg-chips span { background: #2c2c2e; border-radius: 999px; padding: 4px 10px; font-size: 12.5px; color: #ebebf5; }
.jg-passos { margin: 14px 0 4px; } .jg-passos h4, .hs-bloco h4 { margin: 0 0 8px; font-size: 15px; color: #fff; }
.jg-passos ol, .hs-bloco ol { margin: 0; padding: 0; list-style: none; counter-reset: p; display: grid; gap: 8px; }
.jg-passos li, .hs-bloco li { counter-increment: p; position: relative; padding: 2px 0 0 34px; color: #ebebf5; font-size: 14.5px; line-height: 1.4; }
.jg-passos li::before, .hs-bloco li::before { content: counter(p); position: absolute; left: 0; top: 0; width: 24px; height: 24px; border-radius: 50%; background: #30d158; color: #000; font-weight: 800; font-size: 13px; display: grid; place-items: center; }
#jg-estudei { margin-top: 12px; }
.hs-card { display: flex; gap: 12px; align-items: center; width: 100%; text-align: left; background: #1c1c1e; border: 1px solid #2c2c2e; color: #fff; border-radius: 16px; padding: 14px; margin-bottom: 10px; }
.hs-card.lida { opacity: .7; }
.hs-em { flex: none; width: 48px; height: 48px; border-radius: 14px; background: #000; display: grid; place-items: center; font-size: 26px; }
.hs-txt { flex: 1; min-width: 0; display: grid; gap: 2px; } .hs-txt small { color: #30d158; font-weight: 700; font-size: 12.5px; }
.hs-txt b { font-size: 16px; line-height: 1.25; } .hs-txt em { font-style: normal; color: #8e8e93; font-size: 13px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hs-card > i { font-style: normal; color: #636366; font-size: 20px; }
.hs-folha { max-height: 90vh; overflow-y: auto; }
.hs-cab { text-align: center; margin: 4px 0 14px; } .hs-cab span { font-size: 44px; display: block; }
.hs-cab small { display: block; color: #30d158; font-weight: 700; margin-top: 4px; } .hs-cab b { display: block; font-size: 22px; letter-spacing: -.3px; margin-top: 2px; color: #fff; }
.hs-bloco { border-top: 1px solid #2c2c2e; padding: 14px 0; } .hs-bloco p { margin: 0; color: #ebebf5; font-size: 15px; line-height: 1.5; }
.hs-licao { background: rgba(48,209,88,.1); border: 0; border-radius: 14px; padding: 14px; margin: 4px 0; }
#hs-parecida { margin-top: 10px; } #hs-li { margin-top: 10px; }

/* ============================================================
   VISUAL "BOLSA" CALMO (igual app Ações do iPhone)
   Verde e vermelho só para preço que caiu ou subiu. O resto é preto, cinza e branco.
   ============================================================ */
/* linhas da lista e do catálogo */
.tk-row { grid-template-columns: minmax(0, 1fr) 100px 96px; gap: 14px; padding: 14px 0; border-bottom: .5px solid #38383a; }
.tk-nome b { font-size: 19px; font-weight: 700; letter-spacing: -.2px; }
.tk-nome small { font-size: 14.5px; color: #8e8e93; margin-top: 2px; }
.tk-sp { width: 100px; height: 42px; }
.tk-preco { gap: 6px; } .tk-preco b { font-size: 18px; font-weight: 600; }
.pl { min-width: 84px; padding: 5px 8px; border-radius: 7px; font-size: 15.5px; font-weight: 600; }
.pl.b { background: #30d158; color: #fff; } .pl.a { background: #ff453a; color: #fff; } .pl.n { background: #3a3a3c; color: #fff; }
.tk-row.cat { grid-template-columns: minmax(0, 1fr) 84px 88px 30px; gap: 10px; }
.tk-row.cat .tk-sp { width: 84px; }
.tk-mais { width: 30px; height: 30px; border-radius: 50%; border: 0; background: #2c2c2e; color: #fff; font-size: 20px; font-weight: 500; line-height: 1; display: grid; place-items: center; padding: 0; }
.tk-mais:active { background: #48484a; }
.tk-addbtn { border-color: #48484a !important; color: #fff !important; }
.ls-itens { margin: 0; padding: 0; background: none !important; border: 0 !important; box-shadow: none !important; }
.ls-itens::before, .ls-itens::after { display: none !important; }
.ls-itens li.tk-row.sl2 { background: none !important; }
.ls-itens li.tk-row.sl2.feito .tk-nome b { color: #8e8e93; text-decoration: line-through; text-decoration-color: #636366; }
.ls-itens li.tk-row.sl2.novo { animation: tkNovo 1.4s ease-out; }
.ls-h2 { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; }
.ls-h2 em { font-style: normal; font-variant-numeric: tabular-nums; color: #fff; } .ls-h2 em small { color: #8e8e93; font-size: 13px; font-weight: 500; }
.it-total { margin: 4px 0 10px; color: #8e8e93; font-size: 14.5px; font-variant-numeric: tabular-nums; }
.it-cot { margin: 0 0 12px; }

/* botões e destaques sem verde */
.btn-primario, .btn-primario:active, :root[data-publico="ele"] .btn-primario, .en-btn-principal, .bv-btn-principal {
  background: #fff !important; color: #000 !important; box-shadow: none !important; }
.btn-primario:disabled { background: #3a3a3c !important; color: #8e8e93 !important; }
.btn-contorno { border-color: #48484a !important; color: #fff !important; background: transparent !important; }
.btn-lima { background: #2c2c2e !important; color: #fff !important; box-shadow: none !important; }
.chip-tempo b { color: #fff; } .chip-tempo { background: #1c1c1e; color: #8e8e93; }
.jg-destaque { border-color: #38383a; background: #1c1c1e; } .jg-destaque small { color: #8e8e93; } .jg-destaque strong { color: #fff; }
.jg-tag, .hs-txt small, .hs-cab small { color: #8e8e93 !important; }
.jg-barra i { background: #fff; }
.jg-passos li::before, .hs-bloco li::before { background: #3a3a3c; color: #fff; }
.hs-licao { background: #1c1c1e; }
.jg-minha i, .fn-caminho.forte i { color: #8e8e93 !important; }
.fn-caminho.forte { border-color: #48484a; background: #1c1c1e; }
.fn-tag { background: #fff; color: #000; }
.fn-plano.destaque { border-color: #fff; box-shadow: 0 0 0 1px #fff inset; }
.fn-preco b, .fn-oferta b, .fn-link, .fn-ganhos small { color: #fff; }
.fn-auto { color: #8e8e93; } .fn-auto i { background: #8e8e93; }
.jg-filtro button.on, .jg-seg button.on { background: #fff; color: #000; }
.btn-texto.esqueci, .sug-email button { color: #0a84ff; }
.ls-cat-mais { color: #0a84ff !important; }
.faixa-nova { background: #2c2c2e; color: #fff; } .faixa-nova button { background: #fff; color: #000; }
.tk-add { border-color: #636366; color: #fff; } .tk-row.ok .tk-add { background: #fff; color: #000; }
.tk-qtd { background: #3a3a3c; color: #fff; }

/* ---------- tela de cotação (igual a tela de uma ação) ---------- */
.cot-fundo { align-items: flex-end; }
.folha.cot { background: #1c1c1e; max-height: 94vh; overflow-y: auto; padding-top: 8px; border-radius: 22px 22px 0 0; }
.cot-barra { display: flex; justify-content: space-between; margin: 4px 0 10px; }
.cot-x, .cot-alerta { width: 40px; height: 40px; border-radius: 50%; border: 0; background: #2c2c2e; color: #fff; font-size: 17px; }
.cot-tit { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; padding-bottom: 10px; border-bottom: .5px solid #38383a; }
.cot-tit h2 { margin: 0; font-size: 30px; font-weight: 800; letter-spacing: -.6px; color: #fff; }
.cot-tit small { color: #8e8e93; font-size: 15px; }
.cot-precos { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 10px 0; border-bottom: .5px solid #38383a; }
.cot-precos > div + div { border-left: .5px solid #38383a; padding-left: 14px; }
.cot-precos p { margin: 0; font-variant-numeric: tabular-nums; } .cot-precos b { font-size: 20px; font-weight: 700; color: #fff; }
.cot-precos span { font-size: 17px; font-weight: 600; } .cot-precos span.b { color: #30d158; } .cot-precos span.a { color: #ff453a; } .cot-precos span.n { color: #8e8e93; }
.cot-precos small { display: block; color: #8e8e93; font-size: 14px; margin-top: 2px; }
.cot-per { display: flex; gap: 4px; margin: 12px 0 6px; }
.cot-per button { flex: 1; border: 0; background: none; color: #fff; font-size: 15px; font-weight: 600; padding: 7px 0; border-radius: 999px; }
.cot-per button.on { background: #3a3a3c; }
.cot-graf { touch-action: none; user-select: none; -webkit-user-select: none; }
.cot-svg { width: 100%; height: auto; display: block; overflow: visible; }
.cot-grade { stroke: #2c2c2e; stroke-width: 1; } .cot-grade.v { stroke: #242426; }
.cot-ey { fill: #fff; font-size: 12px; font-variant-numeric: tabular-nums; } .cot-ex { fill: #fff; font-size: 11.5px; }
.cot-base { stroke: #8e8e93; stroke-width: 1; stroke-dasharray: 3 3; opacity: .7; }
.cot-linha { fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.cot-linha.b { stroke: #30d158; } .cot-linha.a { stroke: #ff453a; } .cot-linha.n { stroke: #8e8e93; }
.cot-g1 { stop-opacity: .35; } .cot-g1.b { stop-color: #30d158; } .cot-g1.a { stop-color: #ff453a; } .cot-g1.n { stop-color: #8e8e93; }
.cot-g2 { stop-color: #1c1c1e; stop-opacity: 0; }
.cot-cur { stroke: #fff; stroke-width: 1; opacity: .6; }
.cot-ponto { stroke: #1c1c1e; stroke-width: 2; } .cot-ponto.b { fill: #30d158; } .cot-ponto.a { fill: #ff453a; } .cot-ponto.n { fill: #8e8e93; }
.cot-pouco svg { width: 100%; height: auto; } .cot-pouco p, .cot-vazio { color: #8e8e93; font-size: 14px; text-align: center; margin: 4px 0 8px; }
.cot-stats { display: grid; grid-template-columns: 1fr 1fr; column-gap: 18px; margin: 10px 0 4px; border-top: .5px solid #38383a; padding-top: 6px; }
.cot-stats div { display: flex; justify-content: space-between; gap: 8px; padding: 7px 0; font-size: 14.5px; border-bottom: .5px solid #2c2c2e; }
.cot-stats span { color: #8e8e93; } .cot-stats b { color: #fff; font-weight: 600; font-variant-numeric: tabular-nums; white-space: nowrap; }
.cot-h { margin: 18px 0 4px; font-size: 20px; color: #fff; }
.cot-loja { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 11px 0; border-bottom: .5px solid #38383a; }
.cot-loja div { min-width: 0; } .cot-loja b { display: block; color: #fff; font-size: 16px; }
.cot-loja small { display: block; color: #8e8e93; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cot-loja em { font-style: normal; flex: none; min-width: 84px; text-align: right; padding: 5px 8px; border-radius: 7px; font-weight: 600; font-variant-numeric: tabular-nums; color: #fff; }
.cot-loja em.b { background: #30d158; } .cot-loja em.a { background: #3a3a3c; }
#cot-add { margin-top: 16px; }
.cot-nota { color: #636366; font-size: 12.5px; text-align: center; margin: 12px 0 4px; } .cot-nota b { color: #8e8e93; }
@media (max-width: 360px) { .tk-row { grid-template-columns: minmax(0, 1fr) 76px 88px; } .tk-sp { width: 76px; } .tk-row.cat { grid-template-columns: minmax(0, 1fr) 64px 82px 30px; } .tk-row.cat .tk-sp { width: 64px; } }
.cot-svg rect, .cot-svg text, .cot-svg line, .cot-svg polygon { stroke-opacity: 1; }
.cot-svg rect, .cot-svg text, .cot-svg polygon { stroke: none !important; }
.cot-svg text { font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", system-ui, sans-serif; font-weight: 500; }
.cot-precos b { font-size: 21px; } .cot-precos span { display: inline-block; font-size: 15px; }
.ls-itens li.tk-row.sl2 { display: grid !important; padding: 14px 0 !important; border-bottom: .5px solid #38383a !important; margin: 0 !important; border-radius: 0 !important; }
.ls-ipo .tk-add, .ipo-add, [data-ipo-add] { border-color: #48484a !important; color: #fff !important; background: #2c2c2e !important; }
.tk-row .mm { display: flex; align-items: center; gap: 6px; }
.tk-row .mm-b, .mm-b { width: 30px; height: 30px; border-radius: 50% !important; border: 0 !important; background: #2c2c2e !important; color: #fff !important; font-size: 19px; display: grid; place-items: center; padding: 0; box-shadow: none !important; }
.mm.tem b { color: #fff; font-size: 14px; }
.ipo2 .tk-nome b { font-size: 16px; }
#ls-itens.ls-itens { padding: 0 !important; margin: 0 0 8px !important; background: none !important; border: 0 !important; }
.cp-busca button { background: #fff !important; color: #000 !important; }
.cp-ajudar small, .cp-feed h3 span, .cp-selo span { color: #8e8e93 !important; }
.cp-selo span, .cp-feed h3 span { background: #8e8e93 !important; box-shadow: none !important; }
/* resto do app sem verde de enfeite */
.abas button.ativo svg { stroke: #fff !important; } .abas button.ativo { color: #fff !important; }
.btn-pedido { background: #fff !important; color: #000 !important; }
.quem-sou .ativo, .quem-sou > .ativo, .alternar button.ativo, .segmento button.ativo { border-color: #fff !important; color: #fff !important; background: #2c2c2e !important; }
.logo-ic, :root[data-publico="ele"] .logo-ic { background: #2c2c2e !important; } .logo-ic::after { background: #fff !important; }
.ja-vendo a, .link-painel a, .perfil-legal a { color: #0a84ff !important; }
.jg .tk-preco b { color: #fff; }
.categorias button span, .categorias button:nth-child(n) span { background: #1c1c1e !important; box-shadow: none !important; border: 0 !important; }
.categorias button[aria-selected="true"] span { background: #fff !important; }
.categorias button[aria-selected="true"] { color: #fff !important; }
#perfil-fora .ja-vendo a, #tela-perfil .ja-vendo a { color: #0a84ff !important; }
#perfil-fora .quem-sou a, #perfil-fora .quem-sou a * { color: #fff !important; }
.ls-vazia2 b { color: #fff !important; }
/* sem preço ainda: mesmo desenho da bolsa, com aviso */
.tk-sp.enfeite { opacity: .55; }
.pl.ind { background: #2c2c2e; color: #8e8e93; font-size: 12.5px; padding: 6px 6px; }
.cot-enfeite { position: relative; }
.cot-enfeite svg { opacity: .45; }
.cot-aviso { position: absolute; left: 50%; top: 42%; transform: translate(-50%, -50%); width: 82%; text-align: center; background: rgba(28,28,30,.92); border: .5px solid #38383a; border-radius: 14px; padding: 12px 14px; }
.cot-aviso b { display: block; color: #fff; font-size: 16px; } .cot-aviso span { display: block; color: #8e8e93; font-size: 13px; margin-top: 4px; line-height: 1.35; }

/* ---------- lista: o que ESTÁ na lista (cartão) x o que NÃO está (linhas soltas com +) ---------- */
#ls-itens.ls-itens:not(:empty) { background: #1c1c1e !important; border-radius: 18px !important; padding: 2px 14px !important; margin: 0 0 6px !important; }
.ls-itens li.tk-row.sl2 { grid-template-columns: 30px minmax(0, 1fr) 84px 92px !important; gap: 10px !important; border-bottom: .5px solid #38383a !important; }
.ls-itens li.tk-row.sl2:last-child { border-bottom: 0 !important; }
.ls-itens li.tk-row.sl2 .tk-sp { width: 84px; }
.sl-q { width: 28px; height: 28px; border-radius: 50%; background: #fff; color: #000; font-weight: 800; font-size: 14px; display: grid; place-items: center; font-variant-numeric: tabular-nums; }
.ls-itens li.tk-row.sl2.feito .sl-q { background: #30d158; color: #000; }
.ls-itens li.tk-row.sl2.novo { animation: slEntra 1.6s ease-out; }
@keyframes slEntra { 0% { background: rgba(255,255,255,.14); transform: scale(.98); } 30% { transform: scale(1); } 100% { background: transparent; } }
.ls-h2 small { color: #8e8e93; font-size: 14px; font-weight: 600; margin-left: 6px; }
#ls-cat-tit { color: #8e8e93 !important; font-size: 13.5px !important; margin: 18px 0 2px !important; }
.ls-cat .tk-nome b, #ls-catalogo .tk-nome b { color: #d1d1d6; }

/* ============================================================
   BOAS-VINDAS (onboarding) estilo app de verdade
   ============================================================ */
.onb { position: fixed; inset: 0; z-index: 9800; background: #000; color: #fff; display: flex; flex-direction: column; padding-top: env(safe-area-inset-top, 0px); }
.onb[hidden] { display: none; }
.onb-topo { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px 4px; }
.onb-marca { display: flex; align-items: center; gap: 8px; } .onb-marca img { width: 28px; height: 28px; border-radius: 8px; } .onb-marca b { font-size: 18px; letter-spacing: -.3px; }
.onb-pular { border: 0; background: none; color: #8e8e93; font-size: 15px; font-weight: 600; padding: 8px; }
.onb-pular[hidden] { display: none; }
.onb-trilho { flex: 1; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.onb-trilho::-webkit-scrollbar { display: none; }
.onb-sl { flex: 0 0 100%; scroll-snap-align: start; display: flex; flex-direction: column; justify-content: center; gap: 22px; padding: 6px 20px 10px; box-sizing: border-box; overflow-y: auto; }
.onb-mock { width: 100%; max-width: 420px; margin: 0 auto; }
.onb-cartao { background: #1c1c1e; border: .5px solid #2c2c2e; border-radius: 22px; padding: 14px 16px; box-shadow: 0 30px 60px -30px rgba(0,0,0,.9); }
.onb-cartao .tk-row { grid-template-columns: minmax(0, 1fr) 84px 84px; padding: 11px 0; cursor: default; }
.onb-cartao .tk-row:last-child { border-bottom: 0; }
.onb-cartao .tk-sp { width: 84px; height: 36px; } .onb-cartao .tk-nome b { font-size: 16.5px; } .onb-cartao .tk-preco b { font-size: 16px; } .onb-cartao .pl { min-width: 70px; font-size: 14px; }
.onb-c-cab { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: 6px; border-bottom: .5px solid #38383a; }
.onb-c-cab b { font-size: 17px; } .onb-c-cab small { color: #636366; font-size: 12px; }
.onb-eco { display: flex; justify-content: space-between; align-items: center; margin-top: 12px; padding: 12px 14px; border-radius: 14px; background: #000; }
.onb-eco span { color: #8e8e93; } .onb-eco b { color: #30d158; font-size: 22px; font-variant-numeric: tabular-nums; }
.onb-cartao .cot-tit h2 { font-size: 24px; } .onb-cartao .cot-per button { pointer-events: none; }
.onb-ganho { display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 8px; padding: 12px 0; border-bottom: .5px solid #38383a; }
.onb-ganho span { font-size: 22px; } .onb-ganho b { font-size: 15.5px; } .onb-ganho em { font-style: normal; font-weight: 700; color: #fff; background: #2c2c2e; border-radius: 7px; padding: 4px 9px; }
.onb-jg { display: grid; gap: 3px; margin-top: 12px; background: #000; border-radius: 14px; padding: 12px 14px; }
.onb-jg small { color: #8e8e93; font-weight: 700; font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px; } .onb-jg b { font-size: 18px; } .onb-jg span { color: #8e8e93; font-size: 13.5px; } .onb-jg strong { color: #30d158; }
.onb-txt { max-width: 420px; margin: 0 auto; width: 100%; }
.onb-txt h2 { font-size: clamp(26px, 7.4vw, 32px); line-height: 1.08; letter-spacing: -.8px; margin: 0 0 10px; font-weight: 800; }
.onb-txt p { color: #8e8e93; font-size: 16.5px; line-height: 1.45; margin: 0; }
.onb-pe { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 20px calc(env(safe-area-inset-bottom, 0px) + 18px); }
.onb-pe[hidden] { display: none; }
.onb-dots { display: flex; gap: 7px; } .onb-dots i { width: 7px; height: 7px; border-radius: 4px; background: #3a3a3c; transition: width .25s, background .25s; } .onb-dots i.on { width: 22px; background: #fff; }
.onb-btn { border: 0; background: #fff; color: #000; font-weight: 700; font-size: 17px; border-radius: 14px; padding: 15px 26px; }
.onb-btn:active { transform: scale(.98); } .onb-btn:disabled { opacity: .6; }
.onb-auth { justify-content: center; }
.onb-auth-caixa { width: 100%; max-width: 400px; margin: 0 auto; text-align: center; }
.onb-logo { width: 64px; height: 64px; border-radius: 16px; margin-bottom: 14px; }
.onb-auth h2 { font-size: 30px; letter-spacing: -.7px; margin: 0 0 6px; font-weight: 800; }
.onb-a-sub { color: #8e8e93; margin: 0 0 18px; font-size: 15.5px; }
.onb-seg { display: grid; grid-template-columns: 1fr 1fr; background: #1c1c1e; border-radius: 12px; padding: 3px; margin-bottom: 14px; }
.onb-seg button { border: 0; background: none; color: #8e8e93; font-weight: 700; font-size: 15px; padding: 10px; border-radius: 9px; }
.onb-seg button.on { background: #3a3a3c; color: #fff; }
#onb-form { display: grid; gap: 10px; text-align: left; }
#onb-form input { width: 100%; box-sizing: border-box; background: #1c1c1e; border: .5px solid #38383a; color: #fff; border-radius: 12px; padding: 15px 14px; font-size: 17px; }
#onb-form input:focus { outline: none; border-color: #8e8e93; }
#onb-form input[hidden] { display: none; }
.onb-senha { position: relative; } .onb-senha input { padding-right: 48px !important; }
.onb-senha .ver-senha { position: absolute; right: 6px; top: 50%; transform: translateY(-50%); border: 0; background: none; color: #8e8e93; font-size: 18px; padding: 8px; }
#onb-form .onb-btn { width: 100%; margin-top: 4px; }
.onb-erro { margin: 0; background: rgba(255,69,58,.14); color: #ff6961; border-radius: 10px; padding: 10px 12px; font-size: 14px; }
.onb-link { display: block; margin: 12px auto 0; border: 0; background: none; color: #0a84ff; font-size: 15px; font-weight: 600; }
.onb-link.cinza { color: #8e8e93; font-weight: 500; }
.onb-link[hidden] { display: none; }
.onb-legal { color: #636366; font-size: 12px; margin: 16px 0 0; } .onb-legal a { color: #8e8e93; }
@media (max-height: 700px) { .onb-sl { gap: 14px; } .onb-cartao .tk-row { padding: 8px 0; } .onb-txt h2 { font-size: 24px; } }

/* ---------- aba Alimentar ---------- */
.abas button { font-size: 10.5px !important; min-width: 0; letter-spacing: -.1px; }
.al-corpo { padding: 0 16px 120px; }
.al-tempo { background: #1c1c1e; border-radius: 20px; padding: 18px; margin: 6px 0 4px; display: grid; gap: 4px; }
.al-tempo small { color: #8e8e93; font-size: 13.5px; font-weight: 600; }
.al-tempo > b { font-size: 34px; font-weight: 800; letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.al-tempo.fim > b { color: #ff453a; }
.al-tempo > span { color: #8e8e93; font-size: 14.5px; line-height: 1.4; }
.al-tempo .btn { margin-top: 10px; }
.al-barra { height: 6px; border-radius: 3px; background: #3a3a3c; overflow: hidden; margin-top: 10px; } .al-barra i { display: block; height: 100%; background: #fff; border-radius: 3px; }
.al-tempo em { font-style: normal; color: #8e8e93; font-size: 13px; } .al-tempo em b { color: #fff; }
.al-h { font-size: 20px; margin: 22px 0 8px; color: #fff; letter-spacing: -.3px; }
.al-lista { background: #1c1c1e; border-radius: 18px; padding: 0 14px; }
.al-acao, .al-hist { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; text-align: left; background: none; border: 0; border-bottom: .5px solid #38383a; color: #fff; padding: 13px 0; }
.al-hist { grid-template-columns: minmax(0, 1fr) auto; }
.al-lista > :last-child { border-bottom: 0; }
.al-ic { width: 40px; height: 40px; border-radius: 12px; background: #2c2c2e; display: grid; place-items: center; font-size: 21px; }
.al-txt { min-width: 0; display: grid; gap: 2px; } .al-txt b { font-size: 16.5px; } .al-txt small { color: #8e8e93; font-size: 13.5px; line-height: 1.3; }
.al-acao em, .al-hist em { font-style: normal; font-weight: 700; font-size: 15px; background: #2c2c2e; color: #fff; border-radius: 8px; padding: 6px 10px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.al-hist em.b { background: #30d158; color: #fff; } .al-hist em.a { background: #ff453a; }
.al-acao:active { opacity: .7; }
.al-pontos { background: #1c1c1e; border-radius: 18px; padding: 13px 14px; margin-top: 14px; border-bottom: 0; }
.al-pontos em { background: none; color: #636366; font-size: 22px; }
.al-nota { color: #636366; font-size: 12.5px; margin: 10px 4px 0; }
.al-assinar { margin-top: 18px; }
.abas button { white-space: nowrap; }

/* ---------- apresentação do Alimentar ---------- */
#ali.onb { z-index: 9700; }
.ali-etq { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 12px; padding: 16px 0 10px; }
.ali-etq-ic { width: 44px; height: 44px; border-radius: 12px; background: #2c2c2e; display: grid; place-items: center; font-size: 22px; }
.ali-etq b { font-size: 18px; } .ali-etq small { display: block; color: #8e8e93; font-size: 13px; margin-top: 2px; }
.ali-etq em { font-style: normal; font-size: 22px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ali-ok { background: rgba(48,209,88,.14); color: #30d158; border-radius: 12px; padding: 10px 12px; font-weight: 600; font-size: 14px; }
.ali-big { padding: 14px 0 4px; } .ali-big b { display: block; font-size: 34px; font-weight: 800; letter-spacing: -1px; } .ali-big span { color: #8e8e93; font-size: 14px; }
.ali-graf .tk-sp.grande { width: 100%; height: 70px; margin: 6px 0; }
.ali-tres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-top: 8px; }
.ali-tres div { background: #000; border-radius: 12px; padding: 10px; text-align: center; } .ali-tres b { display: block; font-size: 18px; } .ali-tres small { color: #8e8e93; font-size: 11.5px; }
.ali-passos { display: grid; gap: 4px; }
.ali-passo { display: grid; grid-template-columns: 26px 38px 1fr; align-items: center; gap: 10px; padding: 10px 0; border-bottom: .5px solid #38383a; }
.ali-passo:last-child { border-bottom: 0; }
.ali-n { width: 24px; height: 24px; border-radius: 50%; background: #fff; color: #000; font-weight: 800; font-size: 13px; display: grid; place-items: center; }
.ali-pi { width: 38px; height: 38px; border-radius: 10px; background: #2c2c2e; display: grid; place-items: center; font-size: 19px; }
.ali-passo b { font-size: 16px; display: block; } .ali-passo small { color: #8e8e93; font-size: 13px; }
.ali-fim-ic { font-size: 54px; margin-bottom: 8px; }
.ali-fim { text-align: left; margin-top: 6px; }
.al-como { display: grid; grid-template-columns: 34px 1fr auto; gap: 10px; align-items: center; width: 100%; text-align: left; background: #1c1c1e; border: .5px solid #38383a; color: #fff; border-radius: 16px; padding: 12px 14px; margin: 6px 0 12px; }
.al-como > span:first-child { font-size: 22px; } .al-como b { display: block; font-size: 15.5px; } .al-como small { color: #8e8e93; font-size: 13px; } .al-como i { font-style: normal; color: #636366; font-size: 22px; }
/* nome do produto colorido pela variação do mês */
.tk-nome b.nb, #ls-catalogo .tk-nome b.nb { color: #30d158 !important; }
.tk-nome b.na, #ls-catalogo .tk-nome b.na { color: #ff453a !important; }
#cot-nome.nb { color: #30d158 !important; } #cot-nome.na { color: #ff453a !important; }
