/* Bússola Nutricional: cores e letras do FOOD (tema Bowl). Cabeçalho e rodapé vêm de casca.css. */
:root { --tinta: #13261C; --suave: #4B5E53; --borda: #E3ECE6; --verde: #0B7A3E; --verde-vivo: #19B460; --verde-escuro: #0E3B25; --menta: #EAF7EF; --proteina: #FF6B57; --carbo: #FFB627; --gordura: #8456E0; --titulo: Outfit, system-ui, sans-serif; --corpo: "Plus Jakarta Sans", system-ui, sans-serif; }
body { margin: 0; background: #fff; color: var(--tinta); font-family: var(--corpo); }
.bs-pagina { max-width: 1200px; margin: 0 auto; padding: 0 24px 56px; box-sizing: border-box; }
.bs-pagina h1, .bs-pagina h2, .bs-pagina h3 { font-family: var(--titulo); margin: 0; color: var(--tinta); }
.bs-oculto { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

.bs-topo { text-align: center; padding: 44px 0 28px; }
.bs-rosa { width: 60px; height: 60px; color: var(--verde-escuro); }
.bs-topo h1 { font-size: clamp(36px, 5vw, 54px); font-weight: 700; line-height: 1.15; margin-top: 10px; }
.bs-topo > p { font-size: 18px; line-height: 1.5; color: var(--suave); margin: 8px 0 24px; }
.bs-busca { position: relative; max-width: 640px; margin: 0 auto; text-align: left; }
.bs-busca input { width: 100%; box-sizing: border-box; height: 58px; padding: 0 22px; border: 2px solid var(--verde-escuro); border-radius: 14px; font: 500 18px var(--corpo); color: var(--tinta); background: #fff; }
.bs-busca input:focus { outline: 3px solid var(--verde-vivo); outline-offset: 2px; }
.bs-busca ul { position: absolute; z-index: 20; left: 0; right: 0; top: 64px; list-style: none; margin: 0; padding: 6px; background: #fff; border: 1px solid var(--borda); border-radius: 14px; box-shadow: 0 14px 34px rgba(14, 59, 37, .16); max-height: 420px; overflow-y: auto; }
.bs-busca li[role="option"] { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 11px 14px; border-radius: 9px; cursor: pointer; font-size: 15px; line-height: 1.35; }
.bs-busca li[role="option"]:hover, .bs-busca li.on { background: var(--menta); }
.bs-busca small { flex: none; font-size: 12px; color: var(--suave); }
.bs-vazio { padding: 12px 14px; color: var(--suave); font-size: 15px; }
.bs-sugestoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 16px; }
.bs-sugestoes button { padding: 8px 14px; border: 1px solid var(--borda); border-radius: 999px; background: #fff; font: 600 14px var(--corpo); color: var(--tinta); cursor: pointer; }
.bs-sugestoes button:hover { border-color: var(--verde); color: var(--verde); }

.bs-ficha { max-width: 920px; margin: 8px auto 0; padding: 28px; border: 1px solid var(--borda); border-radius: 18px; scroll-margin-top: 16px; }
.bs-cabeca h2 { font-size: clamp(26px, 3.4vw, 34px); font-weight: 700; line-height: 1.2; }
.bs-cabeca p { margin: 6px 0 0; font-size: 13px; color: var(--suave); }
.bs-quanto { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin: 20px 0; padding: 14px 16px; background: var(--menta); border-radius: 12px; font-size: 14px; font-weight: 600; }
.bs-campo { display: inline-flex; align-items: center; gap: 6px; }
.bs-campo input { width: 88px; height: 38px; box-sizing: border-box; padding: 0 8px; border: 1px solid #b9cdbf; border-radius: 8px; font: 700 16px var(--corpo); color: var(--tinta); text-align: right; background: #fff; }
.bs-porcoes { display: flex; flex-wrap: wrap; gap: 6px; }
.bs-porcoes button { padding: 7px 11px; border: 1px solid #b9cdbf; border-radius: 8px; background: #fff; font: 600 13px var(--corpo); color: var(--tinta); cursor: pointer; }
.bs-porcoes button.on { background: var(--verde-escuro); border-color: var(--verde-escuro); color: #fff; }
.bs-painel { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; align-items: center; margin-bottom: 26px; }
.bs-mostrador { width: 100%; display: block; }
.bs-marcas line { stroke: #9fb3a7; stroke-width: .3; }
.bs-agulha { fill: var(--verde-escuro); opacity: .9; }
.bs-kcal { font: 700 6.4px var(--titulo); fill: var(--tinta); paint-order: stroke; stroke: #fff; stroke-width: 1.4px; }
.bs-kcal-u { font: 600 2.8px var(--corpo); fill: var(--suave); paint-order: stroke; stroke: #fff; stroke-width: 1px; }
.bs-macros { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.bs-macros li { padding: 14px; border-radius: 12px; border-top: 4px solid; background: #fafcfb; }
.bs-macros li[data-m="p"] { border-color: var(--proteina); }
.bs-macros li[data-m="c"] { border-color: var(--carbo); }
.bs-macros li[data-m="g"] { border-color: var(--gordura); }
.bs-macros b { display: block; font: 700 25px/1.2 var(--titulo); }
.bs-macros span { display: block; margin-top: 4px; font-size: 13px; line-height: 1.35; color: var(--suave); }
.bs-tabelas { columns: 2; column-gap: 32px; }
.bs-grupo { break-inside: avoid; margin-bottom: 26px; }
.bs-grupo h3 { font-size: 20px; font-weight: 700; margin-bottom: 6px; }
.bs-grupo table { width: 100%; border-collapse: collapse; font-size: 14px; }
.bs-grupo thead th { padding: 6px 0; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--suave); text-align: right; border-bottom: 2px solid var(--verde-escuro); }
.bs-grupo thead th:first-child { text-align: left; }
.bs-grupo tbody th { padding: 8px 8px 8px 0; font-weight: 500; text-align: left; line-height: 1.3; }
.bs-grupo td { padding: 8px 0 8px 10px; text-align: right; white-space: nowrap; font-weight: 600; }
.bs-grupo td:last-child { width: 50px; color: var(--suave); font-weight: 500; }
.bs-grupo tbody tr { border-bottom: 1px solid var(--borda); }
.bs-ni { font-weight: 400; font-size: 12px; color: var(--suave); }
details.bs-grupo { column-span: all; margin-bottom: 0; }
details.bs-grupo summary { cursor: pointer; font: 700 20px var(--titulo); padding: 10px 0; border-top: 1px solid var(--borda); }
details.bs-grupo[open] table { max-width: 440px; }
.bs-pagina .ff-anuncio { margin: 36px auto; }
.bs-sobre { max-width: 760px; margin: 0 auto; }
.bs-sobre h2 { font-size: 24px; font-weight: 700; margin-bottom: 10px; }
.bs-sobre p { margin: 0 0 12px; font-size: 16px; line-height: 1.65; color: #2b3f33; }
.bs-aviso { text-align: center; color: var(--suave); }
@media (max-width: 760px) {
  .bs-pagina { padding: 0 16px 40px; }
  .bs-topo { padding-top: 28px; }
  .bs-busca input { height: 54px; font-size: 16px; }
  .bs-busca ul { max-height: 340px; }
  .bs-busca li[role="option"] { flex-direction: column; gap: 2px; }
  .bs-ficha { padding: 18px 16px; }
  .bs-painel { grid-template-columns: minmax(0, 1fr); }
  .bs-tabelas { columns: 1; }
  .bs-mostrador { max-width: 210px; margin: 0 auto; }
  .bs-macros { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .bs-macros li { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; border-top: 0; border-left: 4px solid; }
  .bs-macros b { font-size: 20px; order: 2; flex: none; }
  .bs-macros span { margin: 0; }
}

/* páginas por alimento e por grupo */
.bs-trilha { display: flex; flex-wrap: wrap; gap: 8px; padding-top: 18px; font-size: 13px; font-weight: 600; color: var(--suave); }
.bs-trilha a { color: var(--verde); text-decoration: none; }
.bs-cabeca-pagina { padding: 18px 0 14px; }
.bs-cabeca-pagina h1 { font-size: clamp(28px, 4vw, 42px); font-weight: 700; line-height: 1.15; }
.bs-cabeca-pagina p { margin: 8px 0 0; font-size: 14px; color: var(--suave); }
.bs-alimento { max-width: 900px; }
.bs-resposta { background: var(--menta); border-left: 4px solid var(--verde); border-radius: 12px; padding: 18px 22px; margin: 6px 0 24px; }
.bs-resposta strong { display: block; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--verde); margin-bottom: 6px; }
.bs-resposta > p { margin: 0; font-size: 18px; line-height: 1.5; font-weight: 600; }
.bs-resposta ul { list-style: none; margin: 12px 0 0; padding: 0; display: grid; gap: 6px; font-size: 16px; }
.bs-resposta .bs-nota { margin-top: 10px; font-weight: 400; }
.bs-texto { font-size: 17px; line-height: 1.7; color: #2b3f33; max-width: 760px; }
.bs-texto p { margin: 0 0 1em; }
.bs-calcular a { display: inline-block; padding: 10px 16px; border: 1px solid var(--verde); border-radius: 10px; color: var(--verde); font-weight: 700; text-decoration: none; }
.bs-titulo-ficha { font-size: 24px; font-weight: 700; margin: 8px 0 14px; }
.bs-nota { font-size: 13px; line-height: 1.5; color: var(--suave); }
.bs-tabela-rolagem { overflow-x: auto; }
.bs-lista { width: 100%; border-collapse: collapse; font-size: 15px; }
.bs-lista th, .bs-lista td { padding: 9px 10px; border-bottom: 1px solid var(--borda); text-align: right; white-space: nowrap; }
.bs-lista th:first-child { text-align: left; white-space: normal; font-weight: 500; }
.bs-lista thead th { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); border-bottom: 2px solid var(--verde-escuro); }
.bs-lista a { color: var(--tinta); }
.bs-atual { background: var(--menta); font-weight: 700; }
.bs-parecidos { max-width: 900px; margin-top: 32px; }
.bs-parecidos h2, .bs-grupos h2 { font-size: 24px; font-weight: 700; margin-bottom: 12px; }
.bs-grupos { max-width: 920px; margin: 34px auto 0; }
.bs-grupos-lista { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.bs-grupos-lista a { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px; border: 1px solid var(--borda); border-radius: 12px; color: var(--tinta); text-decoration: none; }
.bs-grupos-lista a:hover { border-color: var(--verde); }
.bs-grupos-lista span { font-size: 13px; color: var(--suave); }
