/* MedABA — visual do protótipo aprovado (teal, Nunito). Sem CSS/JS inline (CSP). */
@font-face { font-family: 'Nunito'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url('../fonts/nunito-latin.woff2') format('woff2'); }
@font-face { font-family: 'Nunito Sans'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url('../fonts/nunito-sans-latin.woff2') format('woff2'); }

:root {
  --teal: #2b93a8; --teal-dark: #1f7c8f; --teal-soft: #e6f3f6; --teal-line: #b9dde5;
  --bg: #eef2f4; --card: #ffffff; --ink: #1f3a42; --ink-2: #4b6169; --ink-3: #7b8f96; --line: #dde5e8;
  --erro: #c0554e; --erro-soft: #fbeceb; --ok: #3a9d6e; --ok-soft: #e8f5ee; --aviso: #c98a2b; --aviso-soft: #fdf3e0;
  --roxo: #7a5bb0; --roxo-soft: #efe9f7;
  --raio: 14px; --sombra: 0 1px 2px rgba(31,58,66,.06), 0 4px 14px rgba(31,58,66,.05);
  --titulo: 'Nunito', system-ui, sans-serif; --corpo: 'Nunito Sans', system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { font-size: 15px; }
body { margin: 0; background: var(--bg); color: var(--ink); font-family: var(--corpo); line-height: 1.45; }
h1, h2, h3, h4 { font-family: var(--titulo); margin: 0; color: var(--ink); }
h1 { font-size: 1.9rem; font-weight: 800; } h2 { font-size: 1.15rem; font-weight: 800; } h3 { font-size: 1rem; font-weight: 800; }
a { color: var(--teal-dark); text-decoration: none; } a:hover { text-decoration: underline; }
p { margin: 0 0 .6rem; }
.suave { color: var(--ink-3); } .pequeno { font-size: .86rem; }
.oculto { display: none !important; }

/* ---- estrutura ---- */
.app { display: grid; grid-template-columns: 236px 1fr; min-height: 100vh; }
.lateral { background: #fff; border-right: 1px solid var(--line); padding: 20px 12px; display: flex; flex-direction: column; gap: 6px;
  position: sticky; top: 0; height: 100vh; }
.marca { display: flex; align-items: center; gap: 10px; padding: 4px 8px 18px; }
.marca-logo { width: 40px; height: 40px; object-fit: contain; flex: none; display: block; }
.marca-nome { font-family: var(--titulo); font-weight: 800; font-size: 1.15rem; line-height: 1.1; }
.marca-nome b { color: var(--teal); font-weight: 800; }
.marca-sub { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); margin-top: 3px; }
.menu a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: var(--ink-2); font-weight: 700; }
.menu a:hover { background: var(--bg); text-decoration: none; }
.menu a.ativo { background: var(--teal-soft); color: var(--teal-dark); }
.menu .sep { height: 1px; background: var(--line); margin: 10px 8px; }
.conteudo-area { min-width: 0; display: flex; flex-direction: column; }
.topo { background: #fff; border-bottom: 1px solid var(--line); padding: 12px 28px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.trilha { color: var(--ink-3); font-size: .93rem; } .trilha b { color: var(--ink); font-weight: 700; }
.topo-dir { display: flex; align-items: center; gap: 16px; }
.seletor-unidade { display: flex; align-items: center; gap: 8px; }
.seletor-unidade select { background: var(--teal-soft); border: 1px solid var(--teal-line); font-weight: 700; padding: 7px 10px; border-radius: 10px; }
.usuario-box { display: flex; align-items: center; gap: 10px; }
.avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--teal); color: #fff; font-family: var(--titulo); font-weight: 800;
  display: grid; place-items: center; flex: none; font-size: .9rem; }
.usuario-nome { font-weight: 800; font-size: .93rem; line-height: 1.1; } .usuario-papel { font-size: .75rem; color: var(--ink-3); }
.pagina { padding: 28px; max-width: 1240px; width: 100%; margin: 0 auto; }
.pagina.estreita { max-width: 900px; }
.cab-pagina { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 20px; flex-wrap: wrap; }
.cab-pagina p { margin: 4px 0 0; color: var(--ink-3); }

/* ---- cartões, abas, botões ---- */
.card { background: var(--card); border-radius: var(--raio); box-shadow: var(--sombra); padding: 22px; margin-bottom: 18px; }
.card.sem-pad { padding: 0; overflow-x: auto; overflow-y: hidden; }
.card-cab { padding: 16px 22px; background: #f8fbfb; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.abas { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.aba { padding: 9px 18px; border-radius: 12px; background: #fff; border: 1px solid var(--line); color: var(--ink-2); font-weight: 700; }
.aba:hover { text-decoration: none; background: var(--teal-soft); }
.aba.ativa { background: #22393f; border-color: #22393f; color: #fff; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 10px 18px; border-radius: 11px; font-weight: 800; font-family: var(--titulo);
  border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; font-size: .95rem; }
.btn:hover { text-decoration: none; background: var(--bg); }
.btn.principal { background: var(--teal); border-color: var(--teal); color: #fff; box-shadow: 0 3px 8px rgba(43,147,168,.28); }
.btn.principal:hover { background: var(--teal-dark); }
.btn.perigo { color: var(--erro); border-color: #efc9c6; } .btn.perigo:hover { background: var(--erro-soft); }
.btn.pequeno { padding: 6px 12px; font-size: .82rem; }
.btn.link { border: 0; background: none; color: var(--teal-dark); padding: 4px 6px; box-shadow: none; }
.acoes { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

/* ---- formulários ---- */
.campo { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.campo > label, .rotulo { font-weight: 800; font-size: .88rem; color: var(--ink); }
.obrig::after { content: ' *'; color: var(--erro); }
input[type=text], input[type=email], input[type=password], input[type=date], input[type=time], input[type=number], input[type=tel], select, textarea {
  width: 100%; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: #fff; color: var(--ink); font: inherit; }
textarea { resize: vertical; min-height: 70px; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--teal-line); border-color: var(--teal); }
.campo.erro input, .campo.erro select, .campo.erro textarea { border-color: var(--erro); background: var(--erro-soft); }
.msg-erro { color: var(--erro); font-size: .83rem; font-weight: 700; }
.dica { color: var(--ink-3); font-size: .83rem; }
.grade { display: grid; gap: 0 18px; } .g2 { grid-template-columns: 1fr 1fr; } .g3 { grid-template-columns: 1fr 1fr 1fr; } .g-end { grid-template-columns: 1fr 2fr; }
.g-uf { grid-template-columns: 1.2fr 1.2fr 1.2fr; }
.secao { padding: 24px 26px; border-bottom: 1px solid var(--line); } .secao:last-child { border-bottom: 0; }
.secao > h2 { margin-bottom: 14px; }
.rodape-form { padding: 16px 26px; background: #f8fbfb; display: flex; justify-content: flex-end; gap: 10px; }
.aviso-info { background: var(--teal-soft); border: 1px solid var(--teal-line); color: var(--teal-dark); border-radius: 11px; padding: 12px 14px; font-size: .9rem; }

/* chips (caixas de marcar com cara de botão) */
.chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { position: relative; }
.chip input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.chip span { display: inline-block; padding: 8px 14px; border: 1px solid var(--line); border-radius: 20px; font-weight: 700; color: var(--ink-2); background: #fff; font-size: .9rem; }
.chip input:checked + span { background: var(--teal-soft); border-color: var(--teal); color: var(--teal-dark); }
.chip input:checked + span::before { content: '✓ '; }
.chip input:focus-visible + span { outline: 2px solid var(--teal); }
.chips.erro .chip span { border-color: var(--erro); }
/* interruptor */
.interruptor { display: inline-flex; align-items: center; gap: 10px; cursor: pointer; font-weight: 700; }
.interruptor input { position: absolute; opacity: 0; }
.interruptor i { width: 44px; height: 24px; border-radius: 12px; background: #c9d4d8; position: relative; transition: background .15s; flex: none; }
.interruptor i::after { content: ''; position: absolute; width: 18px; height: 18px; border-radius: 50%; background: #fff; top: 3px; left: 3px; transition: left .15s; }
.interruptor input:checked + i { background: var(--teal); } .interruptor input:checked + i::after { left: 23px; }
.interruptor input:focus-visible + i { outline: 2px solid var(--teal); }

/* ---- tabelas e listas ---- */
table.tab { width: 100%; border-collapse: collapse; }
.tab th { text-align: left; font-size: .76rem; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3); padding: 12px 18px; background: #f8fbfb; border-bottom: 1px solid var(--line); }
.tab td { padding: 14px 18px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.tab tr:last-child td { border-bottom: 0; }
.tab tr.inativo td { color: var(--ink-3); }
.nome-cel { display: flex; align-items: center; gap: 12px; font-weight: 800; }
.nome-cel small { display: block; font-weight: 500; color: var(--ink-3); }
.selo { display: inline-block; padding: 3px 11px; border-radius: 20px; font-size: .78rem; font-weight: 800; }
.selo.ok { background: var(--ok-soft); color: var(--ok); } .selo.off { background: #edf1f3; color: var(--ink-3); }
.selo.aviso { background: var(--aviso-soft); color: var(--aviso); } .selo.erro { background: var(--erro-soft); color: var(--erro); }
.selo.roxo { background: var(--roxo-soft); color: var(--roxo); } .selo.info { background: var(--teal-soft); color: var(--teal-dark); }
.indicadores { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px; margin-bottom: 18px; }
.indicador { background: #fff; border-radius: var(--raio); box-shadow: var(--sombra); padding: 16px 20px; }
.indicador b { display: block; font-family: var(--titulo); font-size: 1.7rem; font-weight: 800; color: var(--teal-dark); }
.filtros { display: flex; gap: 12px; flex-wrap: wrap; align-items: end; }
.filtros .campo { margin: 0; min-width: 180px; flex: 1; }
.vazio { padding: 40px; text-align: center; color: var(--ink-3); }
.linha-sala { display: grid; grid-template-columns: 2fr 1fr 1fr 2.4fr auto; gap: 12px; padding: 14px 22px; border-bottom: 1px solid var(--line); align-items: center; }
.ficha-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 28px; }
.ficha-grid dt { font-size: .78rem; color: var(--ink-3); font-weight: 800; text-transform: uppercase; letter-spacing: .04em; margin-top: 10px; }
.ficha-grid dd { margin: 2px 0 0; font-weight: 600; }

/* ---- mensagens ---- */
.flash { padding: 12px 16px; border-radius: 11px; margin-bottom: 14px; font-weight: 700; }
.flash.ok { background: var(--ok-soft); color: var(--ok); } .flash.erro { background: var(--erro-soft); color: var(--erro); }

/* ---- plano terapêutico (editor de perguntas) ---- */
.plano-barra { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.painel-2 { display: grid; grid-template-columns: 1fr 300px; gap: 18px; align-items: start; }
.item-linha { display: grid; grid-template-columns: 34px 1fr 200px auto; gap: 10px; padding: 14px 22px; border-bottom: 1px solid var(--line); align-items: start; }
.item-linha.inativa { background: #f6f8f9; opacity: .75; }
.item-num { width: 32px; height: 32px; border-radius: 9px; background: var(--teal-soft); color: var(--teal-dark); font-weight: 800; display: grid; place-items: center; font-size: .86rem; }
.item-acoes { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.escala-linha { display: grid; grid-template-columns: 42px 1fr; gap: 10px; margin-bottom: 10px; align-items: center; }
.escala-valor { height: 40px; border-radius: 9px; background: var(--teal-soft); color: var(--teal-dark); font-weight: 800; display: grid; place-items: center; }
.seg { display: inline-flex; background: #f1f5f6; border-radius: 12px; padding: 4px; gap: 2px; }
.seg a { padding: 7px 16px; border-radius: 9px; font-weight: 800; color: var(--ink-3); } .seg a:hover { text-decoration: none; }
.seg a.ativo { background: var(--teal); color: #fff; }
.desc-linha { display: grid; grid-template-columns: 42px 1fr; gap: 12px; padding: 12px 22px; border-bottom: 1px solid var(--line); align-items: start; }

/* ---- telas de entrada ---- */
.entrada { min-height: 100vh; display: grid; place-items: center; padding: 24px; }
.entrada-card { width: 100%; max-width: 430px; background: #fff; border-radius: 20px; box-shadow: var(--sombra); padding: 36px 34px; }
.entrada-card .marca { justify-content: center; padding-bottom: 22px; flex-direction: column; text-align: center; }
.entrada-card .marca-logo { width: 64px; height: 64px; margin-bottom: 6px; }
.entrada-card h1 { font-size: 1.5rem; text-align: center; margin-bottom: 6px; } .entrada-card .suave { text-align: center; margin-bottom: 22px; }
.entrada-card .btn { width: 100%; }
.lista-unidades { display: flex; flex-direction: column; gap: 10px; margin-bottom: 16px; }
.lista-unidades label { display: flex; gap: 12px; align-items: center; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; cursor: pointer; font-weight: 700; }
.lista-unidades label:has(input:checked) { border-color: var(--teal); background: var(--teal-soft); }

@media (max-width: 1100px) { .painel-2 { grid-template-columns: 1fr; } .item-linha { grid-template-columns: 34px 1fr; } .item-linha > :nth-child(n+3) { grid-column: 2; } }
@media (max-width: 900px) { .app { grid-template-columns: 1fr; } .lateral { position: static; height: auto; flex-direction: row; flex-wrap: wrap; align-items: center; }
  .menu { display: flex; flex-wrap: wrap; } .g2, .g3, .g-end, .g-uf { grid-template-columns: 1fr; } .linha-sala { grid-template-columns: 1fr; } .ficha-grid { grid-template-columns: 1fr; } }
@media print { .lateral, .topo, .acoes, .btn { display: none !important; } }

/* utilitários (no lugar de style="" inline, bloqueado pela CSP) */
.centro { text-align: center; } .direita { text-align: right; } .topo-16 { margin-top: 16px; }
.contents { display: contents; } .contents.oculto { display: none !important; } .acoes.fim { justify-content: flex-end; }
.avatar.grande { width: 56px; height: 56px; font-size: 1.2rem; } .h1-medio { font-size: 1.6rem; }
.logo-prev { max-width: 160px; max-height: 80px; border: 1px solid var(--line); border-radius: 10px; padding: 6px; background: #fff; }
.linha-sala.inativa { opacity: .6; } .item-linha textarea { min-height: 56px; }

/* ---- avaliações ---- */
.centro { text-align: center; } .tab td.centro, .tab th.centro { text-align: center; }
.tab tr.total td { background: #f8fbfb; border-top: 2px solid var(--line); }
.acoes.spread { justify-content: space-between; width: 100%; } .mb { margin-bottom: 14px; }
.indicadores.cartoes { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); align-items: start; }
.barra { height: 10px; background: #e3eaed; border-radius: 6px; overflow: hidden; margin-top: 10px; }
.barra-cheia { height: 100%; width: 0; background: var(--teal); border-radius: 6px; transition: width .25s; }
.pilulas { gap: 8px; } .pilula { padding: 8px 14px; border: 1px solid var(--line); border-radius: 20px; background: #fff; color: var(--ink-2); font-weight: 700; font-size: .9rem; }
.pilula:hover { text-decoration: none; background: var(--teal-soft); } .pilula small { color: var(--ink-3); margin-left: 4px; }
.pilula.ativa { background: #22393f; border-color: #22393f; color: #fff; } .pilula.ativa small { color: #c9d9de; }
.pergunta { display: grid; grid-template-columns: 38px 1fr; gap: 14px; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.pergunta:last-child { border-bottom: 0; }
.texto-pergunta { margin: 2px 0 8px; font-weight: 600; font-size: 1.02rem; }
.chips.notas { margin: 10px 0; align-items: center; }
.chip input:disabled + span { opacity: .7; cursor: default; }
.obs { min-height: 44px; font-size: .9rem; }
.barreira { padding: 18px 22px; border-bottom: 1px solid var(--line); }
.opcoes-descritor { display: grid; gap: 8px; margin: 10px 0; }
.descritor { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; cursor: pointer; }
.descritor:has(input:checked) { border-color: var(--teal); background: var(--teal-soft); } .descritor small { color: var(--ink-2); }
.descritor:has(input:disabled) { cursor: default; }
.salvando { color: var(--aviso); } .salvo { color: var(--ok); } .falhou { color: var(--erro); font-weight: 800; }

/* ---- relatório da avaliação (seção 9) ---- */
.abas .aba.ativa { background: var(--teal); border-color: var(--teal); color: #fff; }
.rel { position: relative; }
.rel-cab { display: grid; grid-template-columns: 1.1fr 1fr; gap: 24px; align-items: start; }
.rel-unidade { display: flex; gap: 14px; align-items: center; }
.rel-logo { width: 64px; height: 64px; object-fit: contain; border-radius: 10px; }
.rel-un-nome { font-family: var(--titulo); font-weight: 800; font-size: 1.15rem; }
.rel-titulo { text-align: right; } .rel-titulo h2 { margin-bottom: 4px; }
.rel-rodape { margin-top: 18px; }
.rolagem { overflow-x: auto; }
.legenda { display: flex; flex-wrap: wrap; gap: 18px; margin: 6px 0 14px; font-size: .86rem; color: var(--ink-2); }
.legenda span { display: inline-flex; align-items: center; gap: 7px; }

/* grade clássica de Marcos */
table.grade-marcos { border-collapse: separate; border-spacing: 0; font-size: .8rem; }
.grade-marcos th, .grade-marcos td { padding: 3px 3px; text-align: center; }
.grade-marcos .col-area { text-align: left; padding-right: 14px; white-space: nowrap; font-weight: 800; position: sticky; left: 0; background: #fff; }
.grade-marcos .num { color: var(--ink-3); font-weight: 700; font-size: .7rem; }
.grade-marcos .nv { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: #fff; border-radius: 6px; padding: 5px 0; }
.grade-marcos .nv.n1 { background: var(--teal); } .grade-marcos .nv.n2 { background: var(--ok); } .grade-marcos .nv.n3 { background: var(--roxo); }
.cel { display: inline-block; width: 24px; height: 24px; border-radius: 5px; border: 1.5px solid var(--cor, var(--ink-3)); background: #fff; vertical-align: middle; }
.cel.n1 { --cor: var(--teal); } .cel.n2 { --cor: var(--ok); } .cel.n3 { --cor: var(--roxo); }
.cel.cheio { background: var(--cor); }
.cel.meio { background: linear-gradient(90deg, var(--cor) 50%, #fff 50%); }
.cel.zero { background: #fff; border-color: var(--ink-3); }
.cel.sem { border-color: var(--line); background: repeating-linear-gradient(45deg, #f1f4f5, #f1f4f5 4px, #fff 4px, #fff 8px); }

/* barras */
.barras { display: grid; gap: 10px; }
.bar-linha { display: grid; grid-template-columns: minmax(150px, 1.1fr) 3fr minmax(90px, .6fr); gap: 14px; align-items: center; }
.bar-nome { font-weight: 700; }
.bar-fundo { display: block; height: 16px; background: #edf1f3; border-radius: 9px; overflow: hidden; }
.bar-cheia { display: block; height: 100%; width: 0; background: var(--teal); border-radius: 9px; }
.bar-cheia.sev-media { background: var(--aviso); } .bar-cheia.sev-alta { background: var(--erro); } .bar-cheia.anterior { background: #aab9bf; }
.bar-valor { font-size: .9rem; }
.bar-comp { display: grid; grid-template-columns: minmax(150px, 1fr) 3fr auto; gap: 14px; align-items: center; padding: 6px 0; border-bottom: 1px solid var(--line); }
.bar-duplas { display: grid; gap: 4px; }
.dupla { display: grid; grid-template-columns: 62px 1fr 78px; gap: 8px; align-items: center; font-size: .8rem; }
.dupla .rot { color: var(--ink-3); font-weight: 700; }
.bar-total { margin-top: 14px; padding-top: 12px; border-top: 2px solid var(--line); }

/* marca d'água de avaliação parcial (RN052) */
.rel.parcial::before { content: 'PARCIAL'; position: fixed; top: 42%; left: 50%; transform: translate(-50%, -50%) rotate(-24deg);
  font: 800 9rem var(--titulo); color: rgba(201, 138, 43, .13); letter-spacing: .1em; pointer-events: none; z-index: 5; }

@media (max-width: 900px) { .rel-cab { grid-template-columns: 1fr; } .rel-titulo { text-align: left; }
  .bar-linha, .bar-comp { grid-template-columns: 1fr; gap: 4px; } .rel.parcial::before { font-size: 5rem; } }

/* impressão (A4, com cabeçalho da unidade — RN054) */
@page { size: A4; margin: 12mm; }
@media print {
  .nao-imprime, .abas { display: none !important; }
  body { background: #fff; }
  .app { display: block; }
  .conteudo-area { padding: 0 !important; margin: 0 !important; }
  .card, .indicador { box-shadow: none !important; border: 1px solid var(--line); break-inside: avoid; }
  .rel * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .rel-cab { grid-template-columns: 1.1fr 1fr; }
  .rel-titulo { text-align: right; }
  .rolagem { overflow: visible; }
  .grade-marcos .col-area { position: static; }
  .cel { width: 17px; height: 17px; }
}

/* ---- auditoria ---- */
.filtros-aud .grade { margin-bottom: 4px; }
.filtros-aud .acoes { align-items: center; margin-top: 8px; }
select.curto { width: auto; }
input.curto { width: 160px; max-width: 100%; }
.nowrap { white-space: nowrap; }
.aud td { vertical-align: top; }
.det { margin-top: 6px; } .det summary { cursor: pointer; color: var(--teal-dark); }
.det dl { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 6px 0 0; }
.det dt { color: var(--ink-3); font-weight: 700; } .det dd { margin: 0; word-break: break-word; }
.paginacao { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin: 4px 0 24px; }
@media print { .paginacao, .filtros-aud { display: none !important; } }

/* ---- agenda e check-in ---- */
.pagina.larga { max-width: 1480px; }
.ponto { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: var(--teal); vertical-align: middle; margin-right: 2px; }
.ponto.marcos { background: #3b82c4; } .ponto.barreiras { background: var(--aviso); } .ponto.apce { background: var(--roxo); } .ponto.outro { background: var(--ink-3); }
.cal-barra { display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap; padding: 14px 18px; }
.cal-nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.cal-titulo { font-family: var(--titulo); font-size: 1.05rem; margin: 0 8px; }
.cal { display: flex; min-width: 760px; }
.cal-horas { flex: 0 0 56px; border-right: 1px solid var(--line); }
.cal-col { flex: 1 0 140px; border-left: 1px solid var(--line); min-width: 140px; }
.cal-horas .cal-col { border: 0; }
.cal-cab { height: 52px; padding: 8px; text-align: center; border-bottom: 1px solid var(--line); background: #f8fbfb; display: flex; flex-direction: column; justify-content: center; }
.cal-cab small { color: var(--ink-3); }
.cal-col.hoje .cal-cab { background: var(--teal-soft); }
.cal-corpo { position: relative; height: 780px; background: repeating-linear-gradient(to bottom, transparent 0, transparent 59px, var(--line) 59px, var(--line) 60px); }
.cal-hora { position: absolute; right: 6px; font-size: .72rem; color: var(--ink-3); transform: translateY(-7px); }
.evt { position: absolute; left: 2px; right: 2px; border-radius: 8px; padding: 3px 6px; font-size: .78rem; line-height: 1.25; overflow: hidden;
  background: var(--teal-soft); border-left: 4px solid var(--teal); color: var(--ink); }
.evt:hover, .evt:focus-visible { text-decoration: none; box-shadow: 0 2px 8px rgba(31,58,66,.25); z-index: 6; }
.cal-corpo .evt { overflow-wrap: anywhere; padding: 2px 6px; line-height: 1.18; }
.cal-corpo .evt small { font-size: .7rem; line-height: 1.15; }
.cal-corpo .evt:hover, .cal-corpo .evt:focus-visible { overflow: visible; height: auto !important; min-height: 24px; }   /* sessão curta: ao passar o mouse abre inteira */
.evt small { display: block; color: var(--ink-2); }
.evt.marcos { background: #e5eff9; border-color: #3b82c4; } .evt.barreiras { background: var(--aviso-soft); border-color: var(--aviso); }
.evt.apce { background: var(--roxo-soft); border-color: var(--roxo); } .evt.outro { background: #eef1f3; border-color: var(--ink-3); }
.grupo-tag { font-style: normal; font-size: .68rem; background: #fff; border-radius: 8px; padding: 0 5px; color: var(--roxo); font-weight: 800; }
table.mes { width: 100%; border-collapse: collapse; table-layout: fixed; min-width: 760px; }
.mes th { padding: 10px; background: #f8fbfb; font-size: .78rem; text-transform: uppercase; color: var(--ink-3); border-bottom: 1px solid var(--line); }
.mes td { vertical-align: top; height: 118px; border: 1px solid var(--line); padding: 4px; }
.mes td.fora { background: #f6f8f9; } .mes td.hoje { background: var(--teal-soft); }
.mes .evt { position: static; display: block; margin-top: 3px; padding: 2px 5px; white-space: normal; overflow-wrap: anywhere; line-height: 1.2; }   /* RN128: o texto quebra de linha, nunca é cortado */
.mes .evt small { display: none; } .mes-dia { font-weight: 800; color: var(--ink-2); } .mais { display: block; font-size: .78rem; margin-top: 3px; }
.curto-sel { max-width: 340px; }
.etiquetas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.etiqueta { background: var(--teal-soft); border: 1px solid var(--teal-line); color: var(--teal-dark); border-radius: 20px; padding: 4px 6px 4px 12px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; }
.etiqueta .x { border: 0; background: none; cursor: pointer; font-size: 1.1rem; line-height: 1; color: var(--teal-dark); }
.conflitos { background: var(--erro-soft); } .conflitos li { margin-bottom: 8px; color: var(--erro); font-weight: 700; } .conflitos ul { padding-left: 18px; margin: 8px 0; }
.seg-presenca { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.pres { border: 1px solid var(--line); background: #fff; border-radius: 20px; padding: 5px 12px; font-weight: 700; cursor: pointer; color: var(--ink-2); font-family: inherit; }
.pres.ativo.compareceu { background: var(--ok); border-color: var(--ok); color: #fff; } .pres.ativo.falta { background: var(--erro); border-color: var(--erro); color: #fff; }
.pres.ativo.justificada { background: var(--aviso); border-color: var(--aviso); color: #fff; }
.obs-linha { min-width: 180px; }
.email-previa { white-space: pre-wrap; background: #f8fbfb; border: 1px solid var(--line); border-radius: 11px; padding: 16px; font-family: inherit; margin: 16px 0 0; }
.selo.neutro { background: #edf1f3; color: var(--ink-3); }
@media print { .cal-barra, .filtros { display: none !important; } }

/* ---- anamnese ---- */
.painel-ana { display: grid; grid-template-columns: 240px 1fr; gap: 18px; align-items: start; }
.ana-indice { position: sticky; top: 12px; display: flex; flex-direction: column; gap: 2px; padding: 12px; }
.ana-indice a { display: flex; justify-content: space-between; gap: 8px; padding: 8px 10px; border-radius: 9px; color: var(--ink-2); font-weight: 700; }
.ana-indice a:hover { background: var(--teal-soft); text-decoration: none; } .ana-indice small { color: var(--ink-3); }
.ana-grade .campo.largo { grid-column: 1 / -1; }
.ficha-larga { grid-column: 1 / -1; } .quebra { white-space: pre-wrap; word-break: break-word; }
.progresso-geral .barra { margin-top: 10px; }
@media (max-width: 1000px) { .painel-ana { grid-template-columns: 1fr; } .ana-indice { position: static; } }
@media print { .ana-indice { display: none; } }

/* ---- relatórios gerenciais ---- */
.submenu { display: flex; flex-direction: column; margin: 0 0 4px 14px; border-left: 2px solid var(--line); }
.submenu a { padding: 6px 12px; font-size: .86rem; } .submenu a.ativo { color: var(--teal-dark); background: transparent; font-weight: 800; }
.mini-barra { display: flex; align-items: center; gap: 10px; min-width: 150px; } .mini-barra .bar-fundo { flex: 1; height: 10px; }
.indicador small { display: block; font-weight: 500; }
.solo-imprime { display: none; } @media print { .solo-imprime { display: block; } }
[hidden] { display: none !important; }
.btn:disabled { opacity: .5; cursor: not-allowed; }

/* PEI */
.pei-revisao { display: grid; gap: 10px; }
.pei-revisao.atrasada { border-left: 4px solid var(--erro); }
.pei-revisao h2 { margin: 0 0 4px; }
.linha-form { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.linha-form input[type=text] { flex: 1 1 260px; }
.lista-simples { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 8px; }
.lista-simples li { display: flex; gap: 12px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.sugestoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 16px; }
.sug-area h3 { margin: 0; font-size: 1rem; }
.meta.cancelada { opacity: .7; }
.meta-cab { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: flex-start; }
.meta-titulo { margin: 2px 0 0; }
.meta-selos { display: flex; gap: 6px; flex-wrap: wrap; }
.meta-progresso { display: flex; align-items: center; gap: 12px; margin: 12px 0; }
.meta-progresso .barra { flex: 1; margin-top: 0; }
.meta-progresso.mini { margin: 0; gap: 8px; min-width: 110px; } .meta-progresso.mini b { font-size: .85rem; }
details.andamento[open] { flex: 1 1 100%; }
details.andamento > summary { display: inline-block; cursor: pointer; list-style: none; }
details.andamento[open] > summary { margin-bottom: 12px; }
details.card > summary { cursor: pointer; }
@media print { .meta, .pei-print-linha { break-inside: avoid; } }

/* Coleta de dados */
.cab-secao { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.cab-secao h2 { margin: 0; }
.ocupa-2 { grid-column: 1 / -1; }
.gravador { border: 1px dashed var(--teal-line); border-radius: 14px; background: var(--teal-soft); padding: 16px; margin-bottom: 16px; display: grid; gap: 12px; }
.gravador-topo { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.gravador-tempo { font-family: var(--titulo); font-weight: 800; font-size: 1.8rem; color: var(--teal-dark); min-width: 64px; }
.gravador audio { width: 100%; }
.previas { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: 12px; margin-bottom: 14px; }
.previas:empty { display: none; }
.previa { margin: 0; border: 1px solid var(--line); border-radius: 12px; padding: 8px; background: #fff; }
.previa img, .previa video { width: 100%; height: 120px; object-fit: cover; border-radius: 8px; display: block; background: #000; }
.previa figcaption { font-size: .78rem; margin-top: 6px; word-break: break-all; color: var(--ink-3); }
.linha-tempo { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.reg { display: flex; gap: 14px; padding: 14px; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
.reg-icone { flex: none; width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-weight: 800; font-size: .72rem; letter-spacing: .04em; background: #fff8ea; color: #8a6420; }
.reg-voz .reg-icone { background: var(--teal-soft); color: var(--teal-dark); }
.reg-midia .reg-icone { background: #f3eefa; color: #5e4590; }
.reg-corpo { min-width: 0; flex: 1; display: grid; gap: 6px; }
.reg-cab { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.reg-texto { margin: 4px 0; white-space: pre-wrap; }
.reg audio { width: 100%; max-width: 460px; }
.reg-foto, .reg-video { max-width: min(100%, 420px); max-height: 280px; border-radius: 12px; display: block; background: #000; }
.reg-acoes { margin-top: 6px; }

/* ---- celular e tablet ---- */
html { -webkit-text-size-adjust: 100%; }
img, video, audio { max-width: 100%; }
.card .tab, .tabela-rolavel { max-width: 100%; }
@media (max-width: 900px) {
  .lateral { padding: 10px 14px 6px; gap: 4px 12px; border-right: 0; border-bottom: 1px solid var(--line); flex-direction: column; align-items: stretch; flex-wrap: nowrap; }
  .marca { padding: 0; }
  .menu { display: flex; flex-wrap: nowrap; gap: 4px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; padding-bottom: 6px; }
  .menu a { white-space: nowrap; padding: 9px 14px; flex: none; min-height: 40px; }
  .menu .sep { width: 1px; height: auto; margin: 6px 4px; flex: none; }
  .menu .submenu { flex-direction: row; gap: 4px; flex: none; margin: 0; border-left: 0; }
  .topo { flex-wrap: wrap; padding: 10px 16px; gap: 8px 12px; }
  .topo-dir { flex-wrap: wrap; gap: 8px 12px; margin-left: auto; }
  .pagina { padding: 20px 16px; }
  h1 { font-size: 1.6rem; }
  .card { padding: 18px; }
  .card-cab { padding: 14px 18px; flex-wrap: wrap; }
  .btn, .aba, .pilula { min-height: 40px; }
  input[type=text], input[type=email], input[type=password], input[type=date], input[type=time], input[type=number], input[type=tel], select, textarea { font-size: 16px; }
}
@media (max-width: 600px) {
  html { font-size: 14.5px; }
  .usuario-nome, .usuario-papel { display: none; }
  .topo { padding: 8px 12px; }
  .trilha { font-size: .85rem; flex: 1 1 100%; }
  .pagina { padding: 16px 12px; }
  .card { padding: 14px; border-radius: 12px; }
  .cab-pagina { align-items: flex-start; }
  .cab-pagina .acoes, .cab-pagina .acoes .btn { width: 100%; }
  .cab-pagina .acoes .btn { flex: 1 1 calc(50% - 10px); }
  .abas, .pilulas { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; }
  .aba, .pilula { white-space: nowrap; flex: none; }
  .pergunta { grid-template-columns: 1fr; gap: 6px; padding: 14px; }
  .marca-nome { font-size: 1.05rem; }
  .marca-sub { display: none; }
  .entrada-card { padding: 24px 18px; }
}
@media (max-width: 900px) { .app { grid-template-columns: minmax(0, 1fr); } .lateral, .conteudo-area { min-width: 0; } }

/* seletor de unidade no topo (como no protótipo) */
.rotulo-unidade { display: flex; align-items: center; gap: 6px; color: var(--ink-3); font-weight: 700; font-size: .85rem; margin: 0; }
.seletor-unidade select, .unidade-unica { min-width: 150px; }
.unidade-unica { background: var(--teal-soft); border: 1px solid var(--teal-line); font-weight: 800; padding: 7px 12px; border-radius: 10px; color: var(--teal-dark); }
@media (max-width: 600px) { .rotulo-unidade-txt { display: none; } .seletor-unidade select, .unidade-unica { min-width: 0; max-width: 46vw; } }

/* ---- Família ---- */
.aviso-duvida { background: var(--aviso-soft); border: 1px solid #ecd6a8; color: #7a5410; border-radius: 11px; padding: 12px 16px; margin-bottom: 16px; font-size: .95rem; }
.aviso-duvida a { margin-left: 8px; font-weight: 800; }
.chips-rotina { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0; }
.abc-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 6px; }
.abc-trio > div { background: #f8fbfb; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.abc-trio p { margin: 4px 0 0; }
.abc-letra { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: var(--teal); color: #fff; font-weight: 800; font-size: .75rem; margin-right: 6px; }
.conversa { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.msg { display: flex; } .msg.equipe { justify-content: flex-end; }
.msg-balao { max-width: min(640px, 86%); border-radius: 14px; padding: 12px 16px; background: #fff; border: 1px solid var(--line); }
.msg.equipe .msg-balao { background: var(--teal-soft); border-color: var(--teal-line); }
.msg.aberta .msg-balao { border-color: #e2c27a; background: var(--aviso-soft); }
.msg-cab { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 4px; }
.msg-tipo { font-size: .75rem; font-weight: 800; color: var(--ink-3); }
.msg-pe { font-size: .78rem; color: var(--ink-3); margin-top: 4px; }
.msg-balao p { margin: 0 0 4px; }
@media (max-width: 700px) { .abc-trio { grid-template-columns: 1fr; } .msg-balao { max-width: 100%; } }
.indicador.alerta b { color: #b07a1a; } .indicador.alerta { background: var(--aviso-soft); }

/* olhinho da senha */
.campo-senha { position: relative; display: flex; }
.campo-senha input { padding-right: 46px; }
.olho { position: absolute; right: 4px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border: 0; background: none; color: var(--ink-3); cursor: pointer; border-radius: 10px; display: grid; place-items: center; }
.olho:hover { color: var(--teal-dark); background: var(--teal-soft); }
.olho:focus-visible { outline: 2px solid var(--teal); }
.card > h2 + form { margin-top: 12px; }

/* check-in: justificativa e cobrança */
.just-linha td { background: #fbfdfd; }
.just-caixa { display: grid; gap: 10px; padding: 6px 4px; max-width: 640px; }
.just-resumo { font-size: .85rem; color: var(--ink-2); margin-top: 6px; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.seg-presenca [data-cobranca] { margin-left: 6px; }
.obrig-marca { color: var(--erro); }

/* recomendações do relatório da avaliação */
.recomenda { display: flex; gap: 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.recomenda:first-of-type { border-top: 0; }
.recomenda p { margin: 4px 0 0; color: var(--ink-2); }
.recomenda-n { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--teal-soft); color: var(--teal-dark); display: grid; place-items: center; font-weight: 800; font-size: .85rem; }
@media print { .recomenda { break-inside: avoid; } }
@media (max-width: 600px) { .indicadores:not(.cartoes) { grid-template-columns: 1fr 1fr; gap: 10px; } .indicador { padding: 12px 14px; } .indicador b { font-size: 1.4rem; } }

/* Etapa 9: tabelas largas, bloqueios e transferência */
.tabela-rolagem { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.tabela-rolagem table { min-width: 520px; }
.em-linha { display: inline; margin: 0; }
.topo-8 { margin-top: 8px; }
.aviso-duvida ul { margin: 6px 0 0 18px; padding: 0; }
.aviso-duvida div + div { margin-top: 4px; }
.msg-email { margin-top: 6px; font-size: .85rem; }
.interruptor .dica { margin-left: 4px; }
td small { display: block; }

.opcao { display: block; padding: 10px 12px; border: 1px solid var(--line); border-radius: 11px; margin-bottom: 8px; cursor: pointer; }
.opcao input { margin-right: 8px; }
form.em-linha { display: inline-block; margin-left: 10px; }

/* ---- rodapé e suporte ---- */
.lateral .suporte { margin-top: auto; display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 10px; color: var(--ink-2); font-weight: 700; }
.lateral .suporte:hover { background: var(--bg); text-decoration: none; }
.rodape { margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 26px; background: #ececec; color: var(--ink-3); font-size: .9rem; }
.rodape-marca { display: inline-flex; align-items: center; gap: 8px; }
.rodape-marca img { object-fit: contain; }
.rodape-marca .marca-nome { font-size: 1.05rem; color: var(--ink-2); }
.entrada-rodape { text-align: center; color: var(--ink-3); font-size: .85rem; margin: 18px 0 0; }
@media (max-width: 600px) { .rodape { justify-content: center; text-align: center; } }
@media print { .rodape, .suporte { display: none !important; } }

/* ---- menu do avatar (RN013) ---- */
.usuario-box { position: relative; }
.usuario-box > summary { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.usuario-box > summary::-webkit-details-marker { display: none; }
.usuario-menu { position: absolute; right: 0; top: calc(100% + 8px); z-index: 30; min-width: 220px; background: #fff; border: 1px solid var(--line); border-radius: 12px;
  box-shadow: 0 10px 30px rgba(20, 40, 50, .14); padding: 14px; display: flex; flex-direction: column; gap: 4px; }
.usuario-menu .usuario-nome, .usuario-menu .usuario-papel { display: block; }
.usuario-menu form { margin-top: 10px; }
.usuario-menu .btn { width: 100%; }
.submenu[hidden] { display: none; }

/* ---- modo módulo: dados que vêm do MedHealth ---- */
.trava { border: 0; padding: 0; margin: 0; min-width: 0; display: contents; }
.trava[disabled] input, .trava[disabled] select, .trava[disabled] textarea { background: #f1f4f5; color: var(--ink-2); cursor: not-allowed; }
.selo-origem { font-size: .78rem; color: var(--ink-3); }

/* cartões de indicadores clicáveis */
a.indicador.link { display: block; text-decoration: none; color: inherit; transition: box-shadow .15s, transform .15s; }
a.indicador.link:hover { box-shadow: 0 4px 14px rgba(20,60,70,.16); transform: translateY(-1px); }
a.indicador.link:focus-visible { outline: 3px solid var(--teal); outline-offset: 2px; }
a.indicador.link.atual { box-shadow: inset 0 0 0 2px var(--teal); }

/* ---- Check-in compacto (como no protótipo): botões de 34 px em uma linha, colunas com largura mínima ---- */
#checkin .tab { min-width: 1160px; font-size: .86rem; }
#checkin .tab td { padding: 10px 18px; }
#checkin .tab td:nth-child(2) { min-width: 180px; }
#checkin .tab td:nth-child(6) { min-width: 300px; }
#checkin .tab td:nth-child(7) { min-width: 170px; }
#checkin .pres { height: 34px; padding: 0 12px; border-radius: 9px; font-size: .8rem; white-space: nowrap; line-height: 1; }
#checkin .seg-presenca { flex-wrap: wrap; gap: 6px; }
#checkin .seg-presenca [data-info] { flex-basis: 100%; font-size: .75rem; margin: 0; }
#checkin .seg-presenca [data-info]:empty { display: none; }
#checkin .obs-linha { min-width: 0; width: 100%; height: 38px; font-size: .82rem; }
#checkin .just-resumo { font-size: .78rem; margin-top: 4px; }

/* ---- Suporte como no MedHealth: ícone de headset maior, texto mais forte e posição alinhada à linha do rodapé ---- */
.lateral .suporte { font-size: 1.02rem; font-weight: 700; padding: 10px 12px; }
.lateral .suporte .ico-suporte { flex: 0 0 22px; }
@media (min-width: 901px) { .lateral { padding-bottom: 8px; } }

/* ---- paginação na tela ---- */
.paginacao.paginas { flex-wrap: wrap; margin: 12px 0 24px; }
.paginas-botoes { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.paginas-botoes .principal[aria-current] { cursor: default; }

/* ---- impressão: tabela longa continua nas páginas seguintes com o cabeçalho repetido, sem cortar linha, com "Página X de Y" ---- */
@page { @bottom-right { content: "Página " counter(page) " de " counter(pages); font-size: 9pt; color: #5b6c72; } }
@media print {
  .card.sem-pad, .card.rolagem { break-inside: auto; overflow: visible; }
  .card.sem-pad .tab { font-size: 8.5pt; }
  .card.sem-pad .tab th { padding: 5px 6px; font-size: 7pt; }
  .card.sem-pad .tab td { padding: 5px 6px; }
  .card.sem-pad .tab .avatar { display: none; }
  .card.sem-pad .tab .nome-cel { gap: 0; }
  .card.sem-pad .tab td:first-child { min-width: 36mm; }
  table.tab thead { display: table-header-group; }
  table.tab tfoot { display: table-footer-group; }
  table.tab tr { break-inside: avoid; page-break-inside: avoid; }
  h1, h2, h3 { break-after: avoid; }
}

/* logo enviado pela clínica no topo do menu (RN105): proporção preservada, nome da unidade pode quebrar linha */
.marca-logo.propria { width: auto; height: 40px; max-width: 64px; }
.marca-nome.marca-clinica { font-size: .92rem; line-height: 1.15; overflow-wrap: break-word; }

/* ---- ficha do paciente (seção 7.4) ---- */
.etiquetas-ficha { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.etiq-ficha { display: inline-block; padding: 3px 10px; border-radius: 14px; background: var(--teal-soft); color: var(--teal-dark); font-size: .82rem; font-weight: 700; }
.ficha-duas { align-items: start; }
.ficha-grid.um { grid-template-columns: 1fr; }
@media (max-width: 760px) { .ficha-duas { grid-template-columns: 1fr; } }
.pontos-area { align-self: center; font-size: .95rem; color: var(--ink-2); } .card-cab:has(.pontos-area) { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.nav-areas { display: flex; justify-content: space-between; gap: 10px; padding: 16px 22px; }
@media print { .rel-cab-imp { display: flex; gap: 14px; align-items: center; margin-bottom: 10px; } }

/* Prontidão para o ambiente escolar (relatório do APCE) */
.h3-pequeno { font-size: 1rem; margin: 18px 0 8px; }
.ficha-dl { display: grid; grid-template-columns: minmax(150px, 220px) 1fr; gap: 6px 16px; margin: 0; }
.ficha-dl dt { color: var(--suave, #667); }
.ficha-dl dd { margin: 0; white-space: pre-line; }
.texto-parecer { white-space: pre-line; }
@media (max-width: 640px) { .ficha-dl { grid-template-columns: 1fr; } }
.zona-risco { margin-top: 56px; border: 1px solid #efc4c4; }
.passo-a-passo { margin-top: 14px; padding: 14px 16px; border: 1px solid var(--borda, #d9e2e6); border-radius: 12px; background: #f7fafb; } .passo-a-passo ol { margin: 8px 0 12px 20px; padding: 0; } .passo-a-passo li { margin-bottom: 6px; }
