@font-face{font-family:'Ibrand';font-style:normal;font-weight:400;font-display:swap;
  src:url(fontes/ibrand.woff2) format('woff2')}
@font-face{font-family:'Maxima Nouva';font-style:normal;font-weight:400;font-display:swap;
  src:url(fontes/maxima-nouva-regular.woff2) format('woff2')}
@font-face{font-family:'Maxima Nouva';font-style:italic;font-weight:400;font-display:swap;
  src:url(fontes/maxima-nouva-italic.woff2) format('woff2')}
@font-face{font-family:'Maxima Nouva';font-style:normal;font-weight:600;font-display:swap;
  src:url(fontes/maxima-nouva-semibold.woff2) format('woff2')}
@font-face{font-family:'Maxima Nouva';font-style:normal;font-weight:700;font-display:swap;
  src:url(fontes/maxima-nouva-bold.woff2) format('woff2')}

:root{
  --areia:#E5E0D5; --pedra:#9D9890; --terracota:#9A4A2E;
  --ceu:#4F7187; --musgo:#515E52; --escuro:#1F1E1B;
  --ink:#1F1E1B; --soft:rgba(31,30,27,.66); --faint:rgba(31,30,27,.42);
  --rule:rgba(31,30,27,.18); --chip:rgba(31,30,27,.055);
  --disp:"Ibrand","Poppins","Avenir Next",system-ui,sans-serif;
  --body:"Maxima Nouva","Myriad Pro",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  background:var(--areia); color:var(--ink); font-family:var(--body);
  font-size:17px; line-height:1.5; -webkit-font-smoothing:antialiased;
  display:flex; flex-direction:column;
}

/* ---------- barra de progresso ---------- */
#topo{position:sticky;top:0;z-index:5;background:var(--areia);border-bottom:1px solid var(--rule)}
#barra{height:3px;background:rgba(31,30,27,.12)}
#barra i{display:block;height:100%;background:var(--terracota);width:0;transition:width .35s cubic-bezier(.4,0,.2,1)}
#cab{display:flex;align-items:center;justify-content:space-between;padding:12px 18px 11px;gap:12px}
#marca{font-family:var(--disp);font-weight:600;font-size:15px;color:var(--terracota)}
#etapa{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-family:var(--disp)}

/* ---------- palco ---------- */
main{flex:1;overflow-y:auto;padding:26px 18px 20px;max-width:620px;width:100%;margin:0 auto}
.tela{animation:entra .32s cubic-bezier(.4,0,.2,1) both}
@keyframes entra{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.tela{animation:none}}

h1{font-family:var(--disp);font-weight:400;font-size:28px;line-height:1.14;letter-spacing:0;margin-bottom:10px}
h2{font-family:var(--disp);font-weight:400;font-size:23px;line-height:1.2;letter-spacing:0;margin-bottom:8px}
.olho{font-family:var(--disp);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--terracota);margin-bottom:9px;font-weight:600}
p.sub{color:var(--soft);margin-bottom:20px;font-size:16px}
p.mini{color:var(--faint);font-size:14.5px;margin-top:14px;line-height:1.45}

/* lembrete curto dentro da tela */
.lembrete{background:var(--chip);border-left:3px solid var(--ceu);padding:12px 13px 10px;margin-bottom:14px;font-size:15px;color:var(--soft);line-height:1.45}
.lembrete b{color:var(--ink)}
.lembrete.dois{border-left-color:var(--terracota);margin-top:16px}
.lembrete .titulo{display:block;font-family:var(--disp);font-weight:600;font-size:16px;color:var(--ink);margin-bottom:5px}

/* listas dentro do lembrete */
.lembrete ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.lembrete li{position:relative;padding-left:17px;font-size:14.5px;line-height:1.4}
.lembrete li::before{content:"";position:absolute;left:0;top:7px;width:6px;height:6px;border-radius:50%;background:var(--ceu)}
.lembrete.dois li::before{background:var(--terracota)}
.lembrete li b{color:var(--ink)}

/* erros de preenchimento */
.msg-erro,.aviso-erro{display:flex;align-items:center;gap:8px;color:var(--terracota);
  font-weight:600;font-size:13.5px;line-height:1.35}
.msg-erro{margin-top:7px}
.aviso-erro{margin:18px 0 -8px;background:rgba(154,74,46,.09);border-left:3px solid var(--terracota);
  padding:12px 13px;animation:tremor .3s ease-out}
.msg-erro svg,.aviso-erro svg{width:17px;height:17px;flex:none}
label.campo.com-erro input{border-color:var(--terracota);border-bottom-color:var(--terracota);
  background:rgba(154,74,46,.05)}
@keyframes tremor{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
@media (prefers-reduced-motion:reduce){.aviso-erro{animation:none}}

/* desenhos */
figure.fig{margin:10px 0 2px;display:flex;flex-direction:column;align-items:center;gap:5px}
figure.fig svg{width:100%;max-width:290px;height:auto;display:block}
figure.fig figcaption{font-size:12.5px;color:var(--faint);text-align:center;line-height:1.35}

/* bloco retrátil de exemplo */
details.ver{border:1px solid var(--rule);background:rgba(255,255,255,.42);border-radius:3px;margin:12px 0 2px}
details.ver>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;
  gap:10px;min-height:50px;padding:0 14px;font-family:var(--disp);font-weight:600;font-size:15px;color:var(--ceu)}
details.ver>summary::-webkit-details-marker{display:none}
details.ver>summary .seta{font-size:12px;transition:transform .2s}
details.ver[open]>summary .seta{transform:rotate(180deg)}
details.ver .corpo{padding:0 12px 14px}
.foto{position:relative;line-height:0;border:1px solid var(--rule)}
.foto img{width:100%;height:auto;display:block}
.foto svg.grade{position:absolute;inset:0;width:100%;height:100%}
.foto .faixa{position:absolute;left:0;right:0;background:rgba(154,74,46,.16);
  border-top:1.5px solid rgba(154,74,46,.85);border-bottom:1.5px solid rgba(154,74,46,.85)}
.foto .vert{position:absolute;border-left:2px dashed rgba(154,74,46,.95)}
.foto .mk{position:absolute;font-family:var(--body);font-size:11px;font-weight:700;line-height:1.2;
  background:rgba(154,74,46,.94);color:#E5E0D5;padding:3px 6px;border-radius:2px;white-space:nowrap}
.legenda{font-size:13px;color:var(--soft);line-height:1.45;margin-top:10px}
.legenda b{color:var(--ink)}
.rotulo-esq{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);
  font-family:var(--disp);font-weight:600;margin:16px 0 2px;display:block}

/* câmera */
.cam{display:flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 12px;
  border:1.5px solid var(--terracota);background:rgba(154,74,46,.09);color:var(--terracota);
  font-family:var(--disp);font-weight:400;font-size:14.5px;border-radius:3px;cursor:pointer;
  margin:8px 0 4px;text-align:center;line-height:1.2;letter-spacing:.01em}
.cam:active{background:rgba(154,74,46,.16)}
.cam.feito{border-style:solid;background:var(--terracota);color:var(--areia)}
.cam svg{width:18px;height:18px;flex:none}
.camnota{font-size:12.5px;color:var(--faint);margin:0 0 4px;line-height:1.4}

/* micro-instrução de toque */
.dica{display:flex;align-items:center;gap:7px;font-size:13.5px;color:var(--terracota);
  font-weight:600;margin:0 0 9px;letter-spacing:.005em}
.dica::before{content:"";width:14px;height:1.5px;background:var(--terracota);flex:none}
.passo{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.passo b{font-family:var(--disp);font-size:13px;color:var(--terracota);min-width:56px;flex:none;letter-spacing:.06em}
.passo span{flex:1;font-size:15.5px;line-height:1.4}
.arvore{background:rgba(255,255,255,.55);border:1px solid var(--rule);padding:13px 14px;margin:14px 0 4px;
  font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:13px;line-height:1.75;white-space:pre;overflow-x:auto;color:var(--ink)}
.arvore i{font-style:normal;color:var(--faint)}

/* fala pronta */
.fala{background:var(--chip);border-top:3px solid var(--terracota);padding:16px;margin-bottom:16px;font-family:var(--disp);font-size:17px;line-height:1.42}
.fala .rot{display:block;font-family:var(--body);font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--terracota);margin-bottom:8px;font-weight:700}

/* ---------- controles ---------- */
label.campo{display:block;margin-bottom:16px}
label.campo span{display:block;font-size:14.5px;color:var(--soft);margin-bottom:6px}
input[type=text],textarea{
  width:100%;font:inherit;font-size:17px;color:var(--ink);background:rgba(255,255,255,.55);
  border:1px solid var(--rule);border-bottom:2px solid rgba(31,30,27,.35);
  padding:13px 13px;border-radius:2px;
}
textarea{min-height:88px;resize:vertical;line-height:1.45}
input:focus,textarea:focus{outline:none;border-color:var(--terracota);background:rgba(255,255,255,.85)}
::placeholder{color:var(--faint)}

.escolhas{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.escolhas.lado{flex-direction:row;flex-wrap:wrap}
.escolhas.lado .op{flex:1 1 30%;text-align:center;justify-content:center}
.op{
  display:flex;align-items:center;gap:12px;min-height:56px;padding:13px 15px;
  background:rgba(255,255,255,.5);border:1px solid var(--rule);border-radius:3px;
  font-size:17px;text-align:left;cursor:pointer;color:var(--ink);font-family:inherit;
  transition:background .15s,border-color .15s;
}
.op:active{background:rgba(255,255,255,.9)}
.op[aria-pressed="true"]{background:var(--terracota);border-color:var(--terracota);color:var(--areia);font-weight:600}
.op .desc{display:block;font-size:13.5px;color:var(--faint);margin-top:2px;font-weight:400}
.op[aria-pressed="true"] .desc{color:rgba(229,224,213,.75)}

/* botão principal */
.acoes{display:flex;gap:10px;margin-top:24px;align-items:center}
button.avanca{
  flex:1;min-height:56px;background:var(--escuro);color:var(--areia);border:0;border-radius:3px;
  font-family:var(--disp);font-size:17.5px;font-weight:400;letter-spacing:.01em;cursor:pointer;
}
button.avanca:disabled{opacity:.32}
button.volta{
  min-height:56px;padding:0 18px;background:none;border:1px solid var(--rule);border-radius:3px;
  color:var(--soft);font-size:16px;font-family:inherit;cursor:pointer;
}

/* achados */
.lista{display:flex;flex-direction:column;gap:9px;margin-bottom:16px}
.item{border:1px solid var(--rule);background:rgba(255,255,255,.45);padding:12px 13px;font-size:15.5px}
.item b{display:block;font-family:var(--disp);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--terracota);margin-bottom:3px}
.item .x{float:right;color:var(--faint);font-size:22px;line-height:1;background:none;border:0;cursor:pointer;padding:0 4px}
.vazia{color:var(--faint);font-size:15px;padding:14px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-bottom:16px}

/* conferência */
.conf{border-top:1px solid rgba(31,30,27,.3)}
.linha{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule)}
.linha .txt{flex:1;font-size:16px;line-height:1.35}
.linha .bts{display:flex;gap:6px;flex:none}
.mini-bt{min-width:60px;min-height:44px;border:1px solid var(--rule);background:rgba(255,255,255,.5);border-radius:3px;font-size:14px;font-family:inherit;color:var(--soft);cursor:pointer}
.mini-bt[aria-pressed="true"]{background:var(--musgo);border-color:var(--musgo);color:var(--areia);font-weight:600}
.mini-bt.nao[aria-pressed="true"]{background:var(--terracota);border-color:var(--terracota)}

/* botões do fim */
.fim-bts{display:flex;flex-direction:column;gap:10px;margin:4px 0 6px}
.fim-bts .avanca{width:100%}
.fim-bts .secundario{min-height:52px;background:none;border:1px solid var(--rule);border-radius:3px;
  color:var(--soft);font-family:var(--body);font-size:16px;cursor:pointer}
.fim-bts .avanca.pronto{background:var(--musgo)}

/* saída */
pre#saida{
  white-space:pre-wrap;word-wrap:break-word;background:rgba(255,255,255,.6);
  border:1px solid var(--rule);padding:14px;font-size:14px;line-height:1.5;
  font-family:ui-monospace,"SF Mono",Menlo,monospace;max-height:44vh;overflow:auto;margin-bottom:16px;
}
.blocos{border-top:1px solid var(--rule)}
.blocos div{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--rule);font-size:15.5px}
.blocos span{font-family:var(--disp);font-weight:600;font-size:12px;letter-spacing:.1em;color:var(--terracota);min-width:82px;padding-top:2px}
.selo{background:var(--escuro);color:var(--areia);padding:12px 14px;font-family:var(--disp);font-weight:600;font-size:14.5px;letter-spacing:.02em;margin-bottom:16px;line-height:1.35}

/* ================= login e convite ================= */
.entrada{max-width:420px;margin:0 auto}
.selo-marca{font-family:var(--disp);font-size:34px;color:var(--terracota);letter-spacing:.01em;margin-bottom:2px}
.ms{display:flex;align-items:center;gap:12px;width:100%;min-height:56px;padding:0 16px;
  background:var(--escuro);color:var(--areia);border:0;border-radius:3px;cursor:pointer;
  font-family:var(--disp);font-size:17px;text-align:left}
.ms:active{opacity:.86}
.ms .quadros{display:grid;grid-template-columns:9px 9px;grid-gap:2px;flex:none}
.ms .quadros i{width:9px;height:9px;display:block}
.divisor{display:flex;align-items:center;gap:12px;margin:22px 0 18px;color:var(--faint);font-size:13.5px;
  letter-spacing:.06em;text-transform:uppercase;font-family:var(--disp)}
.divisor::before,.divisor::after{content:"";flex:1;height:1px;background:var(--rule)}
.linkinho{background:none;border:0;padding:0;color:var(--ceu);font-family:var(--body);font-size:15px;
  cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkinho.apagado{color:var(--faint)}
.rodape-conta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:18px 0 0;padding-top:14px;
  border-top:1px solid var(--rule);font-size:14px;color:var(--faint)}
.codigo{font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:27px;letter-spacing:.14em;
  background:var(--escuro);color:var(--areia);padding:16px;text-align:center;margin:6px 0 12px;word-break:break-all}
.retomar{background:rgba(79,113,135,.12);border-left:3px solid var(--ceu);padding:13px 14px;margin-bottom:20px}
.retomar p{font-size:15px;color:var(--soft);margin-bottom:10px;line-height:1.4}
.retomar .bts{display:flex;gap:8px}
.retomar button{min-height:44px;padding:0 14px;border-radius:3px;font-family:var(--body);font-size:15px;cursor:pointer}
.retomar .sim{background:var(--ceu);border:0;color:var(--areia);font-weight:600}
.retomar .nao{background:none;border:1px solid var(--rule);color:var(--soft)}

/* ================= seletor de ambiente ================= */
.campo-amb{margin-bottom:16px}
.seletor{display:flex;align-items:center;gap:12px;width:100%;min-height:60px;padding:0 15px;
  background:rgba(255,255,255,.6);border:1.5px solid var(--rule);border-bottom:2px solid rgba(31,30,27,.35);
  border-radius:3px;cursor:pointer;font-family:inherit;text-align:left}
.seletor .rot{font-family:var(--disp);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--terracota);font-weight:600;flex:none}
.seletor .val{flex:1;font-size:18px;color:var(--ink)}
.seletor .val.vazio{color:var(--faint)}
.seletor .seta{font-size:12px;color:var(--soft);transition:transform .2s;flex:none}
.seletor[aria-expanded="true"] .seta{transform:rotate(180deg)}
.seletor.pendente{border-color:var(--terracota)}
.seletor.aberto{border-color:var(--terracota);border-bottom-color:var(--terracota);
  border-bottom-left-radius:0;border-bottom-right-radius:0}

.lista-amb{list-style:none;margin:0;padding:0;
  background:rgba(255,255,255,.35);border:1.5px solid var(--terracota);border-top:0;border-radius:0 0 3px 3px;
  max-height:58vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.lista-amb li{border-bottom:1px solid var(--rule)}
.lista-amb li:last-child{border-bottom:0}
.opcao{display:block;width:100%;text-align:left;min-height:52px;padding:14px 15px;background:none;border:0;
  font-family:inherit;font-size:17px;color:var(--ink);cursor:pointer;line-height:1.25}
.opcao:active{background:rgba(255,255,255,.75)}
.opcao[aria-selected="true"]{background:var(--terracota);color:var(--areia);font-weight:600}

/* lista dos ambientes já registrados */
.trilha{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.trilha button{font-family:var(--disp);font-size:12.5px;letter-spacing:.04em;padding:7px 10px;min-height:36px;
  border:1px solid var(--rule);background:rgba(255,255,255,.4);color:var(--soft);border-radius:3px;cursor:pointer}
.trilha button[aria-current="true"]{background:var(--escuro);border-color:var(--escuro);color:var(--areia)}
.trilha button.incompleto{border-style:dashed;border-color:var(--terracota);color:var(--terracota)}

/* três ações */
.acoes.tres{flex-wrap:wrap;gap:10px}
.acoes.tres .volta{flex:0 0 auto}
.acoes.tres .mais{flex:1 1 auto;min-height:56px;padding:0 16px;background:none;border:1.5px solid var(--terracota);
  border-radius:3px;color:var(--terracota);font-family:var(--disp);font-size:16.5px;cursor:pointer}
.acoes.tres .mais:active{background:rgba(154,74,46,.1)}
.acoes.tres .avanca{flex:1 0 100%}
.remover{margin-top:14px}

/* ================= câmera e miniaturas ================= */
.thumbs{display:flex;flex-wrap:wrap;gap:7px;margin:2px 0 10px}
.thumb{position:relative;width:70px;height:70px;border:1px solid var(--rule);overflow:hidden;line-height:0}
.thumb img{width:100%;height:100%;object-fit:cover}
.thumb button{position:absolute;top:0;right:0;width:24px;height:24px;border:0;background:rgba(31,30,27,.72);
  color:var(--areia);font-size:15px;line-height:24px;cursor:pointer;padding:0}

#camOv{position:fixed;inset:0;z-index:50;background:var(--escuro);display:flex;flex-direction:column}
#camOv[hidden]{display:none}
#camPalco{position:relative;flex:1;overflow:hidden;background:var(--escuro)}
#camVid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--escuro)}
#camGrade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#camAviso{position:absolute;left:16px;right:16px;bottom:16px;color:var(--areia);font-size:13.5px;
  background:rgba(31,30,27,.6);padding:9px 11px;border-radius:3px;line-height:1.35}
#camBarra{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 20px calc(16px + env(safe-area-inset-bottom));background:var(--escuro)}
#camBarra button{font-family:var(--disp);font-size:16px;background:none;border:0;color:var(--areia);cursor:pointer;
  min-height:48px;padding:0 6px}
#camDisparo{width:70px;height:70px;border-radius:50%;background:var(--areia);border:4px solid var(--pedra);flex:none;padding:0}
#camDisparo:active{transform:scale(.94)}
#camConta{color:var(--pedra);font-size:14px;font-family:var(--disp);min-width:70px;text-align:right}
#camTira{display:flex;gap:6px;padding:0 20px 10px;overflow-x:auto;background:var(--escuro)}
#camTira img{width:52px;height:52px;object-fit:cover;border:1px solid rgba(229,224,213,.35);flex:none}

/* resumo de fotos no fim */
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;margin:4px 0 16px}
.galeria img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--rule);display:block}

/* ================= destino da ficha ================= */
a.avanca.acao,button.avanca.acao{display:flex;align-items:center;justify-content:center;
  text-decoration:none;width:100%;margin:2px 0 4px;padding:0 14px;text-align:center}
#btCopiar{margin-bottom:20px}
button.secundario.solto{min-height:52px;width:100%;background:none;border:1px solid var(--rule);
  border-radius:3px;color:var(--soft);font-family:var(--body);font-size:16px;cursor:pointer;margin:14px 0 4px}

/* ================= guia de enquadramento ================= */
.linkinho.rever{margin:2px 0 14px;display:inline-block}
#guiaOv{position:fixed;inset:0;z-index:40;background:var(--areia);display:flex;flex-direction:column}
#guiaOv[hidden]{display:none}
#guiaCorpo{flex:1;overflow-y:auto;padding:24px 18px 8px;max-width:620px;width:100%;margin:0 auto}
#guiaBarra{padding:12px 18px calc(14px + env(safe-area-inset-bottom));border-top:1px solid var(--rule);
  background:var(--areia);max-width:620px;width:100%;margin:0 auto}
#guiaBarra .avanca{width:100%}

/* ================= agente de vistoria: cabeçalho, login, início ================= */
#marca img{height:17px;width:auto;display:block}
#cabDir{display:flex;align-items:center;gap:12px}
.avatar{width:36px;height:36px;border-radius:50%;border:0;background:var(--terracota);color:var(--areia);
  font-family:var(--disp);font-size:13px;font-weight:600;letter-spacing:.04em;cursor:pointer}
.avatar[hidden]{display:none}
#menuConta{position:absolute;right:14px;top:58px;z-index:20;min-width:230px;background:var(--areia);
  border:1px solid rgba(31,30,27,.28);border-radius:4px;padding:6px 0;box-shadow:0 10px 24px rgba(31,30,27,.14)}
#menuConta[hidden]{display:none}
#menuConta .quem{display:flex;flex-direction:column;padding:10px 16px 12px;border-bottom:1px solid var(--rule);margin-bottom:6px}
#menuConta .quem b{font-family:var(--disp);font-size:15px}
#menuConta .quem span{font-size:13px;color:var(--faint);word-break:break-all}
#menuConta button{display:block;width:100%;text-align:left;min-height:46px;padding:0 16px;background:none;border:0;
  font-family:var(--body);font-size:16px;color:var(--ink);cursor:pointer}
#menuConta button:active{background:rgba(255,255,255,.6)}
#menuConta button[hidden]{display:none}
#menuConta #menuSair{color:var(--soft)}
#topo{position:sticky}

.hero{border-radius:16px;overflow:hidden;line-height:0;margin:2px 0 26px;aspect-ratio:16/10;max-height:240px;background:var(--pedra)}
.hero img{width:100%;height:100%;object-fit:cover;display:block}
.logo-grande{height:26px;width:auto;display:block;margin-bottom:10px}
h1.titulo-app{font-size:34px;margin-bottom:22px;text-wrap:balance}
.rodape-proto{font-size:12.5px;margin-top:26px;color:var(--faint)}
.volta-home{margin-bottom:14px;display:inline-block;text-decoration:none;font-size:14.5px}

.home{max-width:520px;margin:0 auto}
h1.saudacao{font-size:34px;margin:6px 0 22px}
.retomar-card{display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;width:100%;text-align:left;
  padding:14px 16px;margin-bottom:18px;background:rgba(79,113,135,.12);border:1px solid rgba(79,113,135,.45);border-left:4px solid var(--ceu);
  border-radius:8px;cursor:pointer;font-family:inherit}
.retomar-card .rot{grid-column:1;font-family:var(--disp);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ceu);font-weight:600}
.retomar-card .nome{grid-column:1;font-size:17px;color:var(--ink)}
.retomar-card .seta{grid-column:2;grid-row:1/3;font-size:22px;color:var(--ceu)}

.modulos{display:flex;flex-direction:column;gap:12px}
.modulo{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;width:100%;min-height:96px;padding:18px 18px;
  text-align:left;background:rgba(255,255,255,.5);border:1px solid rgba(31,30,27,.22);border-radius:12px;
  cursor:pointer;font-family:inherit;color:var(--ink);transition:transform .12s}
.modulo:active{transform:scale(.985)}
.modulo .ico{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:12px;
  background:var(--chip);color:var(--musgo)}
.modulo .ico svg{width:30px;height:30px}
.modulo .txt{display:flex;flex-direction:column;gap:5px}
.modulo .t{font-family:var(--disp);font-size:19px;line-height:1.15}
.modulo .tag{align-self:flex-start;font-family:var(--disp);font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  padding:3px 8px;border-radius:3px;background:var(--pedra);color:var(--escuro)}
.modulo .seta{font-size:24px;color:var(--areia)}
.modulo.pronto{background:var(--terracota);border-color:var(--terracota);color:var(--areia)}
.modulo.pronto .ico{background:rgba(229,224,213,.16);color:var(--areia)}
.modulo.pronto .tag{background:rgba(229,224,213,.22);color:var(--areia)}
.modulo:not(.pronto){opacity:.78}
.modulo:not(.pronto) .t{color:var(--soft)}
@keyframes balanca{0%,100%{transform:translateX(0)}30%{transform:translateX(-5px)}60%{transform:translateX(5px)}}
.modulo.balanca{animation:balanca .4s ease-out}
@media (prefers-reduced-motion:reduce){.modulo.balanca{animation:none}}
input[type=email]{width:100%;font:inherit;font-size:17px;color:var(--ink);background:rgba(255,255,255,.55);
  border:1px solid var(--rule);border-bottom:2px solid rgba(31,30,27,.35);padding:13px 13px;border-radius:2px}
input[type=email]:focus{outline:none;border-color:var(--terracota);background:rgba(255,255,255,.85)}
[hidden]{display:none!important}
.entrada.login{padding-top:10px}

/* ================= sistema visual: cantos e cartões ================= */
:root{--r:12px;--rs:8px}
input[type=text],input[type=email],textarea{border-radius:10px;border:1px solid rgba(31,30,27,.22);border-bottom:1px solid rgba(31,30,27,.22);background:rgba(255,255,255,.6);padding:14px 14px}
input:focus,textarea:focus{border-color:var(--terracota)!important;background:rgba(255,255,255,.9)}
.op{border-radius:var(--r);border:1px solid rgba(31,30,27,.22);min-height:62px;padding:14px 16px}
.op[aria-pressed="true"]{border-color:var(--terracota)}
button.avanca{border-radius:var(--r)}
button.volta{border-radius:var(--r);border:1px solid rgba(31,30,27,.22)}
.acoes.tres .mais{border-radius:var(--r)}
button.secundario.solto,.fim-bts .secundario{border-radius:var(--r);border:1px solid rgba(31,30,27,.22)}
.cam{border-radius:var(--r);min-height:52px;background:rgba(255,255,255,.55);border:1.5px solid var(--terracota)}
.cam.feito{background:var(--terracota)}
.ms{border-radius:var(--r)}
.seletor{border-radius:var(--r);border:1px solid rgba(31,30,27,.22);border-bottom:1px solid rgba(31,30,27,.22)}
.seletor.aberto{border-radius:var(--r) var(--r) 0 0;border-color:var(--terracota)}
.lista-amb{border-radius:0 0 var(--r) var(--r)}
.lembrete{border-radius:var(--r);background:rgba(255,255,255,.5);border:1px solid rgba(31,30,27,.14);border-left:4px solid var(--ceu);padding:14px 16px 12px}
.lembrete.dois{border-left-color:var(--terracota)}
.fala{border-radius:var(--r);background:rgba(255,255,255,.5);border:1px solid rgba(31,30,27,.14);border-top:4px solid var(--terracota)}
.item{border-radius:var(--r);border:1px solid rgba(31,30,27,.18)}
.retomar{border-radius:var(--r)}
.retomar button{border-radius:var(--rs)}
.mini-bt{border-radius:var(--rs)}
.trilha button{border-radius:var(--rs)}
.thumb{border-radius:var(--rs)}
.galeria img{border-radius:var(--rs)}
pre#saida,.arvore{border-radius:var(--r)}
.selo{border-radius:var(--r)}
.aviso-erro{border-radius:var(--rs)}
details.ver{border-radius:var(--r)}
.foto{border-radius:var(--r);overflow:hidden}
.codigo{border-radius:var(--r)}
.conf{border-top:0}
.linha{background:rgba(255,255,255,.5);border:1px solid rgba(31,30,27,.18);border-radius:var(--r);padding:12px 14px;margin-bottom:10px}
.linha .txt{font-size:15.5px}
.vazia{border:1px dashed rgba(31,30,27,.25);border-radius:var(--r);padding:16px;text-align:center}
.blocos div{border-bottom:1px solid var(--rule)}
#camOv,#guiaOv{border-radius:0}
.remover{margin-top:10px}

/* ================= login: capa + painel ================= */
.login{margin:-26px -18px 0}
.capa{position:relative;height:46vh;min-height:280px;max-height:440px;overflow:hidden;background:var(--musgo)}
.capa-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 50%}
.capa-veu{position:absolute;inset:0;background:rgba(31,30,27,.42)}
.capa-txt{position:absolute;left:22px;right:22px;bottom:44px;color:var(--areia)}
.capa-logo{height:22px;width:auto;display:block;margin-bottom:14px}
.capa-txt h1{font-size:40px;line-height:1.05;color:var(--areia);margin:0;text-wrap:balance}
.capa-txt h1 i{font-style:italic}
.painel{position:relative;background:var(--areia);border-radius:24px 24px 0 0;margin-top:-24px;padding:28px 18px 24px}
.painel .campo{margin-bottom:14px}
button.cheio{width:100%;min-height:56px;display:block;font-family:var(--disp);font-size:17px;margin-top:10px}
button.contorno{background:none;border:1.5px solid rgba(31,30,27,.28);border-radius:var(--r);color:var(--ink);cursor:pointer}
button.contorno:active{background:rgba(255,255,255,.6)}
.painel .rodape-proto{margin-top:18px;text-align:center}
@media (min-width:640px){.login{margin:-26px 0 0}.capa{border-radius:24px 24px 0 0}.painel{margin-top:-24px}}
.cam{width:100%}

/* ================= lista de fichas ================= */
.rotulo-lista{font-family:var(--disp);font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--faint);font-weight:600;margin:26px 0 10px}
.cartao{display:grid;grid-template-columns:52px 1fr auto;align-items:center;gap:14px;width:100%;min-height:76px;
  padding:16px 18px;text-align:left;border-radius:var(--r);cursor:pointer;font-family:inherit}
.cartao.nova{background:var(--escuro);border:1px solid var(--escuro);color:var(--areia)}
.cartao.nova .ico{width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:12px;
  background:rgba(229,224,213,.16)}
.cartao.nova .ico svg{width:26px;height:26px}
.cartao.nova .t{font-family:var(--disp);font-size:19px}
.cartao.nova .seta{font-size:24px}

.fichas{display:flex;flex-direction:column;gap:10px}
.ficha-item{position:relative}
.ficha-item .abrir{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;padding:16px 42px 16px 18px;
  background:rgba(255,255,255,.5);border:1px solid rgba(31,30,27,.22);border-radius:var(--r);cursor:pointer;font-family:inherit;color:var(--ink)}
.ficha-item .abrir .t{font-family:var(--disp);font-size:18px;line-height:1.2}
.ficha-item .abrir .d{font-size:13.5px;color:var(--faint)}
.ficha-item .x{position:absolute;top:8px;right:8px;width:30px;height:30px;padding:0;border-radius:50%;
  border:1px solid rgba(31,30,27,.2);background:var(--areia);color:var(--soft);font-size:17px;line-height:1;cursor:pointer}
.ficha-item .x:active{background:var(--terracota);border-color:var(--terracota);color:var(--areia)}

/* ================= trilha com x ================= */
.trilha{gap:12px 10px;padding:9px 0 0 8px;margin-left:-8px}
.trilha-item{position:relative;display:inline-block}
.trilha-item>button:not(.x){display:block}
.trilha .trilha-item>button.x{position:absolute;top:-7px;left:-7px;width:20px;height:20px;min-width:20px;min-height:20px;
  padding:0;border-radius:50%;border:1px solid rgba(31,30,27,.3);background:var(--areia);color:var(--soft);
  font-family:var(--body);font-size:14px;line-height:1;letter-spacing:0;cursor:pointer;z-index:2;
  display:flex;align-items:center;justify-content:center}
.trilha .trilha-item>button.x:active{background:var(--terracota);border-color:var(--terracota);color:var(--areia)}

/* ================= opção com duas linhas (ativos) ================= */
.opcao.dupla{display:flex;flex-direction:column;gap:2px;padding:12px 15px}
.opcao.dupla .t{font-size:17px;line-height:1.2}
.opcao.dupla .d{font-size:13px;color:var(--faint)}
.opcao.dupla[aria-selected="true"] .d{color:rgba(229,224,213,.75)}
.campo-amb.com-erro .seletor{border-color:var(--terracota);background:rgba(154,74,46,.05)}

/* ================= etapa 2 · instalar e atualizar ================= */
/* Daqui para baixo é o que a etapa 2 acrescentou. Acima, o app.css é a v15
   byte a byte. */

#faixaNova{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:9px 18px;background:var(--ceu);color:var(--areia);font-size:14.5px;
  position:sticky;top:0;z-index:9}
#faixaNova button{min-height:34px;padding:0 14px;border:1px solid rgba(229,224,213,.55);
  background:none;border-radius:3px;color:var(--areia);font-family:var(--disp);
  font-size:14.5px;cursor:pointer}
#faixaNova button:active{background:rgba(229,224,213,.16)}

.instalar{max-width:420px;margin:0 auto;padding-top:8px}
.instalar .logo-grande{margin-bottom:14px}
.instalar h1{font-size:30px;margin-bottom:8px}
.instalar p.sub{margin-bottom:22px}
.instalar .avanca{width:100%}

.passos-ios{list-style:none;margin:6px 0 4px;padding:0;
  border-top:1px solid var(--rule)}
.passos-ios li{display:flex;align-items:center;gap:13px;padding:15px 2px;
  border-bottom:1px solid var(--rule);font-size:16px;line-height:1.35}
.passos-ios .n{font-family:var(--disp);font-size:12.5px;letter-spacing:.1em;
  color:var(--terracota);font-weight:600;flex:none;min-width:16px}
.passos-ios svg{width:26px;height:26px;flex:none;color:var(--ceu)}
.passos-ios b{color:var(--ink)}

/* ---- etapa 4 · estado de cada foto ---- */
/* Enquanto a etapa 6 não existe, tudo fica em "capturada" — sem anel e sem
   selo. Os outros quatro só aparecem quando houver fila de envio. */
.thumb .sem-mini{display:block;width:100%;height:100%;background:var(--chip);
  border:1px dashed var(--rule)}
.thumb .sem-mini::after{content:"foto";position:absolute;inset:0;display:flex;
  align-items:center;justify-content:center;font-size:11px;color:var(--faint);
  font-family:var(--disp);letter-spacing:.06em}
#camTira .sem-mini{width:52px;height:52px;background:rgba(229,224,213,.18);
  border:1px solid rgba(229,224,213,.35);flex:none;display:block}

.thumb.fila{box-shadow:inset 0 0 0 3px var(--pedra)}
.thumb.confirmada{box-shadow:inset 0 0 0 3px var(--musgo)}
.thumb.falhou{box-shadow:inset 0 0 0 3px var(--terracota)}

/* barra de progresso do envio */
.thumb.enviando::after{content:"";position:absolute;left:0;bottom:0;height:3px;
  background:var(--ceu);animation:envia 1.1s linear infinite}
@keyframes envia{from{width:8%}to{width:100%}}
@media (prefers-reduced-motion:reduce){.thumb.enviando::after{animation:none;width:50%}}

/* selo: musgo quando o SharePoint confirmou, terracota quando falhou */
.thumb.confirmada::after,.thumb.falhou::after{
  position:absolute;left:0;bottom:0;min-width:19px;height:19px;padding:0 3px;
  display:flex;align-items:center;justify-content:center;
  font-family:var(--disp);font-size:12px;font-weight:600;line-height:1;color:var(--areia)}
.thumb.confirmada::after{content:"✓";background:var(--musgo)}
.thumb.falhou::after{content:"!";background:var(--terracota)}

/* ---- etapa 6 · o envio ---- */
.envio{background:rgba(79,113,135,.10);border-left:3px solid var(--ceu);
  padding:13px 14px;margin:14px 0 6px}
.envio.pronto{background:rgba(81,94,82,.12);border-left-color:var(--musgo)}
.linha-envio{font-size:15px;color:var(--soft);line-height:1.4;margin:0 0 8px}
.linha-envio b{color:var(--ink)}
.envio.pronto .linha-envio{margin-bottom:4px}
.barra-envio{height:5px;background:rgba(31,30,27,.12);border-radius:3px;overflow:hidden}
.barra-envio i{display:block;height:100%;width:0;background:var(--ceu);
  transition:width .25s linear}

button.contorno.acao{display:flex;align-items:center;justify-content:center;
  width:100%;min-height:56px;font-family:var(--disp);font-size:17px;margin:2px 0 4px}
button.contorno.acao:disabled{opacity:.38;cursor:default}
button.avanca.acao:disabled{opacity:.45;cursor:default}

/* ---- aviso de armazenamento sem garantia ---- */
#faixaRisco{padding:10px 18px;background:var(--terracota);color:var(--areia);
  font-size:14px;line-height:1.35;position:sticky;top:0;z-index:10}

/* ---- o erro do Graph, item por item ---- */
.envio.falhou{background:rgba(154,74,46,.10);border-left-color:var(--terracota)}
.erros{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.erros li{font-size:13.5px;line-height:1.4;color:var(--soft);
  border-top:1px solid rgba(31,30,27,.12);padding-top:7px}
.erros li b{display:block;color:var(--ink);font-family:ui-monospace,"SF Mono",Menlo,monospace;
  font-size:12.5px;word-break:break-all;margin-bottom:2px}
.erros li span{display:block;color:var(--terracota)}
