@font-face {
  font-family: Manrope;
  src: url("/assets/fonts/recursos-manrope.ttf") format("truetype");
  font-display: swap;
  font-weight: 400 800;
}
:root {
  color-scheme: light;
  --ink: #142750;
  --muted: #536175;
  --paper: #f3f5f8;
  --surface: #fff;
  --line: #dce2ec;
  --pink: #ea4d91;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-height: 100vh; background: var(--paper); color: var(--ink); font: 500 1rem/1.55 Manrope, system-ui, sans-serif; }
a { color: var(--ink); }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: default; opacity: .56; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 4px; }
h1, h2, h3, p { margin-block: 0; }
h1, h2 { font-weight: 800; letter-spacing: -.045em; line-height: 1.11; }
h1 { font-size: clamp(2.45rem, 5.1vw, 4.3rem); }
h2 { font-size: clamp(2rem, 4vw, 3.05rem); }
h3 { font-size: 1.08rem; font-weight: 800; }
.wrap { width: min(100% - 2.25rem, 68rem); margin-inline: auto; }
.site-header { background: var(--surface); border-bottom: 1px solid var(--line); }
.masthead, .site-footer .wrap { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; min-height: 4.3rem; }
.brand { display: inline-flex; align-items: center; gap: .55rem; text-decoration: none; font-size: .93rem; letter-spacing: .1em; color: var(--ink); }
.brand strong { color: var(--ink); font-weight: 800; }
.masthead-note, .small, .site-footer { color: var(--muted); font-size: .88rem; }
.flow { padding-block: clamp(1.75rem, 6.5vw, 5.5rem) 3rem; }
.entry { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(0, 1fr); border: 1px solid var(--line); border-radius: 1.4rem; overflow: hidden; background: var(--surface); box-shadow: 0 .9rem 3rem #14275012; }
.intro, .itinerary, .panel { padding: clamp(1.2rem, 4.3vw, 3.4rem); }
.eyebrow { color: var(--ink); font-size: .78rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; margin-bottom: .75rem; }
.lead { color: var(--muted); margin-top: .95rem; max-width: 58ch; }
.itinerary { color: var(--surface); background: var(--ink); box-shadow: inset 0 4px 0 var(--pink); align-content: center; }
.itinerary .eyebrow { color: var(--surface); }
.itinerary ol { padding: 0; margin: 1.3rem 0 0; list-style: none; }
.itinerary li { display: flex; align-items: center; gap: 1rem; padding: .63rem 0; border-bottom: 1px solid #ffffff40; font-weight: 700; }
.itinerary li span { color: var(--surface); font-size: .82rem; font-variant-numeric: tabular-nums; }
.panel { max-width: 47rem; margin-inline: auto; background: var(--surface); border: 1px solid var(--line); border-radius: 1.3rem; box-shadow: 0 .75rem 2.5rem #1427500f; overflow-wrap: anywhere; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin: 1.35rem 0 .85rem; }
.button { display: inline-flex; justify-content: center; align-items: center; min-height: 2.85rem; gap: .55rem; padding: .65rem .95rem; border: 1px solid transparent; border-radius: .65rem; font-weight: 800; text-align: center; line-height: 1.3; text-decoration: none; }
.primary { background: var(--ink); color: white; }
.primary:hover:not(:disabled) { background: #0e1c3b; }
.secondary { background: var(--surface); border-color: var(--line); color: var(--ink); }
.secondary:hover { background: var(--paper); border-color: var(--ink); }
.plain { min-height: 2.75rem; background: none; border: 0; padding: .45rem .6rem; text-decoration: underline; text-underline-offset: .18em; color: var(--ink); font-weight: 800; }
fieldset { padding: 0; border: 0; margin: 1.25rem 0; min-width: 0; }
.choice { display: flex; gap: .7rem; align-items: center; border: 1px solid var(--line); border-radius: .6rem; margin: .55rem 0; min-height: 2.8rem; padding: .6rem .8rem; cursor: pointer; }
.choice:has(input:checked) { border-color: var(--ink); background: var(--paper); }
input[type=radio], input[type=checkbox] { accent-color: var(--ink); flex: 0 0 auto; width: 1.1rem; height: 1.1rem; }
.question-progress { margin-bottom: 1.1rem; }
.question-progress .eyebrow { margin-bottom: .3rem; }
progress { display: block; height: .5rem; width: 100%; border: 0; border-radius: 1rem; overflow: hidden; background: var(--paper); accent-color: var(--pink); }
progress::-webkit-progress-bar { background: var(--paper); }
progress::-webkit-progress-value { background: var(--pink); }
progress::-moz-progress-bar { background: var(--pink); }
.answers { margin-block: 1.3rem; }
.answers h3 { margin-bottom: .6rem; }
.quick-choices { display: flex; flex-wrap: wrap; gap: .45rem; margin: .45rem 0 .65rem; }
.choice-chip { display: inline-flex; align-items: center; min-height: 2.75rem; padding: .42rem .72rem; border: 1px solid #77839b; border-radius: .65rem; background: var(--surface); color: var(--ink); font-weight: 700; text-align: left; }
.choice-chip::before { content: ""; display: block; width: 1rem; height: 1rem; margin-right: .45rem; border: 1px solid currentColor; border-radius: .22rem; flex: none; }
.choice-chip[aria-pressed=true] { background: var(--paper); border-color: var(--ink); }
.choice-chip[aria-pressed=true]::before { background: var(--ink); box-shadow: inset 0 0 0 3px var(--surface); }
label { font-weight: 700; }
textarea, .account input:not([type=checkbox]) { display: block; width: 100%; padding: .6rem .7rem; margin: .3rem 0 .85rem; border: 1px solid #77839b; border-radius: .55rem; color: var(--ink); background: #fff; }
textarea { min-height: 3.5rem; resize: vertical; }
details { border-top: 1px solid var(--line); padding: .65rem 0; }
details:last-of-type { border-bottom: 1px solid var(--line); }
summary { cursor: pointer; color: var(--ink); font-weight: 800; min-height: 1.6rem; }
details p, details ul, details ol { margin-block: .55rem .2rem; }
details li + li { margin-top: .3rem; }
.result-list { margin: 1rem 0; padding-left: 1.5rem; }
.result-list li { padding: .65rem 0; border-top: 1px solid var(--line); }
.result-list h3 { display: inline; margin-right: .45rem; }
.badge { display: inline-block; border-radius: .4rem; font-size: .8rem; font-weight: 800; padding: .15rem .45rem; color: var(--ink); background: var(--paper); }
.badge[data-state=respondida] { color: var(--surface); background: var(--ink); }
.result-list dl, #result-investigation dl { margin: .45rem 0 0; }
dt { font-size: .9rem; font-weight: 800; color: var(--muted); }
dd { margin: 0 0 .3rem; white-space: pre-wrap; }
.callout, .suggestion, .map-note { background: var(--paper); border: 1px solid var(--line); border-radius: .7rem; padding: 1rem; margin-top: 1rem; }
.callout ul { margin-top: .4rem; padding-left: 1.25rem; }
.suggestion p { margin: .35rem 0 .75rem; }
.map-note { background: transparent; }
.notice { background: var(--surface); color: var(--ink); border-left: 4px solid var(--ink); border-radius: .65rem; padding: .65rem 1rem; max-width: 47rem; margin: 0 auto 1rem; }
.error { background: var(--paper); color: var(--ink); border-left: 4px solid var(--pink); border-radius: .55rem; padding: .65rem .8rem; margin-block: .75rem; }
.account form { margin-top: 1.1rem; }
.account .choice { align-items: flex-start; }
.account .choice input { margin-top: .2rem; }
.site-footer { border-top: 1px solid var(--line); padding-block: .25rem; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
@media (max-width: 42rem) {
  .entry { grid-template-columns: 1fr; }
  .itinerary ol { margin-top: .55rem; }
  .masthead-note { display: none; }
}
@media (max-width: 24rem) {
  .wrap { width: min(100% - 1.5rem, 68rem); }
  .intro .button { width: 100%; }
  .question-actions .plain { text-align: left; }
}


.check-choice-group{margin:.6rem 0}
.check-choice-title{font-weight:800;margin-bottom:.25rem}
.choice-chip{max-width:100%;overflow-wrap:break-word}
.choice-chip small{display:block;color:var(--muted);font-weight:500;font-size:.82rem}
.choice-chip.check-other::before{content:'+';display:inline-grid;place-items:center;border:0}
.answers textarea{margin-bottom:1.3rem}
.check-guide,.check-nina{margin-top:1rem}
.check-guide-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.65rem;padding:0;list-style:none}
.check-guide-cards li{display:flex;flex-direction:column;gap:.42rem;min-width:0;margin:0!important;padding:.75rem;background:var(--paper);border:1px solid var(--line);border-radius:.65rem}
.check-guide-cards button{margin-top:auto;align-self:flex-start;text-align:left;padding-left:0}
.check-guide-number{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:.35rem;background:var(--ink);color:white;font-weight:800}
.check-nina{padding:.72rem;border:1px solid var(--line);border-left:4px solid var(--pink);border-radius:.55rem;background:var(--paper)}
@media(max-width:42rem){.check-guide-cards{grid-template-columns:1fr}}

/* ===== Check-up Express (um toque por pergunta, barra com porcentagem) ===== */
.express.flow{padding-block:1rem 2rem}
.express .panel{padding:1rem 1rem 1.2rem}
@media(min-width:42rem){.express.flow{padding-block:2rem 3rem}.express .panel{padding:1.6rem}}
.express .panel h2{font-size:clamp(1.4rem,5.4vw,1.95rem);letter-spacing:-.03em;line-height:1.18;margin:.4rem 0 .7rem}
.express .eyebrow{margin-bottom:.2rem}
.ex-prog{margin-bottom:.3rem}
.ex-prog-head{display:flex;justify-content:space-between;align-items:baseline;font-size:.85rem;font-weight:800;color:var(--muted)}
.ex-pct{font-size:1.5rem;line-height:1;color:var(--ink);font-variant-numeric:tabular-nums}
.ex-track{height:12px;background:var(--line);border-radius:99px;overflow:hidden;margin:.4rem 0 .5rem}
.ex-fill{height:100%;background:linear-gradient(90deg,#f27bb0,var(--pink));border-radius:99px;transition:width .5s cubic-bezier(.2,.8,.2,1);position:relative}
.result .ex-fill::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.7) 50%,transparent 70%);animation:ex-shine 1.1s ease-out 1}
@keyframes ex-shine{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.ex-say{min-height:1.5em;font-size:.95rem}
.ex-say b{color:#b8286a}
.ex-chips{display:grid;gap:.5rem;margin:.6rem 0}
.ex-chips .choice-chip{width:100%;min-height:3.25rem;border:2px solid var(--line);border-radius:.9rem;padding:.55rem .75rem;font-weight:700;gap:.1rem}
.ex-chips .choice-chip::before{width:1.35rem;height:1.35rem;border:2px solid #77839b;border-radius:.45rem;margin-right:.7rem}
.ex-chips .choice-chip[aria-pressed=true]{border-color:var(--pink);background:#fde4ef;animation:ex-pop .22s ease-out}
.ex-chips .choice-chip[aria-pressed=true]::before{border-color:var(--pink);background:var(--pink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 6.8' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/1rem no-repeat;box-shadow:none}
.ex-chips .choice-chip.check-other{border-style:dashed}
.ex-chips .choice-chip.check-other::before{content:'+';display:grid;place-items:center;border:0;color:var(--muted);font-weight:800}
@keyframes ex-pop{50%{transform:scale(1.025)}}
.ex-freebtn{display:block;margin:.1rem 0 0}
.ex-free{margin:.2rem 0 .4rem}
.ex-free label{display:block;margin-top:.55rem;font-size:.9rem}
.ex-free textarea{margin-bottom:.4rem}
.ex-help{border-top:0;padding:.2rem 0 .4rem}
.ex-help summary{font-size:.92rem;color:var(--muted)}
.ex-help-list{padding-left:1.2rem}
.express .question-actions{flex-wrap:wrap;margin:.9rem 0 .2rem}
.express .question-actions .primary{flex:1 1 9rem}
.express .question-actions .plain{margin-left:auto}
.ex-busy .question-actions{pointer-events:none}
.express .situations{margin:.9rem 0}
.express .situations .choice{min-height:3.4rem;border:2px solid var(--line);border-radius:.9rem;font-weight:700}
.express .situations .choice:has(input:checked){border-color:var(--pink);background:#fde4ef}
.ex-skiplink{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);padding:0!important;border:0!important;margin:0}
.ex-skiplink:focus{position:static!important;width:auto;height:auto;overflow:visible;clip-path:none;padding:.65rem .95rem!important}
/* resultado enxuto: situação, o que você tem, o que falta, próxima missão; só depois o kit */
.express .result{display:flex;flex-direction:column}
.express .result>.mc-after{order:1;margin:.9rem 0 0}
.express .result>.ex-kit-title,.express .result>.ex-kit-note,.express .result>.ex-kit,.express .result>.mc-ai-panel,.express .result>.mc-confirm,.express .result>#action-status,.express .result>.manual-copy{order:2}
.express .result>.map-note{order:3}
.express .result>.ex-foot,.express .result>.ex-refs{order:4}
.express .result .ex-hide-express,.express .suggestion{display:none}
.express .result-list{list-style:none;padding:0;margin:.4rem 0 0}
.express .result-list li{display:grid;grid-template-columns:6.4rem minmax(0,1fr);gap:.6rem;padding:.5rem 0;border-top:1px solid var(--line);font-size:.92rem}
.express .result-list li:first-child{border-top:0}
.express .result-list strong{color:var(--muted);font-size:.74rem;letter-spacing:.08em;text-transform:uppercase}
.express .result-list li[data-state="em aberto"] span{color:var(--muted)}
.express .callout{margin-top:.4rem;padding:.8rem 1rem}
.express .callout h3{font-size:1rem}
.express .callout ul{margin-block:.3rem 0}
.ex-kit-title{margin-top:1.2rem;font-size:1.05rem}
.ex-kit-note{margin:.15rem 0 0}
.express .ex-kit{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin:.7rem 0 .4rem}
.express .ex-kit #save-access{grid-column:1/-1}
.express .ex-kit #copy-summary{order:1}
.express .ex-kit #download-summary{order:2}
.express .ex-kit #copy-checkup-prompt{order:3;grid-column:1/-1}
.express .ex-kit .button{min-width:0}
.express .ex-foot{margin:.6rem 0 0;justify-content:space-between}
.express .map-note{margin-top:.8rem;padding:.7rem .9rem}
@media(prefers-reduced-motion:reduce){.ex-fill{transition:none}.result .ex-fill::after,.ex-chips .choice-chip[aria-pressed=true]{animation:none}}

