/* Estilos do módulo prontuário (usa as variáveis de app.css). Tudo com o prefixo pront-. */

/* ---------------------------------------------------------- início do módulo */
.pront-busca {
  display: flex; align-items: center; gap: 12px; width: 100%; min-height: 54px; margin-bottom: 8px;
  padding: 0 20px; border: 0; border-radius: 999px; background: #fff; box-shadow: var(--sombra);
  color: var(--texto-3); font-size: 16px; text-align: left; cursor: pointer;
}
.pront-busca:hover { color: var(--texto-2); }
.pront-busca svg { width: 20px; height: 20px; }
.pront-secao-titulo { font-size: 15px; font-weight: 650; margin: 24px 4px 10px; color: var(--texto-2); }
.pront-verificar { display: flex; gap: 10px; }
.pront-verificar input { max-width: 220px; text-transform: uppercase; letter-spacing: 2px; font-variant-numeric: tabular-nums; }

/* ---------------------------------------------------------- topo, atendimento e botões de novo registro */
.pront-topo { margin-top: 8px; }
.pront-ficha { flex: none; }
.pront-atendimento { margin-top: 16px; }
.cartao.pront-atendimento.ativo { box-shadow: var(--sombra), inset 4px 0 0 var(--ouro); }
.pront-atend-linha { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.pront-atend-linha .principal { flex: 1; min-width: 200px; }
.pront-atend-opcoes { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.pront-atend-opcoes .campo { min-width: 240px; flex: 1; }
.pront-atendimento .pequeno svg { display: inline-block; width: 15px; height: 15px; vertical-align: -3px; }
.pront-cronometro { font-size: 34px; font-weight: 650; letter-spacing: 1px; font-variant-numeric: tabular-nums; line-height: 1.2; color: var(--texto); }
.pront-cronometro-modal { text-align: center; font-size: 40px; }
.pront-pendentes { display: flex; align-items: center; gap: 12px; margin-top: 16px; flex-wrap: wrap; }
.pront-pendentes > svg { width: 20px; height: 20px; flex: none; }
.pront-pendentes .principal { flex: 1; min-width: 180px; }
.pront-pendentes .botao { background: #fff; }

.pront-novos { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 18px 0; }
.pront-novo {
  display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 10px 14px; border: 0; border-radius: var(--raio-p);
  background: #fff; box-shadow: var(--sombra); color: var(--texto); font-size: 14px; font-weight: 600; text-align: left; cursor: pointer;
}
.pront-novo:hover { background: var(--fundo-2); }
.pront-novo svg { width: 22px; height: 22px; flex: none; color: var(--ouro-texto); }
.pront-novo span { min-width: 0; }
.pront-novo[data-pr-tipo="receita"] svg, .pront-novo[data-pr-tipo="atestado"] svg,
.pront-novo[data-pr-tipo="exames"] svg, .pront-novo[data-pr-tipo="laudo"] svg { color: var(--verde); }
.pront-novo[data-pr-tipo="privada"] svg { color: var(--texto-2); }
.pront-novo[data-pr-tipo="foto"] svg { color: var(--roxo); }

.pront-abas { margin-top: 6px; }
.pront-filtros { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.pront-filtros select { width: auto; min-width: 220px; }

/* ---------------------------------------------------------- linha do tempo */
.pront-tempo { display: flex; flex-direction: column; gap: 12px; }
.pront-dia { font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .8px; color: var(--texto-3); margin: 10px 4px 0; }
.pront-dia:first-child { margin-top: 0; }
.pront-item { background: #fff; border-radius: var(--raio); box-shadow: var(--sombra); padding: 16px 20px 8px; min-width: 0; }
.pront-item.rascunho { box-shadow: var(--sombra), inset 4px 0 0 var(--laranja); }
.pront-item.descartado { opacity: .65; }
.pront-item-topo { display: flex; align-items: center; gap: 12px; }
.pront-item-topo .principal { flex: 1; min-width: 0; }
.pront-item-topo .forte { overflow-wrap: anywhere; }
.pront-tipo-icone { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; flex: none; background: var(--ouro-suave); color: var(--ouro-texto); }
.pront-tipo-icone svg { width: 19px; height: 19px; }
.pront-item[data-pr-tipo="receita"] .pront-tipo-icone, .pront-item[data-pr-tipo="atestado"] .pront-tipo-icone,
.pront-item[data-pr-tipo="exames"] .pront-tipo-icone, .pront-item[data-pr-tipo="laudo"] .pront-tipo-icone { background: var(--verde-suave); color: var(--verde); }
.pront-item[data-pr-tipo="privada"] .pront-tipo-icone, .pront-item[data-pr-tipo="adendo"] .pront-tipo-icone { background: var(--fundo-2); color: var(--texto-2); }
.pront-selo .ic { width: 13px; height: 13px; }
.pront-conteudo { margin-top: 10px; max-height: 11.5em; overflow: hidden; position: relative; overflow-wrap: anywhere; }
.pront-conteudo.cortado { cursor: pointer; }
.pront-conteudo.cortado::after { content: "ver tudo"; position: absolute; left: 0; right: 0; bottom: 0; height: 2.6em; display: flex; align-items: flex-end; justify-content: flex-end;
  font-size: 12.5px; font-weight: 600; color: var(--ouro-texto); background: linear-gradient(rgba(255, 255, 255, 0), #fff 70%); pointer-events: none; }
.pront-conteudo.completo { max-height: none; overflow: visible; cursor: auto; }
.pront-conteudo.completo::after { display: none; }
.pront-conteudo p { margin: 6px 0; }
.pront-item-acoes { gap: 2px; margin-top: 4px; }
.pront-item-acoes .botao.texto { padding: 8px 10px; color: var(--texto-2); }
.pront-item-acoes .botao.texto:hover { color: var(--ouro-texto); background: var(--fundo-2); }
.pront-oculto { display: flex; align-items: center; gap: 12px; padding: 14px 20px; color: var(--texto-2); font-style: italic; }
.pront-oculto svg { width: 18px; height: 18px; flex: none; }
.pront-oculto .principal { flex: 1; min-width: 0; }

.pront-lista { margin: 6px 0; padding-left: 22px; }
.pront-lista li + li { margin-top: 6px; }
.pront-respostas { display: flex; flex-direction: column; gap: 4px; }
.pront-resposta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 12px; padding: 4px 0; box-shadow: inset 0 -1px 0 var(--linha); font-size: 14px; }
.pront-resp-secao { font-weight: 650; font-size: 13px; text-transform: uppercase; letter-spacing: .6px; color: var(--texto-3); margin-top: 8px; }
.pront-adendo { background: var(--fundo-2); border-radius: var(--raio-p); padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; }
.pront-assinatura { display: flex; gap: 10px; align-items: flex-start; }
.pront-assinatura > svg { width: 18px; height: 18px; flex: none; margin-top: 2px; }
.pront-hash { font-family: ui-monospace, Consolas, monospace; font-size: 11.5px; word-break: break-all; margin-top: 4px; color: var(--texto-3); }

/* ---------------------------------------------------------- editor */
.pront-form .dica { font-weight: 400; }
.pront-form input[type=time] {
  width: 100%; border: 1px solid #e3dfd5; background: #fff; border-radius: var(--raio-p);
  padding: 11px 14px; font-size: 16px; min-height: 46px; outline: none;
}
.pront-form input[type=time]:focus { border-color: var(--ouro); box-shadow: 0 0 0 4px rgba(196, 154, 34, .15); }
.pront-texto-grande { min-height: 220px; }
.pront-linhas { display: flex; flex-direction: column; gap: 10px; }
.pront-linha {
  display: grid; grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1fr) 44px; gap: 10px; align-items: end;
  background: var(--fundo-2); border-radius: var(--raio-p); padding: 12px;
}
.pront-linha input, .pront-linha textarea { background: #fff; }
.pront-l-largo { grid-column: 1 / -1; }
.pront-linha textarea { min-height: 60px; }
.pront-remover { color: var(--texto-3); }
.pront-remover:hover { color: var(--vermelho); background: #fff; }
.pront-comprador { border: 1px solid var(--linha); border-radius: var(--raio-p); padding: 14px 16px 16px; margin: 0; }
.pront-comprador legend { font-size: 13px; font-weight: 650; color: var(--texto-2); padding: 0 6px; }
.pront-previa { background: var(--fundo-2); border-radius: var(--raio-p); padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
.pront-cid { align-self: end; }
.pront-opcoes { display: flex; flex-wrap: wrap; gap: 0 18px; }
.pront-formulario { gap: 14px 18px; }
.pront-secao-form h3 { font-size: 15px; margin: 8px 0 2px; padding-top: 10px; box-shadow: inset 0 1px 0 var(--linha); }
.pront-secao-form:first-child h3 { box-shadow: none; padding-top: 0; }
.botao.pront-perigo, .pront-perigo { color: var(--vermelho); }

/* ---------------------------------------------------------- fotos e arquivos */
.pront-galeria { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.pront-foto { background: #fff; border-radius: var(--raio); box-shadow: var(--sombra); padding: 8px 8px 4px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.pront-foto-img { display: block; width: 100%; aspect-ratio: 1 / 1; border: 0; padding: 0; border-radius: var(--raio-p); overflow: hidden; background: var(--fundo-2); cursor: pointer; }
.pront-foto-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pront-foto-arquivo { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; height: 100%; color: var(--texto-2); font-weight: 650; font-size: 13px; }
.pront-foto-arquivo svg { width: 28px; height: 28px; }
.pront-foto-info { display: flex; align-items: center; justify-content: space-between; gap: 6px; padding: 0 4px; }
.pront-foto-legenda { padding: 0 4px; color: var(--texto-2); overflow-wrap: anywhere; }
.pront-foto .marcar { min-height: 40px; padding: 0 4px; }
.pront-foto .marcar input { width: 20px; height: 20px; }
.pront-visor { display: block; width: 100%; max-height: 70vh; object-fit: contain; border-radius: var(--raio-p); background: var(--fundo-2); }
.modal.pront-modal-comparar { max-width: 1120px; }
.pront-comparar { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.pront-comparar figure { margin: 0; min-width: 0; }
.pront-comparar img { display: block; width: 100%; max-height: 68vh; object-fit: contain; border-radius: var(--raio-p); background: var(--fundo-2); }
.pront-comparar figcaption { font-size: 13px; color: var(--texto-2); margin-top: 6px; overflow-wrap: anywhere; }
.pront-arquivo { font-size: 16px; min-height: 46px; padding: 8px 0; }

/* ---------------------------------------------------------- laudos */
.pront-meus { align-self: end; }
.pront-filtro-botao { justify-content: flex-end; }
.pront-filtro-botao .botao { align-self: flex-start; }
.pront-tabela-laudos td { vertical-align: middle; }
.pront-acao-laudo { white-space: nowrap; text-align: right; }
.pront-acao-laudo .botao + .botao { margin-left: 6px; }

/* ---------------------------------------------------------- construtor de formulários */
.pront-construtor { display: flex; flex-direction: column; gap: 10px; }
.pront-campo-def { background: var(--fundo-2); border-radius: var(--raio-p); padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.pront-campo-def.secao { background: var(--ouro-suave); }
.pront-campo-def input, .pront-campo-def select, .pront-campo-def textarea { background: #fff; }
.pront-campo-def-topo { display: grid; grid-template-columns: 190px minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.pront-campo-def-botoes { display: flex; }
.pront-campo-def-extra { display: flex; flex-direction: column; gap: 8px; }
.pront-campo-def-extra textarea { min-height: 54px; }

/* ---------------------------------------------------------- celular (375 e 320) */
@media screen and (max-width: 899px) {
  .pront-novos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pront-novo { font-size: 13.5px; padding: 10px 12px; }
  .pront-atend-linha { flex-direction: column; align-items: stretch; }
  .pront-atend-linha > .linha-acoes .botao, .pront-atend-linha > .botao { width: 100%; }
  .pront-atend-opcoes .campo { min-width: 0; }
  .pront-cronometro { font-size: 30px; }
  .pront-filtros select { flex: 1; min-width: 0; width: 100%; }
  .pront-filtros > .botao { flex: 1; }
  .pront-item { padding: 14px 14px 6px; }
  .pront-item-topo .selo { align-self: flex-start; }
  .pront-linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 44px; }
  .pront-l-nome { grid-column: 1 / 3; }
  .pront-remover { grid-column: 3; grid-row: 1; }
  .pront-resposta { grid-template-columns: 1fr; gap: 0; }
  .pront-galeria { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .pront-comparar { gap: 6px; }
  .pront-campo-def-topo { grid-template-columns: minmax(0, 1fr) auto; }
  .pront-campo-def-topo [data-c="rotulo"] { grid-column: 1 / -1; grid-row: 2; }
  .pront-verificar input { max-width: none; flex: 1; min-width: 0; }
  .pront-acao-laudo { text-align: left; white-space: normal; padding-top: 8px !important; }
  .pront-tabela-laudos td[data-rotulo]::before { content: attr(data-rotulo) ": "; color: var(--texto-3); font-size: 12px; }
  .pront-texto-grande { min-height: 180px; }
}
@media screen and (max-width: 359px) {
  .pront-novos { grid-template-columns: 1fr 1fr; gap: 8px; }
  .pront-novo { gap: 8px; padding: 8px 10px; font-size: 13px; }
  .pront-novo svg { width: 20px; height: 20px; }
  .pront-galeria { grid-template-columns: 1fr 1fr; }
}

/* ---------------------------------------------------------- impressão: fundo branco, só contornos finos */
#area-impressao .pront-folha-paciente { display: flex; flex-wrap: wrap; gap: 4px 22px; padding-bottom: 8px; margin-bottom: 14px; border-bottom: 1px solid #bbb; }
#area-impressao .pront-folha-texto { margin: 12px 0; text-align: justify; }
#area-impressao .pront-folha-pequeno { font-size: 9.5pt; color: #333; }
#area-impressao .pront-folha-bloco { margin: 12px 0; }
#area-impressao .pront-folha-lista { margin: 6px 0 12px; padding-left: 22px; }
#area-impressao .pront-folha-lista li { margin: 4px 0; }
#area-impressao .pront-folha-via { font-weight: bold; text-transform: uppercase; letter-spacing: 1px; font-size: 10.5pt; margin: 14px 0 6px; }
#area-impressao .pront-folha-med { margin: 0 0 10px; break-inside: avoid; }
#area-impressao .pront-folha-med-linha { display: flex; align-items: baseline; gap: 6px; font-weight: bold; }
#area-impressao .pront-folha-pontos { flex: 1; border-bottom: 1px dotted #777; transform: translateY(-3px); }
#area-impressao .pront-folha-posologia { margin: 2px 0 0 18px; }
#area-impressao .pront-folha-local { margin-top: 26px; text-align: right; }
#area-impressao .pront-folha-selo { margin-top: 18px; padding-top: 6px; border-top: 1px solid #ccc; text-align: center; font-size: 9pt; color: #333; }
#area-impressao .pront-folha-adendos { margin-top: 18px; border-top: 1px solid #bbb; padding-top: 8px; }
#area-impressao .pront-folha-sub { font-weight: bold; text-transform: uppercase; letter-spacing: 1px; font-size: 10pt; margin-bottom: 6px; }
#area-impressao .pront-folha-adendo { margin: 8px 0; padding-left: 10px; border-left: 2px solid #bbb; }
#area-impressao .pront-folha-tabela { width: 100%; border-collapse: collapse; margin-bottom: 10px; }
#area-impressao .pront-folha-tabela td, #area-impressao .pront-folha-tabela th { border: 1px solid #bbb; padding: 4px 6px; text-align: left; vertical-align: top; }
#area-impressao .pront-folha-pergunta { width: 45%; }
#area-impressao .pront-folha-secao { font-weight: bold; background: #fff; }
#area-impressao .pront-folha-ajuda { font-weight: normal; font-size: 9.5pt; margin-top: 4px; }
#area-impressao .pront-caixas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 10px 0; }
#area-impressao .pront-caixa { border: 1px solid #999; padding: 6px 8px; font-size: 10pt; break-inside: avoid; }
#area-impressao .pront-caixa-titulo { font-weight: bold; text-transform: uppercase; font-size: 8.5pt; letter-spacing: .6px; margin-bottom: 4px; }
#area-impressao .pront-campo-linha { display: flex; gap: 4px; margin: 3px 0; }
#area-impressao .pront-preencher { flex: 1; border-bottom: 1px solid #999; min-height: 1.2em; }
#area-impressao .pront-espaco { height: 34px; }
#area-impressao .pront-espaco.pequeno-espaco { height: 22px; }
#area-impressao .pront-assina-linha { border-top: 1px solid #000; text-align: center; font-size: 8.5pt; padding-top: 2px; }
#area-impressao .pront-via-topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; border-bottom: 1px solid #999; padding-bottom: 6px; margin-bottom: 8px; }
#area-impressao .pront-via-titulo { font-size: 13pt; font-weight: bold; text-transform: uppercase; letter-spacing: 1px; }
#area-impressao .pront-via-num { border: 1px solid #999; padding: 3px 8px; font-size: 9pt; white-space: nowrap; }
#area-impressao .pront-folha-prescricao { min-height: 120px; margin: 10px 0; }
#area-impressao .pront-via .folha-assinatura { margin-top: 28px; }
#area-impressao .pront-via + .pront-via { break-before: page; page-break-before: always; }
#area-impressao:has(.pront-vias) > .folha-titulo { display: none; }
