/* ============================================================
   Registro Fotográfico — Hospital Catarina
   Paleta extraída do logotipo: navy #142050 / dourado #B67B26
   ============================================================ */
:root{
  --brand:#142050; --brand-2:#31489B; --brand-soft:#E6EAF5; --brand-line:#C6CDE5;
  --gold:#B67B26; --gold-soft:#F7ECD9; --gold-line:#E4CFA6; --gold-ink:#7A5010;
  --ink:#14182B; --muted:#666E88; --line:#E2E6F0; --bg:#F5F7FB;
  --danger:#C0392B;
  --safe-top:env(safe-area-inset-top,0px);
  --safe-bot:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--ink); font-size:15px; line-height:1.45;
  overscroll-behavior-y:none;
}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;border:0;background:none}

/* ---------- layout ---------- */
#app{min-height:100%;display:flex;flex-direction:column}
.nav{
  background:linear-gradient(135deg,var(--brand),var(--brand-2));color:#fff;
  padding:calc(10px + var(--safe-top)) 14px 12px;position:sticky;top:0;z-index:20;
  box-shadow:0 2px 12px rgba(20,32,80,.18)
}
.nav.gold{background:linear-gradient(135deg,#8C5C15,var(--gold))}
.nav-row{display:flex;align-items:center;gap:10px;max-width:760px;margin:0 auto}
.nav .back{font-size:24px;line-height:1;opacity:.92;color:#fff;padding:2px 4px 4px 0}
.nav .logo-chip{background:#fff;border-radius:8px;padding:5px 8px;display:flex;align-items:center;flex:none}
.nav .logo-chip img{height:24px;width:auto;max-width:120px;object-fit:contain;display:block}
.nav h1{font-size:16px;font-weight:700;letter-spacing:.1px}
.nav .sub{font-size:11.5px;opacity:.85;margin-top:1px}
.nav .grow{flex:1}
.nav .act{font-size:13px;font-weight:700;background:rgba(255,255,255,.18);padding:7px 12px;border-radius:9px;color:#fff}

main{flex:1;padding:14px;max-width:760px;width:100%;margin:0 auto;padding-bottom:calc(24px + var(--safe-bot))}
.stack{display:flex;flex-direction:column;gap:12px}

/* ---------- componentes ---------- */
.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}
.k{font-size:10.5px;text-transform:uppercase;letter-spacing:.9px;color:var(--muted);font-weight:800}
.req{color:var(--danger)}
label.field{display:block;background:#fff;border:1px solid var(--line);border-radius:12px;padding:9px 12px}
label.field input,label.field textarea,label.field select{
  width:100%;border:0;outline:0;background:transparent;font-size:15.5px;font-weight:600;padding:3px 0 1px;
}
label.field textarea{font-weight:400;resize:vertical;min-height:76px;line-height:1.5}
label.field input::placeholder,label.field textarea::placeholder{color:#A7ADC4;font-weight:400}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}

.btn{display:block;width:100%;text-align:center;background:var(--brand);color:#fff;border-radius:12px;
  padding:14px;font-size:15px;font-weight:750;letter-spacing:.2px}
.btn:disabled{opacity:.45}
.btn.gold{background:var(--gold)}
.btn.ghost{background:#fff;color:var(--brand);border:1.5px solid var(--brand-line)}
.btn.danger{background:#fff;color:var(--danger);border:1.5px solid #F0C9C4}
.btn.sm{padding:10px;font-size:13.5px;border-radius:10px}

.empty{text-align:center;color:var(--muted);padding:48px 20px}
.empty .big{font-size:44px;margin-bottom:10px;opacity:.35}
.empty p{font-size:14px;margin-top:6px}

.toast{position:fixed;left:50%;transform:translateX(-50%) translateY(20px);bottom:calc(22px + var(--safe-bot));
  background:var(--ink);color:#fff;padding:11px 16px;border-radius:11px;font-size:13.5px;font-weight:600;
  opacity:0;pointer-events:none;transition:.22s;z-index:120;max-width:90vw;text-align:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}

/* ---------- lista de exames ---------- */
.exam-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--line);
  border-radius:14px;padding:12px 14px;width:100%;text-align:left}
.exam-item .av{width:42px;height:42px;border-radius:11px;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex:none}
.exam-item .nm{font-size:15px;font-weight:700}
.exam-item .dt{font-size:12px;color:var(--muted);margin-top:2px}
.exam-item .cnt{margin-left:auto;text-align:right;flex:none}
.exam-item .cnt b{font-size:13px;color:var(--brand)}
.exam-item .cnt span{display:block;font-size:10.5px;color:var(--muted)}

.btn-solta{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:#fff;
  border:1.5px dashed var(--brand-line);border-radius:13px;padding:12px 14px}
.btn-solta .ic{width:38px;height:38px;border-radius:10px;background:var(--brand-soft);display:flex;
  align-items:center;justify-content:center;font-size:18px;flex:none}
.btn-solta .n{display:block;font-size:14.5px;font-weight:700;color:var(--brand)}
.btn-solta .d{display:block;font-size:11.5px;color:var(--muted);margin-top:1px}
.btn-solta .seta{margin-left:auto;color:var(--brand-line);font-size:22px;line-height:1}

.rodape{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;
  padding:18px 0 4px;font-size:11.5px;color:var(--muted)}
.rodape .lnk{font-size:11.5px;font-weight:750;color:var(--brand);text-decoration:underline}


/* ---------- escolha da unidade ---------- */
.unidades{max-width:560px;padding-top:calc(28px + var(--safe-top));display:flex;flex-direction:column;gap:14px}
.ub-topo{text-align:center;margin-bottom:6px}
.ub-topo h1{font-size:21px;font-weight:750;color:var(--ink)}
.ub-topo p{font-size:13.5px;color:var(--muted);margin-top:4px}

.un-bloco{background:#fff;border:1px solid var(--line);border-left:5px solid var(--u);
  border-radius:16px;overflow:hidden;box-shadow:0 2px 10px rgba(20,24,43,.06)}
.un-cab{display:flex;align-items:center;gap:13px;padding:14px 16px 12px}
.un-logo{width:92px;height:52px;border-radius:10px;display:flex;align-items:center;justify-content:center;
  flex:none;overflow:hidden;padding:5px;border:1px solid var(--line)}
.un-logo img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.un-nome{font-size:15.5px;font-weight:750;color:var(--u);line-height:1.25}

.un-exame-bt{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;
  padding:13px 16px;border-top:1px solid var(--line);font-size:14.5px;font-weight:700;color:var(--u);
  background:#fff}
.un-exame-bt:active{background:var(--brand-soft)}
.un-seta{color:var(--u);font-size:24px;line-height:1;opacity:.45}

/* ---------- progresso ---------- */
.progress{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted);font-weight:650}
.pbar{flex:1;height:6px;background:var(--line);border-radius:3px;overflow:hidden}
.pbar i{display:block;height:100%;background:var(--brand-2);border-radius:3px;transition:.3s}

/* ---------- grade de regiões ---------- */
.seg-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.seg{background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;position:relative;
  text-align:left;width:100%;display:flex;flex-direction:column}
.seg .thumbrow{display:flex;gap:2px;height:104px;flex:none;background:#0B0F0E}
.seg .thumb{flex:1;min-width:0;height:100%;background:#0B0F0E;position:relative}
.seg .astrip{width:38px;flex:none;display:flex;flex-direction:column;gap:2px;position:relative;background:#fff}
.seg .ath{flex:none;height:calc((100% - 4px)/3);position:relative;overflow:hidden;background:#0B0F0E}
.seg .ath img{width:100%;height:100%;object-fit:cover;display:block}
.seg .ath i{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--gold)}
.seg .amore{position:absolute;right:2px;bottom:2px;background:rgba(182,123,38,.95);color:#fff;
  font-size:9px;font-weight:800;border-radius:4px;padding:1px 4px}
.seg .altline{display:block;font-size:9.5px;font-weight:700;color:var(--gold-ink);margin-top:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.seg .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.seg .meta{padding:8px 10px 10px}
.seg .rg{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--brand)}
.seg .cm{font-size:11.5px;color:var(--muted);line-height:1.4;margin-top:3px;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.seg .ok{position:absolute;top:7px;right:7px;width:20px;height:20px;border-radius:50%;background:var(--brand);
  color:#fff;font-size:12px;display:flex;align-items:center;justify-content:center;font-weight:800}
.seg .alt-count{position:absolute;top:7px;left:7px;background:rgba(182,123,38,.95);color:#fff;
  font-size:10px;font-weight:800;border-radius:6px;padding:2px 6px}
.seg.empty-slot{border-style:dashed;border-color:var(--brand-line);background:#FBFCFF;
  align-items:center;justify-content:center;min-height:150px;gap:7px;padding:12px}
.seg.empty-slot .plus{width:38px;height:38px;border-radius:50%;background:var(--brand-soft);color:var(--brand);
  display:flex;align-items:center;justify-content:center;font-size:23px;font-weight:700}
.seg.empty-slot .rg{color:#939BB8;text-align:center}

/* ---------- imagens sem região ---------- */
.extra-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.exth{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#0B0F0E;border:1px solid var(--line)}
.exth img{width:100%;height:100%;object-fit:cover;display:block}
.exth .n{position:absolute;left:5px;top:5px;background:rgba(20,32,80,.9);color:#fff;font-size:9px;
  font-weight:800;border-radius:5px;padding:2px 5px}
.banner.azul{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand)}

/* ---------- galeria de fotos do exame ---------- */
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.gal-th{position:relative;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:#0B0F0E;
  border:1px solid var(--line);cursor:pointer}
.gal-th img{width:100%;height:100%;object-fit:cover;display:block}
.gal-th .n{position:absolute;left:5px;top:5px;background:rgba(20,32,80,.9);color:#fff;font-size:9px;
  font-weight:800;border-radius:5px;padding:2px 5px}
.gal-th.usada{border:2px solid var(--gold)}
.gal-th .uso{position:absolute;left:0;right:0;bottom:0;background:var(--gold);color:#fff;font-size:9px;
  font-weight:800;padding:3px 5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gal-rolagem{margin:12px 0;overflow-y:auto;max-height:56vh;-webkit-overflow-scrolling:touch;min-height:0}
.gal-visor-img{max-width:100%;max-height:56vh;display:block}
.crop-acoes.um{grid-template-columns:1fr}
.opt.gold{border-color:var(--gold-line);background:var(--gold-soft)}


/* ---------- recorte da imagem ---------- */
.crop-scrim{position:fixed;inset:0;background:rgba(8,11,24,.82);z-index:200;display:flex;
  align-items:center;justify-content:center;padding:12px;animation:fade .16s}
.crop-painel{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:100%;
  display:flex;flex-direction:column;overflow:hidden;padding:14px 14px calc(14px + var(--safe-bot))}
.crop-topo h3{font-size:15.5px;font-weight:750}
.crop-dica{font-size:11.5px;color:var(--muted);margin-top:3px;line-height:1.4}
.crop-stage{position:relative;margin:12px 0;background:#0B0F0E;border-radius:12px;overflow:hidden;
  display:flex;align-items:center;justify-content:center;min-height:0;flex:1;touch-action:none}
.crop-stage img{max-width:100%;max-height:52vh;display:block;user-select:none;-webkit-user-drag:none}
.crop-box{position:absolute;border:2px solid #fff;box-shadow:0 0 0 9999px rgba(8,11,24,.55);
  cursor:move;touch-action:none}
.crop-box .grade{position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(to right,transparent 33.33%,rgba(255,255,255,.35) 33.33%,rgba(255,255,255,.35) calc(33.33% + 1px),transparent calc(33.33% + 1px)),
    linear-gradient(to right,transparent 66.66%,rgba(255,255,255,.35) 66.66%,rgba(255,255,255,.35) calc(66.66% + 1px),transparent calc(66.66% + 1px)),
    linear-gradient(to bottom,transparent 33.33%,rgba(255,255,255,.35) 33.33%,rgba(255,255,255,.35) calc(33.33% + 1px),transparent calc(33.33% + 1px)),
    linear-gradient(to bottom,transparent 66.66%,rgba(255,255,255,.35) 66.66%,rgba(255,255,255,.35) calc(66.66% + 1px),transparent calc(66.66% + 1px))}
.crop-box .h{position:absolute;width:26px;height:26px;background:#fff;border:2px solid var(--brand);
  border-radius:50%;touch-action:none}
.crop-box .nw{left:-14px;top:-14px;cursor:nwse-resize}
.crop-box .ne{right:-14px;top:-14px;cursor:nesw-resize}
.crop-box .sw{left:-14px;bottom:-14px;cursor:nesw-resize}
.crop-box .se{right:-14px;bottom:-14px;cursor:nwse-resize}
.crop-bar{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:9px}
.btn.ia{background:linear-gradient(135deg,#5B3FBF,#8557D9);color:#fff;padding:11px;font-size:13.5px;border-radius:11px}
.btn.ia:disabled{opacity:.6}
.crop-acoes{display:grid;grid-template-columns:1fr 1.4fr;gap:9px;margin-top:10px}

/* ---------- marcação sobre a foto ---------- */
.marca-stage{touch-action:none}
.marca-canvas{max-width:100%;max-height:52vh;display:block;touch-action:none;cursor:crosshair}
.marca-bar{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:9px}
.marca-bar .btn[aria-pressed="true"]{background:var(--brand);color:#fff;border-color:var(--brand)}
.marca-extra{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.marca-extra .btn:disabled{opacity:.45}
.marca-texto{display:flex;gap:9px;margin-top:9px}
.marca-texto input{flex:1;min-width:0;border:1.5px solid var(--brand-line);border-radius:10px;
  padding:10px 12px;font-size:15px;font-weight:600;outline:none;background:#fff}
.marca-texto input::placeholder{color:#A7ADC4;font-weight:400}
.marca-texto .btn{display:inline-block;width:auto;padding:10px 18px}

/* ---------- picklist ---------- */
.picklist{border:1px solid var(--line);border-radius:12px;background:#fff;overflow:hidden}
.picklist button{display:flex;align-items:center;gap:11px;padding:12px;font-size:14.5px;width:100%;
  text-align:left;border-bottom:1px solid #F0F2F9}
.picklist button:last-child{border-bottom:0}
.picklist .rd{width:19px;height:19px;border-radius:50%;border:2px solid #C7CDE2;flex:none}
.picklist button[aria-checked="true"]{background:var(--brand-soft);font-weight:750;color:var(--brand)}
.picklist button[aria-checked="true"] .rd{border-color:var(--brand);background:var(--brand);box-shadow:inset 0 0 0 4px #fff}
.picklist .tag{margin-left:auto;font-size:10px;font-weight:800;color:#AAB1C8;text-transform:uppercase;letter-spacing:.5px}
.picklist.gold button[aria-checked="true"]{background:var(--gold-soft);color:var(--gold-ink)}
.picklist.gold button[aria-checked="true"] .rd{border-color:var(--gold);background:var(--gold)}

/* ---------- frases prontas ---------- */
.frases-lista{display:flex;flex-direction:column;gap:6px}
.frases .frase{display:block;width:100%;text-align:left;background:#fff;color:var(--ink);
  border:1px solid var(--brand-line);border-radius:11px;padding:9px 12px 9px 30px;
  font-size:13.5px;line-height:1.35;position:relative;font-weight:500}
.frases .frase::before{content:"+";position:absolute;left:11px;top:8px;font-size:15px;
  font-weight:800;color:var(--brand-2);line-height:1.25}
.frases .frase:active{background:var(--brand-soft)}

/* ---------- foto ---------- */
.photo{border-radius:14px;overflow:hidden;background:#0B0F0E;position:relative;aspect-ratio:4/3}
.photo img{width:100%;height:100%;object-fit:contain;display:block}
.photo.toque{cursor:pointer}
.photo .ph{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:#7E869E;background:#EDF0F7;gap:4px;font-size:13px;border:1.5px dashed var(--brand-line);border-radius:14px}
.photo .ph .big{font-size:38px;margin-bottom:2px}
.photo .ph .forte{font-size:14.5px;font-weight:700;color:var(--brand)}
.photo .ph .fraco{font-size:12px;color:var(--muted)}
.photo .acao{position:absolute;bottom:9px;background:rgba(255,255,255,.94);color:var(--ink);
  font-size:11.5px;font-weight:750;border-radius:9px;padding:7px 11px;box-shadow:0 2px 8px rgba(0,0,0,.18)}
.photo .acao.trocar{left:9px}
.photo .acao.recortar{right:9px;color:var(--brand)}
.photo .acao.marcar{left:50%;transform:translateX(-50%);color:var(--gold-ink)}
.photo-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.photo-actions .btn.sm{white-space:nowrap}

/* ---------- alterações ---------- */
.rgroup{margin-bottom:14px}
.rghd{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.rghd .dot{width:8px;height:8px;border-radius:50%;background:var(--brand)}
.rghd .n{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--brand)}
.rghd .c{margin-left:auto;font-size:11px;color:var(--muted);font-weight:650}
.arow{display:flex;gap:11px;background:#fff;border:1px solid var(--line);border-radius:13px;padding:10px;
  margin-bottom:8px;width:100%;text-align:left;align-items:flex-start}
.arow .th{width:74px;height:60px;border-radius:9px;overflow:hidden;background:#0B0F0E;flex:none}
.arow .th img{width:100%;height:100%;object-fit:cover;display:block}
.arow .info{min-width:0;flex:1}
.chip{display:inline-block;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;
  border-radius:6px;padding:3px 7px}
.chip.type{background:var(--gold-soft);color:var(--gold-ink)}
.chip.reg{background:var(--brand-soft);color:var(--brand)}
.arow .cm{font-size:11.5px;color:var(--muted);line-height:1.4;margin-top:5px;
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.banner{background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:12px;padding:11px 13px;
  display:flex;gap:10px;align-items:center;font-size:12.5px;color:var(--gold-ink);font-weight:600;line-height:1.4}

/* ---------- bottom sheet ---------- */
.scrim{position:fixed;inset:0;background:rgba(10,14,32,.5);z-index:60;animation:fade .18s}
.sheet{position:fixed;left:0;right:0;bottom:0;background:#fff;border-radius:20px 20px 0 0;z-index:61;
  padding:14px 16px calc(20px + var(--safe-bot));animation:up .22s;max-width:760px;margin:0 auto}
@keyframes fade{from{opacity:0}}
@keyframes up{from{transform:translateY(100%)}}
.sheet .grab{width:40px;height:4px;border-radius:2px;background:#DCE1EE;margin:0 auto 14px}
.sheet h3{font-size:15px;font-weight:750;margin-bottom:12px}
.opt{display:flex;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:12px;
  margin-bottom:9px;width:100%;text-align:left}
.opt .ic{width:38px;height:38px;border-radius:10px;background:var(--brand-soft);display:flex;
  align-items:center;justify-content:center;flex:none;font-size:18px}
.opt.gold .ic{background:var(--gold-soft)}
.opt .n{font-size:14.5px;font-weight:700}
.opt .d{font-size:11.5px;color:var(--muted);margin-top:1px}

/* ---------- pré-visualização do laudo ---------- */
.sheetprev{background:#fff;border:1px solid var(--line);border-radius:10px;padding:10px;overflow:hidden}
.tabs{display:flex;gap:8px;margin-bottom:12px}
.tabs button{flex:1;text-align:center;font-size:12.5px;font-weight:700;padding:9px;border-radius:10px;
  background:#fff;border:1px solid var(--line);color:var(--muted)}
.tabs button.on{background:var(--brand);color:#fff;border-color:var(--brand)}

/* ============================================================
   FOLHA A4 — usada na pré-visualização e na impressão
   ============================================================ */
#print-root{display:none}
.a4{
  width:210mm;height:296.9mm;background:#fff;padding:12mm 12mm 10mm;
  display:flex;flex-direction:column;position:relative;overflow:hidden;color:#14182B;
  font-family:"Segoe UI",Helvetica,Arial,sans-serif;
}
.a4::before{content:"";position:absolute;left:0;top:0;width:100%;height:4mm;
  background:linear-gradient(90deg,var(--brand) 0%,var(--brand-2) 66%,var(--gold) 66%,var(--gold) 100%)}
.a4 header{display:flex;align-items:flex-start;gap:6mm;padding-top:3mm;padding-bottom:3.5mm;border-bottom:.7mm solid #DDE2EE}
.a4 .hlogo{width:38mm;height:auto;flex:none;margin-top:.5mm}
.a4 .brand{flex:1;padding-top:2mm}
.a4 .brand .tag{font-size:7pt;color:#5D6480}
.a4 .brand .addr{font-size:6.4pt;color:#5D6480;margin-top:1.6mm;line-height:1.45}
.a4 .doc{text-align:right;border-left:.4mm solid #DDE2EE;padding-left:5mm;min-width:52mm}
.a4 .doc .t{font-size:6.2pt;text-transform:uppercase;letter-spacing:1.1px;color:var(--brand-2);font-weight:800}
.a4 .doc .n{font-size:10.5pt;font-weight:750;margin-top:1.2mm}
.a4 .doc .c{font-size:7.4pt;color:#5D6480;margin-top:.8mm}
.a4 .doc .e{display:inline-block;margin-top:2.4mm;background:#F4F6FB;border:.3mm solid #DDE2EE;border-radius:2mm;
  padding:1.2mm 2.6mm;font-size:7pt;font-weight:700;color:var(--brand)}
.a4 .meta{display:grid;grid-template-columns:repeat(4,1fr);border:.3mm solid #DDE2EE;border-radius:2mm;
  margin:4mm 0 4.5mm;overflow:hidden;background:#F4F6FB}
.a4 .meta div{padding:2mm 3mm;border-right:.3mm solid #DDE2EE}
.a4 .meta div:last-child{border-right:0}
.a4 .meta.dupla{grid-template-columns:2fr 1fr}
.a4 .meta .mk{font-size:5.9pt;text-transform:uppercase;letter-spacing:.8px;color:#5D6480;font-weight:700}
.a4 .meta .mv{font-size:12.3pt;font-weight:650;margin-top:.6mm;line-height:1.15}
.a4 .grid{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(3,1fr);gap:4mm 5mm}
.a4 .pcard{display:flex;flex-direction:column;min-height:0;border:.3mm solid #DDE2EE;border-radius:2.4mm;overflow:hidden;background:#fff}
.a4 .frame{position:relative;flex:1;background:#0B0F0E;min-height:0}
.a4 .photorow{flex:1;min-height:0;display:flex;gap:.8mm;background:#0B0F0E}
.a4 .photorow .main{flex:1;min-width:0;position:relative}
.a4 .photorow .main img{width:100%;height:100%;object-fit:cover;display:block}
.a4 .astrip{width:22mm;flex:none;display:flex;flex-direction:column;gap:.8mm;position:relative;background:#fff}
.a4 .ath{flex:none;height:calc((100% - 1.6mm)/3);position:relative;overflow:hidden;background:#0B0F0E}
.a4 .ath img{width:100%;height:100%;object-fit:cover;display:block}
.a4 .ath.vazia{background:#F4F6FB;border:.25mm dashed #C6CDE5}
.a4 .ath.vazia span{position:static;display:flex;align-items:center;justify-content:center;height:100%;background:none;color:#7A5010}
.a4 .ath span{position:absolute;left:0;right:0;bottom:0;background:var(--gold);color:#fff;
  font-size:4.4pt;font-weight:800;letter-spacing:.1px;padding:.4mm .6mm;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.15}
.a4 .amore{position:absolute;right:.6mm;bottom:.6mm;background:var(--gold);color:#fff;
  font-size:5pt;font-weight:800;border-radius:1mm;padding:.3mm 1mm}
.a4 .cap .site.cinza{background:#5D6480}
.a4 .sheet-title .bar.cinza{background:linear-gradient(180deg,#8C93AB,#5D6480)}
.a4 .frame img{width:100%;height:100%;object-fit:cover;display:block}
.a4 .idx{position:absolute;top:1.6mm;left:1.6mm;background:var(--brand);color:#fff;font-size:6.4pt;
  font-weight:800;border-radius:1.4mm;padding:.7mm 2mm;letter-spacing:.4px}
.a4 .idx.alt{background:var(--gold)}
.a4 .idx.cinza{background:rgba(93,100,128,.94)}
.a4 .cap{padding:1.8mm 2.6mm 2mm;border-top:.3mm solid #DDE2EE;background:#fff}
.a4 .cap .site{display:inline-block;font-size:6.1pt;text-transform:uppercase;letter-spacing:.8px;color:#fff;
  font-weight:800;background:var(--brand);border-radius:1.4mm;padding:.7mm 2mm}
.a4 .cap p{font-size:7.4pt;line-height:1.35;color:#232A44;margin-top:.6mm}
.a4 .sheet-title{display:flex;align-items:center;gap:3mm;margin:4mm 0 3mm}
.a4 .sheet-title .bar{width:2mm;height:7mm;border-radius:1mm;background:var(--gold)}
.a4 .sheet-title h2{font-size:10.5pt;font-weight:800}
.a4 .sheet-title span{font-size:6.8pt;color:#5D6480;margin-left:auto}
.a4 .rgroup2{margin-bottom:4.5mm}
.a4 .rhead{display:flex;align-items:center;gap:2.5mm;background:#F4F6FB;border:.3mm solid #DDE2EE;
  border-radius:2mm;padding:1.6mm 3mm;margin-bottom:3mm}
.a4 .rhead .dot{width:2.6mm;height:2.6mm;border-radius:50%;background:var(--brand)}
.a4 .rhead .rn{font-size:8pt;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--brand)}
.a4 .rhead .rc{font-size:6.4pt;color:#5D6480;margin-left:auto;font-weight:600}
.a4 .altgrid{display:grid;grid-template-columns:1fr 1fr;gap:4mm 5mm}
.a4 .altgrid .frame{height:44mm;flex:none}
.a4 .chips{display:flex;flex-wrap:wrap;gap:1.4mm;margin-bottom:1mm}
.a4 .pchip{font-size:5.9pt;font-weight:800;letter-spacing:.6px;text-transform:uppercase;border-radius:1.4mm;padding:.7mm 2mm}
.a4 .pchip.type{background:var(--gold-soft);color:var(--gold-ink);border:.25mm solid var(--gold-line)}
.a4 .pchip.reg{background:var(--brand-soft);color:var(--brand);border:.25mm solid var(--brand-line)}
.a4 footer{margin-top:4mm;padding-top:3mm;border-top:.7mm solid #DDE2EE;display:flex;justify-content:space-between;
  align-items:flex-end;gap:8mm}
.a4 .note{font-size:6.2pt;color:#5D6480;line-height:1.5;max-width:105mm}
.a4 .sign{text-align:center;min-width:58mm}
.a4 .sign .l{border-top:.4mm solid #14182B;margin-bottom:1.2mm}
.a4 .sign .n{font-size:7.6pt;font-weight:700}
.a4 .sign .c{font-size:6.4pt;color:#5D6480}
.a4 .pg{position:absolute;right:12mm;bottom:5mm;font-size:6pt;color:#5D6480}

/* pré-visualização escalada dentro do app */
.a4-scaler{overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff}
.a4-scaler .a4{transform-origin:top left;box-shadow:none}

@media print{
  body{background:#fff}
  #app,.toast{display:none !important}
  #print-root{display:block}
  .a4{margin:0;break-inside:avoid}
  .a4 + .a4{break-before:page;page-break-before:always}
  @page{size:A4;margin:0}
}

/* ---------------- Envio ao Google Drive ---------------- */
/* indicador fixo de sincronização — toque abre o painel de pendências */
.drive-chip{position:fixed;left:10px;bottom:calc(10px + var(--safe-bot));z-index:55;
  max-width:70vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  border:1px solid var(--line);border-radius:999px;padding:6px 11px;
  font-size:11px;font-weight:750;background:#fff;color:var(--muted);
  box-shadow:0 2px 10px rgba(10,14,32,.12)}
.drive-chip.ok{color:#18A05E;border-color:#BFE6D2;background:#F0FAF4}
.drive-chip.pend{color:var(--brand);border-color:var(--brand-line);background:var(--brand-soft)}
.drive-chip.off{color:var(--muted);background:#F4F5F9}
.drive-chip.erro{color:#B3261E;border-color:#F0C9C4;background:#FDF3F2}

/* splash de confirmação: check verde em tela cheia por ~2 s */
.drive-splash{position:fixed;inset:0;z-index:400;display:flex;align-items:center;
  justify-content:center;background:rgba(255,255,255,.93);animation:fade .2s}
.drive-splash.sair{opacity:0;transition:opacity .3s}
.ds-caixa{text-align:center;animation:ds-pop .3s ease-out}
.ds-circ svg{width:112px;height:112px}
.ds-circ .c{fill:none;stroke:#18A05E;stroke-width:3;stroke-dasharray:151;stroke-dashoffset:151;
  animation:ds-tracar .5s ease-out forwards}
.ds-circ .v{fill:none;stroke:#18A05E;stroke-width:5;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:36;stroke-dashoffset:36;animation:ds-tracar .35s .35s ease-out forwards}
.ds-txt{margin-top:12px;font-size:16px;font-weight:800;color:#18A05E}
@keyframes ds-tracar{to{stroke-dashoffset:0}}
@keyframes ds-pop{from{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}

/* painel de pendências (bottom sheet) */
.drive-painel .drive-estado{font-size:12.5px;color:var(--muted);margin-bottom:12px;line-height:1.45}
.drive-corpo{max-height:60vh;overflow:auto}
.drive-item{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);
  border-radius:11px;margin-bottom:8px;background:#fff}
.drive-item.erro{border-color:#F0C9C4;background:#FDF3F2}
.drive-item .ic{font-size:19px}
.drive-item .tx{min-width:0;flex:1}
.drive-item .n{display:block;font-size:12.5px;font-weight:750;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.drive-item .d{display:block;font-size:11px;color:var(--muted);overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.drive-item .x{color:var(--muted);font-size:14px;padding:6px;border-radius:8px}
.drive-painel .btn.sm{margin-top:4px;margin-bottom:8px}
@media print{.drive-chip,.drive-splash{display:none!important}}

/* ---------- faixa do ambiente de teste ---------- */
.faixa-teste{position:sticky;top:0;z-index:60;background:repeating-linear-gradient(45deg,#7A5010,#7A5010 10px,#8C5C15 10px,#8C5C15 20px);
  color:#fff;font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;
  text-align:center;padding:calc(4px + var(--safe-top)) 8px 4px}
