/* =====================================================
   CONECTAVET · Identidade visual
   Teal cirúrgico + amarelo coleira, Bricolage Grotesque + Atkinson Hyperlegible
   ===================================================== */

:root {
  --teal: #0E5E6F;
  --teal-escuro: #0A4552;
  --teal-fundo: #E3EFF1;
  --coleira: #F2B33D;
  --coleira-fundo: #FDF2DC;
  --papel: #F5F8F9;
  --branco: #FFFFFF;
  --tinta: #16262C;
  --suave: #56696F;
  --linha: #D6E1E4;
  --ok: #1F7A55;
  --ok-fundo: #E2F3EA;
  --erro: #B4372F;
  --erro-fundo: #FBE7E5;

  --fonte-titulo: 'Bricolage Grotesque', 'Segoe UI', sans-serif;
  --fonte-texto: 'Atkinson Hyperlegible', 'Segoe UI', Arial, sans-serif;

  --raio: 10px;
  --raio-p: 6px;
  --sombra: 0 1px 2px rgba(22, 38, 44, .06), 0 4px 14px rgba(22, 38, 44, .05);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--fonte-texto);
  font-size: 1rem;
  line-height: 1.55;
  color: var(--tinta);
  background: var(--papel);
}
img { max-width: 100%; display: block; }
a { color: var(--teal); text-underline-offset: 3px; }
a:hover { color: var(--teal-escuro); }
h1, h2, h3, h4 {
  font-family: var(--fonte-titulo);
  line-height: 1.15;
  margin: 0 0 .5em;
  letter-spacing: -.015em;
  font-weight: 700;
}
h1 { font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
h2 { font-size: 1.35rem; }
h3 { font-size: 1.08rem; }
p { margin: 0 0 1em; }
small, .fraco { color: var(--suave); }
hr { border: 0; border-top: 1px solid var(--linha); margin: 24px 0; }

:focus-visible { outline: 3px solid var(--coleira); outline-offset: 2px; border-radius: 4px; }

.pular {
  position: absolute; left: -999px; top: 8px; z-index: 99;
  background: var(--tinta); color: #fff; padding: 8px 14px; border-radius: var(--raio-p);
}
.pular:focus { left: 8px; }

/* ---------- Marca ---------- */
.marca {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.3rem;
  color: var(--tinta); text-decoration: none; letter-spacing: -.03em;
}
.marca:hover { color: var(--tinta); }

/* ---------- Botões ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  font: 700 .95rem/1 var(--fonte-texto);
  padding: 12px 18px; border-radius: var(--raio-p);
  background: var(--teal); color: #fff; border: 1px solid var(--teal);
  text-decoration: none; cursor: pointer; white-space: nowrap;
  transition: background .15s;
}
.btn:hover { background: var(--teal-escuro); color: #fff; }
.btn-claro { background: var(--branco); color: var(--teal); border-color: var(--linha); }
.btn-claro:hover { background: var(--teal-fundo); color: var(--teal-escuro); }
.btn-coleira { background: var(--coleira); border-color: var(--coleira); color: var(--tinta); }
.btn-coleira:hover { background: #E3A12A; color: var(--tinta); }
.btn-perigo { background: var(--branco); color: var(--erro); border-color: #EBC3BF; }
.btn-perigo:hover { background: var(--erro-fundo); color: var(--erro); }
.btn-p { padding: 8px 12px; font-size: .85rem; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }
.link-forte { font-weight: 700; text-decoration: none; color: var(--tinta); }
.botao-link { background: none; border: 0; padding: 0; font: inherit; color: var(--teal); text-decoration: underline; cursor: pointer; }

/* ---------- Avisos ---------- */
.aviso {
  padding: 12px 16px; border-radius: var(--raio-p); margin: 0 0 18px;
  border: 1px solid var(--linha); background: var(--branco); font-weight: 700;
}
.aviso-ok { background: var(--ok-fundo); border-color: #B8DFC9; color: #14593D; }
.aviso-erro { background: var(--erro-fundo); border-color: #EBC3BF; color: #8D2821; }
.aviso-info { background: var(--teal-fundo); border-color: #BFD8DD; color: var(--teal-escuro); }
.site-main > .aviso { max-width: 1120px; margin: 18px auto 0; }

/* ---------- Formulários ---------- */
.form { display: grid; gap: 16px; }
.form-grade { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.campo { display: grid; gap: 6px; }
.campo > span, .campo legend { font-weight: 700; font-size: .92rem; }
.campo small { font-size: .82rem; }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=number],
input[type=date], input[type=month], input[type=datetime-local], input[type=time], input[type=search], input[type=url], select, textarea {
  width: 100%; font: inherit; color: var(--tinta);
  padding: 11px 12px; border: 1px solid #BFCED2; border-radius: var(--raio-p);
  background: var(--branco);
}
textarea { min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: 2px solid var(--teal); outline-offset: 0; border-color: var(--teal); }
.check { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.check input { margin-top: 4px; width: 18px; height: 18px; accent-color: var(--teal); }
fieldset { border: 0; padding: 0; margin: 0; }
.form-acoes { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.obrig { color: var(--erro); }

/* Escolha de tipo de conta */
.escolha { display: grid; gap: 10px; grid-template-columns: repeat(3, 1fr); }
.escolha-2 { grid-template-columns: repeat(2, 1fr); }
.escolha label {
  display: grid; gap: 4px; cursor: pointer;
  border: 1.5px solid var(--linha); border-radius: var(--raio); padding: 14px; background: var(--branco);
}
.escolha label strong { font-family: var(--fonte-titulo); font-size: 1.05rem; }
.escolha label small { line-height: 1.35; }
.escolha input { position: absolute; opacity: 0; pointer-events: none; }
.escolha label:has(input:checked) { border-color: var(--teal); background: var(--teal-fundo); box-shadow: inset 0 0 0 1px var(--teal); }
.escolha label:has(input:focus-visible) { outline: 3px solid var(--coleira); outline-offset: 2px; }

/* ---------- Site público ---------- */
.site-topo { background: var(--branco); border-bottom: 1px solid var(--linha); }
.site-topo-in {
  max-width: 1120px; margin: 0 auto; padding: 14px 20px;
  display: flex; align-items: center; gap: 28px;
}
.site-nav { display: flex; gap: 22px; }
.site-nav a { color: var(--tinta); text-decoration: none; font-weight: 700; font-size: .95rem; }
.site-nav a:hover { color: var(--teal); }
.site-acoes { margin-left: auto; display: flex; align-items: center; gap: 16px; }
.site-main { min-height: 60vh; }
.envelope { max-width: 1120px; margin: 0 auto; padding: 40px 20px; }
.envelope-estreito { max-width: 760px; margin: 0 auto; padding: 40px 20px; }

.site-rodape { background: var(--tinta); color: #C9D5D8; margin-top: 64px; }
.site-rodape .marca { color: #fff; }
.site-rodape-in {
  max-width: 1120px; margin: 0 auto; padding: 40px 20px;
  display: grid; grid-template-columns: 2fr 2fr 1fr; gap: 24px; align-items: start;
}
.site-rodape p { margin: 10px 0 0; max-width: 34ch; }
.site-rodape nav { display: grid; gap: 8px; }
.site-rodape a { color: #E6EEF0; text-decoration: none; }
.site-rodape a:hover { color: var(--coleira); }
.site-rodape small { color: #8FA3A9; justify-self: end; }

/* Hero com quadro de plantões */
.hero { background: var(--branco); border-bottom: 1px solid var(--linha); }
.hero-in {
  max-width: 1120px; margin: 0 auto; padding: 64px 20px 72px;
  display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center;
}
.hero h1 { font-size: clamp(2.2rem, 4.6vw, 3.6rem); font-weight: 800; letter-spacing: -.035em; line-height: 1.02; }
.hero-texto p { font-size: 1.14rem; color: var(--suave); max-width: 46ch; }
.hero-ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }

.quadro {
  background: var(--tinta); color: #E9F1F3; border-radius: 14px; padding: 18px 18px 8px;
  box-shadow: 0 20px 50px -20px rgba(10, 69, 82, .55);
  transform: rotate(.6deg);
}
.quadro-cab { display: flex; justify-content: space-between; align-items: baseline; padding: 0 4px 12px; border-bottom: 1px solid rgba(255,255,255,.12); }
.quadro-cab strong { font-family: var(--fonte-titulo); font-size: 1.05rem; }
.quadro-cab small { color: #93A8AE; display: inline-flex; align-items: center; gap: 6px; }
.quadro-cab small::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #46C38B; animation: pulso 2.4s ease-in-out infinite; }
@keyframes pulso { 50% { opacity: .3; } }
.quadro-linha {
  display: grid; grid-template-columns: 54px 1fr auto; gap: 14px; align-items: center;
  padding: 12px 4px; border-bottom: 1px solid rgba(255,255,255,.08);
  color: inherit; text-decoration: none;
}
.quadro-linha:last-child { border-bottom: 0; }
.quadro-linha:hover { background: rgba(255,255,255,.04); color: #fff; }
.quadro-data { font-family: var(--fonte-titulo); text-align: center; line-height: 1; }
.quadro-data b { display: block; font-size: 1.45rem; }
.quadro-data span { font-size: .76rem; color: #93A8AE; }
.quadro-titulo { font-weight: 700; }
.quadro-titulo small { display: block; color: #93A8AE; font-weight: 400; }
.quadro-valor { text-align: right; font-family: var(--fonte-titulo); font-weight: 700; color: var(--coleira); }
.quadro-valor small { display: block; color: #93A8AE; font-family: var(--fonte-texto); font-weight: 400; font-size: .76rem; }
.marca-urgente { display: inline-block; background: #E5544B; color: #fff; font-size: .7rem; font-weight: 700; padding: 1px 7px; border-radius: 99px; margin-left: 6px; vertical-align: 2px; }
.quadro-vazio { padding: 26px 6px; color: #B9CACE; }
.quadro-exemplo { opacity: .7; }
.quadro-exemplo + .quadro-vazio, .quadro-exemplo ~ .quadro-vazio { padding: 12px 6px 4px; font-size: .9rem; }

.faixa { padding: 72px 20px; }
.faixa-in { max-width: 1120px; margin: 0 auto; }
.faixa-titulo { max-width: 640px; margin-bottom: 36px; }
.faixa-titulo h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); font-weight: 800; letter-spacing: -.03em; }
.faixa-titulo p { color: var(--suave); font-size: 1.08rem; }

.publicos { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--tinta); }
.publico { padding: 24px 28px 8px 0; }
.publico + .publico { padding-left: 28px; border-left: 1px solid var(--linha); }
.publico h3 { font-size: 1.3rem; }
.publico ul { margin: 12px 0 18px; padding-left: 18px; color: var(--suave); }
.publico li { margin-bottom: 6px; }

.faixa-escura { background: var(--teal-escuro); color: #DCEAED; }
.faixa-escura h2 { color: #fff; }
.faixa-escura .faixa-titulo p { color: #B5CDD3; }
.prontuario-demo { display: grid; grid-template-columns: 1fr 1.2fr; gap: 48px; align-items: center; }
.ficha {
  background: var(--branco); color: var(--tinta); border-radius: 14px; padding: 22px;
  box-shadow: 0 24px 60px -24px rgba(0,0,0,.5);
}
.ficha-topo { display: flex; gap: 14px; align-items: center; padding-bottom: 14px; border-bottom: 1px solid var(--linha); }
.ficha-topo .avatar { background: var(--coleira-fundo); color: #8A5A07; }
.linha-tempo { list-style: none; margin: 14px 0 0; padding: 0; }
.linha-tempo li { display: grid; grid-template-columns: 74px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px dashed var(--linha); }
.linha-tempo li:last-child { border-bottom: 0; }
.linha-tempo time { font-size: .85rem; color: var(--suave); }
.linha-tempo strong { display: block; }
.pontos { color: #DCEAED; padding-left: 18px; }
.pontos li { margin-bottom: 10px; }

.planos-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 18px; }
.plano {
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 24px; display: flex; flex-direction: column; gap: 6px;
}
.plano-pro { border: 2px solid var(--teal); }
.plano h3 { font-size: 1.2rem; margin: 0; }
.plano-para { color: var(--suave); font-size: .9rem; }
.plano-preco { font-family: var(--fonte-titulo); font-size: 2rem; font-weight: 800; letter-spacing: -.03em; margin: 8px 0 2px; }
.plano-preco small { font-family: var(--fonte-texto); font-size: .9rem; font-weight: 400; }
.plano ul { list-style: none; padding: 0; margin: 12px 0 18px; display: grid; gap: 8px; }
.plano li { padding-left: 24px; position: relative; }
.plano li::before { content: ''; position: absolute; left: 2px; top: 6px; width: 12px; height: 7px; border-left: 2.5px solid var(--teal); border-bottom: 2.5px solid var(--teal); transform: rotate(-45deg); }
.plano .btn { margin-top: auto; }
.plano-atual { background: var(--teal-fundo); color: var(--teal-escuro); font-weight: 700; padding: 10px; text-align: center; border-radius: var(--raio-p); margin-top: auto; }

/* Autenticação */
.auth { min-height: calc(100vh - 70px); display: grid; place-items: center; padding: 40px 16px; }
.auth-caixa { width: 100%; max-width: 520px; background: var(--branco); border: 1px solid var(--linha); border-radius: 14px; padding: 32px; box-shadow: var(--sombra); }
.auth-caixa h1 { font-size: 1.8rem; }
.auth-rodape { margin-top: 18px; text-align: center; color: var(--suave); }

/* ---------- Área interna ---------- */
.app { display: grid; grid-template-columns: 252px 1fr; min-height: 100vh; }
.lateral {
  background: var(--teal-escuro); color: #CFE1E5;
  display: flex; flex-direction: column; gap: 18px; padding: 20px 14px;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.lateral .marca { color: #fff; padding: 0 8px; }
.lateral-quem { display: flex; gap: 10px; align-items: center; padding: 12px 8px; border-top: 1px solid rgba(255,255,255,.12); border-bottom: 1px solid rgba(255,255,255,.12); }
.lateral-quem strong { display: block; color: #fff; font-size: .92rem; line-height: 1.2; overflow-wrap: anywhere; }
.lateral-quem small { color: #94B6BE; font-size: .8rem; }
.lateral-quem .avatar { width: 38px; height: 38px; font-size: .85rem; background: var(--coleira); color: var(--tinta); }
.lateral-nav { display: grid; gap: 2px; }
.lateral-nav a, .lateral-sair button {
  display: flex; align-items: center; gap: 11px; padding: 10px 10px; border-radius: var(--raio-p);
  color: #D3E4E8; text-decoration: none; font: 700 .93rem var(--fonte-texto);
}
.lateral-nav a:hover, .lateral-sair button:hover { background: rgba(255,255,255,.08); color: #fff; }
.lateral-nav a[aria-current="page"] { background: #fff; color: var(--teal-escuro); }
.lateral-nav .contador { margin-left: auto; background: var(--coleira); color: var(--tinta); font-size: .72rem; padding: 1px 7px; border-radius: 99px; }
.lateral-sair { margin-top: auto; }
.lateral-sair button { width: 100%; background: none; border: 0; cursor: pointer; }
.app-corpo { min-width: 0; }
.app-barra { display: none; }
.app-main { padding: 32px clamp(16px, 3vw, 40px) 64px; max-width: 1180px; }

.pag-cab { display: flex; gap: 16px; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; margin-bottom: 24px; }
.pag-cab h1 { margin-bottom: 4px; }
.pag-cab p { color: var(--suave); margin: 0; max-width: 60ch; }
.pag-cab-acao { display: flex; gap: 10px; flex-wrap: wrap; }

.painel { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 22px; }
.painel + .painel { margin-top: 18px; }
.painel-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 12px; }
.painel-cab h2 { font-size: 1.1rem; margin: 0; }
.painel-cab a { font-size: .9rem; font-weight: 700; }
.grade-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.grade-2-1 { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.grade-2 .painel + .painel, .grade-2-1 .painel + .painel { margin-top: 0; }
.coluna { display: grid; gap: 18px; align-content: start; }
.coluna .painel + .painel { margin-top: 0; }
.mt { margin-top: 18px; }

.numeros { display: flex; flex-wrap: wrap; gap: 0; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); margin-bottom: 18px; }
.numero { flex: 1 1 150px; padding: 18px 22px; }
.numero + .numero { border-left: 1px solid var(--linha); }
.numero b { display: block; font-family: var(--fonte-titulo); font-size: 1.9rem; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.numero span { color: var(--suave); font-size: .9rem; }
.numero a { color: inherit; text-decoration: none; }

.boas-vindas { display: flex; gap: 16px; align-items: center; margin-bottom: 22px; }
.boas-vindas h1 { margin: 0; }
.boas-vindas p { margin: 2px 0 0; color: var(--suave); }

/* Listas */
.lista { list-style: none; margin: 0; padding: 0; }
.lista > li { display: flex; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid var(--linha); }
.lista > li:last-child { border-bottom: 0; }
.lista-corpo { flex: 1; min-width: 0; }
.lista-corpo strong { display: block; }
.lista-corpo a { text-decoration: none; color: var(--tinta); }
.lista-corpo a:hover { color: var(--teal); }
.lista-corpo small { display: block; }
.lista-fim { text-align: right; flex-shrink: 0; display: flex; gap: 8px; align-items: center; }

.etiqueta { display: inline-block; font-size: .78rem; font-weight: 700; padding: 3px 9px; border-radius: 99px; background: var(--teal-fundo); color: var(--teal-escuro); white-space: nowrap; }
.etiqueta-amarela { background: var(--coleira-fundo); color: #7A4F05; }
.etiqueta-verde { background: var(--ok-fundo); color: #14593D; }
.etiqueta-vermelha { background: var(--erro-fundo); color: #8D2821; }
.etiqueta-cinza { background: #EAEFF0; color: var(--suave); }

.avatar { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.avatar-letras { display: inline-grid; place-items: center; background: var(--teal-fundo); color: var(--teal-escuro); font-weight: 700; font-family: var(--fonte-titulo); }
.avatar.g { width: 88px; height: 88px; font-size: 1.6rem; }
.avatar.p { width: 36px; height: 36px; font-size: .8rem; }

.nota { display: inline-flex; gap: 4px; align-items: center; font-weight: 700; color: #9A6608; }
.nota-vazia { color: var(--suave); font-weight: 400; font-size: .9rem; }

.vazio { text-align: center; padding: 36px 16px; color: var(--suave); }
.vazio h2, .vazio h1 { color: var(--tinta); }
.vazio .btn { margin-top: 6px; }

/* Cartões de vaga e perfil */
.cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.cartao {
  background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio);
  padding: 18px; display: flex; flex-direction: column; gap: 8px; color: var(--tinta); text-decoration: none;
}
a.cartao:hover { border-color: var(--teal); color: var(--tinta); }
.cartao h3 { margin: 0; }
.cartao-meta { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--suave); font-size: .9rem; }
.cartao-pe { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 8px; }
.valor { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.15rem; }
.cartao-destaque { border-color: var(--coleira); box-shadow: inset 4px 0 0 var(--coleira); }
.perfil-linha { display: flex; gap: 14px; align-items: center; }

.filtros { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr auto; gap: 10px; align-items: end; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; margin-bottom: 20px; }
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--linha); margin-bottom: 20px; }
.abas a { padding: 10px 16px; text-decoration: none; font-weight: 700; color: var(--suave); border-bottom: 3px solid transparent; margin-bottom: -1px; }
.abas a[aria-current="page"] { color: var(--teal-escuro); border-color: var(--teal); }

/* Perfil público */
.perfil-cab { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; margin-bottom: 26px; }
.perfil-cab h1 { margin: 0 0 4px; }
.perfil-cab .acoes { margin-left: auto; display: flex; gap: 10px; flex-wrap: wrap; }
.dados { display: grid; grid-template-columns: max-content 1fr; gap: 8px 18px; margin: 0; }
.dados dt { color: var(--suave); }
.dados dd { margin: 0; font-weight: 700; }
.texto-longo { white-space: pre-line; }

/* Tabela */
.tabela-envolve { overflow-x: auto; }
table.tabela { width: 100%; border-collapse: collapse; font-size: .94rem; }
.tabela th { text-align: left; font-weight: 700; color: var(--suave); font-size: .85rem; padding: 10px 12px; border-bottom: 2px solid var(--linha); white-space: nowrap; }
.tabela td { padding: 12px; border-bottom: 1px solid var(--linha); vertical-align: middle; }
.tabela tr:last-child td { border-bottom: 0; }

/* Agenda */
.agenda-nav { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 16px; }
.agenda-nav h2 { margin: 0 8px; font-size: 1.15rem; }
.dias { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin-bottom: 18px; }
.dia { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 8px; text-align: center; text-decoration: none; color: var(--tinta); }
.dia b { display: block; font-family: var(--fonte-titulo); font-size: 1.3rem; }
.dia small { display: block; }
.dia[aria-current="date"] { background: var(--teal); border-color: var(--teal); color: #fff; }
.dia[aria-current="date"] small { color: #CFE5EA; }
.dia .ponto { display: inline-block; min-width: 20px; font-size: .72rem; font-weight: 700; background: var(--coleira-fundo); color: #7A4F05; border-radius: 99px; margin-top: 2px; }
.horario { display: grid; grid-template-columns: 62px 1fr auto; gap: 14px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--linha); }
.horario:last-child { border-bottom: 0; }
.horario time { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.1rem; }
.horario.cancelado { opacity: .55; }
.horario.cancelado strong { text-decoration: line-through; }

/* Prontuário */
.historico { list-style: none; padding: 0; margin: 0; position: relative; }
.historico::before { content: ''; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: var(--linha); }
.historico > li { position: relative; padding: 0 0 22px 30px; }
.historico > li::before { content: ''; position: absolute; left: 1px; top: 6px; width: 14px; height: 14px; border-radius: 50%; background: var(--branco); border: 3px solid var(--teal); }
.historico details { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio-p); }
.historico summary { padding: 12px 14px; cursor: pointer; list-style: none; display: flex; gap: 10px; flex-wrap: wrap; align-items: baseline; }
.historico summary::-webkit-details-marker { display: none; }
.historico summary strong { font-family: var(--fonte-titulo); }
.historico .registro { padding: 0 14px 14px; display: grid; gap: 10px; }
.registro h4 { font-family: var(--fonte-texto); font-size: .85rem; color: var(--suave); margin: 0 0 2px; font-weight: 700; }
.registro p { margin: 0; white-space: pre-line; }
.sinais { display: flex; gap: 18px; flex-wrap: wrap; }

.pet-cab { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; margin-bottom: 22px; }
.pet-icone { width: 72px; height: 72px; border-radius: 18px; background: var(--coleira-fundo); display: grid; place-items: center; font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.6rem; color: #8A5A07; flex-shrink: 0; }
.pet-cab h1 { margin: 0; }
.pet-cab .acoes { margin-left: auto; display: flex; gap: 10px; flex-wrap: wrap; }

.paginacao { display: flex; gap: 6px; justify-content: center; margin-top: 24px; flex-wrap: wrap; }
.paginacao a { min-width: 38px; padding: 8px 10px; text-align: center; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--branco); text-decoration: none; font-weight: 700; }
.paginacao a[aria-current="page"] { background: var(--teal); color: #fff; border-color: var(--teal); }

.pix { background: var(--papel); border: 1px dashed #A9BEC3; border-radius: var(--raio); padding: 18px; }
.pix code { font-size: 1.05rem; font-weight: 700; word-break: break-all; }

/* ---------- Responsivo ---------- */
@media (max-width: 960px) {
  .hero-in, .prontuario-demo { grid-template-columns: 1fr; gap: 36px; }
  .quadro { transform: none; }
  .publicos { grid-template-columns: 1fr; }
  .publico, .publico + .publico { padding: 22px 0 6px; border-left: 0; border-top: 1px solid var(--linha); }
  .publico:first-child { border-top: 0; }
  .grade-2, .grade-2-1 { grid-template-columns: minmax(0, 1fr); }
  .filtros { grid-template-columns: 1fr 1fr; }
  .filtros .campo:first-child { grid-column: 1 / -1; }
  .site-nav { display: none; }

  .app { grid-template-columns: 1fr; }
  .lateral { position: fixed; inset: 0 auto 0 0; width: 270px; z-index: 50; transform: translateX(-100%); transition: transform .2s; }
  .lateral.aberta { transform: none; box-shadow: 0 0 0 100vmax rgba(0,0,0,.4); }
  .app-barra { display: flex; align-items: center; gap: 14px; padding: 10px 16px; background: var(--branco); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 40; }
  .menu-botao { font: 700 .9rem var(--fonte-texto); padding: 8px 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--branco); color: var(--tinta); }
  .marca-mobile { font-size: 1.1rem; }
  .app-main { padding-top: 22px; }
}
@media (max-width: 640px) {
  .site-topo-in { gap: 12px; padding: 12px 16px; }
  .site-acoes { gap: 10px; }
  .site-acoes .btn { padding: 10px 12px; }
  .escolha { grid-template-columns: 1fr; }
  .numero + .numero { border-left: 0; border-top: 1px solid var(--linha); }
  .numero { flex-basis: 100%; }
  .dias { grid-template-columns: repeat(7, minmax(40px, 1fr)); gap: 4px; overflow-x: auto; }
  .dia { padding: 6px 2px; }
  .dia b { font-size: 1.05rem; }
  .site-rodape-in { grid-template-columns: 1fr; }
  .site-rodape small { justify-self: start; }
  .auth-caixa { padding: 22px; }
  .lista > li { flex-wrap: wrap; }
  .lista-fim { width: 100%; justify-content: flex-start; }
  .horario { grid-template-columns: 52px 1fr; }
  .horario > :last-child { grid-column: 2; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  .lateral, .app-barra, .pag-cab-acao, .acoes, .nao-imprimir { display: none !important; }
  .app { display: block; }
  body { background: #fff; }
  .historico details { border: 0; }
}

/* Seções do menu lateral e nav ativa */
.lateral-secao { margin: 14px 10px 4px; font-size: .78rem; font-weight: 700; color: #8FB2BA; }
.site-nav a[aria-current="page"] { color: var(--teal); box-shadow: 0 2px 0 var(--coleira); }
@media (max-width: 1120px) { .site-nav { gap: 14px; } .site-nav a { font-size: .88rem; } }

/* Landing: áreas, jornada, vitrine */
.faixa-clara { background: var(--branco); border-top: 1px solid var(--linha); border-bottom: 1px solid var(--linha); }
.areas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 2px solid var(--tinta); }
.area { display: block; padding: 26px 28px 28px 0; color: var(--tinta); text-decoration: none; border-bottom: 1px solid var(--linha); }
.area:nth-child(even) { padding-left: 28px; border-left: 1px solid var(--linha); }
.area h3 { font-size: 1.45rem; font-weight: 800; letter-spacing: -.02em; }
.area p { color: var(--suave); max-width: 52ch; }
.area:hover h3 { color: var(--teal); }
.area-exemplo { display: inline-block; background: var(--coleira-fundo); color: #6E4604; font-weight: 700; font-size: .9rem; padding: 6px 12px; border-radius: 99px; }
.jornada { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); counter-reset: passo; }
.jornada li { counter-increment: passo; position: relative; padding: 46px 18px 0 0; }
.jornada li::before { content: counter(passo); position: absolute; top: 0; left: 0; width: 32px; height: 32px; border-radius: 50%; background: var(--teal); color: #fff; display: grid; place-items: center; font: 800 .95rem var(--fonte-titulo); z-index: 1; }
.jornada li::after { content: ''; position: absolute; top: 15px; left: 32px; right: 0; height: 2px; background: var(--linha); }
.jornada li:last-child::after { display: none; }
.jornada b { display: block; font-family: var(--fonte-titulo); font-size: 1.15rem; margin-bottom: 4px; }
.jornada span { color: var(--suave); font-size: .95rem; }
.cartao-vitrine img { width: calc(100% + 36px); margin: -18px -18px 6px; height: 170px; object-fit: cover; border-radius: var(--raio) var(--raio) 0 0; }
.cartao-vitrine .etiqueta { align-self: flex-start; }
@media (max-width: 960px) {
  .areas { grid-template-columns: 1fr; }
  .area, .area:nth-child(even) { padding: 22px 0; border-left: 0; }
  .jornada { grid-template-columns: 1fr; gap: 18px; }
  .jornada li { padding: 0 0 0 48px; }
  .jornada li::after { display: none; }
}

/* Painel */
.atalho { display: flex; gap: 18px; justify-content: space-between; align-items: center; flex-wrap: wrap; background: var(--teal); color: #fff; border-radius: var(--raio); padding: 20px 22px; margin-bottom: 18px; }
.atalho h2 { margin: 0 0 2px; font-size: 1.15rem; }
.atalho p { margin: 0; color: #CFE5EA; }
.mini-vitrine { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--linha); text-decoration: none; color: var(--tinta); }
.mini-vitrine:last-child { border-bottom: 0; }
.mini-vitrine img { width: 64px; height: 64px; border-radius: var(--raio-p); object-fit: cover; flex-shrink: 0; }
.mini-vitrine strong, .mini-vitrine small { display: block; }
.mini-vitrine:hover strong { color: var(--teal); }
.patrocinado { color: #8A5A07 !important; font-weight: 700; font-size: .75rem; }
.checks-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px 16px; }
.notas { display: flex; flex-direction: row-reverse; justify-content: flex-end; gap: 8px; }
.notas label { cursor: pointer; }
.notas input { position: absolute; opacity: 0; }
.notas span { display: grid; place-items: center; width: 48px; height: 48px; border: 1.5px solid var(--linha); border-radius: var(--raio-p); font: 800 1.2rem var(--fonte-titulo); background: var(--branco); }
.notas label:hover span, .notas label:hover ~ label span, .notas input:checked + span, .notas label:has(input:checked) ~ label span { background: var(--coleira-fundo); border-color: var(--coleira); color: #6E4604; }
.notas input:focus-visible + span { outline: 3px solid var(--coleira); outline-offset: 2px; }

/* Agenda, solicitações e espaços */
.bloco-dia { flex-shrink: 0; width: 58px; text-align: center; border: 1.5px solid var(--teal); border-radius: var(--raio-p); padding: 6px 2px; line-height: 1.1; align-self: flex-start; }
.bloco-dia b { display: block; font: 800 1.05rem var(--fonte-titulo); color: var(--teal-escuro); }
.bloco-dia small { font-size: .75rem; }
.solicitacao { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.solicitacao .lista-corpo small { display: block; }
.solicitacao-acoes { display: grid; gap: 8px; justify-items: end; max-width: 100%; }
.solicitacao-acoes input[type=text] { width: 190px; padding: 7px 10px; font-size: .9rem; }
.escolha-datas { grid-template-columns: repeat(auto-fill, minmax(84px, 1fr)); }
.escolha-datas label { text-align: center; padding: 10px 6px; }
.galeria { display: grid; grid-template-columns: 2fr 1fr; grid-auto-rows: 160px; gap: 8px; margin-bottom: 18px; }
.galeria img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--raio-p); }
.galeria img:first-child { grid-row: span 2; }
.galeria img:only-child { grid-column: 1 / -1; height: 320px; }
.foto-vazia { display: grid; place-items: center; height: 170px; margin: -18px -18px 6px; border-radius: var(--raio) var(--raio) 0 0; background: repeating-linear-gradient(135deg, var(--teal-fundo) 0 12px, #EDF4F5 12px 24px); color: var(--teal-escuro); font: 700 1.05rem var(--fonte-titulo); }
@media (max-width: 640px) {
  .solicitacao-acoes { justify-items: start; width: 100%; }
  .galeria { grid-template-columns: 1fr; grid-auto-rows: 200px; }
  .galeria img:first-child { grid-row: auto; }
}
[hidden] { display: none !important; }
.texto-erro { color: var(--erro) !important; font-weight: 700; }
.pet-icone-p { width: 44px; height: 44px; border-radius: 12px; font-size: 1.1rem; }
.nao-lida a { font-weight: 700; }
.ponto-novo { display: inline-block; width: 9px; height: 9px; border-radius: 50%; background: var(--coleira); margin-right: 8px; vertical-align: 1px; }
.texto-legal h2 { margin-top: 28px; } .texto-legal p { max-width: 72ch; }
.menu-site { display: none; position: relative; }
.menu-site summary { list-style: none; cursor: pointer; font-weight: 700; padding: 8px 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); }
.menu-site summary::-webkit-details-marker { display: none; }
.menu-site nav { position: absolute; top: calc(100% + 8px); left: 0; z-index: 60; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: var(--sombra); padding: 8px; display: grid; min-width: 210px; }
.menu-site nav a { padding: 10px 12px; text-decoration: none; color: var(--tinta); font-weight: 700; border-radius: var(--raio-p); }
.menu-site nav a:hover { background: var(--teal-fundo); }
@media (max-width: 960px) { .menu-site { display: block; } }
@media (max-width: 640px) { .site-topo .marca span { display: none; } .menu-site nav { left: auto; right: -80px; } }
.filtros-3 { grid-template-columns: 2fr 1fr auto; }
.filtros-2 { grid-template-columns: 1fr auto; }
.hero-in-ficha { grid-template-columns: 1.1fr 1fr; }
@media (max-width: 960px) {
  .hero-in-ficha { grid-template-columns: 1fr; }
  .filtros-3 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .filtros, .filtros-2, .filtros-3 { grid-template-columns: 1fr; }
}

/* Minha conta: completude, atuação, serviços */
.form-largo { max-width: 900px; }
.completude { margin-bottom: 18px; display: grid; gap: 10px; }
.completude-topo { display: flex; gap: 6px 14px; flex-wrap: wrap; align-items: baseline; }
.completude-topo strong { font-family: var(--fonte-titulo); font-size: 1.1rem; }
.barra { height: 10px; background: var(--teal-fundo); border-radius: 99px; overflow: hidden; }
.barra span { display: block; height: 100%; background: var(--coleira); border-radius: 99px; }
.completude-ok .barra span { background: var(--ok); }
.faltam { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.faltam a { display: inline-block; font-size: .88rem; font-weight: 700; text-decoration: none; padding: 5px 11px; border-radius: 99px; border: 1px dashed #A9BEC3; background: var(--papel); }
.faltam a:hover { border-style: solid; border-color: var(--teal); }
.escolha-multi { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
.escolha-multi label { padding: 12px 14px; }
.so-leitor { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.servicos-tabela { display: grid; gap: 8px; }
.servicos-cab, .servico-linha { display: grid; grid-template-columns: 2.2fr 1fr 1.2fr 1fr 2fr; gap: 8px; }
.servico-linha-3 { grid-template-columns: 2.2fr 1fr 1.2fr; }
.servicos-cab span { font-weight: 700; font-size: .85rem; color: var(--suave); }
.servico-linha .campo { gap: 0; }

/* Perfil público do vet */
.etiquetas { display: flex; flex-wrap: wrap; gap: 6px; }
.tabela-precos { width: 100%; border-collapse: collapse; }
.tabela-precos td { padding: 11px 0; border-bottom: 1px solid var(--linha); vertical-align: top; }
.tabela-precos tr:last-child td { border-bottom: 0; }
.tabela-precos td:last-child { text-align: right; white-space: nowrap; padding-left: 16px; }
.tabela-precos small { display: block; color: var(--suave); }
.a-partir { font-size: .88rem; color: var(--suave); }
.a-partir b { font-family: var(--fonte-titulo); color: var(--tinta); font-size: 1rem; }
.aviso-perfil { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.aviso-perfil .barra { width: 160px; }

@media (max-width: 760px) {
  .servicos-cab { display: none; }
  .servico-linha { grid-template-columns: 1fr 1fr; padding: 12px 0; border-bottom: 1px solid var(--linha); }
  .servico-linha .campo:first-child, .servico-linha .campo:last-child { grid-column: 1 / -1; }
  .servico-linha .so-leitor { position: static; width: auto; height: auto; clip: auto; font-weight: 700; font-size: .85rem; margin-bottom: 4px; }
}
.filtros-6 { grid-template-columns: 1.4fr 1.2fr 1.1fr 1fr .7fr auto; }
@media (max-width: 960px) { .filtros-6 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .filtros-6 { grid-template-columns: 1fr; } }

/* ===== Rodada 2: Minha conta ===== */
.embed-main { padding: 20px; }
.modo-embed .perfil-cab .acoes { display: none; }
.abas-rolagem { overflow-x: auto; scrollbar-width: thin; -webkit-overflow-scrolling: touch; }
.abas-rolagem a { white-space: nowrap; }
.conta-corpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.conta-corpo.com-previa { grid-template-columns: minmax(0, 1fr) minmax(380px, 42%); }
.conta-previa { position: sticky; top: 16px; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
.conta-previa-cab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--linha); background: var(--papel); }
.conta-previa iframe { display: block; width: 100%; height: calc(100vh - 90px); border: 0; }
.so-desktop { display: none; }
@media (min-width: 1200px) { .so-desktop { display: inline-flex; } }
.form-conta .form-acoes.barra-salvar { padding-top: 6px; }

.exemplo { background: var(--papel); border: 1px dashed #A9BEC3; border-radius: var(--raio-p); padding: 10px 14px; }
.exemplo summary { cursor: pointer; font-weight: 700; color: var(--teal); }
.exemplo p { margin: 10px 0; font-style: italic; color: var(--suave); }
.checks-linha { display: flex; flex-wrap: wrap; gap: 8px 22px; }
.form-grade-2 { grid-template-columns: 1fr 1fr; }

.campo-prefixo { display: flex; align-items: stretch; border: 1px solid #BFCED2; border-radius: var(--raio-p); overflow: hidden; background: var(--branco); }
.campo-prefixo > span { display: flex; align-items: center; padding: 0 10px; background: var(--papel); color: var(--suave); font-size: .9rem; white-space: nowrap; border-right: 1px solid #BFCED2; }
.campo-prefixo input { border: 0; border-radius: 0; min-width: 0; }
.link-perfil code, .link-gerado code { display: block; padding: 10px 12px; background: var(--papel); border-radius: var(--raio-p); font-size: .95rem; word-break: break-all; margin: 6px 0; }
.link-gerado { background: var(--coleira-fundo); border-radius: var(--raio-p); padding: 12px; margin-top: 10px; }
.link-gerado code { background: var(--branco); }
.qr-caixa { display: grid; place-items: center; padding: 10px; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); margin-bottom: 12px; }
.qr-caixa canvas { width: 200px; height: 200px; image-rendering: pixelated; }
.numeros-dentro { border: 0; margin: 0 0 10px; }
.numeros-dentro .numero { padding-left: 0; }
.numeros-dentro .numero small { display: block; font-size: .8rem; margin-top: 2px; }
.mini-grafico { margin: 6px 0 0; }
.mini-barras { display: flex; align-items: flex-end; gap: 3px; height: 70px; border-bottom: 1px solid var(--linha); }
.mini-barras span { flex: 1; background: var(--teal); border-radius: 2px 2px 0 0; opacity: .85; }
.mini-grafico figcaption { font-size: .82rem; margin-top: 6px; }

ol.formacoes { list-style: none; margin: 0; padding: 0; }
ol.formacoes > li { display: grid; grid-template-columns: 96px 1fr auto; gap: 14px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--linha); }
ol.formacoes > li:last-child { border-bottom: 0; }
.formacoes-publico > li { grid-template-columns: 80px 1fr; }
.formacao-ano { font-family: var(--fonte-titulo); font-weight: 800; color: var(--teal-escuro); padding-top: 14px; }
ol.formacoes .lista-corpo small { display: block; }

.selo-ok { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; font-weight: 700; color: #14593D; background: var(--ok-fundo); padding: 3px 9px 3px 6px; border-radius: 99px; white-space: nowrap; }
.selo-hoje { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 700; color: #fff; background: var(--ok); padding: 3px 10px; border-radius: 99px; white-space: nowrap; }
.selo-hoje::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #B8F0D2; }

.interruptor { display: inline-flex; align-items: center; gap: 10px; font: 700 .95rem var(--fonte-texto); background: none; border: 0; cursor: pointer; color: var(--tinta); padding: 6px 0; }
.interruptor[disabled] { opacity: .5; cursor: not-allowed; }
.interruptor-trilho { width: 46px; height: 26px; border-radius: 99px; background: #C5D2D5; position: relative; transition: background .15s; flex-shrink: 0; }
.interruptor-trilho span { position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.25); transition: transform .15s; }
.interruptor[aria-checked="true"] .interruptor-trilho { background: var(--ok); }
.interruptor[aria-checked="true"] .interruptor-trilho span { transform: translateX(20px); }
.disponibilidade-rapida { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 0; margin-bottom: 18px; }
.disp-bloco { display: flex; flex-direction: column; justify-content: space-between; gap: 10px; padding: 18px 22px; }
.disp-bloco + .disp-bloco { border-left: 1px solid var(--linha); }
.disp-bloco h2 { font-size: 1.05rem; margin-bottom: 4px; }
.disp-bloco p { margin: 0; font-size: .92rem; }
.disp-bloco input[type=date] { width: auto; padding: 7px 10px; }
.disp-painel { display: flex; gap: 14px; justify-content: space-between; align-items: center; flex-wrap: wrap; margin-bottom: 18px; padding: 14px 20px; }
.disp-painel.disp-on { border-color: #9FD6B8; background: var(--ok-fundo); }

.verificacao { border-left: 4px solid var(--linha); }
.verificacao-verificado { border-left-color: var(--ok); }
.verificacao-pendente { border-left-color: var(--coleira); }
.verificacao-recusado { border-left-color: var(--erro); }
.doc-acoes { flex-wrap: wrap; justify-content: flex-end; }
.doc-acoes select { width: auto; padding: 6px 8px; font-size: .85rem; }
.campo-imagem img { max-height: 70px; max-width: 160px; object-fit: contain; background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 4px; }
.pontos-escuros { padding-left: 18px; color: var(--suave); margin: 0; }
.pontos-escuros li { margin-bottom: 8px; }
.passos { padding-left: 20px; margin: 10px 0 0; color: var(--suave); }
.passos li { margin-bottom: 6px; }
.links-perfil { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.links-perfil a { display: inline-block; padding: 7px 12px; border: 1px solid var(--linha); border-radius: 99px; font-weight: 700; text-decoration: none; font-size: .9rem; }
.links-perfil a:hover { border-color: var(--teal); }
.recomendacao-item { align-items: flex-start !important; }

/* Assistente de boas-vindas */
.assistente { max-width: 760px; margin: 0 auto; }
.assistente h1 { font-size: 1.6rem; }
.assistente-passos { list-style: none; margin: 14px 0 18px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.assistente-passos li { display: flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 700; color: var(--suave); padding-top: 10px; border-top: 4px solid var(--linha); }
.assistente-passos li span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--linha); color: var(--tinta); font-size: .8rem; flex-shrink: 0; }
.assistente-passos li.atual { color: var(--tinta); border-top-color: var(--teal); }
.assistente-passos li.atual span { background: var(--teal); color: #fff; }
.assistente-passos li.feito { border-top-color: var(--teal); }
.assistente-passos li.feito span { background: var(--teal-fundo); color: var(--teal-escuro); }
.assistente-acoes { padding-top: 8px; }
.assistente-acoes .botao-link { margin-left: auto; }

/* Google e separador */
.btn-google { gap: 10px; }
.btn-bloco { display: flex; width: 100%; }
.separador { display: flex; align-items: center; gap: 12px; color: var(--suave); font-size: .88rem; margin: 16px 0; }
.separador::before, .separador::after { content: ''; flex: 1; border-top: 1px solid var(--linha); }

@media (max-width: 960px) {
  .conta-corpo.com-previa { grid-template-columns: 1fr; }
  .disponibilidade-rapida { grid-template-columns: 1fr; }
  .disp-bloco + .disp-bloco { border-left: 0; border-top: 1px solid var(--linha); }
}
@media (max-width: 760px) {
  .servico-linha, .servico-linha-3 { grid-template-columns: 1fr 1fr; }
  .servico-linha .campo:first-child, .servico-linha .campo:last-child { grid-column: 1 / -1; }
  .servico-linha-3 .campo:last-child { grid-column: auto; }
  ol.formacoes > li { grid-template-columns: 1fr; gap: 4px; }
  .formacao-ano { padding-top: 0; }
  .assistente-passos { grid-template-columns: repeat(4, 1fr); }
  .assistente-passos li { font-size: 0; gap: 0; justify-content: center; }
  .assistente-passos li span { font-size: .8rem; }
  /* Botão de salvar sempre à vista no celular */
  .form-conta .barra-salvar { position: sticky; bottom: 0; z-index: 30; background: var(--branco); margin: 0 -22px -22px; padding: 12px 22px; border-top: 1px solid var(--linha); box-shadow: 0 -6px 14px -10px rgba(0,0,0,.25); }
  .form-conta .barra-salvar .btn { flex: 1; }
  .doc-acoes { justify-content: flex-start; }
  .campo-prefixo { flex-direction: column; }
  .campo-prefixo > span { border-right: 0; border-bottom: 1px solid #BFCED2; padding: 6px 10px; }
  input, select, textarea { font-size: 16px; }
}
.form-conta:not(.painel) .barra-salvar { margin: 0; border-radius: var(--raio); border: 1px solid var(--linha); }

/* Rodada 3 */
.cidades-cab, .cidade-linha { grid-template-columns: 2fr .8fr 1fr 2fr; }
.galeria-edicao { list-style: none; margin: 0; padding: 0; display: grid; gap: 16px; }
.galeria-edicao li { display: grid; grid-template-columns: 160px 1fr; gap: 14px; align-items: start; padding-bottom: 16px; border-bottom: 1px solid var(--linha); }
.galeria-edicao li:last-child { border-bottom: 0; padding-bottom: 0; }
.galeria-edicao img { width: 160px; height: 110px; object-fit: cover; border-radius: var(--raio-p); }
.galeria-publica { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.galeria-publica figure { margin: 0; }
.galeria-publica button { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; border-radius: var(--raio-p); overflow: hidden; }
.galeria-publica img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .2s; }
.galeria-publica button:hover img { transform: scale(1.03); }
.galeria-publica figure:first-child { grid-column: span 2; grid-row: span 2; }
.galeria-publica figure:first-child img { aspect-ratio: auto; height: 100%; }
.galeria-publica figcaption { font-size: .82rem; color: var(--suave); margin-top: 4px; }
dialog.visualizador { border: 0; padding: 0; background: transparent; max-width: min(1000px, 94vw); }
dialog.visualizador::backdrop { background: rgba(10, 20, 24, .85); }
dialog.visualizador img { max-width: 100%; max-height: 82vh; border-radius: var(--raio-p); display: block; margin: 0 auto; }
dialog.visualizador p { color: #fff; text-align: center; margin: 10px 0 0; }
dialog.visualizador form { text-align: right; margin-bottom: 8px; }
dialog.visualizador button { background: #fff; border: 0; border-radius: var(--raio-p); padding: 8px 14px; font: 700 .9rem var(--fonte-texto); cursor: pointer; }
.zona-perigo { border-color: #EBC3BF; }
.zona-perigo h2 { color: var(--erro); }
@media (max-width: 760px) {
  .cidade-linha { grid-template-columns: 2fr 1fr; padding: 12px 0; border-bottom: 1px solid var(--linha); }
  .cidade-linha .campo:last-child { grid-column: 1 / -1; }
  .galeria-edicao li { grid-template-columns: 1fr; }
  .galeria-edicao img { width: 100%; height: auto; aspect-ratio: 4 / 3; }
  .galeria-publica figure:first-child { grid-column: span 2; grid-row: auto; }
}

/* ===== Painel do profissional ===== */
.pv-topo { display: flex; gap: 16px; justify-content: space-between; align-items: flex-end; flex-wrap: wrap; margin-bottom: 14px; }
.pv-ola h1 { margin: 0; }
.pv-ola p { margin: 2px 0 0; }
.pv-busca { display: flex; gap: 8px; flex: 0 1 380px; }
.pv-busca input { padding: 9px 12px; }
.pv-atalhos { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.pv-atalhos a { display: inline-flex; align-items: center; gap: 8px; padding: 9px 14px; background: var(--branco); border: 1px solid var(--linha); border-radius: 99px; font-weight: 700; font-size: .92rem; text-decoration: none; color: var(--tinta); }
.pv-atalhos a:hover { border-color: var(--teal); color: var(--teal-escuro); }
.pv-atalhos .ico { width: 18px; height: 18px; color: var(--teal); }
.aviso-perfil { margin-bottom: 18px; }
.pv-grade { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); gap: 18px; align-items: start; }
.pv-principal, .pv-lateral { display: grid; gap: 18px; align-content: start; }
.pv-bloco { margin: 0 !important; }
.contador-bloco { display: inline-grid; place-items: center; min-width: 24px; height: 24px; padding: 0 7px; border-radius: 99px; background: var(--coleira); color: var(--tinta); font-size: .8rem; vertical-align: 2px; }
.tudo-em-dia { margin: 0; padding: 12px 14px; border-radius: var(--raio-p); background: var(--ok-fundo); color: #14593D; font-weight: 700; }
.checklist { list-style: none; margin: 12px 0; padding: 0; display: grid; gap: 8px; }
.checklist li { display: flex; align-items: center; gap: 10px; }
.check-marca { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--linha); flex-shrink: 0; position: relative; }
.checklist li.feito .check-marca { background: var(--ok); border-color: var(--ok); }
.checklist li.feito .check-marca::after { content: ''; position: absolute; left: 5px; top: 2px; width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg); }
.checklist s { color: var(--suave); }
.pend-item { flex-wrap: wrap; }
.pend-item .lista-corpo small { display: block; }
.semana-faixa { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 6px; }
.semana-faixa a { display: grid; gap: 1px; justify-items: center; padding: 8px 2px; border: 1px solid var(--linha); border-radius: var(--raio-p); text-decoration: none; color: var(--tinta); }
.semana-faixa a.hoje { border-color: var(--teal); background: var(--teal-fundo); }
.semana-faixa b { font-family: var(--fonte-titulo); font-size: 1.15rem; line-height: 1.1; }
.semana-faixa small { font-size: .75rem; color: var(--suave); }
.semana-faixa span { font-size: .75rem; color: var(--suave); }
.semana-faixa span.tem { background: var(--coleira-fundo); color: #7A4F05; font-weight: 700; padding: 0 7px; border-radius: 99px; }
.linha-dia { list-style: none; margin: 14px 0 0; padding: 0; }
.linha-dia li { display: grid; grid-template-columns: 56px 1fr auto; gap: 12px; align-items: center; padding: 12px 0 12px 12px; border-bottom: 1px solid var(--linha); border-left: 3px solid var(--teal); }
.linha-dia li:last-child { border-bottom: 0; }
.linha-dia li.st-concluido { border-left-color: var(--ok); opacity: .7; }
.linha-dia li.st-faltou { border-left-color: var(--erro); opacity: .7; }
.linha-dia li.atrasado { border-left-color: var(--coleira); }
.linha-dia time, .hora-forte { font-family: var(--fonte-titulo); font-weight: 800; font-size: 1.05rem; }
.linha-dia .lista-corpo small { display: inline; }
.enviado { display: block; color: var(--ok) !important; font-weight: 700; font-size: .78rem; }
.lembretes { display: grid; gap: 14px; }
.lembretes h3 { font-size: .95rem; margin: 0 0 4px; color: var(--teal-escuro); }
.lista-compacta > li { padding: 9px 0; }
.lista-compacta .lista-corpo small { display: block; }
.metricas { display: grid; gap: 10px; margin: 0 0 6px; }
.metricas > div { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; border-bottom: 1px dashed var(--linha); padding-bottom: 6px; }
.metricas dt { color: var(--suave); font-size: .92rem; }
.metricas dd { margin: 0; display: flex; gap: 8px; align-items: baseline; }
.metricas dd b { font-family: var(--fonte-titulo); font-size: 1.25rem; }
.metricas small.sobe { color: var(--ok); font-weight: 700; }
.metricas small.cai { color: var(--erro); font-weight: 700; }
.metricas-2 { grid-template-columns: 1fr 1fr; }
.metricas-2 > div { flex-direction: column; align-items: flex-start; gap: 2px; border-bottom: 0; }
.reputacao { display: grid; gap: 4px; margin: 12px 0 0; padding: 10px 12px; border-radius: var(--raio-p); background: var(--teal-fundo); color: var(--teal-escuro); font-size: .92rem; }
.reputacao-linha { display: flex; flex-wrap: wrap; gap: 4px 14px; margin: 6px 0 0; color: var(--teal-escuro); font-size: .9rem; }
.reputacao-linha span { white-space: nowrap; }
small.reputacao-linha { margin: 0; font-size: .82rem; }
.uso-plano { margin-top: 12px; }
.uso-plano > div:first-child { display: flex; justify-content: space-between; font-size: .9rem; margin-bottom: 4px; }
.uso-alto .barra span { background: var(--erro); }
.uso-plano small { display: block; margin-top: 4px; color: var(--erro); }
.meta-numero { font-size: 1rem; margin: 6px 0 8px; }
.meta-numero b { font-family: var(--fonte-titulo); font-size: 1.6rem; }
.personalizar { margin-top: 18px; }
.personalizar summary { cursor: pointer; }
@media (max-width: 960px) {
  .pv-grade { grid-template-columns: 1fr; }
  .pv-busca { flex: 1 1 100%; }
}
@media (max-width: 640px) {
  .pv-atalhos { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 4px; margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }
  .pv-atalhos a { white-space: nowrap; }
  .linha-dia li { grid-template-columns: 52px 1fr; }
  .linha-dia li > form { grid-column: 1 / -1; }
  .semana-faixa { gap: 3px; }
  .metricas-2 { grid-template-columns: 1fr 1fr; }
}

/* Carrossel da Vitrine no painel */
.carrossel { position: relative; background: linear-gradient(120deg, var(--teal-escuro), var(--teal)); color: #fff; border-radius: 14px; padding: 14px; margin: 0 0 18px; overflow: hidden; }
.carrossel .slide { display: grid; grid-template-columns: 260px 1fr; gap: 18px; align-items: center; min-height: 170px; }
.carrossel .slide[hidden] { display: none; }
.carrossel .slide-sem-imagem { grid-template-columns: 1fr; padding: 4px 6px; }
.carrossel .slide-imagem { display: block; height: 170px; border-radius: 10px; overflow: hidden; background: rgba(255,255,255,.1); }
.carrossel .slide-imagem { background: #fff; }
.carrossel .slide-imagem img { width: 100%; height: 100%; object-fit: contain; display: block; }
.carrossel .slide-texto { min-width: 0; padding-right: 90px; }
.carrossel .slide-meta { margin: 0 0 4px; font-size: .85rem; color: rgba(255,255,255,.8); display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.carrossel .patrocinado { background: var(--coleira); color: var(--tinta); font-weight: 700; font-size: .75rem; letter-spacing: .03em; text-transform: uppercase; border-radius: 99px; padding: 1px 9px; }
.carrossel h2 { color: #fff; margin: 0 0 4px; font-size: 1.35rem; line-height: 1.2; }
.carrossel .slide-desc { margin: 0 0 10px; color: rgba(255,255,255,.88); }
.carrossel .slide-pe { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; }
.carrossel .slide-pe .valor { font-weight: 700; color: #fff; }
.carrossel-controles { display: flex; gap: 8px; align-items: center; justify-content: flex-end; margin-top: 10px; }
.carrossel-seta, .carrossel-pausa { background: rgba(255,255,255,.14); color: #fff; border: 0; border-radius: 99px; cursor: pointer; font: inherit; }
.carrossel-seta { width: 32px; height: 32px; font-size: 1.3rem; line-height: 1; }
.carrossel-pausa { padding: 5px 12px; font-size: .85rem; }
.carrossel-seta:hover, .carrossel-pausa:hover { background: rgba(255,255,255,.26); }
.carrossel-pontos { display: flex; gap: 6px; }
.carrossel-pontos button { width: 9px; height: 9px; padding: 0; border: 0; border-radius: 99px; background: rgba(255,255,255,.4); cursor: pointer; transition: width .2s; }
.carrossel-pontos button[aria-selected="true"] { width: 22px; background: var(--coleira); }
.carrossel-todos { position: absolute; top: 14px; right: 16px; color: #fff; font-size: .85rem; font-weight: 700; }
.carrossel :focus-visible { outline: 3px solid var(--coleira); outline-offset: 2px; }
@media (max-width: 700px) {
  .carrossel .slide { grid-template-columns: 1fr; gap: 10px; min-height: 0; }
  .carrossel .slide-imagem { height: 150px; }
  .carrossel .slide-texto { padding-right: 0; }
  .carrossel-todos { position: static; display: inline-block; margin-top: 8px; }
  .carrossel-controles { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) { .carrossel-pontos button { transition: none; } }

/* ===== Mercado da Vitrine: produtos, ofertas, lojas e campanhas ===== */
.miniatura { width: 52px; height: 52px; object-fit: cover; border-radius: var(--raio-p); border: 1px solid var(--linha); background: #fff; flex-shrink: 0; }
.campo .miniatura { width: 96px; height: 96px; margin-bottom: 6px; }
.form-linha { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.form-linha input[type="search"], .form-linha input[type="text"] { flex: 1; min-width: 160px; }
.check-destaque { background: var(--teal-fundo); border-radius: var(--raio); padding: 12px 14px; }
.btn-whats { background: #1F7A55; border-color: #1F7A55; color: #fff; }
.btn-whats:hover { background: #17603F; color: #fff; }
.migalha { font-size: .9rem; color: var(--suave); margin: 0 0 12px; }
.migalha a { color: var(--suave); }
.abas-sub { margin-top: -8px; }
.abas-sub a { font-size: .9rem; padding: 8px 12px; }
.checks-ufs { grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); }
.selo-autorizado { display: inline-flex; align-items: center; gap: 4px; font-size: .75rem; font-weight: 700; color: #14593D; background: var(--ok-fundo); border-radius: 99px; padding: 2px 9px; white-space: nowrap; }
.selo-autorizado::before { content: '✓'; }
.selo-campanha { display: inline-block; font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; border-radius: 99px; padding: 2px 9px; background: var(--coleira); color: var(--tinta); }
.selo-promocao { background: #B4372F; color: #fff; }
.selo-novidade { background: var(--teal); color: #fff; }
.slide-pago { font-size: .75rem; color: rgba(255,255,255,.75); }

.filtros-vitrine { grid-template-columns: 2fr 1.1fr 1fr 1.1fr .8fr auto; }
.filtros-onde { grid-template-columns: 1.4fr 1fr 1.2fr auto; box-shadow: none; padding: 0 0 14px; border: 0; border-bottom: 1px solid var(--linha); border-radius: 0; }
.filtros-extra { grid-column: 1 / -1; display: flex; gap: 8px 22px; flex-wrap: wrap; align-items: center; }
.campo-inline { flex-direction: row; align-items: center; gap: 8px; margin-left: auto; }
.campo-inline select { width: auto; }

.cartoes-produtos { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.cartao-produto { padding: 14px; gap: 6px; }
.cartao-produto h3 { font-size: 1.02rem; line-height: 1.25; }
.cartao-produto-foto { display: block; aspect-ratio: 4 / 3; margin: -14px -14px 6px; background: #fff; border-bottom: 1px solid var(--linha); border-radius: var(--raio) var(--raio) 0 0; overflow: hidden; }
.cartao-produto-foto img { width: 100%; height: 100%; object-fit: contain; display: block; }
.produto-sem-foto { display: grid; place-items: center; width: 100%; height: 100%; color: #B5C6CA; background: var(--papel); }
.produto-sem-foto .ico { width: 44px; height: 44px; }
.cartao-produto .cartao-pe { align-items: baseline; gap: 8px; }
.cartao-produto .valor { font-size: 1.05rem; }

.produto-topo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 28px; margin-bottom: 18px; align-items: start; }
.produto-fotos { background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; }
.produto-foto-principal { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: contain; border-radius: var(--raio-p); }
.produto-miniaturas { display: flex; gap: 8px; margin-top: 10px; }
.produto-miniaturas button { padding: 0; border: 2px solid transparent; border-radius: var(--raio-p); background: none; cursor: pointer; }
.produto-miniaturas button[aria-current="true"] { border-color: var(--teal); }
.produto-miniaturas img { width: 64px; height: 64px; object-fit: contain; display: block; }
.produto-info h1 { margin: 6px 0 2px; }
.produto-preco { margin: 10px 0 12px; }
.produto-preco .valor { font-size: 1.6rem; color: var(--teal-escuro); }

.ofertas { list-style: none; margin: 0; padding: 0; }
.oferta { display: grid; grid-template-columns: minmax(200px, 1.3fr) minmax(0, 1.6fr) auto auto; gap: 16px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--linha); }
.oferta:last-child { border-bottom: 0; }
.oferta-destaque { background: linear-gradient(90deg, var(--coleira-fundo), transparent 60%); box-shadow: inset 4px 0 0 var(--coleira); padding-left: 12px; border-radius: var(--raio-p); }
.oferta-loja { display: flex; gap: 10px; align-items: flex-start; }
.oferta-loja small { display: block; color: var(--suave); }
.oferta-selos { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.oferta-detalhes { display: flex; flex-direction: column; gap: 2px; }
.oferta-detalhes small { line-height: 1.35; }
.oferta-preco { text-align: right; white-space: nowrap; }
.oferta-preco small { display: block; }
.oferta-acoes { display: flex; flex-direction: column; gap: 6px; align-items: stretch; min-width: 130px; }
.oferta-denuncia summary { font-size: .85rem; color: var(--suave); cursor: pointer; text-align: center; }
.oferta-denuncia form { margin-top: 8px; min-width: 220px; }

.campanha-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 0; background: linear-gradient(120deg, var(--teal-escuro), var(--teal)); color: #fff; border-radius: 14px; overflow: hidden; margin-bottom: 20px; }
.campanha-hero img { width: 100%; height: 100%; min-height: 220px; object-fit: cover; display: block; }
.campanha-hero > div { padding: 22px 24px; }
.campanha-hero-sem-imagem { grid-template-columns: 1fr; }
.campanha-hero h2 { color: #fff; margin: 8px 0 6px; font-size: 1.5rem; }
.campanha-hero .cartao-meta { color: rgba(255,255,255,.85); }
.campanha-hero .texto-longo { color: rgba(255,255,255,.92); }
.campanha-condicao { display: inline-block; background: var(--coleira-fundo); color: #6B4504; font-weight: 700; border-radius: var(--raio-p); padding: 8px 12px; margin: 4px 0 12px; }
.campanhas-lista { display: grid; gap: 16px; }
.campanha-cartao { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 18px; background: #fff; border: 1px solid var(--linha); border-radius: var(--raio); padding: 14px; align-items: start; }
.campanha-cartao img { width: 100%; height: 190px; object-fit: cover; border-radius: var(--raio-p); display: block; }
.campanha-cartao h2 { margin: 6px 0; font-size: 1.25rem; }
.confirmar-precos { display: flex; gap: 16px; justify-content: space-between; align-items: center; flex-wrap: wrap; }
.confirmar-precos .fraco { display: block; }

@media (max-width: 960px) {
  .filtros-vitrine { grid-template-columns: 1fr 1fr; }
  .filtros-vitrine .campo:first-child { grid-column: 1 / -1; }
  .produto-topo, .campanha-hero { grid-template-columns: 1fr; }
  .oferta { grid-template-columns: 1fr auto; }
  .oferta-detalhes { grid-column: 1 / -1; grid-row: 2; }
  .oferta-acoes { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
  .oferta-acoes .btn { flex: 1; }
  .oferta-denuncia { flex-basis: 100%; }
  .oferta-denuncia summary { text-align: left; }
  .oferta-denuncia form { min-width: 0; }
  .campanha-cartao { grid-template-columns: 1fr; }
  .campo-inline { margin-left: 0; }
}
@media (max-width: 560px) {
  .filtros-vitrine, .filtros-onde { grid-template-columns: 1fr; }
  .cartoes-produtos { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .cartao-produto h3 { font-size: .95rem; }
}

/* Formulários estreitos: campo de arquivo e linhas não estouram a tela do celular */
.form input[type="file"] { max-width: 100%; min-width: 0; }
.form .perfil-linha { flex-wrap: wrap; }
.form .perfil-linha > .campo { min-width: 0; flex: 1 1 200px; }
.form-grade > * { min-width: 0; }
.assistente-acoes { flex-wrap: wrap; }

/* ---------- Disponibilidade e Agenda ---------- */
.texto-ok { color: var(--ok); }
.link-perigo { color: var(--erro); font-weight: 700; cursor: pointer; }
.apagado { opacity: .6; }
.dica { background: var(--coleira-fundo); border-radius: var(--raio-p); padding: 10px 12px; }
.so-imprimir { display: none; }
.semana-nav { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 4px 0 14px; }
.semana-nav strong { font-family: var(--fonte-titulo); font-size: 1.1rem; }
.legenda { margin-left: auto; display: flex; gap: 6px 12px; align-items: center; flex-wrap: wrap; font-size: .85rem; color: var(--suave); }
.ponto { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 4px; vertical-align: -1px; }
.ponto-livre { background: var(--ok-fundo); border: 1px solid var(--ok); }
.ponto-reservado { background: var(--teal); }
.ponto-pedido { background: var(--coleira); }
.ponto-agenda { background: #C9D5D9; }
.calendario-semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.cal-dia { background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 8px; display: flex; flex-direction: column; gap: 6px; min-height: 150px; min-width: 0; }
.cal-dia header { display: flex; flex-direction: column; gap: 2px; border-bottom: 1px solid var(--linha); padding-bottom: 6px; }
.cal-dia header a { color: var(--tinta); text-decoration: none; }
.cal-dia header b { text-transform: capitalize; }
.cal-hoje { border-color: var(--teal); box-shadow: inset 0 0 0 1px var(--teal); }
.cal-passado { opacity: .55; }
.cal-fechado { background: repeating-linear-gradient(45deg, var(--papel), var(--papel) 8px, var(--branco) 8px, var(--branco) 16px); }
.cal-feriado { color: #8A5A00; font-weight: 700; font-size: .75rem; }
.cal-aviso { margin: 0; font-size: .82rem; font-weight: 700; color: var(--erro); }
.cal-vazio { margin: 0; font-size: .85rem; }
.cal-itens { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cal-item { border-radius: var(--raio-p); padding: 6px 8px; font-size: .82rem; line-height: 1.3; display: flex; flex-direction: column; gap: 1px; overflow-wrap: anywhere; }
.cal-item a { color: inherit; text-decoration: none; display: flex; flex-direction: column; gap: 1px; }
.cal-item small { opacity: .85; }
.cal-livre { background: var(--ok-fundo); border-left: 3px solid var(--ok); }
.cal-sem-vaga { background: var(--papel); border-left-color: var(--suave); }
.cal-reservado { background: var(--teal); color: #fff; }
.cal-pedido { background: var(--coleira-fundo); border-left: 3px solid var(--coleira); }
.cal-agenda { background: #E6ECEE; border-left: 3px solid #9FB2B8; }
.cal-acao { margin-top: 2px; }
.cal-acao .botao-link { font-size: .78rem; }
.cal-mais { margin-top: auto; font-size: .82rem; }
.cal-mais summary { cursor: pointer; color: var(--suave); }
.cal-mais .form { gap: 8px; margin-top: 6px; }
.copiar-semana { align-items: center; flex-wrap: wrap; }
.feriados .lista li { gap: 10px; }
.dias-semana { display: flex; flex-wrap: wrap; gap: 8px; }
.dias-semana .check { border: 1.5px solid var(--linha); border-radius: 99px; padding: 6px 12px; text-transform: capitalize; }
.dias-semana .check:has(input:checked) { border-color: var(--teal); background: var(--teal-fundo); }
.rota { list-style: none; margin: 0; padding: 0; }
.rota-parada { padding: 10px 0 10px 18px; border-left: 3px solid var(--teal); display: flex; flex-direction: column; gap: 2px; }
.rota-trecho { padding: 4px 0 4px 18px; border-left: 3px dashed var(--linha); font-size: .85rem; color: var(--suave); }
.rota-aperto { color: var(--erro); font-weight: 700; border-left-color: var(--erro); }
.barras { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.barras li { display: grid; grid-template-columns: 40px 1fr 44px; gap: 8px; align-items: center; }
.barras-rot { text-transform: capitalize; font-weight: 700; }
.barras-trilho { display: block; height: 14px; width: var(--larg, 100%); background: var(--teal-fundo); border-radius: 99px; overflow: hidden; }
.barras-cheio { display: block; height: 100%; background: var(--teal); }
.barras-num { text-align: right; font-weight: 700; }
/* Agenda pública */
.filtros-agenda { grid-template-columns: 2fr 1.4fr 1.2fr .8fr auto; }
.filtros-mais { grid-column: 1 / -1; }
.filtros-mais summary { cursor: pointer; font-weight: 700; color: var(--teal); }
.filtros-mais > .filtros-extra { margin-top: 10px; }
.agenda-lista { display: flex; flex-direction: column; gap: 10px; }
.agenda-item { display: grid; grid-template-columns: minmax(200px, 1.1fr) minmax(220px, 1.3fr) 1.6fr; gap: 14px; align-items: start; margin: 0; }
.agenda-hoje { border-color: var(--ok); box-shadow: inset 4px 0 0 var(--ok); }
.agenda-quem { display: flex; gap: 10px; align-items: flex-start; }
.agenda-quem > div, .agenda-o-que { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.agenda-quem small, .agenda-o-que small { color: var(--suave); }
.agenda-datas { display: flex; flex-wrap: wrap; gap: 6px; align-items: flex-start; }
.agenda-acoes { display: flex; gap: 12px; align-items: center; width: 100%; margin-top: 4px; }
.data-chip { display: inline-flex; flex-direction: column; gap: 1px; border: 1.5px solid var(--linha); border-radius: var(--raio-p); padding: 6px 10px; background: var(--branco); color: var(--tinta); text-decoration: none; min-width: 84px; }
.data-chip b { text-transform: capitalize; font-size: .92rem; }
.data-chip small { font-size: .76rem; color: var(--ok); }
a.data-chip:hover { border-color: var(--teal); }
.data-chip-ativa { border-color: var(--teal); background: var(--teal-fundo); box-shadow: inset 0 0 0 1px var(--teal); }
.data-chip-p { padding: 4px 8px; min-width: 0; }
.datas-mini { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.escolha-datas { display: flex; flex-wrap: wrap; gap: 8px; }
.escolha-horarios { grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); }
.escolha-horarios label { text-align: center; padding: 10px 6px; }
.check-p { font-size: .88rem; }
.comparar-barra { position: sticky; bottom: 12px; display: flex; gap: 12px; align-items: center; justify-content: space-between; background: var(--tinta); color: #fff; border-radius: var(--raio); padding: 10px 14px; box-shadow: 0 10px 30px -10px rgba(0,0,0,.4); }
.comparar-barra[hidden] { display: none; }
.tabela-comparar th[scope="row"] { color: var(--suave); font-weight: 700; white-space: nowrap; }
.tabela-comparar td, .tabela-comparar th { vertical-align: top; }
.repetir { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; background: var(--papel); border-radius: var(--raio-p); padding: 10px 12px; }
.repetir select { width: auto; }
.checks-pacientes { display: grid; gap: 6px; max-height: 280px; overflow: auto; border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 8px; }
.checks-pacientes input[type="search"] { margin-bottom: 4px; }
.paciente-linha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 8px; align-items: center; }
.reserva-acoes { margin-top: 12px; }
.form-linha-quebra { flex-wrap: wrap; }
.form-linha-quebra > * { flex: 1 1 140px; }
.form-linha-quebra > .btn { flex: 0 0 auto; }
@media (max-width: 1100px) {
  .calendario-semana { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .agenda-item { grid-template-columns: 1fr 1fr; }
  .agenda-datas { grid-column: 1 / -1; }
}
@media (max-width: 700px) {
  .calendario-semana { grid-template-columns: 1fr; }
  .cal-dia { min-height: 0; }
  .agenda-item { grid-template-columns: 1fr; }
  .filtros-agenda { grid-template-columns: 1fr 1fr; }
  .filtros-agenda .campo:first-child { grid-column: 1 / -1; }
  .legenda { margin-left: 0; }
  .paciente-linha { grid-template-columns: 1fr; }
}
@media print {
  .so-imprimir { display: block !important; }
  .calendario-clinica { grid-template-columns: repeat(5, 1fr); }
  .cal-reservado { background: #fff; color: #000; border: 1px solid #000; }
}
.cal-reservado small, .cal-reservado span, .cal-reservado strong { color: #fff; }
.cal-item { hyphens: auto; }
.copiar-semana select { width: auto; flex: 0 0 auto; }
.copiar-semana > span { flex: 1 1 260px; }
[data-form-disp] .form-grade { align-items: start; }
@media (max-width: 700px) { .calendario-semana .cal-passado { display: none; } }

/* =====================================================
   Pacientes e prontuário (atualização 10)
   ===================================================== */
.mb { margin-bottom: 18px; }
.inline { display: inline; }
.texto-pre { white-space: pre-line; margin: 0; }
.destaque-claro { background: var(--coleira-fundo); border-color: #F0D9A6; }
.form-linha .campo { margin: 0; }

/* Cores dos tipos de registro */
.tile-azul, .chip-azul, .linha-azul { --cor: #2F6FB5; --cor-fundo: #E5EEF8; }
.tile-ocre, .chip-ocre, .linha-ocre { --cor: #A26F0B; --cor-fundo: #FBF0D9; }
.tile-roxo, .chip-roxo, .linha-roxo { --cor: #6A4BA8; --cor-fundo: #EEE8F7; }
.tile-verde, .chip-verde, .linha-verde { --cor: #1F7A55; --cor-fundo: #E2F3EA; }
.tile-vermelho, .chip-vermelho, .linha-vermelho { --cor: #B4372F; --cor-fundo: #FBE7E5; }
.tile-petroleo, .chip-petroleo, .linha-petroleo { --cor: #0E5E6F; --cor-fundo: #E3EFF1; }
.tile-laranja, .chip-laranja, .linha-laranja { --cor: #C2571A; --cor-fundo: #FCEBDF; }
.tile-lilas, .chip-lilas, .linha-lilas { --cor: #9A4A93; --cor-fundo: #F6E7F4; }
.tile-cinza, .chip-cinza, .linha-cinza { --cor: #56696F; --cor-fundo: #EDF1F2; }
.tile-vinho, .chip-vinho, .linha-vinho { --cor: #8A2346; --cor-fundo: #F7E4EA; }

/* Cabeçalho da ficha */
.ficha-cab { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 0; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); margin-bottom: 14px; overflow: hidden; }
.ficha-tutor { padding: 16px 18px; display: flex; flex-direction: column; gap: 3px; background: var(--papel); border-right: 1px solid var(--linha); min-width: 0; overflow-wrap: anywhere; }
.ficha-tutor strong { font-size: 1.05rem; }
.ficha-pet { padding: 14px 18px; display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.ficha-pet > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ficha-pet h1 { margin: 0; font-size: 1.7rem; line-height: 1.1; }
.ficha-pet h1 small { font-size: .95rem; font-weight: 400; }
.pet-foto { width: 72px; height: 72px; border-radius: 18px; object-fit: cover; flex-shrink: 0; display: block; }
.pet-foto-g, .pet-icone.pet-foto-g { width: 84px; height: 84px; border-radius: 20px; font-size: 2rem; }
.lista .pet-foto, .lista .pet-icone { width: 44px; height: 44px; border-radius: 12px; font-size: 1.1rem; }
.alertas-pet { display: flex; flex-wrap: wrap; gap: 6px 18px; background: var(--erro-fundo); border: 1px solid #EBC3BF; color: #8D2821; border-radius: var(--raio); padding: 10px 16px; margin-bottom: 14px; font-size: .95rem; }
.alertas-pet span { overflow-wrap: anywhere; }
.marcacoes { margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }

/* Botões coloridos de adicionar */
.adicionar { display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 8px; margin-bottom: 18px; }
.tile { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 48px; padding: 8px 10px; border-radius: var(--raio-p); background: var(--cor-fundo, var(--teal-fundo)); color: var(--cor, var(--teal-escuro)); font-weight: 700; font-size: .92rem; text-decoration: none; border: 1px solid transparent; border-left: 4px solid var(--cor, var(--teal)); line-height: 1.2; }
.tile:hover, .tile:focus-visible { border-color: var(--cor); background: var(--branco); }
.form-rapido { border-left: 4px solid var(--coleira); }

/* Chips de filtro */
.chips-filtro, .linha-tipos { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 12px; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border-radius: 99px; border: 1px solid var(--linha); background: var(--branco); color: var(--tinta); font-size: .86rem; font-weight: 700; text-decoration: none; cursor: pointer; white-space: nowrap; }
.chip:hover { border-color: var(--teal); }
.chip-ativo, a.chip[aria-current] { background: var(--teal); border-color: var(--teal); color: #fff; }
label.chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
label.chip::before { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--cor, var(--teal)); }
label.chip:has(input:checked) { background: var(--cor-fundo); border-color: var(--cor); color: var(--cor); }
label.chip:has(input:focus-visible) { outline: 2px solid var(--teal); outline-offset: 2px; }
.chips-escolha { display: flex; flex-wrap: wrap; gap: 8px; }
.chip-escolha { position: relative; }
.chip-escolha input { position: absolute; opacity: 0; inset: 0; }
.chip-escolha span { display: inline-block; padding: 8px 14px; border: 1px solid var(--linha); border-radius: 99px; background: var(--branco); font-weight: 700; font-size: .92rem; cursor: pointer; }
.chip-escolha input:checked + span { background: var(--teal); border-color: var(--teal); color: #fff; }
.chip-escolha input:focus-visible + span { outline: 2px solid var(--teal); outline-offset: 2px; }
.filtros-pacientes { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; }
.filtros-2 { grid-template-columns: minmax(0, 1fr) auto; }

/* Linha do tempo */
.linha-filtros { margin-bottom: 14px; }
.linha-filtros .form-linha input[type="date"] { width: auto; }
.cronologia { list-style: none; margin: 0; padding: 0; position: relative; }
.cronologia::before { content: ''; position: absolute; left: 62px; top: 0; bottom: 0; width: 2px; background: var(--linha); }
.linha-ano { font-family: var(--fonte-titulo); font-weight: 800; color: var(--suave); padding: 10px 0 6px; position: relative; background: var(--branco); width: 56px; }
.linha-item { display: grid; grid-template-columns: 52px 22px minmax(0, 1fr) auto; align-items: start; gap: 0 8px; padding: 8px 0; position: relative; }
.linha-item::before { content: ''; grid-column: 2; grid-row: 1; justify-self: center; width: 12px; height: 12px; margin-top: 5px; border-radius: 50%; background: var(--cor); box-shadow: 0 0 0 3px var(--branco); position: relative; z-index: 1; left: 1px; }
.linha-data { grid-column: 1; grid-row: 1; text-align: right; font-weight: 700; font-size: .9rem; line-height: 1.2; }
.linha-data small { display: block; color: var(--suave); font-weight: 400; font-size: .78rem; }
.linha-corpo { grid-column: 3; min-width: 0; display: flex; flex-direction: column; gap: 2px; border-left: 3px solid var(--cor-fundo); padding-left: 10px; }
.linha-corpo strong { color: var(--cor); }
.linha-corpo a { text-decoration: none; }
.linha-corpo small { color: var(--suave); overflow-wrap: anywhere; }
.linha-autor { grid-column: 4; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; font-size: .72rem; font-weight: 800; background: var(--teal-fundo); color: var(--teal-escuro); }
.linha-autor-outro { background: var(--coleira-fundo); color: #7A4F05; }

/* Abas que são botões (formulários) */
.abas-rolagem { overflow-x: auto; scrollbar-width: thin; }
.abas-rolagem a { white-space: nowrap; }
.abas-form button { padding: 10px 16px; font: 700 1rem var(--fonte-texto); color: var(--suave); background: none; border: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; cursor: pointer; white-space: nowrap; }
.abas-form button[aria-selected="true"] { color: var(--teal-escuro); border-color: var(--teal); }
.abas-form { overflow-x: auto; }

/* Linhas repetidas: contatos, prescrição, itens */
.contatos, .item-linha + .item-linha { display: grid; gap: 8px; }
.contato-linha { display: grid; grid-template-columns: 130px minmax(0, 1.3fr) minmax(0, 1fr) auto auto auto; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px dashed var(--linha); }
.contato-linha .check { margin: 0; white-space: nowrap; }
.item-linha { display: grid; grid-template-columns: minmax(0, 1fr) 70px 110px auto; gap: 8px; align-items: center; margin-bottom: 8px; }
.venda-total { font-size: 1.2rem; text-align: right; margin: 8px 0 14px; }
.venda-total strong { font-family: var(--fonte-titulo); font-size: 1.6rem; }
.prescricao { border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 16px 16px; }
.prescricao legend { padding: 0 6px; font-weight: 700; }
.presc-linha { border: 1px solid var(--linha); border-left: 4px solid var(--cor, #9A4A93); border-radius: var(--raio-p); padding: 12px; margin-bottom: 10px; background: var(--papel); }
.presc-grade { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1.4fr) minmax(0, 1.2fr) minmax(0, 1fr); gap: 0 10px; }
.presc-grade .campo { margin-bottom: 8px; }
.presc-pe { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; }
.presc-pe .check { margin: 0; }
.calc-dose { flex-basis: 100%; }
.calc-dose-corpo { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) auto; gap: 8px 10px; align-items: end; margin-top: 8px; padding: 10px; background: var(--branco); border: 1px dashed var(--linha); border-radius: var(--raio-p); }
.calc-dose-corpo .campo { margin: 0; }
.calc-dose-corpo .calc-resultado, .calc-dose-corpo small { grid-column: 1 / -1; margin: 0; }
.calc-resultado { font-weight: 700; color: var(--teal-escuro); min-height: 1.2em; }
.calc-resultado strong { font-size: 1.1em; }

/* Atendimento */
.exame-rapido { border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 16px 6px; }
.exame-rapido legend { padding: 0 6px; font-weight: 700; }
.exame-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 0 10px; }
.nota-privada textarea { background: #FFFBEF; border-style: dashed; }
.botao-voz { align-self: flex-start; width: auto; margin-top: 4px; font: 700 .82rem var(--fonte-texto); padding: 4px 12px; border-radius: 99px; border: 1px solid var(--linha); background: var(--branco); color: var(--teal-escuro); cursor: pointer; }
.botao-voz::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--teal); margin-right: 6px; vertical-align: 1px; }
.botao-voz.gravando { background: var(--erro-fundo); color: var(--erro); border-color: var(--erro); }
.botao-voz.gravando::before { background: var(--erro); animation: pisca 1s infinite; }
@keyframes pisca { 50% { opacity: .2; } }

/* Arquivos */
.galeria-anexos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.anexo-item { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.anexo { display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: var(--tinta); }
.anexo img, .anexo span { aspect-ratio: 4 / 3; width: 100%; object-fit: cover; border-radius: var(--raio-p); border: 1px solid var(--linha); background: var(--teal-fundo); display: grid; place-items: center; font-weight: 800; color: var(--teal-escuro); }
.anexo-video span { background: #1D2B30; color: #fff; }
.anexo-pdf span { background: var(--erro-fundo); color: var(--erro); }
.anexo small { color: var(--suave); font-size: .8rem; overflow-wrap: anywhere; }
.anexo-excluir { margin: 0; }
.anexos-mini { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.anexos-mini a { font-size: .85rem; }
.anexos-mini img { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; border: 1px solid var(--linha); display: block; }

/* Gráficos */
.grafico { width: 100%; height: auto; max-width: 640px; display: block; }
.grafico-ref { fill: var(--ok-fundo); }
.grafico-grade { stroke: var(--linha); stroke-dasharray: 3 3; }
.grafico-txt { font: 11px var(--fonte-texto); fill: var(--suave); }
.grafico-linha { fill: none; stroke: var(--teal); stroke-width: 2.5; stroke-linejoin: round; }
.grafico-ponto { fill: var(--branco); stroke: var(--teal); stroke-width: 2.5; }
.grafico-fora { stroke: var(--erro); fill: var(--erro-fundo); }
.barras-h { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.barras-h li { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 2fr) 36px; gap: 10px; align-items: center; font-size: .92rem; }
.barras-h li > span:first-child { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.barras-h b { text-align: right; }

/* Exames */
.tabela-lab td, .tabela-lab th { white-space: nowrap; }
.tabela-lab .grafico { width: 160px; min-width: 160px; }
.lab-fora { color: var(--erro); font-weight: 700; }
.lab-fora::after { content: ' !'; }
.lab-grupo { background: var(--papel); color: var(--teal-escuro) !important; text-transform: uppercase; letter-spacing: .04em; font-size: .78rem !important; }
.tabela-lancar input { width: 100%; min-width: 70px; padding: 6px 8px; }
.tabela-lancar td { padding: 6px 8px; }

/* Internação: mapa de medicação */
.mapa-med { border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 10px 12px; margin-bottom: 10px; }
.mapa-med-cab { margin-bottom: 8px; overflow-wrap: anywhere; }
.mapa-horas { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; }
.mapa-hora { flex: 0 0 auto; min-width: 104px; display: flex; flex-direction: column; gap: 4px; padding: 6px 8px; border-radius: var(--raio-p); border: 1px solid var(--linha); background: var(--branco); font-size: .85rem; margin: 0; }
.mapa-h { font-weight: 700; }
.mapa-botoes { display: flex; gap: 4px; }
.mapa-botoes .btn { padding: 4px 8px; min-height: 0; }
.mapa-dado { background: var(--ok-fundo); border-color: #B8DFC9; color: #14593D; }
.mapa-nao_dado { background: var(--erro-fundo); border-color: #EBC3BF; color: #8D2821; }
.mapa-atrasado { border-color: var(--coleira); background: var(--coleira-fundo); }
.mapa-futuro { opacity: .85; }

/* Mapa do corpo */
.corpo-mapa { position: relative; max-width: 620px; margin: 0 auto; cursor: crosshair; user-select: none; }
.corpo-svg { width: 100%; height: auto; display: block; }
.corpo-forma > * { fill: var(--teal-fundo); stroke: var(--teal); stroke-width: 2; }
.corpo-forma .corpo-olho { fill: var(--teal); }
.corpo-ponto, .corpo-novo { position: absolute; transform: translate(-50%, -50%); width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; font-size: .78rem; font-weight: 800; text-decoration: none; background: var(--erro); color: #fff; border: 2px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,.3); }
.corpo-ponto-ok { background: var(--ok); }
.corpo-novo { background: var(--coleira); width: 20px; height: 20px; pointer-events: none; }
.corpo-novo[hidden] { display: none; }
.lesoes { padding-left: 0; list-style: none; }

/* Documentos e assinatura */
.documento-leitura { white-space: pre-line; font-size: 1.02rem; line-height: 1.65; }
.assinar-tela { max-width: 900px; }
.quadro-assinatura { width: 100%; height: auto; aspect-ratio: 3 / 1; background: var(--branco); border: 2px dashed var(--teal); border-radius: var(--raio); touch-action: none; display: block; margin: 6px 0 12px; }
.campo-rotulo { font-weight: 700; display: block; }
.acoes-lista { display: flex; flex-direction: column; gap: 6px; }
.acoes-lista a, .acoes-lista .botao-link { text-align: left; }

/* Calculadoras */
.calculadoras { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 18px; align-items: start; }
.calculadoras .painel + .painel { margin-top: 0; }
.calc h2 { margin-top: 0; }
.calc .calc-resultado { background: var(--teal-fundo); border-radius: var(--raio-p); padding: 10px 12px; font-weight: 400; color: var(--tinta); }
.calc .calc-resultado:empty { display: none; }

/* Busca rápida no topo do app */
.app-barra-busca { display: flex; align-items: center; gap: 14px; padding: 10px clamp(16px, 3vw, 40px); background: var(--branco); border-bottom: 1px solid var(--linha); position: sticky; top: 0; z-index: 40; }
.app-barra-busca .menu-botao, .app-barra-busca .marca-mobile { display: none; }
.busca-rapida { position: relative; flex: 1; max-width: 520px; margin: 0; }
.busca-rapida input { width: 100%; padding: 9px 36px 9px 14px; border-radius: 99px; border: 1px solid var(--linha); background: var(--papel); font: inherit; }
.busca-rapida input:focus { background: var(--branco); }
.busca-rapida kbd { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font: 700 .75rem var(--fonte-texto); color: var(--suave); border: 1px solid var(--linha); border-radius: 4px; padding: 0 6px; background: var(--branco); }

/* Páginas públicas: carteirinha, resumo e pré-consulta */
.carteira, .resumo-tutor { max-width: 720px; margin: 0 auto; padding: 24px 16px 8px; }
.carteira-cartao { background: linear-gradient(135deg, var(--teal) 0%, var(--teal-escuro) 100%); color: #fff; border-radius: 18px; padding: 22px; margin-bottom: 18px; box-shadow: var(--sombra); }
.carteira-topo { display: flex; gap: 16px; align-items: center; margin-bottom: 14px; }
.carteira-topo h1 { margin: 0; color: #fff; font-size: 1.9rem; }
.carteira-topo p { margin: 2px 0 0; color: rgba(255,255,255,.85); }
.carteira-cartao .pet-icone { background: var(--coleira); color: var(--tinta); }
.carteira-rotulo { margin: 0; text-transform: uppercase; letter-spacing: .08em; font-size: .75rem; font-weight: 700; color: var(--coleira); }
.resumo-cab .carteira-rotulo { color: var(--teal); }
.carteira-cartao .dados dt { color: rgba(255,255,255,.75); }
.carteira-cartao .dados dd.texto-erro { color: #FFD7D3 !important; }
.carteira-qr { display: flex; align-items: center; gap: 14px; margin-top: 16px; background: #fff; color: var(--tinta); border-radius: 12px; padding: 10px; width: max-content; max-width: 100%; }
.carteira-qr canvas { width: 96px; height: 96px; }
.selo-ok { display: inline-block; font-size: .75rem; font-weight: 700; padding: 2px 8px; border-radius: 99px; background: var(--ok-fundo); color: #14593D; }
.resumo-cab { display: flex; gap: 16px; align-items: center; margin-bottom: 18px; }
.resumo-cab h1 { margin: 2px 0; }
.resumo-cab p { margin: 0; }
.resumo-logo { max-width: 90px; max-height: 70px; object-fit: contain; }
.remedios li { align-items: flex-start; }
.escolhido { background: var(--teal-fundo); border-radius: var(--raio-p); padding: 10px 14px; }

@media (max-width: 960px) {
  .app-barra-busca .menu-botao, .app-barra-busca .marca-mobile { display: inline-flex; }
  .app-barra-busca { padding: 10px 16px; flex-wrap: wrap; }
  .busca-rapida { order: 3; flex-basis: 100%; max-width: none; }
  .busca-rapida kbd { display: none; }
}
@media (max-width: 900px) {
  .ficha-cab { grid-template-columns: 1fr; }
  .ficha-tutor { border-right: 0; border-bottom: 1px solid var(--linha); }
  .ficha-pet { grid-template-columns: minmax(0, 1fr) auto; }
  .ficha-pet > div:nth-child(2) { grid-column: 1; grid-row: 2; }
  .ficha-pet .pet-foto, .ficha-pet .pet-icone { grid-column: 2; grid-row: 1 / span 2; }
  .presc-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .presc-med { grid-column: 1 / -1; }
  .filtros-pacientes { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .filtros-pacientes .campo:first-of-type { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .contato-linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); }
  .contato-linha > :nth-child(3) { grid-column: 1 / -1; }
  .item-linha { grid-template-columns: minmax(0, 1fr) 56px 88px; }
  .item-linha > :first-child { grid-column: 1 / -1; }
  .item-linha [data-remover-linha] { grid-column: 3; justify-self: end; }
  .calc-dose-corpo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cronologia::before { left: 50px; }
  .linha-item { grid-template-columns: 42px 18px minmax(0, 1fr) auto; gap: 0 6px; }
  .linha-ano { width: 44px; }
  .adicionar { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .tile { font-size: .82rem; min-height: 44px; padding: 6px; }
  .ficha-pet h1 { font-size: 1.4rem; }
  .barras-h li { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 30px; }
  .carteira-topo h1 { font-size: 1.5rem; }
  .filtros-pacientes { grid-template-columns: 1fr; }
}
@media print {
  .app-barra-busca, .adicionar, .botao-voz { display: none !important; }
  .carteira-cartao { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* =====================================================
   Atualização 11: prontuário completo, exames pela rede, sala de espera, calculadoras com fontes
   ===================================================== */
.centro { text-align: center; }
.h-pequeno { font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); margin: 14px 0 4px; }
.btn-grande { font-size: 1.1rem; padding: 14px 22px; width: 100%; }
.data-grande { font-family: var(--fonte-titulo); font-size: 1.25rem; font-weight: 700; color: var(--teal-escuro); margin: 4px 0 0; }
.numero-ficha { display: inline-block; font: 700 .78rem var(--fonte-texto); letter-spacing: .03em; color: var(--teal-escuro); background: var(--teal-fundo); border-radius: 99px; padding: 2px 10px; }
.ficha-pet .numero-ficha { margin-bottom: 4px; align-self: flex-start; }

/* Barra fixa do paciente */
.barra-paciente { position: sticky; top: 0; z-index: 45; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 8px 14px; margin: -8px 0 16px; box-shadow: var(--sombra); font-size: .92rem; }
.bp-nome { display: flex; align-items: center; gap: 8px; text-decoration: none; color: var(--tinta); }
.bp-nome small { color: var(--suave); font-weight: 700; }
.pet-foto-mini, .pet-icone.pet-foto-mini { width: 30px; height: 30px; border-radius: 8px; font-size: .85rem; }
.bp-item { color: var(--suave); }
.bp-item strong { color: var(--tinta); }
.bp-alerta { background: var(--erro-fundo); color: #8D2821; font-weight: 700; border-radius: 99px; padding: 2px 10px; }

/* Linha do tempo: extras */
.linha-extra { display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: center; font-size: .8rem; color: var(--suave); margin-top: 2px; }
.linha-extra .etiqueta { font-size: .72rem; padding: 1px 8px; }
.correcao { border-left: 3px solid var(--coleira); padding-left: 10px; }

/* Atendimento */
.pasta-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px 18px; }
.pasta-grade > div { display: flex; flex-direction: column; gap: 3px; font-size: .92rem; min-width: 0; overflow-wrap: anywhere; }
.pasta-grade strong { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; color: var(--suave); }
.campo-junto { display: flex; gap: 6px; }
.campo-junto input { flex: 1; min-width: 0; }
.campo-junto select { flex: 0 0 auto; width: auto; max-width: 55%; }
.calc-dose-linha { display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; margin: 0 0 8px; }
.calc-dose-linha .calc-resultado { margin: 0; font-size: .9rem; }
.receita-pronta { max-width: 420px; }
.alerta-alergia { background: var(--erro-fundo); color: #8D2821; border: 1px solid #EBC3BF; border-radius: var(--raio-p); padding: 8px 12px; font-weight: 700; margin-bottom: 10px; }
.alertas-receita ul { margin: 6px 0; padding-left: 18px; }
.form-acoes-atendimento { position: sticky; bottom: 0; background: var(--branco); padding: 12px 0; border-top: 1px solid var(--linha); z-index: 5; }

/* Exames */
.fluxo-exame { list-style: none; padding: 0; margin: 0 0 18px; display: flex; flex-wrap: wrap; gap: 6px; }
.fluxo-exame li { display: flex; align-items: center; gap: 6px; font-size: .85rem; font-weight: 700; color: var(--suave); background: var(--branco); border: 1px solid var(--linha); border-radius: 99px; padding: 4px 12px 4px 4px; }
.fluxo-exame li span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; background: var(--linha); color: var(--tinta); font-size: .75rem; }
.fluxo-exame li.feito { color: var(--ok); border-color: #B8DFC9; background: var(--ok-fundo); }
.fluxo-exame li.feito span { background: var(--ok); color: #fff; }
.fluxo-exame li.atual { outline: 2px solid var(--teal); outline-offset: 1px; }
.fluxo-exame li.parou { color: var(--erro); background: var(--erro-fundo); border-color: #EBC3BF; }
.fluxo-exame li.parou span { background: var(--erro); color: #fff; }
.laudo-box { border: 1px solid var(--linha); border-left: 4px solid var(--ok); border-radius: var(--raio-p); padding: 12px 14px; background: var(--papel); }
.cat-exame { border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 8px 12px; margin-bottom: 8px; }
.cat-exame summary { font-weight: 700; cursor: pointer; }
.cat-exame .checks-grade { margin-top: 8px; }
.detalhe-exame { border: 1px dashed var(--teal); border-radius: var(--raio); padding: 10px 14px; }
.opcoes-forma { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 4px 14px; margin-bottom: 8px; }

/* Documentos */
.link-assinatura { display: flex; flex-direction: column; gap: 4px; background: var(--papel); border-radius: var(--raio-p); padding: 8px 10px; }
.link-assinatura code { overflow-wrap: anywhere; font-size: .8rem; }
.lista-variaveis { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; }
.lista-variaveis code { background: var(--papel); border: 1px solid var(--linha); border-radius: 4px; padding: 1px 6px; font-size: .82rem; }
.receita-linha { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.3fr) 70px minmax(0, 1fr) minmax(0, 1.2fr) 64px minmax(0, 1.4fr) auto; gap: 6px; align-items: center; margin-bottom: 6px; }

/* Sala de espera e Meu dia */
.espera-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; align-items: start; }
.espera-grade .painel + .painel { margin-top: 0; }
.contador-col { display: inline-grid; place-items: center; min-width: 26px; height: 26px; border-radius: 99px; background: var(--teal-fundo); color: var(--teal-escuro); font-size: .85rem; padding: 0 6px; vertical-align: 3px; }
.cartao-espera { border: 1px solid var(--linha); border-left: 4px solid var(--coleira); border-radius: var(--raio-p); padding: 10px 12px; margin-bottom: 10px; display: flex; flex-direction: column; gap: 3px; }
.cartao-espera.espera-longa { border-left-color: var(--erro); background: #FFF8F7; }
.cartao-espera.em-atendimento { border-left-color: var(--teal); }
.cartao-espera .form-acoes { margin-top: 6px; }
.dia-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; align-items: start; }
.dia-grade .painel { margin: 0; }
.diario-foto { width: 56px; height: 56px; object-fit: cover; border-radius: 8px; border: 1px solid var(--linha); }
.lista-escolha { display: flex; flex-direction: column; gap: 6px; max-height: 420px; overflow-y: auto; }
.lista-escolha .check { border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 8px 10px; }
.lista-escolha small { display: block; }
.aviso-parecido ul { margin: 6px 0; padding-left: 18px; }

/* Busca enquanto digita */
.busca-resultados { position: absolute; left: 0; right: 0; top: calc(100% + 6px); background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 14px 40px -12px rgba(22, 38, 44, .35); z-index: 60; max-height: 70vh; overflow-y: auto; padding: 6px; }
.br-grupo { margin: 8px 8px 2px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.br-item { display: flex; flex-direction: column; padding: 7px 10px; border-radius: var(--raio-p); text-decoration: none; color: var(--tinta); }
.br-item small { color: var(--suave); }
.br-item:hover, .br-item.ativo { background: var(--teal-fundo); }
.br-todos { display: block; text-align: center; padding: 8px; font-weight: 700; border-top: 1px solid var(--linha); margin-top: 4px; }
.br-vazio { padding: 10px; margin: 0; color: var(--suave); }

/* Calculadoras */
.calc-indice { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.calc-indice a { font-size: .85rem; font-weight: 700; text-decoration: none; padding: 5px 12px; border-radius: 99px; background: var(--branco); border: 1px solid var(--linha); color: var(--teal-escuro); }
.calc-indice a.fav { background: var(--coleira-fundo); border-color: #F0D9A6; color: #7A4F05; }
.calc-historico summary { cursor: pointer; }
.calc-cab { display: flex; align-items: center; gap: 10px; }
.calc-cab h2 { margin: 0; flex: 1; }
.calc-grupo { font-size: .75rem; font-weight: 700; color: var(--suave); text-transform: uppercase; letter-spacing: .04em; }
.botao-estrela { border: 0; background: none; font-size: 1.3rem; line-height: 1; color: var(--linha); cursor: pointer; padding: 4px; }
.botao-estrela.ativa, .botao-estrela:hover { color: var(--coleira); }
.calc .calc-resultado { overflow-wrap: anywhere; }
.calc-tit { font-weight: 700; margin: 0 0 6px; }
.tabela-emerg td, .tabela-emerg th { padding: 6px 8px; font-size: .88rem; }
.calc-acoes { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0 0; }
.calc-acoes:empty { display: none; }
.calc-fontes { margin-top: 12px; border-top: 1px solid var(--linha); padding-top: 8px; font-size: .88rem; }
.calc-fontes summary { cursor: pointer; font-weight: 700; color: var(--teal-escuro); }
.calc-ressalvas { padding-left: 18px; margin: 6px 0; }
.calc-ressalvas li { margin-bottom: 4px; }
.calc-refs { padding-left: 20px; margin: 4px 0 8px; }
.calc-refs li { margin-bottom: 4px; overflow-wrap: anywhere; }
.calc-refs-titulo { margin: 8px 0 0; }
.calc-concentracoes { margin: 6px 0 10px; }
.calc-concentracoes .form-grade { margin-top: 8px; }

/* Pesquisa de satisfação */
.estrelas-escolha { display: inline-flex; flex-direction: row-reverse; gap: 4px; }
.estrelas-escolha input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.estrelas-escolha label { font-size: 2.4rem; line-height: 1; color: var(--linha); cursor: pointer; }
.estrelas-escolha input:checked ~ label, .estrelas-escolha label:hover, .estrelas-escolha label:hover ~ label { color: var(--coleira); }
.estrelas-escolha input:focus-visible + label { outline: 2px solid var(--teal); border-radius: 4px; }

@media (max-width: 960px) {
  .espera-grade { grid-template-columns: minmax(0, 1fr); }
  .barra-paciente { top: 0; margin-top: -4px; }
}
@media (max-width: 600px) {
  .barra-paciente { font-size: .82rem; gap: 4px 10px; padding: 6px 10px; }
  .bp-item:not(:has(strong)) { display: none; }
  .receita-linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .receita-linha > :first-child, .receita-linha > input[name^="r_instr"] { grid-column: 1 / -1; }
  .fluxo-exame li { font-size: .78rem; }
  .form-acoes-atendimento { flex-wrap: wrap; }
}
@media print {
  .barra-paciente, .calc-indice, .calc-historico, .busca-resultados { display: none !important; }
  body.imprimindo-calc .calc:not(.calc-imprimir), body.imprimindo-calc .cabecalho-pagina, body.imprimindo-calc .pag-cab { display: none !important; }
  body.imprimindo-calc .calc-imprimir .calc-acoes, body.imprimindo-calc .calc-imprimir .form-grade, body.imprimindo-calc .calc-imprimir .calc-concentracoes { display: none !important; }
  body.imprimindo-calc .calc-imprimir .calc-fontes { display: block; }
  body.imprimindo-calc .calc-imprimir .calc-fontes > * { display: block; }
}
.grade-2 > *, .grade-2-1 > *, .calculadoras > *, .dia-grade > *, .espera-grade > * { min-width: 0; }
.coluna { grid-template-columns: minmax(0, 1fr); }
.form { grid-template-columns: minmax(0, 1fr); }

/* ===== Atualização 12: internação completa ===== */
.etiqueta-laranja { background: #FDE6D3; color: #8A3D0B; }
.numeros-4 .numero { flex-basis: 140px; }
.numero-alerta b { color: var(--erro); }
.painel-alerta { border-color: #EBC3BF; border-left: 4px solid var(--erro); }
.painel-destaque { border-left: 4px solid var(--teal); }
.filtros-int { grid-template-columns: repeat(2, minmax(0, 220px)) auto; }
.quadro-setor { font-size: 1.05rem; margin: 22px 0 10px; }
.quadro-int { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.card-int { display: flex; flex-direction: column; gap: 6px; background: var(--branco); border: 1px solid var(--linha); border-left: 5px solid var(--ok); border-radius: var(--raio); padding: 12px 14px; text-decoration: none; color: var(--tinta); box-shadow: var(--sombra); min-width: 0; }
.card-int:hover { border-color: var(--teal); color: var(--tinta); }
.card-amarela { border-left-color: var(--coleira); }
.card-laranja { border-left-color: #D9711F; }
.card-vermelha { border-left-color: var(--erro); background: #FFFBFA; }
.card-int-cab { display: flex; gap: 10px; align-items: center; min-width: 0; }
.card-int-cab div { min-width: 0; }
.card-int-cab strong { display: block; font-size: 1.05rem; }
.card-int-cab small { color: var(--suave); }
.card-int-motivo { margin: 0; font-size: .92rem; overflow-wrap: anywhere; }
.card-int-tags { display: flex; flex-wrap: wrap; gap: 4px; }
.card-int-pend { display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: .88rem; }
.card-int-param { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: .85rem; border-top: 1px dashed var(--linha); padding-top: 6px; }
.int-topo { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 8px 16px; margin-bottom: 6px; }
.int-topo-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.int-gravidade select { padding: 6px 8px; min-height: 0; width: auto; }
.int-motivo { margin: 0 0 12px; overflow-wrap: anywhere; }
.bloco-atrasado b { color: var(--erro); }
.mapa-grade { font-size: .82rem; min-width: 900px; }
.mapa-grade th, .mapa-grade td { padding: 4px 2px; text-align: center; border-left: 1px solid var(--linha); }
.mapa-grade thead th { font-size: .75rem; color: var(--suave); }
.mapa-grade .mg-item { text-align: left; min-width: 190px; max-width: 240px; padding: 6px 8px; position: sticky; left: 0; background: var(--branco); z-index: 1; border-left: 0; }
.mapa-grade .mg-item small { display: block; font-weight: 400; color: var(--suave); overflow-wrap: anywhere; }
.mapa-grade th.mg-agora { background: var(--teal-fundo); color: var(--teal-escuro); }
.mapa-grade tr.apagado .mg-item { opacity: .6; }
.mx { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 3px; border-radius: 5px; font-weight: 700; text-decoration: none; border: 1px solid var(--linha); background: var(--branco); color: var(--suave); margin: 1px; line-height: 1; }
.mx small { font-size: .62rem; margin-left: 1px; font-weight: 400; }
.mx-dado { background: var(--ok-fundo); border-color: #B8DFC9; color: #14593D; }
.mx-nao_dado { background: var(--erro-fundo); border-color: #EBC3BF; color: #8D2821; }
.mx-adiado { background: var(--coleira-fundo); border-color: var(--coleira); color: #7A4F05; }
.mx-atrasado { background: var(--erro); border-color: var(--erro); color: #fff; }
.mx-agora { border-color: var(--teal); color: var(--teal); }
a.mx:hover { border-color: var(--teal); }
.legenda-mapa { font-size: .85rem; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; margin: 10px 0 0; }
.legenda-mapa .mx { min-width: 20px; height: 20px; }
.grupo-dose { border: 1px dashed var(--linha); border-radius: var(--raio-p); padding: 8px 12px 4px; margin: 0; min-width: 0; }
.grupo-dose legend { font-size: .85rem; color: var(--suave); padding: 0 4px; }
.calc-dose-int { margin: 0 0 6px; font-size: .9rem; }
.calc-dose-int strong { color: var(--teal-escuro); }
details.suspender { position: relative; }
details.suspender > summary { list-style: none; }
details.suspender > summary::-webkit-details-marker { display: none; }
details.suspender[open] > form { position: absolute; right: 0; top: 100%; z-index: 5; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px; box-shadow: var(--sombra); width: min(300px, 80vw); margin-top: 4px; }
.tabela-param { font-size: .85rem; }
.tabela-param td.fora { color: var(--erro); font-weight: 700; background: var(--erro-fundo); }
.valor-total { font-family: var(--fonte-titulo); font-size: 1.4rem; }
.pre-texto { white-space: pre-wrap; font: inherit; background: var(--papel); border-radius: var(--raio-p); padding: 10px; margin: 8px 0; }
.historico li.ev-intercorrencia .registro { border-left: 3px solid var(--erro); padding-left: 10px; }
.historico li.ev-plantao .registro { border-left: 3px solid var(--teal); padding-left: 10px; }
.historico li.ev-boletim .registro, .historico li.ev-visita .registro { border-left: 3px solid var(--coleira); padding-left: 10px; }
.boletim { border-left: 3px solid var(--coleira); padding: 4px 0 4px 12px; margin: 0 0 12px; }
.boletim p { margin: 2px 0 0; white-space: pre-line; }
@media (max-width: 640px) {
  .filtros-int { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .quadro-int { grid-template-columns: minmax(0, 1fr); }
  .int-topo { align-items: flex-start; }
}
.tabela-param td:first-child { white-space: nowrap; }
.abas .contador { display: inline-block; background: var(--erro); color: #fff; border-radius: 10px; padding: 0 7px; font-size: .75rem; line-height: 1.5; margin-left: 4px; }
@media (max-width: 640px) {
  .mapa-grade .mg-item { min-width: 128px; max-width: 150px; padding: 5px 6px; }
  .mapa-grade .mg-item small { display: none; }
}
.painel-destaque .painel-cab { flex-wrap: wrap; gap: 2px 12px; }
.painel-cab { flex-wrap: wrap; row-gap: 6px; }

/* ===== Atualização 13: equipe e unidades ===== */
.lateral-contexto { margin: 0 0 10px; padding: 10px 12px; border-radius: var(--raio); background: rgba(255,255,255,.07); display: grid; gap: 8px; }
.lateral-contexto label { display: grid; gap: 3px; }
.lateral-contexto span { font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: rgba(255,255,255,.65); font-weight: 700; }
.lateral-contexto select { width: 100%; padding: 7px 8px; border-radius: var(--raio-p); border: 1px solid rgba(255,255,255,.25); background: rgba(0,0,0,.18); color: #fff; font: 700 .9rem var(--fonte-texto); min-height: 0; }
.lateral-contexto select option { color: var(--tinta); background: #fff; }
.lateral-unidade { margin: 0; font-size: .85rem; color: rgba(255,255,255,.8); }
.grupo-check { border: 1px dashed var(--linha); border-radius: var(--raio-p); padding: 8px 12px; margin: 8px 0 0; display: grid; gap: 6px; min-width: 0; }
.grupo-check legend { font-size: .85rem; color: var(--suave); padding: 0 4px; }
.grupo-check p { margin: 0; }
.tabela-funcoes td.centro { font-size: 1.05rem; }
.check input { flex-shrink: 0; }

/* ===== Atualização 14: celular ===== */
/* iPhone amplia a tela ao tocar em campos com letra menor que 16px */
@media (max-width: 820px) {
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea { font-size: 16px !important; }
}
/* Alvos de toque confortáveis em telas de toque */
@media (pointer: coarse) {
  .btn-p, button.botao-link, .botao-voz, .botao-estrela, .acoes-lista a, .menu-mais-painel a, .menu-mais-painel button { min-height: 40px; }
  button.botao-link, .acoes-lista a { display: inline-flex; align-items: center; }
  .carrossel-pontos button { position: relative; }
  .carrossel-pontos button::after { content: ''; position: absolute; inset: -16px -6px; }
  .carrossel-pontos { gap: 12px; padding: 8px 4px; }
}
.campo-inline { flex-wrap: wrap; max-width: 100%; min-width: 0; }
.campo-inline select { max-width: 100%; min-width: 0; }

/* ===== Atualização 14: ficha do paciente ===== */
.ficha-acoes { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 4px 0 18px; }
.menu-mais { position: relative; }
.menu-mais > summary { list-style: none; }
.menu-mais > summary::-webkit-details-marker, .abas-mais > summary::-webkit-details-marker { display: none; }
.menu-mais > summary::after, .abas-mais > summary::after { content: ''; display: inline-block; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin: 0 0 3px 9px; }
.menu-mais[open] > summary::after, .abas-mais[open] > summary::after { transform: rotate(-135deg); margin-bottom: -2px; }
.menu-mais-painel { position: absolute; z-index: 30; top: calc(100% + 6px); left: 0; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 12px 32px -10px rgba(22,38,44,.28); padding: 10px; min-width: 240px; max-height: 70vh; overflow-y: auto; }
.menu-mais .menu-mais-painel { display: grid; grid-template-columns: repeat(4, minmax(170px, 1fr)); gap: 4px 14px; width: max-content; max-width: min(820px, calc(100vw - 32px)); }
.menu-mais-grupo p { margin: 4px 8px 4px; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); }
.menu-mais-painel a, .menu-mais-painel button { display: flex; align-items: center; width: 100%; text-align: left; padding: 8px; border-radius: var(--raio-p); color: var(--tinta); text-decoration: none; font: 400 .95rem var(--fonte-texto); background: none; border: 0; cursor: pointer; }
.menu-mais-painel a:hover, .menu-mais-painel button:hover, .menu-mais-painel a[aria-current="page"] { background: var(--teal-fundo); color: var(--teal-escuro); }
.menu-mais-painel form { margin: 0; }
.abas-ficha { overflow: visible; flex-wrap: wrap; }
.abas-mais { position: relative; }
.abas-mais > summary { list-style: none; padding: 10px 16px; font-weight: 700; color: var(--suave); cursor: pointer; border-bottom: 3px solid transparent; margin-bottom: -1px; white-space: nowrap; }
.abas-mais > summary[aria-current="page"] { color: var(--teal-escuro); border-color: var(--teal); }
.abas-mais .menu-mais-painel { left: 0; }
.ficha-grade { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); grid-template-areas: "principal resumo" "principal gestao"; grid-template-rows: auto 1fr; gap: 0 22px; align-items: start; }
.ficha-principal { grid-area: principal; }
.ficha-resumo { grid-area: resumo; margin-bottom: 18px; }
.ficha-gestao { grid-area: gestao; }
.linha-busca { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.linha-busca input { flex: 1 1 200px; min-width: 0; }
.linha-mais { margin-top: 8px; }
.linha-mais[open] .linha-tipos { margin-top: 10px; }
@media (max-width: 900px) {
  .ficha-grade { grid-template-columns: minmax(0, 1fr); grid-template-areas: "resumo" "principal" "gestao"; grid-template-rows: auto; }
  .menu-mais .menu-mais-painel { grid-template-columns: repeat(2, minmax(0, 1fr)); width: calc(100vw - 32px); }
  .ficha-acoes > .btn, .ficha-acoes > form { flex: 1 1 auto; }
  .ficha-acoes .menu-mais { flex: 1 1 100%; }
  .ficha-acoes .menu-mais > summary { width: 100%; justify-content: center; }
}
@media (max-width: 520px) {
  .menu-mais .menu-mais-painel { grid-template-columns: minmax(0, 1fr); }
}
@media print { .ficha-acoes, .abas-ficha { display: none !important; } }

/* ===== Atualização 14: menu em dois modos ===== */
.modo-menu { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; background: rgba(0,0,0,.18); border-radius: 99px; padding: 4px; margin: 0 4px 12px; }
.modo-menu a { text-align: center; padding: 7px 8px; border-radius: 99px; color: rgba(255,255,255,.78); text-decoration: none; font-weight: 700; font-size: .9rem; }
.modo-menu a:hover { color: #fff; }
.modo-menu a[aria-current="true"] { background: #fff; color: var(--teal-escuro); }

/* ===== Atualização 14: atendimento ===== */
.campo-voz { position: relative; display: block; }
.campo-voz textarea { padding-right: 52px; width: 100%; }
.campo-voz .botao-voz { position: absolute; top: 6px; right: 6px; width: 38px; height: 38px; min-height: 0; margin: 0; padding: 0; display: grid; place-items: center; border-radius: 50%; }
.campo-voz .botao-voz::before { display: none; }
.mais-campos { border-top: 1px dashed var(--linha); padding-top: 10px; }
.mais-campos > summary { margin-bottom: 6px; }
.mais-campos[open] > summary { margin-bottom: 12px; }
.mais-campos > .campo + .campo { margin-top: 14px; }

/* ===== Atualização 15 ===== */
.servicos-6 .servicos-cab, .servicos-6 .servico-linha { grid-template-columns: 2fr 1fr 1fr 1.1fr 1fr 1.8fr; }
@media (max-width: 860px) {
  .servicos-6 .servico-linha { grid-template-columns: 1fr 1fr; }
  .servicos-6 .servico-linha .campo > .so-leitor { position: static !important; width: auto !important; height: auto !important; clip: auto !important; clip-path: none !important; overflow: visible !important; white-space: normal !important; margin: 0 0 2px !important; font-size: .8rem; font-weight: 700; color: var(--suave); }
}
.checks-rolagem { max-height: 240px; overflow-y: auto; border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 8px 10px; }
.checks-dias { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.campo-senha { position: relative; display: block; }
.campo-senha input { width: 100%; padding-right: 48px; }
.olho-senha { position: absolute; top: 50%; right: 4px; transform: translateY(-50%); width: 40px; height: 40px; min-height: 0; display: grid; place-items: center; border: 0; background: none; color: var(--suave); cursor: pointer; border-radius: var(--raio-p); padding: 0; }
.olho-senha:hover, .olho-senha[aria-pressed="true"] { color: var(--teal); }
.filtros-acessos { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr) auto; } @media (max-width: 640px) { .filtros-acessos { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }

/* Agenda única (atualização 16) */
.nav-agenda { display: flex; gap: 6px; flex-wrap: nowrap; overflow-x: auto; margin: 0 0 14px; padding-bottom: 2px; scrollbar-width: none; }
.nav-agenda::-webkit-scrollbar { display: none; }
.nav-agenda a { flex-shrink: 0; padding: 7px 14px; border-radius: 99px; border: 1px solid var(--linha); background: var(--branco); text-decoration: none; font-weight: 700; font-size: .9rem; color: var(--suave); white-space: nowrap; }
.nav-agenda a[aria-current="page"] { background: var(--teal); border-color: var(--teal); color: #fff; }
.nav-agenda a[aria-current="page"] .contador-col { background: #fff; }
.nav-agenda .contador-col { min-width: 20px; height: 20px; font-size: .75rem; vertical-align: 1px; background: var(--coleira); color: var(--tinta); }
.horario { border-left: 4px solid transparent; padding-left: 10px; }
.horario-atendimento { border-left-color: var(--teal); }
.horario-clinica { border-left-color: #E8873A; }
.horario-bloqueio { border-left-color: #B9C4C7; background: repeating-linear-gradient(135deg, transparent 0 8px, rgba(0,0,0,.025) 8px 16px); }
.horario-tags { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0 2px; }
.horario-tags:empty { display: none; }
.horario-acoes { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
.horario-acoes form { margin: 0; }
.select-p { padding: 6px 8px; font-size: .88rem; min-height: 0; width: auto; }
.agenda-janelas { margin: 0 0 12px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: .92rem; }
.escolha-linha { display: flex; flex-wrap: wrap; gap: 8px 18px; }
@media (max-width: 640px) {
  .horario-acoes { justify-content: flex-start; }
}
@media (pointer: coarse) { .select-p { font-size: 16px; min-height: 40px; } }
/* Sala de espera com triagem */
.form-grade-3 { grid-template-columns: repeat(auto-fit, minmax(110px, 1fr)); gap: 10px; }
.espera-topo { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cartao-espera.prio-emergencia { border-left-color: var(--erro); background: #FFF1EF; box-shadow: 0 0 0 2px rgba(198, 56, 46, .25); }
.cartao-espera.prio-urgente { border-left-color: #E8873A; background: #FFF7EF; }
.cartao-espera.prio-preferencial { border-left-color: var(--coleira); }
.triagem-resumo { margin: 4px 0 0; font-size: .9rem; background: var(--teal-fundo); border-radius: var(--raio-p); padding: 6px 9px; }
.cartao-espera details.triagem summary { cursor: pointer; font-weight: 700; color: var(--teal-escuro); font-size: .9rem; padding: 4px 0; }
.cartao-espera details.triagem .form { margin-top: 6px; gap: 10px; }
/* Agenda online (tutor) */
.agendar { max-width: 760px; margin: 0 auto; padding: 24px 16px 8px; }
.agendar-cab { display: flex; gap: 16px; align-items: center; margin-bottom: 18px; }
.agendar-cab h1 { margin: 2px 0; }
.agendar-cab p { margin: 0; }
.passo-n { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--teal); color: #fff; font-size: .9rem; margin-right: 6px; vertical-align: 2px; }
.chip-link { display: inline-flex; flex-direction: column; padding: 9px 16px; border: 1px solid var(--linha); border-radius: 14px; background: var(--branco); text-decoration: none; color: var(--tinta); font-weight: 700; }
.chip-link small { font-weight: 400; color: var(--suave); font-size: .82rem; }
.chip-link.ativo { background: var(--teal); border-color: var(--teal); color: #fff; }
.chip-link.ativo small { color: #CFE5EA; }
.agendar-dias { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
.agendar-dias .dia { flex: 0 0 64px; }
.agendar-horas { display: grid; grid-template-columns: repeat(auto-fill, minmax(78px, 1fr)); gap: 8px; }
.hora-livre { text-align: center; padding: 10px 0; border: 1px solid var(--teal); border-radius: var(--raio-p); color: var(--teal-escuro); font-weight: 700; text-decoration: none; background: var(--branco); }
.hora-livre:hover, .hora-livre.ativo { background: var(--teal); color: #fff; }
/* Configuração da agenda online */
.ao-horarios { display: grid; gap: 8px; }
.ao-dia { display: grid; grid-template-columns: 110px 1fr 1fr; gap: 10px; align-items: center; }
.ao-faixa { display: flex; gap: 6px; align-items: center; }
.ao-faixa input { min-width: 0; }
.ao-servicos { display: grid; gap: 6px; }
.ao-serv, .ao-serv-cab { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) minmax(0, 1fr); gap: 8px; }
.ao-serv-cab span { font-size: .82rem; color: var(--suave); font-weight: 700; }
@media (max-width: 640px) {
  .ao-dia { grid-template-columns: 1fr 1fr; } .ao-dia strong { grid-column: 1 / -1; }
  .ao-faixa { flex-wrap: wrap; }
  .agendar-cab .avatar.g { width: 64px; height: 64px; }
}
.pv-clinica-num { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.pv-clinica-num a { display: flex; flex-direction: column; padding: 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); text-decoration: none; color: var(--tinta); background: var(--branco); }
.pv-clinica-num a.destaque { border-color: var(--coleira); background: var(--coleira-fundo); }
.pv-clinica-num b { font-family: var(--fonte-titulo); font-size: 1.6rem; line-height: 1.1; }
.pv-clinica-num span { font-size: .85rem; color: var(--suave); }
@media (max-width: 640px) { .pv-clinica-num { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.numeros-abas .numero { text-decoration: none; color: var(--tinta); }
.numeros-abas .numero.ativo { background: var(--teal-fundo); }
.numeros-abas .numero.ativo span { color: var(--teal-escuro); font-weight: 700; }
@media (max-width: 640px) { .numeros-abas .numero { flex-basis: 50%; } .numeros-abas .numero:nth-child(odd) { border-left: 0; } }
.horario time small { display: block; font-family: var(--fonte-texto, inherit); font-size: .75rem; font-weight: 400; color: var(--suave); }
@media (min-width: 1100px) { .espera-grade { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1fr); } }

/* Ficha do paciente (atualização 17): cabeçalho único */
.ficha-cab { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
.ficha-cab .ficha-pet { display: flex; gap: 18px; align-items: flex-start; padding: 18px 20px; grid-template-columns: none; }
.ficha-cab .ficha-pet > div { display: block; }
.ficha-pet-txt { min-width: 0; flex: 1; }
.ficha-pet-txt p { margin: 0; }
.ficha-migalha { font-size: .85rem; display: flex; gap: 8px; align-items: center; margin-bottom: 2px !important; }
.ficha-migalha a { color: var(--suave); text-decoration: none; }
.ficha-migalha .numero-ficha { margin: 0; }
.ficha-cab .ficha-pet h1 { font-size: 1.9rem; margin: 0 0 2px; }
.ficha-dados { color: var(--suave); }
.ficha-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px !important; align-items: center; }
.chip-dado { display: inline-flex; gap: 4px; align-items: baseline; padding: 3px 10px; border-radius: 99px; background: var(--papel); border: 1px solid var(--linha); font-size: .88rem; }
.chip-dado small { color: var(--suave); }
.ficha-sem-alerta { margin-top: 8px !important; font-size: .88rem; color: #14593D; }
.ficha-sem-alerta::before { content: "✓ "; }
.ficha-cab .ficha-tutor { border-right: 0; border-left: 1px solid var(--linha); padding: 18px 20px; gap: 4px; }
.ficha-tutor-tel { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.faixa-internacao { display: flex; gap: 14px; align-items: center; justify-content: space-between; background: #FBEDEE; border: 1px solid #E9BFC4; border-left: 6px solid #9E2B3A; border-radius: var(--raio); padding: 12px 16px; margin-bottom: 14px; }
.faixa-internacao strong { color: #7A1F2C; font-size: 1.05rem; }
.faixa-internacao small { display: block; color: #6B3A41; margin-top: 2px; }
.barra-paciente.bp-rolagem { position: fixed; left: 0; right: 0; top: 0; margin: 0; border-radius: 0; border-width: 0 0 1px; transform: translateY(-110%); transition: transform .18s ease; z-index: 60; }
.barra-paciente.bp-rolagem.bp-visivel { transform: none; }
@media (min-width: 961px) { .barra-paciente.bp-rolagem { left: 252px; } }
@media (max-width: 960px) { .barra-paciente.bp-rolagem { top: 58px; z-index: 39; } }
/* Coluna Agora */
.agora > summary { list-style: none; cursor: default; }
.agora > summary::-webkit-details-marker { display: none; }
.agora > summary h2 { margin: 0 0 6px; }
.agora-lista { margin: 0; }
.agora-lista dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; color: var(--suave); font-weight: 700; margin-top: 12px; }
.agora-lista dt:first-child { margin-top: 0; }
.agora-lista dd { margin: 3px 0 0; }
.agora-lista dd small { display: block; }
.agora-itens { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
/* Linha do tempo: internação agrupada */
.linha-filhos { margin-top: 6px; }
.linha-filhos summary { cursor: pointer; font-size: .88rem; font-weight: 700; color: var(--teal-escuro); }
.linha-filhos ul { list-style: none; margin: 6px 0 0; padding: 0 0 0 10px; border-left: 2px solid var(--linha); display: grid; gap: 6px; font-size: .9rem; }
.ficha-cadastro .painel + .painel { margin-top: 14px; }
@media (max-width: 900px) {
  .ficha-cab { grid-template-columns: 1fr; }
  .ficha-cab .ficha-tutor { border-left: 0; border-top: 1px solid var(--linha); padding: 12px 16px; }
  .ficha-cab .ficha-pet { padding: 14px 16px; gap: 12px; }
  .ficha-cab .ficha-pet .pet-foto-g, .ficha-cab .ficha-pet .pet-icone.pet-foto-g { width: 60px; height: 60px; font-size: 1.5rem; border-radius: 16px; }
  .ficha-cab .ficha-pet h1 { font-size: 1.45rem; }
  .agora > summary { cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
  .agora > summary::after { content: "▾"; color: var(--suave); }
  .agora:not([open]) > summary h2 { margin: 0; }
  .faixa-internacao { flex-wrap: wrap; }
}
.abas-ficha > a, .abas-ficha .abas-mais > summary { padding-left: 12px; padding-right: 12px; }
.ficha-cadastro .btn { justify-self: start; width: auto; } .ficha-cadastro > p { margin: 14px 0 0; }
/* Atendimento (atualização 17) */
.atend-grade { display: grid; grid-template-columns: minmax(0, 1fr) 300px; grid-template-areas: "form contexto"; gap: 0 20px; align-items: start; }
.atend-grade > .form-atendimento { grid-area: form; min-width: 0; }
.atend-contexto { grid-area: contexto; position: sticky; top: 64px; }
.atend-contexto details > summary { list-style: none; }
.atend-contexto details > summary::-webkit-details-marker { display: none; }
.atend-contexto h2 { margin: 0 0 8px; font-size: 1.1rem; }
.exame-vitais .campo small { font-size: .78rem; }
.campo.fora-faixa input { border-color: var(--erro); background: #FFF6F5; }
.campo.fora-faixa [data-faixa-txt] { color: var(--erro); font-weight: 700; }
.exame-resto-cab { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 12px 0 8px; }
.presc-principal { grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, 1.4fr) minmax(0, .8fr) !important; }
.presc-principal .presc-med { grid-column: 1 / -1; }
.presc-resumo { margin: 4px 0 0; font-weight: 700; color: var(--teal-escuro); font-size: .92rem; }
.presc-resumo:empty { display: none; }
.presc-detalhes { margin-top: 6px; }
.presc-detalhes > summary { cursor: pointer; font-size: .88rem; color: var(--suave); font-weight: 700; }
.presc-detalhes[open] > summary { margin-bottom: 8px; }
.presc-detalhes .presc-grade { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.presc-remover { margin-top: 6px; font-size: .85rem; }
.rota-domiciliar { margin: -4px 0 4px 30px; }
.barra-salvar { position: sticky; bottom: 0; z-index: 30; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; background: var(--branco); border-top: 1px solid var(--linha); margin: 10px -22px -22px; padding: 12px 22px; box-shadow: 0 -6px 16px rgba(13, 40, 48, .06); border-radius: 0 0 var(--raio) var(--raio); }
.barra-salvar-status { flex: 1 1 220px; }
@media (max-width: 1100px) {
  .atend-grade { grid-template-columns: minmax(0, 1fr); grid-template-areas: "contexto" "form"; }
  .atend-contexto { position: static; margin-bottom: 14px; }
  .atend-contexto details > summary { cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
  .atend-contexto details > summary::after { content: "▾"; color: var(--suave); }
  .atend-contexto details:not([open]) h2 { margin: 0; }
}
@media (max-width: 640px) {
  .presc-principal { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; }
  .presc-principal .presc-med { grid-column: 1 / -1; }
  .barra-salvar { margin: 10px -16px -16px; padding: 10px 16px; }
  .form-atendimento.painel { padding: 16px; }
  .barra-salvar .btn { flex: 1 1 auto; }
}
.peso-linha { display: block; } .peso-linha small { display: inline !important; }
@media (max-width: 640px) { .exame-grade { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 10px; } }
/* Calculadoras ao lado da receita */
.calc-painel { position: fixed; top: 0; right: 0; bottom: 0; width: min(460px, 100%); z-index: 80; background: var(--papel); border-left: 1px solid var(--linha); box-shadow: -12px 0 32px rgba(13, 40, 48, .18); display: flex; flex-direction: column; transform: translateX(105%); transition: transform .2s ease; visibility: hidden; }
.calc-painel.aberto { transform: none; visibility: visible; }
.calc-painel-cab { display: flex; gap: 10px; align-items: center; padding: 12px 16px; background: var(--branco); border-bottom: 1px solid var(--linha); }
.calc-painel-cab small { flex: 1; }
.calc-painel iframe { flex: 1; width: 100%; border: 0; background: transparent; }
body.com-gaveta { overflow: hidden; }
.receita-grade { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
.receita-topo { display: flex; gap: 14px; align-items: flex-end; flex-wrap: wrap; justify-content: space-between; }
.receita-topo .campo { max-width: 260px; }
.presc-ferramentas { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin: 0 0 8px; }
.receitas-anteriores { border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 10px 14px; background: var(--papel); }
.receitas-anteriores > summary { cursor: pointer; font-weight: 700; color: var(--teal-escuro); }
.recem-chegou { outline: 3px solid var(--coleira); outline-offset: 3px; border-radius: var(--raio-p); transition: outline-color .4s; }
@media (min-width: 1101px) {
  .receita-grade { grid-template-columns: minmax(0, 1fr) 420px; }
  .calc-painel.calc-painel-fixo { position: sticky; top: 12px; transform: none; visibility: visible; width: auto; height: calc(100vh - 24px); z-index: 1; box-shadow: none; border: 1px solid var(--linha); border-radius: var(--raio); overflow: hidden; }
  .calc-painel-fixo [data-calc-fechar] { display: none; }
  .receita-grade .presc-ferramentas { display: none; }
}
/* Calculadoras dentro do painel */
.calc-no-painel { grid-template-columns: minmax(0, 1fr) !important; }
.calc-no-painel .calc .form-grade { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.modo-embed .calc-indice { position: sticky; top: 0; z-index: 5; background: var(--papel); padding: 8px 0; margin: 0 0 10px; }
.modo-embed .calc-indice { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; padding: 8px 2px; }
.modo-embed .calc-indice a { flex-shrink: 0; }
.modo-embed .embed-main { padding: 12px 14px; }
/* Receita escrita (atualização 20) */
.presc-modo { margin: 0 0 12px; }
.presc-livre textarea[data-receita-texto] { font-family: var(--fonte-texto); font-weight: 400; font-size: 1rem; line-height: 1.55; min-height: 180px; }
.presc-leitura { background: var(--papel); border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 10px 12px; font-size: .9rem; margin: 2px 0 10px; }
.presc-leitura:empty { display: none; }
.presc-leitura p { margin: 0 0 6px; }
.presc-leitura ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.presc-leitura .check { font-weight: 400; }
.presc-leitura.apagado { opacity: .5; }
.presc-leitura-tit { font-weight: 700; color: var(--teal-escuro); }
.presc-leitura-alerta { color: var(--erro); font-weight: 700; }
.presc-leitura-ctrl { color: #8A3D0B; font-weight: 700; }
.presc-retorno { margin-top: 6px; }
/* Busca de paciente/tutor nos formulários (atualização 21) */
.busca-cad { position: relative; }
.busca-cad-linha { display: flex; gap: 8px; }
.busca-cad-linha input { flex: 1; min-width: 0; }
.busca-cad-linha select { width: auto; max-width: 40%; }
.busca-cad-res { position: absolute; z-index: 40; left: 0; right: 0; top: 100%; margin: 4px 0 0; padding: 4px; list-style: none; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio-p); box-shadow: 0 12px 32px -10px rgba(22,38,44,.3); max-height: 340px; overflow-y: auto; }
.busca-cad-res li { padding: 8px 10px; border-radius: var(--raio-p); cursor: pointer; display: flex; flex-direction: column; gap: 1px; }
.busca-cad-res li span { font-size: .85rem; color: var(--suave); }
.busca-cad-res li small { color: var(--suave); font-weight: 400; }
.busca-cad-res li.ativo, .busca-cad-res li:hover { background: var(--teal-fundo); }
.busca-cad-res li.busca-cad-nada { cursor: default; color: var(--suave); font-size: .9rem; }
.busca-cad-res li.busca-cad-nada:hover { background: none; }
.busca-cad-escolhido { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; background: var(--teal-fundo); border: 1px solid #BFD8DD; color: var(--teal-escuro); border-radius: var(--raio-p); padding: 9px 12px; font-weight: 700; }
.escolha-paciente { margin-top: 4px; }
.dup-tutor .form-acoes { flex-wrap: wrap; }
.complemento legend { font-weight: 700; }
.input-mini { width: 70px !important; min-height: 0 !important; padding: 4px 6px !important; display: inline-block; }
.espera-cad { align-self: flex-start; text-decoration: none; }
.faixa-cadastro { display: flex; gap: 14px; align-items: center; justify-content: space-between; flex-wrap: wrap; background: var(--coleira-fundo); border: 1px solid #F0D9A6; border-left: 6px solid var(--coleira); border-radius: var(--raio); padding: 10px 16px; margin-bottom: 14px; }
.faixa-cadastro strong { color: #7A4F05; }
.faixa-cadastro small { display: block; color: #6E4604; margin-top: 2px; }
.aviso-alerta { background: var(--coleira-fundo); border-color: #F0D9A6; color: #6E4604; }
.previa-whats { background: #E7F7E2; border-radius: 10px 10px 10px 2px; padding: 12px 14px; font-size: .95rem; line-height: 1.5; overflow-wrap: anywhere; box-shadow: 0 1px 1px rgba(0,0,0,.08); }

/* ===== Atualização 22: rotina da internação ===== */
.etiqueta-roxa { background: #EFE3F7; color: #5B2B7A; }
.etiqueta-azul { background: #E0EDFA; color: #1B4F80; }
.aviso-iso { border-radius: var(--raio); padding: 9px 12px; margin: 0 0 10px; border: 2px solid; font-size: .95rem; overflow-wrap: anywhere; }
.aviso-iso-laranja { background: #FDF0E5; border-color: #D9711F; color: #6E3109; }
.aviso-iso-vermelha { background: var(--erro-fundo); border-color: var(--erro); color: #6E1F19; }
.aviso-iso-roxa { background: #F5ECFA; border-color: #7D45A3; color: #4A2163; }
.aviso-iso-azul { background: #EAF2FB; border-color: #2E6DAA; color: #173F66; }
.card-iso { outline: 2px dashed #D9711F; outline-offset: -2px; }
.card-iso-vermelha { outline-color: var(--erro); }
.card-iso-roxa { outline-color: #7D45A3; }
.card-iso-azul { outline-color: #2E6DAA; }
.card-int-cab { position: relative; }
.card-int-resp { margin-left: auto; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--teal); color: #fff; font-size: .78rem; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }
.card-int-resp-antigo { background: #B7C4C8; }
.int-resp { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 10px; font-size: .93rem; }
.int-resp select { width: auto; min-height: 34px; padding: 4px 8px; }
.hora-dada { display: inline-flex; align-items: center; gap: 4px; font-size: .78rem; color: var(--suave); }
.hora-dada input { width: 108px; min-height: 34px; padding: 3px 6px; font-size: .9rem; }
.mx-deslocado { background: #FFF6F5; border-style: dashed; border-color: #E2A59F; color: #8D2821; font-weight: 400; }
.mx-deslocado small { font-size: .6rem; }
.mx-fora { box-shadow: inset 0 0 0 1px #8D2821; }
.painel-sugestao { border-left: 4px solid var(--coleira); background: #FFFCF3; }
.lista-ronda li { align-items: center; }
.lista-ronda .ronda-pet { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.ronda-atrasado .lista-corpo > strong { color: var(--erro); }
#dispositivos li.disp-vencido { background: var(--erro-fundo); border-radius: var(--raio-p); }
#dispositivos li.disp-perto { background: var(--coleira-fundo); border-radius: var(--raio-p); }
.card-plantao { border-left: 5px solid var(--ok); }
.card-plantao.card-amarela { border-left-color: var(--coleira); }
.card-plantao.card-laranja { border-left-color: #D9711F; }
.card-plantao.card-vermelha { border-left-color: var(--erro); }
.boletim-tutor { border-left: 4px solid var(--coleira); }
@media (max-width: 640px) {
  .lista-ronda li { flex-wrap: wrap; }
  .lista-ronda .lista-fim { width: 100%; justify-content: flex-start; }
}
@media print {
  .plantao-todos .barra-salvar { display: none; }
  .plantao-todos textarea { border: 0; resize: none; }
}
.mapa-grade .mg-item small, .mapa-grade .mg-item strong { white-space: normal; }

/* ===== Atualização 22: farmácia ===== */
.filtros-farm { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: end; }
.campo-qtd { display: flex; gap: 6px; }
.campo-qtd input { flex: 1 1 90px; min-width: 0; }
.campo-qtd select { flex: 0 1 auto; width: auto; max-width: 55%; }
.tabela-farm td { vertical-align: top; }
.campo-inv { width: 110px; }
tr.linha-erro td { background: var(--erro-fundo); }
.venda-receita { border: 1px dashed var(--erro); border-radius: var(--raio-p); padding: 8px 12px; }
.campo-qtd { width: 100%; min-width: 0; }
.campo-qtd > input { width: 0; flex: 1 1 0; }
.campo-qtd > select { flex: 0 0 46%; max-width: 46%; min-width: 0; }
.campo:has(.campo-qtd) { min-width: 0; grid-template-columns: minmax(0, 1fr); }

/* ===== Atualização 24: internação (entregas 2 e 3) ===== */
.boletim-midias { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0; }
.boletim-midias img { width: 120px; height: 120px; object-fit: cover; border-radius: var(--raio-p); display: block; }
.boletim-midias video { width: min(320px, 100%); border-radius: var(--raio-p); background: #000; }
.boletim-tutor .boletim-midias img { width: 160px; height: 160px; }
.lista-metas li { gap: 10px; }
.meta-check { width: 30px; height: 30px; flex: none; border: 2px solid var(--teal); border-radius: 6px; background: var(--branco); color: var(--ok); font-weight: 800; font-size: 1rem; cursor: pointer; padding: 0; }
.meta-feita .meta-check { background: var(--ok-fundo); border-color: var(--ok); }
.meta-feita .lista-corpo > span { text-decoration: line-through; color: var(--suave); }
.protocolos-int { display: flex; flex-wrap: wrap; align-items: end; gap: 8px 18px; }
.atalhos-int { margin: -6px 0 14px; font-size: .92rem; }
.barra-estimativa { height: 10px; border-radius: 99px; background: #EAEFF0; overflow: hidden; margin: 4px 0 6px; }
.barra-estimativa span { display: block; height: 100%; background: var(--ok); }
.barra-estimativa.perto span { background: var(--coleira); }
.barra-estimativa.estourou span { background: var(--erro); }
.aprovacao { border-left: 4px solid var(--linha); padding: 6px 0 6px 12px; margin: 0 0 12px; }
.aprovacao p { margin: 0 0 4px; }
.aprovacao-pendente { border-color: var(--coleira); }
.aprovacao-aprovado { border-color: var(--ok); }
.aprovacao-recusado { border-color: var(--erro); }
.aprovacao-nova { background: var(--coleira-fundo); border-radius: var(--raio-p); }
.avisos-int p { margin: 2px 0; }
.mapa-leitos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; }
.leito { display: flex; flex-direction: column; gap: 3px; padding: 10px 12px; border-radius: var(--raio); border: 1px solid var(--linha); background: var(--branco); min-height: 96px; text-decoration: none; color: var(--tinta); }
.leito-ocupado { border-left: 6px solid var(--ok); box-shadow: var(--sombra); }
.leito-livre { border-style: dashed; background: transparent; color: var(--suave); }
.leito-nome { font-size: .78rem; text-transform: uppercase; letter-spacing: .05em; color: var(--suave); font-weight: 700; }
.leito small { color: var(--suave); }
.leito .etiqueta { align-self: flex-start; }
.leito.card-amarela { border-left-color: var(--coleira); }
.leito.card-laranja { border-left-color: #D9711F; }
.leito.card-vermelha { border-left-color: var(--erro); }
.item-pedido { grid-template-columns: minmax(0, 3fr) minmax(70px, 1fr) minmax(80px, 1fr) auto; }
.tabela-receber input[type=text], .tabela-receber input[type=date] { min-width: 90px; }
.codigo-barras rect { fill: #000; }

/* Atualização 26: ações frequentes do painel */
.dia-atalhos{display:grid;gap:12px;margin-bottom:20px}.dia-atalhos .form-acoes{flex-wrap:wrap;gap:10px}
@media(max-width:600px){.dia-atalhos .btn{flex:1 1 180px;text-align:center}}

/* Atualização 27: painel configurável e prioridades */
[data-dia-painel] [hidden]{display:none!important}
.dia-config{margin-bottom:18px}.dia-config summary{cursor:pointer;font-weight:700;color:var(--teal)}
.dia-config-linha{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid #e2e8eb}
.dia-config-linha label{flex:1;display:flex;align-items:center;gap:8px;min-width:0}
.dia-config-linha input{width:18px;height:18px;flex-shrink:0;accent-color:var(--teal)}
.dia-config [data-dia-restaurar]{margin-top:16px}
.dia-prioridades{border-top:3px solid var(--teal);margin-bottom:20px}.dia-prioridades h2{margin-top:0}
.dia-prioridades-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:12px}
.dia-prioridade{display:flex;align-items:center;gap:14px;padding:16px;border-radius:10px;background:#f0f7f8;color:#164954;text-decoration:none;border:1px solid #d9e8eb}
.dia-prioridade>strong{font-size:1.8rem}.dia-prioridade span{line-height:1.4}.dia-prioridade small{display:block;margin-top:5px;text-decoration:underline}
.dia-prioridade-urgente{background:#fff1ef;color:#982d22;border-color:#ecc5bf}
.dia-prioridade:focus-visible,.dia-config summary:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.dia-nota{font-size:.88rem;margin:12px 0}.dia-bloco .lista{max-height:420px;overflow:auto}
@media(max-width:600px){.dia-config-linha{flex-wrap:wrap}.dia-config-linha label{flex-basis:100%}.dia-config-linha button{min-height:40px}.dia-bloco .lista{max-height:none}}

/* Atualização 28: lista e ficha de trabalho compactas */
.recolher-lateral,.expandir-lateral{display:none}
@media(min-width:961px){
 .recolher-lateral{display:block;background:transparent;border:1px solid #779aa3;color:#fff;border-radius:6px;padding:8px;cursor:pointer}
 .app.menu-recolhido{grid-template-columns:1fr}.app.menu-recolhido>.lateral{display:none}
 .app.menu-recolhido .app-barra{display:flex;gap:12px;align-items:center}
 .app.menu-recolhido .expandir-lateral{display:inline-block;background:#fff;color:var(--teal);border:1px solid var(--linha);padding:9px 12px;border-radius:6px;cursor:pointer}
 .app.menu-recolhido .app-main{max-width:none}.app.menu-recolhido .barra-paciente.bp-rolagem{left:0}
 .app-main:has(.pacientes-compactos),.app-main:has(.ficha-compacta){padding-top:18px;max-width:none}
}
.pacientes-compactos .abas{margin-bottom:12px;overflow-y:hidden}
.pacientes-compactos .filtros{padding:12px;margin-bottom:14px;gap:10px}
.filtros-recolhidos{grid-column:1/-1}.filtros-recolhidos summary{cursor:pointer;color:var(--teal);font-weight:700;font-size:.9rem}.filtros-recolhidos .chips-filtro{margin-top:10px}
.pacientes-tabela{border:1px solid var(--linha);border-radius:10px;overflow-x:auto;background:#fff}
.tabela-pacientes{width:100%;border-collapse:collapse;font-size:.9rem}
.tabela-pacientes th{text-align:left;background:#edf4f5;color:var(--teal-escuro);font-weight:700}
.tabela-pacientes th,.tabela-pacientes td{padding:11px 12px;border-bottom:1px solid var(--linha);vertical-align:middle}
.tabela-pacientes tbody tr:nth-child(even){background:#f7fafb}.tabela-pacientes tbody tr:hover{background:#edf5f6}
.tabela-pacientes td .etiqueta{font-size:.7rem;margin:3px 0 0 4px}.tabela-pacientes a:focus-visible{outline:2px solid var(--teal);outline-offset:3px}
.ficha-compacta .ficha-cab{margin-bottom:9px}.ficha-compacta .ficha-cab .ficha-pet,.ficha-compacta .ficha-cab .ficha-tutor{padding:12px 16px}
.ficha-compacta .ficha-cab .ficha-pet{gap:12px}.ficha-compacta .ficha-cab .pet-foto-g{width:56px;height:56px;font-size:1.5rem;border-radius:12px;flex-shrink:0}
.ficha-compacta .ficha-cab .ficha-pet h1{font-size:1.45rem}.ficha-compacta .ficha-chips,.ficha-compacta .ficha-sem-alerta{margin-top:4px!important}
.ficha-compacta .ficha-dados,.ficha-compacta .ficha-tutor{font-size:.88rem}
.ficha-compacta .cadastro-compacto{display:block;padding:9px 14px;margin:8px 0;font-size:.88rem}
.cadastro-compacto summary{cursor:pointer;font-weight:700}.cadastro-compacto>div,.cadastro-compacto>.form-acoes{margin-top:10px}
.ficha-compacta .faixa-internacao{padding:8px 12px;margin:8px 0;font-size:.86rem;gap:8px}.ficha-compacta .faixa-internacao strong{font-size:.92rem}
.ficha-compacta .internacao-resumo{background:#edf6f6;border-color:#c9dfe2;border-left-color:var(--teal)}.ficha-compacta .internacao-resumo strong,.ficha-compacta .internacao-resumo small{color:var(--teal-escuro)}
.ficha-compacta .ficha-acoes{gap:7px;margin:10px 0 14px}.ficha-compacta .ficha-acoes>.btn{padding:9px 12px;font-size:.87rem}
@media(max-width:700px){
 .tabela-pacientes thead{display:none}.tabela-pacientes,.tabela-pacientes tbody,.tabela-pacientes tr,.tabela-pacientes td{display:block;width:100%}
 .tabela-pacientes tr{padding:10px;border-bottom:1px solid var(--linha)}.tabela-pacientes td{border:0;padding:5px 2px;overflow-wrap:anywhere}
 .tabela-pacientes td::before{content:attr(data-label) ': ';font-weight:700;color:var(--suave);font-size:.82rem}
 .tabela-pacientes td:first-child::before{display:none}.tabela-pacientes td:first-child{font-size:1rem}
 .ficha-compacta .ficha-acoes>.btn{flex:1 1 110px;text-align:center;min-height:42px}.ficha-compacta .ficha-cab{grid-template-columns:1fr}
}
@media print{.recolher-lateral,.expandir-lateral{display:none!important}}
/* Atualização 29: trilho de ícones com menus por setor */
.rail-item{position:relative}.rail-popup[hidden]{display:none!important}
.lateral-nav .rail-link{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;text-align:left;cursor:pointer;color:#d3e4e8;padding:10px;border-radius:7px;font:700 .93rem var(--fonte-texto)}
.lateral-nav .rail-link.rail-ativo{background:#fff;color:var(--teal-escuro)}
.rail-popup{padding:8px;background:#fff;color:var(--tinta);border:1px solid var(--linha);border-radius:0 8px 8px 0;box-shadow:0 8px 24px #1233;z-index:100;width:240px}
.rail-popup>strong{display:block;padding:9px 10px;color:var(--teal-escuro);font-size:.9rem}
.lateral-nav .rail-popup>a{color:var(--tinta);font-weight:400;font-size:.88rem;padding:10px}.lateral-nav .rail-popup>a:hover,.lateral-nav .rail-popup>a:focus{color:var(--teal-escuro);background:#e9f4f5}
.rail-conta summary{cursor:pointer;color:#fff;padding:8px;list-style:none}.rail-conta summary span{margin-left:8px}.rail-conta-painel{padding:8px}
@media(min-width:961px){
 .app.app-rail{grid-template-columns:62px minmax(0,1fr)}
 .app-rail>.lateral{padding:12px 6px;gap:10px;z-index:70;width:62px;overflow-y:auto}
 .app-rail .lateral>.marca{padding:2px 9px}.app-rail .lateral>.marca>span{display:none}
 .app-rail .lateral-nav{gap:4px}.app-rail .lateral-secao{height:1px;background:#ffffff25;font-size:0;margin:5px 4px}
 .app-rail .rail-link{width:48px;min-height:44px;justify-content:center;padding:10px;position:relative}
 .app-rail .rail-link>svg{flex-shrink:0}.app-rail .rail-rotulo{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
 .app-rail .rail-popup{position:fixed;max-height:calc(100vh - 16px);overflow-y:auto}
 .app-rail .contador{position:absolute;top:0;right:0;padding:0 4px;font-size:.65rem}
 .app-rail .lateral-sair button{font-size:0;justify-content:center;padding:12px}.app-rail .lateral-sair button svg{width:20px;height:20px}
 .app-rail .rail-conta summary{text-align:center;font-size:22px;padding:4px}.app-rail .rail-conta summary span{display:none}
 .app-rail .rail-conta-painel{position:fixed;left:62px;top:52px;width:270px;max-height:calc(100vh - 64px);overflow:auto;background:var(--teal-escuro);border-radius:0 8px 8px 0;box-shadow:0 8px 24px #1233}
 .app-rail .barra-paciente.bp-rolagem{left:62px}.app-rail .app-main{max-width:none}
}
@media(max-width:960px){.rail-popup{position:static;width:100%;box-shadow:none;margin:4px 0 8px}.rail-conta-painel{position:static}.rail-link{min-height:44px}}
@media print{.rail-popup,.rail-conta{display:none!important}}

/* Farmácia × internação: a mesma linguagem de situação em todo lugar */
.sit { display: inline-block; padding: 1px 7px; border-radius: 999px; font-size: .74rem; font-weight: 700; line-height: 1.5; vertical-align: middle; white-space: nowrap; }
.sit-programado { background: #EAEFF0; color: var(--suave); }
.sit-separado { background: #E0EDFA; color: #1B4F80; }
.sit-aplicado { background: var(--ok-fundo); color: #14593D; }
.sit-nao_aplicado { background: var(--erro-fundo); color: #8D2821; }
.sit-tutor { background: #EFE3F7; color: #5B2B7A; }
.sit-farmacia { background: var(--teal-fundo); color: var(--teal-escuro); }
.sit-sem { background: var(--coleira-fundo); color: #7A4F05; }
.mx-separado { background: #E0EDFA; border-color: #9DC0E4; color: #1B4F80; }
.mx-atrasado.mx-separado { background: var(--erro); color: #fff; }
.int-farm-linha { display: block; margin: 4px 0; overflow-wrap: anywhere; }
.int-vinculo > summary { cursor: pointer; font-size: .85rem; list-style: none; }
.int-vinculo > summary::-webkit-details-marker { display: none; }
.lista-separar { columns: 2 260px; }
.lista-separar li { break-inside: avoid; }
@media print { .lista-separar { columns: 1; } }
.opcoes-linha { border: 0; padding: 0; margin: 0 0 10px; min-width: 0; display: flex; flex-wrap: wrap; gap: 4px 16px; align-items: center; }
.opcoes-linha legend { padding: 0; margin-bottom: 4px; width: 100%; }
.lote-marca { display: flex; align-items: center; padding-right: 6px; }
.lote-marca input { width: 22px; height: 22px; accent-color: var(--teal); }
.barra-lote { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--linha); }
.bloco-separar + .bloco-separar { margin-top: 14px; padding-top: 10px; border-top: 1px solid var(--linha); }
#prescricao > .painel-cab form { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
#prescricao > .painel-cab .campo-inline { margin: 0; }
#prescricao > .painel-cab .campo-inline select { max-width: 280px; }
.etiqueta form.inline { display: inline; margin-left: 4px; }
.etiqueta form.inline .botao-link { padding: 0 2px; font-size: 1rem; line-height: 1; }
.conta-tutor { margin: 0 0 8px; }
.conta-tutor div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.conta-tutor dt { font-weight: 400; } .conta-tutor dd { margin: 0; font-weight: 700; white-space: nowrap; }

/* Prescrição inteligente da internação */
.prescrever > summary { list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; cursor: pointer; }
.prescrever > summary::-webkit-details-marker { display: none; }
.prescrever[open] > summary .btn { background: var(--teal-escuro); }
.prescrever-form { max-width: 920px; }
.pills { border: 0; padding: 0; margin: 0 0 14px; min-width: 0; display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.pills > legend { padding: 0; margin-bottom: 6px; }
.pill { position: relative; display: inline-flex; }
.pill input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pill span { display: inline-flex; align-items: center; min-height: 40px; padding: 6px 14px; border: 1px solid var(--linha); border-radius: 999px; background: var(--branco); color: var(--tinta); font-weight: 700; font-size: .92rem; cursor: pointer; user-select: none; }
.pill input:checked + span { background: var(--teal); border-color: var(--teal); color: #fff; }
.pill input:focus-visible + span { outline: 3px solid var(--coleira); outline-offset: 2px; }
.pill span:hover { border-color: var(--teal); }
.campo-mini { margin: 0; min-width: 120px; max-width: 220px; }
.busca-med { position: relative; }
.busca-med input[name="medicamento"] { font-size: 1.15rem; padding: 12px 14px; }
.sugestoes { position: absolute; z-index: 20; left: 0; right: 0; top: 100%; margin: -6px 0 0; padding: 4px; list-style: none; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); box-shadow: 0 8px 24px rgba(22, 38, 44, .14); max-height: 340px; overflow-y: auto; }
.sugestoes li { display: flex; flex-direction: column; padding: 9px 12px; border-radius: var(--raio-p); cursor: pointer; }
.sugestoes li small { font-size: .82rem; color: var(--suave); }
.sugestoes li small.texto-ok { color: var(--ok); } .sugestoes li small.texto-erro { color: var(--erro); }
.sugestoes li:hover, .sugestoes li.ativo { background: var(--teal-fundo); }
.escolhido { margin: -4px 0 12px; font-size: .9rem; min-height: 0; }
.escolhido:empty { display: none; }
.linha-dose { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: flex-end; }
.linha-dose .campo { margin-bottom: 0; }
.linha-dose .campo-qtd input { max-width: 120px; font-size: 1.1rem; }
.campo-peso .campo-qtd b { align-self: center; padding: 0 6px; color: var(--suave); }
.campo-peso small { display: block; }
.frase-dose { margin: 10px 0 16px; font-size: 1.05rem; min-height: 1.4em; }
.frase-dose strong { color: var(--teal-escuro); font-size: 1.15rem; }
.resumo-presc { border: 1px solid var(--linha); background: var(--papel); border-radius: var(--raio); padding: 12px 16px; margin: 6px 0 14px; }
.resumo-presc p { margin: 0 0 6px; } .resumo-presc p:last-child { margin-bottom: 0; }
.resumo-presc .aviso { margin: 8px 0 0; }
.mais-opcoes { margin-top: 4px; }
.mg-nome { color: var(--tinta); text-decoration: none; } .mg-nome:hover strong { text-decoration: underline; color: var(--teal); }
.mapa-grade tr.mg-aberto th, .mapa-grade tr.mg-aberto td { background: var(--teal-fundo); }
.mapa-grade .mg-item .sit { font-size: .68rem; padding: 0 6px; text-decoration: none; }
.item-dose { font-size: 1.05rem; margin: 0 0 8px; }
.item-fatos { margin: 0 0 12px; padding-left: 18px; color: var(--tinta); }
.item-fatos li { margin-bottom: 4px; overflow-wrap: anywhere; }
@media (max-width: 600px) { .pill span { padding: 6px 11px; } .linha-dose .campo-qtd input { max-width: 96px; } }
.linha-dose .campo { min-width: 230px; }
.linha-dose .campo-peso { min-width: 140px; max-width: 170px; }
.linha-dose .campo-peso .campo-qtd > input { flex: 1 1 0; }
@media (max-width: 600px) { .linha-dose .campo { min-width: 0; flex: 1 1 100%; } .linha-dose .campo-peso { max-width: none; } }
.pills { align-items: center; }
.linha-dose { align-items: flex-start; }

/* Farmácia: início */
.busca-farm { display: flex; gap: 10px; align-items: stretch; margin: 4px 0 18px; }
.busca-farm .campo { flex: 1 1 auto; margin: 0; }
.busca-farm input[type=search] { font-size: 1.1rem; padding: 14px 16px; }
.farm-acoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin-bottom: 18px; }
.farm-acao { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio); text-decoration: none; color: var(--tinta); box-shadow: var(--sombra); min-height: 92px; }
.farm-acao strong { font-family: var(--fonte-titulo); font-size: 1.12rem; color: var(--teal-escuro); }
.farm-acao span { font-size: .88rem; color: var(--suave); }
.farm-acao:hover { border-color: var(--teal); }
.farm-acao:focus-visible { outline: 3px solid var(--coleira); outline-offset: 2px; }
.farm-num { display: inline-flex; align-items: center; justify-content: center; min-width: 34px; height: 34px; padding: 0 8px; border-radius: 999px; background: var(--teal-fundo); color: var(--teal-escuro); font-weight: 800; margin-right: 10px; }
.farm-num-alerta { background: var(--erro-fundo); color: #8D2821; }
.apresentacao { display: flex; flex-wrap: wrap; gap: 10px 12px; align-items: flex-end; }
.apresentacao .campo { margin: 0; min-width: 140px; flex: 1 1 140px; }
.apres-com { padding-bottom: 12px; color: var(--suave); font-weight: 700; }
@media (max-width: 600px) { .busca-farm { flex-direction: column; } .apres-com { display: none; } }
.farm-acoes { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .farm-acoes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .farm-acoes { grid-template-columns: minmax(0, 1fr); } .farm-acao { min-height: 0; } }
.abas-farm { position: relative; }
@media (max-width: 700px) { .abas-farm .abas-mais { position: static; } .abas-farm .abas-mais .menu-mais-painel { left: 0; right: 0; } }
.pills-mini { gap: 6px; margin: -4px 0 12px; }
.pill-btn { min-height: 34px; padding: 4px 12px; border: 1px solid var(--linha); border-radius: 999px; background: var(--branco); color: var(--teal-escuro); font: inherit; font-weight: 700; font-size: .85rem; cursor: pointer; }
.pill-btn:hover { border-color: var(--teal); background: var(--teal-fundo); }
.campo-conteudo { max-width: 160px; }
.apres-dica { flex: 1 1 100%; margin-top: -4px; }
.produto-form .frase-dose { margin: 0 0 6px; }
.abas-farm > a { position: relative; }
.produto-form [data-conc-un] { max-width: 220px; }

/* Farmácia: revisão geral */
.dica-aba { margin: -6px 0 16px; color: var(--suave); font-size: .92rem; }
.pills-filtro { margin: -6px 0 14px; }
.pill-link { display: inline-flex; align-items: center; min-height: 38px; padding: 6px 14px; border: 1px solid var(--linha); border-radius: 999px; background: var(--branco); color: var(--tinta); font-weight: 700; font-size: .9rem; text-decoration: none; }
.pill-link:hover { border-color: var(--teal); }
.pill-link.ativo { background: var(--teal); border-color: var(--teal); color: #fff; }
.acoes-linha { white-space: nowrap; font-size: .85rem; }
.acoes-linha a { margin-right: 8px; }
.busca-prod { position: relative; }
.busca-prod input[type=search] { width: 100%; }
.busca-prod .sugestoes { top: 100%; margin-top: 2px; }
.prod-info { margin: 6px 0 0; font-size: .85rem; color: var(--suave); }
.prod-info:empty { display: none; }
.prod-info strong { color: var(--teal-escuro); }
.linhas-entrada { display: grid; gap: 10px; }
.linha-entrada { display: grid; grid-template-columns: minmax(220px, 2.2fr) minmax(170px, 1.3fr) minmax(90px, .8fr) minmax(140px, 1fr) minmax(120px, 1fr) auto; gap: 10px; align-items: start; padding: 12px; border: 1px solid var(--linha); border-radius: var(--raio-p); background: var(--papel); }
.linha-entrada .campo { margin: 0; min-width: 0; }
.linha-entrada [data-remover-linha] { align-self: center; }
.check-mini { display: inline-flex; gap: 6px; align-items: center; margin-top: 4px; font-weight: 400; }
.check-mini input { width: 16px; height: 16px; margin: 0; }
@media (max-width: 1100px) { .linha-entrada { grid-template-columns: repeat(2, minmax(0, 1fr)); } .linha-entrada .campo-prod { grid-column: 1 / -1; } }
@media (max-width: 600px) { .linha-entrada { grid-template-columns: minmax(0, 1fr); } }

/* ---------- PDV (venda e orçamento) ---------- */
.pdv-busca { position: relative; margin-bottom: 12px; }
.pdv-busca input[type="search"] { font-size: 1.05rem; padding: 12px 14px; }
.pdv-itens { display: flex; flex-direction: column; gap: 8px; }
.pdv-linha { display: grid; grid-template-columns: minmax(200px, 1fr) 120px 56px 92px 84px 60px 92px 24px; gap: 8px; align-items: end; padding: 8px 0; border-bottom: 1px solid var(--linha); }
.pdv-linha .campo { margin: 0; min-width: 0; }
.pdv-linha .campo > span { font-size: .8rem; }
.pdv-form:not(.com-opcoes) .pdv-op { display: none; }
.pdv-form:not([data-orc="1"]) .pdv-linha, .pdv-form[data-orc="1"]:not(.com-opcoes) .pdv-linha { grid-template-columns: minmax(200px, 1fr) 120px 56px 92px 84px 92px 24px; }
.pdv-total { font-weight: 600; text-align: right; padding-bottom: 10px; white-space: nowrap; }
.pdv-rem { font-size: 1.3rem; line-height: 1; padding: 0 0 10px; }
.pdv-resumo { margin: 16px 0; padding: 12px 14px; background: var(--teal-fundo); border-radius: var(--raio); display: flex; flex-direction: column; gap: 6px; }
.pdv-resumo > div, [data-totais-opcoes] > div { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
[data-totais-opcoes] { display: flex; flex-direction: column; gap: 4px; }
[data-totais-opcoes] b { font-size: 1.1rem; }
.pdv-dg input { width: 120px; text-align: right; }
.pdv-total-geral strong { font-size: 1.5rem; }
.pdv-pagar { border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; margin: 0 0 12px; }
[data-pags] { display: flex; flex-direction: column; gap: 8px; margin-bottom: 6px; }
.pdv-pag { display: grid; grid-template-columns: minmax(140px, 1fr) 130px 80px 28px; gap: 8px; align-items: center; }
.pdv-pag select[hidden] { display: none; }
.pdv-troco { margin: 6px 0 0; font-weight: 600; min-height: 1.2em; }
.pdv-troco-ok { color: var(--ok); font-size: 1.15rem; }
.pdv-opcoes { border: 0; padding: 0; margin: 0 0 8px; }
@media (max-width: 720px) {
  .pdv-linha, .pdv-form:not([data-orc="1"]) .pdv-linha, .pdv-form[data-orc="1"]:not(.com-opcoes) .pdv-linha { grid-template-columns: 1fr 1fr 1fr; }
  .pdv-desc { grid-column: 1 / -1; }
  .pdv-prof { grid-column: 1 / 3; }
  .pdv-linha { position: relative; }
  .pdv-desc { padding-right: 30px; }
  .pdv-total { padding-bottom: 10px; }
  .pdv-rem { position: absolute; top: 6px; right: 0; padding: 0; }
  .pdv-pag { grid-template-columns: 1fr 1fr; }
}
.turno { border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px 14px; margin-bottom: 12px; }
.numeros-p .numero b { font-size: 1.15rem; }
.pacote-item { border: 1px solid var(--linha); border-radius: var(--raio); padding: 10px 12px; margin-bottom: 8px; }
.dre .tabela td:last-child, .dre .tabela th:last-child { text-align: right; white-space: nowrap; }
.dre-grupo th { padding-top: 16px; color: var(--suave); font-size: .85rem; text-transform: uppercase; letter-spacing: .04em; }
.dre-sub th { border-top: 2px solid var(--linha); }
.dre-total th { border-top: 2px solid var(--tinta); font-size: 1.15rem; }
.pagar-conta > summary { list-style: none; cursor: pointer; }
.pagar-conta > summary::-webkit-details-marker { display: none; }
.orc-opcao.orc-escolhida { border: 2px solid var(--teal); }
.orc-escolher { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.orc-escolher input { width: 22px; height: 22px; }
.orc-total { text-align: right; font-size: 1.1rem; margin-top: 8px; }
.orc-opcao .lista li, .resumo-tutor .lista li { display: flex; justify-content: space-between; gap: 12px; }

/* ---------- Laudos: editor tipo Word ---------- */
.laudo-grade { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 20px; align-items: start; }
.laudo-principal { min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.laudo-principal .painel { margin: 0; }
.laudo-lado { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 76px; max-height: calc(100vh - 92px); overflow-y: auto; }
.laudo-lado .painel { margin: 0; }
.laudo-topo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 300px); gap: 12px; align-items: end; }
.laudo-dados { margin: 6px 0 10px; }
.laudo-barra { position: sticky; top: 76px; z-index: 5; display: flex; flex-wrap: wrap; gap: 6px; padding: 8px; margin: 8px 0 0; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio) var(--raio) 0 0; box-shadow: 0 4px 10px -8px rgba(22, 38, 44, .25); }
.laudo-barra-g { display: inline-flex; gap: 2px; padding-right: 6px; border-right: 1px solid var(--linha); }
.laudo-barra-g:last-child { border-right: 0; }
.laudo-barra button { min-height: 34px; min-width: 34px; padding: 4px 9px; border: 1px solid transparent; border-radius: 6px; background: transparent; color: var(--tinta); font: inherit; font-size: .88rem; cursor: pointer; }
.laudo-barra button:hover, .laudo-barra button:focus-visible { background: var(--teal-fundo); border-color: var(--linha); }
.laudo-voz.gravando { background: #FDE7E5 !important; color: var(--erro); border-color: var(--erro) !important; }
.laudo-folha { background: #E9EFF1; padding: 18px; border: 1px solid var(--linha); border-top: 0; border-radius: 0 0 var(--raio) var(--raio); }
.laudo-editor { background: #fff; min-height: 60vh; max-width: 820px; margin: 0 auto; padding: 32px 40px; box-shadow: 0 6px 24px -14px rgba(0, 0, 0, .35); border-radius: 4px; outline: none; }
.laudo-editor:focus { box-shadow: 0 0 0 2px var(--teal), 0 6px 24px -14px rgba(0, 0, 0, .35); }
.laudo-editor:empty::before { content: 'Escolha um modelo ao lado ou comece a escrever o laudo…'; color: var(--suave); }
.laudo-corpo { font-size: 15px; line-height: 1.6; color: var(--tinta); overflow-wrap: anywhere; }
.laudo-corpo p { margin: 0 0 8px; }
.laudo-corpo h2 { font-size: 1rem; color: var(--teal); text-transform: uppercase; letter-spacing: .05em; margin: 20px 0 6px; padding-bottom: 3px; border-bottom: 1px solid var(--linha); }
.laudo-corpo h3 { font-size: .98rem; margin: 14px 0 2px; }
.laudo-corpo h4 { font-size: .95rem; margin: 10px 0 2px; }
.laudo-corpo ul, .laudo-corpo ol { margin: 0 0 8px; padding-left: 24px; }
.laudo-corpo table { width: 100%; border-collapse: collapse; margin: 6px 0 14px; font-size: .92rem; }
.laudo-corpo th, .laudo-corpo td { border: 1px solid var(--linha); padding: 5px 8px; text-align: left; vertical-align: top; min-width: 40px; }
.laudo-corpo th { background: #F4F8F9; color: var(--suave); font-size: .85rem; }
.laudo-corpo blockquote { margin: 0 0 8px; padding-left: 12px; border-left: 3px solid var(--linha); color: var(--suave); }
.laudo-leitura { border: 1px solid var(--linha); border-radius: var(--raio); padding: 18px 22px; margin-top: 10px; }
.laudo-estado { margin: 8px 0 0; font-size: .85rem; }
.laudo-por-pagina { margin: 0; }
.laudo-zona { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; padding: 26px 16px; border: 2px dashed var(--linha); border-radius: var(--raio); background: #F7FAFB; cursor: pointer; transition: border-color .15s, background .15s; }
.laudo-zona input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.laudo-zona span { font-size: .88rem; color: var(--suave); }
.laudo-zona:hover, .laudo-zona:focus-within, .laudo-zona.arrastando { border-color: var(--teal); background: var(--teal-fundo); }
.laudo-zona.enviando { opacity: .6; pointer-events: none; }
.laudo-img-msg { min-height: 1.2em; margin: 8px 0; font-size: .9rem; }
.laudo-imgs { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; }
.laudo-img { position: relative; margin: 0; padding: 8px; border: 1px solid var(--linha); border-radius: var(--raio); background: var(--branco); display: flex; flex-direction: column; gap: 6px; cursor: grab; }
.laudo-img.movendo { opacity: .4; }
.laudo-img img { width: 100%; height: 140px; object-fit: contain; background: #111; border-radius: 4px; display: block; }
.laudo-img input { font-size: .85rem; padding: 6px 8px; min-height: 0; }
.laudo-img figcaption { font-size: .85rem; color: var(--suave); }
.laudo-img-num { position: absolute; top: 12px; left: 12px; background: var(--teal); color: #fff; font-weight: 700; font-size: .8rem; border-radius: 99px; padding: 1px 8px; }
.laudo-img-acoes { display: flex; gap: 10px; justify-content: space-between; }
.laudo-imgs-ver .laudo-img { cursor: default; }
.laudo-frases-busca { width: 100%; margin-bottom: 8px; }
.laudo-frases details { border-bottom: 1px solid var(--linha); }
.laudo-frases summary { cursor: pointer; padding: 8px 2px; font-weight: 700; font-size: .92rem; }
.laudo-frase { display: flex; gap: 4px; align-items: flex-start; }
.laudo-frase-bt { flex: 1; text-align: left; font: inherit; font-size: .86rem; line-height: 1.4; padding: 7px 9px; margin: 0 0 6px; border: 1px solid var(--linha); border-radius: 6px; background: #F7FAFB; color: var(--tinta); cursor: pointer; }
.laudo-frase-bt:hover, .laudo-frase-bt:focus-visible { border-color: var(--teal); background: var(--teal-fundo); }
.laudo-assinar .check { margin: 4px 0 10px; }
@media (max-width: 1100px) { .laudo-grade { grid-template-columns: 1fr; } .laudo-lado { position: static; max-height: none; } }
@media (max-width: 720px) {
  .laudo-topo { grid-template-columns: 1fr; }
  .laudo-folha { padding: 0; background: transparent; border: 0; }
  .laudo-editor { padding: 16px 14px; min-height: 50vh; box-shadow: none; border: 1px solid var(--linha); }
  .laudo-barra { position: static; flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
  .laudo-barra-g { flex-shrink: 0; }
  .laudo-barra button { white-space: nowrap; }
  .laudo-imgs { grid-template-columns: 1fr 1fr; }
  .laudo-img img { height: 110px; }
}
.laudo-dados { margin: 6px 0 12px; border: 1px solid var(--linha); border-radius: var(--raio); padding: 8px 12px; background: #F7FAFB; }
.laudo-dados[open] { padding-bottom: 12px; }
.laudo-dados > summary { font-weight: 700; }
.laudo-dados-corpo { margin-top: 10px; }
.laudo-pac { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.laudo-busca-pac { position: relative; }
.laudo-busca-pac > label { display: block; font-weight: 700; font-size: .9rem; margin-bottom: 4px; }
.laudo-busca-pac .sugestoes { margin-top: 2px; }
.empresa-logo { width: 48px; height: 48px; display: grid; place-items: center; flex-shrink: 0; margin-right: 10px; }
.empresa-logo img { max-width: 48px; max-height: 48px; object-fit: contain; }
.cab-mono-p { width: 40px; height: 40px; border-radius: 50%; background: var(--teal); color: #fff; display: grid; place-items: center; font-weight: 800; font-size: .9rem; }
.preco-linha { display: grid; grid-template-columns: minmax(0, 1fr) 100px 28px; gap: 6px; margin-bottom: 6px; align-items: center; }
.envio-exame .laudo-zona { margin-bottom: 8px; }
.laudo-orgaos { display: flex; flex-direction: column; gap: 2px; }
.laudo-orgao { display: grid; grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 8px; align-items: center; padding: 6px 4px; border-bottom: 1px solid var(--linha); }
.org-nome { text-align: left; background: none; border: 0; padding: 0; font: inherit; font-weight: 700; font-size: .9rem; color: var(--tinta); cursor: pointer; min-width: 0; overflow-wrap: anywhere; }
.org-nome:hover { color: var(--teal); text-decoration: underline; }
.org-st { font-size: .75rem; border-radius: 99px; padding: 1px 8px; }
.org-normal .org-st { background: #E3F4EA; color: var(--ok); }
.org-alterado .org-st { background: #FDF2DC; color: #8A5A06; }
.laudo-orgao .botao-link { font-size: .85rem; }
.org-achados { padding: 8px 4px 12px; display: flex; flex-direction: column; gap: 6px; border-bottom: 1px solid var(--linha); background: #F7FAFB; }
.org-achados .check { align-items: flex-start; font-size: .86rem; line-height: 1.35; }
.org-achados textarea { min-height: 0; font-size: .88rem; }
.laudo-calc [data-calc-campos] { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 8px; }
.laudo-calc [data-calc-campos] .campo:first-child:has(select) { grid-column: 1 / -1; }
.laudo-calc-res { min-height: 1.2em; font-weight: 700; font-size: .92rem; margin: 4px 0; }
.laudo-atalho { display: block; margin-top: 3px; color: var(--teal); font-weight: 700; font-size: .78rem; }

/* ---------- Editor de imagem e comparação (laudo) ---------- */
.img-editor { position: fixed; inset: 0; z-index: 1000; background: rgba(10, 20, 24, .78); display: flex; align-items: center; justify-content: center; padding: 16px; }
.img-editor-caixa { background: #12201F; color: #fff; border-radius: var(--raio); width: min(1200px, 100%); max-height: 100%; display: flex; flex-direction: column; overflow: hidden; box-shadow: 0 10px 40px rgba(0,0,0,.4); }
.img-editor-barra { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 12px; border-bottom: 1px solid rgba(255,255,255,.12); }
.img-editor-barra button, .img-editor-dica button { font: inherit; font-size: .9rem; background: rgba(255,255,255,.1); color: #fff; border: 1px solid rgba(255,255,255,.2); border-radius: var(--raio-p); padding: 6px 10px; min-height: 36px; cursor: pointer; }
.img-editor-barra button:hover, .img-editor-dica button:hover { background: rgba(255,255,255,.2); }
.img-editor-barra button.ativo { background: var(--coleira); color: var(--tinta); border-color: var(--coleira); }
.img-editor-barra button.principal, .img-editor-dica button { background: var(--coleira); color: var(--tinta); border-color: var(--coleira); font-weight: 700; }
.img-editor-barra button:disabled { opacity: .6; cursor: wait; }
.img-cores { display: inline-flex; gap: 6px; padding: 0 4px; }
.img-cores button { width: 30px; height: 30px; min-height: 30px; padding: 0; border-radius: 50%; border: 2px solid rgba(255,255,255,.5); }
.img-cores button.ativo { outline: 3px solid var(--coleira); outline-offset: 2px; }
.img-editor-fim { margin-left: auto; display: inline-flex; gap: 6px; }
.img-editor-dica { margin: 0; padding: 8px 12px; font-size: .9rem; color: rgba(255,255,255,.8); }
.img-editor-palco { flex: 1; overflow: auto; display: flex; align-items: center; justify-content: center; padding: 8px 12px 14px; background: #000; }
.img-editor-palco canvas { max-width: 100%; max-height: 70vh; touch-action: none; cursor: crosshair; display: block; }
.img-comparar .img-editor-caixa { background: var(--branco); color: var(--tinta); }
.img-comparar .img-editor-barra { border-bottom-color: var(--linha); }
.cmp-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 12px; overflow: auto; }
.cmp-col h3 { font-size: 1rem; margin: 0 0 8px; position: sticky; top: 0; background: var(--branco); padding: 4px 0; }
.cmp-col figure { margin: 0 0 12px; }
.cmp-col img { width: 100%; height: auto; border-radius: var(--raio-p); background: #000; display: block; }
.cmp-col figcaption { font-size: .85rem; color: var(--suave); margin-top: 4px; }
@media (max-width: 700px) {
  .img-editor { padding: 0; }
  .img-editor-caixa { border-radius: 0; height: 100%; }
  .img-editor-fim { margin-left: 0; width: 100%; justify-content: flex-end; }
  .cmp-grade { grid-template-columns: 1fr; }
}

/* ---------- Mensagens empresa ↔ laudador ---------- */
.msgs { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-direction: column; gap: 8px; max-height: 360px; overflow-y: auto; }
.msg { max-width: 88%; padding: 8px 12px; border-radius: 12px; background: var(--papel); border: 1px solid var(--linha); }
.msg small { display: block; color: var(--suave); font-size: .78rem; }
.msg p { margin: 2px 0 0; overflow-wrap: anywhere; }
.msg-eu { align-self: flex-end; background: var(--teal-fundo); border-color: transparent; }
.msg-outro { align-self: flex-start; }
.envio-exame-linha { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto; gap: 8px; align-items: center; margin-bottom: 8px; }
.envio-exames .lista-corpo small .etiqueta { margin-right: 2px; }
@media (max-width: 600px) { .envio-exame-linha { grid-template-columns: minmax(0, 1fr) auto; } .envio-exame-linha input { grid-column: 1; } .envio-exame-linha button { grid-row: 1; grid-column: 2; } }

/* ---------- Faixa de edição tipo Word ---------- */
.rb { position: sticky; top: 76px; z-index: 6; margin: 8px 0 0; background: var(--branco); border: 1px solid var(--linha); border-radius: var(--raio) var(--raio) 0 0; box-shadow: 0 4px 10px -8px rgba(22, 38, 44, .25); }
.rb-topo { display: flex; align-items: flex-end; justify-content: space-between; gap: 8px; padding: 4px 8px 0; border-bottom: 1px solid var(--linha); background: var(--papel); border-radius: var(--raio) var(--raio) 0 0; }
.rb-abas { display: flex; gap: 2px; overflow-x: auto; scrollbar-width: none; }
.rb-abas button { flex-shrink: 0; font: inherit; font-size: .88rem; padding: 7px 14px; border: 1px solid transparent; border-bottom: 0; border-radius: 6px 6px 0 0; background: transparent; color: var(--suave); cursor: pointer; white-space: nowrap; margin-bottom: -1px; }
.rb-abas button[aria-selected="true"] { background: var(--branco); color: var(--teal); border-color: var(--linha); font-weight: 700; }
.rb-abas button:hover { color: var(--tinta); }
.rb-fixo { display: flex; gap: 2px; padding-bottom: 3px; }
.rb-painel { display: flex; gap: 0; padding: 6px 6px 2px; overflow-x: auto; scrollbar-width: thin; }
.rb-painel[hidden] { display: none; }
.rb-g { display: flex; flex-direction: column; justify-content: space-between; gap: 2px; padding: 0 8px; border-right: 1px solid var(--linha); flex-shrink: 0; }
.rb-g:last-of-type { border-right: 0; }
.rb-g-itens { display: flex; flex-direction: column; gap: 3px; }
.rb-g-nome { font-size: .7rem; color: var(--suave); text-align: center; padding-top: 1px; }
.rb-linha { display: flex; align-items: center; gap: 2px; flex-wrap: nowrap; }
.rb button { min-height: 30px; min-width: 30px; padding: 3px 7px; border: 1px solid transparent; border-radius: 5px; background: transparent; color: var(--tinta); font: inherit; font-size: .85rem; cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; }
.rb button:hover, .rb button:focus-visible { background: var(--teal-fundo); border-color: var(--linha); }
.rb button.ativo { background: var(--teal-fundo); border-color: var(--teal); color: var(--teal-escuro); }
.rb select, .rb input[type="search"], .rb input[type="text"] { font: inherit; font-size: .83rem; height: 30px; padding: 2px 6px; border: 1px solid var(--linha); border-radius: 5px; background: var(--branco); color: var(--tinta); }
.rb [data-rb-fonte] { width: 140px; } .rb [data-rb-tam] { width: 64px; } .rb [data-rb-espaco] { width: 88px; }
.rb input[type="search"], .rb input[type="text"] { width: 150px; }
.rb-num { display: inline-flex; align-items: center; gap: 4px; font-size: .8rem; color: var(--suave); }
.rb-num input { width: 52px; height: 30px; font: inherit; font-size: .85rem; padding: 2px 4px; border: 1px solid var(--linha); border-radius: 5px; }
.rb-cor { position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; border-radius: 5px; cursor: pointer; }
.rb-cor:hover { background: var(--teal-fundo); }
.rb-cor-a { font-weight: 700; font-size: .9rem; border-bottom: 4px solid #B42318; line-height: 1.1; padding: 0 3px; }
.rb-realce .rb-cor-a { background: #FFF176; border-bottom-color: transparent; }
.rb-cor input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; border: 0; padding: 0; }
.rb-estilos { display: grid; grid-template-columns: repeat(3, auto); gap: 2px; }
.rb-estilos button { justify-content: flex-start; min-width: 74px; border-color: var(--linha); background: var(--branco); }
.rb-est-h2 { font-weight: 700; color: var(--teal); text-transform: uppercase; font-size: .78rem; letter-spacing: .04em; }
.rb-est-h3 { font-weight: 700; } .rb-est-h4 { font-weight: 700; font-size: .8rem; } .rb-est-cit { font-style: italic; color: var(--suave); }
.rb-simbolos { display: grid; grid-template-columns: repeat(8, 28px); gap: 1px; }
.rb-simbolos button { min-width: 28px; min-height: 26px; padding: 0; }
.rb-dica { margin: 0; padding: 4px 8px; font-size: .78rem; color: var(--suave); max-width: 260px; align-self: center; }
.rb-msg { font-size: .8rem; color: var(--suave); padding-left: 4px; }
.laudo-corpo hr.quebra-pagina, .laudo-editor hr.quebra-pagina { border: 0; border-top: 2px dashed var(--linha); margin: 18px 0; position: relative; overflow: visible; }
.laudo-editor hr.quebra-pagina::after { content: 'Quebra de página'; position: absolute; left: 50%; top: -9px; transform: translateX(-50%); background: var(--branco); padding: 0 8px; font-size: 11px; color: var(--suave); }
.laudo-orgaos-pop { border: 1px solid var(--linha); border-top: 0; background: var(--branco); padding: 10px 12px; max-height: 360px; overflow-y: auto; }
.laudo-orgaos-pop .painel-cab { margin-bottom: 4px; }
@media (max-width: 760px) {
  .rb { position: static; }
  .rb-abas button { padding: 7px 10px; }
  .rb-painel { flex-wrap: wrap; row-gap: 8px; padding-bottom: 6px; }
  .rb-g { border-right: 0; border-bottom: 1px solid var(--linha); padding-bottom: 6px; width: 100%; }
  .rb-g:last-of-type { border-bottom: 0; }
  .rb-linha { flex-wrap: wrap; }
  .rb-g-nome { text-align: left; }
  .rb [data-rb-fonte] { width: 150px; }
}
@media print { .laudo-corpo hr.quebra-pagina { border: 0; margin: 0; break-after: page; page-break-after: always; } }

/* ---------- Assinatura no laudo ---------- */
.laudo-assin { border: 1px solid var(--linha); border-radius: var(--raio); padding: 12px; margin: 10px 0; background: var(--papel); }
.laudo-assin-ver { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 8px; }
.laudo-assin-img { min-width: 180px; height: 70px; display: flex; align-items: flex-end; justify-content: center; border-bottom: 1px solid var(--tinta); padding: 0 10px 2px; background: var(--branco); border-radius: 6px 6px 0 0; }
.laudo-assin-img img { max-height: 64px; max-width: 240px; }
.laudo-assin-carimbo { display: flex; flex-direction: column; font-size: .9rem; }
.laudo-assin-carimbo small { color: var(--suave); }
.laudo-assin label.btn { cursor: pointer; }
.assin-pad .img-editor-caixa { width: min(760px, 100%); background: var(--branco); color: var(--tinta); }
.assin-pad .img-editor-barra { border-bottom-color: var(--linha); }
.assin-pad .img-editor-barra button:not(.principal) { background: var(--papel); color: var(--tinta); border-color: var(--linha); }
.assin-pad .img-editor-dica { color: var(--suave); }
.assin-quadro { position: relative; margin: 0 12px 14px; border: 1px dashed var(--linha); border-radius: var(--raio); background: #fff; }
.assin-quadro canvas { display: block; width: 100%; height: auto; touch-action: none; cursor: crosshair; }
.assin-linha { position: absolute; left: 8%; right: 8%; bottom: 22%; border-bottom: 1px solid #B9C7CB; pointer-events: none; }

/* ---------- Visualizador DICOM ---------- */
html.dcm-aberto, html.dcm-aberto body { overflow: hidden; }
.dcm { position: fixed; inset: 0; z-index: 1100; background: #0B1114; color: #E6EEF0; display: flex; flex-direction: column; font-size: 14px; }
.dcm-barra { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; padding: 8px 10px; background: #121C20; border-bottom: 1px solid #22323A; }
.dcm-grupo { display: flex; flex-wrap: nowrap; gap: 4px; align-items: center; }
.dcm-fim { margin-left: auto; }
.dcm select { max-width: 130px; }
.dcm button, .dcm select { font: inherit; font-size: .85rem; min-height: 34px; padding: 5px 10px; border-radius: 6px; border: 1px solid #2C3E46; background: #18252B; color: #E6EEF0; cursor: pointer; }
.dcm button:hover { background: #22343C; }
.dcm button.ativo { background: #F2B33D; color: #16262C; border-color: #F2B33D; font-weight: 700; }
.dcm button.principal { background: #F2B33D; color: #16262C; border-color: #F2B33D; font-weight: 700; }
.dcm button:disabled { opacity: .6; cursor: wait; }
.dcm-corpo { flex: 1; display: flex; min-height: 0; }
.dcm-lista { width: 190px; flex-shrink: 0; overflow-y: auto; border-right: 1px solid #22323A; padding: 6px; display: flex; flex-direction: column; gap: 4px; }
.dcm-lista[hidden] { display: none; }
.dcm .dcm-item { display: flex; gap: 6px; align-items: baseline; text-align: left; width: 100%; padding: 6px 8px; }
.dcm .dcm-item span { color: #8FA6AD; font-size: .75rem; min-width: 18px; }
.dcm .dcm-item small { color: inherit; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dcm .dcm-item.ativo { background: #0E5E6F; border-color: #2A8296; color: #fff; font-weight: 400; }
.dcm-palco { position: relative; flex: 1; min-width: 0; overflow: hidden; cursor: crosshair; touch-action: none; }
.dcm-palco canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.dcm-canto { position: absolute; font-size: 12px; line-height: 1.4; color: #E6EEF0; text-shadow: 0 1px 2px #000, 0 0 4px #000; pointer-events: none; }
.dcm-ce { top: 8px; left: 10px; } .dcm-cd { top: 8px; right: 10px; text-align: right; } .dcm-be { bottom: 8px; left: 10px; color: #B9C9CE; }
.dcm-msg { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); max-width: min(520px, 90%); text-align: center; background: rgba(18, 28, 32, .92); border: 1px solid #2C3E46; border-radius: 10px; padding: 14px 18px; line-height: 1.5; }
.dcm-info { position: absolute; top: 8px; right: 8px; max-height: calc(100% - 16px); overflow-y: auto; width: min(340px, 90%); background: rgba(18, 28, 32, .95); border: 1px solid #2C3E46; border-radius: 10px; padding: 10px 14px; font-size: 13px; }
.dcm-info dl { display: grid; grid-template-columns: auto 1fr; gap: 3px 10px; margin: 0; } .dcm-info dt { color: #8FA6AD; } .dcm-info dd { margin: 0; overflow-wrap: anywhere; }
.dcm-rodape { display: flex; gap: 10px; align-items: center; padding: 8px 12px; background: #121C20; border-top: 1px solid #22323A; }
.dcm-rodape[hidden] { display: none; }
.dcm-rodape input[type="range"] { flex: 1; accent-color: #F2B33D; }
.dcm-rodape span { font-size: .85rem; color: #B9C9CE; white-space: nowrap; }
.dcm-fps { display: flex; gap: 6px; align-items: center; font-size: .8rem; color: #B9C9CE; }
.laudo-zona-p { padding: 14px; }
.dcm-arquivos { max-height: 220px; overflow-y: auto; }
@media (max-width: 760px) {
  .dcm-barra { gap: 4px; padding: 6px; overflow-x: auto; flex-wrap: nowrap; }
  .dcm-grupo { flex-wrap: nowrap; }
  .dcm-fim { margin-left: 0; }
  .dcm button, .dcm select { white-space: nowrap; padding: 4px 8px; }
  .dcm-corpo { flex-direction: column; }
  .dcm-lista { width: auto; flex-direction: row; overflow-x: auto; border-right: 0; border-bottom: 1px solid #22323A; max-height: 54px; }
  .dcm .dcm-item { width: auto; flex-shrink: 0; max-width: 160px; }
}
.laudo-req-item { display: flex; gap: 8px; align-items: center; padding: 6px; border: 1px solid var(--linha); border-radius: var(--raio-p); margin-bottom: 6px; text-decoration: none; color: var(--tinta); }
.laudo-req-item img { width: 64px; height: 64px; object-fit: cover; border-radius: 4px; background: var(--papel); }
.laudo-req-pdf { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; background: var(--erro-fundo); color: var(--erro); font-weight: 700; border-radius: 4px; }
.laudo-req-item small { overflow-wrap: anywhere; }
/* lado a lado: imagem à esquerda, laudo à direita */
html.dcm-lado.dcm-aberto, html.dcm-lado.dcm-aberto body { overflow: auto; }
html.dcm-lado .dcm { right: auto; width: 50vw; border-right: 3px solid #0E5E6F; }
html.dcm-lado body { padding-left: 50vw; }
html.dcm-lado .dcm-lista { width: 120px; }
html.dcm-lado .dcm-barra { flex-wrap: wrap; }
body.dcm-pagina { background: #0B1114; }
@media (max-width: 900px) { html.dcm-lado .dcm { width: 100vw; } html.dcm-lado body { padding-left: 0; } }
html.dcm-lado .lateral, html.dcm-lado .app-barra { display: none !important; }
html.dcm-lado .app-corpo { margin-left: 0 !important; padding-left: 0 !important; }
html.dcm-lado .laudo-grade { grid-template-columns: minmax(0, 1fr); }
html.dcm-lado .app-main { padding-left: 16px; padding-right: 16px; }
.cobrar-avulso { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: flex-end; }
.cobrar-avulso input[type="text"] { width: 96px; } .cobrar-avulso select { width: auto; }
html.dcm-lado .app, html.dcm-lado .app.app-rail { grid-template-columns: minmax(0, 1fr) !important; }

/* Áreas do sistema: Clínica, Rede profissional e Tele Vet */
.modo-menu.modo-menu-3 { grid-template-columns: repeat(3, 1fr); border-radius: 14px; }
.modo-menu.modo-menu-3 a { border-radius: 10px; font-size: .82rem; padding: 7px 4px; }
.rail-modos { display: flex; gap: 4px; padding: 4px; background: rgba(0,0,0,.18); border-radius: 12px; margin: 2px 4px 6px; }
.rail-modo { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 4px; border-radius: 9px; color: #d3e4e8; text-decoration: none; font-size: .72rem; font-weight: 700; text-align: center; line-height: 1.15; }
.rail-modo:hover { color: #fff; background: rgba(255,255,255,.08); }
.rail-modo.rail-modo-ativo { background: #fff; color: var(--teal-escuro); }
@media (min-width: 961px) {
  .app-rail .rail-modos { flex-direction: column; margin: 0; padding: 4px; }
  .app-rail .rail-modo { width: 42px; min-height: 40px; justify-content: center; padding: 8px 0; position: relative; }
  .app-rail .rail-modo span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .app-rail .rail-modo:hover span, .app-rail .rail-modo:focus-visible span { clip-path: none; width: auto; height: auto; left: 50px; top: 8px; background: var(--tinta); color: #fff; padding: 4px 8px; border-radius: 6px; white-space: nowrap; z-index: 120; font-size: .8rem; }
}

/* Planos: partes fora do plano ficam com cadeado no menu */
.rail-bloq { opacity: .62; }
.rail-bloq .rail-rotulo::after { content: " 🔒"; font-size: .85em; }
.recomendados { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.aviso-sessao { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 9999; width: min(640px, calc(100% - 32px)); box-shadow: 0 8px 30px rgba(0,0,0,.18); }
.aviso-sessao .btn { margin-left: 6px; }
/* Celular: o painel "Mais" vira uma coluna na largura da tela, sem passar da borda */
@media (max-width: 700px) {
  .menu-mais .menu-mais-painel { grid-template-columns: 1fr 1fr; width: calc(100vw - 32px); max-width: calc(100vw - 32px); }
}
@media (max-width: 420px) {
  .menu-mais .menu-mais-painel { grid-template-columns: 1fr; }
}
/* Pontinhos do carrossel: o ponto continua pequeno, mas a área de toque tem 40 px (dedo no celular) */
.carrossel-pontos { gap: 0; }
.carrossel-pontos button { box-sizing: content-box; width: 9px; height: 9px; padding: 15.5px 8px; background-clip: content-box; }
.carrossel-pontos button[aria-selected="true"] { width: 22px; }
.carrossel-pontos button::after { content: none; }
/* Ficha do paciente no celular: registros da internação quebram linha em vez de passar da tela */
.linha-corpo { min-width: 0; }
.linha-filhos li { overflow-wrap: anywhere; white-space: normal; }
/* Celular: o painel "Mais" abre como uma folha na parte de baixo da tela */
@media (max-width: 700px) {
  .menu-mais .menu-mais-painel { position: fixed; left: 16px; right: 16px; top: auto; bottom: 16px; width: auto; max-height: 70vh; z-index: 60; }
}

/* Avaliações: resposta pública e ações de quem foi avaliado */
.aval-resposta { margin: 6px 0 0; padding: 6px 10px; border-left: 3px solid var(--teal); background: var(--papel); border-radius: var(--raio-p); }
.aval-resposta p { margin: 2px 0 0; }
details.aval-acoes { margin-top: 6px; }
details.aval-acoes > summary { cursor: pointer; font-size: .85rem; list-style: none; }
details.aval-acoes > summary::-webkit-details-marker { display: none; }
details.aval-acoes .form { margin-top: 8px; gap: 8px; }

/* Barra lateral recolhida: o ícone de Sair não pode encolher (no Windows a barra de rolagem estreita a coluna) */
.lateral-sair button svg, .lateral-nav a svg { flex-shrink: 0; }
.app-rail .lateral-sair button { gap: 0; }
.app-rail .lateral-sair button span { display: none; }
.app-rail .lateral { scrollbar-width: thin; }
.app-rail .lateral::-webkit-scrollbar { width: 6px; }
.app-rail .lateral::-webkit-scrollbar-thumb { background: rgba(255,255,255,.25); border-radius: 3px; }
.site-nav a { white-space: nowrap; }
@media (max-width: 1260px) { .site-nav { gap: 14px; } .site-nav a { font-size: .88rem; } }
