/* PERÍCIA EM CAMPO (2.8) — a tela feita para a rua.

   Quem usa está de pé, com uma mão ocupada, às vezes de luva, sob sol ou à
   noite. Três regras decidem o desenho:
   · alvo de toque de 48 px no mínimo — o do sistema é 44, e na rua não basta;
   · uma coluna só no celular, na ordem em que o trabalho acontece no local;
   · o que salva fica SEMPRE à vista: a barra de ações é fixa, acima do rodapé.
   Tudo vem dos tokens do design system. A ÚNICA exceção é o mapa: o azul da
   precisão e o pino repetem as cores da figura que `mapa_local.py` desenha,
   para a tela e o laudo mostrarem a mesma coisa. */

.cp-form{display:flex;flex-direction:column;gap:var(--space-4);padding-bottom:5.5rem;}
.cp-card{background:var(--surface-card);border:1px solid var(--border-default);
  border-radius:var(--radius-card,var(--radius-lg));padding:var(--space-4) var(--space-4) var(--space-3);}
.cp-card>h3{margin:0 0 var(--space-3);font-size:var(--text-caption);font-weight:var(--weight-bold);
  text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--text-muted);
  display:flex;align-items:center;gap:.5rem;}
.cp-card>h3 .cp-n{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;
  border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--text-brand);
  font-size:var(--text-nano);letter-spacing:0;}
.cp-grade{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-3);}
.cp-grade .cp-larga{grid-column:1/-1;}
@media(max-width:560px){.cp-grade{grid-template-columns:1fr;}}
.cp-form input,.cp-form select,.cp-form textarea{min-height:48px;font-size:16px;}
/* 16 px exatos: abaixo disso o Safari do iPhone AMPLIA a página ao focar o
   campo, e o perito perde o enquadramento a cada toque. */
.cp-form textarea{min-height:120px;}

/* ---- equipes: botões que ligam e desligam ---- */
.cp-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:var(--space-2);}
.cp-chip{min-height:48px;min-width:64px;padding:.5rem 1rem;border-radius:var(--radius-pill);
  border:1.5px solid var(--border-strong);background:var(--surface-card);color:var(--text-default);
  font:inherit;font-weight:var(--weight-semibold);font-size:var(--text-body);cursor:pointer;
  display:inline-flex;align-items:center;gap:.4rem;transition:var(--transition-base);}
.cp-chip[aria-pressed="true"]{background:var(--color-primary);border-color:var(--color-primary);color:#fff;}
.cp-chip[aria-pressed="true"]::before{content:"✓";font-weight:var(--weight-black);}
.cp-chip.cp-chip-outra{border-style:dashed;color:var(--text-brand);}
.cp-eq-det{display:grid;gap:.1rem;margin-top:var(--space-2);}
.cp-eq-det .field{margin-bottom:.6rem;}
.cp-linha{display:flex;gap:.5rem;align-items:flex-end;}
.cp-linha>.field{flex:1;min-width:0;}

/* ---- blocos repetíveis (acompanhantes, veículos) ---- */
.cp-item{border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:.7rem .8rem .2rem;
  margin-bottom:.7rem;background:var(--surface-soft);}
.cp-item-topo{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem;}
.cp-item-topo b{font-size:var(--text-small);}
.cp-tira{min-height:40px;padding:.3rem .7rem;border:0;background:none;color:var(--status-danger-text);
  font:inherit;font-size:var(--text-small);cursor:pointer;border-radius:var(--radius-md);}
.cp-add{width:100%;min-height:48px;}

/* ---- localização ---- */
.cp-loc-vazia{display:flex;flex-direction:column;align-items:stretch;gap:.6rem;}
.cp-btn-grande{min-height:56px;font-size:var(--text-body-lg);width:100%;}
.cp-loc{display:grid;grid-template-columns:minmax(0,160px) 1fr;gap:var(--space-3);align-items:start;}
@media(max-width:480px){.cp-loc{grid-template-columns:1fr;}}
.cp-loc-img{width:100%;aspect-ratio:4/3;border-radius:var(--radius-md);background:var(--surface-sunken);
  border:1px solid var(--border-default);object-fit:cover;display:flex;align-items:center;
  justify-content:center;text-align:center;font-size:var(--text-small);color:var(--text-muted);padding:.5rem;}
.cp-coord{font-family:var(--font-mono);font-size:var(--text-body-sm);font-variant-numeric:tabular-nums;
  color:var(--text-heading);word-break:break-word;}
.cp-prec{font-size:var(--text-small);color:var(--text-muted);margin:.2rem 0 .6rem;}
/* 2.814 — a marcação que a última troca substituiu, com o desfazer. */
.cp-loc-ant{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .6rem;margin-top:.7rem;padding-top:.7rem;
  border-top:1px solid var(--border-default);font-size:var(--text-small);color:var(--text-muted);}
.cp-interr{display:flex;align-items:center;gap:.6rem;min-height:44px;font-size:var(--text-body-sm);cursor:pointer;}
.cp-interr input{width:22px;height:22px;min-height:0;margin:0;flex:0 0 auto;accent-color:var(--color-primary);}

/* ---- ditado ---- */
.cp-dit{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;}
.cp-mic{width:64px;height:64px;border-radius:var(--radius-full);border:0;cursor:pointer;flex:0 0 auto;
  background:var(--gradient-royal);color:#fff;box-shadow:var(--shadow-primary);display:flex;
  align-items:center;justify-content:center;}
.cp-mic svg{width:28px;height:28px;}
.cp-mic[aria-pressed="true"]{background:var(--status-danger-solid);box-shadow:0 0 0 6px var(--status-danger-surface);}
@media(prefers-reduced-motion:no-preference){
  .cp-mic[aria-pressed="true"]{animation:cp-pulsa 1.4s ease-in-out infinite;}
  @keyframes cp-pulsa{50%{box-shadow:0 0 0 12px var(--status-danger-surface);}}
}
.cp-dit-txt{flex:1;min-width:160px;font-size:var(--text-body-sm);color:var(--text-muted);line-height:1.4;}
.cp-dit-txt b{color:var(--text-heading);}
.cp-nivel{height:6px;border-radius:var(--radius-xs);background:var(--surface-sunken);overflow:hidden;margin-top:.35rem;max-width:220px;}
.cp-nivel>i{display:block;height:100%;width:100%;background:var(--status-success-solid);
  transform:scaleX(0);transform-origin:left center;transition:transform .08s linear;}
.cp-obs-pe{display:flex;justify-content:space-between;align-items:center;gap:.5rem;flex-wrap:wrap;
  font-size:var(--text-small);color:var(--text-muted);margin-top:.3rem;}
.cp-apaga-tudo{min-height:44px;border:0;background:none;color:var(--status-danger-text);font:inherit;
  font-size:var(--text-small);font-weight:var(--weight-semibold);cursor:pointer;padding:.3rem .5rem;}

/* ---- requisição e fotografias ---- */
.cp-envio{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin:.6rem 0;}
@media(max-width:420px){.cp-envio{grid-template-columns:1fr;}}
.cp-envio .btn{min-height:56px;width:100%;}
.cp-arqs{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:.5rem;margin-top:.4rem;}
.cp-arq{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;
  background:var(--surface-sunken);border:1px solid var(--border-default);}
.cp-arq img{width:100%;height:100%;object-fit:cover;display:block;}
.cp-arq .cp-doc{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;
  padding:.4rem;text-align:center;font-size:var(--text-nano);color:var(--text-default);gap:.2rem;word-break:break-all;}
.cp-arq .cp-doc b{font-size:var(--text-h3);}
.cp-arq-est{position:absolute;left:4px;bottom:4px;font-size:var(--text-nano);font-weight:var(--weight-bold);
  padding:.1rem .4rem;border-radius:var(--radius-pill);background:var(--surface-card);color:var(--text-default);}
.cp-arq-est.ok{background:var(--status-success-surface);color:var(--status-success-text);}
.cp-arq-est.erro{background:var(--status-danger-surface);color:var(--status-danger-text);}
.cp-arq-x{position:absolute;top:3px;right:3px;width:34px;height:34px;border-radius:var(--radius-full);border:0;
  background:var(--surface-overlay-media);color:#fff;font-size:var(--text-body);cursor:pointer;}

/* ---- barra de ações: sempre à vista ---- */
.cp-acoes{position:sticky;bottom:0;z-index:5;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;
  padding:.7rem .8rem;margin:0 -.2rem;background:var(--surface-elevated,var(--surface-card));
  border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);}
@media(max-width:880px){.cp-acoes{bottom:calc(68px + env(safe-area-inset-bottom,0px));}}
.cp-acoes .btn{min-height:52px;flex:1 1 140px;}
.cp-estado{flex:1 1 100%;font-size:var(--text-small);color:var(--text-muted);display:flex;align-items:center;gap:.4rem;}
.cp-estado::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--neutral-400);flex:0 0 auto;}
.cp-estado.ok::before{background:var(--status-success-solid);}
.cp-estado.pendente::before{background:var(--status-warning-solid);}
.cp-estado.erro::before{background:var(--status-danger-solid);}

/* ---- Meus Exames ---- */
.cp-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3);}
.cp-cartao{display:grid;grid-template-columns:84px 1fr;gap:.8rem;align-items:start;text-align:left;width:100%;
  background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);
  padding:.8rem;cursor:pointer;font:inherit;color:inherit;transition:var(--transition-base);}
.cp-cartao:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);}
.cp-mini{width:84px;aspect-ratio:4/3;border-radius:var(--radius-sm);object-fit:cover;background:var(--surface-sunken);
  display:flex;align-items:center;justify-content:center;color:var(--text-muted);}
.cp-mini svg{width:26px;height:26px;}
.cp-cartao .t{font-weight:var(--weight-bold);color:var(--text-heading);font-size:var(--text-body);line-height:1.25;}
.cp-cartao .s{font-size:var(--text-small);color:var(--text-muted);margin-top:.15rem;line-height:1.35;}
.cp-selos{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.45rem;}
.cp-selo{font-size:var(--text-nano);font-weight:var(--weight-bold);padding:.15rem .5rem;border-radius:var(--radius-pill);
  background:var(--surface-sunken);color:var(--text-default);letter-spacing:.02em;}
.cp-selo.aviso{background:var(--status-warning-surface);color:var(--status-warning-text);}
.cp-selo.ok{background:var(--status-success-surface);color:var(--status-success-text);}
.cp-selo.info{background:var(--status-info-surface);color:var(--status-info-text);}
.cp-busca{max-width:420px;}
.cp-vazio{padding:var(--space-6) var(--space-4);text-align:center;color:var(--text-muted);
  border:1.5px dashed var(--border-default);border-radius:var(--radius-lg);}

/* ---- o mapa em tela cheia ---- */
.cp-mapa{position:fixed;inset:0;z-index:1300;background:var(--surface-app);display:flex;flex-direction:column;}
.cp-mapa-topo{display:flex;align-items:center;justify-content:space-between;gap:.5rem;
  padding:calc(.6rem + env(safe-area-inset-top,0px)) .8rem .6rem;border-bottom:1px solid var(--border-default);
  background:var(--surface-card);}
.cp-mapa-topo b{font-size:var(--text-body-lg);color:var(--text-heading);}
/* 2.81 — colar link de localização ou coordenadas */
.cp-mapa-busca{display:flex;gap:.5rem;padding:.6rem .8rem;background:var(--surface-card);border-bottom:1px solid var(--border-default);}
.cp-mapa-busca input{flex:1;min-width:0;min-height:48px;font-size:16px;}
.cp-mapa-busca .btn{min-height:48px;flex:0 0 auto;}
.cp-mapa-msg{padding:.6rem .8rem;background:var(--surface-sunken);border-bottom:1px solid var(--border-default);
  color:var(--text-default);font-size:var(--text-small);display:block;}
.cp-mapa-msg[hidden]{display:none;}
.cp-mapa-msg .btn{display:inline-flex;min-height:44px;margin-top:.5rem;}
.cp-mapa-msg .ajuda{display:block;margin-top:.4rem;color:var(--text-muted);}
.cp-mapa-vista{position:relative;flex:1;overflow:hidden;touch-action:none;background:#e9e6df;cursor:grab;}
.cp-mapa-vista.arrastando{cursor:grabbing;}
.cp-mapa-vista img.bl{position:absolute;width:256px;height:256px;user-select:none;-webkit-user-drag:none;pointer-events:none;}
.cp-mapa-prec{position:absolute;border-radius:50%;background:rgba(30,110,230,.16);border:2px solid rgba(30,110,230,.75);
  pointer-events:none;transform:translate(-50%,-50%);}
.cp-mapa-eu{position:absolute;width:18px;height:18px;border-radius:50%;background:#1e6ee6;border:3px solid #fff;
  box-shadow:0 1px 4px rgba(0,0,0,.4);transform:translate(-50%,-50%);pointer-events:none;}
.cp-mapa-pino{position:absolute;left:50%;top:50%;width:40px;height:52px;transform:translate(-50%,-100%);pointer-events:none;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.35));}
.cp-mapa-sem{position:absolute;left:50%;top:1rem;transform:translateX(-50%);max-width:90%;text-align:center;
  background:var(--surface-card);color:var(--text-default);font-size:var(--text-small);padding:.5rem .8rem;
  border-radius:var(--radius-md);box-shadow:var(--shadow-sm);}
.cp-mapa-zoom{position:absolute;right:.8rem;top:.8rem;display:flex;flex-direction:column;gap:.4rem;}
.cp-mapa-zoom button,.cp-mapa-voltar{width:48px;height:48px;border-radius:var(--radius-md);border:1px solid var(--border-default);
  background:var(--surface-card);color:var(--text-heading);font-size:var(--text-h3);cursor:pointer;box-shadow:var(--shadow-sm);}
.cp-mapa-voltar{position:absolute;right:.8rem;bottom:.8rem;font-size:var(--text-body-lg);}
.cp-mapa-atrib{position:absolute;left:.3rem;bottom:.3rem;font-size:var(--text-nano);background:rgba(255,255,255,.8);color:#333;
  padding:.05rem .35rem;border-radius:var(--radius-xs);}
.cp-mapa-pe{padding:.8rem .8rem calc(.8rem + env(safe-area-inset-bottom,0px));background:var(--surface-card);
  border-top:1px solid var(--border-default);display:flex;flex-direction:column;gap:.6rem;}
.cp-mapa-pe .cp-coord{font-size:var(--text-body);}
.cp-mapa-pe .btn{min-height:56px;width:100%;font-size:var(--text-body-lg);}

.dash-acoes{display:flex;gap:.6rem;flex-wrap:wrap;}
