/* Área de ensino - estilo comum (v8.15). Fundo claro, alto contraste, foco visível. */
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/cormorant-garamond-v21-latin-regular.woff2') format('woff2'); }
@font-face { font-family: 'Cormorant Garamond'; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/cormorant-garamond-v21-latin-600.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400; font-display: swap; src: url('/fonts/montserrat-v31-latin-regular.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 500; font-display: swap; src: url('/fonts/montserrat-v31-latin-500.woff2') format('woff2'); }
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 600; font-display: swap; src: url('/fonts/montserrat-v31-latin-600.woff2') format('woff2'); }
:root { --navy: #0D1B2A; --gold: #C9A84C; --gold-dark: #6B5320; --bg: #FAFAF8; --card: #FFFFFF; --text: #1A2230; --muted: #4A5566;
  --line: #D9D4C7; --ok: #1E6B45; --warn: #8A4B12; --warn-bg: #FFF4E5; --danger: #8E1B1B; --danger-bg: #FDECEC; --info-bg: #EEF3F8;
  --fs: 17px; }
html.texto-grande { --fs: 20px; }
html.alto-contraste { --text: #000; --muted: #222; --line: #555; --bg: #FFF; }
* { box-sizing: border-box; }
body { margin: 0; background: var(--bg); color: var(--text); font-family: 'Montserrat', system-ui, sans-serif; font-size: var(--fs); line-height: 1.6; }
a { color: var(--navy); text-underline-offset: 3px; text-decoration-color: var(--gold); }
:focus-visible { outline: 3px solid var(--gold); outline-offset: 2px; }
.skip { position: absolute; left: -9999px; } .skip:focus { left: 12px; top: 12px; background: var(--gold); color: var(--navy); padding: 8px 12px; z-index: 99; }
.topo { background: var(--navy); color: #FAFAF8; padding: 12px 16px; display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; }
.topo .marca { color: var(--gold); font-family: 'Cormorant Garamond', serif; font-size: 1.3em; font-weight: 600; text-decoration: none; }
.topo .marca small { display: block; font-family: 'Montserrat', sans-serif; font-size: 0.6em; letter-spacing: 2px; text-transform: uppercase; color: rgba(250,250,248,0.85); font-weight: 500; }
.topo nav { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 0.85em; }
.topo nav a { color: #FAFAF8; text-decoration: none; padding: 4px 0; border-bottom: 2px solid transparent; }
.topo nav a[aria-current="page"] { border-bottom-color: var(--gold); }
.faixa-educ { background: var(--info-bg); color: var(--text); font-size: 0.8em; padding: 8px 16px; display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); }
.faixa-educ button { font: inherit; font-size: 1em; background: none; border: 1px solid var(--line); border-radius: 4px; padding: 4px 8px; cursor: pointer; color: var(--text); }
main { max-width: 860px; margin: 0 auto; padding: 24px 16px 64px; }
h1 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 2em; line-height: 1.15; color: var(--navy); margin: 0.4em 0 0.3em; }
h2 { font-family: 'Cormorant Garamond', serif; font-weight: 600; font-size: 1.5em; line-height: 1.2; color: var(--navy); margin: 1.6em 0 0.5em; }
h3 { font-size: 1.05em; margin: 1.2em 0 0.4em; color: var(--navy); }
.lead { font-size: 1.05em; color: var(--muted); }
.cartao { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 16px; margin: 16px 0; }
.grade { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.porta { display: block; background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 8px; padding: 16px; text-decoration: none; color: var(--text); }
.porta strong { display: block; font-size: 1.1em; color: var(--navy); margin-bottom: 4px; }
label { display: block; font-weight: 600; margin: 12px 0 4px; }
.campo { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
input[type=text], input[type=number], select { font: inherit; min-height: 44px; padding: 8px 10px; border: 1px solid #8A8A8A; border-radius: 6px; background: #fff; color: var(--text); width: 12em; max-width: 100%; }
.unidade { color: var(--muted); font-size: 0.9em; }
.dica { color: var(--muted); font-size: 0.85em; margin: 2px 0 0; }
.erro { color: var(--danger); font-size: 0.9em; margin: 4px 0 0; font-weight: 600; }
button.btn { font: inherit; font-weight: 600; min-height: 44px; padding: 8px 16px; border-radius: 6px; border: 2px solid var(--navy); background: var(--navy); color: #FAFAF8; cursor: pointer; }
button.btn.sec { background: #fff; color: var(--navy); }
.resultado { margin-top: 12px; padding: 12px 14px; border-radius: 6px; background: var(--info-bg); border-left: 4px solid var(--navy); }
.resultado .valor { font-size: 1.5em; font-weight: 600; color: var(--navy); }
.aviso { background: var(--warn-bg); border-left: 4px solid var(--warn); padding: 12px 14px; border-radius: 6px; margin: 12px 0; }
.aviso strong { color: var(--warn); }
.alerta { background: var(--danger-bg); border-left: 4px solid var(--danger); padding: 12px 14px; border-radius: 6px; margin: 12px 0; }
.bloqueado { background: #F1F1F1; border: 1px dashed #777; padding: 12px 14px; border-radius: 6px; color: #333; }
details { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 0 14px; margin: 10px 0; }
details > summary { cursor: pointer; padding: 12px 0; font-weight: 600; color: var(--navy); min-height: 44px; }
details[open] > summary { border-bottom: 1px solid var(--line); margin-bottom: 8px; }
.proposta { background: #FFFBEF; border: 1px solid #E6D8A8; border-radius: 8px; padding: 12px 14px; margin: 12px 0; }
.proposta p.pergunta { font-weight: 600; margin: 0 0 8px; }
.discussao { border-left: 4px solid var(--gold); background: #FFFDF6; padding: 10px 14px; margin: 12px 0; }
.discussao .rotulo { font-size: 0.75em; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); font-weight: 700; }
table { border-collapse: collapse; width: 100%; font-size: 0.9em; }
.tabela { overflow-x: auto; }
th, td { border: 1px solid var(--line); padding: 6px 8px; text-align: left; vertical-align: top; }
th { background: #F2EFE6; }
.fonte { font-size: 0.8em; color: var(--muted); }
.rodape { background: var(--navy); color: rgba(250,250,248,0.85); font-size: 0.8em; padding: 20px 16px; text-align: center; }
.rodape a { color: var(--gold); }
.porta-entrada { position: fixed; inset: 0; background: rgba(13,27,42,0.92); display: flex; align-items: center; justify-content: center; padding: 16px; z-index: 50; }
dialog.porta-entrada { border: none; margin: 0; width: 100%; height: 100%; max-width: none; max-height: none; color: inherit; }
dialog.porta-entrada::backdrop { background: rgba(13,27,42,0.92); }
dialog.porta-entrada:not([open]) { display: none; }
.resultado-desatualizado > :not(.aviso-desatualizado) { opacity: 0.45; }
.aviso-desatualizado { font-size: 0.95rem; font-weight: 600; color: #5c3900; background: #fff6e0; border-left: 4px solid #c98a00; padding: 6px 10px; margin-top: 8px; }
.porta-entrada .caixa { background: #fff; max-width: 560px; width: 100%; border-radius: 10px; padding: 20px; max-height: 90vh; overflow: auto; }
.porta-entrada label { font-weight: 500; display: flex; gap: 10px; align-items: flex-start; }
.porta-entrada input[type=checkbox] { width: 24px; height: 24px; flex: 0 0 auto; margin-top: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media print { .topo, .faixa-educ, .rodape, button { display: none !important; } }
/* diabetes */
.indice-dm ol { margin: 6px 0 0; padding-left: 1.3em; }
.lista-antes li { margin-bottom: 8px; }
.modo-dm { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0; }
.modo-dm .modo-titulo { flex-basis: 100%; margin: 0; font-weight: 600; }
.modo-dm .modo-btn { flex: 1 1 200px; }
.modo-dm .modo-btn[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; }
.modo-dm .modo-btn[aria-pressed="true"]::before { content: "\2713\00a0"; }
.modo-explica p { margin: 0; }
.ficha > summary { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; }
.ficha dl { margin: 0 0 12px; }
.ficha dt { font-weight: 600; color: var(--navy); margin-top: 10px; }
.ficha dd { margin: 2px 0 0; overflow-wrap: anywhere; }
.ficha dd ul { margin: 4px 0; padding-left: 1.2em; }
.ficha dd p { margin: 4px 0 8px; }
.ficha dd.dose { font-style: italic; color: var(--warn); }
.etiqueta { font-size: 0.75em; font-weight: 600; padding: 2px 8px; border-radius: 12px; border: 1px solid; white-space: nowrap; }
.etiqueta.sus { color: var(--ok); border-color: var(--ok); background: #EAF5EF; }
.etiqueta.fora { color: var(--muted); border-color: var(--muted); background: #F4F4F4; }
.nota-sus { color: var(--muted); }
.amb { border-left: 4px solid var(--gold); }
.amb h3 { margin-top: 0; }
.lista-fontes li, .lista-validar li { margin-bottom: 6px; }
@media (max-width: 600px) {
  table.empilha thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.empilha, table.empilha tbody, table.empilha tr, table.empilha td { display: block; width: 100%; }
  table.empilha tr { border: 1px solid var(--line); border-radius: 6px; margin-bottom: 10px; background: var(--card); }
  table.empilha td { border: 0; border-bottom: 1px solid var(--line); }
  table.empilha td:last-child { border-bottom: 0; }
  table.empilha tbody th { display: block; width: auto; border: 0; border-bottom: 1px solid var(--line); }
  .quadro-def table.empilha th { width: auto; }
  table.empilha td::before { content: attr(data-rotulo); display: block; font-weight: 600; color: var(--navy); font-size: 0.85em; }
}

/* consulta e casos */
.proposta textarea, #form-sintese textarea { font: inherit; display: block; width: 100%; min-height: 5em; padding: 8px 10px; border: 1px solid #8A8A8A; border-radius: 6px; background: #fff; color: var(--text); resize: vertical; margin-bottom: 10px; }
.proposta label { font-weight: 500; font-size: 0.9em; }
#form-sintese fieldset { border: 1px solid var(--line); border-radius: 8px; padding: 4px 14px 12px; margin: 16px 0 4px; min-width: 0; }
#form-sintese legend { font-weight: 600; padding: 0 4px; color: var(--navy); }
.acoes { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.atalhos { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 8px 0 12px; }
.atalhos a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 6px; background: #fff; text-decoration: none; font-size: 0.9em; }
.sintese-texto { white-space: pre-wrap; overflow-wrap: anywhere; font-family: inherit; font-size: 0.95em; line-height: 1.5; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 12px; margin: 0 0 12px; }
.selo-ficticio { display: inline-block; font-size: 0.8em; font-weight: 700; letter-spacing: 1px; text-transform: uppercase; color: var(--warn); background: var(--warn-bg); border: 2px solid var(--warn); border-radius: 4px; padding: 2px 8px; }
.caso-tabela caption { caption-side: top; padding: 0 0 6px; }

/* calculadoras */
.indice ol { margin: 8px 0; padding-left: 1.4em; columns: 2 14em; }
.indice li { margin: 2px 0; }
fieldset.opcoes { border: 1px solid var(--line); border-radius: 6px; padding: 8px 12px; margin: 12px 0; }
fieldset.opcoes legend { font-weight: 600; padding: 0 4px; }
.opcoes label { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; margin: 8px 0; }
.opcoes input[type=radio], .opcoes input[type=checkbox] { width: 22px; height: 22px; flex: 0 0 auto; margin-top: 3px; }
input.largo, select.largo { width: 100%; max-width: 32em; }
select.curto { width: auto; }
.formula { font-size: 0.85em; color: var(--muted); overflow-wrap: anywhere; }
.resultado ul, .erros ul { margin: 6px 0 0; padding-left: 1.2em; }
.erros { margin-top: 12px; padding: 10px 14px; border-left: 4px solid var(--danger); background: var(--danger-bg); border-radius: 6px; }
.erros .erro { margin: 2px 0; }
[aria-invalid="true"] { border-color: var(--danger); border-width: 2px; }
.mapa { font-size: 0.8em; table-layout: fixed; }
.mapa th, .mapa td { padding: 6px 5px; hyphens: manual; }
.mapa th .dica { display: block; font-weight: 400; font-size: 0.85em; margin: 0; }
.mapa thead th:first-child { width: 22%; }
.r-baixo { background: #D4E7B5; color: #1A2230; }
.r-moderado { background: #FBE6A6; color: #1A2230; }
.r-alto { background: #F5C38C; color: #1A2230; }
.r-muito { background: #EFA49E; color: #1A2230; }
.mapa td.marcada { outline: 3px solid var(--navy); outline-offset: -3px; font-weight: 700; }
.mapa .este { font-weight: 700; }
.selo { display: inline-block; padding: 4px 10px; border-radius: 4px; font-weight: 700; border: 1px solid rgba(0,0,0,0.25); }
.bloqueado p { margin: 4px 0; }

/* hipertensao */
.hd-formula { font-family: 'Cormorant Garamond', serif; font-size: 1.6em; font-weight: 600; color: var(--navy); text-align: center; margin: 8px 0 12px; }
.hd-formula span { border-bottom: 3px solid var(--gold); padding: 0 4px; }
.hd-termos { display: grid; gap: 12px; grid-template-columns: 1fr; margin: 12px 0; }
@media (min-width: 720px) { .hd-termos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hd-termo { background: var(--card); border: 2px solid var(--line); border-radius: 8px; padding: 12px 14px; min-height: 8em; min-width: 0; }
.hd-termo h3 { margin: 0 0 8px; font-size: 1em; line-height: 1.3; }
.hd-termo .hd-sigla { display: block; font-family: 'Cormorant Garamond', serif; font-size: 2em; line-height: 1; color: var(--navy); }
.hd-termo.hd-age { border: 4px solid var(--navy); background: var(--info-bg); }
.hd-termo.hd-comp { border: 4px dashed var(--warn); background: var(--warn-bg); }
.hd-termo.hd-age.hd-comp { border-style: solid dashed; border-color: var(--navy) var(--warn); }
.hd-termo.hd-aten:not(.hd-age) { border: 4px dotted var(--ok); }
.hd-estado { margin: 4px 0 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.hd-vazio { color: var(--muted); font-size: 0.9em; }
.hd-selo { display: inline-block; font-size: 0.8em; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase; padding: 3px 8px; border-radius: 4px; border: 2px solid var(--navy); }
.hd-s-age { background: var(--navy); color: #FAFAF8; }
.hd-s-comp { background: #fff; color: var(--warn); border: 2px dashed var(--warn); }
.hd-s-aten { background: #fff; color: var(--ok); border: 2px dotted var(--ok); }
.hd-seta { font-size: 1.35em; line-height: 1; vertical-align: -2px; }
.hd-itens { margin: 0; padding-left: 1.1em; font-size: 0.85em; overflow-wrap: anywhere; }
.hd-itens li { margin: 4px 0; }
.hd-legenda .hd-selo { font-size: 0.75em; }
.hd-classes { display: grid; gap: 8px; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin: 8px 0 12px; }
button.hd-classe { font: inherit; text-align: left; min-height: 56px; padding: 8px 12px; border-radius: 6px; border: 2px solid var(--navy); background: #fff; color: var(--navy); cursor: pointer; }
button.hd-classe .hd-cn { display: block; font-weight: 600; }
button.hd-classe .hd-ex { display: block; font-size: 0.8em; color: var(--muted); }
button.hd-classe[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; box-shadow: inset 0 0 0 3px var(--gold); }
button.hd-classe[aria-pressed="true"] .hd-ex { color: rgba(250,250,248,0.85); }
button.hd-classe[aria-pressed="true"] .hd-cn::before { content: "✓ "; }
.hd-painel h3 small { display: block; font-weight: 400; color: var(--muted); font-size: 0.85em; }
.hd-painel h4 { margin: 14px 0 4px; font-size: 0.95em; color: var(--navy); }
.hd-painel ul { margin: 0; padding-left: 1.2em; }
.hd-veredito ul { padding-left: 1.2em; }
.hd-sub { font-weight: 600; margin-bottom: 0; }
.hd-fs { border: 1px solid var(--line); border-radius: 6px; padding: 8px 12px 12px; margin: 0 0 12px; min-width: 0; }
.hd-fs legend { font-weight: 600; color: var(--navy); padding: 0 4px; }
.hd-fs .campo > div { min-width: 0; }
.hd-fs input[type=text] { width: 7em; }
label.hd-check { display: flex; gap: 10px; align-items: flex-start; font-weight: 500; margin: 8px 0; }
label.hd-check input { width: 22px; height: 22px; flex: 0 0 auto; margin-top: 3px; }
label.hd-check-alerta { color: var(--danger); font-weight: 600; }
.hd-sintese h3 { margin-top: 0.8em; }

/* coracao-vasos */
.cv-ponte { margin: 4px 0 0; }
.cv-classes[hidden], .cv-lado [hidden] { display: none !important; }
.cv-ponte a { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px; border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 6px; background: #fff; font-weight: 600; font-size: 0.9em; }
.cv-indice { margin: 6px 0 0; padding-left: 1.3em; }
.cv-legenda { list-style: none; padding: 0; margin: 8px 0 12px; }
.cv-legenda li { margin-bottom: 6px; }
.cv-amostra { display: inline-block; vertical-align: -3px; margin-right: 8px; width: 28px; height: 18px; border-radius: 4px; background: #fff; border: 2px solid var(--navy); }
.cv-amostra-age { background: var(--gold); border-width: 3px; }
.cv-amostra-ind { background: #F6EFD9; border-style: dashed; }
.cv-amostra-ref { background: #EEF3F8; border-style: dotted; }
.cv-modo { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 4px; }
.cv-modo-btn { flex: 1 1 140px; }
.cv-modo-btn[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; }
.cv-modo-btn[aria-pressed="true"]::before { content: "\2713\00a0"; }
.cv-classes { display: grid; gap: 8px; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); margin: 10px 0 4px; }
.cv-classe { font: inherit; font-size: 0.85em; font-weight: 600; text-align: left; min-height: 44px; padding: 8px 10px; border: 2px solid var(--navy); border-radius: 6px; background: #fff; color: var(--navy); cursor: pointer; line-height: 1.3; overflow-wrap: break-word; hyphens: manual; }
.cv-classe small { display: block; font-weight: 400; font-size: 0.85em; color: var(--muted); margin-top: 2px; }
.cv-classe[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; }
.cv-classe[aria-pressed="true"] small { color: rgba(250,250,248,0.85); }
.cv-classe[aria-pressed="true"]::before { content: "\2713\00a0"; }
.cv-palco { display: grid; gap: 16px; grid-template-columns: 1fr; align-items: start; }
.cv-mapa { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 4px; min-width: 0; }
.cv-mapa .fonte { margin: 4px 6px 6px; }
.cv-svg { display: block; width: 100%; height: auto; font-family: 'Montserrat', system-ui, sans-serif; }
.cv-svg .cv-orgao { fill: #FBF8F0; stroke: #B8A46A; stroke-width: 1.2; }
.cv-svg .cv-orgao-t { font-size: 13.5px; font-weight: 600; fill: var(--navy); }
.cv-svg .cv-icone { fill: none; stroke: var(--gold-dark); stroke-width: 1.6; }
.cv-svg .cv-caixa { fill: #fff; stroke: var(--navy); stroke-width: 1.2; }
.cv-svg .cv-t1 { font-size: 13.5px; font-weight: 600; fill: var(--navy); }
.cv-svg .cv-t2 { font-size: 12px; fill: #33405A; }
.cv-svg .cv-st { font-size: 12px; font-weight: 700; fill: var(--navy); letter-spacing: 0.5px; }
.cv-svg .cv-musc { fill: #B98A8A; }
.cv-svg .cv-luz { fill: #F4DADA; }
.cv-svg .cv-passo rect { fill: #F2EFE6; stroke: #8A7A55; stroke-width: 1; }
.cv-svg .cv-passo text { font-size: 12.5px; fill: var(--text); }
.cv-svg .cv-seta { fill: none; stroke: var(--navy); stroke-width: 1.4; }
.cv-svg .cv-trac { stroke-dasharray: 4 3; }
.cv-svg .cv-rot { font-size: 10.5px; fill: #33405A; font-style: italic; }
.cv-svg .cv-rot-forte { font-size: 11px; font-weight: 700; fill: var(--gold-dark); }
.cv-svg .cv-local.age .cv-caixa { fill: var(--gold); stroke: var(--navy); stroke-width: 3.5; }
.cv-svg .cv-local.age .cv-t2 { fill: var(--navy); }
.cv-svg .cv-local.ind .cv-caixa { fill: #F6EFD9; stroke: var(--gold-dark); stroke-width: 2.2; stroke-dasharray: 6 4; }
.cv-svg .cv-local.ind .cv-st, .cv-svg .cv-local.ref .cv-st { fill: var(--gold-dark); }
.cv-svg .cv-local.ref .cv-caixa { fill: #EEF3F8; stroke: var(--navy); stroke-width: 2.2; stroke-dasharray: 2 3; }
.cv-svg .cv-local.escolhido .cv-caixa { fill: var(--navy); stroke: var(--gold); stroke-width: 3.5; }
.cv-svg .cv-local.escolhido text { fill: #FAFAF8; }
.cv-svg.cv-modo-local .cv-local { cursor: pointer; }
.cv-svg.cv-modo-local .cv-local:hover .cv-caixa { stroke-width: 2.5; }
.cv-svg .cv-local:focus { outline: none; }
.cv-svg .cv-local:focus-visible .cv-caixa { stroke: var(--gold-dark); stroke-width: 5; }
.cv-espera { color: var(--muted); background: var(--card); border: 1px dashed var(--line); border-radius: 8px; padding: 12px 14px; margin: 0; }
.cv-painel { background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 8px; padding: 12px 16px; }
.cv-painel h3 { margin: 0 0 2px; font-size: 1.15em; }
.cv-painel .cv-ex { margin: 0 0 8px; color: var(--muted); font-size: 0.9em; }
.cv-painel .cv-sub { margin: 12px 0 2px; font-size: 0.75em; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 700; color: var(--gold-dark); }
.cv-painel p { margin: 0 0 6px; }
.cv-painel ul { margin: 2px 0 6px; padding-left: 1.2em; }
.cv-painel li { margin-bottom: 4px; }
.cv-painel .cv-dose { font-style: italic; color: var(--warn); font-weight: 600; margin-top: 12px; }
.cv-ir { font: inherit; font-size: 0.85em; font-weight: 600; min-height: 36px; padding: 2px 10px; margin-left: 4px; border: 1px solid var(--navy); border-radius: 4px; background: #fff; color: var(--navy); cursor: pointer; }
.cv-tabela td { overflow-wrap: anywhere; }
@media (max-width: 480px) { .cv-classe { font-size: 0.8em; padding: 8px; } }
@media (min-width: 820px) {
  .cv-palco { grid-template-columns: minmax(0, 410px) minmax(0, 1fr); }
  .cv-controles { grid-column: 1 / -1; }
  .cv-lado { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
}
@media (min-width: 1100px) {
  .cv-palco { width: calc(100vw - 48px); max-width: 1320px; position: relative; left: 50%; transform: translateX(-50%);
    grid-template-columns: 250px min(500px, calc((100vh - 110px) * 0.539)) minmax(0, 1fr); gap: 20px; }
  .cv-controles { grid-column: auto; position: sticky; top: 8px; max-height: calc(100vh - 16px); overflow-y: auto; padding: 2px; }
  .cv-controles .cv-modo { margin-top: 0; }
  .cv-controles .cv-modo-btn { flex: 1 1 100px; padding: 6px 8px; }
  .cv-controles .cv-classes { grid-template-columns: 1fr; gap: 6px; }
  .cv-controles .cv-classe { min-height: 40px; padding: 5px 10px; }
  .cv-mapa { position: sticky; top: 8px; }
  .cv-lado { top: 8px; max-height: calc(100vh - 16px); }
}
html.alto-contraste .cv-svg .cv-t2, html.alto-contraste .cv-svg .cv-rot { fill: #000; }
@media print { .cv-modo, .cv-classes, .cv-palco { display: none !important; } }

/* nefron e glomerulo */
.nf-indice { margin: 6px 0 0; padding-left: 1.3em; }
.nf-modo, .nf-botoes, .gl-sit { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 8px 0 12px; }
.nf-botoes[hidden] { display: none; }
.nf-modo-titulo, .gl-sit-titulo { flex-basis: 100%; margin: 0; font-weight: 600; }
.nf-modo-btn { flex: 1 1 180px; }
.nf-botoes .btn, .gl-sit .btn { font-size: 0.9em; padding: 6px 12px; }
.nf-op[aria-pressed="true"], .nf-modo-btn[aria-pressed="true"], .gl-op[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; }
.nf-op[aria-pressed="true"]::before, .nf-modo-btn[aria-pressed="true"]::before, .gl-op[aria-pressed="true"]::before { content: "\2713\00a0"; }
.nf-quadro, .gl-quadro { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.nf-figura, .gl-figura { margin: 0; min-width: 0; }
.nf-figura svg, .gl-figura svg { display: block; width: 100%; height: auto; max-width: 520px; max-height: calc(100vh - 32px); margin: 0 auto; background: #fff; border: 1px solid var(--line); border-radius: 8px; }
.nf-painel, .gl-painel { background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 8px; padding: 12px 16px; min-width: 0; overflow-wrap: anywhere; }
.nf-painel h3, .gl-painel h3 { margin-top: 0; }
.nf-painel:focus { outline: none; }
.nf-dl { margin: 0; }
.nf-dl dt { font-weight: 600; color: var(--navy); margin-top: 10px; }
.nf-dl dd { margin: 2px 0 0; }
.nf-ex { margin: -4px 0 6px; color: var(--muted); font-style: italic; }
.nf-onde { background: #FFFBEF; border: 1px solid #E6D8A8; border-radius: 6px; padding: 8px 10px; }
.nf-dose { font-style: italic; color: var(--warn); margin-bottom: 0; }
.nf-vazio, .gl-vazio { margin: 0; color: var(--muted); }
.nf-link { font: inherit; background: none; border: 0; padding: 0; color: var(--navy); text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 3px; cursor: pointer; min-height: 0; }
/* SVG do néfron */
#nf-svg text, #gl-svg text { font-family: 'Montserrat', system-ui, sans-serif; fill: var(--text); }
.nf-divisa { stroke: #9A9A9A; stroke-width: 1.5; stroke-dasharray: 6 6; }
.nf-zona { font-size: 15px; fill: var(--muted) !important; font-style: italic; }
.nf-rot { font-size: 16px; font-weight: 600; }
.nf-menor, .gl-menor { font-size: 15px; font-weight: 500; }
.nf-extra { font-size: 15px; font-weight: 700; fill: var(--gold-dark) !important; }
.nf-seg { cursor: pointer; outline: none; }
.nf-hit { fill: none; stroke: transparent; stroke-width: 30; pointer-events: stroke; }
circle.nf-hit { fill: transparent; pointer-events: all; stroke-width: 12; }
.nf-via { fill: none; stroke: var(--navy); stroke-width: 7; stroke-linecap: round; transition: stroke 0.2s, stroke-width 0.2s; }
.nf-fino { stroke-width: 4; }
.nf-espesso { stroke-width: 11; }
.nf-capsula { fill: #F4F1E8; stroke: var(--navy); stroke-width: 4; transition: stroke 0.2s; }
.nf-tufo { fill: none; stroke: var(--navy); stroke-width: 3; }
.nf-macula { fill: var(--gold-dark); }
.nf-seg:hover .nf-hit, .nf-seg:focus-visible .nf-hit { stroke: rgba(201,168,76,0.35); }
.nf-seg:focus-visible .nf-hit { stroke: rgba(201,168,76,0.55); }
circle.nf-hit { stroke: transparent; }
.nf-seg:focus-visible circle.nf-hit, .nf-seg:hover circle.nf-hit { stroke: rgba(201,168,76,0.55); }
.nf-seg.nf-on .nf-via { stroke: var(--gold); stroke-width: 12; }
.nf-seg.nf-on .nf-fino { stroke-width: 9; }
.nf-seg.nf-on .nf-espesso { stroke-width: 16; }
.nf-seg.nf-on .nf-capsula { stroke: var(--gold); stroke-width: 7; }
.nf-seg.nf-on .nf-rot { text-decoration: underline; }
.nf-seg .nf-extra:empty { display: none; }
.nf-seg[data-seg="glomerulo"]:not(.nf-on) .nf-extra { display: none; }
.nf-seg.nf-apagado { opacity: 0.55; }
/* SVG do glomérulo */
.gl-perf { font-size: 15px; font-weight: 700; fill: var(--danger) !important; }
.gl-rot { font-size: 16px; font-weight: 600; }
.gl-estado { font-size: 16px; font-weight: 700; fill: var(--gold-dark) !important; }
.gl-reg { cursor: pointer; outline: none; }
.gl-hit { fill: none; stroke: transparent; stroke-width: 40; pointer-events: stroke; }
.gl-hit-c, .gl-hit-r { fill: transparent; stroke: transparent; stroke-width: 10; pointer-events: all; }
.gl-reg:hover .gl-hit, .gl-reg:focus-visible .gl-hit, .gl-reg:hover .gl-hit-c, .gl-reg:focus-visible .gl-hit-c, .gl-reg:hover .gl-hit-r, .gl-reg:focus-visible .gl-hit-r { stroke: rgba(201,168,76,0.5); }
.gl-reg.gl-on .gl-rot { text-decoration: underline; }
.gl-reg.gl-on .gl-capsula, .gl-reg.gl-on .gl-md { stroke: var(--gold); stroke-width: 6; }
.gl-reg.gl-on .gl-vaso { stroke: var(--gold-dark); }
.gl-vaso { fill: none; stroke-linecap: round; transition: stroke-width 0.4s; }
.gl-af { stroke: var(--navy); stroke-width: 20; }
.gl-ef { stroke: #3A4A5E; stroke-width: 16; }
.gl-capsula { fill: #F4F1E8; stroke: var(--navy); stroke-width: 4; }
.gl-alca { fill: none; stroke: var(--navy); stroke-width: 3; }
.gl-md { fill: #EDE3C4; stroke: var(--gold-dark); stroke-width: 3; }
.gl-fb, .gl-fb-ponta { fill: none; stroke: var(--gold-dark); stroke-width: 3; stroke-dasharray: 5 4; }
.gl-fb-ponta { stroke-dasharray: none; }
.gl-ind-caixa { fill: var(--info-bg); stroke: var(--navy); stroke-width: 2; }
.gl-ind-caixa.gl-ind-baixa { fill: var(--warn-bg); stroke: var(--warn); stroke-width: 3; }
.gl-ind-caixa.gl-ind-grave { fill: var(--danger-bg); stroke: var(--danger); stroke-width: 4; }
.gl-ind-caixa.gl-ind-alta { fill: #EAF5EF; stroke: var(--ok); stroke-width: 3; }
.gl-ind-t { font-size: 15px; font-weight: 500; }
.gl-ind-v { font-size: 17px; font-weight: 700; }
.gl-paineis { display: grid; gap: 12px; min-width: 0; }
.gl-saida { padding-left: 1.2em; margin: 6px 0; }
.gl-nota { background: var(--info-bg); padding: 8px 10px; border-radius: 6px; }
.gl-regra p { margin: 0 0 6px; }
@media (min-width: 760px) {
  .nf-quadro, .gl-quadro { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); --larg: min(1088px, calc(100vw - 48px)); width: var(--larg); margin-left: calc(50% - var(--larg) / 2); }
  .nf-painel, .gl-paineis { position: sticky; top: 12px; max-height: calc(100vh - 24px); overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) { .nf-via, .gl-vaso, .nf-capsula { transition: none; } }

/* Explorar a fisiologia x Discutir uma conduta */
.topo nav .nav-grupo { color: var(--gold); font-size: 0.78em; text-transform: uppercase; letter-spacing: 0.06em; padding: 4px 0; margin-left: 6px; }
.modo { border-radius: 8px; padding: 10px 14px; margin: 1em 0; border-left: 6px solid; }
.modo p { margin: 0; }
.modo-fisio { background: #EEF4FB; border-color: #2F6FAE; }
.modo-conduta { background: #FBF6EA; border-color: var(--gold-dark); }
.rotulo-modo { display: inline-block; font-weight: 600; font-size: 0.8em; letter-spacing: 0.05em; text-transform: uppercase; color: var(--navy); }
.porta.fisio { border-top: 4px solid #2F6FAE; }
.porta.conduta { border-top: 4px solid var(--gold-dark); }
.alto-contraste .modo { background: #fff; color: #000; border-color: #000; }

/* v8.15.1: leitura em camadas */
.ref { font-size: 0.82em; color: var(--muted); white-space: normal; }
html.sem-fontes .ref { display: none; }
.faixa-educ button[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; border-color: var(--navy); }
.em-resumo { background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 8px; padding: 12px 16px; margin: 16px 0; }
.em-resumo > .rotulo { font-size: 0.75em; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); font-weight: 700; margin: 0 0 4px; }
.em-resumo ul { margin: 4px 0 0; padding-left: 1.2em; }
.em-resumo li { margin: 4px 0; }
.em-resumo .ir { margin: 10px 0 0; font-size: 0.9em; }
details.aprofundar { border-left: 4px solid var(--line); }
details.aprofundar > summary::after { content: " · aprofundar"; font-weight: 400; color: var(--muted); font-size: 0.85em; }
details.fontes-pagina > summary { font-family: 'Cormorant Garamond', serif; font-size: 1.3em; }
.dica-num { margin: 4px 0 12px; }
.em-resumo > h2.rotulo { font-family: inherit; font-size: 0.75em; line-height: 1.4; margin: 0 0 4px; }
details.aprofundar > summary h3 { display: inline; margin: 0; font-size: 1em; }
details > summary h2, details > summary h3 { color: var(--navy); }
/* v8.16: citações numeradas (Vancouver) */
sup.cit { font-size: 0.68em; line-height: 0; vertical-align: super; white-space: normal; }
sup.cit a { text-decoration: none; font-weight: 700; color: var(--gold-dark); padding: 0 1px; }
sup.cit a:hover, sup.cit a:focus-visible { text-decoration: underline; }
sup.cit .loc { color: var(--muted); font-weight: 400; }
html.sem-fontes sup.cit .loc { display: none; }
html.sem-fontes sup.cit .sep { display: inline; }
ol.refs { font-size: 0.85em; padding-left: 1.6em; }
ol.refs li { margin-bottom: 6px; overflow-wrap: anywhere; }
ol.refs li:target { background: var(--gold-soft, #F4ECD8); }
.quadro-def { background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--navy); border-radius: 8px; padding: 12px 16px; margin: 14px 0; }
.quadro-def > .rotulo { font-size: 0.75em; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); font-weight: 700; margin: 0 0 6px; }
.quadro-def table th { width: 34%; }
.quadro-def ul { margin: 0; padding-left: 1.1em; }

/* conceitos: consulta rápida */
.cc-atalhos { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 8px; margin: 14px 0; }
.cc-atalhos a { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--line); border-left: 4px solid var(--navy); border-radius: 8px; background: var(--card); color: var(--text); text-decoration: none; }
.cc-atalhos a:hover, .cc-atalhos a:focus-visible { border-left-color: var(--gold); }
.cc-sigla { font-weight: 700; letter-spacing: 1px; color: var(--navy); }
h2 .cc-sigla { display: inline-block; background: var(--navy); color: #FAFAF8; border-radius: 4px; padding: 0 8px; margin-right: 6px; font-size: 0.85em; }
.cc { scroll-margin-top: 12px; }
.cc-def, .cc-regras { background: var(--bg); border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; margin: 12px 0; }
.cc-def-tit { font-size: 0.75em; letter-spacing: 2px; text-transform: uppercase; color: var(--gold-dark); font-weight: 700; margin: 0 0 6px; }
.cc-def ul, .cc-regras ol { margin: 0; padding-left: 1.2em; }
.cc-def li, .cc-regras li { margin: 4px 0; }
.cc-ou { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: center; }
.cc-ou > div { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 8px 10px; }
.cc-ou-sep { font-weight: 700; color: var(--gold-dark); text-transform: uppercase; font-size: 0.85em; }
@media (max-width: 520px) { .cc-ou { grid-template-columns: minmax(0, 1fr); } .cc-ou-sep { text-align: center; } }
.cc-mapa th.cc-sub { font-weight: 400; font-size: 0.85em; }
.cc-mapa td { text-align: center; font-weight: 600; }
.cc-legenda { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0 4px; font-size: 0.8em; }
.cc-legenda span { padding: 2px 8px; border-radius: 4px; }
.cc-tab td, .cc-tab th { vertical-align: middle; }
.cc-tab .cc-con { color: var(--muted); font-size: 0.85em; text-align: center; }
.cc-tab tr > th[scope="row"] { border-left: 8px solid transparent; }
.cc-f1 > th { border-left-color: #8DBF5A !important; }
.cc-f2 > th { border-left-color: #E8C64A !important; }
.cc-f3 > th { border-left-color: #E9A15A !important; }
.cc-f4 > th { border-left-color: #D9675E !important; }
.cc-f5 > th { border-left-color: #9E2A2B !important; }
.cc-dm td { text-align: center; }
.cc-limiares { display: grid; grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 8px; margin: 8px 0; }
.cc-limiares > div { border: 1px solid var(--line); border-radius: 8px; padding: 8px; text-align: center; background: var(--card); display: flex; flex-direction: column; gap: 2px; }
.cc-lim-n { font-size: 1.3em; font-weight: 700; color: var(--navy); font-variant-numeric: tabular-nums; }
.cc-limiares span:last-child { font-size: 0.8em; color: var(--muted); }
.cc-fen { display: grid; gap: 6px; margin: 8px 0; }
.cc-fen > div { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1fr) minmax(0, 1fr); gap: 6px; }
.cc-fen [role="cell"] { border-radius: 6px; padding: 10px 8px; font-weight: 600; text-align: center; display: flex; align-items: center; justify-content: center; }
.cc-fen-cab span, .cc-fen-lin { font-size: 0.85em; font-weight: 600; align-self: center; }
.cc-fen-cab span { text-align: center; }
.cc-crit { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 8px; margin: 8px 0; padding: 0; list-style: none; }
.cc-crit li { border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: 8px; padding: 8px 10px; background: var(--card); }
.cc-crit li strong { display: block; color: var(--navy); }
.cc-crit .cc-val { font-size: 1.05em; font-weight: 700; font-variant-numeric: tabular-nums; }
.cc-ir { font-size: 0.9em; margin-top: 12px; }
@media print {
  .cc-atalhos, .cc-ir { display: none !important; }
  .cc { break-inside: avoid-page; border: 0; padding: 0; }
  .r-baixo, .r-moderado, .r-alto, .r-muito, .cc-tab th { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
.cc-mapa td, .cc-mapa th { vertical-align: middle; }
.cc-mapa tbody th .dica { white-space: normal; }
.cc-termos { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 8px 16px; margin: 10px 0; font-size: 0.9em; }
.cc-termos ul { margin: 0; padding-left: 0; list-style: none; }
.cc-termos li { margin: 2px 0; }
.cc-termos strong { display: inline-block; min-width: 2.6em; color: var(--navy); }
.cc-fen [role="cell"] { font-size: 0.85em; overflow-wrap: anywhere; hyphens: auto; }
.cc-crit li { display: flex; flex-direction: column; gap: 4px; }
.cc-crit .dica { margin: 0; }

/* volta ao site principal e páginas do paciente */
.voltar-site { background: #08121C; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 16px; padding: 6px 16px; font-size: 0.8em; }
.voltar-site a { color: var(--gold); text-decoration: none; }
.voltar-site a:hover, .voltar-site a:focus-visible { text-decoration: underline; }
.pp-lista { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 6px 16px; padding-left: 1.1em; margin: 8px 0 0; }
@media print { .voltar-site, .para-paciente { display: none !important; } }

/* hexágono das combinações */
.hx { margin: 12px 0 16px; }
.hx-tit { margin: 0 0 8px; }
.hx-legenda { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 8px; }
.hx-f { display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: var(--card); color: var(--text); border-radius: 999px; padding: 6px 12px; font: inherit; font-size: 0.85em; cursor: pointer; }
.hx-f[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; border-color: var(--navy); }
.hx-amostra { display: inline-block; width: 22px; height: 0; border-top: 4px solid; }
.hx-amostra.hx-pref { border-color: #2E8B57; }
.hx-amostra.hx-esp { border-color: #2E8B57; border-top-style: dashed; }
.hx-amostra.hx-pos { border-color: #4A5566; border-top-style: dashed; border-top-width: 3px; }
.hx-amostra.hx-ci { border-color: #8E3A6E; }
.hx-fig { margin: 0 auto; max-width: 560px; }
#hx-svg { width: 100%; height: auto; display: block; }
.hx-l { stroke-linecap: round; transition: opacity .2s; }
.hx-l.hx-pref { stroke: #2E8B57; stroke-width: 6; }
.hx-l.hx-esp { stroke: #2E8B57; stroke-width: 3.5; stroke-dasharray: 10 7; }
.hx-l.hx-pos { stroke: #4A5566; stroke-width: 2.5; stroke-dasharray: 7 7; }
.hx-l.hx-ci { stroke: #8E3A6E; stroke-width: 6; }
.hx-l.apagada { opacity: 0.08; }
.hx-no { cursor: pointer; outline: none; }
.hx-caixa { fill: #F2C230; stroke: #B38F14; stroke-width: 1; }
.hx-ponto { fill: #1A2230; }
.hx-txt { font-family: 'Montserrat', sans-serif; font-size: 19px; fill: #1A2230; font-weight: 600; }
.hx-no.escolhido .hx-caixa { fill: var(--navy); stroke: var(--gold); stroke-width: 3; }
.hx-no.escolhido .hx-txt { fill: #FAFAF8; }
.hx-no:focus-visible .hx-caixa { stroke: var(--navy); stroke-width: 4; }
.hx-painel h4 { margin: 8px 0 6px; }
.hx-lista { list-style: none; padding: 0; margin: 0; }
.hx-item { border-left: 5px solid; padding: 6px 10px; margin: 6px 0; background: var(--card); border-radius: 0 6px 6px 0; }
.hx-i-pref, .hx-i-esp { border-color: #2E8B57; }
.hx-i-pos { border-color: #4A5566; }
.hx-i-ci { border-color: #8E3A6E; }
.hx-cat { display: block; font-size: 0.72em; letter-spacing: 1.5px; text-transform: uppercase; color: var(--gold-dark); font-weight: 700; }
@media print { .hx-legenda, .hx-tit { display: none !important; } .hx-l.apagada { opacity: 1; } }

/* referências: balão e página única */
.ref-balao { position: absolute; z-index: 50; background: var(--card); color: var(--text); border: 1px solid var(--line); border-top: 4px solid var(--gold); border-radius: 8px; box-shadow: 0 8px 24px rgba(13,27,42,0.18); padding: 10px 14px; font-size: 0.85em; overflow-wrap: anywhere; }
.ref-balao p { margin: 0 0 8px; }
.ref-balao-acoes { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; justify-content: space-between; margin: 0 !important; }
.ref-fechar { font: inherit; background: none; border: 1px solid var(--line); border-radius: 6px; padding: 4px 10px; cursor: pointer; color: var(--text); }
.ref-todas { font-size: 0.9em; margin: 24px 0 8px; }
.ref-link { display: inline-block; margin-left: 4px; padding: 0 6px; border: 1px solid var(--line); border-radius: 4px; font-size: 0.85em; text-decoration: none; }
.ref-onde { display: block; color: var(--muted); font-size: 0.9em; margin-top: 2px; }
.refs-global li { padding: 6px 4px; border-bottom: 1px solid var(--line); }
.refs-global li[hidden] { display: none; }
.ref-busca { width: 100%; max-width: 32em; }
@media print { .ref-balao { display: none !important; } }
.hh input[type=range] { width: 100%; max-width: 28em; }

/* v8.18: coração e rim por cor, legenda dentro do mapa, alinhamento */
.cv-svg .cv-orgao.cv-coracao { fill: #F9D9D5; stroke: #B4473D; stroke-width: 2.2; }
.cv-svg .cv-orgao.cv-rim { fill: #D3E3DA; stroke: #2F5D4A; stroke-width: 2.2; }
.cv-svg .cv-icone-coracao { stroke: #FFFFFF; fill: #F3C6C1; }
.cv-svg .cv-icone-rim { stroke: #FFFFFF; fill: #C5D9CE; }
.cv-svg .cv-orgao-t-coracao { fill: #FFFFFF; font-size: 15px; letter-spacing: 0.5px; }
.cv-svg .cv-faixa-coracao { fill: #B4473D; }
.cv-svg .cv-faixa-rim { fill: #2F5D4A; }
.cv-svg .cv-orgao-t-rim { fill: #FFFFFF; font-size: 15px; letter-spacing: 0.5px; }
.cv-svg .cv-local:not(.age):not(.ind):not(.ref):not(.escolhido)#cv-l-arteriola .cv-caixa, .cv-svg .cv-local:not(.age):not(.ind):not(.ref):not(.escolhido)#cv-l-veia .cv-caixa { fill: #FBF3F3; }
.cv-mapa > .cv-legenda { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 6px 8px 2px; font-size: 0.8em; }
.cv-mapa > .cv-legenda li { margin: 0; }
.cv-mapa > .cv-legenda-orgaos { margin-bottom: 6px; color: var(--muted); }
.cv-amostra-coracao { background: #F9D9D5; border-color: #B4473D; border-width: 2px; }
.cv-amostra-rim { background: #D3E3DA; border-color: #2F5D4A; border-width: 2px; }
.cv-amostra-vaso { background: #FBF3F3; border-color: #B98A8A; border-width: 1.5px; }
.cv-amostra-sraa { background: #F2EFE6; border-color: #8A7A55; border-width: 1.5px; }
.cv-modo-btn { white-space: nowrap; }
.cv-lado .cv-espera { border-style: dashed; }
@media (min-width: 1100px) {
  .cv-palco { align-items: start; }
  .cv-controles, .cv-mapa, .cv-lado { margin-top: 0; }
}
html.alto-contraste .cv-svg .cv-orgao.cv-coracao, html.alto-contraste .cv-svg .cv-orgao.cv-rim { stroke-width: 2.5; }

/* diabetes: tratamento em camadas e régua da TFGe */
.dm-camadas { display: flex; flex-direction: column; gap: 6px; margin: 10px auto; max-width: 640px; }
.dm-camada { border-radius: 10px; padding: 10px 14px; text-align: center; border: 1px solid var(--line); }
.dm-c1 { background: #E2ECE6; border-color: #4F7A68; }
.dm-c2 { background: #F6EFD9; border-color: #B8A46A; margin: 0 4%; }
.dm-c3 { background: #EEF3F8; border-color: #7C93AE; margin: 0 9%; }
.dm-c4 { background: var(--card); border-style: dashed; margin: 0 16%; }
.dm-c-tit { margin: 0 0 4px; font-size: 0.75em; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 700; color: var(--navy); }
.dm-c-sub { margin: 0; font-size: 0.85em; color: var(--muted); }
.dm-itens { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.dm-item { font: inherit; font-size: 0.85em; font-weight: 600; padding: 6px 10px; min-height: 40px; border: 1.5px solid var(--navy); border-radius: 6px; background: #fff; color: var(--navy); cursor: pointer; }
.dm-item[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; }
.dm-painel:not(:empty) { max-width: 640px; margin: 8px auto 4px; padding: 10px 14px; background: var(--card); border: 1px solid var(--line); border-left: 4px solid var(--gold); border-radius: 8px; }
.dm-painel p { margin: 0; }
.dm-regua { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; margin: 8px 0; }
.dm-regua input[type=range] { width: 100%; accent-color: var(--navy); }
.dm-dialise { display: flex; gap: 8px; align-items: center; margin: 4px 0 10px; }
.dm-dialise input { width: 20px; height: 20px; }
.dm-linhas { display: grid; gap: 6px; }
.dm-linha { border-left: 6px solid; border-radius: 0 6px 6px 0; padding: 6px 10px; }
.dm-linha p { margin: 0; }
.dm-ok { border-color: #2E8B57; background: #EAF5EE; }
.dm-atencao { border-color: #C98A00; background: #FFF6E0; }
.dm-nao { border-color: #B4473D; background: #FBEAE8; }
.dm-l-nome { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 10px; font-weight: 700; }
.dm-l-estado { font-size: 0.75em; letter-spacing: 1px; text-transform: uppercase; color: var(--muted); font-weight: 700; }
.dm-l-txt { font-size: 0.9em; }
@media (max-width: 520px) { .dm-c2, .dm-c3, .dm-c4 { margin: 0; } }
@media print { .dm-regua input[type=range], .dm-dialise { display: none; } }

/* fluxograma e calculadora da insulina */
.ins-fluxo { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 12px 14px; margin: 10px 0 16px; }
.ins-passos { list-style: none; counter-reset: ip; padding: 0; margin: 8px 0; display: grid; gap: 22px; }
.ins-p { counter-increment: ip; position: relative; border: 1.5px solid #7C93AE; background: #EEF3F8; border-radius: 8px; padding: 8px 12px 8px 44px; }
.ins-p::before { content: counter(ip); position: absolute; left: 10px; top: 8px; width: 24px; height: 24px; border-radius: 50%; background: var(--navy); color: #FAFAF8; font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: 0.85em; }
.ins-p:not(:last-child)::after { content: ""; position: absolute; left: 50%; bottom: -20px; border: 9px solid transparent; border-top: 11px solid var(--navy); transform: translateX(-50%); }
.ins-p strong { display: block; }
.ins-p span { font-size: 0.9em; }
.ins-p2 { background: #E2ECE6; border-color: #4F7A68; }
.ins-p3 { background: #F6EFD9; border-color: #B8A46A; }
.ins-calc { border-top: 1px solid var(--line); margin-top: 12px; padding-top: 10px; }

/* abas de diabetes e fluxograma passo a passo */
.dm-abas { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; }
.dm-abas a { padding: 6px 12px; border: 1px solid var(--line); border-radius: 999px; text-decoration: none; color: var(--navy); background: var(--card); font-weight: 600; font-size: 0.9em; }
.dm-abas a[aria-current="page"] { background: var(--navy); color: #FAFAF8; border-color: var(--navy); }
.fx { display: flex; flex-direction: column; align-items: stretch; max-width: 560px; margin: 8px 0; }
.fx-no { background: #FFF8E6; border: 1.5px solid #C9A84C; border-radius: 10px; padding: 10px 12px; }
.fx-ok { background: #EAF5EE; border-color: #2E8B57; }
.fx-fim { background: #FBEAE8; border-color: #B4473D; }
.fx-bts { display: flex; gap: 8px; margin-top: 8px; }
.fx-bts .btn { flex: 1; }
.fx-resp { display: inline-block; margin-left: 8px; padding: 0 8px; border-radius: 4px; background: var(--navy); color: #FAFAF8; font-size: 0.8em; font-weight: 700; }
.fx-seta { width: 0; height: 0; margin: 4px auto; border: 8px solid transparent; border-top: 10px solid var(--navy); }

/* Agonistas de GLP-1 (v8.18) */
.gl-trio { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; margin: 10px 0 16px; }
.gl-t { border: 1px solid var(--line); border-top: 6px solid #4C7A9E; border-radius: 10px; padding: 10px 12px; background: var(--card); }
.gl-t p { margin: 4px 0; }
.gl-t2 { border-top-color: #7A5FA0; }
.gl-t3 { border-top-color: #A0522D; }
.gl-prod { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.gl-prod .btn.gl-pb[aria-pressed="true"] { background: var(--navy); color: #FAFAF8; border-color: var(--navy); }
.gl-escada { border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: var(--card); }
.gl-nome { margin: 0 0 10px; }
.gl-estudo { background: var(--danger-bg); color: var(--danger); padding: 6px 10px; border-radius: 6px; }
.gl-degraus { list-style: none; margin: 0; padding: 0; display: flex; align-items: flex-end; gap: 6px; overflow-x: auto; }
.gl-degraus li { flex: 1 1 0; min-width: 92px; display: flex; flex-direction: column; justify-content: flex-start; gap: 4px;
  padding: 8px; border-radius: 8px 8px 0 0; background: var(--info-bg); border-bottom: 4px solid var(--navy);
  min-height: calc(125px + var(--i) * 26px); }
.gl-dose { font-weight: 700; font-size: 1.1em; color: var(--navy); }
.gl-tempo { font-size: 0.85em; color: var(--muted); }
.gl-obs { font-size: 0.8em; }
@media (max-width: 640px) {
  .gl-degraus { flex-direction: column; align-items: stretch; }
  .gl-degraus li { min-height: 0; border-radius: 0 8px 8px 0; border-bottom: 0; border-left: 4px solid var(--navy); margin-left: calc(var(--i) * 10px); }
}
.gl-check { display: grid; gap: 6px; margin: 8px 0; }
.gl-check label { display: flex; gap: 8px; align-items: flex-start; padding: 6px 8px; border: 1px solid var(--line); border-radius: 8px; background: var(--card); cursor: pointer; }
.gl-check input { margin-top: 4px; }
.gl-check-saida:empty { display: none; }

/* v8.20: barorreceptores, arteríola aferente, volume circulante e finerenona */
.cv-svg .cv-seta-vol { stroke: #8A7A55; stroke-width: 1.4; stroke-dasharray: 3 3; }
.cv-svg .cv-seta-vol.on { stroke: #8A6D1F; stroke-width: 3; stroke-dasharray: 9 5; marker-end: url(#cv-ponta-on); animation: cv-fluxo 1.2s linear infinite; }
.cv-svg .cv-rot-vol { font-size: 10px; }
.cv-svg .cv-seta-vol.on ~ .cv-rot-vol { fill: #8A6D1F; font-weight: 700; }
@keyframes cv-fluxo { to { stroke-dashoffset: -28; } }
@media (prefers-reduced-motion: reduce) { .cv-svg .cv-seta-vol.on { animation: none; } }
.cv-svg .cv-local:not(.age):not(.ind):not(.ref):not(.escolhido)#cv-l-volume .cv-caixa { fill: #F7F1E3; }
.cv-amostra-vol { background: #F7F1E3; border-color: #8A6D1F; border-width: 2px; border-style: dashed; }

/* v8.21: complicações da DRC */
.cd-regua label[for] { font-weight: 600; display: block; margin-bottom: 4px; }
.cd-num { font: inherit; font-size: 1.1em; width: 8em; min-height: 44px; padding: 6px 10px; border: 1.5px solid var(--navy); border-radius: 6px; }
.cd-ctx { border: none; padding: 0; margin: 10px 0 4px; }
.cd-ctx legend { font-weight: 600; font-size: 0.9em; margin-bottom: 4px; }
.cd-ctx label { display: flex; gap: 8px; align-items: flex-start; margin: 4px 0; min-height: 32px; }
.cd-ctx input { width: 20px; height: 20px; flex: none; margin-top: 2px; }
.cd-barra { display: flex; margin: 10px 0 8px; border-radius: 6px; overflow: hidden; font-size: 0.75em; font-weight: 600; text-align: center; }
.cd-z { flex: 1; padding: 6px 2px; line-height: 1.2; }
.cd-z1 { background: #EAF5EE; color: #1E5E3A; } .cd-z2 { background: #FFF6E0; color: #6B4E00; } .cd-z3 { background: #FDEBC8; color: #6B4E00; }
.cd-z4 { background: #F8D9D4; color: #7A2A22; } .cd-z5 { background: #B4473D; color: #fff; }
.cd-regua .dm-painel:not(:empty) { max-width: none; margin: 8px 0 0; }
.cd-regua .dm-linha + .dm-linha { margin-top: 6px; }
.cd-escada .dm-camada p:not(.dm-c-tit) { margin: 0; font-size: 0.95em; }
.cd-campos { display: flex; flex-wrap: wrap; gap: 10px 18px; margin: 6px 0; }
.cd-campos label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: 0.9em; }
.cd-ctx input[type=radio] { width: 20px; height: 20px; }
