/* ============================================================================
   BPS — Campo (tablet/celular): alvos de toque grandes, texto grande, pouca coisa por tela
   ============================================================================ */
.campo-wrap{max-width:760px;margin:0 auto;padding-bottom:40px}
.campo-hoje-cab{font-size:var(--fs-sm);color:var(--ink-muted);margin:0 0 6px}
.campo-titulo{font-size:var(--fs-h3);margin:10px 0 14px}
.campo-sub{color:var(--ink-muted);margin:-6px 0 14px;font-size:var(--fs-sm)}
.campo-h{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);margin:22px 0 10px;font-weight:600}
.campo-voltar{background:none;border:0;color:var(--accent);font-size:var(--fs-lg);font-weight:600;padding:10px 0;cursor:pointer;min-height:44px}
.campo-vazio{background:var(--surface);border:1px dashed var(--border);border-radius:14px;padding:22px;text-align:center;color:var(--ink-muted);font-size:var(--fs-md)}
.campo-mais{font-size:var(--fs-sm);color:var(--ink-muted);margin:4px 2px}
.campo-aviso{background:var(--warning-soft);color:var(--ink);border:1px solid var(--warning);border-radius:12px;padding:12px 14px;margin:8px 0;font-size:var(--fs-sm);display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.campo-aviso.ok{background:var(--success-soft);border-color:var(--success)}
.campo-aviso.crit{background:var(--critical-soft);border-color:var(--critical)}
.campo-aviso .btn{margin-left:auto}

.campo-tarefa,.campo-linha{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:10px;cursor:pointer;color:var(--ink);font:inherit;min-height:72px}
.campo-linha{min-height:60px;padding:10px 12px;border-radius:10px;margin-bottom:6px}
.campo-tarefa:active,.campo-linha:active{transform:scale(.99)}
.campo-tarefa.urgente{border-left:6px solid var(--warning)}
.campo-tarefa.feito{background:var(--success-soft)}
.campo-tarefa[disabled]{opacity:.55;cursor:not-allowed}
.campo-tarefa-ic{font-size:var(--fs-h1);width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex:none;background:var(--surface-2);border-radius:12px}
.campo-linha .campo-tarefa-ic{font-size:var(--fs-h3);width:34px;height:34px}
.campo-tarefa-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.campo-tarefa-txt b{font-size:var(--fs-h4);font-weight:600}
.campo-linha .campo-tarefa-txt b{font-size:var(--fs-md)}
.campo-tarefa-txt span{font-size:var(--fs-sm);color:var(--ink-muted)}
.campo-tarefa-txt em{font-style:normal;color:var(--warning);font-weight:600}
.campo-seta{font-size:var(--fs-h2);color:var(--ink-faint);flex:none}

.campo-grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.campo-botao{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 10px;min-height:110px;font:inherit;font-size:var(--fs-md);font-weight:600;color:var(--ink);cursor:pointer;text-align:center}
.campo-botao span{font-size:var(--fs-num);line-height:1}
.campo-botao:active{transform:scale(.98)}
.campo-botao-largo{grid-column:1/-1;flex-direction:row;min-height:72px;font-size:var(--fs-h4)}
.campo-botao-largo span{font-size:var(--fs-h1)}
.campo-caixa{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px;margin-bottom:12px}
.campo-caixa-tit{font-weight:600;margin:2px 4px 10px;font-size:var(--fs-md)}
.campo-filtros{margin-bottom:12px}
.campo-filtros select{min-height:44px;font-size:var(--fs-md)}
.campo-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-md);flex:none}
.campo-pessoa-linha{display:flex;align-items:center;gap:12px;padding:8px 4px;border-bottom:1px solid var(--surface-3)}
.campo-pessoa-linha:last-child{border-bottom:0}
.campo-pessoa-linha.inativa{opacity:.55}

/* detalhe (escritório) */
.campo-det-tab{width:100%;border-collapse:collapse;margin:10px 0}
.campo-det-tab td{border-bottom:1px solid var(--surface-3);padding:9px 6px;vertical-align:top;font-size:var(--fs-sm)}
.campo-det-bloco{margin:12px 0;font-size:var(--fs-sm)}
.campo-midias{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.campo-thumb img{width:84px;height:84px;object-fit:cover;border-radius:8px;border:1px solid var(--border);display:block}
.campo-audio{height:36px;max-width:260px}
.campo-assin-img{max-width:320px;width:100%;border:1px solid var(--border);border-radius:8px;background:#fff;margin-top:6px}
.campo-res{display:inline-block;padding:3px 9px;border-radius:999px;font-size:var(--fs-xs);font-weight:600}
.campo-res.ok{background:var(--success-soft);color:var(--success)}
.campo-res.alerta{background:var(--warning-soft);color:var(--warning)}
.campo-res.ruim{background:var(--critical-soft);color:var(--critical)}
.campo-res.na{background:var(--surface-2);color:var(--ink-muted)}

/* ============================= o "motor" em tela cheia ============================= */
body.campo-runner-aberto{overflow:hidden}
#campoRunner{position:fixed;inset:0;z-index:40;background:var(--bg)}
.cr{display:flex;flex-direction:column;height:100%;max-width:760px;margin:0 auto;background:var(--bg)}
.cr-cab{display:flex;align-items:center;gap:10px;padding:10px 12px;padding-top:calc(10px + env(safe-area-inset-top));background:var(--surface);border-bottom:1px solid var(--border)}
.cr-sair{width:48px;height:48px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);font-size:var(--fs-h3);color:var(--ink);cursor:pointer;flex:none}
.cr-cab-tit{flex:1;min-width:0;display:flex;flex-direction:column}
.cr-cab-tit b{font-size:var(--fs-md);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-cab-tit span{font-size:var(--fs-sm);color:var(--ink-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-contador{min-height:48px;padding:0 14px;border-radius:12px;border:1px solid var(--border);background:var(--surface-2);font:inherit;font-weight:700;font-size:var(--fs-md);color:var(--ink);cursor:pointer;flex:none}
.cr-contador-v{font-size:var(--fs-sm);font-weight:700;color:var(--ink-muted);padding:0 8px}
.cr-barra{height:6px;background:var(--surface-3)}
.cr-barra div{height:100%;background:var(--accent);transition:width .25s}
.cr-corpo{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:18px 16px 24px}
.cr-rod{display:flex;gap:10px;padding:10px 12px 4px;background:var(--surface);border-top:1px solid var(--border)}
.cr-pend{min-height:22px;text-align:center;font-size:var(--fs-sm);font-weight:600;color:var(--critical);background:var(--surface);padding:0 12px calc(8px + env(safe-area-inset-bottom))}
.cr-pend.pisca{animation:crPisca .5s}
@keyframes crPisca{0%,100%{transform:none}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.cr-btn-voltar,.cr-btn-prox{min-height:60px;border-radius:14px;font:inherit;font-size:var(--fs-h4);font-weight:700;cursor:pointer;padding:0 18px}
.cr-btn-voltar{background:var(--surface-2);border:1px solid var(--border);color:var(--ink);flex:0 0 auto}
.cr-btn-prox{flex:1;background:var(--accent);color:var(--accent-ink);border:0}
.cr-btn-prox.bloq{opacity:.45}

.cr-centro{text-align:center;padding-top:10px}
.cr-centro h2{font-size:var(--fs-h2);margin:8px 0}
.cr-dica{color:var(--ink-muted);font-size:var(--fs-md);line-height:1.45}
.cr-dica a{color:var(--accent);font-weight:600}
.cr-pessoas{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-top:14px}
.cr-pessoa{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;min-height:110px;border-radius:14px;border:1px solid var(--border);background:var(--surface);font:inherit;font-size:var(--fs-h4);font-weight:600;color:var(--ink);cursor:pointer}
.cr-pessoa .campo-avatar{width:54px;height:54px;font-size:var(--fs-h3)}
.cr-pessoa.ultima{border:2px solid var(--accent)}
.cr-pessoa.grande{margin:18px auto;min-width:240px}
.cr-capa-ic{font-size:64px;line-height:1;margin-top:10px}
.cr-capa-sub{font-size:var(--fs-h4);font-weight:600;margin:0 0 10px}
.cr-capa-ajuda{font-size:var(--fs-lg);line-height:1.5;max-width:520px;margin:0 auto 18px}
.cr-capa-nums,.cr-resumo-nums{display:flex;justify-content:center;gap:12px;margin:14px 0}
.cr-capa-nums div,.cr-resumo-nums div{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:12px 20px;display:flex;flex-direction:column;font-size:var(--fs-sm);color:var(--ink-muted);min-width:110px}
.cr-capa-nums b,.cr-resumo-nums b{font-size:var(--fs-h1);color:var(--ink)}
.cr-resumo-nums .ok b{color:var(--success)}
.cr-resumo-nums .ruim b{color:var(--critical)}
.cr-aviso-peq{font-size:var(--fs-sm);color:var(--warning);font-weight:600}

.cr-item{max-width:620px;margin:0 auto}
.cr-grupo{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-muted);font-weight:700;margin-bottom:4px}
.cr-pergunta{font-size:var(--fs-h3);line-height:1.3;margin:4px 0 16px}
.cr-prod{display:flex;gap:14px;align-items:center}
.cr-prod-ic{font-size:44px;width:76px;height:76px;border-radius:16px;background:var(--surface);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;flex:none}
.cr-prod-txt h2{font-size:var(--fs-h2);margin:0;line-height:1.25}
.cr-prod-txt p{margin:4px 0 0;color:var(--ink-muted);font-size:var(--fs-md)}
.cr-qtd{font-size:44px;font-weight:700;margin:12px 0 14px;line-height:1}
.cr-qtd span{font-size:var(--fs-h3);color:var(--ink-muted);font-weight:600}
.cr-bloq{background:var(--surface-2);border-radius:12px;padding:14px;font-size:var(--fs-md);color:var(--ink-muted);margin:14px 0}

.cr-opcoes{display:grid;gap:10px;margin:8px 0 6px}
.cr-op{min-height:64px;border-radius:14px;font:inherit;font-size:var(--fs-h3);font-weight:700;cursor:pointer;border:2px solid transparent;padding:0 14px;width:100%}
.cr-op.ok{background:var(--success-soft);color:var(--success)}
.cr-op.alerta{background:var(--warning-soft);color:var(--warning)}
.cr-op.ruim{background:var(--critical-soft);color:var(--critical)}
.cr-op.na{background:var(--surface-2);color:var(--ink-muted)}
.cr-op.sel{border-color:currentColor;box-shadow:0 0 0 3px var(--surface) inset}
.cr-op.ok.sel{background:var(--success);color:#fff}
.cr-op.alerta.sel{background:var(--warning);color:#fff}
.cr-op.ruim.sel{background:var(--critical);color:#fff}
.cr-op.na.sel{background:var(--ink-muted);color:var(--surface)}

.cr-vol{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 14px;font-weight:600;font-size:var(--fs-md)}
.cr-vol-n{min-width:54px;min-height:54px;border-radius:12px;border:2px solid var(--border);background:var(--surface);font:inherit;font-size:var(--fs-h3);font-weight:700;color:var(--ink);cursor:pointer}
.cr-vol-n.sel{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}
.cr-vol-n.novo{font-size:var(--fs-md);padding:0 12px}

.cr-bloco-tit{font-size:var(--fs-md);font-weight:700;margin:18px 0 8px}
.cr-chips{display:flex;flex-wrap:wrap;gap:8px}
.cr-chip{min-height:48px;padding:0 16px;border-radius:999px;border:2px solid var(--border);background:var(--surface);font:inherit;font-size:var(--fs-md);font-weight:600;color:var(--ink);cursor:pointer}
.cr-chip.sel{border-color:var(--warning);background:var(--warning-soft);color:var(--warning)}
.cr-stepper{display:flex;align-items:center;gap:8px}
.cr-stepper button{width:64px;height:64px;border-radius:14px;border:1px solid var(--border);background:var(--surface);font-size:var(--fs-num);font-weight:700;color:var(--ink);cursor:pointer}
.cr-stepper input{width:110px;height:64px;font-size:var(--fs-h1);font-weight:700;text-align:center;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--ink)}
.cr-stepper span{font-size:var(--fs-h4);color:var(--ink-muted);font-weight:600}
.cr-num{display:flex;align-items:center;gap:10px}
.cr-num input{width:180px;height:68px;font-size:var(--fs-h1);font-weight:700;text-align:center;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--ink)}
.cr-num span{font-size:var(--fs-h3);font-weight:600;color:var(--ink-muted)}
.cr-texto,.cr-input{width:100%;box-sizing:border-box;font:inherit;font-size:var(--fs-h4);border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--ink);padding:12px}
.cr-input{min-height:56px}

.cr-fotos{display:flex;flex-wrap:wrap;gap:10px}
.cr-foto{position:relative}
.cr-foto img{width:104px;height:104px;object-fit:cover;border-radius:12px;border:1px solid var(--border);display:block;background:var(--surface-2)}
.cr-foto-x{position:absolute;top:-8px;right:-8px;width:34px;height:34px;border-radius:50%;border:0;background:var(--critical);color:#fff;font-size:var(--fs-md);cursor:pointer}
.cr-foto-add{width:104px;height:104px;border-radius:12px;border:2px dashed var(--accent);background:var(--accent-soft);color:var(--accent);font:inherit;font-size:var(--fs-num);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px}
.cr-foto-add span{font-size:var(--fs-sm);font-weight:700;padding:0 4px;line-height:1.15}
.cr-mic{margin-top:10px;min-height:54px;width:100%;border-radius:12px;border:1px solid var(--border);background:var(--surface);font:inherit;font-size:var(--fs-lg);font-weight:600;color:var(--ink);cursor:pointer}
.cr-mic.gravando{background:var(--critical);color:#fff;border-color:var(--critical)}
.cr-audio{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}
.cr-audio audio{max-width:100%}
.cr-foto-x-inline{background:none;border:0;color:var(--critical);font:inherit;font-size:var(--fs-md);font-weight:600;cursor:pointer;padding:10px 0;min-height:44px}

.cr-assin-wrap{position:relative;background:#fff;border:2px solid var(--border);border-radius:14px;margin-top:10px;touch-action:none;overflow:hidden}
.cr-assin-wrap canvas{display:block;touch-action:none}
.cr-assin-linha{position:absolute;left:18px;right:18px;bottom:30px;border-top:1px dashed #aaa;font-size:var(--fs-2xs);color:#999;padding-top:2px;pointer-events:none}

.cr-lista-probs{margin:0;padding-left:20px;font-size:var(--fs-md);line-height:1.5}
.cr-pend-item{display:flex;flex-direction:column;align-items:flex-start;width:100%;text-align:left;background:var(--critical-soft);border:1px solid var(--critical);border-radius:12px;padding:10px 14px;margin-bottom:8px;font:inherit;color:var(--ink);cursor:pointer;min-height:54px}
.cr-pend-item span{color:var(--critical);font-weight:600;font-size:var(--fs-sm)}
.cr-enviar{display:block;width:100%;min-height:68px;border-radius:16px;border:0;background:var(--success);color:#fff;font:inherit;font-size:var(--fs-h3);font-weight:700;margin-top:20px;cursor:pointer}
.cr-enviar.bloq{background:var(--surface-3);color:var(--ink-muted)}
.cr-rod-resumo{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
.cr-fim .cr-enviar{max-width:420px;margin:24px auto 0}

.cr-mapa{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px}
.cr-mapa-n{min-height:54px;border-radius:10px;border:1px solid var(--border);background:var(--surface-2);font:inherit;font-weight:700;font-size:var(--fs-h4);color:var(--ink);cursor:pointer}
.cr-mapa-n.ok{background:var(--success);color:#fff;border-color:var(--success)}
.cr-mapa-n.alerta{background:var(--warning);color:#fff;border-color:var(--warning)}
.cr-mapa-n.ruim{background:var(--critical);color:#fff;border-color:var(--critical)}
.cr-mapa-n.bloq{opacity:.45}

/* ordem de serviço */
.campo-botao small{display:block;font-size:var(--fs-xs);font-weight:500;color:var(--ink-muted)}
.campo-os-prog{display:block;height:6px;background:var(--surface-3);border-radius:3px;margin:6px 0 2px;overflow:hidden;max-width:320px}
.campo-os-prog span{display:block;height:100%;background:var(--success)}
.campo-levar ul{margin:0;padding-left:22px;font-size:var(--fs-lg);line-height:1.6}
.campo-parada{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:12px}
.campo-parada.saiu{opacity:.8}
.campo-parada-cab{display:flex;gap:12px;align-items:flex-start}
.campo-parada-cab a{color:var(--accent);font-weight:600}
.campo-parada-n{width:34px;height:34px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:inline-flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.campo-parada-pres{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0}
.campo-os-hora{background:var(--success-soft);color:var(--success);font-weight:700;border-radius:999px;padding:6px 12px;font-size:var(--fs-sm)}
.campo-os-btn{min-height:56px;padding:0 20px;border-radius:14px;border:0;background:var(--accent);color:var(--accent-ink);font:inherit;font-size:var(--fs-h4);font-weight:700;cursor:pointer}
.campo-os-btn.sec{background:var(--surface-2);color:var(--ink);border:1px solid var(--border)}
.campo-os-tarefa{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;text-align:left;border:1px solid var(--border);background:var(--surface-2);border-radius:12px;padding:8px 12px;margin-bottom:8px;font:inherit;font-size:var(--fs-lg);font-weight:600;color:var(--ink);cursor:pointer}
.campo-os-tarefa > span:nth-child(2){flex:1}
.campo-os-tarefa.feita{background:var(--success-soft);border-color:var(--success);color:var(--success)}
.campo-os-check{width:34px;height:34px;border-radius:10px;border:2px solid var(--border);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-h4);flex:none}
.campo-os-tarefa.feita .campo-os-check{background:var(--success);border-color:var(--success);color:#fff}
.campo-parada-levar{font-size:var(--fs-sm);color:var(--ink-muted);margin:4px 2px}
.campo-osf-cab{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.campo-osf-cab select{flex:1;min-width:180px;min-height:44px;font-size:var(--fs-md)}
.campo-osf-cab input[type=time]{min-height:44px;font-size:var(--fs-md)}
.campo-osf-local{width:100%;box-sizing:border-box;min-height:44px;font-size:var(--fs-md);margin-top:8px}
.campo-osf-livre{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-md);padding:4px 2px}
.campo-osf-add{display:flex;gap:8px;margin-top:6px}
.campo-osf-add input{flex:1;min-height:44px;font-size:var(--fs-md)}

@media (max-width:560px){
  .campo-titulo{font-size:var(--fs-h3)}
  .campo-grade{grid-template-columns:1fr 1fr}
  .cr-pergunta{font-size:var(--fs-h3)}
  .cr-qtd{font-size:var(--fs-num)}
  .cr-corpo{padding:14px 12px 20px}
}
