/* =========================================================
   App de laudos — interface (identidade Camila Sarkis)
   ========================================================= */

@font-face { font-family: "Urbanist"; font-weight: 400; font-display: swap; src: url("../fonts/urbanist-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Urbanist"; font-weight: 500; font-display: swap; src: url("../fonts/urbanist-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Urbanist"; font-weight: 600; font-display: swap; src: url("../fonts/urbanist-latin-600-normal.woff2") format("woff2"); }
@font-face { font-family: "Urbanist"; font-weight: 700; font-display: swap; src: url("../fonts/urbanist-latin-700-normal.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-weight: 400; font-display: swap; src: url("../fonts/open-sans-latin-400-normal.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-weight: 600; font-display: swap; src: url("../fonts/open-sans-latin-600-normal.woff2") format("woff2"); }

:root {
  --teal-900: #38585A;
  --teal-800: #456A6B;
  --teal-700: #5B7F80;
  --teal-600: #6F9192;
  --teal-400: #93AEB0;
  --teal-200: #CCDADB;
  --teal-100: #E3ECEC;
  --teal-50:  #F2F6F6;
  --rose-500: #D99A99;
  --rose-400: #E7B7B6;
  --rose-200: #F3DADA;
  --rose-50:  #FBF4F4;
  --ink: #26393A;
  --muted: #687A7B;
  --bg: #F4F7F7;
  --line: #DCE6E6;
  --danger: #B5534F;
  --ok: #3F7D5C;

  --brand: "Urbanist", "Helvetica Neue", Arial, sans-serif;
  --text: "Open Sans", Arial, sans-serif;
  --radius: 12px;
  --shadow: 0 1px 2px rgba(38, 57, 58, .05), 0 4px 18px rgba(56, 88, 90, .06);
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 15px/1.5 var(--text); }
h1, h2, h3 { font-family: var(--brand); color: var(--teal-900); margin: 0; line-height: 1.2; }
a { color: var(--teal-700); }
button, input, select, textarea { font: inherit; color: inherit; }
[hidden] { display: none !important; }

/* ---------- topo ---------- */
.topo-app {
  position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  height: 60px; padding: 0 20px;
  background: #fff; border-bottom: 1px solid var(--rose-200);
}
.topo-logo img { height: 34px; display: block; }
.topo-usuario { display: flex; align-items: center; gap: 16px; font: 500 14px var(--brand); }
.topo-usuario a { text-decoration: none; color: var(--muted); }
.topo-usuario a:hover { color: var(--teal-800); }
.topo-nome { color: var(--teal-800); font-weight: 600; }

.app { max-width: 1560px; margin: 0 auto; padding: 22px 20px 80px; }
.carregando { color: var(--muted); }

/* ---------- botões ---------- */
.btn {
  appearance: none; display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  min-height: 40px; padding: 8px 16px; border-radius: 10px; cursor: pointer;
  border: 1px solid var(--teal-200); background: #fff; color: var(--teal-800);
  font: 600 14.5px var(--brand); text-decoration: none; white-space: nowrap;
  transition: background .15s, border-color .15s, color .15s, box-shadow .15s;
}
.btn:hover { border-color: var(--teal-400); background: var(--teal-50); }
.btn:focus-visible, .chip:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--teal-400); outline-offset: 1px;
}
.btn.primario { background: var(--teal-700); border-color: var(--teal-700); color: #fff; }
.btn.primario:hover { background: var(--teal-800); border-color: var(--teal-800); }
.btn.rose { background: var(--rose-400); border-color: var(--rose-400); color: var(--teal-900); }
.btn.rose:hover { background: var(--rose-500); border-color: var(--rose-500); }
.btn.perigo { color: var(--danger); border-color: #EBC9C7; }
.btn.perigo:hover { background: #FBEFEE; }
.btn.fantasma { border-color: transparent; background: transparent; }
.btn.fantasma:hover { background: var(--teal-50); }
.btn.peq { min-height: 32px; padding: 5px 11px; font-size: 13.5px; border-radius: 8px; }
.btn.largo { width: 100%; }
.btn:disabled { opacity: .55; cursor: not-allowed; }
.btn svg { width: 18px; height: 18px; flex-shrink: 0; }

/* ---------- formulários ---------- */
label { display: block; font: 600 12.5px var(--brand); letter-spacing: .02em; color: var(--teal-800); }
input[type=text], input[type=search], input[type=email], input[type=password], input[type=date], input:not([type]), select, textarea {
  display: block; width: 100%; margin-top: 5px;
  padding: 9px 11px; border: 1px solid var(--teal-200); border-radius: 9px; background: #fff;
  font: 400 15px var(--text); color: var(--ink);
}
textarea { resize: vertical; line-height: 1.55; min-height: 44px; }
input::placeholder, textarea::placeholder { color: #9AACAD; }
.campo-invalido { border-color: var(--danger) !important; background: #FFF8F7 !important; }

.segmentado { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 6px; }
.segmentado label {
  margin: 0; position: relative; cursor: pointer;
  padding: 8px 14px; border: 1px solid var(--teal-200); border-radius: 999px; background: #fff;
  font: 600 14px var(--brand); color: var(--teal-800);
}
.segmentado input { position: absolute; opacity: 0; pointer-events: none; }
.segmentado label:has(input:checked) { background: var(--teal-700); border-color: var(--teal-700); color: #fff; }
.segmentado label:has(input:focus-visible) { outline: 2px solid var(--teal-400); outline-offset: 1px; }

/* ---------- login ---------- */
.tela-simples { min-height: 100vh; display: grid; place-items: center; padding: 20px; background: linear-gradient(180deg, #fff 0%, var(--teal-50) 100%); }
.cartao-login { width: min(420px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 32px 28px; box-shadow: var(--shadow); }
.login-logo { width: 100%; max-width: 300px; display: block; margin: 0 auto 22px; }
.cartao-login h1 { font-size: 22px; margin-bottom: 14px; }
.form-login { display: grid; gap: 14px; }
.alerta { background: #FBEFEE; color: var(--danger); padding: 10px 12px; border-radius: 9px; font-size: 14px; }
.sucesso { background: #EEF6F1; color: var(--ok); padding: 10px 12px; border-radius: 9px; font-size: 14px; }
.ajuda { color: var(--muted); font-size: 14px; margin: -6px 0 14px; }
.link-voltar { text-align: center; font: 500 14px var(--brand); }

/* ---------- lista de exames ---------- */
.lista-topo { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.lista-topo h1 { font-size: 26px; }
.busca { max-width: 460px; margin: 0 0 16px; }
.busca input { margin: 0; padding-left: 38px; background: #fff url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="none" stroke="%2393AEB0" stroke-width="2" viewBox="0 0 24 24"><circle cx="11" cy="11" r="7"/><path d="m20 20-4-4"/></svg>') no-repeat 12px center; }
.tabela-exames { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.linha-exame {
  display: grid; grid-template-columns: 100px minmax(160px, 1.4fr) minmax(120px, 1fr) minmax(120px, 1fr) 110px 70px;
  align-items: center; gap: 14px; padding: 13px 18px; border-top: 1px solid var(--line);
  text-decoration: none; color: inherit;
}
.linha-exame:first-child { border-top: 0; }
a.linha-exame:hover { background: var(--teal-50); }
.linha-exame.cab { background: var(--teal-50); font: 600 11.5px var(--brand); letter-spacing: .12em; text-transform: uppercase; color: var(--teal-700); padding-top: 10px; padding-bottom: 10px; }
.linha-exame .pac { font: 600 15.5px var(--brand); color: var(--teal-900); }
.linha-exame .pac small { display: block; font: 400 12.5px var(--text); color: var(--muted); }
.linha-exame .contagem { font-size: 12.5px; color: var(--muted); white-space: nowrap; }
.etiqueta { display: inline-block; padding: 3px 10px; border-radius: 999px; font: 600 12px var(--brand); letter-spacing: .02em; }
.etiqueta.rascunho { background: var(--rose-50); color: #A86564; border: 1px solid var(--rose-200); }
.etiqueta.finalizado { background: #EEF6F1; color: var(--ok); border: 1px solid #CFE5D8; }
.vazio-lista { padding: 50px 20px; text-align: center; color: var(--muted); }
.vazio-lista img { width: 120px; opacity: .55; margin-bottom: 10px; }

/* ---------- diálogo ---------- */
dialog { border: 0; border-radius: 16px; padding: 0; width: min(640px, calc(100% - 24px)); max-height: calc(100dvh - 24px); overflow: auto; box-shadow: 0 20px 60px rgba(38, 57, 58, .25); }
.voz-novo { margin: -4px 0 16px; padding: 12px 14px; border-radius: 12px; background: linear-gradient(180deg, #F3F7FB, #EEF4F4); border: 1px solid #DCE6EE; }
.voz-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.btn-gravar.compacto { padding: 7px 16px 7px 8px; font-size: 14.5px; gap: 8px; }
.btn-gravar.compacto .bola { width: 28px; height: 28px; }
.btn-gravar.compacto .bola svg { width: 15px; height: 15px; }
.btn-gravar:disabled { opacity: .6; cursor: wait; }
.voz-dica { margin: 8px 0 0; font-size: 12.5px; color: var(--muted); }
.voz-estado { font-size: 13.5px; color: var(--teal-800); }
.voz-estado:not(:empty) { margin-top: 10px; display: block; }
.voz-estado.ok { padding: 9px 11px; border-radius: 9px; background: #fff; border: 1px solid #D3E1EF; color: #34557A; }
.voz-estado.erro { color: var(--danger); }
.voz-estado details { margin-top: 6px; }
.voz-estado summary { cursor: pointer; font-weight: 600; font-size: 12.5px; }
.voz-estado details p { margin: 4px 0 0; color: var(--muted); font-size: 12.5px; }
.voz-duvidas { margin: 6px 0 0; padding-left: 18px; color: #7A5214; font-size: 12.5px; }
.preenchido-ia, input.preenchido-ia { background: #EEF4FA !important; border-color: #B9CFE6 !important; }
.segmentado.preenchido-ia { background: transparent !important; padding: 4px; border-radius: 12px; outline: 1px dashed #B9CFE6; }
dialog::backdrop { background: rgba(38, 57, 58, .35); }
.dlg-corpo { padding: 24px; }
.dlg-corpo h2 { font-size: 21px; margin-bottom: 16px; }
.dlg-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.dlg-grade .inteira { grid-column: 1 / -1; }
.dlg-confirmar { width: min(460px, calc(100% - 24px)); }
.dlg-confirmar p { margin: 0; font-size: 15.5px; line-height: 1.5; color: var(--ink); }
.btn.perigo-cheio { background: var(--danger); border-color: var(--danger); color: #fff; }
.btn.perigo-cheio:hover { background: #9C4440; border-color: #9C4440; }
.dlg-rodape { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 24px; background: var(--teal-50); border-top: 1px solid var(--line); }

/* ---------- editor ---------- */
.editor-barra {
  position: sticky; top: 60px; z-index: 20;
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  margin: -22px -20px 18px; padding: 10px 20px;
  background: rgba(244, 247, 247, .94); backdrop-filter: blur(6px); border-bottom: 1px solid var(--line);
}
.editor-barra .titulo { flex: 1; min-width: 180px; }
.editor-barra .titulo strong { display: block; font: 700 19px var(--brand); color: var(--teal-900); }
.editor-barra .titulo span { font-size: 13px; color: var(--muted); }
.estado-salvo { font: 500 13px var(--brand); color: var(--muted); white-space: nowrap; }
.estado-salvo.erro { color: var(--danger); }
.acoes-barra { display: flex; gap: 8px; flex-wrap: wrap; }

.abas { display: flex; gap: 4px; flex-wrap: wrap; margin-bottom: 14px; }
.abas a {
  padding: 6px 12px; border-radius: 999px; text-decoration: none;
  font: 600 13.5px var(--brand); color: var(--teal-700); background: #fff; border: 1px solid var(--line);
}
.abas a:hover { border-color: var(--teal-400); }
.abas .num { display: inline-block; min-width: 18px; margin-left: 4px; padding: 0 5px; border-radius: 9px; background: var(--rose-200); color: var(--teal-900); font-size: 11.5px; text-align: center; }

.editor-corpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; align-items: start; }
.editor-corpo.com-previa { grid-template-columns: minmax(0, 1fr) minmax(420px, 44%); }
.editor-form { display: flex; flex-direction: column; gap: 18px; min-width: 0; }

.secao { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 20px 22px; box-shadow: var(--shadow); scroll-margin-top: 130px; }
.secao-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.secao-cab h2 { font-size: 18px; }
.secao-cab p { margin: 0; font-size: 13px; color: var(--muted); }
.secao-nota { font-size: 13px; color: var(--muted); margin: -6px 0 14px; }

.grade-dados { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.grade-dados .d2 { grid-column: span 2; }
.grade-dados .d4 { grid-column: 1 / -1; }

/* medidas */
.medidas-grupos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 28px; }
.grupo-medidas h3 { font: 600 11.5px var(--brand); letter-spacing: .14em; text-transform: uppercase; color: var(--teal-600); margin: 12px 0 4px; padding-bottom: 4px; border-bottom: 1px solid var(--rose-200); }
.linha-medida { display: grid; grid-template-columns: minmax(120px, 1fr) auto; align-items: center; gap: 10px; padding: 5px 0; }
.linha-medida .rot { font-size: 14px; color: var(--ink); line-height: 1.3; }
.linha-medida .rot small { display: block; color: var(--muted); font-size: 11.5px; }
.entradas { display: flex; align-items: center; gap: 4px; }
.entradas input { margin: 0; width: 68px; padding: 7px 8px; text-align: center; font-variant-numeric: tabular-nums; }
.entradas input.txt { width: 160px; text-align: left; }
.linha-medida.dims { grid-template-columns: minmax(0, 1fr); gap: 4px; }
.linha-medida.dims .rot small { display: inline; margin-left: 6px; }
.linha-medida.dims .entradas { justify-content: flex-end; }
.entradas .x { color: var(--teal-400); font-size: 13px; }
.entradas input.num { width: 92px; }
.entradas .un {
  appearance: none; min-width: 34px; margin-left: 2px; padding: 4px 6px; border-radius: 7px; cursor: pointer;
  border: 1px solid transparent; background: transparent; color: var(--muted); font: 600 12.5px var(--brand);
}
.entradas .un:hover { border-color: var(--teal-200); background: var(--teal-50); color: var(--teal-800); }
.chip { appearance: none; border: 1px solid var(--teal-200); background: #fff; border-radius: 999px; padding: 4px 10px; font: 600 12.5px var(--brand); color: var(--teal-700); cursor: pointer; }
.chip:hover, .chip.ativo { background: var(--teal-700); border-color: var(--teal-700); color: #fff; }

/* descrição */
.bloco { padding: 12px 0; border-top: 1px solid var(--line); }
.bloco:first-of-type { border-top: 0; padding-top: 0; }
.bloco-cab { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.bloco-cab strong { font: 700 15px var(--brand); color: var(--teal-800); }
.bloco-cab .acoes { margin-left: auto; display: flex; gap: 4px; }
.selo { padding: 1px 8px; border-radius: 999px; font: 600 11.5px var(--brand); }
.selo.editado { background: var(--rose-200); color: #8E4F4E; }
.selo.ia { background: #E5EEF8; color: #3D5F86; }
.selo.oculto { background: var(--teal-100); color: var(--muted); }
.bloco.esta-oculto textarea { opacity: .45; }
.sub-item { display: grid; grid-template-columns: 14px 1fr; gap: 6px; align-items: start; margin-top: 6px; padding-left: 10px; }
.sub-item::before { content: ""; margin-top: 21px; border-top: 2px solid var(--rose-400); }
.sub-linha { display: flex; gap: 4px; align-items: flex-start; }
.sub-linha textarea { flex: 1; min-width: 0; }
.sub-linha .acoes { display: flex; margin-top: 5px; }
.sub-item > div { min-width: 0; }
.nota-bloco { margin: 6px 0; padding: 7px 10px; border-radius: 8px; font-size: 13px; background: #FFF6E8; color: #8A5A17; border: 1px solid #F3DDB5; }
.nota-bloco.medida { background: var(--teal-50); color: var(--teal-800); border-color: var(--teal-200); }
.nota-bloco button { font: inherit; background: none; border: 0; padding: 0; color: inherit; text-decoration: underline; cursor: pointer; font-weight: 600; }

/* impressão */
.ressalvas-fixas { margin-top: 10px; font-size: 12.5px; color: var(--muted); font-style: italic; }
.ressalvas-fixas p { margin: 2px 0; }

/* imagens */
.soltar {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
  padding: 22px; border: 2px dashed var(--teal-200); border-radius: 12px; background: var(--teal-50);
  text-align: center; color: var(--teal-800); cursor: pointer; transition: background .15s, border-color .15s;
}
.soltar:hover, .soltar.arrastando { border-color: var(--teal-600); background: var(--teal-100); }
.soltar svg { width: 30px; height: 30px; color: var(--teal-600); }
.soltar strong { font: 600 15px var(--brand); }
.soltar span { font-size: 13px; color: var(--muted); }
.fila-envio { margin-top: 10px; font-size: 13px; color: var(--muted); }
.barra-prog { height: 4px; background: var(--teal-100); border-radius: 4px; overflow: hidden; margin-top: 4px; }
.barra-prog i { display: block; height: 100%; width: 0; background: var(--teal-600); transition: width .2s; }
.resumo-imagens { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 16px 0 10px; font-size: 13.5px; color: var(--muted); }
.grade-miniaturas { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 12px; }
.mini { position: relative; background: #fff; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.mini .foto { position: relative; aspect-ratio: 4 / 3; background: #000; cursor: grab; }
.mini .foto img { width: 100%; height: 100%; object-fit: contain; display: block; pointer-events: none; }
.mini .n { position: absolute; top: 6px; left: 6px; min-width: 24px; height: 24px; padding: 0 6px; border-radius: 12px; background: var(--rose-400); color: var(--teal-900); font: 700 13px/24px var(--brand); text-align: center; }
.mini.fora { opacity: .5; }
.mini.fora .n { background: var(--teal-200); }
.mini .ferr { display: flex; align-items: center; gap: 4px; padding: 6px; }
.mini .ferr input[type=text] { margin: 0; padding: 5px 7px; font-size: 13px; flex: 1; min-width: 0; }
.mini .ico { appearance: none; border: 0; background: none; padding: 4px; border-radius: 6px; cursor: pointer; color: var(--teal-600); display: grid; place-items: center; }
.mini .ico:hover { background: var(--teal-50); }
.mini .ico svg { width: 18px; height: 18px; }
.mini .ico.ativo { color: #C98A2B; }
.mini .incl { position: absolute; top: 6px; right: 6px; display: flex; align-items: center; gap: 5px; padding: 3px 8px 3px 6px; border-radius: 999px; background: rgba(255,255,255,.92); font: 600 12px var(--brand); color: var(--teal-800); cursor: pointer; }
.mini .incl input { margin: 0; accent-color: var(--teal-700); }
.mini.destacada { grid-column: span 2; }
.sortable-ghost { opacity: .35; }

/* áudios */
.gravador { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.btn-gravar {
  appearance: none; border: 0; cursor: pointer; display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 22px 12px 14px; border-radius: 999px; background: var(--rose-400); color: var(--teal-900);
  font: 700 16px var(--brand); box-shadow: 0 2px 10px rgba(217, 154, 153, .35);
}
.btn-gravar .bola { width: 34px; height: 34px; border-radius: 50%; background: #fff; display: grid; place-items: center; }
.btn-gravar .bola svg { width: 18px; height: 18px; color: var(--danger); }
.btn-gravar.gravando { background: var(--danger); color: #fff; animation: pulso 1.4s infinite; }
.btn-gravar.gravando .bola i { width: 12px; height: 12px; background: var(--danger); border-radius: 2px; }
@keyframes pulso { 0%, 100% { box-shadow: 0 0 0 0 rgba(181, 83, 79, .45); } 50% { box-shadow: 0 0 0 10px rgba(181, 83, 79, 0); } }
.tempo { font: 600 18px var(--brand); color: var(--teal-900); font-variant-numeric: tabular-nums; }
.lista-audios { margin-top: 14px; display: grid; gap: 8px; }
.audio-item { padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; }
.audio-linha { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; }
.transc { margin-top: 8px; font-size: 13.5px; }
.transc summary { cursor: pointer; font: 600 12.5px var(--brand); color: var(--teal-700); letter-spacing: .02em; }
.transc textarea { margin-top: 6px; font-size: 14px; background: var(--teal-50); }
.transc small { color: var(--muted); font-size: 12px; }
.transc.estado { color: var(--muted); display: flex; align-items: center; gap: 8px; }
.transc.erro { color: var(--danger); }
.link { appearance: none; border: 0; background: none; padding: 0; font: inherit; font-weight: 600; color: var(--teal-700); text-decoration: underline; cursor: pointer; }
.girando { width: 14px; height: 14px; border-radius: 50%; border: 2px solid var(--teal-200); border-top-color: var(--teal-700); display: inline-block; animation: girar .8s linear infinite; }
.girando.claro { border-color: rgba(255,255,255,.35); border-top-color: #fff; }
@keyframes girar { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .girando, .btn-gravar.gravando { animation: none; } }
.painel-ia { margin-top: 14px; display: grid; gap: 10px; }
.acao-ia { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 12px; border-radius: 10px; background: linear-gradient(180deg, #F3F7FB, #EEF4F4); border: 1px solid #DCE6EE; }
.acao-ia span { font-size: 13px; color: var(--muted); flex: 1; min-width: 200px; }
.resumo-ia { padding: 12px 14px; border-radius: 10px; border: 1px solid #DCE6EE; background: #F7FAFC; font-size: 13.5px; }
.resumo-ia strong { font: 600 13.5px var(--brand); color: var(--teal-900); }
.resumo-ia ul { margin: 6px 0; padding-left: 18px; }
.resumo-ia li { margin: 2px 0; }
.resumo-ia .duvidas { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: #FFF6E8; border: 1px solid #F3DDB5; color: #7A5214; }
.resumo-ia .duvidas strong { color: #7A5214; }
.resumo-ia small { color: var(--muted); }
.selo-campo { margin-left: 6px; vertical-align: 1px; font-size: 10.5px; padding: 0 6px; }
.nota-bloco.ia { background: #EEF4FA; color: #34557A; border-color: #D3E1EF; }
.audio-item .quando { font: 600 13px var(--brand); color: var(--teal-800); white-space: nowrap; }
.audio-item .quando small { display: block; font: 400 12px var(--text); color: var(--muted); }
.audio-item audio { width: 100%; height: 36px; }
.fase2 { margin-top: 12px; padding: 9px 12px; border-radius: 9px; background: var(--teal-50); color: var(--muted); font-size: 13px; }

/* prévia */
.editor-previa { position: sticky; top: 130px; height: calc(100vh - 150px); background: #fff; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.editor-previa .cab-previa { display: flex; align-items: center; justify-content: space-between; padding: 8px 12px; border-bottom: 1px solid var(--line); font: 600 12px var(--brand); letter-spacing: .12em; text-transform: uppercase; color: var(--teal-600); }
.moldura-previa { position: relative; height: calc(100% - 37px); overflow: hidden; }
.moldura-previa iframe { position: absolute; top: 0; left: 0; width: 794px; border: 0; transform-origin: 0 0; }

.zona-perigo { margin-top: 18px; padding-top: 14px; border-top: 1px dashed var(--line); display: flex; justify-content: space-between; align-items: center; gap: 10px; font-size: 13px; color: var(--muted); }

/* ---------- avisos (toast) ---------- */
.aviso { position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%) translateY(20px); opacity: 0; pointer-events: none; z-index: 60; padding: 11px 18px; border-radius: 10px; background: var(--teal-900); color: #fff; font: 500 14px var(--brand); box-shadow: 0 8px 30px rgba(0,0,0,.2); transition: opacity .2s, transform .2s; max-width: calc(100% - 32px); }
.aviso.mostrar { opacity: 1; transform: translateX(-50%) translateY(0); }
.aviso.erro { background: var(--danger); }

/* ---------- barra inferior (celular) ---------- */
.barra-celular { display: none; }

/* ---------- responsivo ---------- */
@media (max-width: 1180px) {
  .editor-corpo.com-previa { grid-template-columns: minmax(0, 1fr); }
  .editor-previa { display: none; }
}
@media (max-width: 860px) {
  .medidas-grupos { grid-template-columns: minmax(0, 1fr); }
  .grade-dados { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .linha-exame { grid-template-columns: 1fr auto; gap: 4px 12px; }
  .linha-exame.cab { display: none; }
  .linha-exame .col-resp, .linha-exame .col-clin, .linha-exame .contagem { display: none; }
  .linha-exame .col-data { grid-column: 1 / -1; font-size: 12.5px; color: var(--muted); order: -1; }
}
@media (max-width: 640px) {
  body { font-size: 15.5px; }
  .topo-app { height: 54px; padding: 0 14px; }
  .topo-logo img { height: 28px; }
  .topo-nome, .topo-usuario a[href="setup.php"] { display: none; }
  .app { padding: 14px 12px 110px; }
  .editor-barra { top: 54px; margin: -14px -12px 14px; padding: 8px 12px; }
  .editor-barra { flex-wrap: nowrap; gap: 6px; }
  .editor-barra .btn-texto { display: none; }
  .editor-barra .titulo { min-width: 0; }
  .editor-barra .titulo strong { font-size: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .editor-barra .estado-salvo { font-size: 11.5px; max-width: 74px; white-space: normal; text-align: right; line-height: 1.2; }
  .editor-barra #btn-pdf { display: none; }
  .acoes-barra { flex-wrap: nowrap; gap: 6px; }
  .abas { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-left: -12px; margin-right: -12px; padding: 0 12px; }
  .abas a { flex-shrink: 0; }
  .secao { padding: 16px 14px; border-radius: 10px; }
  .editor-form .secao-audios { order: -1; }
  .grade-dados { grid-template-columns: minmax(0, 1fr); }
  .grade-dados .d2 { grid-column: auto; }
  .dlg-grade { grid-template-columns: minmax(0, 1fr); }
  .entradas input { width: 58px; }
  .entradas input.txt { width: 150px; }
  .grade-miniaturas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mini.destacada { grid-column: 1 / -1; }
  .barra-celular { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; gap: 10px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); }
  .barra-celular .btn-gravar { flex: 1; justify-content: center; }
  .lista-topo h1 { font-size: 22px; }
}
