:root{
  --navy:#1c2a3f; --navy-deep:#121b2b; --cream:#f6f3ec; --paper:#fffdf9;
  --gold:#a9824a; --gold-soft:#e8d9bd; --line:#d8d1c2; --text:#26241f;
  --muted:#6b675d; --warn-bg:#fbf0dd; --warn-border:#c9932f; --ok:#3f6b4f;
  --danger:#a4453a; --radius:6px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--cream);color:var(--text);font-family:Georgia,'Times New Roman',serif}
.shell{max-width:1040px;margin:0 auto;padding:24px 20px 90px}
.ui{font-family:Arial,Helvetica,sans-serif}

header.top{display:flex;align-items:baseline;justify-content:space-between;gap:16px;
  border-bottom:2px solid var(--navy);padding-bottom:14px;margin-bottom:20px;flex-wrap:wrap}
header.top h1{font-size:1.35rem;color:var(--navy-deep);margin:0;font-weight:600}
header.top .tag{font-family:Arial,Helvetica,sans-serif;font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold)}

.steps{display:flex;gap:6px;margin-bottom:22px;font-family:Arial,Helvetica,sans-serif}
.steps .s{flex:1;text-align:center;padding:9px 4px;font-size:.76rem;background:#eee7d8;
  color:var(--muted);border-radius:var(--radius);border:1px solid var(--line)}
.steps .s.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.steps .s.done{background:var(--gold-soft);color:var(--navy-deep);border-color:var(--gold)}

.panel{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);
  padding:24px 26px;margin-bottom:18px}
.panel h2{font-size:1.02rem;color:var(--navy-deep);margin:0 0 4px}
.panel p.hint{font-family:Arial,Helvetica,sans-serif;font-size:.83rem;color:var(--muted);
  margin:0 0 16px;line-height:1.5}

.upload-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:12px}
.upload-card{border:1.5px dashed var(--line);border-radius:var(--radius);padding:14px;
  text-align:center;background:#fbf9f4}
.upload-card.filled{border-style:solid;border-color:var(--ok);background:#f2f7f3}
.upload-card .titulo{font-family:Arial,Helvetica,sans-serif;font-size:.8rem;font-weight:700;
  color:var(--navy-deep);display:block;margin-bottom:2px}
.upload-card .sub{font-family:Arial,Helvetica,sans-serif;font-size:.7rem;color:var(--muted);margin-bottom:9px}
.upload-card input[type=file]{display:none}
.upload-card .btn-file{display:inline-block;font-family:Arial,Helvetica,sans-serif;font-size:.76rem;
  padding:6px 13px;border-radius:20px;border:1px solid var(--navy);color:var(--navy);cursor:pointer;background:#fff}
.upload-card .filename{margin-top:7px;font-family:Arial,Helvetica,sans-serif;font-size:.7rem;
  color:var(--ok);word-break:break-word}
.upload-card .miniatura{margin-top:8px;max-width:100%;max-height:90px;border-radius:4px;border:1px solid var(--line)}

.actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;flex-wrap:wrap}
button.primary{font-family:Arial,Helvetica,sans-serif;background:var(--navy);color:#fff;border:none;
  padding:11px 24px;border-radius:24px;font-size:.86rem;cursor:pointer}
button.primary:disabled{background:#a9b0bc;cursor:not-allowed}
button.secondary{font-family:Arial,Helvetica,sans-serif;background:#fff;color:var(--navy);
  border:1px solid var(--navy);padding:10px 20px;border-radius:24px;font-size:.83rem;cursor:pointer}
button.link{background:none;border:none;color:var(--navy);text-decoration:underline;cursor:pointer;
  font-family:Arial,Helvetica,sans-serif;font-size:.8rem;padding:0}

.loading{display:flex;align-items:center;gap:10px;font-family:Arial,Helvetica,sans-serif;
  font-size:.85rem;color:var(--muted)}
.spinner{width:16px;height:16px;border:2px solid var(--gold-soft);border-top-color:var(--gold);
  border-radius:50%;animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.progresso{font-family:Arial,Helvetica,sans-serif;font-size:.8rem;color:var(--muted);margin-top:10px;line-height:1.7}
.progresso .feito{color:var(--ok)}

fieldset{border:1px solid var(--line);border-radius:var(--radius);margin:0 0 16px;padding:14px 16px 16px}
legend{font-family:Arial,Helvetica,sans-serif;font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--gold);padding:0 8px}
.grid{display:grid;gap:11px 14px}
.grid.c2{grid-template-columns:repeat(2,1fr)}
.grid.c3{grid-template-columns:repeat(3,1fr)}
.grid.c4{grid-template-columns:repeat(4,1fr)}
@media(max-width:720px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}
.field{display:flex;flex-direction:column;gap:3px;min-width:0}
.field label{font-family:Arial,Helvetica,sans-serif;font-size:.7rem;color:var(--muted)}
.field label .auto{color:var(--ok);font-size:.62rem;letter-spacing:.06em;text-transform:uppercase;margin-left:5px}
.field input,.field select,.field textarea{font-family:Arial,Helvetica,sans-serif;padding:8px 9px;
  border:1px solid var(--line);border-radius:4px;font-size:.85rem;background:#fff;color:var(--text);width:100%}
.field textarea{resize:vertical;min-height:56px}
.field.flagged input,.field.flagged select,.field.flagged textarea{background:var(--warn-bg);border-color:var(--warn-border)}
.flag-note{font-family:Arial,Helvetica,sans-serif;font-size:.67rem;color:var(--danger);line-height:1.35}
.checks{display:flex;flex-wrap:wrap;gap:14px;font-family:Arial,Helvetica,sans-serif;font-size:.83rem}
.checks label{display:flex;align-items:center;gap:6px;cursor:pointer}

.banner{font-family:Arial,Helvetica,sans-serif;font-size:.79rem;padding:10px 13px;border-radius:6px;
  margin-bottom:14px;line-height:1.5}
.banner.warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:#6b4c14}
.banner.err{background:#fbeceb;border:1px solid var(--danger);color:var(--danger)}
.banner.ok{background:#eff5f0;border:1px solid var(--ok);color:var(--ok)}
.hidden{display:none !important}

.doc-tabs{display:flex;gap:8px;margin-bottom:14px;font-family:Arial,Helvetica,sans-serif;flex-wrap:wrap}
.doc-tabs button{background:#eee7d8;border:1px solid var(--line);color:var(--navy-deep);
  padding:8px 13px;border-radius:20px;font-size:.76rem;cursor:pointer}
.doc-tabs button.active{background:var(--navy);color:#fff;border-color:var(--navy)}
.toolbar-print{display:flex;justify-content:space-between;gap:10px;margin-bottom:14px;flex-wrap:wrap}

table.hist{width:100%;border-collapse:collapse;font-family:Arial,Helvetica,sans-serif;font-size:.79rem}
table.hist th{text-align:left;color:var(--muted);font-weight:600;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--line);padding:7px 6px}
table.hist td{padding:8px 6px;border-bottom:1px solid #eee7d8}
table.hist tr:hover td{background:#faf8f2}

.footer-note{font-family:Arial,Helvetica,sans-serif;font-size:.71rem;color:var(--muted);
  text-align:center;margin-top:22px;line-height:1.6}

/* ---------- Fichas ---------- */
#areaImpressao{background:#fff}
.folha{background:#fff;border:1px solid var(--line);padding:14mm 13mm;margin-bottom:16px;
  font-family:Georgia,serif;font-size:9.5pt;line-height:1.32}
.folha + .folha{page-break-before:always}
.folha h3{text-align:center;color:var(--navy-deep);border-bottom:2px solid var(--gold);
  padding-bottom:8px;margin:0 0 14px;font-size:13pt}
.folha h4{font-family:Arial,Helvetica,sans-serif;font-size:8pt;letter-spacing:.09em;
  text-transform:uppercase;color:var(--gold);margin:9px 0 5px;border-bottom:1px solid var(--line);padding-bottom:3px}
.linha{display:flex;gap:14px;margin-bottom:5px}
.cel{flex:1;min-width:0}
.cel b{display:block;font-family:Arial,Helvetica,sans-serif;font-size:6.6pt;text-transform:uppercase;
  letter-spacing:.06em;color:var(--muted);margin-bottom:1px;font-weight:700}
.cel span{display:block;min-height:1.15em;border-bottom:.5px solid #e6e0d2;padding-bottom:1px;word-wrap:break-word}
.legal{font-size:8.6pt;line-height:1.45;background:#fbf9f4;border:1px solid var(--line);
  padding:7px 10px;border-radius:3px;margin:7px 0 9px;text-align:justify}
.assinatura{margin-top:22px;display:flex;gap:30px;text-align:center;
  font-family:Arial,Helvetica,sans-serif;font-size:7.5pt;color:var(--muted)}
.assinatura div{flex:1}
.assinatura .risco{border-top:1px solid var(--text);margin:0 auto 4px;width:88%}
.rodape{margin-top:16px;padding-top:7px;border-top:1px solid var(--line);text-align:center;
  font-family:Arial,Helvetica,sans-serif;font-size:6.8pt;color:var(--muted);line-height:1.5}
.cx{font-family:Arial,Helvetica,sans-serif;font-size:8.6pt}
.cx b{font-family:Georgia,serif;font-size:10pt}
.itens{display:grid;grid-template-columns:repeat(3,1fr);gap:2px 10px;font-family:Arial,Helvetica,sans-serif;font-size:8.2pt}
.itens.c2{grid-template-columns:repeat(2,1fr)}
.itens.c1{grid-template-columns:1fr}
table.q{width:100%;border-collapse:collapse;font-size:8.6pt;margin-top:6px}
table.q th{font-family:Arial,Helvetica,sans-serif;font-size:7pt;text-transform:uppercase;
  letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--line);padding:4px;text-align:center}
table.q th:first-child{text-align:left}
table.q td{border-bottom:.5px solid #eee7d8;padding:3.5px 4px}
table.q td.op{text-align:center;min-width:94px;white-space:nowrap}
.linhas-vazias{border-bottom:.5px solid #ddd6c6;height:14px}

@media print{
  @page{size:A4 portrait;margin:9mm}
  html, body{background:#fff !important;margin:0 !important;padding:0 !important}
  body *{visibility:hidden !important}
  #areaImpressao, #areaImpressao *{visibility:visible !important}
  #areaImpressao{position:absolute !important;left:0;top:0;right:0;width:100%;padding:0 !important;margin:0 !important;background:#fff !important}
  .folha{border:none !important;padding:0 !important;margin:0 !important;background:#fff !important;
    page-break-after:always !important;break-after:page !important;display:block !important}
  .folha:last-child{page-break-after:auto !important;break-after:auto !important}
}

/* O checklist tem muitos itens: métricas mais apertadas para caber em 1 página. */
.folha.compacta{font-size:9pt;line-height:1.24}
.folha.compacta h4{margin:7px 0 4px}
.folha.compacta .itens{font-size:7.9pt;gap:1px 10px}
.folha.compacta .linha{margin-bottom:4px}
.folha.compacta .assinatura{margin-top:8px}
.folha.compacta .rodape{margin-top:9px;padding-top:5px}
.folha.compacta .linhas-vazias{height:11px}
.folha.compacta .cel span{min-height:1.05em}

/* ---------- Marca nas fichas ---------- */
.cabecalho{display:flex;align-items:center;justify-content:space-between;gap:18px;
  border-bottom:2px solid var(--gold);padding-bottom:7px;margin-bottom:12px}
.cabecalho .marca{height:11mm;width:auto;flex:none}
.cabecalho h3{border:none;padding:0;margin:0;text-align:right;font-size:12.5pt;
  color:var(--navy-deep);flex:1}
.folha.compacta .cabecalho{padding-bottom:5px;margin-bottom:9px}
.folha.compacta .cabecalho .marca{height:9mm}

/* marca no topo da tela */
header.top .marca-tela{height:34px;width:auto}
