/* js/tools/photo-check/photo-check.css — saiu do <style> do index.html no corte de CSS (v303). 50 regra(s), na ordem original; os @media reabertos onde o contexto muda. Seletor com mais de um dono fica na casca.
   FICARAM NA CASCA POR ORDEM (perdem hoje para uma regra posterior da casca; mover mudaria a tela — fase 2):
     .pcbar button,.pcopts select,.pcopts input,.pcbar select  perde font-size para  button,[role="button"],.sch,.dni,.chip,.pk button,.seg3 button,label.s */
.pcopts{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:12.5px;margin:4px 0 6px;padding:6px 10px;border:1px dashed var(--accent);border-radius:9px}
.pcopts select,.pcopts input{padding:3px 6px;border:1px solid var(--line);border-radius:7px;background:#fff}
.pcview{position:relative;height:min(62vh,700px);overflow:hidden;background:#111;border-radius:10px;border:1px solid var(--line);touch-action:none;user-select:none}
.pcview img{position:absolute;left:0;top:0;max-width:none;will-change:transform}
.pcview>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pcview .pcfl svg{position:static;width:16px;height:16px;overflow:visible}
.pcloupe{position:absolute;width:180px;height:180px;border-radius:50%;pointer-events:none;box-shadow:0 6px 24px rgba(0,0,0,.5);background:#000}
.pcloupe canvas{display:block;border-radius:50%}
.pcrow2{gap:8px}
.pcnow{display:inline-flex;align-items:center;gap:6px;border:1px solid #f0c48a;background:#fff7e6;border-radius:8px;padding:4px 10px;font-size:12px}
.pcselrow{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:3px 8px;font-size:12px;background:#fff}
.pcrail-wrap{display:flex;gap:8px;align-items:stretch}
.pcrail{display:flex;flex-direction:column;gap:4px;width:46px;flex:none}
/* v322 (PC2, esboco T1 aprovado) + v323 (PC2b): so no PC (body sem data-phone) o trilho tem colunas — mesma ordem de hoje, a 1a
   coluna enche de cima para baixo e o que sobra segue na proxima — e fica preso a altura da foto (o mesmo min(62vh,700px) do
   .pcview), entao nunca passa da base dela. Antes o trilho era uma coluna sem teto: com o pill do pc.err dentro ele descia
   abaixo da foto.
   v323: o trilho e' um GRID de colunas automaticas, nao mais flex com quebra e largura fixa de 76 px. Com a largura fixa, numa
   janela mais baixa (1366x768: 12 linhas de 36 px) os itens que nao cabiam em duas colunas iam para uma terceira que
   TRANSBORDAVA por baixo da barra de estilo e da ajuda da ferramenta (regressao vista pelo Rafael). No grid a largura do
   trilho e' a soma das colunas que ele realmente usa, e o .pcrail-main comeca depois dela — o conteudo nunca fica por cima.
   Os espacadores (span) somem no PC: numa coluna que quebra eles so abririam buracos. Os 44 px sao regra de toque, do telefone
   (shell.css, @media max-width:640px), e la nada muda: o telefone continua na coluna unica de sempre. */
body:not([data-phone]) .pcrail{display:grid;grid-template-columns:36px 36px;grid-auto-flow:row;grid-auto-rows:36px;gap:4px;width:auto;align-self:start;align-content:start;justify-content:start} /* v325: 5 ferramentas + 4 acoes em duas colunas, por linha; o trilho nunca passa da foto (9 itens) e a largura e' a real */
body:not([data-phone]) .pcrail .pct,body:not([data-phone]) .pcrail .pcload{width:36px;height:36px}
body:not([data-phone]) .pcrail .pcrsp{flex:none;height:0}
.pcrail .pct{width:44px;height:44px;justify-content:center;padding:0;border-radius:10px;margin:0}
.pcrail .pct svg,.pcrail .pcload svg,.pcfl .pct svg{width:16px!important;height:16px!important}
.pcrail .pcload{width:44px;height:44px;justify-content:center;padding:0;box-sizing:border-box}
.pcrail-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}
.pcrail .pcrsp{flex:1}
.pcfl{position:absolute;display:flex;align-items:center;gap:4px;background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:10px;padding:4px;box-shadow:0 6px 20px rgba(0,0,0,.25);z-index:3;backdrop-filter:blur(6px);font-size:12px;user-select:none}
.pcfl .pct{border:none;border-radius:7px}
.pcrail .pct[aria-pressed="true"],.pcfl .pct[aria-pressed="true"],.pcbar .pct[aria-pressed="true"]{background:var(--accent)!important;color:var(--on-acc)!important;border-color:var(--accent)}
.pctip svg.demo{display:block;width:240px;height:130px;margin:6px 0 4px;border-radius:8px;background:#f4f6f9;border:1px solid var(--line)}
.pcfl .pcseg .pct{border:1px solid var(--line)}
.pcfl select,.pcfl .pcload{font-size:12px}
.pcfl.plain{background:transparent;border:none;box-shadow:none;padding:0;backdrop-filter:none}
.pcfull{height:min(76vh,1000px)}
.pcbar.pcdark{gap:4px}
.pcbar.pcdark .pcopts{margin:0}
.pcfl .pcopts{margin:0;background:rgba(255,255,255,.96)}
.pcl .plh,.pca .pah{opacity:0;pointer-events:none;transition:opacity .12s}
.pcl:hover .plh,.pcl.sel .plh,.pca:hover .pah,.pca.sel .pah{opacity:1;pointer-events:auto}
#pcsvg.placing .pcl,#pcsvg.placing .pca,#pcsvg.placing [data-pcunit],#pcsvg.placing [data-pcanchor],#pcsvg.placing [data-pccheck]{pointer-events:none}
#pcsvg.confirm [data-pcunit],#pcsvg.confirm [data-pcconfirm]{pointer-events:auto;cursor:pointer}
#pcsvg.placing{cursor:crosshair}
.pcstat{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.pcv{display:inline-block;font:700 11px/1 ui-monospace,monospace;padding:4px 7px;border-radius:999px;color:#fff}
.pcv.ok{background:#2f8f4e}
.pcv.look{background:#d3861c}
.pcv.bad{background:#c8403f}
body:is([data-theme="hud"],[data-theme="holo"],[data-theme="lab"],[data-theme="sketch"],[data-theme="sketchdark"]) .pcfl{background:var(--dlg);backdrop-filter:none}
body:is([data-theme="hud"],[data-theme="holo"],[data-theme="lab"],[data-theme="sketch"],[data-theme="sketchdark"]) .pcstep{color:var(--ink2)}
body:is([data-theme="hud"],[data-theme="holo"],[data-theme="lab"],[data-theme="sketch"],[data-theme="sketchdark"]) .pcstep.done{background:var(--acc2);border-color:var(--accent);color:var(--ink)}
body:is([data-theme="hud"],[data-theme="holo"],[data-theme="lab"],[data-theme="sketch"],[data-theme="sketchdark"]) :is(.pcrail .pct,.pcfl .pct,.pcbar .pct)[aria-pressed="true"]{background:var(--glow)!important;color:var(--onglow)!important;border-color:transparent;box-shadow:var(--glowsh)}
body:is([data-theme="hud"],[data-theme="holo"]) .pcopts{color:var(--ink2)}
@media (max-width:640px){
.pcview{height:min(58vh,700px)}
.pctip svg.demo{width:100%;height:auto}
}
body[data-phone] .pcbar,body[data-phone] .pcselrow,body[data-phone] .pcopts,body[data-phone] .pcrow2{flex-wrap:nowrap!important;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;padding-bottom:4px;max-width:100%;white-space:nowrap}
body[data-phone] .pcbar>*,body[data-phone] .pcselrow>*,body[data-phone] .pcopts>*{flex:none}

/* ===== v325 (reconstrucao do photo check, parte 1): a casca nova ===== */
.pcrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-height:34px;margin:0}
.pcrow-chips{margin:0 0 4px} .pcrow-steps{margin:4px 0 0} .pcrow-warn{margin-top:6px}
.pcchips{display:inline-flex;gap:4px;align-items:center}
.pcchipb{border:1px solid var(--line);background:#fff;border-radius:999px;padding:4px 10px;font:600 12px/1 system-ui,sans-serif;cursor:pointer;color:var(--ink)}
.pcchipb.on{background:var(--accent);color:var(--on-acc);border-color:var(--accent)} .pcchipb[disabled]{opacity:.45;cursor:default}
.pcsteps{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}
.pcstep{display:inline-flex;gap:6px;align-items:center;font-size:12px;color:var(--muted);padding:3px 8px;border:1px solid var(--line);border-radius:9px;background:#fff}
.pcstep b{color:var(--ink);font-weight:700} .pcstep.done{border-color:#1a6b3c;color:#1a6b3c} .pcstep.done b{color:#1a6b3c}
.pcmethod .pct{padding:3px 8px;font-size:12px}
.pcmtools{display:inline-flex;gap:4px;align-items:center;flex-wrap:wrap}
.pcmore,.pcphotos{margin:4px 0!important}
.pct.done{background:var(--accent);color:var(--on-acc);border-color:var(--accent);font-weight:700}
body:not([data-phone]) .pcrail .pct.done{width:auto;height:36px;padding:0 8px;grid-column:1 / -1;justify-self:stretch}
/* a ref do metodo window: alcas sempre visiveis na ferramenta move */
.pca.ref .pah{opacity:1;pointer-events:auto}
/* caixa provisoria (sem H_ref): cinza, reta */
.pcu.prov{cursor:pointer}
/* telefone: foto na metade de cima, fileiras de 44 px, sem rolagem */
body[data-phone] .pcph .pcview{height:46vh;height:46dvh}
body[data-phone] .pcph .pcrow .pct,body[data-phone] .pcph .pcrow .pcchipb,body[data-phone] .pcph .pcrow .pcload{min-height:44px}
body[data-phone] .pcph .pcrow-tools .pct,body[data-phone] .pcph .pcrow-actions .pct{width:44px;height:44px;justify-content:center;padding:0}
body[data-phone] .pcph .pcrow-actions .pct.done{width:auto;padding:0 14px;margin-left:auto}
body[data-phone] .pcph .pcrow{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none} body[data-phone] .pcph .pcrow>*{flex:none}
body[data-phone] .pcph .pcrow-warn{flex-wrap:wrap;overflow:visible}
/* v340 (L3, Celular): no telefone NADA rola de lado — as fileiras de chips (guia + ferramentas do metodo), de passos e de estado
   QUEBRAM linha; os itens .pcmtools / .pcsteps / .pcstat podem encolher (flex:1 1 auto; min-width:0) para o texto das chips quebrar
   (ate 3 linhas). As fileiras de ferramentas e de acoes ficam como estao (flex:none, uma linha). PC: nenhuma regra muda. */
body[data-phone] .pcph .pcrow-chips,body[data-phone] .pcph .pcrow-steps{flex-wrap:wrap;overflow:visible}
body[data-phone] .pcph .pcrow-chips>.pcmtools,body[data-phone] .pcph .pcrow-steps>.pcsteps,body[data-phone] .pcph .pcrow-warn>.pcstat{flex:1 1 auto;min-width:0}
body[data-phone] .pcph .pcrow-chips .pcchip,body[data-phone] .pcph .pcrow-warn .pcchip{line-height:1.35;white-space:normal}
/* v340 (L3): o painel de profundidade do plano em DUAS linhas no telefone — 1: rotulo · campo · in · − + · remove; 2: o slider inteiro · valor · adjust by window. Nenhum controle escondido, nada rola de lado. */
body[data-phone] .pcph .pcplane{flex-wrap:wrap;row-gap:6px}
body[data-phone] .pcph .pcplane>b{order:-5}
body[data-phone] .pcph .pcplane>.note{order:-4}
body[data-phone] .pcph .pcplane>input[type=number]{order:-3}
body[data-phone] .pcph .pcplane>.pcseg{order:1}
body[data-phone] .pcph .pcplane>[data-pcplanermv]{order:2}
body[data-phone] .pcph .pcplane>input[type=range]{order:3;flex:1 1 150px;width:auto;min-width:120px}
body[data-phone] .pcph .pcplane>[data-pcdepthlab]{order:4}
body[data-phone] .pcph .pcplane>[data-pcplanerefine]{order:5}
/* v326 (parte 2): planos */
.pcplane{gap:6px;align-items:center} .pcplane input[type=range]{width:140px} .pcplane input[type=number]{padding:3px 6px;border:1px solid var(--line);border-radius:7px;font:inherit}
.pcdiv.sel line{stroke:#ffd166}
body[data-phone] .pcph .pcplane input[type=range]{width:110px}
/* v343 (L4, adendo D): a caixinha all / only da ancora em grupo — popover dentro da vista, acima da envolvente do grupo (abaixo se nao couber), nunca debaixo do dedo */
.pcscope{position:absolute;z-index:6;display:flex;gap:6px;padding:6px;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 20px rgba(0,0,0,.3)}
.pcscope .pct{min-height:44px;font-size:13px;white-space:nowrap}
/* v585: as fotos da tarefa (a aba Photos da tela Job) — o botao "From this job (N)" ao lado de Add photos e a grade que ENCOLHE em linhas (nada rola de lado, L3) */
.pcjobbtn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--accent);border-radius:9px;padding:5px 10px;cursor:pointer;background:var(--panel);color:var(--accent);font:inherit;font-size:12px;font-weight:600;min-height:36px}
.pcjobbtn[aria-pressed=true]{background:var(--accent);color:var(--on-acc)}
.pcjobbtn svg{width:16px;height:16px}
body[data-phone] .pcjobbtn{min-height:44px}
.pcjob{margin:6px 0;display:flex;flex-direction:column;gap:6px}
.pcjobgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;max-height:260px;overflow-y:auto}
.pcjobt{display:flex;flex-direction:column;gap:2px;padding:3px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;min-width:0}
.pcjobt img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;display:block;background:var(--line)}
.pcjobt small{font-size:11px;min-height:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcjobt.here{border-color:var(--accent)} .pcjobt.here small{color:var(--accent);font-weight:600}
.pcjobt[disabled]{opacity:.55;cursor:wait} .pcjobt[aria-busy=true]{opacity:1;border-color:var(--accent)}
.pcjobt:focus-visible,.pcjobbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.pcjobnote{margin:0;font-size:12px;color:var(--muted)} .pcjobnote.bad{color:#c8403f}
