/* ==========================================================================
   PJ Compliance — Auditor Inteligente
   Rodolpho Barreto Sampaio Jr. — Advocacia
   Design tokens extraídos da identidade visual (Papelaria)
   ========================================================================== */

:root{
  --ink:#1A181A;
  --ink-soft:#3A3733;
  --ink-mute:#6B675E;
  --paper:#FBF9F4;
  --paper-deep:#F1EDE3;
  --white:#FFFFFF;
  --gold:#9C9060;
  --gold-deep:#7C7248;
  --gold-soft:#EDE8D6;
  --silver:#C9C6BC;
  --line:#E3DFD1;
  --footer-bg:#141213;
  --footer-line:#2A2726;
  --footer-mute:#8A867C;
  --ok:#5E8A5E;
  --err:#B0483A;
  --err-soft:#F7E8E5;

  --font-serif:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  --font-sans:'Public Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --container:1180px;
}

*, *::before, *::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  margin:0;
  background:var(--paper);
  color:var(--ink-soft);
  font-family:var(--font-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3{ font-family:var(--font-serif); margin:0; font-weight:600; color:var(--ink); }
p{ margin:0; }
img{ max-width:100%; display:block; }
a{ color:var(--gold-deep); text-decoration:none; }
a:hover{ color:var(--ink); }
button{ font-family:inherit; }

.container{ max-width:var(--container); margin:0 auto; padding:0 48px; }
.visually-hidden{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;
}
.skip-link{
  position:absolute; left:-999px; top:0; background:var(--ink); color:var(--white);
  padding:12px 20px; z-index:100; font-size:14px;
}
.skip-link:focus{ left:12px; top:12px; }

/* ---------------------------------- Type ---------------------------------- */
.eyebrow{
  font:700 12px/1 var(--font-sans); letter-spacing:.14em; text-transform:uppercase;
  color:var(--gold-deep); display:block;
}

/* --------------------------------- Buttons -------------------------------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font:600 15px var(--font-sans); letter-spacing:.01em; padding:16px 30px;
  border-radius:2px; border:1px solid transparent; cursor:pointer;
  text-align:center;
}
.btn-primary{ background:var(--gold); border-color:var(--gold); color:var(--ink); }
.btn-primary:hover{ background:var(--gold-deep); border-color:var(--gold-deep); color:var(--white); }
.btn-outline-dark{ background:transparent; border:1px solid var(--ink); color:var(--ink); }
.btn-outline-dark:hover{ background:var(--ink); color:var(--white); }
.btn-outline-gold{ background:transparent; border:1px solid var(--gold); color:var(--gold); }
.btn-outline-gold:hover{ background:var(--gold); color:var(--ink); }
.btn-outline-light{ background:transparent; border:1px solid var(--silver); color:var(--white); }
.btn-outline-light:hover{ background:var(--white); color:var(--ink); }
.btn-block{ width:100%; }
.link-arrow{
  font:600 15px var(--font-sans); color:var(--gold-deep);
  display:inline-flex; align-items:center; gap:6px;
}
.link-back{
  font:600 13.5px var(--font-sans); color:var(--gold-deep);
  display:inline-flex; align-items:center; gap:6px;
}

/* ---------------------------------- Chips --------------------------------- */
.chip{
  display:inline-flex; align-items:center; gap:6px; border:1px solid var(--gold);
  color:var(--ink); font:600 11px var(--font-sans); letter-spacing:.06em;
  text-transform:uppercase; padding:8px 14px; border-radius:2px; background:var(--white);
}
.chip-muted{ border-color:var(--line); color:var(--ink-mute); background:var(--paper-deep); }

/* ------------------------------- Marked lists ------------------------------ */
.list-marked{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; }
.list-marked li{ position:relative; padding-left:24px; font-size:15px; line-height:1.65; color:var(--ink-soft); }
.list-marked li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; background:var(--gold); }

/* -------------------------------- Step list -------------------------------- */
.step-list{ display:flex; flex-direction:column; gap:34px; }
.step-item{ display:flex; gap:24px; align-items:flex-start; }
.step-item .step-circle{ margin:0; }
.step-item h3{ font-size:19px; margin-bottom:8px; }
.step-item p{ font-size:14.5px; color:var(--ink-mute); line-height:1.65; max-width:660px; }

/* ------------------------------- Module cards ------------------------------- */
.module-card{ display:flex; flex-direction:column; }
.module-card.muted{ background:var(--paper-deep); }
.module-card .status{ margin-bottom:18px; align-self:flex-start; }
.module-card h3{ font-size:20px; margin-bottom:10px; }
.module-card p{ font-size:14.5px; color:var(--ink-mute); line-height:1.6; margin-bottom:18px; }
.module-card .link-arrow{ margin-top:auto; }

/* ------------------------------ Bibliography ------------------------------ */
.biblio-grid .feat-card{ display:flex; flex-direction:column; }
.biblio-card h3{ font-size:16.5px; line-height:1.4; margin:14px 0 8px; }
.biblio-card p{ font-size:13px; color:var(--ink-mute); margin-bottom:16px; }
.biblio-card .biblio-link{ margin-top:auto; }

.biblio-list{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; }
.biblio-item{ display:flex; align-items:baseline; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); }
.biblio-item:first-child{ padding-top:0; }
.biblio-item:last-child{ border-bottom:none; }
.biblio-year{ flex:0 0 58px; font:600 12px var(--font-sans); color:var(--gold-deep); }
.biblio-text{ flex:1; font-size:14.5px; line-height:1.55; color:var(--ink); }
.biblio-link{ flex:0 0 auto; font-size:12.5px; font-weight:600; color:var(--gold-deep); white-space:nowrap; }
.biblio-link.muted{ color:var(--ink-mute); font-weight:500; }

/* ------------------------------- Archive block ------------------------------ */
.archive-block{ margin-bottom:44px; }
.archive-block:last-child{ margin-bottom:0; }
.archive-block h3{ font-size:18px; margin-bottom:16px; }
details.archive-toggle{ border-top:1px solid var(--line); padding-top:24px; margin-top:8px; }
details.archive-toggle summary{ cursor:pointer; font:600 14px var(--font-sans); color:var(--gold-deep); list-style:none; }
details.archive-toggle summary::-webkit-details-marker{ display:none; }
details.archive-toggle[open] summary{ margin-bottom:24px; }

/* ---------------------------------- Cards --------------------------------- */
.card{ background:var(--white); border:1px solid var(--line); padding:32px 28px; }

/* ---------------------------------- Header -------------------------------- */
.site-header{ background:var(--ink); position:relative; z-index:20; }
.site-header .container{ display:flex; align-items:center; justify-content:space-between; padding:18px 48px; gap:24px; }
.brand{ display:flex; align-items:center; gap:12px; color:inherit; }
.brand:hover{ color:inherit; opacity:.9; }
.brand img{ height:36px; width:auto; }
.brand .brand-name{ line-height:1.35; font:600 11px/1 var(--font-sans); letter-spacing:.12em; color:#EDEAE0; text-transform:uppercase; }
.brand .brand-name span{ display:block; margin-top:4px; }

.main-nav{ display:flex; align-items:center; gap:36px; }
.main-nav a{ font:500 14px var(--font-sans); color:var(--silver); }
.main-nav a:hover, .main-nav a[aria-current="page"]{ color:var(--gold); }

.header-actions{ display:flex; align-items:center; gap:22px; }
.header-actions .btn{ padding:11px 22px; font-size:13px; }

.nav-toggle{
  display:none; background:none; border:0; padding:6px; cursor:pointer; color:#EDEAE0;
}
.nav-toggle svg{ display:block; }

/* -------------------------------- Sub-header ------------------------------- */
.sub-bar{ background:var(--paper-deep); padding:14px 0; }

/* ---------------------------------- Footer -------------------------------- */
.site-footer{ background:var(--footer-bg); padding:72px 0 28px; }
.footer-grid{ display:grid; grid-template-columns:1.3fr 1fr 1.3fr 1fr; gap:40px; margin-bottom:56px; }
.footer-brand{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.footer-brand img{ height:32px; width:auto; }
.footer-brand span{ font:600 11px/1.4 var(--font-sans); letter-spacing:.1em; color:#EDEAE0; text-transform:uppercase; }
.footer-col-title{ font:600 12px var(--font-sans); letter-spacing:.1em; text-transform:uppercase; color:#EDEAE0; margin-bottom:18px; }
.footer-links{ display:flex; flex-direction:column; gap:12px; }
.footer-links a, .site-footer p, .footer-contact div{ color:var(--silver); }
.footer-links a{ font-size:14px; }
.footer-contact{ display:flex; flex-direction:column; gap:14px; }
.footer-contact div{ display:flex; gap:10px; font-size:13.5px; line-height:1.5; }
.footer-contact svg{ flex-shrink:0; margin-top:2px; }
.footer-social{ display:flex; gap:14px; margin-top:22px; }
.footer-social a{ color:var(--silver); display:flex; }
.footer-bottom{ border-top:1px solid var(--footer-line); padding-top:24px; }
.footer-bottom p{ font-size:12.5px; color:var(--footer-mute); line-height:1.7; max-width:920px; }
.footer-simple{ background:var(--footer-bg); padding:40px 0 28px; }
.footer-simple .container{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px; }
.footer-simple p{ font-size:12px; color:var(--footer-mute); line-height:1.6; max-width:560px; }

/* --------------------------------- Sections -------------------------------- */
.section{ padding:96px 0; }
.section-tight{ padding:56px 0; }
.section-header{ max-width:680px; margin:0 auto 56px; text-align:center; }
.bg-paper-deep{ background:var(--paper-deep); }
.bg-white{ background:var(--white); }
.bg-ink{ background:var(--ink); }

/* ---------------------------------- Hero ----------------------------------- */
.hero{ padding:100px 0 90px; }
.hero .container{ display:grid; grid-template-columns:1.15fr .85fr; gap:70px; align-items:center; }
.hero h1{ font:600 53px/1.14 var(--font-serif); margin-bottom:26px; max-width:620px; }
.hero p.lead{ font-size:18px; line-height:1.65; color:var(--ink-soft); max-width:520px; margin-bottom:38px; }
.hero-ctas{ display:flex; align-items:center; gap:32px; flex-wrap:wrap; margin-bottom:24px; }
.hero-note{ font:italic 400 14px/1.5 var(--font-serif); color:var(--ink-mute); max-width:460px; }

.plaque{
  background:var(--ink); padding:54px 46px; border:1px solid var(--gold);
  position:relative; overflow:hidden; box-shadow:0 28px 64px -24px rgba(26,24,26,.4);
  width:100%; max-width:340px; margin:0 auto;
}
.plaque .cut{ position:absolute; top:-42px; right:-42px; width:110px; height:110px; background:var(--gold); transform:rotate(45deg); }
.plaque img{ height:86px; width:auto; margin:0 auto 26px; position:relative; }
.plaque-text{ text-align:center; }
.plaque-text .name{ font:600 13px/1.5 var(--font-sans); letter-spacing:.16em; color:#EDEAE0; text-transform:uppercase; }
.plaque-text .role{ font:italic 400 16px var(--font-serif); color:var(--gold); margin-top:10px; }
.plaque-text .rule{ width:32px; height:1px; background:var(--gold); margin:18px auto; opacity:.6; }
.plaque-text .meta{ font:400 11px/1.6 var(--font-sans); color:var(--silver); letter-spacing:.02em; }

/* ------------------------------ Feature grids ------------------------------ */
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.feat-card{ background:var(--white); border:1px solid var(--line); padding:36px 30px; }
.feat-card.center{ text-align:center; }
.feat-card svg{ color:var(--gold-deep); }
.step-num{
  font:600 15px var(--font-serif); color:var(--gold-deep); border:1px solid var(--gold);
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.step-circle{
  width:52px; height:52px; border-radius:50%; background:var(--ink); color:var(--gold);
  display:flex; align-items:center; justify-content:center; font:600 20px var(--font-serif);
  margin:0 auto 22px;
}
.step-row{ display:grid; grid-template-columns:repeat(3,1fr); position:relative; }
.step-row .line{ position:absolute; top:26px; left:16.5%; right:16.5%; height:1px; background:var(--line); }
.step-row .step{ text-align:center; padding:0 24px; position:relative; background:var(--white); }

/* ----------------------------------- Notice --------------------------------- */
.notice{
  display:flex; align-items:flex-start; gap:14px; background:var(--gold-soft); border:1px solid var(--gold);
  padding:18px 26px;
}
.notice svg{ flex-shrink:0; color:var(--gold-deep); margin-top:2px; }
.notice.err{ background:var(--err-soft); border-color:var(--err); }
.notice.err svg{ color:var(--err); }
.notice.dashed{ border-style:dashed; border-color:var(--line); background:var(--paper-deep); color:var(--ink-mute); }

/* ----------------------------------- CTA band -------------------------------- */
.cta-band{ padding:96px 0; text-align:center; position:relative; overflow:hidden; }
.cta-band .cut{ position:absolute; width:160px; height:160px; background:var(--gold); opacity:.12; transform:rotate(45deg); }
.cta-band h2{ color:var(--white); }

/* ------------------------------------ Auth ----------------------------------- */
.auth-shell{ min-height:calc(100vh - 0px); background:var(--paper-deep); position:relative; overflow:hidden; }
.auth-shell .watermark{ position:absolute; top:-60px; right:-90px; width:420px; height:auto; opacity:.06; filter:grayscale(1) brightness(.2); }
.auth-header{ padding:26px 48px; display:flex; align-items:center; justify-content:space-between; position:relative; }
.auth-wrap{ display:flex; justify-content:center; padding:40px 24px 70px; position:relative; }
.auth-card{ width:100%; max-width:440px; }
.auth-card.wide{ max-width:520px; }
.auth-card .card{ padding:48px 44px; box-shadow:0 20px 50px -24px rgba(26,24,26,.18); text-align:left; }
.auth-card.center-text .card{ text-align:center; }
.auth-icon{ width:52px; height:52px; border:1px solid var(--gold); display:flex; align-items:center; justify-content:center; margin-bottom:24px; }
.auth-icon.circle{ border-radius:50%; background:var(--ink); border:0; width:64px; height:64px; margin:0 auto 26px; }
.auth-trust{ display:flex; align-items:center; justify-content:center; gap:8px; margin-top:24px; }
.auth-trust svg{ color:var(--ink-mute); flex-shrink:0; }
.auth-trust p{ font-size:12.5px; color:var(--ink-mute); }

.field{ margin-bottom:20px; }
.field label{ font:600 13px var(--font-sans); color:var(--ink); margin-bottom:8px; display:block; }
.field .input-wrap{ position:relative; }
.field input, .field textarea{
  width:100%; padding:14px 16px; border:1px solid var(--line); background:var(--white);
  font:400 15px var(--font-sans); color:var(--ink); font-family:var(--font-sans);
}
.field textarea{ resize:vertical; min-height:76px; }
.field input:focus, .field textarea:focus{ outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold); }
.field .toggle-visibility{
  position:absolute; right:14px; top:50%; transform:translateY(-50%); background:none; border:0;
  color:var(--ink-mute); cursor:pointer; padding:4px; display:flex;
}
.row-2{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form-note-link{ text-align:right; margin-bottom:28px; font-size:13px; }
.checkbox-row{ display:flex; align-items:flex-start; gap:10px; margin-bottom:26px; }
.checkbox-row input{ width:17px; height:17px; margin-top:2px; flex-shrink:0; accent-color:var(--gold-deep); }
.checkbox-row p{ font-size:12.5px; color:var(--ink-mute); line-height:1.5; }
.divider{ display:flex; align-items:center; gap:12px; margin:24px 0; }
.divider .line{ flex:1; height:1px; background:var(--line); }
.divider span{ font-size:12px; color:var(--ink-mute); }
.auth-note{
  margin-top:16px; padding:12px 14px; background:var(--paper-deep); border:1px solid var(--line);
  font-size:13px; color:var(--ink-soft); display:flex; gap:8px; align-items:flex-start;
}
.auth-note svg{ flex-shrink:0; color:var(--gold-deep); margin-top:1px; }
.auth-note[hidden]{ display:none; }

.check-row{ display:flex; align-items:center; gap:10px; padding:9px 0; border-bottom:1px solid var(--line); }
.check-row:last-child{ border-bottom:0; }
.check-row svg{ color:var(--ok); flex-shrink:0; }

/* -------------------------------- Questionnaire ------------------------------- */
.quiz-shell{ min-height:100vh; background:var(--paper); }
.quiz-topbar{ background:var(--white); border-bottom:1px solid var(--line); }
.quiz-topbar .container{ display:flex; align-items:center; justify-content:space-between; padding:18px 48px; }
.save-indicator{ display:flex; align-items:center; gap:7px; }
.save-indicator svg{ color:var(--ok); }
.save-indicator span{ font-size:12.5px; color:var(--ink-mute); }
.quiz-exit{ font-size:13.5px; color:var(--ink-mute); border-left:1px solid var(--line); padding-left:24px; }

.progress-wrap{ max-width:var(--container); margin:0 auto; padding:22px 48px 0; }
.progress-meta{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.progress-meta .cat{ font:600 12px var(--font-sans); letter-spacing:.06em; text-transform:uppercase; color:var(--gold-deep); }
.progress-meta .count{ font-size:13px; color:var(--ink-mute); }
.progress-track{ height:4px; background:var(--line); border-radius:2px; overflow:hidden; }
.progress-fill{ height:100%; background:var(--gold); width:0%; transition:width .3s ease; }

.quiz-main{ max-width:720px; margin:0 auto; padding:56px 48px 80px; }
.quiz-main h1{ font-size:30px; line-height:1.35; margin-bottom:8px; }
.quiz-sub{ font-size:14px; color:var(--ink-mute); margin-bottom:32px; }

.options{ margin-bottom:28px; }
.opt{
  display:flex; align-items:center; gap:14px; border:1px solid var(--line); background:var(--white);
  padding:16px 18px; margin-bottom:10px; cursor:pointer; width:100%; text-align:left; font:inherit;
}
.opt .dot{ width:18px; height:18px; border-radius:50%; border:1.5px solid var(--ink-mute); flex-shrink:0; display:flex; align-items:center; justify-content:center; }
.opt span.label{ font-size:15px; color:var(--ink); }
.opt.selected{ border-color:var(--gold); background:var(--gold-soft); }
.opt.selected .dot{ border-color:var(--gold-deep); }
.opt.selected .dot::after{ content:""; width:9px; height:9px; border-radius:50%; background:var(--gold-deep); }
.opt.nd{ border-style:dashed; }
.opt.nd span.label{ color:var(--ink-mute); }
.opt:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:2px; }

.quiz-footer-note{ border-top:1px solid var(--line); padding:20px 48px; display:flex; align-items:center; justify-content:center; gap:8px; }
.quiz-footer-note svg{ color:var(--ink-mute); }
.quiz-footer-note span{ font-size:12.5px; color:var(--ink-mute); }
.quiz-nav{ display:flex; align-items:center; justify-content:space-between; }

.help-slot{ display:flex; align-items:center; gap:12px; border:1px dashed var(--line); background:var(--paper-deep); padding:14px 16px; margin-bottom:44px; }
.help-slot svg{ color:var(--ink-mute); flex-shrink:0; }
.help-slot span{ font-size:13px; color:var(--ink-mute); }

/* ------------------------------ Anexo (contrato) ------------------------------ */
/* Fase 3 (23/09/2026, usabilidade): a barra deixou de ser um menu recolhido
   (ver histórico em fase3-agente-ia-plano.md, seção 16/17) — agora é uma
   faixa compacta sempre visível durante o questionário, e o upload em si
   ganhou uma tela própria (.quiz-intro-*) antes da primeira pergunta. */
.attach-bar{ background:var(--paper-deep); border-bottom:1px solid var(--line); transition:background-color .2s ease; }
.attach-bar .container{
  max-width:var(--container); padding:12px 48px; display:flex; align-items:center; gap:12px;
}
.attach-bar-icon{ color:var(--gold-deep); flex-shrink:0; }
.attach-bar-label{ font:600 13.5px var(--font-sans); color:var(--ink-soft); flex:1; }
.attach-bar-label strong{ color:var(--ink); font-weight:700; }
.attach-bar-actions{ display:flex; align-items:center; gap:16px; flex-shrink:0; }
.attach-bar-action{ font:600 13px var(--font-sans); color:var(--gold-deep); cursor:pointer; white-space:nowrap; }
.attach-bar-action:hover{ color:var(--ink); }
.attach-bar-remove{
  background:none; border:0; cursor:pointer; font:500 12.5px var(--font-sans); color:var(--ink-mute);
  padding:0; white-space:nowrap;
}
.attach-bar-remove:hover{ color:var(--ink); }
.attach-bar-ok{ background:var(--gold-soft); }
.attach-bar-pending .attach-bar-label{ color:var(--ink-mute); }

.quiz-intro{ max-width:640px; margin:0 auto 8px; }
.quiz-intro-icon{
  width:52px; height:52px; border-radius:50%; background:var(--gold-soft); color:var(--gold-deep);
  display:flex; align-items:center; justify-content:center; margin-bottom:22px;
}
.quiz-intro h1{ margin-bottom:14px; }
.quiz-intro-lead{ font-size:15px; line-height:1.65; color:var(--ink-soft); margin-bottom:18px; }
.quiz-intro-lead:last-of-type{ margin-bottom:36px; }
.quiz-intro-attach{ border:1px solid var(--line); background:var(--paper-deep); padding:26px 28px; margin-bottom:32px; }
.quiz-intro-attach-title{ font:600 15px var(--font-sans); color:var(--ink); margin-bottom:6px; }
.quiz-intro-attach-title em{ font-style:normal; color:var(--ink-mute); font-weight:500; }
.quiz-intro-nav{ display:flex; justify-content:flex-end; }
.attach-hint{ font-size:13.5px; color:var(--ink-mute); line-height:1.6; margin-bottom:16px; }
.attach-drop{
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
  border:1px dashed var(--gold); background:var(--white); padding:28px; cursor:pointer; text-align:center;
}
.attach-drop:hover{ border-color:var(--gold-deep); }
.attach-drop svg{ color:var(--gold-deep); }
.attach-drop span{ font-size:13.5px; color:var(--ink); }
.attach-drop-meta{ font-size:12px !important; color:var(--ink-mute) !important; }
.attach-list{ list-style:none; margin:14px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
.attach-list li{
  display:flex; align-items:center; gap:10px; background:var(--white); border:1px solid var(--line);
  padding:10px 14px; font-size:13.5px; color:var(--ink);
}
.attach-list li button{ margin-left:auto; background:none; border:0; color:var(--ink-mute); cursor:pointer; font-size:16px; line-height:1; }
.attach-note{ display:flex; align-items:center; gap:8px; font-size:12px; color:var(--ink-mute); margin-top:14px; }
.attach-note svg{ color:var(--ink-mute); flex-shrink:0; }

/* --------------------------- PJ Compliance (hero) --------------------------- */
.pjc-hero{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; }

.pjc-preview-card{
  position:relative; overflow:hidden; background:var(--white); border:1px solid var(--line);
  padding:40px 34px; box-shadow:0 24px 60px -28px rgba(26,24,26,.22);
}
.pjc-preview-cut{
  position:absolute; top:-36px; right:-36px; width:96px; height:96px; background:var(--gold);
  opacity:.14; transform:rotate(45deg);
}
.pjc-preview-eyebrow{
  font:700 11px var(--font-sans); letter-spacing:.14em; text-transform:uppercase; color:var(--gold-deep);
  display:block; margin-bottom:26px; position:relative;
}
.pjc-preview-steps{ display:flex; flex-direction:column; gap:20px; position:relative; }
.pjc-preview-step{ display:flex; align-items:center; gap:14px; }
.pjc-preview-step span:last-child{ font-size:14.5px; color:var(--ink-soft); line-height:1.4; }
.pjc-preview-num{
  flex-shrink:0; width:34px; height:34px; border-radius:50%; background:var(--ink); color:var(--gold);
  display:flex; align-items:center; justify-content:center; font:600 16px/1 var(--font-serif);
}

/* ------------------------- PJ Compliance (fatores) -------------------------- */
.pjc-factors-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.pjc-factor{
  position:relative; background:var(--paper-deep); border:1px solid var(--line);
  padding:14px 18px 14px 30px; font-size:13.5px; color:var(--ink-soft); line-height:1.5;
}
.pjc-factor::before{
  content:""; position:absolute; left:14px; top:19px; width:7px; height:7px; background:var(--gold);
}

/* ---------------------- PJ Compliance (como funciona) ----------------------- */
.pjc-steps-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.pjc-step-card{
  position:relative; overflow:hidden; background:var(--white); border:1px solid var(--line);
  padding:32px 26px 28px;
}
.pjc-step-bar{ position:absolute; top:0; left:0; right:0; height:4px; background:var(--gold); }
.pjc-step-card h3{ font-size:18px; margin-bottom:10px; }
.pjc-step-card p{ font-size:14px; color:var(--ink-mute); line-height:1.6; }

/* ------------------------------- Meus casos ------------------------------- */
.casos-wrap{ display:flex; flex-direction:column; align-items:center; padding:40px 24px 70px; position:relative; }
.casos-card{
  width:100%; max-width:760px; background:var(--white); border:1px solid var(--line);
  padding:44px 40px; box-shadow:0 20px 50px -24px rgba(26,24,26,.18);
}
.casos-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.casos-head h1{ font-size:28px; line-height:1.3; margin:10px 0 10px; }
.casos-sub{ font-size:14px; color:var(--ink-mute); line-height:1.6; max-width:440px; }
.casos-head .btn{ flex-shrink:0; }

.novo-caso-panel{ border:1px solid var(--line); background:var(--paper-deep); padding:24px; margin:28px 0 4px; }

.casos-status{ font-size:13.5px; color:var(--ink-mute); padding:20px 0; }

.caso-list{
  list-style:none; margin:28px 0 0; padding:0; display:flex; flex-direction:column;
  gap:1px; background:var(--line); border:1px solid var(--line);
}
.caso-item{ display:flex; align-items:center; justify-content:space-between; gap:20px; background:var(--white); padding:20px 22px; }
.caso-info{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.caso-rotulo{ font:600 15.5px var(--font-sans); color:var(--ink); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.caso-meta{ font-size:12.5px; color:var(--ink-mute); display:flex; align-items:center; gap:8px; }
.caso-waiting{ font-size:13px; color:var(--ink-mute); flex-shrink:0; }

.status-badge{
  display:inline-flex; align-items:center; font:600 10.5px var(--font-sans); letter-spacing:.06em;
  text-transform:uppercase; padding:4px 9px; border-radius:2px;
}
.status-badge.em_andamento{ background:var(--gold-soft); color:var(--gold-deep); }
.status-badge.finalizado{ background:var(--paper-deep); color:var(--ink-mute); border:1px solid var(--line); }

.caso-empty{ text-align:center; padding:48px 24px; border:1px dashed var(--line); margin-top:28px; }
.caso-empty svg{ color:var(--gold-deep); margin:0 auto 14px; display:block; }
.caso-empty p{ font-size:14px; color:var(--ink-mute); }

/* -------------------------------- Pré-análise -------------------------------- */
.relatorio-wrap{ display:flex; flex-direction:column; align-items:center; padding:40px 24px 70px; position:relative; }
.relatorio-wrap > .link-back{ width:100%; max-width:860px; }
.relatorio-status{ font-size:13.5px; color:var(--ink-mute); padding:20px 0; }

.relatorio-card{
  width:100%; max-width:860px; background:var(--white); border:1px solid var(--line);
  padding:44px 40px; box-shadow:0 20px 50px -24px rgba(26,24,26,.18);
}
.relatorio-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.relatorio-head h1{ font-size:26px; line-height:1.3; margin:10px 0 6px; }
.relatorio-sub{ font-size:13px; color:var(--ink-mute); }

.nivel-badge{
  flex-shrink:0; display:inline-flex; align-items:center; font:700 11px var(--font-sans);
  letter-spacing:.06em; text-transform:uppercase; padding:8px 16px; border-radius:2px;
  border:1px solid var(--line); background:var(--paper-deep); color:var(--ink-mute);
}
.nivel-badge.nivel-baixo{ background:#EAF1EA; border-color:var(--ok); color:var(--ok); }
.nivel-badge.nivel-medio{ background:var(--gold-soft); border-color:var(--gold); color:var(--gold-deep); }
.nivel-badge.nivel-alto{ background:var(--err-soft); border-color:var(--err); color:var(--err); }
.nivel-badge.nivel-indeterminado{ background:var(--paper-deep); border-color:var(--line); color:var(--ink-mute); }

.relatorio-resumo{ font-size:14px; color:var(--ink-soft); margin-bottom:8px; }

.relatorio-section-title{ font-size:18px; margin:34px 0 16px; }

.relatorio-signals{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.relatorio-signal{ background:var(--paper-deep); border:1px solid var(--line); padding:16px 18px; }
.relatorio-signal-rotulo{ font:600 13.5px var(--font-sans); color:var(--ink); margin-bottom:10px; }
.relatorio-signal-track{ height:6px; background:var(--line); border-radius:3px; overflow:hidden; margin-bottom:8px; }
.relatorio-signal-fill{ height:100%; background:var(--gold); border-radius:3px; }
.relatorio-signal-fill.sem-dados{ background:var(--silver); }
.relatorio-signal-texto{ font-size:12.5px; color:var(--ink-mute); }

.relatorio-texto{ background:var(--paper-deep); border:1px solid var(--line); padding:24px 26px; }
.relatorio-texto p{ font-size:14px; color:var(--ink-soft); line-height:1.7; margin-bottom:14px; }
.relatorio-texto p:last-child{ margin-bottom:0; }

.relatorio-ia-pendente{
  display:flex; align-items:center; gap:10px; font-size:13.5px; color:var(--ink-mute);
  border:1px dashed var(--line); background:var(--paper-deep); padding:16px 20px;
}
.relatorio-ia-pendente::before{
  content:""; width:8px; height:8px; border-radius:50%; background:var(--gold);
  flex-shrink:0; animation:relatorio-ia-pulse 1.2s ease-in-out infinite;
}
@keyframes relatorio-ia-pulse{ 0%,100%{ opacity:.25; } 50%{ opacity:1; } }
.relatorio-ia-texto{ border-color:var(--gold); }

.relatorio-fontes{ margin-top:18px; padding-top:16px; border-top:1px dashed var(--line); }
.relatorio-fontes-titulo{ font:600 11px var(--font-sans); letter-spacing:.06em; text-transform:uppercase; color:var(--ink-mute); margin-bottom:10px; }
.relatorio-fontes-lista{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; gap:7px 20px; }
.relatorio-fontes-lista li{ font-size:12px; color:var(--ink-mute); }
.relatorio-fontes-lista a{ font-weight:600; color:var(--gold-deep); }
.relatorio-fontes-lista a:hover{ color:var(--ink); }

.relatorio-meta-foot{ border-top:1px solid var(--line); margin-top:30px; padding-top:16px; font-size:12px; color:var(--ink-mute); }

/* ------------------------------------ Utility -------------------------------- */
.mt-0{ margin-top:0; }
.text-center{ text-align:center; }
[hidden]{ display:none !important; }

/* =============================== Responsive =================================== */
@media (max-width: 900px){
  .container{ padding:0 24px; }
  .hero .container{ grid-template-columns:1fr; gap:40px; }
  .hero h1{ font-size:38px; }
  .grid-3, .grid-4{ grid-template-columns:1fr 1fr; }
  .step-row{ grid-template-columns:1fr; gap:28px; }
  .step-row .line{ display:none; }
  .footer-grid{ grid-template-columns:1fr 1fr; gap:32px; }
  .row-2{ grid-template-columns:1fr; }

  .pjc-hero{ grid-template-columns:1fr; gap:40px; }
  .pjc-preview-card{ max-width:440px; }
  .pjc-steps-grid{ grid-template-columns:1fr 1fr; }
  .pjc-factors-grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width: 720px){
  .site-header .container{ padding:16px 20px; }
  .main-nav{
    position:absolute; top:100%; left:0; right:0; background:var(--ink);
    flex-direction:column; align-items:flex-start; gap:0; padding:8px 20px 20px;
    border-top:1px solid var(--footer-line); display:none;
  }
  .main-nav.open{ display:flex; }
  .main-nav a{ padding:12px 0; width:100%; border-bottom:1px solid var(--footer-line); }
  .header-actions .btn-outline-gold{ display:none; }
  .nav-toggle{ display:flex; }

  .hero{ padding:56px 0 48px; }
  .hero h1{ font-size:32px; }
  .hero p.lead{ font-size:15.5px; }
  .section{ padding:56px 0; }
  .grid-3, .grid-4{ grid-template-columns:1fr; }
  .footer-grid{ grid-template-columns:1fr; gap:28px; }
  .cta-band h2{ font-size:26px; }
  .auth-header{ padding:20px 20px; }
  .auth-wrap{ padding:28px 16px 50px; }
  .auth-card .card{ padding:36px 26px; }
  .quiz-topbar .container{ padding:14px 20px; }
  .quiz-main{ padding:32px 20px 100px; }
  .progress-wrap{ padding:16px 20px 0; }
  .quiz-main h1{ font-size:23px; }
  .attach-bar .container{ padding:10px 20px; flex-wrap:wrap; }
  .attach-bar-actions{ width:100%; justify-content:flex-end; }
  .quiz-intro-attach{ padding:20px; }
  .footer-simple .container{ padding:0 20px; }
  .step-item{ flex-direction:column; gap:14px; }
  .biblio-item{ flex-direction:column; gap:4px; }
  .biblio-year{ flex:none; }

  .casos-card{ padding:32px 22px; }
  .casos-head{ flex-direction:column; }
  .casos-head .btn{ align-self:stretch; }
  .caso-item{ flex-direction:column; align-items:flex-start; gap:10px; }

  .pjc-preview-card{ max-width:none; padding:30px 24px; }
  .pjc-steps-grid{ grid-template-columns:1fr; }
  .pjc-factors-grid{ grid-template-columns:1fr; }

  .relatorio-card{ padding:32px 22px; }
  .relatorio-head{ flex-direction:column; }
  .relatorio-signals{ grid-template-columns:1fr; }
  .relatorio-texto{ padding:20px 18px; }
}

/* Fase 4 (25/09/2026) — exportação da pré-análise em PDF (relatorio.html) */
.relatorio-export{
  display:flex; align-items:center; justify-content:space-between; gap:20px;
  margin-top:26px; padding:20px 22px; border:1px solid var(--line);
  border-top:2px solid var(--gold); background:var(--paper-deep);
}
.relatorio-export-titulo{ font:600 15px var(--font-sans); color:var(--ink); margin:0 0 4px; }
.relatorio-export-status{ font-size:13px; color:var(--ink-mute); margin:0; line-height:1.5; }
.relatorio-export .btn{ display:inline-flex; align-items:center; gap:8px; flex-shrink:0; }
.relatorio-export .btn[disabled]{ opacity:.55; cursor:not-allowed; }
@media (max-width:720px){
  .relatorio-export{ flex-direction:column; align-items:stretch; }
  .relatorio-export .btn{ justify-content:center; }
}

/* Fase 4 (25/09/2026) — etapa final "Mais informações" do questionário */
.quiz-extras h1 em{ font-style:normal; font-family:var(--font-sans); font-size:15px; font-weight:500; color:var(--ink-mute); vertical-align:middle; }
.quiz-extras textarea{ min-height:150px; font:400 14.5px/1.6 var(--font-sans); }
.quiz-extras-meta{ display:flex; justify-content:space-between; gap:16px; margin-top:6px; font-size:12px; color:var(--ink-mute); }
.quiz-extras-docs{ border:1px solid var(--line); background:var(--paper-deep); padding:24px 26px; margin:8px 0 32px; }
.attach-drop.is-disabled{ opacity:.5; cursor:not-allowed; }
.attach-list li .attach-status{ color:var(--ink-mute); font-size:12px; }
.attach-list li .attach-status.erro{ color:var(--err); }
@media (max-width:720px){
  .quiz-extras-meta{ flex-direction:column; gap:4px; }
  .quiz-extras-docs{ padding:20px; }
}

/* Fase 4 (25/09/2026) — informações adicionais na tela de pré-análise */
.relatorio-extras-nota{ font-size:12.5px; color:var(--ink-mute); line-height:1.6; margin:-4px 0 14px; }
.relatorio-extras-docs{ list-style:none; margin:6px 0 0; padding:0; display:flex; flex-direction:column; gap:6px; }
.relatorio-extras-docs li{ font-size:13px; color:var(--ink-soft); }
.relatorio-extras-docs li .nao-considerado{ color:var(--ink-mute); font-size:12px; }

/* Fase 4 (25/09/2026, D21) — "Entenda o resultado", níveis de análise e
   análise completa ("Como reduzir o risco") na tela de pré-análise */
.entenda{ margin-top:8px; }
.entenda-texto{ background:var(--white); border:1px solid var(--line); border-left:3px solid var(--gold); padding:18px 22px; margin-bottom:18px; }
.entenda-texto p{ font-size:15px; line-height:1.7; color:var(--ink); margin:0 0 10px; }
.entenda-texto p:last-child{ margin-bottom:0; }
.entenda-pendente{ font-size:13.5px; color:var(--ink-mute); margin-bottom:18px; }
.niveis{ display:grid; grid-template-columns:1fr; gap:10px; margin-bottom:8px; }
.nivel-card{ display:flex; gap:14px; align-items:flex-start; border:1px solid var(--line); background:var(--paper-deep); padding:16px 18px; }
.nivel-card.nivel-destaque{ background:var(--white); border-color:var(--gold); }
.nivel-card.nivel-futuro{ opacity:.75; }
.nivel-num{ flex-shrink:0; width:28px; height:28px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font:600 13px var(--font-sans); background:var(--gold-soft); color:var(--gold-deep); }
.nivel-atual .nivel-num{ background:var(--gold); color:var(--white); }
.nivel-nome{ font:600 14.5px var(--font-sans); color:var(--ink); margin:2px 0 4px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.nivel-desc{ font-size:13.5px; line-height:1.55; color:var(--ink-mute); margin:0 0 6px; }
.nivel-estado{ font-size:13px; color:var(--ink-mute); margin:6px 0 0; }
.nivel-estado.nivel-estado-ok{ color:var(--ok); font-weight:600; }
.ciencia{ display:flex; gap:10px; align-items:flex-start; font-size:12.5px; line-height:1.55; color:var(--ink-soft); margin:10px 0 12px; cursor:pointer; }
.ciencia input{ margin-top:3px; accent-color:var(--gold-deep); flex-shrink:0; }
#completa-btn[disabled]{ opacity:.55; cursor:not-allowed; }
.como-reduzir-intro{ font-size:15px; line-height:1.7; color:var(--ink); margin:0 0 14px; }
.orientacoes{ margin:0 0 8px; padding-left:22px; display:flex; flex-direction:column; gap:14px; }
.orientacoes li::marker{ color:var(--gold-deep); font-weight:600; }
.orientacao-titulo{ font:600 14.5px var(--font-sans); color:var(--ink); margin:0 0 4px; }
.orientacao-texto{ font-size:14px; line-height:1.65; color:var(--ink-soft); margin:0; }
@media (max-width:720px){
  .nivel-card{ padding:14px; }
  #completa-btn{ width:100%; justify-content:center; }
}

/* Fase 4 (25/09/2026, D21/M-29) — "Meus casos" com os três níveis */
.niveis-legenda{ list-style:none; margin:28px 0 0; padding:16px 18px; display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; background:var(--paper-deep); border:1px solid var(--line); }
.niveis-legenda li{ display:flex; gap:10px; align-items:flex-start; }
.niveis-legenda strong{ display:block; font:600 13px var(--font-sans); color:var(--ink); margin-bottom:2px; }
.niveis-legenda span:not(.nivel-num){ display:block; font-size:12px; line-height:1.5; color:var(--ink-mute); }
.niveis-legenda .nivel-num, .trilha .nivel-num{ flex-shrink:0; width:26px; height:26px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font:600 12.5px var(--font-sans); background:var(--gold-soft); color:var(--gold-deep); }
.caso-list .caso-card{ background:var(--white); padding:20px 22px; display:flex; flex-direction:column; gap:16px; }
.caso-card-topo{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.caso-card-topo .nivel-badge, .caso-card-topo .status-badge{ flex-shrink:0; }
.trilha{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3, 1fr); gap:12px; }
.trilha-etapa{ display:flex; gap:10px; align-items:flex-start; padding:12px; border:1px solid var(--line); background:var(--paper-deep); position:relative; }
.trilha-etapa.feita .nivel-num{ background:var(--gold); color:var(--white); }
.trilha-etapa.atual{ background:var(--white); border-color:var(--gold); }
.trilha-etapa.futura{ opacity:.7; }
.trilha-corpo{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.trilha-nome{ font:600 13px var(--font-sans); color:var(--ink); }
.trilha-estado{ font-size:12px; color:var(--ink-mute); }
.trilha-estado.ok{ color:var(--ok); font-weight:600; }
.trilha-estado.erro{ color:var(--err); }
.trilha-corpo .link-arrow{ font-size:13px; margin-top:4px; }
.btn.btn-sm{ padding:7px 14px; font-size:12.5px; margin-top:6px; align-self:flex-start; }
.btn.btn-sm svg{ display:none; }
.caso-progresso{ display:flex; align-items:center; justify-content:space-between; gap:20px; }
.caso-progresso-texto{ flex:1; display:flex; flex-direction:column; gap:8px; font-size:13px; color:var(--ink-soft); }
.caso-progresso-trilho{ height:4px; background:var(--line); border-radius:2px; overflow:hidden; max-width:360px; }
.caso-progresso-fill{ height:100%; background:var(--gold); }
@media (max-width:720px){
  .niveis-legenda{ grid-template-columns:1fr; gap:10px; }
  .trilha{ grid-template-columns:1fr; }
  .caso-card-topo{ flex-direction:column; gap:8px; }
  .caso-progresso{ flex-direction:column; align-items:flex-start; gap:12px; }
}

/* Fase 4 (25/09/2026) — M-03 (o que mais pesou), M-04 (respostas
   declaradas), M-13 (nova tentativa do texto de IA) */
.relatorio-signal-indicios-titulo{ font:600 10.5px var(--font-sans); letter-spacing:.08em; text-transform:uppercase; color:var(--gold-deep); margin:12px 0 6px; }
.relatorio-signal-indicios{ list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px; }
.relatorio-signal-indicios li{ font-size:12.5px; line-height:1.5; }
.indicio-pergunta{ display:block; color:var(--ink-mute); }
.indicio-resposta{ display:block; color:var(--ink); font-weight:600; }
.respostas-declaradas{ margin-top:28px; border-top:1px solid var(--line); padding-top:14px; }
.respostas-declaradas summary{ cursor:pointer; list-style:none; display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.respostas-declaradas summary::-webkit-details-marker{ display:none; }
.respostas-declaradas-dica{ font-size:12.5px; color:var(--gold-deep); }
.respostas-declaradas[open] .respostas-declaradas-dica{ display:none; }
.respostas-lista{ margin:14px 0 0; padding-left:22px; display:flex; flex-direction:column; gap:12px; }
.respostas-lista li::marker{ color:var(--gold-deep); font-weight:600; }
.resposta-secao{ display:block; font:600 10.5px var(--font-sans); letter-spacing:.06em; text-transform:uppercase; color:var(--gold-deep); }
.resposta-pergunta{ display:block; font-size:13.5px; color:var(--ink); font-weight:600; margin:2px 0; }
.resposta-valor{ display:block; font-size:13.5px; color:var(--ink-soft); }
.resposta-valor.vazia{ color:var(--ink-mute); font-style:italic; }
.relatorio-ia-retentar-msg{ font-size:12.5px; color:var(--err); margin-top:8px; }

/* ------------------- PJ Compliance (calculadora de exposição) ------------------- */
.calc-hero-link{
  display:inline-flex; align-items:center; gap:10px; margin-top:22px; padding:12px 16px;
  border:1px dashed var(--gold); background:var(--gold-soft); color:var(--ink);
  font-size:14.5px; font-weight:600; line-height:1.4;
}
.calc-hero-link svg{ color:var(--gold-deep); flex-shrink:0; }
.calc-hero-link:hover{ background:var(--white); color:var(--ink); }

.calc-section{ background:var(--paper-deep); border-top:1px solid var(--line); border-bottom:1px solid var(--line); scroll-margin-top:24px; }
.calc-grid{ display:grid; grid-template-columns:minmax(280px, 380px) 1fr; gap:28px; align-items:start; }
.calc-grid > *{ min-width:0; }

.calc-form{
  background:var(--ink); color:var(--silver); padding:32px 28px; position:sticky; top:24px;
  display:flex; flex-direction:column; gap:26px;
}
.calc-field label{
  display:flex; justify-content:space-between; align-items:baseline; gap:12px;
  font-size:14px; font-weight:600; color:var(--white); margin-bottom:10px;
}
.calc-field output{ font:600 20px/1 var(--font-serif); color:var(--gold); }
.calc-money{ display:flex; align-items:center; border:1px solid var(--footer-line); background:#232023; }
.calc-money span{ padding:0 4px 0 16px; font:600 22px var(--font-serif); color:var(--gold); }
.calc-money input{
  flex:1; min-width:0; width:100%; border:0; background:transparent; color:var(--white);
  font:600 28px/1 var(--font-serif); padding:12px 14px 12px 6px;
}
.calc-money:focus-within{ border-color:var(--gold); }
.calc-money input:focus{ outline:none; }
.calc-range{ width:100%; margin:14px 0 0; accent-color:var(--gold); cursor:pointer; }
.calc-range-scale{ display:flex; justify-content:space-between; font-size:12px; color:var(--footer-mute); margin-top:4px; }
.calc-help{ font-size:12.5px; color:var(--footer-mute); margin-top:8px; }
.calc-stepper{ display:flex; border:1px solid var(--footer-line); width:max-content; }
.calc-stepper button{
  width:46px; border:0; background:#232023; color:var(--gold); font-size:22px; cursor:pointer;
}
.calc-stepper button:hover{ background:var(--gold); color:var(--ink); }
.calc-stepper input{
  width:80px; border:0; border-left:1px solid var(--footer-line); border-right:1px solid var(--footer-line);
  background:transparent; color:var(--white); text-align:center; font:600 22px var(--font-serif); padding:10px 0;
  -moz-appearance:textfield; appearance:textfield;
}
.calc-stepper input::-webkit-outer-spin-button, .calc-stepper input::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
.calc-stepper input:focus{ outline:2px solid var(--gold); outline-offset:-2px; }
.calc-privacy{ display:flex; gap:8px; align-items:flex-start; font-size:12.5px; line-height:1.5; color:var(--footer-mute); border-top:1px solid var(--footer-line); padding-top:18px; }
.calc-privacy svg{ color:var(--gold); flex-shrink:0; margin-top:1px; }

.calc-results{ display:flex; flex-direction:column; gap:18px; }
.calc-card{ position:relative; background:var(--white); border:1px solid var(--line); padding:26px 28px; overflow:hidden; }
.calc-card::before{ content:""; position:absolute; top:0; left:0; bottom:0; width:4px; background:var(--gold); }
.calc-card-risco::before{ background:var(--err); }
.calc-card-equilibrio::before{ background:var(--ok); }
.calc-card-eyebrow{
  display:block; font:700 11.5px/1.4 var(--font-sans); letter-spacing:.12em; text-transform:uppercase;
  color:var(--gold-deep); margin-bottom:12px;
}
.calc-card-risco .calc-card-eyebrow{ color:var(--err); }
.calc-card-equilibrio .calc-card-eyebrow{ color:var(--ok); }
.calc-big{ font:600 42px/1.05 var(--font-serif); color:var(--ink); font-variant-numeric:tabular-nums; }
.calc-big-risk{ color:var(--err); font-size:36px; }
.calc-mid{ font:600 30px/1.1 var(--font-serif); color:var(--ink); }
.calc-mid small{ font:500 13px var(--font-sans); color:var(--ink-mute); margin-left:6px; }
.calc-caption{ font-size:13px; color:var(--ink-mute); line-height:1.5; margin-top:6px; }
.calc-rows{ margin:18px 0 0; border-top:1px solid var(--line); }
.calc-rows div{ display:flex; justify-content:space-between; gap:16px; padding:9px 0; border-bottom:1px solid var(--line); font-size:14px; }
.calc-rows dt{ color:var(--ink-mute); }
.calc-rows dd{ margin:0; font-weight:600; color:var(--ink); font-variant-numeric:tabular-nums; white-space:nowrap; }
.calc-risk-pair{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.calc-risk-label{ font-size:13px; font-weight:600; color:var(--ink-soft); margin-bottom:6px; }
.calc-punch{
  margin-top:20px; padding:14px 18px; background:var(--err-soft); color:var(--ink);
  font-size:15px; line-height:1.55;
}
.calc-punch strong{ color:var(--err); }
.calc-footnote{ font-size:12.5px; color:var(--ink-mute); margin-top:12px; line-height:1.55; }
.calc-text{ font-size:15px; line-height:1.65; color:var(--ink-soft); }
.calc-text strong{ color:var(--ink); }
.calc-eq-highlight{
  display:grid; grid-template-columns:1fr 1fr; gap:24px; margin-top:18px; padding:18px 20px;
  background:#EEF3EC; border:1px solid #CFDDCB;
}
.calc-vazio .calc-results{ opacity:.45; }

.calc-cta{
  position:relative; overflow:hidden; margin-top:36px; background:var(--ink); color:var(--silver);
  padding:40px 44px; display:grid; grid-template-columns:1fr auto; gap:36px; align-items:center;
}
.calc-cta-cut{ position:absolute; bottom:-70px; right:-70px; width:170px; height:170px; background:var(--gold); opacity:.12; transform:rotate(45deg); }
.calc-cta-body{ position:relative; }
.calc-cta h3{ color:var(--white); font-size:28px; line-height:1.25; margin-bottom:14px; }
.calc-cta p{ font-size:15.5px; line-height:1.7; max-width:640px; }
.calc-badges{ list-style:none; padding:0; margin:20px 0 0; display:flex; flex-wrap:wrap; gap:10px; }
.calc-badges li{
  font-size:12.5px; font-weight:600; color:var(--white); border:1px solid var(--footer-line);
  padding:7px 12px 7px 26px; position:relative;
}
.calc-badges li::before{
  content:""; position:absolute; left:11px; top:50%; width:7px; height:7px; margin-top:-4px;
  background:var(--gold); transform:rotate(45deg);
}
.calc-cta-actions{ position:relative; display:flex; flex-direction:column; gap:12px; min-width:250px; }

.calc-method{ margin-top:24px; border:1px solid var(--line); background:var(--white); }
.calc-method summary{ cursor:pointer; padding:16px 22px; font-size:14.5px; font-weight:600; color:var(--ink); }
.calc-method summary:hover{ color:var(--gold-deep); }
.calc-method-body{ padding:0 22px 22px; display:flex; flex-direction:column; gap:12px; font-size:14px; line-height:1.65; }
.calc-method-note{ font-size:13px; color:var(--ink-mute); border-top:1px solid var(--line); padding-top:12px; }

@media (max-width: 900px){
  .calc-grid{ grid-template-columns:1fr; }
  .calc-form{ position:static; }
  .calc-cta{ grid-template-columns:1fr; padding:32px 26px; }
  .calc-cta-actions{ min-width:0; }
}
@media (max-width: 560px){
  .calc-risk-pair, .calc-eq-highlight{ grid-template-columns:1fr; gap:16px; }
  .calc-big{ font-size:36px; }
  .calc-big-risk{ font-size:32px; }
  .calc-card{ padding:22px 20px 22px 24px; }
  .calc-form{ padding:26px 20px; }
  .calc-cta h3{ font-size:23px; }
  .calc-hero-link{ font-size:13.5px; }
}
