:root {
  --forest-950: #07110e;
  --forest-900: #0b1914;
  --forest-800: #123025;
  --forest-700: #1b4131;
  --gold-500: #c4a565;
  --gold-300: #ead8a4;
  --paper: #f4f2e9;
  --paper-deep: #e9e6d8;
  --white: #fffdf8;
  --ink: #13241c;
  --ink-soft: #526359;
  --line: #d6d1c1;
  --warm: #f7edda;
  --display: "Palatino Linotype", "Book Antiqua", Georgia, serif;
  --sans: "Segoe UI", Arial, sans-serif;
  --mono: "Cascadia Mono", Consolas, monospace;
  --shadow: 0 22px 54px rgba(3, 13, 9, .14);
  color: var(--ink);
  font-family: var(--sans);
}

* { box-sizing: border-box; }
html { background: var(--paper); scroll-behavior: smooth; }
body { background: var(--paper); margin: 0; min-width: 320px; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; }
button:focus-visible, a:focus-visible { outline: 3px solid var(--gold-500); outline-offset: 3px; }
.skip-link { background: var(--white); border-radius: 3px; color: var(--ink); left: 12px; padding: 10px 14px; position: fixed; top: -60px; z-index: 30; }
.skip-link:focus { top: 12px; }
.app-shell { min-height: 100vh; }
.noscript-fallback { background: var(--forest-900); color: var(--paper); margin: 0; min-height: 100vh; padding: 32px 22px; }
.noscript-fallback h1 { color: var(--paper); font-size: clamp(32px, 9vw, 48px); line-height: 1.04; margin: 0 0 18px; }
.noscript-fallback p:not(.eyebrow) { color: #d7ddd3; font-size: 16px; line-height: 1.65; margin: 0 0 16px; max-width: 640px; }
.runtime-fallback { background: var(--forest-900); color: var(--paper); margin: 0; min-height: 100vh; padding: 32px 22px; }
.runtime-fallback h1 { color: var(--paper); font-size: clamp(32px, 9vw, 48px); line-height: 1.04; margin: 0 0 18px; }
.runtime-fallback p:not(.eyebrow) { color: #d7ddd3; font-size: 16px; line-height: 1.65; margin: 0 0 16px; max-width: 640px; }

/* Navegação institucional */
.site-header { background: var(--forest-950); color: var(--paper); padding: 18px 20px 15px; }
.header-inner, .content-wrap, .footer-inner { margin: 0 auto; width: min(100%, 780px); }
.brand-lockup { align-items: center; display: grid; gap: 14px; grid-template-columns: minmax(132px, 184px) 1fr; }
.brand-logo { display: block; height: auto; justify-self: start; max-height: 70px; object-fit: contain; object-position: left center; width: min(184px, 42vw); }
.phase-label { color: var(--gold-300); font-family: var(--mono); font-size: 9px; letter-spacing: .095em; line-height: 1.45; margin: 0; text-align: right; text-transform: uppercase; }
.header-divider { background: var(--gold-500); height: 2px; margin: 14px 0 0; opacity: .95; width: 100%; }
.brand-footer { background: var(--forest-950); color: #c4ccc1; padding: 17px 20px calc(17px + env(safe-area-inset-bottom)); }
.footer-inner { display: flex; font-family: var(--mono); font-size: 8px; gap: 12px; justify-content: space-between; letter-spacing: .08em; text-transform: uppercase; }

/* Abertura */
.welcome-screen { background: var(--forest-900); color: var(--paper); min-height: calc(100vh - 48px); overflow: hidden; position: relative; }
.welcome-hero { inset: 0 0 auto; height: 42%; min-height: 255px; overflow: hidden; position: absolute; }
.welcome-hero::after { background: linear-gradient(180deg, rgba(7,17,14,.16), var(--forest-900) 92%); content: ''; inset: 0; position: absolute; }
.welcome-hero img { height: 100%; object-fit: cover; object-position: 68% center; width: 100%; }
.welcome-content { margin: 0 auto; max-width: 620px; padding: 270px 22px 38px; position: relative; }
.welcome-brand { align-items: center; display: flex; justify-content: center; margin: 0 auto 19px; width: min(302px, 80vw); }
.welcome-brand img { display: block; height: auto; width: 100%; }
.welcome-kicker, .eyebrow, .question-label { color: var(--gold-300); font-family: var(--mono); font-size: 10px; letter-spacing: .115em; line-height: 1.5; margin: 0 0 10px; text-transform: uppercase; }
.welcome-kicker { text-align: center; }
h1, h2, h3, h4 { font-family: var(--display); }
.welcome-content h1 { color: var(--paper); font-size: clamp(35px, 10.6vw, 58px); font-weight: 500; letter-spacing: -.045em; line-height: .98; margin: 0; text-align: center; }
.welcome-content h1 em { color: var(--gold-300); font-style: normal; }
.welcome-rule { background: var(--gold-500); height: 1px; margin: 22px auto; width: 54px; }
.welcome-lead { color: #d7ddd3; font-size: 16px; line-height: 1.65; margin: 0 auto; max-width: 520px; text-align: center; }
.welcome-lead strong { color: var(--gold-300); font-weight: 600; }
.welcome-anonymous { align-items: flex-start; border-bottom: 1px solid rgba(237,242,232,.16); border-top: 1px solid rgba(237,242,232,.16); display: flex; font-size: 14px; gap: 11px; line-height: 1.55; margin: 25px 0 14px; padding: 14px 2px; }
.welcome-anonymous > span { color: var(--gold-500); font-size: 15px; line-height: 1.3; }
.welcome-anonymous p { color: #d5ddd2; margin: 0; }
.welcome-anonymous strong { color: var(--paper); }
.welcome-note { color: #a7b2a8; font-size: 14px; line-height: 1.5; margin-bottom: 18px; }
.primary-btn, .secondary-btn, .option-btn, .link-btn, .glossary-toggle { cursor: pointer; }
.primary-btn { align-items: center; background: var(--gold-500); border: 1px solid var(--gold-500); border-radius: 2px; color: var(--forest-950); display: inline-flex; font-size: 14px; font-weight: 800; justify-content: center; letter-spacing: .01em; min-height: 50px; padding: 13px 17px; width: 100%; }
.primary-btn:hover { background: var(--gold-300); border-color: var(--gold-300); }
.welcome-cta { justify-content: space-between; }
.welcome-cta span { font-size: 18px; }
.secondary-btn { background: transparent; border: 1px solid #9da79d; border-radius: 2px; color: var(--forest-900); font-size: 14px; font-weight: 700; min-height: 44px; padding: 11px 14px; }
.welcome-glossary { margin-top: 12px; }

/* Cartões, perguntas e glossário */
.content-wrap { padding: 28px 18px 38px; }
.card { background: var(--white); box-shadow: var(--shadow); padding: 25px 20px; }
.progress-row { align-items: center; color: #657269; display: grid; font-family: var(--mono); font-size: 10px; gap: 14px; grid-template-columns: minmax(148px, auto) minmax(0, 1fr); letter-spacing: .04em; margin: 0 1px 12px; text-transform: uppercase; }
.progress-info { display: grid; gap: 3px; min-width: 0; }
.progress-label { color: #526359; white-space: nowrap; }
.progress-note { color: #8a6e37; font-size: 9px; letter-spacing: .07em; line-height: 1.25; }
.progress-track { background: #d8d7cc; height: 4px; overflow: hidden; }
.progress-fill { background: var(--gold-500); height: 100%; transition: width .2s ease; }
.question-card { animation: cardIn .22s ease both; border-top: 3px solid var(--gold-500); }
@keyframes cardIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
.question-top { align-items: center; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; margin-bottom: 20px; padding-bottom: 14px; }
.question-label { color: #866b34; margin: 0 0 4px; }
.question-foundation { color: #69766d; font-family: var(--mono); font-size: 10px; letter-spacing: .04em; }
.question-symbol { align-items: center; background: var(--forest-950); border-radius: 50%; color: var(--gold-300); display: inline-flex; font-family: var(--display); font-size: 22px; height: 43px; justify-content: center; width: 43px; }
.question-title { color: var(--forest-950); font-size: clamp(29px, 7.5vw, 43px); font-weight: 600; letter-spacing: -.04em; line-height: 1.04; margin: 0 0 15px; }
.question-help { color: #43554a; font-size: 15px; line-height: 1.62; margin: 0 0 16px; }
.covered-points { background: #efede4; border-left: 2px solid var(--gold-500); margin: 14px 0 18px; padding: 13px 14px 10px; }
.covered-points > p { color: #796130; font-family: var(--mono); font-size: 10px; letter-spacing: .08em; margin: 0 0 8px; text-transform: uppercase; }
.bullet-list { color: #31443a; font-size: 14px; line-height: 1.55; margin: 0; padding-left: 19px; }
.bullet-list li { margin-bottom: 6px; }
.options { display: grid; gap: 9px; margin-top: 20px; }
.option-btn { align-items: flex-start; background: #fffefa; border: 1px solid #c8c7bc; border-radius: 2px; color: var(--ink); display: flex; font-size: 15px; gap: 12px; line-height: 1.4; min-height: 54px; padding: 14px; text-align: left; width: 100%; }
.option-btn:hover { background: #fbf5e6; border-color: var(--gold-500); }
.option-btn.selected { background: var(--forest-950); border-color: var(--forest-950); color: var(--paper); }
.option-mark { border: 1.5px solid #77857a; border-radius: 50%; flex: 0 0 20px; height: 20px; margin-top: 1px; width: 20px; }
.option-btn.selected .option-mark { background: var(--forest-950); border: 5px solid var(--gold-500); }
.option-btn.multiple .option-mark { border-radius: 3px; }
.option-btn.multiple.selected .option-mark { border: 5px solid var(--gold-500); border-radius: 3px; }
.action-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 21px; }
.action-row .primary-btn { flex: 1 1 190px; }
.question-nav { display: flex; gap: 15px; justify-content: space-between; margin-top: 18px; }
.link-btn { background: none; border: 0; color: #4d6055; font-size: 14px; padding: 7px 0; text-decoration: underline; }
.link-btn:disabled { color: #a5aaa4; cursor: default; text-decoration: none; }
.glossary-toggle { align-items: center; background: #f0eee6; border: 1px solid var(--line); color: var(--forest-900); display: flex; font-size: 14px; font-weight: 750; justify-content: space-between; margin-top: 17px; min-height: 45px; padding: 11px 13px; width: 100%; }
.glossary-panel { background: #f8f6ef; border: 1px solid var(--line); border-top: 0; color: #35483e; font-size: 14px; line-height: 1.55; padding: 13px; }
.glossary-panel dl { margin: 0; }
.glossary-panel dt { color: var(--forest-950); font-weight: 800; margin-top: 9px; }
.glossary-panel dd { margin: 2px 0 0; }

/* Resultado */
.result-card { border-top: 3px solid var(--gold-500); }
.result-intro { border-bottom: 1px solid var(--line); margin-bottom: 19px; padding-bottom: 17px; }
.eyebrow { color: #866b34; }
.result-intro h1, .blocked-card h1 { color: var(--forest-950); font-size: clamp(31px, 8vw, 45px); font-weight: 600; letter-spacing: -.045em; line-height: 1; margin: 0 0 13px; }
.lead { color: #405248; font-size: 15px; line-height: 1.62; margin: 0; }
.result-theme { border-top: 1px solid var(--line); padding: 19px 0; }
.result-theme:first-of-type { border-top: 0; }
.result-theme > h2 { color: var(--forest-900); font-family: var(--display); font-size: 23px; font-weight: 600; letter-spacing: -.02em; margin: 0 0 5px; }
.result-empty { color: #506359; font-size: 14px; line-height: 1.55; margin: 8px 0 0; }
.result-item { align-items: flex-start; background: #f0eee5; border-left: 2px solid var(--gold-500); display: flex; gap: 12px; margin-top: 10px; padding: 15px 14px; }
.result-item:has(.unknown) { background: #f6f0e2; }
.result-icon { align-items: center; background: var(--forest-950); border-radius: 50%; color: var(--gold-300); display: flex; flex: 0 0 25px; font-family: var(--display); font-size: 15px; font-weight: 700; height: 25px; justify-content: center; width: 25px; }
.result-icon.unknown { background: #85682d; color: #fff7dd; }
.result-copy { min-width: 0; }
.result-copy h3 { color: var(--forest-950); font-size: 20px; font-weight: 600; letter-spacing: -.02em; line-height: 1.14; margin: 0 0 5px; }
.result-copy p { color: #405248; font-size: 14px; line-height: 1.55; margin: 0; }
.article { color: #806533; display: block; font-family: var(--mono); font-size: 10px; line-height: 1.45; margin-top: 10px; }
.result-copy small { color: #647168; display: block; font-size: 13px; line-height: 1.5; margin-top: 8px; }
.unexamined-summary, .verify-summary { border: 1px solid #e0cfa2; margin-top: 18px; padding: 15px; }
.unexamined-summary { background: #f8f0dd; }
.verify-summary { background: #fbf7eb; border-color: #d9c997; }
.unexamined-summary h2, .verify-summary h2 { color: #5e4a1e; font-family: var(--display); font-size: 22px; margin: 0 0 7px; }
.unexamined-summary p, .verify-summary p { color: #625d4c; font-size: 14px; line-height: 1.55; margin: 0; }
.notice { border-left: 2px solid var(--gold-500); color: #4f503f; font-size: 14px; line-height: 1.55; margin: 18px 0; padding: 12px 14px; }
.notice.warning, .notice.verify { background: #f8f1e2; }
.contact-block { background: var(--forest-900); color: var(--paper); margin-top: 24px; padding: 20px; }
.contact-block h2 { color: var(--paper); font-size: 25px; font-weight: 500; letter-spacing: -.02em; margin: 0 0 7px; }
.contact-block p { color: #d1dacd; font-size: 14px; line-height: 1.55; margin: 0; }
.contact-actions { display: grid; gap: 9px; margin-top: 16px; }
.contact-actions .primary-btn { background: var(--gold-500); border-color: var(--gold-500); color: var(--forest-950); }
.contact-actions .secondary-btn { border-color: rgba(234,216,164,.7); color: var(--gold-300); }
.internal-browser-tip { color: #735b24; font-size: 14px; line-height: 1.55; margin-top: 14px; }
.floating-wa { align-items: center; background: var(--forest-950); border: 1px solid var(--gold-500); bottom: max(16px, env(safe-area-inset-bottom)); box-shadow: 0 10px 24px rgba(0,0,0,.25); color: var(--paper); display: inline-flex; font-size: 14px; font-weight: 750; gap: 7px; min-height: 44px; padding: 10px 14px; position: fixed; right: 16px; text-decoration: none; z-index: 8; }
.floating-wa:hover { background: var(--forest-800); }
.print-only { display: none; }

@media (min-width: 700px) {
  .site-header { padding: 21px 30px 16px; }
  .content-wrap { padding: 43px 30px 52px; }
  .card { padding: 38px; }
  .welcome-screen { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(450px, .92fr); min-height: calc(100vh - 50px); }
  .welcome-hero { height: auto; inset: 0 auto 0 0; width: 100%; }
  .welcome-hero::after { background: linear-gradient(90deg, rgba(7,17,14,.03), var(--forest-900) 95%); }
  .welcome-content { align-self: center; margin: 0; max-width: 620px; padding: 62px 7vw 62px 7vw; }
  .welcome-brand { justify-content: flex-start; margin-left: 0; width: min(330px, 95%); }
  .welcome-kicker, .welcome-content h1, .welcome-lead { text-align: left; }
  .welcome-rule { margin-left: 0; }
  .contact-actions { grid-template-columns: repeat(2, 1fr); }
}

@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }

@media print {
  @page { margin: 15mm; size: A4; }
  body { background: #fff; color: #111; }
  .skip-link, .floating-wa, .screen-only, .action-row, .question-nav, .glossary-toggle, .brand-footer { display: none !important; }
  .site-header { background: #fff; border-bottom: 2px solid #a88a4a; padding: 0 0 7mm; }
  .brand-lockup { display: flex; justify-content: space-between; }
  .brand-logo { background: #07110e; max-height: none; width: 76mm; }
  .header-divider { background: #a88a4a; height: 2px; }
  .phase-label { color: #454545; font-size: 8pt; max-width: 88mm; }
  .content-wrap { max-width: none; padding: 8mm 0 0; width: 100%; }
  .card { box-shadow: none; padding: 0; }
  .result-theme, .result-item, .unexamined-summary, .verify-summary, .contact-block { break-inside: avoid; }
  .contact-block { background: #f4f1e8; border: 1px solid #cbbd95; color: #111; }
  .contact-block h2, .contact-block p { color: #111; }
  .print-only { display: block; font-size: 9pt; margin-top: 9mm; }
}

.practical-guidance { margin: .55rem 0; padding: .65rem .85rem; background: rgba(198,169,107,.10); border-left: 2px solid #b99b61; line-height:1.55; }

@media (max-width: 480px) {
  .progress-row { gap: 8px; grid-template-columns: 1fr; }
  .progress-track { width: 100%; }
}

/* Relatório final em tela, sem pop-ups */
.report-view-toolbar { background:#eef0e8; border:1px solid #b99b61; margin:0 0 20px; padding:18px; color:#183024; }
.report-view-toolbar p { margin:0 0 12px; line-height:1.5; }
.report-view-actions { display:flex; flex-wrap:wrap; gap:9px; }
.report-view-actions .primary-btn, .report-view-actions .secondary-btn { width:auto; flex:1 1 190px; }
.printable-report-wrapper .result-card { background:#fff; }
@media print { .report-view-toolbar { display:none!important; } .printable-report-wrapper { padding:0; } }

/* Contatos no relatório final, inclusive versão impressa. */
.printable-report-wrapper .contact-block { break-inside:avoid; page-break-inside:avoid; }
.printable-report-wrapper .contact-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:540px) { .printable-report-wrapper .contact-actions { grid-template-columns:1fr; } }
@media print { .contact-actions { display:grid!important; grid-template-columns:repeat(2,minmax(0,1fr)); } .contact-actions a { display:block!important; text-decoration:none!important; -webkit-print-color-adjust:exact; print-color-adjust:exact; } .contact-block { break-inside:avoid; page-break-inside:avoid; } }

/* Consulta à legislação oficial — externa, sem transmissão das respostas */
.legal-source{display:inline-flex;flex-direction:column;align-items:flex-start;gap:3px;max-width:100%;font-family:var(--sans);font-size:12px;line-height:1.45;margin:8px 0;color:var(--ink-soft)}
.legal-source a{color:#765d2b;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.legal-source a:hover{color:#3b5a42}
.legal-source-origin{font-size:10px;font-weight:400;line-height:1.35;color:#738076;max-width:560px}
.legal-source-welcome{margin:0 0 16px}.legal-source-welcome a{color:var(--gold-300)}.legal-source-welcome .legal-source-origin{color:#bac5b8}
.legal-source-question{margin-top:8px;max-width:410px}
.legal-source-report{display:flex;margin:12px 0}
.legal-source-item{display:inline-flex;vertical-align:top;margin:3px 0}.legal-source-item a{font-size:11px}.legal-source-item .legal-source-origin{font-size:9px}
.legal-source-fixed{position:fixed;bottom:max(16px,env(safe-area-inset-bottom));left:16px;z-index:7;max-width:min(270px,50vw);background:var(--forest-950);border:1px solid var(--gold-500);padding:8px 10px;box-shadow:0 8px 25px rgba(0,0,0,.18);margin:0}
.legal-source-fixed a{color:var(--gold-300);font-size:12px}.legal-source-fixed .legal-source-origin{color:#cfcec1;font-size:9px}
@media(max-width:480px){.legal-source-fixed{max-width:47vw;left:8px;bottom:8px}.legal-source-fixed .legal-source-origin{font-size:8px}.floating-wa{right:8px;bottom:8px}}
@media print{.legal-source-fixed{display:none!important}.legal-source a{color:#654a1b}.legal-source-origin{color:#666}}
