.ed-bloco, .ed-figura, .ed-dado {
    --ed-superficie: var(--surface-color, #ffffff);
    --ed-fundo: var(--background-color, #f4f7f9);
    --ed-borda: var(--border-color, #dee2e6);
    --ed-texto: var(--text-color, #212529);
    --ed-apagado: var(--text-muted-color, #6c757d);
    --ed-acento: var(--primary-color, #007bff);
    --ed-raio: var(--border-radius, 8px);
}
.ed-bloco {
    margin: 2.5rem 0;
}
.ed-bloco > h2,
.ed-bloco > h3 {
    margin-top: 0;
    scroll-margin-top: 96px;
}
.ed-bloco > h2::before {
    content: "";
    display: inline-block;
    width: .5em;
    height: .5em;
    margin-right: .5em;
    border-radius: 50%;
    background-color: var(--ed-acento);
    vertical-align: middle;
}
.ed-ancora {
    margin-left: .5rem;
    font-size: .8em;
    font-weight: 400;
    color: var(--ed-apagado);
    text-decoration: none;
    opacity: 0;
    transition: opacity .15s linear;
}
.ed-bloco:hover .ed-ancora,
.ed-ancora:focus {
    opacity: 1;
}
.ed-ancora:focus {
    outline: 2px solid var(--ed-acento);
    outline-offset: 2px;
}
.ed-figura {
    margin: 1.5rem 0;
    padding: 1rem;
    background-color: var(--ed-superficie);
    border: 1px solid var(--ed-borda);
    border-radius: var(--ed-raio);
}
.ed-figura {
    overflow-x: auto;
}
.ed-figura svg {
    display: block;
    width: 100%;
    height: auto;
    min-width: 520px;
}
@media (min-width: 600px) {
    .ed-figura svg { min-width: 0; max-width: 100%; }}
.ed-figura figcaption {
    margin-top: .75rem;
    padding-top: .75rem;
    border-top: 1px solid var(--ed-borda);
    font-size: .9rem;
    line-height: 1.5;
    color: var(--ed-apagado);
}
.ed-svg-rot { font: 500 13px var(--font-family-base, sans-serif); fill: var(--ed-texto); }
.ed-svg-min { font: 400 11px var(--font-family-base, sans-serif); fill: var(--ed-apagado); }
.ed-svg-num { font: 700 15px var(--font-family-base, sans-serif); fill: var(--ed-texto); }
.ed-svg-inv { font: 700 13px var(--font-family-base, sans-serif); fill: #ffffff; }
.ed-svg-eixo { stroke: var(--ed-borda); stroke-width: 1; fill: none; }
.ed-svg-corte { stroke: var(--ed-texto); stroke-width: 1.5; fill: none; }
.ed-svg-curva { fill: none; stroke: var(--ed-acento); stroke-width: 2.5; }
.ed-svg-ponto { fill: var(--ed-acento); }
.ed-svg-caixa { fill: var(--ed-fundo); stroke: var(--ed-borda); stroke-width: 1; }
.ed-svg-seta { fill: var(--ed-texto); stroke: none; }
.ed-svg-grade { stroke: var(--ed-borda); stroke-width: 1; fill: none; }
.ed-f-under    { fill: var(--scale-under-bg,    #f6d55c); }
.ed-f-normal   { fill: var(--scale-normal-bg,   #6ec8a0); }
.ed-f-over     { fill: var(--scale-over-bg,     #f2a154); }
.ed-f-obesity1 { fill: var(--scale-obesity1-bg, #ef8a7f); }
.ed-f-obesity2 { fill: var(--scale-obesity2-bg, #ef8a7f); }
.ed-f-obesity3 { fill: var(--scale-obesity3-bg, #e56e61); }
.ed-svg-inv.ed-sobre-claro { fill: #212529; }
.ed-dado {
    margin: 1.25rem 0;
    padding: 1rem 1.25rem;
    background-color: var(--ed-fundo);
    border: 1px solid var(--ed-borda);
    border-radius: var(--ed-raio);
}
.ed-dado p { margin: 0; }
.ed-dado p + p { margin-top: .5rem; }
.ed-dado-rot {
    display: block;
    margin-bottom: .35rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ed-acento);
}
.ed-dado strong { font-variant-numeric: tabular-nums; }
.ed-chip {
    display: inline-block;
    width: .7em;
    height: .7em;
    margin-right: .45em;
    border-radius: 2px;
    vertical-align: baseline;
}
.ed-chip-under    { background-color: var(--scale-under-bg,    #f6d55c); }
.ed-chip-normal   { background-color: var(--scale-normal-bg,   #6ec8a0); }
.ed-chip-over     { background-color: var(--scale-over-bg,     #f2a154); }
.ed-chip-obesity1 { background-color: var(--scale-obesity1-bg, #ef8a7f); }
.ed-chip-obesity2 { background-color: var(--scale-obesity2-bg, #ef8a7f); }
.ed-chip-obesity3 { background-color: var(--scale-obesity3-bg, #e56e61); }
body.dark-mode .ed-figura {
    background-color: var(--surface-color, #1e2228);
}
body.dark-mode .ed-svg-inv { fill: #ffffff; }
body.dark-mode .ed-svg-inv.ed-sobre-claro { fill: #16181c; }
@media (max-width: 600px) {
    .ed-figura { padding: .75rem; }
    .ed-ancora { display: none; }}
@media (prefers-reduced-motion: reduce) {
    .ed-ancora { transition: none; }}
.macro-proporcao {
    --macro-cor-carbs: #1a5fcc;
    --macro-cor-protein: #6b3fa0;
    --macro-cor-fat: #a05f00;
    --macro-superficie: var(--surface-color, #ffffff);
    --macro-borda: var(--border-color, #dee2e6);
    margin: 0 0 1.5rem;
}
.macro-proporcao-titulo {
    margin: 0 0 .6rem;
    font-size: 1rem;
    font-weight: 600;
}
.macro-barra {
    display: flex;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
    border: 1px solid var(--macro-borda);
    border-radius: var(--border-radius, 8px);
    background-color: var(--macro-superficie);
}
.macro-fatia {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-width: 0;
    box-sizing: border-box;
    padding: .55rem .25rem;
    overflow: hidden;
    color: #ffffff;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
    border-right: 1px solid var(--macro-superficie);
    transition: width .12s linear;
}
.macro-fatia:last-child { border-right: 0; }
.macro-fatia-nome  { font-size: .78rem; }
.macro-fatia-valor { font-size: .95rem; font-weight: 700; }
.macro-cor-carbs   { background-color: var(--macro-cor-carbs,   #1a5fcc); }
.macro-cor-protein { background-color: var(--macro-cor-protein, #6b3fa0); }
.macro-cor-fat     { background-color: var(--macro-cor-fat,     #a05f00); }
.macro-legenda {
    list-style: none;
    margin: .75rem 0 0;
    padding: 0;
    display: grid;
    gap: .4rem;
}
.macro-legenda-item {
    display: flex;
    align-items: baseline;
    gap: .5rem;
    font-size: .9rem;
    line-height: 1.45;
}
.macro-legenda-texto { min-width: 0; }
.macro-ponto {
    flex: 0 0 auto;
    display: inline-block;
    width: .7rem;
    height: .7rem;
    border-radius: 50%;
    outline: 1px solid var(--border-color, #dee2e6);
    outline-offset: 0;
}
.macro-slider[data-macro="carbs"]::-webkit-slider-thumb   { background-color: #1a5fcc; }
.macro-slider[data-macro="protein"]::-webkit-slider-thumb { background-color: #6b3fa0; }
.macro-slider[data-macro="fat"]::-webkit-slider-thumb     { background-color: #a05f00; }
.macro-slider[data-macro="carbs"]::-moz-range-thumb   { background-color: #1a5fcc; }
.macro-slider[data-macro="protein"]::-moz-range-thumb { background-color: #6b3fa0; }
.macro-slider[data-macro="fat"]::-moz-range-thumb     { background-color: #a05f00; }
@media (max-width: 600px) {
    .macro-fatia { padding: .5rem .15rem; }
    .macro-fatia-nome { display: none; }
    .macro-fatia-valor { font-size: .85rem; }
    .macro-legenda-item { font-size: .875rem; }}
@media (prefers-reduced-motion: reduce) {
    .macro-fatia { transition: none; }}
.macro-fatia-apertada .macro-fatia-nome,
.macro-fatia-apertada .macro-fatia-valor { display: none; }
[data-classification="under"]     { --faixa-cheia: var(--scale-under-bg);    --faixa-leve: var(--scale-under-soft); }
[data-classification="low-normal"]{ --faixa-cheia: var(--scale-under-bg);    --faixa-leve: var(--scale-under-soft); }
[data-classification="normal"]    { --faixa-cheia: var(--scale-normal-bg);   --faixa-leve: var(--scale-normal-soft); }
[data-classification="over"]      { --faixa-cheia: var(--scale-over-bg);     --faixa-leve: var(--scale-over-soft); }
[data-classification="obesity1"]  { --faixa-cheia: var(--scale-obesity1-bg); --faixa-leve: var(--scale-obesity1-soft); }
[data-classification="obesity2"]  { --faixa-cheia: var(--scale-obesity2-bg); --faixa-leve: var(--scale-obesity2-soft); }
[data-classification="obesity3"]  { --faixa-cheia: var(--scale-obesity3-bg); --faixa-leve: var(--scale-obesity3-soft); }
[data-classification="under-severe"] { --faixa-cheia: var(--scale-obesity3-bg); --faixa-leve: var(--scale-obesity3-soft); }
