:root{
  --primary:#a51c22;
  --primary-dark:#6e1116;
  --primary-light:#c92a2f;
  --primary-tint:#fbe9e7;
  --ink:#141312;
  --bg:#f6f4f1;
  --surface:#ffffff;
  --border:#e6e0d6;
  --text:#221f1d;
  --muted:#726a61;
  --success:#1c7c4c;
  --success-tint:#e7f5ee;
  --warn:#9a6b00;
  --warn-tint:#fff4dd;
  --font-display: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-body: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --radius:14px;
  --shadow: 0 1px 2px rgba(20,19,18,.04), 0 10px 28px -16px rgba(20,19,18,.14);
  --shadow-hover: 0 4px 10px rgba(20,19,18,.06), 0 18px 36px -16px rgba(165,28,34,.16);
  --ease: cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;}
body{
  margin:0; background:var(--bg); color:var(--text);
  font-family:var(--font-body);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:820px;margin:0 auto;padding:0 20px 90px;}

/* ---------- Header (fundo branco, moderno) ---------- */
header.top{
  background:var(--surface);
  border-bottom:1px solid var(--border);
  position:sticky; top:0; z-index:50;
}
header.top .inner{
  max-width:820px;margin:0 auto;padding:16px 20px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.brandbar{display:flex;align-items:center;gap:14px;}
.brand-logo-link{display:block; line-height:0; transition:opacity .2s var(--ease);}
.brand-logo-link:hover{opacity:.8;}
.brandbar img{height:38px;width:auto;display:block;}
.brandbar .divider{width:1px;height:28px;background:var(--border);}
.brandbar .titles{line-height:1.3;}
.brandbar .eyebrow{font-family:var(--font-display);font-size:14px;letter-spacing:-.01em;color:var(--ink);font-weight:700;}
.brandbar .subtitle{font-size:11.5px;color:var(--muted);letter-spacing:.02em;}
.statuspill{
  display:inline-flex; align-items:center; gap:8px;
  border:1px solid var(--border); background:linear-gradient(180deg,#fff,#fdfcfb);
  padding:8px 16px; border-radius:100px; font-size:12.5px; font-weight:600; color:var(--muted);
  white-space:nowrap;
}
.statuspill .dot{
  width:7px; height:7px; border-radius:50%; background:var(--success); flex:none;
  box-shadow:0 0 0 0 rgba(28,124,76,.5);
  animation:pulseDot 2.2s var(--ease) infinite;
}
@keyframes pulseDot{
  0%{box-shadow:0 0 0 0 rgba(28,124,76,.45);}
  70%{box-shadow:0 0 0 7px rgba(28,124,76,0);}
  100%{box-shadow:0 0 0 0 rgba(28,124,76,0);}
}
header.top .topbar-accent{height:3px;background:linear-gradient(90deg,var(--primary-dark),var(--primary),var(--primary-light));}

.pagehead{padding:34px 0 6px;}
.pagehead .kicker{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--primary);font-weight:700;margin-bottom:8px;}
.pagehead h1{font-family:var(--font-display);margin:0 0 8px;font-size:29px;font-weight:800;letter-spacing:-.02em;color:var(--ink);}
.pagehead p{margin:0;color:var(--muted);font-size:14.5px;max-width:600px;}

/* ---------- Reveal-on-load animation ---------- */
@keyframes revealUp{
  from{opacity:0; transform:translateY(14px);}
  to{opacity:1; transform:translateY(0);}
}
.reveal{
  animation:revealUp .6s var(--ease) both;
  animation-delay:var(--delay, 0s);
}
@media (prefers-reduced-motion: reduce){
  .reveal{animation:none;}
}

/* ---------- Cards ---------- */
.card{
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius);
  box-shadow:var(--shadow); overflow:hidden; margin-top:20px;
  transition:box-shadow .3s var(--ease), transform .3s var(--ease);
}
.card:hover{box-shadow:var(--shadow-hover); transform:translateY(-2px);}
.card .cardbar{height:4px;background:linear-gradient(90deg,var(--primary-dark),var(--primary));}
.card .cardbody{padding:24px 26px;}

.step h2{
  font-family:var(--font-display);
  font-size:16px; margin:0 0 5px; display:flex; align-items:center; gap:11px;
  color:var(--ink); font-weight:700; letter-spacing:-.01em;
}
.step h2 .num{
  background:linear-gradient(135deg,var(--primary-light),var(--primary-dark)); color:#fff; width:24px;height:24px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex:none;
  box-shadow:0 3px 8px -2px rgba(165,28,34,.55);
}
.step .hint{color:var(--muted); font-size:13.5px; margin:0 0 18px 35px;}
.optional{font-weight:400;color:var(--muted);font-size:12px;}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-left:35px;}
@media(max-width:600px){.grid2{grid-template-columns:1fr;}}
label{font-size:12px;font-weight:600;color:var(--muted);display:block;margin-bottom:5px;letter-spacing:.01em;}
input[type=text]{
  width:100%;padding:11px 13px;border:1.5px solid var(--border);border-radius:9px;
  font-size:14px;background:#fdfcfb;color:var(--text); font-family:var(--font-body);
  transition:border-color .2s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
}
input[type=text]:hover{border-color:#d8d0c3;}
input[type=text]:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 4px rgba(165,28,34,.1);background:#fff;}
.field{margin-bottom:11px;}

.btnrow{margin-left:35px;margin-top:16px;display:flex;gap:10px;flex-wrap:wrap;}
button, .filebtn{
  border:1.5px solid var(--border); background:#fff; color:var(--text);
  padding:10px 18px; border-radius:9px; font-size:13.5px; font-weight:600;
  cursor:pointer; transition:border-color .2s var(--ease), color .2s var(--ease), transform .15s var(--ease), box-shadow .2s var(--ease), background .2s var(--ease);
  display:inline-flex; align-items:center; gap:7px; font-family:var(--font-body);
}
button:hover, .filebtn:hover{border-color:var(--primary); color:var(--primary); transform:translateY(-1px); box-shadow:0 6px 16px -8px rgba(165,28,34,.25);}
button:active, .filebtn:active{transform:translateY(0);}
button.primary{background:linear-gradient(135deg,var(--primary-light),var(--primary)); border-color:var(--primary); color:#fff; box-shadow:0 4px 14px -4px rgba(165,28,34,.5);}
button.primary:hover{background:linear-gradient(135deg,var(--primary),var(--primary-dark)); border-color:var(--primary-dark); color:#fff; box-shadow:0 8px 20px -6px rgba(165,28,34,.55);}
button:disabled{opacity:.42; cursor:not-allowed; box-shadow:none; transform:none;}
button:disabled:hover{border-color:var(--border);color:var(--text);box-shadow:none;transform:none;}

.statusok{font-size:12.5px;color:var(--success);font-weight:600;align-self:center;transition:opacity .3s var(--ease);}
.statusmuted{font-size:12.5px;color:var(--muted);align-self:center;}

.dropzone{
  margin-left:35px; border:2px dashed var(--border); border-radius:11px; padding:26px;
  text-align:center; color:var(--muted); font-size:13.5px; background:#fdfcfb;
  transition:border-color .25s var(--ease), background .25s var(--ease), color .25s var(--ease), transform .2s var(--ease);
}
.dropzone.drag{border-color:var(--primary); background:var(--primary-tint); color:var(--primary-dark); transform:scale(1.01);}
.dropzone strong{color:var(--text);}
.filename{
  margin-left:35px;margin-top:9px;font-size:12.5px;color:var(--success);font-weight:600;display:none;
  animation:revealUp .35s var(--ease) both;
}

#resultsWrap{display:none;}
.summary{
  margin-left:35px; display:grid; grid-template-columns:repeat(6,1fr); gap:12px; margin-top:8px; margin-bottom:18px;
}
@media(max-width:900px){.summary{grid-template-columns:repeat(3,1fr);}}
@media(max-width:600px){.summary{grid-template-columns:1fr 1fr;}}
.sumcard{
  background:#fdfcfb;border:1px solid var(--border);border-radius:10px;padding:14px;
  transition:border-color .2s var(--ease), transform .2s var(--ease);
}
.sumcard:hover{border-color:var(--primary-light); transform:translateY(-2px);}
.sumcard .v{font-family:var(--font-display);font-size:20px;font-weight:800;color:var(--ink);}
.sumcard .l{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:3px;}

.tablewrap{margin-left:35px;}
table{width:100%; border-collapse:collapse; font-size:12.5px;}
th,td{padding:10px 10px; border-bottom:1px solid var(--border); text-align:left;}
th{color:var(--muted); font-weight:700; font-size:11px; text-transform:uppercase; letter-spacing:.04em; border-bottom:2px solid var(--border);}
td.num{text-align:right; font-variant-numeric:tabular-nums;}
tr.zero td{color:var(--muted);}
tbody tr{transition:background .15s var(--ease);}
tbody tr:hover{background:var(--primary-tint);}
.tag{font-size:10.5px; padding:3px 9px; border-radius:20px; font-weight:700;}
.tag.ok{background:var(--success-tint); color:var(--success);}
.tag.wait{background:var(--warn-tint); color:var(--warn);}

.note{
  margin:18px 35px 0; font-size:12.5px; color:var(--muted); background:#fdfcfb;
  border:1px solid var(--border); border-left:3px solid var(--primary); border-radius:9px; padding:13px 15px;
}
.note b{color:var(--text);}

/* ---------- Site footer ---------- */
.sitefooter{
  margin-top:50px; background:var(--ink); color:#cfcac4;
  border-top:3px solid var(--primary);
}
.footinner{
  max-width:820px; margin:0 auto; padding:28px 20px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
}
.footlogo{height:26px; width:auto; display:block; opacity:.95;}

.footsocial{display:flex; gap:10px;}
.footsocial a{
  width:32px; height:32px; border-radius:8px; background:rgba(255,255,255,.05);
  border:1px solid rgba(165,28,34,.4); display:flex; align-items:center; justify-content:center;
  color:#cfcac4; transition:background .2s var(--ease), color .2s var(--ease), transform .2s var(--ease), border-color .2s var(--ease);
}
.footsocial a svg{width:15px; height:15px;}
.footsocial a:hover{background:var(--primary); border-color:var(--primary); color:#fff; transform:translateY(-2px);}

.footbottom{
  border-top:1px solid rgba(255,255,255,.1);
  max-width:820px; margin:0 auto; padding:14px 20px 22px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px;
  font-size:11.5px; color:#8a8379;
}
.devby{
  display:inline-flex; align-items:center; gap:6px; color:#8a8379; text-decoration:none; font-size:11.5px;
  transition:color .2s var(--ease);
}
.devby img{height:20px; width:auto; opacity:.9; transition:opacity .2s var(--ease);}
.devby:hover{color:#fff;}
.devby:hover img{opacity:1;}

/* ---------- Printable RPAs ---------- */
#printArea{display:none;}
.rpa-page{
  width:100%; max-width:720px; margin:0 auto 0; background:#fff; padding:40px;
  page-break-after:always; border:1px solid var(--border); border-radius:0;
  font-family:var(--font-body);
}
.rpa-page .rpa-brand{display:flex; justify-content:center; margin-bottom:14px;}
.rpa-page .rpa-brand img{height:32px;}
.rpa-page h3{
  font-family:var(--font-display);
  text-align:center; letter-spacing:.04em; font-size:16px; margin:0 0 2px; color:var(--ink); font-weight:800;
}
.rpa-page .sub{text-align:center;color:var(--muted);font-size:12px;margin-bottom:22px;}
.rpa-page .hr{height:3px;background:linear-gradient(90deg,var(--primary-dark),var(--primary),var(--primary-light));margin:14px 0 22px;border-radius:3px;}
.rpa-block{margin-bottom:16px;}
.rpa-block .lbl{font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:700; margin-bottom:3px;}
.rpa-block .val{font-size:13.5px;}
.rpa-cols{display:flex; gap:30px;}
.rpa-cols>div{flex:1;}
.rpa-table{width:100%; border-collapse:collapse; margin-top:6px; font-size:13px;}
.rpa-table td{padding:7px 4px; border-bottom:1px solid #ddd;}
.rpa-table td:last-child{text-align:right; font-variant-numeric:tabular-nums;}
.rpa-table tr.total td{font-weight:700; border-top:2px solid var(--text); border-bottom:none;}
.rpa-sign{margin-top:50px; display:flex; gap:40px;}
.rpa-sign div{flex:1; border-top:1px solid #999; padding-top:6px; font-size:11px; color:var(--muted); text-align:center;}
.rpa-foot{margin-top:26px; font-size:10px; color:#999; text-align:center;}

@media print{
  body{background:#fff;}
  .no-print{display:none !important;}
  #printArea{display:block !important;}
  .rpa-page{border:none; box-shadow:none;}
}
